[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdebase/kmenuedit
From: Waldo Bastian <bastian () kde ! org>
Date: 2005-03-30 15:28:58
Message-ID: 20050330152858.3BEF3632 () office ! kde ! org
[Download RAW message or body]
CVS commit by waba:
Make it possible to drag applications _from_ the menu editor
M +1 -0 menufile.cpp 1.11
M +19 -4 treeview.cpp 1.97
M +1 -0 treeview.h 1.37
--- kdebase/kmenuedit/menufile.cpp #1.10:1.11
@@ -395,4 +395,5 @@ void MenuFile::moveMenu(const QString &o
elem.appendChild(m_doc.createElement(MF_NOTDELETED));
+// TODO: GET RID OF COMMON PART, IT BREAKS STUFF
// Find common part
QStringList oldMenuParts = QStringList::split('/', oldMenu);
--- kdebase/kmenuedit/treeview.cpp #1.96:1.97
@@ -47,4 +47,6 @@
#include <kservice.h>
#include <kservicegroup.h>
+#include <kmultipledrag.h>
+#include <kurldrag.h>
#include "treeview.h"
@@ -665,5 +667,5 @@ QStringList TreeView::dirList(const QStr
bool TreeView::acceptDrag(QDropEvent* e) const
{
- return QString(e->format()).contains("application/x-kmenuedit-internal") &&
+ return e->provides("application/x-kmenuedit-internal") &&
(e->source() == const_cast<TreeView *>(this));
}
@@ -885,7 +887,10 @@ void TreeView::startDrag()
QDragObject *TreeView::dragObject()
{
+ m_dragPath = QString::null;
TreeItem *item = (TreeItem*)selectedItem();
if(item == 0) return 0;
+ KMultipleDrag *drag = new KMultipleDrag( this );
+
if (item->isDirectory())
{
@@ -899,4 +904,14 @@ QDragObject *TreeView::dragObject()
m_dragInfo = 0;
m_dragItem = item;
+ QString menuId = item->menuId();
+ m_dragPath = item->entryInfo()->service->desktopEntryPath();
+ if (!m_dragPath.isEmpty())
+ m_dragPath = locate("apps", m_dragPath);
+ if (!m_dragPath.isEmpty())
+ {
+ KURL url;
+ url.setPath(m_dragPath);
+ drag->addDragObject( new KURLDrag(url, 0));
+ }
}
else
@@ -907,8 +922,8 @@ QDragObject *TreeView::dragObject()
}
- QStoredDrag *d = new QStoredDrag("application/x-kmenuedit-internal", this);
+ drag->addDragObject( new QStoredDrag("application/x-kmenuedit-internal", 0));
if ( item->pixmap(0) )
- d->setPixmap(*item->pixmap(0));
- return d;
+ drag->setPixmap(*item->pixmap(0));
+ return drag;
}
--- kdebase/kmenuedit/treeview.h #1.36:1.37
@@ -163,4 +163,5 @@ private:
MenuFolderInfo *m_dragInfo;
TreeItem *m_dragItem;
+ QString m_dragPath;
bool m_showHidden;
bool m_controlCenter;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic