60 lines
1.2 KiB
C++
60 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <KXmlGuiWindow>
|
|
|
|
#include "ui_GeneralSettings.h"
|
|
|
|
class QLabel;
|
|
class SciEdit;
|
|
class TabWidget;
|
|
class DocumentManager;
|
|
|
|
class MainWindow : public KXmlGuiWindow
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit MainWindow(QWidget *parent = nullptr);
|
|
~MainWindow();
|
|
|
|
private slots:
|
|
void newFile();
|
|
void openFile();
|
|
void saveFile();
|
|
void saveAsFile();
|
|
void closeFile();
|
|
void onCurrentTabChanged();
|
|
void onCurrentEditorChanged(SciEdit *editor);
|
|
void onDocumentModified(int docIndex, bool modified);
|
|
|
|
private:
|
|
void setupActions();
|
|
void showSettings();
|
|
void applyLexer(const QString & lexer);
|
|
void updateWindowTitle();
|
|
void updateStatusBar();
|
|
void updateActions();
|
|
|
|
DocumentManager *m_documentManager;
|
|
TabWidget *m_tabWidget;
|
|
QLabel *m_cursorPosStatusLabel;
|
|
QLabel *m_encodingStatusLabel;
|
|
QLabel *m_languageStatusLabel;
|
|
};
|
|
|
|
// plainly for KConfigDialog
|
|
// void setupUi(QWidget *GeneralSettings)
|
|
template <typename T>
|
|
class SettingsPage : public QWidget
|
|
{
|
|
public:
|
|
SettingsPage(QWidget *parent)
|
|
: QWidget(parent)
|
|
{
|
|
ui.setupUi(this);
|
|
}
|
|
|
|
private:
|
|
T ui;
|
|
};
|