summaryrefslogtreecommitdiff
path: root/src/main-view/WelcomeScreen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main-view/WelcomeScreen.cpp')
-rw-r--r--src/main-view/WelcomeScreen.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/main-view/WelcomeScreen.cpp b/src/main-view/WelcomeScreen.cpp
new file mode 100644
index 0000000..806a57a
--- /dev/null
+++ b/src/main-view/WelcomeScreen.cpp
@@ -0,0 +1,51 @@
+#include "WelcomeScreen.h"
+
+WelcomeScreen::WelcomeScreen(QWidget* parent):
+ QWidget(parent)
+{
+ QPushButton* newButton = createWelcomeButton("filenew",
+ tr("Create new dictionary"), SLOT(newFile()));
+ QPushButton* openButton = createWelcomeButton("fileopen",
+ tr("Open existing dictionary"), SLOT(openFileWithDialog()));
+ QPushButton* openExampleButton = createWelcomeButton("",
+ tr("Open online dictionaries"), SLOT(openOnlineDictionaries()));
+ QPushButton* importButton = createWelcomeButton("",
+ tr("Import from CSV file"), SLOT(importFromCsv()));
+ recentFilesButton = createWelcomeButton("",
+ tr("Recent dictionaries"), NULL);
+
+ QVBoxLayout* buttonsLt = new QVBoxLayout;
+ buttonsLt->addWidget(newButton);
+ buttonsLt->addWidget(openButton);
+ buttonsLt->addWidget(openExampleButton);
+ buttonsLt->addWidget(importButton);
+ buttonsLt->addWidget(recentFilesButton);
+
+ QGridLayout* paddingLt = new QGridLayout;
+ paddingLt->addLayout(buttonsLt, 1, 1);
+ setLayout(paddingLt);
+}
+
+QPushButton* WelcomeScreen::createWelcomeButton(const QString& iconName,
+ const QString& text, const char* slot)
+{
+ static const QSize ButtonSize(350, 50);
+ QPushButton* button = new QPushButton(QIcon(QString(":/images/%1.png").
+ arg(iconName)), text);
+ button->setMaximumSize(ButtonSize);
+ if(slot)
+ connect(button, SIGNAL(clicked()), parentWidget(), slot);
+ return button;
+}
+
+void WelcomeScreen::updateRecentFilesButton()
+{
+ recentFilesButton->setEnabled(recentFilesButton->menu() &&
+ !recentFilesButton->menu()->actions().isEmpty());
+}
+
+void WelcomeScreen::setRecentFilesMenu(QMenu* menu)
+{
+ recentFilesButton->setMenu(menu);
+ updateRecentFilesButton();
+}