diff options
| author | Jonathan Callen <abcd@gentoo.org> | 2011-06-12 04:27:14 -0400 |
|---|---|---|
| committer | Jonathan Callen <abcd@gentoo.org> | 2011-06-12 04:27:14 -0400 |
| commit | f74f8cc88ce7f82f1c6c562895520b7e1c6f78a3 (patch) | |
| tree | f4062daf5b8e25a485607f2efb3ad9ea59f20f55 | |
| parent | 3109387f673309be77417d21d07f33160ef74020 (diff) | |
| download | kde-f74f8cc88ce7f82f1c6c562895520b7e1c6f78a3.tar.gz kde-f74f8cc88ce7f82f1c6c562895520b7e1c6f78a3.tar.bz2 kde-f74f8cc88ce7f82f1c6c562895520b7e1c6f78a3.zip | |
Remove unused patches, add a few missing ones (from gx86)
37 files changed, 447 insertions, 2442 deletions
diff --git a/dev-libs/libindicate/Manifest b/dev-libs/libindicate/Manifest index 535a09d4bc2..17cd89f8a03 100644 --- a/dev-libs/libindicate/Manifest +++ b/dev-libs/libindicate/Manifest @@ -1,10 +1,9 @@ -----BEGIN PGP SIGNED MESSAGE----- -Hash: SHA256 +Hash: SHA512 AUX libindicate-0.4.4-fix-aclocal.patch 181 RMD160 81fbc27796faba28141e2efdd8aefd402c6f3f92 SHA1 afef17326571a4c17404690e06110e611b0e3f1c SHA256 7d34560b93dc25b1bfb89aa9ea726bd9f70cd3107eb21e0692aaa29c9b369c96 AUX libindicate-0.4.4-fix-introspection.patch 3690 RMD160 d64ff2fb723ba13fc7418e9c63889aff0759b85c SHA1 f623a0929190da9caef0e0b569c96ca50c12daba SHA256 678176349d2121cc4d2fc0846f8b0609af1615beb6fac01717e6f01ddef10e8d AUX libindicate-0.4.4-fix-out-of-source-build.patch 1322 RMD160 f27759c12ce602a39005613878ea37383f63cf74 SHA1 9cc7758aa0dd627e4f5db935a2b0a0db192ec793 SHA256 7be0fa28278cc69bee72f545667ecbf966f0d36ed5db2b5dc6e5d048a484710d -AUX libindicate-0.4.4-fix-python-version.patch 757 RMD160 42c78617d4388482f05e2240d98fd07db752e58d SHA1 5f588f1f550b06e636e28674b75616c43b1a8392 SHA256 27b3ac6e71549e8c27817e80e14c0e3e217fc83afd8fa9b3c5cbcd5b9ede498d AUX libindicate-0.4.4-mono-parallel-make.patch 350 RMD160 0a43c9df9e05a40e6e1ab8d26922573d92904e74 SHA1 a9ef4e3c93801a7b6c2a7bb7241119ec87e3a8ea SHA256 5ab8226ecdeb7c9aacb2b713847054c4be8e34897b690aea4edb7ea8fb3f841b AUX libindicate-0.4.4-optional-doc.patch 1144 RMD160 3438e3cc559f29305e971ff32918a399f3792ba9 SHA1 d3f2d31af41d7bbc33384143f5edfe3469a941fc SHA256 e4f75b155204d8da75b805dfffe4a6fbb769d001d38eed6bcf3489ac983af445 AUX libindicate-0.4.4-optional-examples.patch 310 RMD160 08c649cbafbc742562179e09d2ecb3a52f790144 SHA1 908d5812dbaee1fd7f9a03e60864815af7d84e0f SHA256 cdb14c7848ef1b4cb828a2e865d7945116b21ad6890bd41b7da5320ff3994a63 @@ -19,17 +18,17 @@ MISC metadata.xml 366 RMD160 aaed9ac306fbf7c939c135e5ce428fd8e7ccae69 SHA1 94598 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.17 (GNU/Linux) -iQIcBAEBCAAGBQJNuMhiAAoJELHSF2kinlg4grEP/0thhgIYRk4vxDPOZvjj8HuJ -PuoDINReqyNxGDzhodmdOKTQyF4i5QbFmQV12/q8wvhB/z5HmnlLZPyV4PdvKtiY -3OR8CU+lWwjaYSRri3AM8T/8pjipZ8CI+qWOGAySiwQCrxz+/iS+N4mlbQmyhdfV -IBlqeDWGjt1Xc2+f8zVzRS792Z8HXGjRCR9qS5F6aPnQxwlbfM9+1GTRPI8Nv+ob -Kai5794B6F/lqmZb+kM5EWhcW67JAq4ADicM5+QPTf32NjW1mhwa3/Z7nREkA5bZ -UQc7GyS7Kkrx7KfrYcLThQQGMdV8l2VqwSmAa6QpjOksG3FS1wAtHUNYKXZ8mp5Z -o5Knqn1KC9B8pFhWX1thoqc6OfJTNOEPtyqPjZNttDIRNYj2fztQyC1v94f4Ps38 -RDqye5UmljzOkI0c982plojVI14nm4YnRRoaFa7noRnuVGGbo9vAkJbHNHk+jSHe -FpJE3ha03dfu0xGSHKbja7VEik97lxq1PG5yn/yuJhkbqbwavL8EhbanKHjbtG/v -0pr78BV02mwu77oZ6y4o+C9buo5rk3wK8juhV+5mva5JeUO1o3awworw8wSkg2y/ -0pGDMTL1SIqRqllKo3N8ahOdAuqs3oYGhblZLVq4kZ/WC9b0IX2WPCWEslr+aOng -lwrkHqO0n2PDvDlq6Dcp -=zoKw +iQIcBAEBCgAGBQJN9HfdAAoJELHSF2kinlg44FcQAJ+liP6XJ9Bq5LKOqooKy5Tb +PODpkfg2jYC16WCJCPRmzDeztnJQLBMTMYERsjgszBAGlVR2mlu8D1KVx0+TU7/v +8dvC/swdhTvW8edpRGNMlcya9nEJX7S8NOZFOr/4imcGYTRJQLJXvIudEyI5fZW6 +LD0sScYFCTsNxm+ZGTfaoQaVQllFtzdF8tvkoJGnOFKK3ajxf7pNnHJ7aZBHpNAl +ns4USSMGl5tqTaPcYV9c+6NKyH5Ihhh5S9g25K4u6cZw4WCE3iRtOCU2ndk0k108 +7MrDxZP1z25eldJiHzkuGydDOqLBFc22VSsJiXzTqVoYvYkCZyt/qmeIiVgV4shj +5lU8NiUsT0bZzBOAGeRjTnMxGayA+q35vs+S4ucn81b6b6Ry4Dfe+ZLlMvZuTNn0 +KA2sLUkiMCxNA3zNSdVS6El3fT9Ux/hYXQSqawzZt1VCoMzaVN+JOxE1mzGRJyU0 +orwQvmAL9+okyVa2MPw4uXIYJ3kgAcQlOApT/9ddwKfWWMcZfHg98p797o3EAN/9 +h5kGlHljrZYsqnSeAkmZapYJRFSlixwnGqyebYxBQMZPVMIAiUKxKeehQbLOf7oL +xjree9lisRSgCLlge45SuKDvg76auC1wG2j4FI81f7mVp9YWd4we8tnio9UBxOLK +jgx5Y/fdHIYoFPIJcLLn +=6RkU -----END PGP SIGNATURE----- diff --git a/dev-libs/libindicate/files/libindicate-0.4.4-fix-python-version.patch b/dev-libs/libindicate/files/libindicate-0.4.4-fix-python-version.patch deleted file mode 100644 index 198114b6564..00000000000 --- a/dev-libs/libindicate/files/libindicate-0.4.4-fix-python-version.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- bindings/python/Makefile.am.orig 2010-12-01 11:02:01.089105608 +0100 -+++ bindings/python/Makefile.am 2010-12-01 11:02:32.619126150 +0100 -@@ -21,7 +21,7 @@ - indicatedir = $(pkgpyexecdir)/indicate - indicate_LTLIBRARIES = _indicate.la - --_indicate_la_LDFLAGS = -module -avoid-version -export-symbols-regex init_indicate -lpyglib-2.0-python2.6 -lpython2.6 -+_indicate_la_LDFLAGS = -module -avoid-version -export-symbols-regex init_indicate -lpyglib-2.0-python@PYTHON_VERSION@ -lpython@PYTHON_VERSION@ - _indicate_la_LIBADD = $(INDICATE_PYTHON_LIBS) -L$(top_builddir)/libindicate/.libs/ -lindicate -L$(top_builddir)/libindicate-gtk/.libs -lindicate-gtk $(LIBINDICATEGTK_LIBS) - _indicate_la_SOURCES = indicatemodule.c - nodist__indicate_la_SOURCES = indicate.c diff --git a/kde-base/dolphin/Manifest b/kde-base/dolphin/Manifest index 10a1c1e6f4a..428fe29e2f8 100644 --- a/kde-base/dolphin/Manifest +++ b/kde-base/dolphin/Manifest @@ -1,7 +1,6 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 -AUX dolphin-4.5.0-tooltips.patch 19833 RMD160 2443c1abe9c099bc633692aa4c812f025e61d01c SHA1 f179b966d2c0600ad4845713b46f3f2e1f273322 SHA256 589db980c89230a8bc0e2080dc92b4337af17ed9060ecc912d5549c6a408e0c7 DIST kde-baseapps-4.6.80.tar.bz2 2487943 RMD160 30f8e1f32f0780ccbcdfdd2aff7a6a29cbc58be9 SHA1 f89b848791628d675e26dd7e703bd79834d1c951 SHA256 d10c7d3ba65d369cc93f2853cf4adacd4d7131dfd0c715080d0faf4acf0b513f EBUILD dolphin-4.6.49.9999.ebuild 782 RMD160 be32c31502da21b423a77f315ebf5854466039dd SHA1 752e7b3f292b8d83b5b5b1ef80e9043bb2582e39 SHA256 b50c16df585a9724f177f8eafa266870704a5e82d168b96bc3f97d6c0ccf1282 EBUILD dolphin-4.6.80.ebuild 817 RMD160 13fc1eba2f548bcf336354448b670475015618c3 SHA1 be4be3b106c63036feae8420253389cec637b0cc SHA256 22ca002a1315e2dbe0f69bb4a5ad6360aefc6a0b82453e3cf10c101659954ef3 @@ -10,17 +9,17 @@ MISC metadata.xml 287 RMD160 6079a550c87093424f04a1d307864f6558608f59 SHA1 cd35c -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.17 (GNU/Linux) -iQIcBAEBCgAGBQJN8l55AAoJENwGBM22xffe5isP/1W0UUkaf8jswpy9AoHa/+eJ -ZrVkxjWrDTX+urbf7RIuSm9n4yQkBgyDOmph2QM6d/X8/cgWPGPZciDb0CqO8FMM -CgZ4e3zMQOskGVqZes064T2yg4rpZnLml+CVRZUsw+fTKY6Yj5B2hmRc1JowpHNG -GwiN8L4rQnL7qnIRgWAFOlmzJ5fpitxj51nxDyqo1j5z0ZA+GDTWHmei1X8eelfi -vR2p+eXkCnURKOt4yQNhguvj1pYZpwPtq+xUe49mvrtfhWbPl6zdLM/0CRcVNbfx -KeneX/XxQhzJqcBaVXUuqAGTS7SwAiW9QYRdJKMg0UgPNDWnCVu0KXPkMA/u9YOf -9qRwEZY8rSEOzbWbComvWresMUn+2y8aoZ0fHiYH4p5GmBvGN1aAzv8gsCCJQp84 -uwCurL862yDvWDG4StDOMP89RN0eSRldZOwaZqPb/WeL1TiIXdHvgXC5xH/V0bNF -7JeN82GlMV3EBjOAC6a/nIs5JXNIeduLjgwLnTdGtaBDbUPQarkakyqjKya0LjsO -Wq4RctrYqR0/MYLlT7/sw2/UEbK8xWtnm95HXmYhtoScu/frLMzPTNEoDIkfUC4I -UtV1dGrHoBUrk0FLI+KfQYrgH+ushXP6buqkGUOG9ICPSi7ZnxMRqdwXq/xtUulm -wcKl5IeRwYdGssI2w0uK -=d017 +iQIcBAEBCgAGBQJN9HS+AAoJELHSF2kinlg4a74QAKuE61ud/JtQhcG4EZp2XF9C +X77psIcnN3mf3TobvHsGtyUtNYvwI5l5OEBjJ+F81ejpU4lfMJqArppoo1Xo22ZO +30i3aDJQNzZo8sOEmoXMvfIQJhO4zG17/ePgp+lyyqG2yI67Lfrj1npmSv8MjPiE +UlUNllwgScOWptlgUIEkCHfkj7viyifTL0/BwO/wDJrDQYL7RngbGkyD8YnEmjSl +C4JiURmaYJBpP+hShBA7+WashaB/pwGxfz76eYNe5aNyNmjsj+s43KQNeshLWnyh +3mMaS/4jm2FPCso4vcDa3AGgO1C4auRdpN3vXHSxYqCeYNAoVPoOnrDsHVlXwt1/ +zW4QbI1NcoFZCXnGvtS20RN9vEgSvosBiMHAFxbqNoR4PALAcANqnmzkrd9qexox +iHFEunWk7dkO+p/uu6XJCbKsF30lHMP6OsYtvRhSvPU4BcLeBOg5nRbs4Aflm2d1 +m0UK9Bu0YydKN1oq8P+9HORcZ8hS3iuzwx5LcKuNc4rk97t2lLyptttS7HlhOlan +wgDCRlvYL7sPwjMGKcfRRXWdqK2BemsJXd8EKPmOFmkkaAgb75+fd1cn1TUkRk4j +3vyaasNVXX7mneErq74fgZeqtszUAbby2G+/3cZHO4tp5d3Igqc3CDuCeWc0NNS/ +0GPGA0jiebsXBPMKhGaL +=EC9C -----END PGP SIGNATURE----- diff --git a/kde-base/dolphin/files/dolphin-4.5.0-tooltips.patch b/kde-base/dolphin/files/dolphin-4.5.0-tooltips.patch deleted file mode 100644 index 04de9c1fc6e..00000000000 --- a/kde-base/dolphin/files/dolphin-4.5.0-tooltips.patch +++ /dev/null @@ -1,559 +0,0 @@ -Index: dolphin/src/viewextensionsfactory.cpp -=================================================================== ---- dolphin/src/viewextensionsfactory.cpp (revision 1158362) -+++ dolphin/src/viewextensionsfactory.cpp (working copy) -@@ -50,7 +50,7 @@ - m_autoScroller(0), - m_fileItemDelegate(0), - m_versionControlObserver(0) --{ -+{ - view->setSelectionMode(QAbstractItemView::ExtendedSelection); - - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); -@@ -61,7 +61,7 @@ - m_toolTipManager = new ToolTipManager(view, proxyModel); - - connect(dolphinViewController, SIGNAL(hideToolTip()), -- m_toolTipManager, SLOT(hideTip())); -+ m_toolTipManager, SLOT(hideToolTip())); - } - - // initialize preview generator -Index: dolphin/src/tooltips/filemetadatatooltip.h -=================================================================== ---- dolphin/src/tooltips/filemetadatatooltip.h (revision 1158362) -+++ dolphin/src/tooltips/filemetadatatooltip.h (working copy) -@@ -40,14 +40,26 @@ - virtual ~FileMetaDataToolTip(); - - void setPreview(const QPixmap& pixmap); -- const QPixmap* preview() const; -+ QPixmap preview() const; - - void setName(const QString& name); - QString name() const; - -+ /** -+ * Sets the items for which the meta data should be shown. -+ * The signal metaDataRequestFinished() will be emitted, -+ * as soon as the meta data for the items has been received. -+ */ - void setItems(const KFileItemList& items); - KFileItemList items() const; - -+signals: -+ /** -+ * Is emitted after the meta data has been received for the items -+ * set by FileMetaDataToolTip::setItems(). -+ */ -+ void metaDataRequestFinished(); -+ - protected: - virtual void paintEvent(QPaintEvent* event); - -Index: dolphin/src/tooltips/tooltipmanager.cpp -=================================================================== ---- dolphin/src/tooltips/tooltipmanager.cpp (revision 1158362) -+++ dolphin/src/tooltips/tooltipmanager.cpp (working copy) -@@ -23,9 +23,8 @@ - #include "dolphinsortfilterproxymodel.h" - - #include "filemetadatatooltip.h" --#include <kicon.h> --#include <kio/previewjob.h> --#include <kwindowsystem.h> -+#include <KIcon> -+#include <KIO/PreviewJob> - - #include <QApplication> - #include <QDesktopWidget> -@@ -39,16 +38,13 @@ - m_view(parent), - m_dolphinModel(0), - m_proxyModel(model), -- m_prepareToolTipTimer(0), -- m_startPreviewJobTimer(0), -- m_waitOnPreviewTimer(0), -- m_showToolTipDelayedTimer(0), -+ m_showToolTipTimer(0), -+ m_contentRetrievalTimer(0), - m_fileMetaDataToolTip(0), -+ m_toolTipRequested(false), -+ m_metaDataRequested(false), - m_item(), -- m_itemRect(), -- m_generatingPreview(false), -- m_hasDefaultIcon(false), -- m_previewPixmap() -+ m_itemRect() - { - static FileMetaDataToolTip* sharedToolTip = 0; - if (sharedToolTip == 0) { -@@ -58,7 +54,9 @@ - // not work. - } - m_fileMetaDataToolTip = sharedToolTip; -- -+ connect(m_fileMetaDataToolTip, SIGNAL(metaDataRequestFinished()), -+ this, SLOT(slotMetaDataRequestFinished())); -+ - m_dolphinModel = static_cast<DolphinModel*>(m_proxyModel->sourceModel()); - connect(parent, SIGNAL(entered(const QModelIndex&)), - this, SLOT(requestToolTip(const QModelIndex&))); -@@ -66,33 +64,25 @@ - this, SLOT(hideToolTip())); - - // Initialize timers -- m_prepareToolTipTimer = new QTimer(this); -- m_prepareToolTipTimer->setSingleShot(true); -- m_prepareToolTipTimer->setInterval(500); -- connect(m_prepareToolTipTimer, SIGNAL(timeout()), this, SLOT(prepareToolTip())); -- -- m_startPreviewJobTimer = new QTimer(this); -- m_startPreviewJobTimer->setSingleShot(true); -- m_startPreviewJobTimer->setInterval(200); -- connect(m_startPreviewJobTimer, SIGNAL(timeout()), this, SLOT(startPreviewJob())); -- -- m_waitOnPreviewTimer = new QTimer(this); -- m_waitOnPreviewTimer->setSingleShot(true); -- m_waitOnPreviewTimer->setInterval(250); -- connect(m_waitOnPreviewTimer, SIGNAL(timeout()), this, SLOT(prepareToolTip())); -+ m_showToolTipTimer = new QTimer(this); -+ m_showToolTipTimer->setSingleShot(true); -+ m_showToolTipTimer->setInterval(500); -+ connect(m_showToolTipTimer, SIGNAL(timeout()), this, SLOT(showToolTip())); - -- m_showToolTipDelayedTimer = new QTimer(this); -- m_showToolTipDelayedTimer->setSingleShot(true); -- m_showToolTipDelayedTimer->setInterval(100); -- connect(m_showToolTipDelayedTimer, SIGNAL(timeout()), this, SLOT(showToolTip())); -- -+ m_contentRetrievalTimer = new QTimer(this); -+ m_contentRetrievalTimer->setSingleShot(true); -+ m_contentRetrievalTimer->setInterval(200); -+ connect(m_contentRetrievalTimer, SIGNAL(timeout()), this, SLOT(startContentRetrieval())); -+ -+ Q_ASSERT(m_contentRetrievalTimer->interval() < m_showToolTipTimer->interval()); -+ - // When the mousewheel is used, the items don't get a hovered indication - // (Qt-issue #200665). To assure that the tooltip still gets hidden, - // the scrollbars are observed. - connect(parent->horizontalScrollBar(), SIGNAL(valueChanged(int)), -- this, SLOT(hideTip())); -+ this, SLOT(hideToolTip())); - connect(parent->verticalScrollBar(), SIGNAL(valueChanged(int)), -- this, SLOT(hideTip())); -+ this, SLOT(hideToolTip())); - - m_view->viewport()->installEventFilter(this); - m_view->installEventFilter(this); -@@ -102,9 +92,17 @@ - { - } - --void ToolTipManager::hideTip() -+void ToolTipManager::hideToolTip() - { -- hideToolTip(); -+ QApplication::restoreOverrideCursor(); -+ -+ m_toolTipRequested = false; -+ m_metaDataRequested = false; -+ m_showToolTipTimer->stop(); -+ m_contentRetrievalTimer->stop(); -+ -+ m_fileMetaDataToolTip->setItems(KFileItemList()); -+ m_fileMetaDataToolTip->hide(); - } - - bool ToolTipManager::eventFilter(QObject* watched, QEvent* event) -@@ -128,7 +126,7 @@ - void ToolTipManager::requestToolTip(const QModelIndex& index) - { - hideToolTip(); -- -+ - // Only request a tooltip for the name column and when no selection or - // drag & drop operation is done (indicated by the left mouse button) - if ((index.column() == DolphinModel::Name) && !(QApplication::mouseButtons() & Qt::LeftButton)) { -@@ -139,44 +137,27 @@ - const QModelIndex dirIndex = m_proxyModel->mapToSource(index); - m_item = m_dolphinModel->itemForIndex(dirIndex); - -- // Only start the previewJob when the mouse has been over this item for 200 milliseconds. -- // This prevents a lot of useless preview jobs when passing rapidly over a lot of items. -- m_startPreviewJobTimer->start(); -- m_previewPixmap = QPixmap(); -- m_hasDefaultIcon = false; -- -- m_prepareToolTipTimer->start(); -+ // Only start the retrieving of the content, when the mouse has been over this -+ // item for 200 milliseconds. This prevents a lot of useless preview jobs and -+ // meta data retrieval, when passing rapidly over a lot of items. -+ m_contentRetrievalTimer->start(); -+ m_showToolTipTimer->start(); -+ m_toolTipRequested = true; -+ Q_ASSERT(!m_metaDataRequested); - } - } - --void ToolTipManager::hideToolTip() -+void ToolTipManager::startContentRetrieval() - { -- m_prepareToolTipTimer->stop(); -- m_startPreviewJobTimer->stop(); -- m_waitOnPreviewTimer->stop(); -- m_showToolTipDelayedTimer->stop(); -+ if (!m_toolTipRequested) { -+ return; -+ } - -- m_fileMetaDataToolTip->hide(); --} -+ m_fileMetaDataToolTip->setName(m_item.text()); - --void ToolTipManager::prepareToolTip() --{ -- if (m_generatingPreview) { -- m_waitOnPreviewTimer->start(); -- } -+ m_metaDataRequested = true; -+ m_fileMetaDataToolTip->setItems(KFileItemList() << m_item); - -- if (!m_previewPixmap.isNull()) { -- showToolTipDelayed(m_previewPixmap); -- } else if (!m_hasDefaultIcon) { -- const QPixmap image(KIcon(m_item.iconName()).pixmap(128, 128)); -- showToolTipDelayed(image); -- m_hasDefaultIcon = true; -- } --} -- --void ToolTipManager::startPreviewJob() --{ -- m_generatingPreview = true; - KIO::PreviewJob* job = KIO::filePreview(KFileItemList() << m_item, 256, 256); - - connect(job, SIGNAL(gotPreview(const KFileItem&, const QPixmap&)), -@@ -189,44 +170,98 @@ - void ToolTipManager::setPreviewPix(const KFileItem& item, - const QPixmap& pixmap) - { -- if ((m_item.url() != item.url()) || pixmap.isNull()) { -- // An old preview or an invalid preview has been received -+ if (!m_toolTipRequested || (m_item.url() != item.url())) { -+ // No tooltip is requested anymore or an old preview has been received -+ return; -+ } -+ -+ if (pixmap.isNull()) { - previewFailed(); - } else { -- m_previewPixmap = pixmap; -- m_generatingPreview = false; -+ m_fileMetaDataToolTip->setPreview(pixmap); -+ if (!m_showToolTipTimer->isActive()) { -+ showToolTip(); -+ } - } - } - - void ToolTipManager::previewFailed() - { -- m_generatingPreview = false; -+ if (!m_toolTipRequested) { -+ return; -+ } -+ -+ const QPixmap pixmap = KIcon(m_item.iconName()).pixmap(128, 128); -+ m_fileMetaDataToolTip->setPreview(pixmap); -+ if (!m_showToolTipTimer->isActive()) { -+ showToolTip(); -+ } - } - -+void ToolTipManager::slotMetaDataRequestFinished() -+{ -+ if (!m_toolTipRequested) { -+ return; -+ } -+ -+ m_metaDataRequested = false; -+ if (!m_showToolTipTimer->isActive()) { -+ showToolTip(); -+ } -+} -+ - void ToolTipManager::showToolTip() - { -- const QRect desktop = QApplication::desktop()->screenGeometry(m_itemRect.bottomRight()); -- const QSize size = m_fileMetaDataToolTip->sizeHint(); -- -+ Q_ASSERT(m_toolTipRequested); -+ QApplication::restoreOverrideCursor(); -+ -+ if (QApplication::mouseButtons() & Qt::LeftButton) { -+ return; -+ } -+ -+ if (m_fileMetaDataToolTip->preview().isNull() || m_metaDataRequested) { -+ QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); -+ return; -+ } -+ -+ const QRect screen = QApplication::desktop()->screenGeometry(QCursor::pos()); -+ -+ // Restrict tooltip size to current screen size when needed. -+ // Because layout controlling widget doesn't respect widget's maximumSize property -+ // (correct me if I'm wrong), we need to let layout do its work, then manually change -+ // geometry if resulting widget doesn't fit the screen. -+ -+ // Step #1 - make sizeHint return calculated tooltip size -+ m_fileMetaDataToolTip->layout()->setSizeConstraint(QLayout::SetFixedSize); -+ m_fileMetaDataToolTip->adjustSize(); -+ QSize size = m_fileMetaDataToolTip->sizeHint(); -+ -+ // Step #2 - correct tooltip size when needed -+ if (size.width() > screen.width()) { -+ size.setWidth(screen.width()); -+ } -+ if (size.height() > screen.height()) { -+ size.setHeight(screen.height()); -+ } -+ - // m_itemRect defines the area of the item, where the tooltip should be - // shown. Per default the tooltip is shown in the bottom right corner. -- // If the tooltip content exceeds the desktop borders, it must be assured that: -+ // It must be assured that: - // - the content is fully visible - // - the content is not drawn inside m_itemRect -- const bool hasRoomToLeft = (m_itemRect.left() - size.width() >= desktop.left()); -- const bool hasRoomToRight = (m_itemRect.right() + size.width() <= desktop.right()); -- const bool hasRoomAbove = (m_itemRect.top() - size.height() >= desktop.top()); -- const bool hasRoomBelow = (m_itemRect.bottom() + size.height() <= desktop.bottom()); -+ const bool hasRoomToLeft = (m_itemRect.left() - size.width() >= screen.left()); -+ const bool hasRoomToRight = (m_itemRect.right() + size.width() <= screen.right()); -+ const bool hasRoomAbove = (m_itemRect.top() - size.height() >= screen.top()); -+ const bool hasRoomBelow = (m_itemRect.bottom() + size.height() <= screen.bottom()); - if (!hasRoomAbove && !hasRoomBelow && !hasRoomToLeft && !hasRoomToRight) { - return; - } -- -- int x = 0; -- int y = 0; -+ -+ int x, y; - if (hasRoomBelow || hasRoomAbove) { - x = QCursor::pos().x() + 16; // TODO: use mouse pointer width instead of the magic value of 16 -- if (x + size.width() >= desktop.right()) { -- x = desktop.right() - size.width(); -+ if (x + size.width() >= screen.right()) { -+ x = screen.right() - size.width() + 1; - } - if (hasRoomBelow) { - y = m_itemRect.bottom() + 1; -@@ -240,38 +275,18 @@ - } else { - x = m_itemRect.left() - size.width(); - } -- - // Put the tooltip at the bottom of the screen. The x-coordinate has already - // been adjusted, so that no overlapping with m_itemRect occurs. -- y = desktop.bottom() - size.height(); -+ y = screen.bottom() - size.height() + 1; - } -- -- m_fileMetaDataToolTip->move(qMax(x, 0), qMax(y, 0)); -+ -+ // Step #3 - Alter tooltip geometry -+ m_fileMetaDataToolTip->setFixedSize(size); -+ m_fileMetaDataToolTip->layout()->setSizeConstraint(QLayout::SetNoConstraint); -+ m_fileMetaDataToolTip->setGeometry(x, y, size.width(), size.height()); - m_fileMetaDataToolTip->show(); --} - --void ToolTipManager::showToolTipDelayed(const QPixmap& pixmap) --{ -- if (QApplication::mouseButtons() & Qt::LeftButton) { -- return; -- } -- -- m_fileMetaDataToolTip->setPreview(pixmap); -- m_fileMetaDataToolTip->setName(m_item.text()); -- m_fileMetaDataToolTip->setItems(KFileItemList() << m_item); -- -- // Because one tooltip instance is reused, the size hint always depends on the previous -- // content (QWidgets don't update their layout geometry if they are invisible). To -- // assure having a consistent size without relayout flickering, the tooltip is opened -- // on an invisible position first. This gives the layout system some time to asynchronously -- // update the content. Sadly this only works with compositing enabled. -- if (KWindowSystem::compositingActive()) { -- const QRect desktop = QApplication::desktop()->screenGeometry(m_itemRect.bottomRight()); -- m_fileMetaDataToolTip->move(desktop.bottomRight()); -- m_fileMetaDataToolTip->show(); -- } -- -- m_showToolTipDelayedTimer->start(); // Calls ToolTipManager::showToolTip() -+ m_toolTipRequested = false; - } - - #include "tooltipmanager.moc" -Index: dolphin/src/tooltips/tooltipmanager.h -=================================================================== ---- dolphin/src/tooltips/tooltipmanager.h (revision 1158362) -+++ dolphin/src/tooltips/tooltipmanager.h (working copy) -@@ -23,7 +23,7 @@ - #include <QObject> - #include <QRect> - --#include <kfileitem.h> -+#include <KFileItem> - - class DolphinModel; - class DolphinSortFilterProxyModel; -@@ -54,53 +54,38 @@ - * only needed when the tooltip should be hidden although - * an item is hovered. - */ -- void hideTip(); -+ void hideToolTip(); - - protected: - virtual bool eventFilter(QObject* watched, QEvent* event); - - private slots: - void requestToolTip(const QModelIndex& index); -- void hideToolTip(); -- void prepareToolTip(); -- void startPreviewJob(); -+ void startContentRetrieval(); - void setPreviewPix(const KFileItem& item, const QPixmap& pix); - void previewFailed(); -+ void slotMetaDataRequestFinished(); - void showToolTip(); -- --private: -- void showToolTipDelayed(const QPixmap& pixmap); - - private: - QAbstractItemView* m_view; - DolphinModel* m_dolphinModel; - DolphinSortFilterProxyModel* m_proxyModel; - -- /// Timeout from requesting a tooltip until the tooltip is shown -- QTimer* m_prepareToolTipTimer; -- -- /// Timeout from requesting a tooltip until starting a job to -- /// create a preview pixmap. The preview job is started before -- /// m_prepareToolTipTimer has been exceeded, to have the preview -- /// pixmap ideally before the tooltip will be shown. -- QTimer* m_startPreviewJobTimer; -- -- /// Don't show the tooltip, before the preview has been received. The -- /// time indicates the interval, when the check for a received -- /// is done. -- QTimer* m_waitOnPreviewTimer; -- -- /// The tooltip is shown slightly delayed to prevent a flickering -- /// because of layouting the content. -- QTimer* m_showToolTipDelayedTimer; -+ /// Timeout from requesting a tooltip until the tooltip -+ /// should be shown -+ QTimer* m_showToolTipTimer; - -+ /// Timeout from requesting a tooltip until the retrieving of -+ /// the tooltip content like preview and meta data gets started. -+ QTimer* m_contentRetrievalTimer; -+ - FileMetaDataToolTip* m_fileMetaDataToolTip; - -+ bool m_toolTipRequested; -+ bool m_metaDataRequested; - KFileItem m_item; - QRect m_itemRect; -- bool m_generatingPreview; -- bool m_hasDefaultIcon; -- QPixmap m_previewPixmap; - }; - - #endif -Index: dolphin/src/tooltips/filemetadatatooltip.cpp -=================================================================== ---- dolphin/src/tooltips/filemetadatatooltip.cpp (revision 1158362) -+++ dolphin/src/tooltips/filemetadatatooltip.cpp (working copy) -@@ -20,10 +20,10 @@ - - #include "filemetadatatooltip.h" - --#include <kcolorscheme.h> -+#include <KColorScheme> - #include <kfilemetadatawidget.h> --#include <kseparator.h> --#include <kwindowsystem.h> -+#include <KSeparator> -+#include <KWindowSystem> - - #include <QLabel> - #include <QPainter> -@@ -34,7 +34,6 @@ - m_preview(0), - m_name(0), - m_fileMetaDataWidget(0) -- - { - setAttribute(Qt::WA_TranslucentBackground); - setWindowFlags(Qt::ToolTip | Qt::FramelessWindowHint); -@@ -47,30 +46,25 @@ - QFont font = m_name->font(); - font.setBold(true); - m_name->setFont(font); -- m_name->setAlignment(Qt::AlignHCenter); - - // Create widget for the meta data - m_fileMetaDataWidget = new KFileMetaDataWidget(); - m_fileMetaDataWidget->setForegroundRole(QPalette::ToolTipText); - m_fileMetaDataWidget->setReadOnly(true); -+ connect(m_fileMetaDataWidget, SIGNAL(metaDataRequestFinished()), -+ this, SIGNAL(metaDataRequestFinished())); - -- // The stretchwidget allows the metadata widget to be top aligned and fills -- // the remaining vertical space -- QWidget* stretchWidget = new QWidget(this); -- stretchWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); -- -- QWidget* textContainer = new QWidget(this); -- QVBoxLayout* textLayout = new QVBoxLayout(textContainer); -+ QVBoxLayout* textLayout = new QVBoxLayout(); -+ textLayout->setAlignment(Qt::AlignTop); - textLayout->addWidget(m_name); - textLayout->addWidget(new KSeparator()); - textLayout->addWidget(m_fileMetaDataWidget); -- textLayout->addWidget(stretchWidget); -+ textLayout->setAlignment(m_name, Qt::AlignCenter); -+ textLayout->setAlignment(m_fileMetaDataWidget, Qt::AlignLeft); - - QHBoxLayout* tipLayout = new QHBoxLayout(this); - tipLayout->addWidget(m_preview); -- tipLayout->addWidget(textContaine |
