summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Reffett <creffett@gentoo.org>2012-12-08 00:31:45 +0000
committerChris Reffett <creffett@gentoo.org>2012-12-08 00:31:45 +0000
commit645dc6c5346c5d183da210c107a0b59c1cd33798 (patch)
tree47c62036d6a7c0d255228af02118c57c7f6838e9 /kde-base
parentSplit gstreamer plugin out of net-libs/libnice to enable clean optional suppo... (diff)
downloadhistorical-645dc6c5346c5d183da210c107a0b59c1cd33798.tar.gz
historical-645dc6c5346c5d183da210c107a0b59c1cd33798.tar.bz2
historical-645dc6c5346c5d183da210c107a0b59c1cd33798.zip
Revision bump. Add patch to fix regression wrt drag and drop crashing dolphin and keyboard focus being incorrect after renaming files.
Package-Manager: portage-2.2.0_alpha144/cvs/Linux x86_64 Manifest-Sign-Key: 0x42618354
Diffstat (limited to 'kde-base')
-rw-r--r--kde-base/dolphin/ChangeLog10
-rw-r--r--kde-base/dolphin/Manifest21
-rw-r--r--kde-base/dolphin/dolphin-4.9.4-r1.ebuild (renamed from kde-base/dolphin/dolphin-4.9.4.ebuild)4
-rw-r--r--kde-base/dolphin/files/dolphin-4.9.4-drag-and-drop-and-keyboard-focus.patch232
4 files changed, 250 insertions, 17 deletions
diff --git a/kde-base/dolphin/ChangeLog b/kde-base/dolphin/ChangeLog
index f56d4fb1d64b..c1849349c062 100644
--- a/kde-base/dolphin/ChangeLog
+++ b/kde-base/dolphin/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for kde-base/dolphin
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/kde-base/dolphin/ChangeLog,v 1.160 2012/12/05 16:58:07 alexxy Exp $
+# $Header: /var/cvsroot/gentoo-x86/kde-base/dolphin/ChangeLog,v 1.161 2012/12/08 00:31:34 creffett Exp $
+
+*dolphin-4.9.4-r1 (08 Dec 2012)
+
+ 08 Dec 2012; Chris Reffett <creffett@gentoo.org> +dolphin-4.9.4-r1.ebuild,
+ +files/dolphin-4.9.4-drag-and-drop-and-keyboard-focus.patch,
+ -dolphin-4.9.4.ebuild:
+ Revision bump. Add patch to fix regression wrt drag and drop crashing dolphin
+ and keyboard focus being incorrect after renaming files.
*dolphin-4.9.4 (05 Dec 2012)
diff --git a/kde-base/dolphin/Manifest b/kde-base/dolphin/Manifest
index a29068f60ffb..48c519b81a66 100644
--- a/kde-base/dolphin/Manifest
+++ b/kde-base/dolphin/Manifest
@@ -1,28 +1,19 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
+AUX dolphin-4.9.4-drag-and-drop-and-keyboard-focus.patch 9035 SHA256 fee187cf6c46bc892513600f08db24cd89a20782e546d99025a3e41248cf8f6c SHA512 a66eddcd465216024e3bdbe3604758cd17cb95d6ab4e354c7e0985fecc577dbe73c52cff27e4a7ba64beacb89202bf8aa88049bee147bc4f21f74736b6871129 WHIRLPOOL eff4663992ca42622cd7477eed234006702626bb56b967c1d7ad125f616a0673e60d57d7b7ef28d19c54bc3e3023263782db18da308f3c4ac52ca43092f3f132
DIST kde-baseapps-4.8.5.tar.xz 2781216 SHA256 7e3d85264c3eeb3a4d9c474e208b5ac3d6280a6a179889012c0b97d9dd1d418c SHA512 9e1890da2fcdfc77bc024e19e3547cc2f8bab2c886f9a8c0b870373179b0bd8983bf5a0c2e2bfc3f2009ec45a96713ce0008007f7227724180b4af222a7778fe WHIRLPOOL c01537f01ba4740442d2f1a4ae8db979fac56c52d0e41293718dc404d7876ae11e278a390a52729322c58bbb643416ff7e37ae8c5eb15902d18e5fc533ad346a
DIST kde-baseapps-4.9.3.tar.xz 2487976 SHA256 26314e40abc5c138c1772aa1cdb61696550284ed5a170f19728b2deb12514bb7 SHA512 86ed31113374ad31aed6b345b9b371d6e282c88fe5e07564a80035229a7aef05d9bf615369e6278406ae72d38b53f84d41ce059ff3bad20f11959500cf493489 WHIRLPOOL 6068bb6b0fae080d1340d047eda9639bb83821baf79a4b0384e7844bca21215b30a480e12dcdfcc181837b77b11da053fa5ae727d2a50c5283b0f34cd5d1d709
DIST kde-baseapps-4.9.4.tar.xz 2523460 SHA256 c04208681afcbee108c51fadaca6ca8ba98090c56d66a454c6acc57288f6c238 SHA512 f709d000ddfbb0d73ceb977d83115b876b954123a0e839aeb99dd4c5bb2458f19f6961e46953c70070e27694941465032c50e050cf6ab2e9990e4b6f1c961a53 WHIRLPOOL 81743b8b7823ed44595de2dfec9356009b04f60e5768b211a88c29fef5afa7d48800610a14e8749fb13f3e2e4e80c53c80d8a00792abe6121b0782fd67c78b5f
EBUILD dolphin-4.8.5.ebuild 1080 SHA256 252412ffee0085f1253d0f6e1ef9c513b94f058a777961f27d30f88c9892f93f SHA512 b20858af2f214d9607f16641697afe33bcffa3c8cd9d79d89183f288a0f8f19ea523f3003cefb9c66760ad935cabaa43aeb0eac3406ce1c488dcda4c3292219a WHIRLPOOL d55683447bcda4bfc17ce472fe04e846e342e7fddbd6ee1ace66763256deb35d2c9fb5bb3f8065a8e2b163e74243a3804a21ea53995a05db120c616ca205c417
EBUILD dolphin-4.9.3.ebuild 1076 SHA256 013d7f828666014c30ec05b3be3a3ca690c196c5be5d9947d07ca0325d43b97b SHA512 7629f5cd0b7bae7642d24388f6713a0e6829df77aef76198e85e5f65d8733a310c00e09adb8a5d3facebb5645d05616f55a3400a099bd2a6f1be493013c3f5f2 WHIRLPOOL 90ac4935dbc25d4ab28e495aea37eadded74f572b4c3bae3932dd1a4c00c2d7548337532f98b6b7589e8ccf3edf5b776c9a0e3eda341b1559980dea0082dfc30
-EBUILD dolphin-4.9.4.ebuild 1082 SHA256 e977722c702a4185a8095048e1ea7eb36f5082fc754ae3fe51b8faa1b271f92e SHA512 0a81b2287ee3f6b79cad62605a88a48ef80a74fa85f766a601f481f25842cf8de1fe5eefa59c58bf4040be8069a6afc0e53aef880b207e19caf7df1eebc6acb5 WHIRLPOOL d245a95af66e1956526370dca879ca30f8ec3bed7cf9812fa25684d8e6c19a7d0bf204fb0c84f3830a038bcb0fa9731561b44799d7cf0a614cdf6bb3411017c5
-MISC ChangeLog 20876 SHA256 3c540822674a551a287d0111da2eefd658d82a611b470dae42afc8a919494518 SHA512 9b4cea09c4b3302fcbdf563fef67939625d6851a57cce6be5a19d85119f6e14ace5aad4147a42b29506d046be0dabe4a9d10e7cf131223697f4e5cd53ba9e166 WHIRLPOOL 2d4ac6ec5cdee4a26a8b1e6d2bcb52f3375daeb3392ef46428f702e51ada74c88a876a942d6ff4c4ea18f45f1574cc53f229008968f9be12d8893f39baa796bc
+EBUILD dolphin-4.9.4-r1.ebuild 1165 SHA256 48d260b2b393c61f78c7a0cdc615a7d37c3eec6ddb670c865ac69f366ad5d07f SHA512 8719daaff3c5d02f8595da6c57b469298cc9d3cd0a134d23c67ae35051befceff785f4f950a8cbab8d2e131856312bcf8126ba7b2b8062fb089a832d98e0aa7a WHIRLPOOL fb70af35e24c1b5b96da664ba5819c059907e2a82e0428b192328604bb45de22863b4a889d52415666e4524d1556d00f085041a00050c1fbbfa513e7401c6b0b
+MISC ChangeLog 21216 SHA256 8b3321afca85c77fc5ea6d4efaf7f830d38afa62178a1c90ab7e9a04e301885f SHA512 7d946c9b2e5fd3b466bea017e43c5d98eaf10e37b2b9efe962957f87ccae50549535651cb6cbddf127c79dde370b6addc59761968c87e1242fdfe193434b2f6e WHIRLPOOL f09c54a7467ad55b246a0c599ed3126edd93531b6fc98e3f64be2433e3893a527c22d1618eaf713c6ff84966282fba9254176ad24cf74fd12c27fa51c5e19793
MISC metadata.xml 287 SHA256 f8ca0fcb27fae3e13bce985f13164013ba54c573c50a047622953f03c48a6969 SHA512 b85ce8bcdb8dd6cf4521a6e287186c1b602383172bf0d2e239a63b7f223b0b920aba517cad1e430f1bca65598d7e998f71d7e297a92b1dfb277a6609c733eb8a WHIRLPOOL bb24b57ab0aedf0b59aaf84eb7aa2b35d3997eb2e00a34eab410015b0fc889f38f3f3d7bc374985fbd5e47627067b590ca968cb82cd34e9b790edbb57872ab1e
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
-iQIcBAEBCAAGBQJQv31+AAoJEOf+E+/4L5Lmi2IQAKEFDjBL9U/wI7bG8kVbzL2W
-uJhIXyTYpXTVPZgIupwgLFqTDJqulGHr3CK6sDD070yEKPaHQaQfW7JnYOMFOy7c
-wyXce1dvqiWeoJKNwRNZWCOiHBNj9zw5/TILtfRMo63X8KlzvB60CPheeH1x4cJE
-zWrUBmjx+HrLSJjUxPUIqgaWg2JjiX7WmA662vyJZROKvSwvK+C6M6iF9TNzgKLh
-YJnIVdd5PPd3NAE9QX6j278HJQ2Q5r95QZWNTmR8I3UL5Vi/fmtajp7KIM5GMeHo
-pcuLGq6jQwbKDSonFunkJh4TVGqd6dBtZWLX6HsNRPAA+xDEsM1njjC3GeYI+LBp
-hmMy8jfKb1aB74piTQEYoN31K8O2Ct5JjHxrS4jPNQIE14YCMdf/r0wepl/3IJWN
-RgiPeoPuU5r+5a61+cCRGJfGagoZ80nam/DCemqXIKFT4H4S7xlUvxwjfy2qWSiI
-QKLh7MVlm9DEgm9Nr8eLTuOOIDKf43TokkC0AOebtknXOkmh8vII+K2NqvTjZbGf
-WMDvyzt9aVki7fLeVCYS/5pYdmP02MxGolv7qpos+yKWIVtNfUZVMfAQYy6fJ9K6
-CKyl+YFjfhI8P9pPeVIwuSLTgyLZ8qVDSUtsCSLIsRef/qBw79BgIEMtpTHit+mY
-upKEZ+9atuHS2rFEtwW3
-=9Agm
+iEYEAREIAAYFAlDCimgACgkQ23laikJhg1TYegCgggzBwHLFf3fdaC14MeBTkAzd
+0jEAn25dT+koxBsQJXu4gTyky1Nfm1fv
+=sP5t
-----END PGP SIGNATURE-----
diff --git a/kde-base/dolphin/dolphin-4.9.4.ebuild b/kde-base/dolphin/dolphin-4.9.4-r1.ebuild
index e2bb8a1de9e4..ce25f2bdac9e 100644
--- a/kde-base/dolphin/dolphin-4.9.4.ebuild
+++ b/kde-base/dolphin/dolphin-4.9.4-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/kde-base/dolphin/dolphin-4.9.4.ebuild,v 1.1 2012/12/05 16:58:07 alexxy Exp $
+# $Header: /var/cvsroot/gentoo-x86/kde-base/dolphin/dolphin-4.9.4-r1.ebuild,v 1.1 2012/12/08 00:31:34 creffett Exp $
EAPI=4
@@ -32,6 +32,8 @@ PDEPEND="
KMLOADLIBS="libkonq"
+PATCHES=( "${FILESDIR}/${PN}-4.9.4-drag-and-drop-and-keyboard-focus.patch" )
+
RESTRICT="test"
# bug 393129
diff --git a/kde-base/dolphin/files/dolphin-4.9.4-drag-and-drop-and-keyboard-focus.patch b/kde-base/dolphin/files/dolphin-4.9.4-drag-and-drop-and-keyboard-focus.patch
new file mode 100644
index 000000000000..9f328ec60f91
--- /dev/null
+++ b/kde-base/dolphin/files/dolphin-4.9.4-drag-and-drop-and-keyboard-focus.patch
@@ -0,0 +1,232 @@
+diff --git a/dolphin/src/kitemviews/kstandarditemlistwidget.cpp b/dolphin/src/kitemviews/kstandarditemlistwidget.cpp
+index f92cab5..af16954 100644
+--- a/dolphin/src/kitemviews/kstandarditemlistwidget.cpp
++++ b/dolphin/src/kitemviews/kstandarditemlistwidget.cpp
+@@ -193,7 +193,8 @@ KStandardItemListWidget::KStandardItemListWidget(KItemListWidgetInformant* infor
+ m_additionalInfoTextColor(),
+ m_overlay(),
+ m_rating(),
+- m_roleEditor(0)
++ m_roleEditor(0),
++ m_oldRoleEditor(0)
+ {
+ }
+
+@@ -203,6 +204,7 @@ KStandardItemListWidget::~KStandardItemListWidget()
+ m_textInfo.clear();
+
+ delete m_roleEditor;
++ delete m_oldRoleEditor;
+ }
+
+ void KStandardItemListWidget::setLayout(Layout layout)
+@@ -609,13 +611,16 @@ void KStandardItemListWidget::editedRoleChanged(const QByteArray& current, const
+ this, SLOT(slotRoleEditingCanceled(int,QByteArray,QVariant)));
+ disconnect(m_roleEditor, SIGNAL(roleEditingFinished(int,QByteArray,QVariant)),
+ this, SLOT(slotRoleEditingFinished(int,QByteArray,QVariant)));
+- // Do not delete the role editor using deleteLater() because we might be
+- // inside a nested event loop which has been started by one of its event
+- // handlers (contextMenuEvent() or drag&drop inside mouseMoveEvent()).
+- m_roleEditor->deleteWhenIdle();
++ m_oldRoleEditor = m_roleEditor;
++ m_roleEditor->hide();
+ m_roleEditor = 0;
+ }
+ return;
++ } else if (m_oldRoleEditor) {
++ // Delete the old editor before constructing the new one to
++ // prevent a memory leak.
++ m_oldRoleEditor->deleteLater();
++ m_oldRoleEditor = 0;
+ }
+
+ Q_ASSERT(!m_roleEditor);
+@@ -1267,21 +1272,19 @@ QRectF KStandardItemListWidget::roleEditingRect(const QByteArray& role) const
+
+ void KStandardItemListWidget::closeRoleEditor()
+ {
++ disconnect(m_roleEditor, SIGNAL(roleEditingCanceled(int,QByteArray,QVariant)),
++ this, SLOT(slotRoleEditingCanceled(int,QByteArray,QVariant)));
++ disconnect(m_roleEditor, SIGNAL(roleEditingFinished(int,QByteArray,QVariant)),
++ this, SLOT(slotRoleEditingFinished(int,QByteArray,QVariant)));
++
+ if (m_roleEditor->hasFocus()) {
+ // If the editing was not ended by a FocusOut event, we have
+ // to transfer the keyboard focus back to the KItemListContainer.
+ scene()->views()[0]->parentWidget()->setFocus();
+ }
+
+- disconnect(m_roleEditor, SIGNAL(roleEditingCanceled(int,QByteArray,QVariant)),
+- this, SLOT(slotRoleEditingCanceled(int,QByteArray,QVariant)));
+- disconnect(m_roleEditor, SIGNAL(roleEditingFinished(int,QByteArray,QVariant)),
+- this, SLOT(slotRoleEditingFinished(int,QByteArray,QVariant)));
+-
+- // Do not delete the role editor using deleteLater() because we might be
+- // inside a nested event loop which has been started by one of its event
+- // handlers (contextMenuEvent() or drag&drop inside mouseMoveEvent()).
+- m_roleEditor->deleteWhenIdle();
++ m_oldRoleEditor = m_roleEditor;
++ m_roleEditor->hide();
+ m_roleEditor = 0;
+ }
+
+diff --git a/dolphin/src/kitemviews/kstandarditemlistwidget.h b/dolphin/src/kitemviews/kstandarditemlistwidget.h
+index 787722d..386f60e 100644
+--- a/dolphin/src/kitemviews/kstandarditemlistwidget.h
++++ b/dolphin/src/kitemviews/kstandarditemlistwidget.h
+@@ -241,6 +241,7 @@ private:
+ QPixmap m_rating;
+
+ KItemListRoleEditor* m_roleEditor;
++ KItemListRoleEditor* m_oldRoleEditor;
+
+ friend class KStandardItemListWidgetInformant; // Accesses private static methods to be able to
+ // share a common layout calculation
+diff --git a/dolphin/src/kitemviews/private/kitemlistroleeditor.cpp b/dolphin/src/kitemviews/private/kitemlistroleeditor.cpp
+index 78dbfe9..1e4b5fd 100644
+--- a/dolphin/src/kitemviews/private/kitemlistroleeditor.cpp
++++ b/dolphin/src/kitemviews/private/kitemlistroleeditor.cpp
+@@ -26,9 +26,7 @@ KItemListRoleEditor::KItemListRoleEditor(QWidget *parent) :
+ KTextEdit(parent),
+ m_index(0),
+ m_role(),
+- m_blockFinishedSignal(false),
+- m_eventHandlingLevel(0),
+- m_deleteAfterEventHandling(false)
++ m_blockFinishedSignal(false)
+ {
+ setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+@@ -66,20 +64,6 @@ QByteArray KItemListRoleEditor::role() const
+ return m_role;
+ }
+
+-void KItemListRoleEditor::deleteWhenIdle()
+-{
+- if (m_eventHandlingLevel > 0) {
+- // We are handling an event at the moment. It could be that we
+- // are in a nested event loop run by contextMenuEvent() or a
+- // call of mousePressEvent() which results in drag&drop.
+- // -> do not call deleteLater() to prevent a crash when we
+- // return from the nested event loop.
+- m_deleteAfterEventHandling = true;
+- } else {
+- deleteLater();
+- }
+-}
+-
+ bool KItemListRoleEditor::eventFilter(QObject* watched, QEvent* event)
+ {
+ if (watched == parentWidget() && event->type() == QEvent::Resize) {
+@@ -91,42 +75,13 @@ bool KItemListRoleEditor::eventFilter(QObject* watched, QEvent* event)
+
+ bool KItemListRoleEditor::event(QEvent* event)
+ {
+- ++m_eventHandlingLevel;
+-
+ if (event->type() == QEvent::FocusOut) {
+ QFocusEvent* focusEvent = static_cast<QFocusEvent*>(event);
+ if (focusEvent->reason() != Qt::PopupFocusReason) {
+ emitRoleEditingFinished();
+ }
+ }
+-
+- const int result = KTextEdit::event(event);
+- --m_eventHandlingLevel;
+-
+- if (m_deleteAfterEventHandling && m_eventHandlingLevel == 0) {
+- // Schedule this object for deletion and make sure that we do not try
+- // to deleteLater() again when the DeferredDelete event is received.
+- deleteLater();
+- m_deleteAfterEventHandling = false;
+- }
+-
+- return result;
+-}
+-
+-bool KItemListRoleEditor::viewportEvent(QEvent* event)
+-{
+- ++m_eventHandlingLevel;
+- const bool result = KTextEdit::viewportEvent(event);
+- --m_eventHandlingLevel;
+-
+- if (m_deleteAfterEventHandling && m_eventHandlingLevel == 0) {
+- // Schedule this object for deletion and make sure that we do not try
+- // to deleteLater() again when the DeferredDelete event is received.
+- deleteLater();
+- m_deleteAfterEventHandling = false;
+- }
+-
+- return result;
++ return KTextEdit::event(event);
+ }
+
+ void KItemListRoleEditor::keyPressEvent(QKeyEvent* event)
+@@ -144,8 +99,7 @@ void KItemListRoleEditor::keyPressEvent(QKeyEvent* event)
+ return;
+ case Qt::Key_Enter:
+ case Qt::Key_Return:
+- // TODO: find a better way to fix the bug 309760
+- clearFocus(); // emitRoleEditingFinished(); results in a crash
++ emitRoleEditingFinished();
+ event->accept();
+ return;
+ default:
+diff --git a/dolphin/src/kitemviews/private/kitemlistroleeditor.h b/dolphin/src/kitemviews/private/kitemlistroleeditor.h
+index a2f7058..aa2c977 100644
+--- a/dolphin/src/kitemviews/private/kitemlistroleeditor.h
++++ b/dolphin/src/kitemviews/private/kitemlistroleeditor.h
+@@ -47,15 +47,6 @@ public:
+ void setRole(const QByteArray& role);
+ QByteArray role() const;
+
+- /**
+- * Calls deleteLater() if no event is being handled at the moment.
+- * Otherwise, the deletion is deferred until the event handling is
+- * finished. This prevents that the deletion happens inside a nested
+- * event loop which might be run in contextMenuEvent() or
+- * mouseMoveEvent() because this would probably cause a crash.
+- */
+- void deleteWhenIdle();
+-
+ virtual bool eventFilter(QObject* watched, QEvent* event);
+
+ signals:
+@@ -64,7 +55,6 @@ signals:
+
+ protected:
+ virtual bool event(QEvent* event);
+- virtual bool viewportEvent(QEvent* event);
+ virtual void keyPressEvent(QKeyEvent* event);
+
+ private slots:
+@@ -85,8 +75,6 @@ private:
+ int m_index;
+ QByteArray m_role;
+ bool m_blockFinishedSignal;
+- int m_eventHandlingLevel;
+- bool m_deleteAfterEventHandling;
+ };
+
+ #endif
+diff --git a/dolphin/src/views/dolphinview.cpp b/dolphin/src/views/dolphinview.cpp
+index 70a7394..0e97c5a 100644
+--- a/dolphin/src/views/dolphinview.cpp
++++ b/dolphin/src/views/dolphinview.cpp
+@@ -1227,11 +1227,14 @@ void DolphinView::updateViewState()
+
+ QSet<int> selectedItems = selectionManager->selectedItems();
+
+- for (QList<KUrl>::iterator it = m_selectedUrls.begin(); it != m_selectedUrls.end(); ++it) {
++ QList<KUrl>::iterator it = m_selectedUrls.begin();
++ while (it != m_selectedUrls.end()) {
+ const int index = m_model->index(*it);
+ if (index >= 0) {
+ selectedItems.insert(index);
+- m_selectedUrls.erase(it);
++ it = m_selectedUrls.erase(it);
++ } else {
++ ++it;
+ }
+ }
+