[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