diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5fa79d08..c2964c40 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -37,6 +37,7 @@ set(keepassx_SOURCES gui/EntryView.cpp gui/GroupModel.cpp gui/GroupView.cpp + gui/MainWindow.cpp keys/CompositeKey.cpp keys/PasswordKey.cpp streams/HashedBlockStream.cpp @@ -44,6 +45,12 @@ set(keepassx_SOURCES streams/SymmetricCipherStream.cpp ) +set(keepassx_FORMS + gui/MainWindow.ui +) + +qt4_wrap_ui(keepassx_SOURCES ${keepassx_FORMS}) + automoc4_add_library( keepassx_core STATIC ${keepassx_SOURCES} ) automoc4_add_executable( ${PROGNAME} WIN32 MACOSX_BUNDLE main.cpp ) diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp new file mode 100644 index 00000000..087123a4 --- /dev/null +++ b/src/gui/MainWindow.cpp @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2010 Felix Geyer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "MainWindow.h" + +#include "DatabaseWidget.h" +#include "core/Database.h" +#include "core/Metadata.h" + +MainWindow::MainWindow() +{ + setupUi(this); + connect(actionQuit, SIGNAL(triggered()), SLOT(close())); +} + +void MainWindow::addDatabase(Database* db) +{ + QWidget* databaseWidget = new DatabaseWidget(db, tabWidget); + tabWidget->addTab(databaseWidget, db->metadata()->name()); +} diff --git a/src/gui/MainWindow.h b/src/gui/MainWindow.h new file mode 100644 index 00000000..4d57ba7a --- /dev/null +++ b/src/gui/MainWindow.h @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2010 Felix Geyer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSX_MAINWINDOW_H +#define KEEPASSX_MAINWINDOW_H + +#include "ui_MainWindow.h" + +class Database; + +class MainWindow : public QMainWindow, private Ui::MainWindow +{ + Q_OBJECT + +public: + MainWindow(); + void addDatabase(Database* db); +}; + +#endif // KEEPASSX_MAINWINDOW_H diff --git a/src/gui/MainWindow.ui b/src/gui/MainWindow.ui new file mode 100644 index 00000000..0919ee58 --- /dev/null +++ b/src/gui/MainWindow.ui @@ -0,0 +1,65 @@ + + + MainWindow + + + + 0 + 0 + 800 + 600 + + + + KeePassX + + + + + + + -1 + + + + + + + + + 0 + 0 + 800 + 21 + + + + + File + + + + + + Help + + + + + + + + + + Quit + + + + + About + + + + + + diff --git a/src/main.cpp b/src/main.cpp index 9a8d161f..d659cfed 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -22,7 +22,7 @@ #include "crypto/Crypto.h" #include "format/KeePass2Reader.h" #include "format/KeePass2XmlReader.h" -#include "gui/DatabaseWidget.h" +#include "gui/MainWindow.h" #include "keys/CompositeKey.h" #include "keys/PasswordKey.h" @@ -45,8 +45,9 @@ int main(int argc, char **argv) //KeePass2XmlReader* reader = new KeePass2XmlReader(); //Database* db = reader->readDatabase(QString(KEEPASSX_TEST_DIR).append("/NewDatabase.xml")); - DatabaseWidget dbWidget(db); - dbWidget.show(); + MainWindow mainWindow; + mainWindow.show(); + mainWindow.addDatabase(db); return app.exec(); }