Erste Version
This commit is contained in:
85
src/core/MainWindow.h
Normal file
85
src/core/MainWindow.h
Normal file
@@ -0,0 +1,85 @@
|
||||
#pragma once
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QSplitter>
|
||||
#include <QMenuBar>
|
||||
#include <QStatusBar>
|
||||
#include <QAction>
|
||||
#include <memory>
|
||||
|
||||
#include "ProjectManager.h"
|
||||
#include "Settings.h"
|
||||
#include "ThemeManager.h"
|
||||
|
||||
class FileTreePanel;
|
||||
class EditorPanel;
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// MainWindow – Hauptfenster. Besitzt alle zentralen Dienste und das Layout.
|
||||
// ---------------------------------------------------------------------------
|
||||
class MainWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit MainWindow(QWidget *parent = nullptr);
|
||||
~MainWindow() override;
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *event) override;
|
||||
|
||||
private slots:
|
||||
// Datei
|
||||
void onNewFile();
|
||||
void onOpenFile();
|
||||
void onOpenProject();
|
||||
void onCloseProject();
|
||||
void onSave();
|
||||
void onSaveAs();
|
||||
void onSaveAll();
|
||||
// Bearbeiten
|
||||
void onUndo();
|
||||
void onRedo();
|
||||
void onShowSearch();
|
||||
// Ansicht
|
||||
void onToggleDarkMode(bool checked);
|
||||
// Hilfe
|
||||
void onAbout();
|
||||
// Intern
|
||||
void onProjectOpened(const QString &path);
|
||||
void onProjectClosed();
|
||||
|
||||
private:
|
||||
void setupUi();
|
||||
void setupMenuBar();
|
||||
void setupStatusBar();
|
||||
void connectSignals();
|
||||
void applyInitialTheme();
|
||||
void saveWindowState();
|
||||
void restoreWindowState();
|
||||
|
||||
// Dienste
|
||||
std::unique_ptr<ProjectManager> m_projectManager;
|
||||
std::unique_ptr<Settings> m_settings;
|
||||
std::unique_ptr<ThemeManager> m_themeManager;
|
||||
|
||||
// Layout
|
||||
QSplitter *m_splitter = nullptr;
|
||||
FileTreePanel *m_fileTree = nullptr;
|
||||
EditorPanel *m_editor = nullptr;
|
||||
|
||||
// Aktionen
|
||||
QAction *m_actNewFile = nullptr;
|
||||
QAction *m_actOpenFile = nullptr;
|
||||
QAction *m_actOpenProject = nullptr;
|
||||
QAction *m_actClose = nullptr;
|
||||
QAction *m_actSave = nullptr;
|
||||
QAction *m_actSaveAs = nullptr;
|
||||
QAction *m_actSaveAll = nullptr;
|
||||
QAction *m_actQuit = nullptr;
|
||||
QAction *m_actUndo = nullptr;
|
||||
QAction *m_actRedo = nullptr;
|
||||
QAction *m_actSearch = nullptr;
|
||||
QAction *m_actDarkMode = nullptr;
|
||||
QAction *m_actAbout = nullptr;
|
||||
};
|
||||
Reference in New Issue
Block a user