[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdepim] libksieve/ksieveui/vacation: Add page
From:       Montel Laurent <montel () kde ! org>
Date:       2013-12-14 9:32:41
Message-ID: E1VrlaT-0000Mp-6N () scm ! kde ! org
[Download RAW message or body]

Git commit 595aec8a040d924cd75d0735afcbcc6ef7fb1bf5 by Montel Laurent.
Committed on 14/12/2013 at 09:32.
Pushed by mlaurent into branch 'master'.

Add page

M  +27   -1    libksieve/ksieveui/vacation/multiimapvacationdialog.cpp
M  +2    -0    libksieve/ksieveui/vacation/multiimapvacationdialog.h
M  +26   -1    libksieve/ksieveui/vacation/vacationpagewidget.cpp
M  +10   -0    libksieve/ksieveui/vacation/vacationpagewidget.h

http://commits.kde.org/kdepim/595aec8a040d924cd75d0735afcbcc6ef7fb1bf5

diff --git a/libksieve/ksieveui/vacation/multiimapvacationdialog.cpp \
b/libksieve/ksieveui/vacation/multiimapvacationdialog.cpp index 4a91a70..c400e8d \
                100644
--- a/libksieve/ksieveui/vacation/multiimapvacationdialog.cpp
+++ b/libksieve/ksieveui/vacation/multiimapvacationdialog.cpp
@@ -17,6 +17,10 @@
 
 
 #include "multiimapvacationdialog.h"
+#include "vacationpagewidget.h"
+#include "ksieveui/util/util.h"
+
+#include <Akonadi/AgentInstance>
 
 #include <KLocale>
 #include <kwindowsystem.h>
@@ -36,7 +40,7 @@ MultiImapVacationDialog::MultiImapVacationDialog(const QString \
&caption, QWidget  
     mTabWidget = new QTabWidget;
     setMainWidget(mTabWidget);
-
+    init();
     readConfig();
 }
 
@@ -45,6 +49,28 @@ MultiImapVacationDialog::~MultiImapVacationDialog()
 
 }
 
+void MultiImapVacationDialog::init()
+{
+    const Akonadi::AgentInstance::List instances = \
KSieveUi::Util::imapAgentInstances(); +    foreach ( const Akonadi::AgentInstance \
&instance, instances ) { +        if ( instance.status() == \
Akonadi::AgentInstance::Broken ) +            continue;
+
+        const KUrl url = KSieveUi::Util::findSieveUrlForAccount( \
instance.identifier() ); +        if ( !url.isEmpty() ) {
+            const QString serverName = instance.name();
+            createPage(serverName, url);
+        }
+    }
+}
+
+void MultiImapVacationDialog::createPage(const QString &serverName, const KUrl &url)
+{
+    VacationPageWidget *page = new VacationPageWidget;
+    page->setServerUrl(url);
+    mTabWidget->addTab(page,serverName);
+}
+
 void MultiImapVacationDialog::readConfig()
 {
     KConfigGroup group( KGlobal::config(), "MultiImapVacationDialog" );
diff --git a/libksieve/ksieveui/vacation/multiimapvacationdialog.h \
b/libksieve/ksieveui/vacation/multiimapvacationdialog.h index 9fd467e..2487306 100644
--- a/libksieve/ksieveui/vacation/multiimapvacationdialog.h
+++ b/libksieve/ksieveui/vacation/multiimapvacationdialog.h
@@ -30,6 +30,8 @@ public:
     ~MultiImapVacationDialog();
 
 private:
+    void createPage(const QString &serverName, const KUrl &url);
+    void init();
     void readConfig();
     void writeConfig();
     QTabWidget *mTabWidget;
diff --git a/libksieve/ksieveui/vacation/vacationpagewidget.cpp \
b/libksieve/ksieveui/vacation/vacationpagewidget.cpp index 20e91be..93bd53d 100644
--- a/libksieve/ksieveui/vacation/vacationpagewidget.cpp
+++ b/libksieve/ksieveui/vacation/vacationpagewidget.cpp
@@ -19,11 +19,17 @@
 #include "vacationeditwidget.h"
 #include "vacationwarningwidget.h"
 
+#include <kmanagesieve/sievejob.h>
+
+#include <KUrl>
+#include <KDebug>
+
 #include <QVBoxLayout>
 
 using namespace KSieveUi;
 VacationPageWidget::VacationPageWidget(QWidget *parent)
-    : QWidget(parent)
+    : QWidget(parent),
+      mSieveJob(0)
 {
     QVBoxLayout *lay = new QVBoxLayout;
     lay->setMargin(0);
@@ -38,5 +44,24 @@ VacationPageWidget::VacationPageWidget(QWidget *parent)
 
 VacationPageWidget::~VacationPageWidget()
 {
+    if ( mSieveJob )
+        mSieveJob->kill();
+    mSieveJob = 0;
+}
 
+void VacationPageWidget::setServerUrl(const KUrl &url)
+{
+    mSieveJob = KManageSieve::SieveJob::get( url );
+    connect( mSieveJob, \
SIGNAL(gotScript(KManageSieve::SieveJob*,bool,QString,bool)), +             \
SLOT(slotGetResult(KManageSieve::SieveJob*,bool,QString,bool)) ); +}
+
+void VacationPageWidget::slotGetResult( KManageSieve::SieveJob * job, bool success, \
const QString & script, bool active ) +{
+    kDebug() << success
+             << ", ?," << active << ")" << endl
+             << "script:" << endl
+             << script;
+    mSieveJob = 0; // job deletes itself after returning from this slot!
+    //TODO
 }
diff --git a/libksieve/ksieveui/vacation/vacationpagewidget.h \
b/libksieve/ksieveui/vacation/vacationpagewidget.h index c689f17..1f3d98a 100644
--- a/libksieve/ksieveui/vacation/vacationpagewidget.h
+++ b/libksieve/ksieveui/vacation/vacationpagewidget.h
@@ -19,6 +19,10 @@
 #define VACATIONPAGEWIDGET_H
 
 #include <QWidget>
+class KUrl;
+namespace KManageSieve {
+class SieveJob;
+}
 
 namespace KSieveUi {
 class VacationEditWidget;
@@ -30,9 +34,15 @@ public:
     explicit VacationPageWidget(QWidget *parent=0);
     ~VacationPageWidget();
 
+    void setServerUrl(const KUrl &url);
+
+private slots:
+    void slotGetResult(KManageSieve::SieveJob *job, bool success, const QString \
&script, bool active); +
 private:
     VacationEditWidget *mVacationEditWidget;
     VacationWarningWidget *mVacationWarningWidget;
+    KManageSieve::SieveJob *mSieveJob;
 };
 }
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic