[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdepim] agents/followupreminderagent: Improve++
From: Montel Laurent <montel () kde ! org>
Date: 2014-06-27 19:05:36
Message-ID: E1X0bSq-00087t-5i () scm ! kde ! org
[Download RAW message or body]
Git commit 5c24f197765d9d923ad34cf4e682371615f27f28 by Montel Laurent.
Committed on 27/06/2014 at 19:05.
Pushed by mlaurent into branch 'master'.
Improve++
M +96 -3 agents/followupreminderagent/followupremindernoanswerdialog.cpp
M +31 -2 agents/followupreminderagent/followupremindernoanswerdialog.h
http://commits.kde.org/kdepim/5c24f197765d9d923ad34cf4e682371615f27f28
diff --git a/agents/followupreminderagent/followupremindernoanswerdialog.cpp \
b/agents/followupreminderagent/followupremindernoanswerdialog.cpp index \
76ba4ef..1656eac 100644
--- a/agents/followupreminderagent/followupremindernoanswerdialog.cpp
+++ b/agents/followupreminderagent/followupremindernoanswerdialog.cpp
@@ -16,8 +16,16 @@
*/
#include "followupremindernoanswerdialog.h"
-#include <QListWidget>
+#include "followupreminderinfo.h"
+
#include <KLocalizedString>
+#include <KMenu>
+#include <KSharedConfig>
+
+#include <QHBoxLayout>
+#include <QTreeWidget>
+#include <QHeaderView>
+
FollowUpReminderNoAnswerDialog::FollowUpReminderNoAnswerDialog(QWidget *parent)
: KDialog(parent)
@@ -26,11 +34,96 @@ FollowUpReminderNoAnswerDialog::FollowUpReminderNoAnswerDialog(QWidget \
*parent) setWindowIcon( KIcon( QLatin1String("kmail") ) );
setButtons( Ok|Cancel );
//TODO
- mListWidget = new QListWidget;
- setMainWidget(mListWidget);
+ mWidget = new FollowUpReminderNoAnswerWidget;
+ setMainWidget(mWidget);
+ readConfig();
}
FollowUpReminderNoAnswerDialog::~FollowUpReminderNoAnswerDialog()
{
+ writeConfig();
+}
+
+void FollowUpReminderNoAnswerDialog::setInfo(const QList<FollowUpReminderInfo *> \
&info) +{
+ mWidget->setInfo(info);
+}
+
+void FollowUpReminderNoAnswerDialog::readConfig()
+{
+ KConfigGroup group( KGlobal::config(), "FollowUpReminderNoAnswerDialog" );
+ const QSize sizeDialog = group.readEntry( "Size", QSize(800,600) );
+ if ( sizeDialog.isValid() ) {
+ resize( sizeDialog );
+ }
+ mWidget->restoreTreeWidgetHeader(group.readEntry("HeaderState",QByteArray()));
+}
+
+void FollowUpReminderNoAnswerDialog::writeConfig()
+{
+ KConfigGroup group( KGlobal::config(), "FollowUpReminderNoAnswerDialog" );
+ group.writeEntry( "Size", size() );
+ mWidget->saveTreeWidgetHeader(group);
+}
+
+
+
+FollowUpReminderNoAnswerWidget::FollowUpReminderNoAnswerWidget(QWidget *parent)
+ : QWidget(parent)
+{
+ QHBoxLayout *hbox = new QHBoxLayout;
+ mTreeWidget = new QTreeWidget;
+ //TODO
+ QStringList headers;
+ headers << i18n("To")
+ << i18n("Subject")
+ << i18n("Message Id");
+
+ mTreeWidget->setHeaderLabels(headers);
+ mTreeWidget->setSortingEnabled(true);
+ mTreeWidget->setRootIsDecorated(false);
+ mTreeWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);
+ mTreeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
+
+ connect(mTreeWidget, SIGNAL(customContextMenuRequested(QPoint)),
+ this, SLOT(customContextMenuRequested(QPoint)));
+
+ hbox->addWidget(mTreeWidget);
+ setLayout(hbox);
+}
+
+FollowUpReminderNoAnswerWidget::~FollowUpReminderNoAnswerWidget()
+{
+}
+void FollowUpReminderNoAnswerWidget::customContextMenuRequested(const QPoint &pos)
+{
+ const QList<QTreeWidgetItem *> listItems = mTreeWidget->selectedItems();
+ if ( !listItems.isEmpty() ) {
+ KMenu menu;
+ menu.addAction(KIcon(QLatin1String("edit-delete")), i18n("Delete"), this, \
SLOT(slotRemoveItem())); + menu.exec(QCursor::pos());
+ }
}
+
+void FollowUpReminderNoAnswerWidget::setInfo(const QList<FollowUpReminderInfo *> \
&info) +{
+ //TODO
+}
+
+
+void FollowUpReminderNoAnswerWidget::slotRemoveItem()
+{
+ //TODO
+}
+
+void FollowUpReminderNoAnswerWidget::restoreTreeWidgetHeader(const QByteArray &data)
+{
+ mTreeWidget->header()->restoreState(data);
+}
+
+void FollowUpReminderNoAnswerWidget::saveTreeWidgetHeader(KConfigGroup &group)
+{
+ group.writeEntry( "HeaderState", mTreeWidget->header()->saveState() );
+}
+
diff --git a/agents/followupreminderagent/followupremindernoanswerdialog.h \
b/agents/followupreminderagent/followupremindernoanswerdialog.h index \
23dd86e..c273478 100644
--- a/agents/followupreminderagent/followupremindernoanswerdialog.h
+++ b/agents/followupreminderagent/followupremindernoanswerdialog.h
@@ -19,7 +19,32 @@
#define FOLLOWUPREMINDERNOANSWERDIALOG_H
#include <KDialog>
-class QListWidget;
+
+class FollowUpReminderInfo;
+class QTreeWidget;
+class FollowUpReminderNoAnswerWidget : public QWidget
+{
+ Q_OBJECT
+public:
+ explicit FollowUpReminderNoAnswerWidget(QWidget *parent=0);
+ ~FollowUpReminderNoAnswerWidget();
+
+ void restoreTreeWidgetHeader(const QByteArray &data);
+ void saveTreeWidgetHeader(KConfigGroup &group);
+
+ void setInfo(const QList<FollowUpReminderInfo *> &info);
+private slots:
+ void customContextMenuRequested(const QPoint &pos);
+ void slotRemoveItem();
+
+private:
+ enum FollowUpReminderColumn {
+ date = 0,
+ Subject
+ };
+ QTreeWidget *mTreeWidget;
+};
+
class FollowUpReminderNoAnswerDialog : public KDialog
{
Q_OBJECT
@@ -27,8 +52,12 @@ public:
explicit FollowUpReminderNoAnswerDialog(QWidget *parent);
~FollowUpReminderNoAnswerDialog();
+ void setInfo(const QList<FollowUpReminderInfo *> &info);
+
private:
- QListWidget *mListWidget;
+ void readConfig();
+ void writeConfig();
+ FollowUpReminderNoAnswerWidget *mWidget;
};
#endif // FOLLOWUPREMINDERNOANSWERDIALOG_H
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic