#pragma once #include #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 class SettingsPage : public QWidget { public: SettingsPage(QWidget *parent) : QWidget(parent) { ui.setupUi(this); } private: T ui; };