← Back to team overview

ayatana-commits team mailing list archive

[Branch ~agateau/plasma-widget-message-indicator/trunk] Rev 127: Less casts

 

------------------------------------------------------------
revno: 127
committer: Aurelien Gateau <aurelien.gateau@xxxxxxxxxxxxx>
branch nick: plasma-widget-message-indicator
timestamp: Mon 2010-03-08 15:01:11 +0100
message:
  Less casts
modified:
  src/listenermodel.cpp


--
lp:plasma-widget-message-indicator
https://code.launchpad.net/~agateau/plasma-widget-message-indicator/trunk

Your team ayatana-commits is subscribed to branch lp:plasma-widget-message-indicator.
To unsubscribe from this branch go to https://code.launchpad.net/~agateau/plasma-widget-message-indicator/trunk/+edit-subscription.
=== modified file 'src/listenermodel.cpp'
--- src/listenermodel.cpp	2010-03-08 13:50:54 +0000
+++ src/listenermodel.cpp	2010-03-08 14:01:11 +0000
@@ -212,6 +212,11 @@
         mOutdatedKeyList = list;
     }
 
+    ServerItem* serverItem() const
+    {
+        return static_cast<ServerItem*>(parent());
+    }
+
 private:
     QIndicate::Listener::Indicator* mIndicator;
     QStringList mOutdatedKeyList;
@@ -233,10 +238,9 @@
     QHash<QIndicate::Listener::Server*, ServerItem*> mItemForServer;
     ItemForIndicatorHash mItemForIndicator;
 
-    void updateIndicatorItem(QStandardItem* item)
+    void updateIndicatorItem(IndicatorItem* indicatorItem)
     {
-        IndicatorItem* indicatorItem = static_cast<IndicatorItem*>(item);
-        ServerItem* serverItem = static_cast<ServerItem*>(item->parent());
+        ServerItem* serverItem = indicatorItem->serverItem();
         QIndicate::Listener::Server* server = serverItem->server();
         QIndicate::Listener::Indicator* indicator = indicatorItem->indicator();
 
@@ -253,15 +257,14 @@
         }
     }
 
-    void removeIndicatorItem(QStandardItem* item)
+    void removeIndicatorItem(IndicatorItem* indicatorItem)
     {
-        IndicatorItem* indicatorItem = static_cast<IndicatorItem*>(item);
-        ServerItem* serverItem = static_cast<ServerItem*>(item->parent());
+        ServerItem* serverItem = indicatorItem->serverItem();
         QIndicate::Listener::Server* server = serverItem->server();
         QIndicate::Listener::Indicator* indicator = indicatorItem->indicator();
         mItemForIndicator.remove(ServerIndicatorPair(server, indicator));
 
-        serverItem->removeRow(item->row());
+        serverItem->removeRow(indicatorItem->row());
     }
 };
 
@@ -430,20 +433,25 @@
         d->mWaitingIndicators.remove(server);
         return;
     }
-    QStandardItem* item = d->mItemForServer.value(server);
-    if (!item) {
+    ServerItem* serverItem = d->mItemForServer.value(server);
+    if (!serverItem) {
         kWarning() << "No item found for server" << server;
         return;
     }
 
-    // Remove all indicators for this server
-    for (int row = item->rowCount() - 1; row >=0; --row) {
-        d->removeIndicatorItem(item->child(row));
+    // Remove all children for this server
+    for (int row = serverItem->rowCount() - 1; row >=0; --row) {
+        QStandardItem* child = serverItem->child(row);
+        if (child->type() == IndicatorItemType) {
+            d->removeIndicatorItem(static_cast<IndicatorItem*>(child));
+        }
+        // Nothing to do for ActionItemType children: removing the serverItem
+        // will do the work
     }
 
     // Delete server item
     d->mItemForServer.remove(server);
-    removeRow(item->row());
+    removeRow(serverItem->row());
 }
 
 void ListenerModel::slotServerCountChanged(QIndicate::Listener::Server* server, int count)
@@ -511,7 +519,7 @@
         d->mWaitingIndicators[server].remove(indicator);
         return;
     }
-    QStandardItem* item = d->mItemForIndicator.value(ServerIndicatorPair(server, indicator));
+    IndicatorItem* item = d->mItemForIndicator.value(ServerIndicatorPair(server, indicator));
     if (!item) {
         kWarning() << "No item for indicator" << indicator;
         return;