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

List:       kde-commits
Subject:    [kolourpaint] /: code cleanup/refactoring kpToolAction, etc.
From:       Martin Koller <kollix () aon ! at>
Date:       2011-09-02 18:04:04
Message-ID: 20110902180404.3941EA6078 () git ! kde ! org
[Download RAW message or body]

Git commit 5026c383037b3a338ba5446732e3b613cafb57af by Martin Koller.
Committed on 02/09/2011 at 20:03.
Pushed by mkoller into branch 'master'.

code cleanup/refactoring kpToolAction, etc.

M  +0    -9    mainWindow/kpMainWindow_Settings.cpp
M  +11   -36   tools/kpTool.h
M  +51   -59   tools/flow/kpToolFlowBase.h
M  +29   -90   tools/kpTool.cpp
M  +11   -33   mainWindow/kpMainWindow_Tools.cpp
M  +7    -23   widgets/toolbars/kpToolToolBar.h
M  +18   -81   tools/kpToolAction.cpp
M  +6    -8    tools/kpToolZoom.cpp
M  +87   -169  widgets/toolbars/kpToolToolBar.cpp
M  +0    -16   tools/kpTool_OtherEvents.cpp
M  +10   -37   tools/kpToolAction.h
M  +7    -15   mainWindow/kpMainWindow.cpp
M  +0    -2    tools/kpToolZoom.h

http://commits.kde.org/kolourpaint/5026c383037b3a338ba5446732e3b613cafb57af

diff --git a/mainWindow/kpMainWindow.cpp b/mainWindow/kpMainWindow.cpp
index 79517ca..58b29b4 100644
--- a/mainWindow/kpMainWindow.cpp
+++ b/mainWindow/kpMainWindow.cpp
@@ -299,25 +299,17 @@ void kpMainWindow::init ()
 
     setAutoSaveSettings ();
 
-    // Put our non-XMLGUI toolbars in a sane place, the first time around
-    // (have to do this _after_ setAutoSaveSettings as that applies default
-    //  (i.e. random) settings to the toolbars)
+    // our non-XMLGUI tools-toolbar will get initially the toolButtonStyle as
+    // all other toolbars, but we want to show only icons for the tools by default
+    // (have to do this _after_ setAutoSaveSettings as that applies the default \
settings)  if (d->configFirstTime)
     {
-    #if DEBUG_KP_MAIN_WINDOW
-        kDebug () << "\tfirstTime: positioning toolbars";
-    #endif
-
-    // Not needed due to above toolbar HACK.
-    #if 0
-        addToolBar (Qt::LeftToolBarArea, d->toolToolBar);
-        addToolBar (Qt::BottomToolBarArea, d->colorToolBar);
-    #endif
+      d->toolToolBar->setToolButtonStyle(Qt::ToolButtonIconOnly);
 
-        KConfigGroup cfg (KGlobal::config (), kpSettingsGroupGeneral);
+      KConfigGroup cfg(KGlobal::config(), kpSettingsGroupGeneral);
 
-        cfg.writeEntry (kpSettingFirstTime, d->configFirstTime = false);
-        cfg.sync ();
+      cfg.writeEntry(kpSettingFirstTime, d->configFirstTime = false);
+      cfg.sync();
     }
 
 
diff --git a/mainWindow/kpMainWindow_Settings.cpp \
b/mainWindow/kpMainWindow_Settings.cpp index f6f0fac..889306f 100644
--- a/mainWindow/kpMainWindow_Settings.cpp
+++ b/mainWindow/kpMainWindow_Settings.cpp
@@ -132,22 +132,13 @@ void kpMainWindow::slotShowPathToggled ()
 // private slot
 void kpMainWindow::slotKeyBindings ()
 {
-#if DEBUG_KP_MAIN_WINDOW
-    kDebug () << "kpMainWindow::slotKeyBindings()";
-#endif
-
     toolEndShape ();
 
     if (KShortcutsDialog::configure (actionCollection (),
             KShortcutsEditor::LetterShortcutsAllowed,
             this))
     {
-    #if DEBUG_KP_MAIN_WINDOW
-        kDebug () << "\tdialog accepted";
-    #endif
         // TODO: PROPAGATE: thru mainWindow's and interprocess
-
-        kpToolAction::updateAllActionsToolTips (actionCollection ());
     }
 }
 
diff --git a/mainWindow/kpMainWindow_Tools.cpp b/mainWindow/kpMainWindow_Tools.cpp
index 854349e..109da78 100644
--- a/mainWindow/kpMainWindow_Tools.cpp
+++ b/mainWindow/kpMainWindow_Tools.cpp
@@ -1,6 +1,6 @@
-
 /*
    Copyright (c) 2003-2007 Clarence Dang <dang@kde.org>
+   Copyright (c) 2011 Martin Koller <kollix@aon.at>
    All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
@@ -178,10 +178,8 @@ void kpMainWindow::setupToolActions ()
 // private
 void kpMainWindow::createToolBox ()
 {
-    d->toolToolBar = new kpToolToolBar (i18n ("Tool Box"), 2/*columns/rows*/, this);
-
-    // (needed for QMainWindow::saveState())
-    d->toolToolBar->setObjectName ( QLatin1String("Tool Box" ));
+    d->toolToolBar = new kpToolToolBar(QLatin1String("Tool Box"), 2/*columns/rows*/, \
this); +    d->toolToolBar->setWindowTitle(i18n("Tool Box"));
 
     connect (d->toolToolBar, SIGNAL (sigToolSelected (kpTool *)),
              this, SLOT (slotToolSelected (kpTool *)));
@@ -193,13 +191,8 @@ void kpMainWindow::createToolBox ()
              SLOT (updateActionDrawOpaqueChecked ()));
     updateActionDrawOpaqueChecked ();
 
-    for (QList <kpTool *>::const_iterator it = d->tools.constBegin ();
-         it != d->tools.constEnd ();
-         ++it)
-    {
-        d->toolToolBar->registerTool (*it);
-    }
-
+    foreach (kpTool *tool, d->tools)
+      d->toolToolBar->registerTool(tool);
 
     // (from config file)
     readLastTool ();
