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

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/netbook/containments/sal
From:       Marco Martin <notmart () gmail ! com>
Date:       2010-02-28 18:30:02
Message-ID: 1267381802.644008.21936.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1097227 by mart:

-use kservices instead of kdesktopfiles directly
-default entries works again


 M  +27 -20    stripwidget.cpp  
 M  +2 -2      stripwidget.h  


--- trunk/KDE/kdebase/workspace/plasma/netbook/containments/sal/stripwidget.cpp \
#1097226:1097227 @@ -223,25 +223,33 @@
 
 void StripWidget::add(const QString &fileName, const QPointF &point)
 {
-    KDesktopFile *file = new KDesktopFile(fileName);
+    KService::Ptr service = KService::serviceByDesktopPath(fileName);
+
+    if (!service) {
+        service = KService::serviceByDesktopName(fileName);
+        if (!service) {
+            return;
+        }
+    }
+
     Plasma::IconWidget * icon = createIcon(point);
 
-    icon->setIcon(file->readIcon());
-    icon->setText(file->readName());
+    icon->setIcon(service->icon());
+    icon->setText(service->name());
 
     icon->setMinimumSize(icon->sizeFromIconSize(m_itemView->iconSize()));
     icon->setMaximumSize(icon->sizeFromIconSize(m_itemView->iconSize()));
 
     Plasma::ToolTipContent toolTipData = Plasma::ToolTipContent();
     toolTipData.setAutohide(true);
-    toolTipData.setMainText(file->readName());
-    toolTipData.setSubText(file->readGenericName());
-    toolTipData.setImage(KIcon(file->readIcon()));
+    toolTipData.setMainText(service->name());
+    toolTipData.setSubText(service->genericName());
+    toolTipData.setImage(KIcon(service->icon()));
 
     Plasma::ToolTipManager::self()->registerWidget(icon);
     Plasma::ToolTipManager::self()->setContent(icon, toolTipData);
 
-    m_desktopFiles.insert(icon, file);
+    m_services.insert(icon, service);
 }
 
 void StripWidget::remove(Plasma::IconWidget *favourite)
@@ -259,9 +267,9 @@
         // must be deleteLater because the IconWidget will return from the action?
         favourite->deleteLater();
         delete match;
-    } else if (m_desktopFiles.contains(favourite)) {
-        delete m_desktopFiles.value(favourite);
-        m_desktopFiles.remove(favourite);
+    } else if (m_services.contains(favourite)) {
+        m_services.value(favourite);
+        m_services.remove(favourite);
         favourite->deleteLater();
     }
 }
@@ -300,8 +308,8 @@
         Plasma::RunnerContext context;
         context.setQuery(m_favouritesQueries.value(match));
         match->run(context);
-    } else if (m_desktopFiles.contains(icon)) {
-        KRun::run(KService(m_desktopFiles.value(icon)), KUrl::List(), 0, false);
+    } else if (m_services.contains(icon)) {
+        KRun::run(*m_services.value(icon).data(), KUrl::List(), 0, false);
     }
 }
 
@@ -370,9 +378,9 @@
             config.writeEntry("query", m_favouritesQueries.value(match));
             config.writeEntry("matchId", match->id());
             config.writeEntry("subText", match->subtext());
-        } else if (m_desktopFiles.contains(icon)) {
-            config.writeEntry("url", (m_desktopFiles[icon])->fileName());
-            config.writeEntry("subText", m_desktopFiles[icon]->readGenericName());
+        } else if (m_services.contains(icon)) {
+            config.writeEntry("url", (m_services[icon])->entryPath());
+            config.writeEntry("subText", m_services[icon]->genericName());
         }
 
         ++id;
@@ -400,15 +408,14 @@
     QVector<QString> queries;
     QVector<QString> matchIds;
     QVector<QString> urls;
+    int numIcons;
 
     if (favouritesConfigs.isEmpty()) {
+        numIcons = 4;
         runnerIds.resize(4);
         queries.resize(4);
         matchIds.resize(4);
-        QString homePlace = "places_file://"+QDir::homePath();
-        matchIds << "services_kde4-konqbrowser.desktop" << \
                "services_kde4-KMail.desktop" << \
                "services_kde4-systemsettings.desktop" << homePlace;
-        queries << "konqueror" << "kmail" << "systemsettings" << "home";
-        runnerIds << "services" << "services" << "services" << "places";
+        urls << "konqueror" << "kmail" << "systemsettings" << "dolphin";
     } else {
         runnerIds.resize(favouritesConfigs.size());
         queries.resize(favouritesConfigs.size());
@@ -426,10 +433,10 @@
             ++i;
             ++it;
         }
+        numIcons = stripGroup.groupList().size();
     }
 
     QString currentQuery;
-    int numIcons = stripGroup.groupList().size();
     for (int i = 0; i < numIcons; ++i ) {
         if (!urls[i].isNull()) {
             add(urls[i]);
--- trunk/KDE/kdebase/workspace/plasma/netbook/containments/sal/stripwidget.h \
#1097226:1097227 @@ -22,7 +22,7 @@
 
 
 #include <KConfigGroup>
-#include <KDesktopFile>
+#include <KService>
 
 #include <QPair>
 #include <QGraphicsLinearLayout>
@@ -97,7 +97,7 @@
     QList<Plasma::QueryMatch*> m_favouritesMatches;
     QHash<Plasma::QueryMatch*, QString> m_favouritesQueries;
     QHash<Plasma::IconWidget*, Plasma::QueryMatch*> m_favouritesIcons;
-    QHash<Plasma::IconWidget*, KDesktopFile*> m_desktopFiles;
+    QHash<Plasma::IconWidget*, KService::Ptr> m_services;
     ItemView *m_itemView;
     Plasma::RunnerContext *m_context;
     QTimer *m_scrollTimer;


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

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