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

List:       kde-commits
Subject:    [kipi-plugins] mediawiki: use d private internal container
From:       Gilles Caulier <caulier.gilles () gmail ! com>
Date:       2012-07-09 8:48:03
Message-ID: 20120709084803.DA0FBA6094 () git ! kde ! org
[Download RAW message or body]

Git commit 204c4de1047d9b17971a21f5c4fed3057dba5456 by Gilles Caulier.
Committed on 09/07/2012 at 10:47.
Pushed by cgilles into branch 'master'.

use d private internal container
CCBUGS: 302755

M  +89   -58   mediawiki/wmwindow.cpp
M  +3    -26   mediawiki/wmwindow.h

http://commits.kde.org/kipi-plugins/204c4de1047d9b17971a21f5c4fed3057dba5456

diff --git a/mediawiki/wmwindow.cpp b/mediawiki/wmwindow.cpp
index 797d3da..baf01a3 100644
--- a/mediawiki/wmwindow.cpp
+++ b/mediawiki/wmwindow.cpp
@@ -43,8 +43,10 @@
 #include <kpushbutton.h>
 #include <kmessagebox.h>
 
-// Mediawiki includes
+// MediaWiki includes
 
+#include <libmediawiki/login.h>
+#include <libmediawiki/mediawiki.h>
 #include <libmediawiki/version.h>
 
 // KIPI includes
@@ -61,20 +63,46 @@
 #include "wmwidget.h"
 #include "wikimediajob.h"
 
+using namespace KIPI;
+using namespace mediawiki;
+
 namespace KIPIWikiMediaPlugin
 {
 
+class WMWindow::Private
+{
+public:
+
+    Private()
+    {
+        widget    = 0;
+        mediawiki = 0;
+        uploadJob = 0;
+    }
+
+    QString       tmpDir;
+    QString       tmpPath;
+    QString       login;
+    QString       pass;
+    QUrl          wiki;
+
+    WmWidget*     widget;
+    MediaWiki*    mediawiki;
+
+    WikiMediaJob* uploadJob;
+};
+
 WMWindow::WMWindow(const QString& tmpFolder, QWidget* const /*parent*/)
-    : KPToolDialog(0)
+    : KPToolDialog(0), d(new Private)
 {
-    m_tmpPath.clear();
-    m_tmpDir    = tmpFolder;
-    m_widget    = new WmWidget(this);
-    m_uploadJob = 0;
-    m_login     = QString();
-    m_pass      = QString();
-
-    setMainWidget(m_widget);
+    d->tmpPath.clear();
+    d->tmpDir    = tmpFolder;
+    d->widget    = new WmWidget(this);
+    d->uploadJob = 0;
+    d->login     = QString();
+    d->pass      = QString();
+
+    setMainWidget(d->widget);
     setWindowIcon(KIcon("wikimedia"));
     setButtons(Help|User1|Close);
     setDefaultButton(Close);
@@ -83,8 +111,8 @@ WMWindow::WMWindow(const QString& tmpFolder, QWidget* const /*parent*/)
     setButtonGuiItem(User1, KGuiItem(i18n("Start Upload"), "network-workgroup",
                                      i18n("Start upload to Wikimedia Commons")));
     enableButton(User1, false);
-    m_widget->setMinimumSize(700, 500);
-    m_widget->installEventFilter(this);
+    d->widget->setMinimumSize(700, 500);
+    d->widget->installEventFilter(this);
 
     KPAboutData* about = new KPAboutData(ki18n("Wikimedia Commons Export"), 0,
                                          KAboutData::License_GPL,
@@ -114,13 +142,13 @@ WMWindow::WMWindow(const QString& tmpFolder, QWidget* const /*parent*/)
     connect(this, SIGNAL(closeClicked()),
             this, SLOT(slotClose()));
 
-    connect(m_widget, SIGNAL(signalChangeUserRequest()),
+    connect(d->widget, SIGNAL(signalChangeUserRequest()),
             this, SLOT(slotChangeUserClicked()));
 
-    connect(m_widget, SIGNAL(signalLoginRequest(QString, QString, QUrl)),
+    connect(d->widget, SIGNAL(signalLoginRequest(QString, QString, QUrl)),
             this, SLOT(slotDoLogin(QString, QString, QUrl)));
 
-    connect(m_widget->progressBar(), SIGNAL(signalProgressCanceled()),
+    connect(d->widget->progressBar(), SIGNAL(signalProgressCanceled()),
             this, SLOT(slotClose()));
 
     readSettings();
@@ -129,6 +157,7 @@ WMWindow::WMWindow(const QString& tmpFolder, QWidget* const /*parent*/)
 
 WMWindow::~WMWindow()
 {
+    delete d;
 }
 
 void WMWindow::closeEvent(QCloseEvent* e)
@@ -140,9 +169,9 @@ void WMWindow::closeEvent(QCloseEvent* e)
 
 void WMWindow::reactivate()
 {
-    m_widget->imagesList()->listView()->clear();
-    m_widget->imagesList()->loadImagesFromCurrentSelection();
-    m_widget->loadImageInfoFirstLoad();
+    d->widget->imagesList()->listView()->clear();
+    d->widget->imagesList()->loadImagesFromCurrentSelection();
+    d->widget->loadImageInfoFirstLoad();
 
     show();
 }
@@ -152,7 +181,7 @@ void WMWindow::readSettings()
     KConfig config("kipirc");
     KConfigGroup group = config.group(QString("Wikimedia Commons settings"));
 
-    m_widget->readSettings(group);
+    d->widget->readSettings(group);
 
     KConfigGroup group2 = config.group(QString("Wikimedia Commons dialog"));
     restoreDialogSize(group2);
@@ -163,7 +192,7 @@ void WMWindow::saveSettings()
     KConfig config("kipirc");
     KConfigGroup group = config.group(QString("Wikimedia Commons settings"));
 
-    m_widget->saveSettings(group);
+    d->widget->saveSettings(group);
 
     KConfigGroup group2 = config.group(QString("Wikimedia Commons dialog"));
     saveDialogSize(group2);
@@ -172,8 +201,8 @@ void WMWindow::saveSettings()
 
 void WMWindow::slotClose()
 {
-    m_widget->clearImagesDesc();
-    m_widget->progressBar()->progressCompleted();
+    d->widget->clearImagesDesc();
+    d->widget->progressBar()->progressCompleted();
     saveSettings();
     done(Close);
 }
@@ -197,10 +226,10 @@ bool WMWindow::prepareImageForUpload(const QString& imgPath, QString& caption)
     }
 
     // get temporary file name
-    m_tmpPath = m_tmpDir + QFileInfo(imgPath).baseName().trimmed() + ".jpg";
+    d->tmpPath = d->tmpDir + QFileInfo(imgPath).baseName().trimmed() + ".jpg";
 
     // rescale image if requested
-    int maxDim = m_widget->dimension();
+    int maxDim = d->widget->dimension();
 
     if (image.width() > maxDim || image.height() > maxDim)
     {
@@ -209,8 +238,8 @@ bool WMWindow::prepareImageForUpload(const QString& imgPath, QString& caption)
                              Qt::SmoothTransformation);
     }
 
-    kDebug() << "Saving to temp file: " << m_tmpPath;
-    image.save(m_tmpPath, "JPEG", m_widget->quality());
+    kDebug() << "Saving to temp file: " << d->tmpPath;
+    image.save(d->tmpPath, "JPEG", d->widget->quality());
 
     // copy meta data to temporary image
     KPMetadata meta;
@@ -219,7 +248,7 @@ bool WMWindow::prepareImageForUpload(const QString& imgPath, QString& caption)
     {
         caption = getImageCaption(imgPath);
         meta.setImageDimensions(image.size());
-        meta.save(m_tmpPath);
+        meta.save(d->tmpPath);
     }
     else
     {
@@ -232,50 +261,50 @@ bool WMWindow::prepareImageForUpload(const QString& imgPath, QString& caption)
 void WMWindow::slotStartTransfer()
 {
     saveSettings();
-    KUrl::List urls = iface()->currentSelection().images();
-    QMap <QString,QMap <QString,QString> > imagesDesc=m_widget->allImagesDesc();
+    KUrl::List urls                                     = iface()->currentSelection().images();
+    QMap <QString, QMap <QString, QString> > imagesDesc = d->widget->allImagesDesc();
 
     for (int i = 0; i < urls.size(); ++i)
     {
         QString caption;
         QString url;
-        if(m_widget->resize())
+        if(d->widget->resize())
         {
             prepareImageForUpload(urls.at(i).path(), caption);
-            imagesDesc.insert(m_tmpPath, imagesDesc.take(urls.at(i).path()));
+            imagesDesc.insert(d->tmpPath, imagesDesc.take(urls.at(i).path()));
         }
     }
 
-    m_uploadJob->setImageMap(imagesDesc);
+    d->uploadJob->setImageMap(imagesDesc);
 
-    m_widget->progressBar()->setRange(0, 100);
-    m_widget->progressBar()->setValue(0);
+    d->widget->progressBar()->setRange(0, 100);
+    d->widget->progressBar()->setValue(0);
 
-    connect(m_uploadJob, SIGNAL(uploadProgress(int)),
-            m_widget->progressBar(), SLOT(setValue(int)));
+    connect(d->uploadJob, SIGNAL(uploadProgress(int)),
+            d->widget->progressBar(), SLOT(setValue(int)));
 
-    connect(m_uploadJob, SIGNAL(endUpload()),
+    connect(d->uploadJob, SIGNAL(endUpload()),
             this, SLOT(slotEndUpload()));
 
-    m_widget->progressBar()->show();
-    m_widget->progressBar()->progressScheduled(i18n("Wiki Export"), true, true);
-    m_widget->progressBar()->progressThumbnailChanged(KIcon("kipi").pixmap(22, 22));
-    m_uploadJob->begin();
+    d->widget->progressBar()->show();
+    d->widget->progressBar()->progressScheduled(i18n("Wiki Export"), true, true);
+    d->widget->progressBar()->progressThumbnailChanged(KIcon("kipi").pixmap(22, 22));
+    d->uploadJob->begin();
 }
 
 void WMWindow::slotChangeUserClicked()
 {
     enableButton(User1, false);
-    m_widget->invertAccountLoginBox();
+    d->widget->invertAccountLoginBox();
 }
 
 void WMWindow::slotDoLogin(const QString& login, const QString& pass, const QUrl& wiki)
 {
-    m_login         = login;
-    m_pass          = pass;
-    m_wiki          = wiki;
-    m_mediawiki     = new MediaWiki(wiki);
-    Login* loginJob = new Login(*m_mediawiki, login, pass);
+    d->login        = login;
+    d->pass         = pass;
+    d->wiki         = wiki;
+    d->mediawiki    = new MediaWiki(wiki);
+    Login* loginJob = new Login(*d->mediawiki, login, pass);
 
     connect(loginJob, SIGNAL(result(KJob*)), 
             this, SLOT(slotLoginHandle(KJob*)));
@@ -289,18 +318,18 @@ int WMWindow::slotLoginHandle(KJob* loginJob)
 
     if(loginJob->error())
     {
-        m_login.clear();
-        m_pass.clear();
-        m_uploadJob = 0;
+        d->login.clear();
+        d->pass.clear();
+        d->uploadJob = 0;
         //TODO Message d'erreur de login
         KMessageBox::error(this, i18n("Login error\nPlease check your credentials and try again."));
     }
     else
     {
-        m_uploadJob = new WikiMediaJob(iface(), m_mediawiki, this);
+        d->uploadJob = new WikiMediaJob(iface(), d->mediawiki, this);
         enableButton(User1, true);
-        m_widget->invertAccountLoginBox();
-        m_widget->updateLabels(m_login, m_wiki.toString());
+        d->widget->invertAccountLoginBox();
+        d->widget->updateLabels(d->login, d->wiki.toString());
     }
 
     return loginJob->error();
@@ -308,15 +337,15 @@ int WMWindow::slotLoginHandle(KJob* loginJob)
 
 void WMWindow::slotEndUpload()
 {
-    disconnect(m_uploadJob, SIGNAL(uploadProgress(int)),
-               m_widget->progressBar(),SLOT(setValue(int)));
+    disconnect(d->uploadJob, SIGNAL(uploadProgress(int)),
+               d->widget->progressBar(),SLOT(setValue(int)));
 
-    disconnect(m_uploadJob, SIGNAL(endUpload()),
+    disconnect(d->uploadJob, SIGNAL(endUpload()),
                this, SLOT(slotEndUpload()));
 
     KMessageBox::information(this, i18n("Upload finished with no errors."));
-    m_widget->progressBar()->hide();
-    m_widget->progressBar()->progressCompleted();
+    d->widget->progressBar()->hide();
+    d->widget->progressBar()->progressCompleted();
     hide();
 }
 
@@ -325,6 +354,7 @@ bool WMWindow::eventFilter(QObject* /*obj*/, QEvent* event)
     if(event->type() == QEvent::KeyRelease)
     {
         QKeyEvent* c = dynamic_cast<QKeyEvent *>(event);
+
         if(c && c->key() == Qt::Key_Return)
         {
             event->ignore();
@@ -333,6 +363,7 @@ bool WMWindow::eventFilter(QObject* /*obj*/, QEvent* event)
 
         }
     }
+
     return true;
 }
 
diff --git a/mediawiki/wmwindow.h b/mediawiki/wmwindow.h
index a220caf..5acbbdb 100644
--- a/mediawiki/wmwindow.h
+++ b/mediawiki/wmwindow.h
@@ -25,33 +25,19 @@
 #ifndef WMWINDOW_H
 #define WMWINDOW_H
 
-// MediaWiki includes
-
-#include <libmediawiki/login.h>
-#include <libmediawiki/mediawiki.h>
-
 // Local includes
 
 #include "kptooldialog.h"
 
 class QCloseEvent;
 
-namespace KIPI
-{
-    class Interface;
-}
+class KJob;
 
-using namespace KIPI;
 using namespace KIPIPlugins;
-using namespace mediawiki;
 
 namespace KIPIWikiMediaPlugin
 {
 
-class WmWidget;
-class WmLogin;
-class WikiMediaJob;
-
 class WMWindow : public KPToolDialog
 {
     Q_OBJECT
@@ -83,17 +69,8 @@ private:
 
 private:
 
-    QString       m_tmpDir;
-    QString       m_tmpPath;
-    QString       m_login;
-    QString       m_pass;
-    QUrl          m_wiki;
-
-    WmWidget*     m_widget;
-    MediaWiki*    m_mediawiki;
-
-    WmLogin*      m_dlgLoginExport;
-    WikiMediaJob* m_uploadJob;
+    class Private;
+    Private* const d;
 };
 
 } // namespace KIPIWikiMediaPlugin
[prev in list] [next in list] [prev in thread] [next in thread] 

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