diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/CMakeLists.txt | 7 | ||||
-rw-r--r-- | src/gui/MainWindow.cpp | 34 | ||||
-rw-r--r-- | src/gui/MainWindow.h | 34 | ||||
-rw-r--r-- | src/gui/MainWindow.ui | 65 | ||||
-rw-r--r-- | src/main.cpp | 7 |
5 files changed, 144 insertions, 3 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5fa79d081..c2964c406 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 000000000..087123a42 --- /dev/null +++ b/src/gui/MainWindow.cpp @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2010 Felix Geyer <debfx@fobos.de> + * + * 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 <http://www.gnu.org/licenses/>. + */ + +#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 000000000..4d57ba7ae --- /dev/null +++ b/src/gui/MainWindow.h @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2010 Felix Geyer <debfx@fobos.de> + * + * 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 <http://www.gnu.org/licenses/>. + */ + +#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 000000000..0919ee58f --- /dev/null +++ b/src/gui/MainWindow.ui @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>MainWindow</class> + <widget class="QMainWindow" name="MainWindow"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>800</width> + <height>600</height> + </rect> + </property> + <property name="windowTitle"> + <string>KeePassX</string> + </property> + <widget class="QWidget" name="centralwidget"> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QTabWidget" name="tabWidget"> + <property name="currentIndex"> + <number>-1</number> + </property> + </widget> + </item> + </layout> + </widget> + <widget class="QMenuBar" name="menubar"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>800</width> + <height>21</height> + </rect> + </property> + <widget class="QMenu" name="menuFile"> + <property name="title"> + <string>File</string> + </property> + <addaction name="actionQuit"/> + </widget> + <widget class="QMenu" name="menuHelp"> + <property name="title"> + <string>Help</string> + </property> + <addaction name="actionAbout"/> + </widget> + <addaction name="menuFile"/> + <addaction name="menuHelp"/> + </widget> + <widget class="QStatusBar" name="statusbar"/> + <action name="actionQuit"> + <property name="text"> + <string>Quit</string> + </property> + </action> + <action name="actionAbout"> + <property name="text"> + <string>About</string> + </property> + </action> + </widget> + <resources/> + <connections/> +</ui> diff --git a/src/main.cpp b/src/main.cpp index 9a8d161f5..d659cfed0 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(); } |