[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/apps
From: David Faure <faure () kde ! org>
Date: 2009-01-19 14:33:10
Message-ID: 1232375590.904772.20233.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 913576 by dfaure:
Fix lack of error handling in RMB/Move To... (e.g. when src is root-owned) because \
the parent for KonqOperations was the popupmenu, which gets deleted before the job \
finishes.
M +2 -1 dolphin/src/dolphincontextmenu.cpp
M +11 -5 lib/konq/konq_copytomenu.cpp
M +12 -0 lib/konq/konq_copytomenu.h
M +3 -4 lib/konq/konq_copytomenu_p.h
M +3 -2 lib/konq/konq_popupmenu.cpp
--- trunk/KDE/kdebase/apps/dolphin/src/dolphincontextmenu.cpp #913575:913576
@@ -60,7 +60,8 @@
m_capabilities(0),
m_fileInfo(fileInfo),
m_baseUrl(baseUrl),
- m_context(NoContext)
+ m_context(NoContext),
+ m_copyToMenu(parent)
{
// The context menu either accesses the URLs of the selected items
// or the items itself. To increase the performance both lists are cached.
--- trunk/KDE/kdebase/apps/lib/konq/konq_copytomenu.cpp #913575:913576
@@ -31,17 +31,21 @@
#include <kstringhandler.h>
#include <QDir>
-KonqCopyToMenuPrivate::KonqCopyToMenuPrivate()
- : m_urls(), m_readOnly(false)
+KonqCopyToMenuPrivate::KonqCopyToMenuPrivate(QWidget* parentWidget)
+ : m_urls(), m_readOnly(false), m_parentWidget(parentWidget)
{
}
////
KonqCopyToMenu::KonqCopyToMenu()
- : d(new KonqCopyToMenuPrivate)
+ : d(new KonqCopyToMenuPrivate())
{
+}
+KonqCopyToMenu::KonqCopyToMenu(QWidget* parentWidget)
+ : d(new KonqCopyToMenuPrivate(parentWidget))
+{
}
KonqCopyToMenu::~KonqCopyToMenu()
@@ -133,7 +137,8 @@
void KonqCopyToMainMenu::slotBrowse()
{
- const KUrl dest = \
KFileDialog::getExistingDirectoryUrl(KUrl("kfiledialog:///copyto"), this); + const \
KUrl dest = KFileDialog::getExistingDirectoryUrl(KUrl("kfiledialog:///copyto"), + \
d->m_parentWidget ? d->m_parentWidget : this); if (!dest.isEmpty()) {
copyOrMoveTo(dest);
}
@@ -160,7 +165,8 @@
}
// And now let's do the copy or move -- with undo/redo support.
- KonqOperations::copy(this, m_menuType == Copy ? KonqOperations::COPY : \
KonqOperations::MOVE, + KonqOperations::copy(d->m_parentWidget ? d->m_parentWidget \
: this, + m_menuType == Copy ? KonqOperations::COPY : \
KonqOperations::MOVE, d->m_urls, dest);
}
--- trunk/KDE/kdebase/apps/lib/konq/konq_copytomenu.h #913575:913576
@@ -38,10 +38,22 @@
* Creates a KonqCopyToMenu instance.
* Note that this instance must stay alive for at least as long as the \
popupmenu;
* it has the slots for the actions created by addActionsTo.
+ * @deprecated
+ * KDE5: remove, so that passing a parent widget is mandatory
*/
KonqCopyToMenu();
/**
+ * Creates a KonqCopyToMenu instance, with a parent widget for the file dialog
+ * and message boxes.
+ * Note that this instance (and the widget) must stay alive for at least as
+ * long as the popupmenu; it has the slots for the actions created by \
addActionsTo. + * @param widget note that this is not the parent of \
KonqCopyToMenu itself. + * @since 4.2
+ */
+ KonqCopyToMenu(QWidget* parentWidget);
+
+ /**
* Destructor
*/
~KonqCopyToMenu();
--- trunk/KDE/kdebase/apps/lib/konq/konq_copytomenu_p.h #913575:913576
@@ -25,15 +25,14 @@
#include <QObject>
#include <kurl.h>
-class KonqCopyToMenuPrivate : public QObject
+class KonqCopyToMenuPrivate
{
- Q_OBJECT
public:
- KonqCopyToMenuPrivate();
+ KonqCopyToMenuPrivate(QWidget* parentWidget = 0);
-public:
KUrl::List m_urls;
bool m_readOnly;
+ QWidget* m_parentWidget;
};
enum MenuType { Copy, Move };
--- trunk/KDE/kdebase/apps/lib/konq/konq_popupmenu.cpp #913575:913576
@@ -73,9 +73,10 @@
class KonqPopupMenuPrivate
{
public:
- KonqPopupMenuPrivate(KonqPopupMenu* qq, KActionCollection & actions)
+ KonqPopupMenuPrivate(KonqPopupMenu* qq, KActionCollection & actions, QWidget* \
parentWidget) : q(qq),
m_itemFlags(KParts::BrowserExtension::DefaultPopupItems),
+ m_copyToMenu(parentWidget),
m_actions(actions),
m_ownActions(static_cast<QWidget *>(0))
{
@@ -120,7 +121,7 @@
KBookmarkManager *mgr,
const KParts::BrowserExtension::ActionGroupMap& \
actionGroups) : QMenu(parentWidget),
- d(new KonqPopupMenuPrivate(this, actions))
+ d(new KonqPopupMenuPrivate(this, actions, parentWidget))
{
d->m_actionGroups = actionGroups;
d->m_pMenuNew = newMenu;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic