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

List:       kde-commits
Subject:    KDE/kdebase/workspace/kcontrol/kfontinst/kcmfontinst
From:       Craig Drummond <craig () kde ! org>
Date:       2007-01-25 12:15:24
Message-ID: 1169727324.707917.24159.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 627005 by craig:

Use 45degree steps for animation - and put animation code into a base class.


 A             ActionDialog.cpp   [License: no copyright GPL (v2)]
 A             ActionDialog.h   [License: no copyright GPL (v2)]
 M  +3 -30     DuplicatesDialog.cpp  
 M  +3 -10     DuplicatesDialog.h  
 M  +6 -34     JobRunner.cpp  
 M  +3 -12     JobRunner.h  


--- trunk/KDE/kdebase/workspace/kcontrol/kfontinst/kcmfontinst/DuplicatesDialog.cpp #627004:627005
@@ -61,12 +61,11 @@
 };
 
 CDuplicatesDialog::CDuplicatesDialog(QWidget *parent, CJobRunner *jr)
-                 : KDialog(parent),
+                 : CActionDialog(parent),
                    itsModifiedSys(false),
                    itsModifiedUser(false),
                    itsRunner(jr)
 {
-    setModal(true);
     setCaption(i18n("Duplicate Fonts"));
     setButtons(KDialog::Ok|KDialog::Cancel);
     enableButtonOk(false);
@@ -77,55 +76,29 @@
     QGridLayout *layout=new QGridLayout(page);
     layout->setMargin(0);
     layout->setSpacing(KDialog::spacingHint());
-    itsPixmapLabel=new QLabel(page);
     itsLabel=new QLabel(page);
     itsView=new CFontFileListView(page);
     itsView->hide();
-
-    //itsView->setSortingEnabled(true);
-    itsIcons[0]=KIconLoader::global()->loadIcon("font_truetype", K3Icon::NoGroup, 48);
-
-    QImage img(itsIcons[0].toImage());
-    itsIcons[1]=KImageEffect::rotate(img, KImageEffect::Rotate90);
-    itsIcons[2]=KImageEffect::rotate(img, KImageEffect::Rotate180);
-    itsIcons[3]=KImageEffect::rotate(img, KImageEffect::Rotate270);
-
-    itsPixmapLabel->setPixmap(itsIcons[0]);
     layout->addWidget(itsPixmapLabel, 0, 0);
     layout->addWidget(itsLabel, 0, 1);
     itsLabel->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
     layout->addWidget(itsView, 1, 0, 1, 2);
-    itsTimer=new QTimer(this);
     itsFontFileList=new CFontFileList(this);
-    connect(itsTimer, SIGNAL(timeout()), SLOT(increment()));
     connect(itsFontFileList, SIGNAL(finished()), SLOT(scanFinished()));
     connect(itsView, SIGNAL(haveDeletions(bool)), SLOT(enableButtonOk(bool)));
 }
 
 int CDuplicatesDialog::exec()
 {
-    itsCount=0;
     itsModifiedSys=itsModifiedUser=false;
     itsLabel->setText(i18n("Scanning for duplicate fonts. Please wait..."));
-    itsPixmapLabel->setPixmap(itsIcons[0]);
-    itsTimer->start(1000/constNumIcons);
     itsFontFileList->start();
-    return KDialog::exec();
+    return CActionDialog::exec();
 }
 
-void CDuplicatesDialog::increment()
-{
-    if(++itsCount==constNumIcons)
-        itsCount=0;
-
-    itsPixmapLabel->setPixmap(itsIcons[itsCount]);
-}
-
 void CDuplicatesDialog::scanFinished()
 {
-    itsTimer->stop();
-    itsCount=0;
-    itsPixmapLabel->setPixmap(itsIcons[itsCount]);
+    stopAnimation();
 
     if(itsFontFileList->wasTerminated())
         reject();
--- trunk/KDE/kdebase/workspace/kcontrol/kfontinst/kcmfontinst/DuplicatesDialog.h #627004:627005
@@ -26,8 +26,8 @@
 #include <QPixmap>
 #include <QThread>
 #include <QTreeWidget>
-#include <kdialog.h>
 #include "DisabledFonts.h"
+#include "ActionDialog.h"
 
 class QTimer;
 class QLabel;
@@ -129,10 +129,8 @@
             *itsUnMarkAct;
 };
 
-class CDuplicatesDialog : public KDialog
+class CDuplicatesDialog : public CActionDialog
 {
-    static const int constNumIcons=4;
-
     Q_OBJECT
 
     public:
@@ -146,7 +144,6 @@
 
     private Q_SLOTS:
 
-    void increment();
     void scanFinished();
     void slotButtonClicked(int button);
 
@@ -161,12 +158,8 @@
     bool              itsModifiedSys,
                       itsModifiedUser;
     CFontFileList     *itsFontFileList;
-    QLabel            *itsLabel,
-                      *itsPixmapLabel;
+    QLabel            *itsLabel;
     CFontFileListView *itsView;
-    QTimer            *itsTimer;
-    int               itsCount;
-    QPixmap           itsIcons[constNumIcons];
     CJobRunner        *itsRunner;
 };
 