@@ -234,7 +227,7 @@ void kpMainWindow::enableToolsDocumentActions (bool enable)
     }
     else if (!enable && d->toolToolBar->isEnabled ())
     {
-        // don't have a disabled Tool Box with an enabled Tool
+        // don't have a disabled Tool Box with a checked Tool
         d->toolToolBar->selectTool (0);
     }
 
@@ -242,28 +235,13 @@ void kpMainWindow::enableToolsDocumentActions (bool enable)
     d->toolToolBar->setEnabled (enable);
 
 
-    for (QList <kpTool *>::const_iterator it = d->tools.constBegin ();
-         it != d->tools.constEnd ();
-         ++it)
+    foreach (kpTool *tool, d->tools)
     {
-        kpToolAction *action = (*it)->action ();
-        if (action)
-        {
-        #if DEBUG_KP_MAIN_WINDOW
-            kDebug () << "\tchanging enabled state of " << (*it)->objectName ();
-        #endif
-
-            if (!enable && action->isChecked ())
-                action->setChecked (false);
+      kpToolAction *action = tool->action();
+      if (!enable && action->isChecked())
+          action->setChecked(false);
 
-            action->setEnabled (enable);
-        }
-        else
-        {
-        #if DEBUG_KP_MAIN_WINDOW
-            kDebug () << "\tno action for " << (*it)->objectName ();
-        #endif
-        }
+      action->setEnabled(enable);
     }
 
 
diff --git a/tools/flow/kpToolFlowBase.h b/tools/flow/kpToolFlowBase.h
index d5be4dc..79d6350 100644
--- a/tools/flow/kpToolFlowBase.h
+++ b/tools/flow/kpToolFlowBase.h
@@ -1,6 +1,6 @@
 
 /*
-   Copyright (c) 2003-2007 Clarence Dang <dang@kde.org>
+   Copyright(c) 2003-2007 Clarence Dang <dang@kde.org>
    All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
@@ -17,7 +17,7 @@
    IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
    OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT
    NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
@@ -30,8 +30,6 @@
 #define KP_TOOL_FLOW_BASE_H
 
 
-#include <qlist.h>
-#include <qpixmap.h>
 #include <qrect.h>
 
 #include <kpTempImage.h>
@@ -47,80 +45,74 @@ class kpToolFlowCommand;
 
 class kpToolFlowBase : public kpTool
 {
-Q_OBJECT
+  Q_OBJECT
 
-public:
-    kpToolFlowBase (const QString &text, const QString &description,
-        int key,
-        kpToolEnvironment *environ, QObject *parent, const QString &name);
-    virtual ~kpToolFlowBase ();
+  public:
+    kpToolFlowBase(const QString &text, const QString &description,
+                   int key,
+                   kpToolEnvironment *environ, QObject *parent, const QString \
&name);  
-private:
-    void clearBrushCursorData ();
+    virtual ~kpToolFlowBase();
 
-protected:
-    virtual QString haventBegunDrawUserMessage () const = 0;
-
-    virtual bool haveSquareBrushes () const { return false; }
-    virtual bool haveDiverseBrushes () const { return false; }
-    bool haveAnyBrushes () const
-    {
-        return (haveSquareBrushes () || haveDiverseBrushes ());
-    }
-
-    virtual bool colorsAreSwapped () const { return false; }
+    // Returns the dirty rectangle for drawing a brush(of size
+    // <brushWidth>x<brushHeight>) at <mousePoint>.  <mousePoint> will end
+    // up being the midpoint of the returned rectangle(subject to integer
+    // precision).
+    static QRect hotRectForMousePointAndBrushWidthHeight(
+        const QPoint &mousePoint,
+        int brushWidth, int brushHeight);
 
-public:
-    virtual void begin ();
-    virtual void end ();
+    virtual void begin();
+    virtual void end();
 
-    virtual void beginDraw ();
-    virtual void hover (const QPoint &point);
+    virtual void beginDraw();
+    virtual void hover(const QPoint &point);
 
     // drawPoint() normally calls drawLine(point,point).  Override drawPoint()
     // if you think you can be more efficient.
-    virtual QRect drawPoint (const QPoint &point);
-    virtual QRect drawLine (const QPoint &thisPoint, const QPoint &lastPoint) = 0;
+    virtual QRect drawPoint(const QPoint &point);
+    virtual QRect drawLine(const QPoint &thisPoint, const QPoint &lastPoint) = 0;
 
-    virtual bool drawShouldProceed (const QPoint & /*thisPoint*/, const QPoint & \
                /*lastPoint*/, const QRect & /*normalizedRect*/) { return true; }
-    virtual void draw (const QPoint &thisPoint, const QPoint &lastPoint, const QRect \
                &normalizedRect);
-    virtual void cancelShape ();
-    virtual void releasedAllButtons ();
-    virtual void endDraw (const QPoint &, const QRect &);
+    virtual bool drawShouldProceed(const QPoint & /*thisPoint*/, const QPoint & \
/*lastPoint*/, const QRect & /*normalizedRect*/) { return true; } +    virtual void \
draw(const QPoint &thisPoint, const QPoint &lastPoint, const QRect &normalizedRect); \
+    virtual void cancelShape(); +    virtual void releasedAllButtons();
+    virtual void endDraw(const QPoint &, const QRect &);
 
-protected:
-    kpTempImage::UserFunctionType brushDrawFunction () const;
-    void *brushDrawFunctionData () const;
+  protected:
+    virtual QString haventBegunDrawUserMessage() const = 0;
 
-    int brushWidth () const;
-    int brushHeight () const;
+    virtual bool haveSquareBrushes() const { return false; }
+    virtual bool haveDiverseBrushes() const { return false; }
+    bool haveAnyBrushes() const
+    {
+        return(haveSquareBrushes() || haveDiverseBrushes());
+    }
 
-    bool brushIsDiagonalLine () const;
+    virtual bool colorsAreSwapped() const { return false; }
 
-    kpToolFlowCommand *currentCommand () const;
+    kpTempImage::UserFunctionType brushDrawFunction() const;
+    void *brushDrawFunctionData() const;
 
-protected slots:
-    void updateBrushAndCursor ();
+    int brushWidth() const;
+    int brushHeight() const;
 
-    virtual void slotForegroundColorChanged (const kpColor &col);
-    virtual void slotBackgroundColorChanged (const kpColor &col);
+    bool brushIsDiagonalLine() const;
 
