diff --git a/app/OpenBR/CMakeLists.txt b/app/OpenBR/CMakeLists.txt index 7f463a8..2b49298 100644 --- a/app/OpenBR/CMakeLists.txt +++ b/app/OpenBR/CMakeLists.txt @@ -1,3 +1,4 @@ +include_directories(${CMAKE_CURRENT_BINARY_DIR}) add_executable(OpenBR OpenBR.cpp) qt5_use_modules(OpenBR ${QT_DEPENDENCIES}) target_link_libraries(OpenBR openbr ${BR_THIRDPARTY_LIBS}) diff --git a/app/OpenBR/OpenBR.cpp b/app/OpenBR/OpenBR.cpp index c8c4dc7..0f99670 100644 --- a/app/OpenBR/OpenBR.cpp +++ b/app/OpenBR/OpenBR.cpp @@ -2,34 +2,72 @@ #include #include #include +#include +#include +#include #include #include #include using namespace br; +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit MainWindow(QWidget *parent = 0) + : QMainWindow(parent) + { + QGridLayout *gridLayout = new QGridLayout(); + TemplateViewer *target = new TemplateViewer(); + TemplateViewer *query = new TemplateViewer(); + Tail *tail = new Tail(); + gridLayout->addWidget(query, 0, 0, 1, 1); + gridLayout->addWidget(target, 0, 1, 1, 1); + gridLayout->addWidget(tail, 1, 0, 1, 2); + + QMenuBar *menuBar = new QMenuBar(); + QMenu *helpMenu = new QMenu("Help"); + QAction *aboutAction = new QAction("About", this); + QAction *contactAction = new QAction("Contact", this); + helpMenu->addAction(aboutAction); + helpMenu->addAction(contactAction); + connect(aboutAction, SIGNAL(triggered()), this, SLOT(about())); + connect(contactAction, SIGNAL(triggered()), this, SLOT(contact())); + menuBar->addMenu(helpMenu); + + setGeometry(0, 0, 800, 600); + setMenuBar(menuBar); + setWindowIcon(QIcon(":/openbr.png")); + setWindowTitle("OpenBR"); + setCentralWidget(new QWidget(this)); + centralWidget()->setLayout(gridLayout); + } + +private slots: + void about() + { + QMessageBox::about(this, "About", Context::about()); + } + + void contact() + { + QMessageBox::about(this, "Contact", "openbr-dev@googlegroups.com\n\nPlease reach out to us with questions and comments on this public mailing list!"); + } +}; + int main(int argc, char *argv[]) { QApplication application(argc, argv); Context::initialize(argc, argv); - QGridLayout *gridLayout = new QGridLayout(); - TemplateViewer *target = new TemplateViewer(); - TemplateViewer *query = new TemplateViewer(); - Tail *tail = new Tail(); - gridLayout->addWidget(query, 0, 0, 1, 1); - gridLayout->addWidget(target, 0, 1, 1, 1); - gridLayout->addWidget(tail, 1, 0, 1, 2); - - QMainWindow mainWindow; - mainWindow.setGeometry(0, 0, 800, 600); - mainWindow.setWindowIcon(QIcon(":/openbr.png")); - mainWindow.setWindowTitle("OpenBR"); - mainWindow.setCentralWidget(new QWidget(&mainWindow)); - mainWindow.centralWidget()->setLayout(gridLayout); + MainWindow mainWindow; mainWindow.show(); const int result = application.exec(); Context::finalize(); return result; } + +#include "OpenBR.moc"