diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 6986be561..103e896a7 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -69,6 +69,7 @@ set(keepassx_SOURCES
gui/LineEdit.cpp
gui/MainWindow.cpp
gui/SettingsWidget.cpp
+ gui/WelcomeWidget.cpp
gui/entry/EditEntryWidget.cpp
gui/entry/EntryAttachmentsModel.cpp
gui/entry/EntryAttributesModel.cpp
@@ -112,6 +113,7 @@ set(keepassx_MOC
gui/LineEdit.h
gui/MainWindow.h
gui/SettingsWidget.h
+ gui/WelcomeWidget.h
gui/entry/EditEntryWidget.h
gui/entry/EntryAttachmentsModel.h
gui/entry/EntryAttributesModel.h
@@ -138,6 +140,7 @@ set(keepassx_FORMS
gui/MainWindow.ui
gui/SearchWidget.ui
gui/SettingsWidgetSecurity.ui
+ gui/WelcomeWidget.ui
gui/entry/EditEntryWidgetAdvanced.ui
gui/entry/EditEntryWidgetHistory.ui
gui/entry/EditEntryWidgetMain.ui
diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp
index 332d417d7..8316b6ed1 100644
--- a/src/gui/MainWindow.cpp
+++ b/src/gui/MainWindow.cpp
@@ -80,8 +80,10 @@ MainWindow::MainWindow()
connect(m_ui->settingsWidget, SIGNAL(accepted()), SLOT(switchToDatabases()));
connect(m_ui->settingsWidget, SIGNAL(rejected()), SLOT(switchToDatabases()));
+ connect(m_ui->actionDatabaseNew, SIGNAL(triggered()), SLOT(switchToDatabases()));
connect(m_ui->actionDatabaseNew, SIGNAL(triggered()), m_ui->tabWidget,
SLOT(newDatabase()));
+ connect(m_ui->actionDatabaseOpen, SIGNAL(triggered()), SLOT(switchToDatabases()));
connect(m_ui->actionDatabaseOpen, SIGNAL(triggered()), m_ui->tabWidget,
SLOT(openDatabase()));
connect(m_ui->actionDatabaseSave, SIGNAL(triggered()), m_ui->tabWidget,
@@ -94,6 +96,7 @@ MainWindow::MainWindow()
SLOT(changeMasterKey()));
connect(m_ui->actionChangeDatabaseSettings, SIGNAL(triggered()), m_ui->tabWidget,
SLOT(changeDatabaseSettings()));
+ connect(m_ui->actionImportKeePass1, SIGNAL(triggered()), SLOT(switchToDatabases()));
connect(m_ui->actionImportKeePass1, SIGNAL(triggered()), m_ui->tabWidget,
SLOT(importKeePass1Database()));
connect(m_ui->actionQuit, SIGNAL(triggered()), SLOT(close()));
@@ -140,6 +143,7 @@ const QString MainWindow::BaseWindowTitle = "KeePassX";
void MainWindow::setMenuActionState(DatabaseWidget::Mode mode)
{
bool inDatabaseTabWidget = (m_ui->stackedWidget->currentIndex() == 0);
+ bool inWelcomeWidget = (m_ui->stackedWidget->currentIndex() == 2);
if (inDatabaseTabWidget && m_ui->tabWidget->currentIndex() != -1) {
DatabaseWidget* dbWidget = m_ui->tabWidget->currentDatabaseWidget();
@@ -211,9 +215,9 @@ void MainWindow::setMenuActionState(DatabaseWidget::Mode mode)
m_ui->actionDatabaseClose->setEnabled(false);
}
- m_ui->actionDatabaseNew->setEnabled(inDatabaseTabWidget);
- m_ui->actionDatabaseOpen->setEnabled(inDatabaseTabWidget);
- m_ui->actionImportKeePass1->setEnabled(inDatabaseTabWidget);
+ m_ui->actionDatabaseNew->setEnabled(inDatabaseTabWidget || inWelcomeWidget);
+ m_ui->actionDatabaseOpen->setEnabled(inDatabaseTabWidget || inWelcomeWidget);
+ m_ui->actionImportKeePass1->setEnabled(inDatabaseTabWidget || inWelcomeWidget);
}
void MainWindow::updateWindowTitle()
diff --git a/src/gui/MainWindow.ui b/src/gui/MainWindow.ui
index 21361072d..c26f003d0 100644
--- a/src/gui/MainWindow.ui
+++ b/src/gui/MainWindow.ui
@@ -21,7 +21,7 @@
-
- 0
+ 2
@@ -53,6 +53,13 @@
+
+
+ -
+
+
+
+
@@ -63,7 +70,7 @@
0
0
800
- 21
+ 20