[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