Barebone main window implementation.
This commit is contained in:
parent
5450c42bce
commit
35d566fd2d
5 changed files with 105 additions and 0 deletions
|
@ -1,2 +1,3 @@
|
|||
#subdir('gui')
|
||||
subdir('cli')
|
||||
subdir('qt')
|
||||
|
|
11
src/qt/main.cpp
Normal file
11
src/qt/main.cpp
Normal file
|
@ -0,0 +1,11 @@
|
|||
#include "memoserv_win.hpp"
|
||||
#include <QApplication>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication app(argc, argv);
|
||||
duck::MemoservWin w(&app);
|
||||
w.show();
|
||||
|
||||
return app.exec();
|
||||
}
|
39
src/qt/memoserv_win.cpp
Normal file
39
src/qt/memoserv_win.cpp
Normal file
|
@ -0,0 +1,39 @@
|
|||
#include "memoserv_win.hpp"
|
||||
#include "app_config.h"
|
||||
#include <QMenu>
|
||||
#include <QMenuBar>
|
||||
#include <QApplication>
|
||||
#include <iostream>
|
||||
|
||||
class QApplication;
|
||||
|
||||
namespace duck {
|
||||
|
||||
MemoservWin::MemoservWin(QApplication* app, QWidget *parent) :
|
||||
QMainWindow(parent)
|
||||
{
|
||||
create_menu(app);
|
||||
}
|
||||
|
||||
MemoservWin::~MemoservWin() noexcept = default;
|
||||
|
||||
void MemoservWin::create_menu(QApplication* app) {
|
||||
QMenu* const file_menu = menuBar()->addMenu(tr("&File"));
|
||||
{
|
||||
const QIcon open_icon = QIcon::fromTheme("document-open", QIcon(":/images/open.png"));
|
||||
const auto open_act = new QAction(open_icon, tr("&Open..."), this);
|
||||
connect(open_act, &QAction::triggered, this, &MemoservWin::open);
|
||||
file_menu->addAction(open_act);
|
||||
}
|
||||
|
||||
QMenu* const help_menu = menuBar()->addMenu(tr("&Help"));
|
||||
{
|
||||
help_menu->addAction(tr("About &Qt..."), app, &QApplication::aboutQt);
|
||||
}
|
||||
}
|
||||
|
||||
void MemoservWin::open() {
|
||||
std::cout << "MemoservWin::open()\n";
|
||||
}
|
||||
|
||||
} //namespace duck
|
23
src/qt/memoserv_win.hpp
Normal file
23
src/qt/memoserv_win.hpp
Normal file
|
@ -0,0 +1,23 @@
|
|||
#pragma once
|
||||
|
||||
#include <QMainWindow>
|
||||
|
||||
class QApplication;
|
||||
|
||||
namespace duck {
|
||||
|
||||
class MemoservWin : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit MemoservWin(QApplication*, QWidget *parent = nullptr);
|
||||
~MemoservWin() noexcept;
|
||||
|
||||
private:
|
||||
void create_menu(QApplication*);
|
||||
|
||||
void open();
|
||||
};
|
||||
|
||||
} //namespace duck
|
31
src/qt/meson.build
Normal file
31
src/qt/meson.build
Normal file
|
@ -0,0 +1,31 @@
|
|||
cpp = meson.get_compiler('cpp')
|
||||
fslib_dep = cpp.find_library('stdc++fs', required: false)
|
||||
|
||||
qt5 = import('qt5')
|
||||
qt5_dep = dependency('qt5', modules: ['Core', 'Gui', 'Widgets'])
|
||||
inc = include_directories('includes')
|
||||
moc_files = qt5.preprocess(
|
||||
moc_headers: 'memoserv_win.hpp',
|
||||
#ui_files: 'main_window.ui',
|
||||
moc_extra_arguments: ['-DMAKES_MY_MOC_HEADER_COMPILE'],
|
||||
include_directories: inc,
|
||||
dependencies: qt5_dep
|
||||
)
|
||||
|
||||
app_name = meson.project_name() + '-qt'
|
||||
conf = configuration_data()
|
||||
conf.set('APP_NAME', app_name)
|
||||
conf.set('APP_SHORT_DESC', 'PSX memory card inspector')
|
||||
config_file = configure_file(
|
||||
input: app_config_model,
|
||||
output: 'app_config.h',
|
||||
configuration: conf
|
||||
)
|
||||
|
||||
executable(app_name,
|
||||
'main.cpp',
|
||||
'memoserv_win.cpp',
|
||||
moc_files,
|
||||
include_directories: inc,
|
||||
dependencies: [qt5_dep, fslib_dep],
|
||||
)
|
Loading…
Add table
Reference in a new issue