Files
pineapple-notepad/mainwindow.h

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;
};