diff --git a/common/include/novusmainwindow.h b/common/include/novusmainwindow.h index e5993b2..ad95605 100644 --- a/common/include/novusmainwindow.h +++ b/common/include/novusmainwindow.h @@ -9,4 +9,14 @@ class NovusMainWindow : public QMainWindow { public: explicit NovusMainWindow(); + +protected: + void setupMenubar(); + + virtual void setupFileMenu(QMenu *menu) + { + } + virtual void setupAdditionalMenus(QMenuBar *menuBar) + { + } }; \ No newline at end of file diff --git a/common/src/novusmainwindow.cpp b/common/src/novusmainwindow.cpp index 0e4ead3..b993d8e 100644 --- a/common/src/novusmainwindow.cpp +++ b/common/src/novusmainwindow.cpp @@ -12,13 +12,23 @@ NovusMainWindow::NovusMainWindow() { setWindowTitle(KAboutData::applicationData().displayName()); +} +void NovusMainWindow::setupMenubar() +{ auto fileMenu = menuBar()->addMenu(QStringLiteral("File")); + setupFileMenu(fileMenu); + if (!fileMenu->isEmpty()) { + fileMenu->addSeparator(); + } + auto quitAction = fileMenu->addAction(QStringLiteral("Quit")); quitAction->setIcon(QIcon::fromTheme(QStringLiteral("gtk-quit"))); connect(quitAction, &QAction::triggered, qApp, &QCoreApplication::quit); + setupAdditionalMenus(menuBar()); + auto helpMenu = menuBar()->addMenu(QStringLiteral("Help")); auto donateAction = helpMenu->addAction(QStringLiteral("Donate"));