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

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/desktop/applets/tasks
From:       Aaron J. Seigo <aseigo () kde ! org>
Date:       2011-01-16 1:38:45
Message-ID: 20110116013845.2F70B3E1F1 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1214725 by aseigo:

adapt to new api, support multiple uri drops


 M  +17 -13    taskgroupitem.cpp  


--- trunk/KDE/kdebase/workspace/plasma/desktop/applets/tasks/taskgroupitem.cpp \
#1214724:1214725 @@ -1100,23 +1100,27 @@
         //kDebug() << "TaskItemLayout dropEvent done";
         event->acceptProposedAction();
     } else if(event->mimeData()->hasFormat("text/uri-list")) {
-        KUrl url(event->mimeData()->data("text/uri-list"));
-        LauncherItem *launcher;
-
-        if (url.isLocalFile() && KDesktopFile::isDesktopFile(url.toLocalFile())) {
-            KDesktopFile f(url.toLocalFile());
-            launcher = m_applet->groupManager().findLauncher(f.readName());
-        } else {
-            launcher = m_applet->groupManager().findLauncher(url.fileName());
+        KUrl::List urls = KUrl::List::fromMimeData(event->mimeData());
+        foreach (const KUrl &url, urls) {
+            const bool exists = m_applet->groupManager().launcherExists(url);
+            if (exists) {
+                // it exists; if we are doing manual sorting, make sure it is in the \
right location if +                // it is in this group .. otherwise, we can do \
nothing. +                if (m_applet->groupManager().sortingStrategy() == \
TaskManager::GroupManager::ManualSorting) { +                    \
QHashIterator<AbstractGroupableItem *, AbstractTaskItem*> it(m_groupMembers); +       \
while (it.hasNext()) { +                        it.next();
+                        if (it.key()->itemType() == TaskManager::LauncherItemType &&
+                            static_cast<LauncherItem *>(it.key())->url() == url) {
+                            layoutTaskItem(it.value(), event->pos());
+                            break;
         }
-
-        if (launcher && m_applet->groupManager().sortingStrategy() == \
                TaskManager::GroupManager::ManualSorting) {
-            if (launcher->parentGroup() == m_group.data()) {
-                layoutTaskItem(m_groupMembers[launcher], event->pos());
             }
-        } else if (!launcher) {
+                }
+            } else {
             m_applet->groupManager().addLauncher(url);
         }
+        }
     } else {
         event->ignore();
     }


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

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