AutoCatGnome/gui/MainWindow.cpp
2022-12-31 00:28:31 +03:00

65 lines
1.7 KiB
C++

//
// Created by selim on 03.01.2022.
//
#include "MainWindow.h"
#include "AddNumberDialog.h"
#include "../gtkpp/MessageDialog.h"
#include "../coro/Coro.h"
#include "../services/Storage.h"
#include "../gtkpp/HeaderBar.h"
#include "../gtkpp/Separator.h"
#include "../gtkpp/SelectionModel.h"
#include <iostream>
MainWindow::MainWindow(): gtkpp::Window(true),
_vehiclesListView(gtkpp::SelectionModel(gtkpp::Selection::Single),
&_vehiclesListFactory) {
setDefaultSize(640, 480);
setResizable(true);
_addNumberButton.setIconName("list-add-symbolic");
_addNumberButton.onClick([this] {
showCheckDialog();
});
gtkpp::HeaderBar leftHeader("Vehicles");
leftHeader.showEndButtons(false);
leftHeader.packStart(_addNumberButton);
gtkpp::Box leftPanel(GTK_ORIENTATION_VERTICAL, 0);
leftPanel.append(leftHeader);
leftPanel.append(_vehiclesListView);
gtkpp::HeaderBar rightHeader;
gtkpp::Box rightPanel(GTK_ORIENTATION_VERTICAL, 0);
rightPanel.append(rightHeader);
rightPanel.setHExpand(true);
_leaflet.append(leftPanel);
_leaflet.append(gtkpp::Separator(GTK_ORIENTATION_VERTICAL));
_leaflet.append(rightPanel);
_leaflet.setVExpand(true);
setContent(_leaflet);
auto vehicles = Storage::instance().select<Vehicle>();
std::cout << "" << std::endl;
}
void MainWindow::showCheckDialog() {
AddNumberDialog dialog(this);
dialog.show();
GtkResponseType response = co_await dialog.responseAsync();
if(response == GTK_RESPONSE_OK) {
try {
co_await dialog.checkNumber();
} catch(std::exception& ex) {
gtkpp::MessageDialog::showError(this, ex.what());
}
}
}