--- trunk/KDE/kdebase/workspace/kcontrol/kfontinst/kcmfontinst/JobRunner.cpp #627004:627005
@@ -31,12 +31,11 @@
 #include <klocale.h>
 #include <kpassworddialog.h>
 #include <kdesu/su.h>
-#include <kimageeffect.h>
 #include <QGridLayout>
 #include <QProgressBar>
 #include <QLabel>
-#include <QTimer>
 #include <QX11Info>
+#include <QTimer>
 #include <X11/Xlib.h>
 #include <fixx11h.h>
 #include <sys/resource.h>
@@ -55,7 +54,7 @@
 }
 
 CJobRunner::CJobRunner(QWidget *parent, int xid)
-           : KDialog(parent),
+           : CActionDialog(parent),
              itsIt(itsUrls.end()),
              itsEnd(itsIt),
              itsAutoSkip(false)
@@ -76,23 +75,11 @@
     QGridLayout *layout=new QGridLayout(page);
     layout->setMargin(KDialog::marginHint());
     layout->setSpacing(KDialog::spacingHint());
-    itsPixmapLabel=new QLabel(page);
     itsStatusLabel=new QLabel(page);
     itsProgress=new QProgressBar(page);
-    itsIcons[0]=KIconLoader::global()->loadIcon("font_truetype", K3Icon::NoGroup, 48);
-
-    QImage img(itsIcons[0].toImage());
-    itsIcons[1]=KImageEffect::rotate(img, KImageEffect::Rotate90);
-    itsIcons[2]=KImageEffect::rotate(img, KImageEffect::Rotate180);
-    itsIcons[3]=KImageEffect::rotate(img, KImageEffect::Rotate270);
-
-    itsPixmapLabel->setPixmap(itsIcons[0]);
     layout->addWidget(itsPixmapLabel, 0, 0, 2, 1);
     layout->addWidget(itsStatusLabel, 0, 1);
     layout->addWidget(itsProgress, 1, 1);
-
-    itsTimer=new QTimer(this);
-    connect(itsTimer, SIGNAL(timeout()), SLOT(rotateIcon()));
 }
 
 CJobRunner::~CJobRunner()
@@ -166,13 +153,10 @@
     itsProgress->setRange(0, itsUrls.count()+1);
     itsProgress->show();
     itsCmd=cmd;
-    itsCount=0;
-    itsPixmapLabel->setPixmap(itsIcons[0]);
     itsStatusLabel->setText(QString());
-    itsTimer->start(1000/constNumIcons);
     itsAutoSkip=false;
     QTimer::singleShot(0, this, SLOT(doNext()));
-    return KDialog::exec();
+    return CActionDialog::exec();
 }
 
 void CJobRunner::doNext()
@@ -262,9 +246,7 @@
 
         if(!cont)
         {
-            itsTimer->stop();
-            itsCount=0;
-            itsPixmapLabel->setPixmap(itsIcons[itsCount]);
+            stopAnimation();
 
             ItemList::ConstIterator next(itsIt==itsEnd ? itsEnd : itsIt+1);
 
@@ -293,7 +275,7 @@
 
         if(cont)
         {
-            itsTimer->start(1000/constNumIcons);
+            startAnimation();
             ++itsIt;
             doNext();
         }
@@ -309,9 +291,7 @@
 
 void CJobRunner::cfgResult(KJob *job)
 {
-    itsTimer->stop();
-    itsProgress->setValue(itsProgress->value()+1);
-    itsPixmapLabel->setPixmap(itsIcons[0]);
+    stopAnimation();
 
     if(job && 0==job->error())
     {
@@ -326,14 +306,6 @@
         reject();
 }
 
-void CJobRunner::rotateIcon()
-{
-    if(++itsCount==constNumIcons)
-        itsCount=0;
-
-    itsPixmapLabel->setPixmap(itsIcons[itsCount]);
-}
-
 void CJobRunner::slotButtonClicked(int)
 {
     if(itsIt!=itsEnd &&
--- trunk/KDE/kdebase/workspace/kcontrol/kfontinst/kcmfontinst/JobRunner.h #627004:627005
@@ -23,8 +23,8 @@
 #ifndef __JOB_RUNNER_H__
 #define __JOB_RUNNER_H__
 
-#include <kdialog.h>
 #include <kio/job.h>
+#include "ActionDialog.h"
 
 class QLabel;
 class QProgressBar;
@@ -33,14 +33,10 @@
 namespace KFI
 {
 
-class CJobRunner : public KDialog
+class CJobRunner : public CActionDialog
 {
     Q_OBJECT
 
-    private:
-
-    static const int constNumIcons=4;
-
     public:
 
     struct Item : public KUrl
@@ -73,7 +69,6 @@
     void doNext();
     void jobResult(KJob *job);
     void cfgResult(KJob *job);
-    void rotateIcon();
     void slotButtonClicked(int button);
 
     private:
@@ -88,12 +83,8 @@
                             itsEnd;
     KUrl                    itsDest;
     QString                 itsPasswd;
-    QLabel                  *itsPixmapLabel,
-                            *itsStatusLabel;
+    QLabel                  *itsStatusLabel;
     QProgressBar            *itsProgress;
-    QTimer                  *itsTimer;
-    int                     itsCount;
-    QPixmap                 itsIcons[constNumIcons];
     bool                    itsAutoSkip;
 };
 
[prev in list] [next in list] [prev in thread] [next in thread] 

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