-protected:
-    virtual kpColor color (int which);
+    kpToolFlowCommand *currentCommand() const;
+    virtual kpColor color(int which);
+    QRect hotRect() const;
 
-public:
-    // Returns the dirty rectangle for drawing a brush (of size
-    // <brushWidth>x<brushHeight>) at <mousePoint>.  <mousePoint> will end
-    // up being the midpoint of the returned rectangle (subject to integer
-    // precision).
-    static QRect hotRectForMousePointAndBrushWidthHeight (
-        const QPoint &mousePoint,
-        int brushWidth, int brushHeight);
-protected:
-    QRect hotRect () const;
+  protected slots:
+    void updateBrushAndCursor();
+
+    virtual void slotForegroundColorChanged(const kpColor &col);
+    virtual void slotBackgroundColorChanged(const kpColor &col);
 
+  private:
+    void clearBrushCursorData();
 
-private:
+  private:
     struct kpToolFlowBasePrivate *d;
 };
 
diff --git a/tools/kpTool.cpp b/tools/kpTool.cpp
index a1e8555..802ee0b 100644
--- a/tools/kpTool.cpp
+++ b/tools/kpTool.cpp
@@ -53,19 +53,19 @@
 
 //---------------------------------------------------------------------
 
-kpTool::kpTool (const QString &text, const QString &description,
-        int key,
-        kpToolEnvironment *environ,
-        QObject *parent, const QString &name)
-    : QObject (parent),
-      d (new kpToolPrivate ())
+kpTool::kpTool(const QString &text, const QString &description,
+               int key,
+               kpToolEnvironment *environ,
+               QObject *parent, const QString &name)
+    : QObject(parent),
+      d(new kpToolPrivate())
 {
     d->key = key;
     d->action = 0;
     d->ignoreColorSignals = 0;
     d->shiftPressed = false, d->controlPressed = false, d->altPressed = false;  // \
set in beginInternal()  d->beganDraw = false;
-    d->text = text, d->description = description; setObjectName (name);
+    d->text = text, d->description = description;
     d->began = false;
     d->viewUnderStartPoint = 0;
     d->userShapeStartPoint = KP_INVALID_POINT;
@@ -74,7 +74,8 @@ kpTool::kpTool (const QString &text, const QString &description,
 
     d->environ = environ;
 
-    initAction ();
+    setObjectName(name);
+    initAction();
 }
 
 //---------------------------------------------------------------------
@@ -95,30 +96,24 @@ kpTool::~kpTool ()
 // private
 void kpTool::initAction ()
 {
-#if DEBUG_KP_TOOL && 0
-    kDebug () << "kpTool(" << objectName () << "::initAction()";
-#endif
-
     KActionCollection *ac = d->environ->actionCollection ();
     Q_ASSERT (ac);
 
-
-    d->action = new kpToolAction (text (), iconName (), shortcutForKey (d->key),
-                                 this, SLOT (slotActionActivated ()),
-                                 ac, objectName ());
+    d->action = new kpToolAction(text(), objectName(), shortcutForKey(d->key),
+                                 this, SIGNAL(actionActivated()),
+                                 ac, objectName());
 
     // Make tools mutually exclusive by placing them in the same group.
-    d->action->setActionGroup (d->environ->toolsActionGroup ());
+    d->action->setActionGroup(d->environ->toolsActionGroup ());
 
-    d->action->setWhatsThis (description ());
+    d->action->setWhatsThis(d->description);
 
-    connect (d->action, SIGNAL (toolTipChanged (const QString &)),
-             this, SLOT (slotActionToolTipChanged (const QString &)));
+    connect(d->action, SIGNAL(changed()), this, SIGNAL (actionToolTipChanged()));
 }
 
 //---------------------------------------------------------------------
-
 // public
+
 QString kpTool::text () const
 {
     return d->text;
@@ -126,16 +121,6 @@ QString kpTool::text () const
 
 //---------------------------------------------------------------------
 
-// public
-void kpTool::setText (const QString &text)
-{
-    d->text = text;
-
-    d->action->setText (d->text);
-}
-
-//---------------------------------------------------------------------
-
 static bool KeyIsText (int key)
 {
     // TODO: should work like !QKeyEvent::text().isEmpty()
@@ -160,35 +145,14 @@ QString kpTool::toolTipForTextAndShortcut (const QString &text,
 
 //---------------------------------------------------------------------
 
-// public static
 QString kpTool::toolTip () const
 {
-    return toolTipForTextAndShortcut (text (), shortcut ());
+    return toolTipForTextAndShortcut(d->text, d->action->shortcut());
 }
 
 //---------------------------------------------------------------------
-
-
-// public
-int kpTool::key () const
-{
-    return d->key;
-}
-
-//---------------------------------------------------------------------
-
-// public
-void kpTool::setKey (int key)
-{
-    d->key = key;
-
-    // TODO: this probably not wise since it nukes the user's settings
-    d->action->setShortcut (shortcutForKey (d->key));
-}
-
-//---------------------------------------------------------------------
-
 // public static
+
 KShortcut kpTool::shortcutForKey (int key)
 {
     KShortcut shortcut;
@@ -205,42 +169,8 @@ KShortcut kpTool::shortcutForKey (int key)
 }
 
 //---------------------------------------------------------------------
-
 // public
-KShortcut kpTool::shortcut () const
-{
-    return d->action->shortcut ();
-}
 
-//---------------------------------------------------------------------
-
-// public
-QString kpTool::description () const
-{
-    return d->description;
-}
-
-//---------------------------------------------------------------------
-
-// public
-void kpTool::setDescription (const QString &description)
-{
-    d->description = description;
-
-    d->action->setWhatsThis (d->description);
-}
-
-//---------------------------------------------------------------------
-
-// public virtual
-QString kpTool::iconName () const
-{
-    return objectName ();
-}
-
-//---------------------------------------------------------------------
-
-// public
 kpToolAction *kpTool::action () const
 {
     return d->action;
@@ -248,38 +178,47 @@ kpToolAction *kpTool::action () const
 
 //---------------------------------------------------------------------
 
-// REFACTOR: need to add access specifier comments (like "public virtual [base \
                AmOverridingThisClass'Method]") not just in kpTool but all over \
                KolourPaint source.
-
 kpDocument *kpTool::document () const
 {
     return d->environ->document ();
 }
 
+//---------------------------------------------------------------------
+
 kpViewManager *kpTool::viewManager () const
 {
     return d->environ->viewManager ();
 }
 
+//---------------------------------------------------------------------
+
 kpToolToolBar *kpTool::toolToolBar () const
 {
     return d->environ->toolToolBar ();
 }
 
+//---------------------------------------------------------------------
+
 kpColor kpTool::color (int which) const
 {
     return d->environ->color (which);
 }
 
+//---------------------------------------------------------------------
+
 kpColor kpTool::foregroundColor () const
 {
     return color (0);
 }
 
+//---------------------------------------------------------------------
+
 kpColor kpTool::backgroundColor () const
 {
     return color (1);
 }
 
+//---------------------------------------------------------------------
 
 // TODO: Some of these might not be common enough.
 //       Just put in kpToolEnvironment?
diff --git a/tools/kpTool.h b/tools/kpTool.h
index ad5f8aa..fd836e6 100644
--- a/tools/kpTool.h
+++ b/tools/kpTool.h
@@ -86,36 +86,17 @@ public:
             QObject *parent, const QString &name);
     virtual ~kpTool ();
 
-private:
-    // Only called by ctor to create action().
-    void initAction ();
-
-signals:
-    void actionToolTipChanged (const QString &string);
-
-protected slots:
-    void slotActionToolTipChanged (const QString &string);
+    kpToolAction *action () const;
 
-public:
     QString text () const;
-    void setText (const QString &text);
 
-    static QString toolTipForTextAndShortcut (const QString &text,
-        const KShortcut &shortcut);
+    static QString toolTipForTextAndShortcut (const QString &text, const KShortcut \
&shortcut);  QString toolTip () const;
 
-    QString description () const;
-    void setDescription (const QString &description);
-
-    int key () const;
-    void setKey (int key);
-
     // Given a single <key>, returns a shortcut with <key>
     // (disabled when the user is editing text) and as an alternate,
     // <some modifiers>+<key>.
     static KShortcut shortcutForKey (int key);
-    KShortcut shortcut () const;
-
 
     static QRect neededRect (const QRect &rect, int lineWidth);
     static QImage neededPixmap (const QImage &image, const QRect &boundingRect);
@@ -139,6 +120,13 @@ public:
     // outside of the document/view.
     QPoint calculateCurrentPoint (bool zoomToDoc = true) const;
 
+private:
+    // Only called by ctor to create action().
+    void initAction ();
+
+signals:
+    void actionToolTipChanged();
+
 public slots:
     // Call this when something below the mouse cursor may have changed
     // and/or if the view has moved relative to the cursor (as opposed to
@@ -175,10 +163,10 @@ protected:
 
 public:  // for kpMainWindow
     kpView *viewUnderStartPoint () const;
+
 protected:
     kpView *viewUnderCursor () const;
 
-
 public:
     // Called when the tool is selected.
     virtual void begin ();
@@ -218,21 +206,9 @@ signals:
     // emitted after cancelShape() has been called
     void cancelledShape (const QPoint &point);
 
-
-public:
-    // Override this to use an icon whose name is not the same as the tool's
-    // <name> as passed to the constructor.
-    virtual QString iconName () const;
-
-    kpToolAction *action () const;
-
 signals:
     // User clicked on the tool's action - i.e. select this tool
-    void actionActivated ();
-
-protected slots:
-    void slotActionActivated ();
-
+    void actionActivated();
 
 protected:
     // (this method is called by kpTool just as it is needed - its value
@@ -282,7 +258,6 @@ protected:
 
     kpColor color (int which) const;
 
-    // TODO: does anyone actually use these?
     kpColor foregroundColor () const;
     kpColor backgroundColor () const;
 
diff --git a/tools/kpToolAction.cpp b/tools/kpToolAction.cpp
index e4da6f1..41c395e 100644
--- a/tools/kpToolAction.cpp
+++ b/tools/kpToolAction.cpp
@@ -1,6 +1,6 @@
-
 /*
-   Copyright (c) 2003-2007 Clarence Dang <dang@kde.org>
+   Copyright(c) 2003-2007 Clarence Dang <dang@kde.org>
+   Copyright(c) 2011 Martin Koller <kollix@aon.at>
    All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
@@ -17,7 +17,7 @@
    IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
    OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT
    NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
@@ -25,107 +25,44 @@
    THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-#define DEBUG_KP_TOOL_ACTION 0
-
-
 #include <kpToolAction.h>
 
 #include <kactioncollection.h>
-#include <kdebug.h>
 #include <kicon.h>
 
 #include <kpTool.h>
 
+//---------------------------------------------------------------------
 
-kpToolAction::kpToolAction (const QString &text,
+kpToolAction::kpToolAction(const QString &text,
                             const QString &pic, const KShortcut &shortcut,
                             const QObject *receiver, const char *slot,
                             KActionCollection *ac, const QString &name)
-    : KToggleAction (KIcon (pic), text, ac)
+    : KToggleAction(KIcon(pic), text, ac)
 {
-#if DEBUG_KP_TOOL_ACTION
-    kDebug () << "kpToolAction<" << name << ">::kpToolAction(shortcut="
-              << shortcut.toString () << ")" << endl;
-#endif
-
-    KToggleAction::setShortcut (shortcut);
+  KToggleAction::setShortcut(shortcut);
 
-    if (receiver && slot)
-        connect (this, SIGNAL (triggered (bool)), receiver, slot);
+  if ( receiver && slot )
+    connect(this, SIGNAL(triggered(bool)), receiver, slot);
 
-    updateToolTip ();
+  updateToolTip();
+  connect(this, SIGNAL(changed()), this, SLOT(updateToolTip()));
 
-    ac->addAction (name, this);
+  ac->addAction(name, this);
 }
 
 //---------------------------------------------------------------------
 
 // protected
-void kpToolAction::updateToolTip ()
-{
-    const QString newToolTip =
-        kpTool::toolTipForTextAndShortcut (text (), shortcut ());
-#if DEBUG_KP_TOOL_ACTION
-    kDebug () << "\tkpToolAction<" << objectName () << ">::updateToolTip()"
-              << " text='" << text () << "' shortcut=" << shortcut ().toString ()
-              << " oldToolTip=" << toolTip () << " newToolTip=" << newToolTip
-              << endl;
-#endif
-    if (newToolTip == toolTip ())
-        return;
-
-    setToolTip (newToolTip);
-    emit toolTipChanged (newToolTip);
-}
-
-//---------------------------------------------------------------------
-
-// public static
-void kpToolAction::updateAllActionsToolTips (KActionCollection *ac)
+void kpToolAction::updateToolTip()
 {
-#if DEBUG_KP_TOOL_ACTION
-    kDebug () << "kpToolAction::updateAllActionsToolTips()";
-#endif
-
-    foreach (QAction *action, ac->actions ())
-    {
-        kpToolAction *toolAction = qobject_cast <kpToolAction *> (action);
-        if (!toolAction)
-            continue;
-
-        toolAction->updateToolTip ();
-    }
-}
-
-//---------------------------------------------------------------------
-//
-// KToggleAction overrides
-//
-
-// public
-void kpToolAction::setText (const QString &text)
-{
-#if DEBUG_KP_TOOL_ACTION
-    kDebug () << "kpToolAction<" << objectName ()
-               << ">::setText(" << text << ")" << endl;
-#endif
+  const QString newToolTip =
+      kpTool::toolTipForTextAndShortcut(text(), shortcut());
 
-    KToggleAction::setText (text);
-    updateToolTip ();
-}
-
-//---------------------------------------------------------------------
-
-// public
-void kpToolAction::setShortcut (const KShortcut &shortcut)
-{
-#if DEBUG_KP_TOOL_ACTION
-    kDebug () << "kpToolAction<" << objectName ()
-               << ">::setShortcut(" << shortcut.toString () << ")" << endl;
-#endif
+  if ( newToolTip == toolTip() )
+    return;
 
-    KToggleAction::setShortcut (shortcut);
-    updateToolTip ();
+  setToolTip(newToolTip);
 }
 
 //---------------------------------------------------------------------
diff --git a/tools/kpToolAction.h b/tools/kpToolAction.h
index b4c8dfa..c02285c 100644
--- a/tools/kpToolAction.h
+++ b/tools/kpToolAction.h
@@ -1,6 +1,6 @@
-
 /*
    Copyright (c) 2003-2007 Clarence Dang <dang@kde.org>
+   Copyright (c) 2011 Martin Koller <kollix@aon.at>
    All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
@@ -29,51 +29,24 @@
 #ifndef KP_TOOL_ACTION_H
 #define KP_TOOL_ACTION_H
 
-
 #include <ktoggleaction.h>
 
-
 class KActionCollection;
 
-
 // Same as KToggleAction but shows the first single key trigger in the tooltip.
-// REFACTOR: Either push into kdelibs 4.x or make setText() and setShortcut()
-//           virtual in KDE 5.x, to allow us to remove updateAllActionsToolTips()
-//           hack.
+
 class kpToolAction : public KToggleAction
 {
-Q_OBJECT
-
-public:
-    kpToolAction (const QString &text,
-        const QString &pic, const KShortcut &shortcut,
-        const QObject *receiver, const char *slot,
-        KActionCollection *ac, const QString &name);
-
-signals:
-    // Not emitted when toolTip is manually overridden by setToolTip()
-    void toolTipChanged (const QString &string);
-
-protected:
-    void updateToolTip ();
-
-public:
-    // For all kpToolAction's in <ac>, calls updateToolTip().
-    //
-    // Call this e.g. after shortcuts have been changed but
-    // kpToolAction::setShortcut() did not find out (since it's not
-    // virtual).
-    static void updateAllActionsToolTips (KActionCollection *ac);
-
+  Q_OBJECT
 
-    //
-    // KToggleAction overrides
-    //
+  public:
+    kpToolAction(const QString &text,
+                 const QString &pic, const KShortcut &shortcut,
+                 const QObject *receiver, const char *slot,
+                 KActionCollection *ac, const QString &name);
 
-    // WARNING: The KToggleAction base does not have these as virtual.
-public:
-    void setText (const QString &text);
-    void setShortcut (const KShortcut &shortcut);
+  private slots:
+    void updateToolTip();
 };
 
 
diff --git a/tools/kpToolZoom.cpp b/tools/kpToolZoom.cpp
index 35d7305..541c032 100644
--- a/tools/kpToolZoom.cpp
+++ b/tools/kpToolZoom.cpp
@@ -42,6 +42,7 @@
 #include <kpSetOverrideCursorSaver.h>
 #include <kpTempImage.h>
 #include <kpToolEnvironment.h>
+#include <kpToolAction.h>
 #include <kpViewManager.h>
 
 
@@ -75,23 +76,20 @@ kpToolZoom::kpToolZoom (kpToolEnvironment *environ, QWidget \
*parent)  environ, parent, "tool_zoom"),
       d (new kpToolZoomPrivate ())
 {
+  // different from objectName()
+  action()->setIcon(KIcon("zoom-original"));
 }
 
+//---------------------------------------------------------------------
+
 kpToolZoom::~kpToolZoom ()
 {
     delete d;
 }
 
-
+//---------------------------------------------------------------------
 // public virtual [base kpTool]
-QString kpToolZoom::iconName () const
-{
-    // Standard KDE action icon.
-    return QString ("zoom-original");
-}
-
 
-// public virtual [base kpTool]
 bool kpToolZoom::returnToPreviousToolAfterEndDraw () const
 {
     // If the user clicks to zoom in or out, s/he generally wants to click
diff --git a/tools/kpToolZoom.h b/tools/kpToolZoom.h
index e4b6858..6d24c60 100644
--- a/tools/kpToolZoom.h
+++ b/tools/kpToolZoom.h
@@ -41,8 +41,6 @@ public:
     kpToolZoom (kpToolEnvironment *environ, QWidget *parent);
     virtual ~kpToolZoom ();
 
-    virtual QString iconName () const;
-
     virtual bool returnToPreviousToolAfterEndDraw () const;
 
 private:
diff --git a/tools/kpTool_OtherEvents.cpp b/tools/kpTool_OtherEvents.cpp
index 7cd0cd3..2ccd54e 100644
--- a/tools/kpTool_OtherEvents.cpp
+++ b/tools/kpTool_OtherEvents.cpp
@@ -164,19 +164,3 @@ void kpTool::slotColorSimilarityChangedInternal (double \
similarity, int processe  }
 
 //---------------------------------------------------------------------
-
-// protected slot
-void kpTool::slotActionToolTipChanged (const QString &string)
-{
-    emit actionToolTipChanged (string);
-}
-
-//---------------------------------------------------------------------
-
-// protected slots
-void kpTool::slotActionActivated ()
-{
-    emit actionActivated ();
-}
-
-//---------------------------------------------------------------------
diff --git a/widgets/toolbars/kpToolToolBar.cpp b/widgets/toolbars/kpToolToolBar.cpp
index 61f540f..d262dab 100644
--- a/widgets/toolbars/kpToolToolBar.cpp
+++ b/widgets/toolbars/kpToolToolBar.cpp
@@ -34,16 +34,10 @@
 #include <qboxlayout.h>
 #include <qgridlayout.h>
 #include <qbuttongroup.h>
-#include <qdatetime.h>
 #include <qevent.h>
 #include <qtoolbutton.h>
-#include <QMainWindow>
 
-#include <kconfiggroup.h>
 #include <kdebug.h>
-#include <kglobal.h>
-#include <kglobalsettings.h>
-#include <KIconLoader>
 
 #include <kpDefs.h>
 #include <kpTool.h>
@@ -66,6 +60,8 @@ public:
     {
     }
 
+    kpTool *tool() const { return m_tool; }
+
 protected:
     virtual void mouseDoubleClickEvent(QMouseEvent *e)
     {
@@ -78,8 +74,8 @@ protected:
 
 //---------------------------------------------------------------------
 
-kpToolToolBar::kpToolToolBar(const QString &label, int colsOrRows, QWidget *parent)
-    : KToolBar(label, parent),
+kpToolToolBar::kpToolToolBar(const QString &name, int colsOrRows, QMainWindow \
*parent) +    : KToolBar(name, parent, Qt::LeftToolBarArea),
       m_vertCols (colsOrRows),
       m_buttonGroup (0),
       m_baseWidget (0),
@@ -87,9 +83,7 @@ kpToolToolBar::kpToolToolBar(const QString &label, int colsOrRows, \
QWidget *pare  m_toolLayout (0),
       m_previousTool (0), m_currentTool (0)
 {
-    setWindowTitle(label);
-
-    m_baseWidget = new QWidget (this);
+    m_baseWidget = new QWidget(this);
 
     m_toolWidgets.append (m_toolWidgetBrush =
         new kpToolWidgetBrush (m_baseWidget, "Tool Widget Brush"));
@@ -104,12 +98,10 @@ kpToolToolBar::kpToolToolBar(const QString &label, int \
colsOrRows, QWidget *pare  m_toolWidgets.append (m_toolWidgetSpraycanSize =
         new kpToolWidgetSpraycanSize (m_baseWidget, "Tool Widget Spraycan Size"));
 
-    for (QList <kpToolWidgetBase *>::const_iterator it = m_toolWidgets.constBegin \
                ();
-         it != m_toolWidgets.constEnd ();
-         ++it)
+    foreach(kpToolWidgetBase *w, m_toolWidgets)
     {
-        connect (*it, SIGNAL (optionSelected (int, int)),
-                 this, SIGNAL (toolWidgetOptionSelected ()));
+      connect(w, SIGNAL(optionSelected(int, int)),
+              this, SIGNAL(toolWidgetOptionSelected()));
     }
 
     adjustToOrientation(orientation());
@@ -125,13 +117,17 @@ kpToolToolBar::kpToolToolBar(const QString &label, int \
colsOrRows, QWidget *pare  
     connect(this, SIGNAL(iconSizeChanged(const QSize &)),
             this, SLOT(slotIconSizeChanged(const QSize &)));
+
+    connect(this, SIGNAL(toolButtonStyleChanged(Qt::ToolButtonStyle)),
+            this, SLOT(slotToolButtonStyleChanged(Qt::ToolButtonStyle)));
 }
 
 //---------------------------------------------------------------------
 
-kpToolToolBar::~kpToolToolBar ()
+kpToolToolBar::~kpToolToolBar()
 {
-    unregisterAllTools ();
+  while ( !m_toolButtons.isEmpty() )
+   delete m_toolButtons.takeFirst();
 }
 
 //---------------------------------------------------------------------
@@ -139,79 +135,54 @@ kpToolToolBar::~kpToolToolBar ()
 // public
 void kpToolToolBar::registerTool (kpTool *tool)
 {
-    for (QList <kpButtonToolPair>::const_iterator it = m_buttonToolPairs.constBegin \
                ();
-         it != m_buttonToolPairs.constEnd ();
-         ++it)
+    foreach (const kpToolButton *b, m_toolButtons)
     {
-        if ((*it).m_tool == tool)
-            return;
+      if ( b->tool() == tool )  // already given
+        return;
     }
-    int num = m_buttonToolPairs.count ();
 
-    QToolButton *b = new kpToolButton (tool, m_baseWidget);
-    b->setAutoRaise (true);
+    kpToolButton *b = new kpToolButton(tool, m_baseWidget);
+
+    b->setToolButtonStyle(toolButtonStyle());
     b->setIconSize(iconSize());
+    b->setAutoRaise(true);
 
-    b->setToolButtonStyle(Qt::ToolButtonIconOnly);
-    b->setCheckable(true);
+    // tell layout to make all with equal width (much better when text-below-icon)
+    b->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
 
-    b->setText(tool->text ());
-    b->setIcon(KIcon(tool->iconName()));
-    b->setToolTip(tool->toolTip ());
-    b->setWhatsThis(tool->description ());
+    b->setDefaultAction(tool->action());
 
-    m_buttonGroup->addButton (b);
-    addButton(b, orientation(), num);
+    m_buttonGroup->addButton(b);
+    addButton(b, orientation(), m_toolButtons.count());
 
-    m_buttonToolPairs.append (kpButtonToolPair (b, tool));
+    m_toolButtons.append(b);
 
     connect (tool, SIGNAL (actionActivated ()),
              this, SLOT (slotToolActionActivated ()));
-    connect (tool, SIGNAL (actionToolTipChanged (const QString &)),
-             this, SLOT (slotToolActionToolTipChanged ()));
-}
-
-//---------------------------------------------------------------------
 
-// public
-void kpToolToolBar::unregisterTool (kpTool *tool)
-{
-    for (QList <kpButtonToolPair>::iterator it = m_buttonToolPairs.begin ();
-         it != m_buttonToolPairs.end ();
-         ++it)
-    {
-        if ((*it).m_tool == tool)
-        {
-            delete ((*it).m_button);
-            m_buttonToolPairs.erase (it);
-
-            disconnect (tool, SIGNAL (actionActivated ()),
-                        this, SLOT (slotToolActionActivated ()));
-            disconnect (tool, SIGNAL (actionToolTipChanged (const QString &)),
-                        this, SLOT (slotToolActionToolTipChanged ()));
-            break;
-        }
-    }
+    adjustSizeConstraint();
 }
 
 //---------------------------------------------------------------------
-
 // public
-void kpToolToolBar::unregisterAllTools ()
+
+void kpToolToolBar::unregisterTool(kpTool *tool)
 {
-    for (QList <kpButtonToolPair>::iterator it = m_buttonToolPairs.begin ();
-         it != m_buttonToolPairs.end ();
-         ++it)
+    for (int i = 0; i < m_toolButtons.count(); i++)
     {
-       delete ((*it).m_button);
+      if ( m_toolButtons[i]->tool() == tool )
+      {
+        delete m_toolButtons.takeAt(i);
+        disconnect(tool, SIGNAL(actionActivated()),
+                   this, SLOT(slotToolActionActivated()));
+        return;
+      }
     }
-
-    m_buttonToolPairs.clear ();
 }
 
 //---------------------------------------------------------------------
-
 // public
+
 kpTool *kpToolToolBar::tool () const
 {
     return m_currentTool;
@@ -233,24 +204,12 @@ void kpToolToolBar::selectTool (const kpTool *tool, bool \
reselectIfSameTool)  
     if (tool)
     {
-        for (QList <kpButtonToolPair>::iterator it = m_buttonToolPairs.begin ();
-            it != m_buttonToolPairs.end ();
-            ++it)
-        {
-            if ((*it).m_tool == tool)
-            {
-                (*it).m_button->setChecked (true);
-                slotToolButtonClicked ();
-                break;
-            }
-        }
+      tool->action()->setChecked(true);
+      slotToolButtonClicked();
     }
     else
     {
         QAbstractButton *b = m_buttonGroup->checkedButton();
-    #if DEBUG_KP_TOOL_TOOL_BAR
-        kDebug () << "\twant to select no tool - button selected=" << b;
-    #endif
         if (b)
         {
             // HACK: qbuttongroup.html says the following about exclusive
@@ -291,12 +250,8 @@ void kpToolToolBar::selectPreviousTool ()
 // public
 void kpToolToolBar::hideAllToolWidgets ()
 {
-    for (QList <kpToolWidgetBase *>::const_iterator it = m_toolWidgets.constBegin \
                ();
-         it != m_toolWidgets.constEnd ();
-         ++it)
-    {
-        (*it)->hide ();
-    }
+    foreach(kpToolWidgetBase *w, m_toolWidgets)
+      w->hide ();
 }
 
 //---------------------------------------------------------------------
@@ -306,14 +261,12 @@ kpToolWidgetBase *kpToolToolBar::shownToolWidget (int which) \
const  {
     int uptoVisibleWidget = 0;
 
-    for (QList <kpToolWidgetBase *>::const_iterator it = m_toolWidgets.constBegin \
                ();
-         it != m_toolWidgets.constEnd ();
-         ++it)
+    foreach(kpToolWidgetBase *w, m_toolWidgets)
     {
-        if (!(*it)->isHidden ())
+        if ( !w->isHidden() )
         {
             if (which == uptoVisibleWidget)
-                return *it;
+                return w;
 
             uptoVisibleWidget++;
         }
@@ -334,15 +287,13 @@ void kpToolToolBar::slotToolButtonClicked ()
 #endif
 
     kpTool *tool = 0;
-    for (QList <kpButtonToolPair>::iterator it = m_buttonToolPairs.begin ();
-         it != m_buttonToolPairs.end ();
-         ++it)
+    foreach (const kpToolButton *button, m_toolButtons)
     {
-        if ((*it).m_button == b)
-        {
-            tool = (*it).m_tool;
-            break;
-        }
+      if ( button == b )
+      {
+        tool = button->tool();
+        break;
+      }
     }
 
 #if DEBUG_KP_TOOL_TOOL_BAR
@@ -392,51 +343,11 @@ void kpToolToolBar::slotToolActionActivated ()
                << endl;
 #endif
 
-    if (m_currentTool)
-    {
-        // If the user clicks on the same KToggleAction, it unchecks it
-        // - this is inconsistent with the Tool Box so always make sure it's
-        // checked.
-        kpToolAction *action = m_currentTool->action ();
-        if (action)
-        {
-            action->setChecked (true);
-        }
-    }
-
     selectTool (tool, true/*reselect if same tool*/);
 }
 
 //---------------------------------------------------------------------
 
-// private slot
-void kpToolToolBar::slotToolActionToolTipChanged ()
-{
-    const kpTool *tool = dynamic_cast<const kpTool *>(sender());
-
-#if DEBUG_KP_TOOL_TOOL_BAR
-    kDebug () << "kpToolToolBar::slotToolActionToolTipChanged() tool="
-               << (tool ? tool->objectName () : "null")
-               << endl;
-#endif
-
-    if (!tool)
-        return;
-
-    for (QList <kpButtonToolPair>::const_iterator it = m_buttonToolPairs.constBegin \
                ();
-        it != m_buttonToolPairs.constEnd ();
-        ++it)
-    {
-        if (tool == (*it).m_tool)
-        {
-            (*it).m_button->setToolTip (tool->toolTip ());
-            return;
-        }
-    }
-}
-
-//---------------------------------------------------------------------
-
 // public
 void kpToolToolBar::adjustToOrientation(Qt::Orientation o)
 {
@@ -456,35 +367,27 @@ void kpToolToolBar::adjustToOrientation(Qt::Orientation o)
         m_baseLayout = new QBoxLayout (QBoxLayout::LeftToRight, m_baseWidget);
     }
     m_baseLayout->setSizeConstraint(QLayout::SetFixedSize);
-    m_baseLayout->setSpacing (10);
-    m_baseLayout->setMargin (5);
+    m_baseLayout->setContentsMargins(0, 0, 0, 0);
+
+    m_toolLayout = new QGridLayout();
+    m_toolLayout->setContentsMargins(0, 0, 0, 0);
 
-    m_toolLayout = new QGridLayout ();
-    m_toolLayout->setMargin (0);
-    m_toolLayout->setSpacing (0);
     // (ownership is transferred to m_baseLayout)
     m_baseLayout->addItem (m_toolLayout);
 
     int num = 0;
 
-    for (QList <kpButtonToolPair>::iterator it = m_buttonToolPairs.begin ();
-         it != m_buttonToolPairs.end ();
-         ++it)
+    foreach (kpToolButton *b, m_toolButtons)
     {
-        addButton ((*it).m_button, o, num);
-        num++;
+      addButton(b, o, num);
+      num++;
     }
 
-    for (QList <kpToolWidgetBase *>::const_iterator it = m_toolWidgets.constBegin \
                ();
-         it != m_toolWidgets.constEnd ();
-         ++it)
+    foreach(kpToolWidgetBase *w, m_toolWidgets)
     {
-        if (*it)
-        {
-            m_baseLayout->addWidget (*it,
-                0/*stretch*/,
-                o == Qt::Vertical ? Qt::AlignHCenter : Qt::AlignVCenter);
-        }
+      m_baseLayout->addWidget(w,
+          0/*stretch*/,
+          o == Qt::Vertical ? Qt::AlignHCenter : Qt::AlignVCenter);
     }
 
     adjustSizeConstraint();
@@ -499,15 +402,23 @@ void kpToolToolBar::adjustSizeConstraint()
     setFixedSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
 
     if ( orientation() == Qt::Vertical )
-      setFixedWidth(m_baseLayout->sizeHint().width());
+    {
+      setFixedWidth(m_baseLayout->sizeHint().width() +
+                    layout()->contentsMargins().left() +
+                    layout()->contentsMargins().right());
+    }
     else
-      setFixedHeight(m_baseLayout->sizeHint().height());
+    {
+      setFixedHeight(m_baseLayout->sizeHint().height() +
+                     layout()->contentsMargins().top() +
+                     layout()->contentsMargins().bottom());
+    }
 }
 
 //---------------------------------------------------------------------
 
 // private
-void kpToolToolBar::addButton (QAbstractButton *button, Qt::Orientation o, int num)
+void kpToolToolBar::addButton(QAbstractButton *button, Qt::Orientation o, int num)
 {
     if (o == Qt::Vertical)
         m_toolLayout->addWidget (button, num / m_vertCols, num % m_vertCols);
@@ -523,12 +434,19 @@ void kpToolToolBar::addButton (QAbstractButton *button, \
Qt::Orientation o, int n  
 void kpToolToolBar::slotIconSizeChanged(const QSize &size)
 {
-    for (QList <kpButtonToolPair>::iterator it = m_buttonToolPairs.begin ();
-         it != m_buttonToolPairs.end ();
-         ++it)
-    {
-        (*it).m_button->setIconSize(size);
-    }
+    foreach (kpToolButton *b, m_toolButtons)
+      b->setIconSize(size);
+
+    m_baseLayout->activate();
+    adjustSizeConstraint();
+}
+
+//---------------------------------------------------------------------
+
+void kpToolToolBar::slotToolButtonStyleChanged(Qt::ToolButtonStyle style)
+{
+    foreach (kpToolButton *b, m_toolButtons)
+      b->setToolButtonStyle(style);
 
     m_baseLayout->activate();
     adjustSizeConstraint();
diff --git a/widgets/toolbars/kpToolToolBar.h b/widgets/toolbars/kpToolToolBar.h
index 21e2856..d693487 100644
--- a/widgets/toolbars/kpToolToolBar.h
+++ b/widgets/toolbars/kpToolToolBar.h
@@ -43,6 +43,7 @@ class QGridLayout;
 class QWidget;
 
 class kpTool;
+class kpToolButton;
 
 class kpToolWidgetBase;
 class kpToolWidgetBrush;
@@ -57,12 +58,11 @@ class kpToolToolBar : public KToolBar
 Q_OBJECT
 
 public:
-    kpToolToolBar (const QString &label, int colsOrRows, QWidget *parent);
+    kpToolToolBar (const QString &name, int colsOrRows, QMainWindow *parent);
     virtual ~kpToolToolBar ();
 
-    void registerTool (kpTool *tool);
-    void unregisterTool (kpTool *tool);
-    void unregisterAllTools ();
+    void registerTool(kpTool *tool);
+    void unregisterTool(kpTool *tool);
 
     kpTool *tool () const;
     void selectTool (const kpTool *tool, bool reselectIfSameTool = false);
@@ -89,10 +89,10 @@ private slots:
     void slotToolButtonClicked ();
 
     void slotToolActionActivated ();
-    void slotToolActionToolTipChanged ();
 
     void adjustToOrientation(Qt::Orientation o);
     void slotIconSizeChanged(const QSize &);
+    void slotToolButtonStyleChanged(Qt::ToolButtonStyle style);
 
 private:
     void addButton (QAbstractButton *button, Qt::Orientation o, int num);
@@ -112,25 +112,9 @@ private:
     kpToolWidgetOpaqueOrTransparent *m_toolWidgetOpaqueOrTransparent;
     kpToolWidgetSpraycanSize *m_toolWidgetSpraycanSize;
 
-    QList <kpToolWidgetBase *> m_toolWidgets;
+    QList<kpToolWidgetBase *> m_toolWidgets;
 
-    struct kpButtonToolPair
-    {
-        kpButtonToolPair (QAbstractButton *button, kpTool *tool)
-            : m_button (button), m_tool (tool)
-        {
-        }
-
-        kpButtonToolPair ()
-            : m_button (0), m_tool (0)
-        {
-        }
-
-        QAbstractButton *m_button;
-        kpTool *m_tool;
-    };
-
-    QList <kpButtonToolPair> m_buttonToolPairs;
+    QList<kpToolButton *> m_toolButtons;
 
     kpTool *m_previousTool, *m_currentTool;
 };


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

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