[kde-doc-english] [amarok] /: Remove the add button from the applet toolbar.

Bart Cerneels bart.cerneels at kde.org
Fri Jun 3 14:44:36 CEST 2011


Git commit a5628ac3399cb731eadb9d9c9bf84af1112ba9ae by Bart Cerneels.
Committed on 03/06/2011 at 12:43.
Pushed by shanachie into branch 'master'.

Remove the add button from the applet toolbar.

Artyness++ live from the Randa sprint.
GUI: The applet explorer opens when config is clicked.
DIGEST:Amarok Artyness++ @ Randa

M  +1    -0    ChangeLog     
M  +0    -1    src/context/ToolbarView.cpp     
M  +9    -81   src/context/toolbar/AppletToolbar.cpp     
M  +1    -3    src/context/toolbar/AppletToolbar.h     

http://commits.kde.org/amarok/a5628ac3399cb731eadb9d9c9bf84af1112ba9ae

diff --git a/ChangeLog b/ChangeLog
index 372d098..662c6e0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,7 @@ VERSION 2.4.2-Beta 1
     * Option to scrobble composer as artist to Last.fm (Thanks to Nicholas Wilson)
 
   CHANGES:
+    * Removed the add button in the context toolbar. Applet explorer is opened on config.
     * Easier to understand Dynamic playlists
     * Now Amarok requires ffmpeg-0.6 or newer. 
     * Use KImageCache if possible (kdelibs 4.5.0 and later), which should
diff --git a/src/context/ToolbarView.cpp b/src/context/ToolbarView.cpp
index b676ead..110806f 100644
--- a/src/context/ToolbarView.cpp
+++ b/src/context/ToolbarView.cpp
@@ -215,7 +215,6 @@ Context::ToolbarView::appletAdded( Plasma::Applet* applet, int loc )
 void
 Context::ToolbarView::refreshOverlays()
 {
-    m_toolbar.data()->refreshAddIcons();
 }
 
 void
diff --git a/src/context/toolbar/AppletToolbar.cpp b/src/context/toolbar/AppletToolbar.cpp
index 018dfb2..712e6a0 100644
--- a/src/context/toolbar/AppletToolbar.cpp
+++ b/src/context/toolbar/AppletToolbar.cpp
@@ -39,7 +39,6 @@ Context::AppletToolbar::AppletToolbar( QGraphicsItem* parent )
     , m_configMode( false )
     , m_appletLayout( 0 )
     , m_cont( 0 )
-    , m_addItem( 0 )
     , m_configItem( 0 )
 {    
     Context::Containment* cont = dynamic_cast<Context::Containment*>( parent );
@@ -53,13 +52,6 @@ Context::AppletToolbar::AppletToolbar( QGraphicsItem* parent )
 
     m_appletLayout = new QGraphicsLinearLayout( Qt::Horizontal, this );
     
-    m_addItem = new AppletToolbarAddItem( this, m_cont, true );
-    connect( m_addItem, SIGNAL( hideAppletExplorer() ), this, SIGNAL( hideAppletExplorer() ) );
-    connect( m_addItem, SIGNAL( showAppletExplorer() ), this, SIGNAL( showAppletExplorer() ) );
- 
-    
-    m_appletLayout->addItem( m_addItem );
-    m_appletLayout->setAlignment( m_addItem, Qt::AlignRight );
     m_appletLayout->setContentsMargins( 3, 3, 3, 3 );
     m_appletLayout->setSpacing( 4 );
 
@@ -128,16 +120,6 @@ Context::AppletToolbar::appletRemoved( Plasma::Applet* applet )
             app->deleteLater();
         }
     }
-    // if all applets are removed, re-add the add item
-    if( m_appletLayout->count() == 2 && m_configMode )
-    {
-        toggleConfigMode();
-        m_appletLayout->removeItem( m_configItem );
-        delete m_configItem;
-        m_configItem = 0;
-        m_appletLayout->insertItem( 0, m_addItem );
-        m_addItem->show();
-    }
 }
 
 QSizeF
