From 514919fc07a9da5f20a759c2d104a391ab481f0c Mon Sep 17 00:00:00 2001 From: Montel Laurent Date: Mon, 17 Mar 2014 23:33:51 +0100 Subject: [PATCH] improve mailmerge --- mailmerge/mailmergewidget.cpp | 18 +++++++++++++++++- mailmerge/mailmergewidget.h | 3 ++- mailmerge/tests/mailmergewidgettest.cpp | 21 +++++++++++++++++++++ mailmerge/tests/mailmergewidgettest.h | 1 + 4 files changed, 41 insertions(+), 2 deletions(-) diff --git a/mailmerge/mailmergewidget.cpp b/mailmerge/mailmergewidget.cpp index 8ee987bcd..ff6016124 100644 --- a/mailmerge/mailmergewidget.cpp +++ b/mailmerge/mailmergewidget.cpp @@ -23,7 +23,7 @@ #include #include #include - +#include MailMergeWidget::MailMergeWidget(QWidget *parent) : QWidget(parent) @@ -45,6 +45,21 @@ MailMergeWidget::MailMergeWidget(QWidget *parent) connect(mSource, SIGNAL(activated(int)), this, SLOT(slotSourceChanged(int))); hbox->addWidget(mSource); + + mStackedWidget = new QStackedWidget; + mStackedWidget->setObjectName(QLatin1String("stackedwidget")); + vbox->addWidget(mStackedWidget); + + QWidget *addressBookWidget = new QWidget; + QVBoxLayout *addressBookWidgetLayout = new QVBoxLayout; + addressBookWidget->setLayout(addressBookWidgetLayout); + mStackedWidget->addWidget(addressBookWidget); + + QWidget *csvWidget = new QWidget; + QVBoxLayout *csvWidgetLayout = new QVBoxLayout; + csvWidget->setLayout(csvWidgetLayout); + mStackedWidget->addWidget(csvWidget); + } @@ -57,5 +72,6 @@ void MailMergeWidget::slotSourceChanged(int index) { if (index != -1) { Q_EMIT sourceModeChanged(static_cast(mSource->itemData(index).toInt())); + mStackedWidget->setCurrentIndex(index); } } diff --git a/mailmerge/mailmergewidget.h b/mailmerge/mailmergewidget.h index 03be93b7f..0b9985c3d 100644 --- a/mailmerge/mailmergewidget.h +++ b/mailmerge/mailmergewidget.h @@ -21,7 +21,7 @@ #include class KComboBox; - +class QStackedWidget; class MailMergeWidget : public QWidget { Q_OBJECT @@ -42,6 +42,7 @@ private slots: private: KComboBox *mSource; + QStackedWidget *mStackedWidget; }; #endif // MAILMERGEWIDGET_H diff --git a/mailmerge/tests/mailmergewidgettest.cpp b/mailmerge/tests/mailmergewidgettest.cpp index b2cdbeb80..4e75ce701 100644 --- a/mailmerge/tests/mailmergewidgettest.cpp +++ b/mailmerge/tests/mailmergewidgettest.cpp @@ -19,6 +19,7 @@ #include "../mailmergewidget.h" #include #include +#include Q_DECLARE_METATYPE(MailMergeWidget::SourceType) MailMergeWidgetTest::MailMergeWidgetTest() @@ -32,6 +33,11 @@ void MailMergeWidgetTest::shouldHaveDefaultValueOnCreation() KComboBox *source = qFindChild(&mailmerge, QLatin1String("source")); QVERIFY(source); QCOMPARE(source->currentIndex(), 0); + + QStackedWidget *stackedwidget = qFindChild(&mailmerge, QLatin1String("stackedwidget")); + QVERIFY(stackedwidget); + QCOMPARE(stackedwidget->count(), 2); + QCOMPARE(stackedwidget->currentIndex(), 0); } void MailMergeWidgetTest::shouldEmitSourceModeChanged() @@ -54,4 +60,19 @@ void MailMergeWidgetTest::shouldDontEmitSourceModeChangedWhenIndexIsInvalid() QCOMPARE(spy.count(), 0); } +void MailMergeWidgetTest::shouldChangeStackedWidgetIndexWhenChangeComboboxIndex() +{ + MailMergeWidget mailmerge; + KComboBox *source = qFindChild(&mailmerge, QLatin1String("source")); + QCOMPARE(source->currentIndex(), 0); + + QStackedWidget *stackedwidget = qFindChild(&mailmerge, QLatin1String("stackedwidget")); + QCOMPARE(stackedwidget->currentIndex(), 0); + source->setCurrentIndex(0); + QCOMPARE(stackedwidget->currentIndex(), 0); + source->setCurrentIndex(1); + QCOMPARE(stackedwidget->currentIndex(), 1); +} + + QTEST_KDEMAIN( MailMergeWidgetTest, GUI ) diff --git a/mailmerge/tests/mailmergewidgettest.h b/mailmerge/tests/mailmergewidgettest.h index 3ab4fe973..adffef963 100644 --- a/mailmerge/tests/mailmergewidgettest.h +++ b/mailmerge/tests/mailmergewidgettest.h @@ -30,6 +30,7 @@ private Q_SLOTS: void shouldHaveDefaultValueOnCreation(); void shouldEmitSourceModeChanged(); void shouldDontEmitSourceModeChangedWhenIndexIsInvalid(); + void shouldChangeStackedWidgetIndexWhenChangeComboboxIndex(); }; #endif // MAILMERGEWIDGETTEST_H