@@ -159,7 +141,7 @@ void
 Context::AppletToolbar::appletAdded( Plasma::Applet* applet, int loc ) // SLOT
 {
     DEBUG_BLOCK
-    
+
     debug() << "inserting applet icon in position" << loc;
     if( !m_configItem )
     {
@@ -168,28 +150,25 @@ Context::AppletToolbar::appletAdded( Plasma::Applet* applet, int loc ) // SLOT
         m_appletLayout->addItem( m_configItem );
         m_appletLayout->setAlignment( m_configItem, Qt::AlignRight );
     }
-  
+
     if( m_configMode )
     {
-        // loc doesn't take into account additional + icons, also we need to add 1 more + icon
         Context::AppletToolbarAppletItem* item = new Context::AppletToolbarAppletItem( this, applet );
         item->setConfigEnabled( true );
-        connect( item, SIGNAL( appletChosen( Plasma::Applet* ) ), this, SIGNAL( showApplet( Plasma::Applet* ) ) );
-        
+        connect( item, SIGNAL( appletChosen( Plasma::Applet* ) ),
+                 this, SIGNAL( showApplet( Plasma::Applet* ) ) );
+
         // add the item
         m_appletLayout->insertItem( loc, item );
     }
     else
     {
         Context::AppletToolbarAppletItem* item = new Context::AppletToolbarAppletItem( this, applet );
-        connect( item, SIGNAL( appletChosen( Plasma::Applet* ) ), this, SIGNAL( showApplet( Plasma::Applet* ) ) );
+        connect( item, SIGNAL( appletChosen( Plasma::Applet* ) ),
+                 this, SIGNAL( showApplet( Plasma::Applet* ) ) );
         m_appletLayout->insertItem( loc, item );
-        // since we have an applet, we remove the add applet button
-        // would be better to check if it is in there (otherwise we try to erase it on each add)
-        // but there is no QGraphicsLinearLayout->contains() or ->indexOf()
-        m_addItem->hide();
-        m_appletLayout->removeItem( m_addItem );
     }
+
     // notifications for others who need to know when the layout is done adding the applet
     emit appletAddedToToolbar( applet, loc );
 }
@@ -203,24 +182,7 @@ Context::AppletToolbar::toggleConfigMode() // SLOT
         // place add icons in all possible places that the user can add an icon
 
         m_configMode = true;
-
-        int loc = -1;                        // location of the configure icon
-        int count = m_appletLayout->count(); // save now so we don't check count after adding :)
-        for( int i = 0; i < count; i++ ) // tell each applet we are configuring
-        {
-            QGraphicsLayoutItem *item = m_appletLayout->itemAt( i );
-
-            Context::AppletToolbarAppletItem* appletItem = dynamic_cast< Context::AppletToolbarAppletItem* >( item );
-            if( appletItem )
-                appletItem->setConfigEnabled( true );
-
-            Context::AppletToolbarConfigItem* configItem = dynamic_cast< Context::AppletToolbarConfigItem* >( item );
-            if( configItem )
-                loc = i;
-        }
-
-        if( loc >= 0 )
-            newAddItem( loc );
+        emit showAppletExplorer();
     }
     else
     {
@@ -246,38 +208,4 @@ Context::AppletToolbar::toggleConfigMode() // SLOT
     emit configModeToggled();
 }
 
-void
-Context::AppletToolbar::refreshAddIcons() // SLOT
-{
-    foreach( AppletToolbarAddItem* item, m_configAddIcons )
-    {
-        m_appletLayout->removeItem( item );
-        item->deleteLater();
-    }
-    m_configAddIcons.clear();
-
-    int loc = -1;
-    for( int i = 0; i < m_appletLayout->count(); ++i )
-    {
-        QGraphicsLayoutItem *item = m_appletLayout->itemAt( i );
-        Context::AppletToolbarConfigItem* configItem = dynamic_cast< Context::AppletToolbarConfigItem* >( item );
-        if( configItem )
-            loc = i;
-    }
-
-    if( loc >=0 )
-        newAddItem( loc );
-}
-
-void 
-Context::AppletToolbar::newAddItem( int loc )
-{
-    DEBUG_BLOCK
-    Context::AppletToolbarAddItem* additem = new Context::AppletToolbarAddItem( this, m_cont, false );
-    connect( additem, SIGNAL( hideAppletExplorer() ), this, SIGNAL( hideAppletExplorer() ) );
-    connect( additem, SIGNAL( showAppletExplorer() ), this, SIGNAL( showAppletExplorer() ) );
-    m_appletLayout->insertItem( loc, additem );
-    m_configAddIcons << additem;
-}
-
 #include "AppletToolbar.moc"
diff --git a/src/context/toolbar/AppletToolbar.h b/src/context/toolbar/AppletToolbar.h
index 68f9de7..2be003c 100644
--- a/src/context/toolbar/AppletToolbar.h
+++ b/src/context/toolbar/AppletToolbar.h
@@ -56,8 +56,7 @@ class AppletToolbar : public QGraphicsWidget
         bool configEnabled() const;
         
         void appletRemoved( Plasma::Applet* applet );
-        
-        void refreshAddIcons();
+
     signals:
         void showApplet( Plasma::Applet* );
         void addAppletToContainment( const QString& pluginName, int loc );
@@ -94,7 +93,6 @@ class AppletToolbar : public QGraphicsWidget
         QGraphicsLinearLayout* m_appletLayout;
                 
         Containment* m_cont;
-        AppletToolbarAddItem* m_addItem;
         AppletToolbarConfigItem* m_configItem;
 };
 


More information about the kde-doc-english mailing list