From 4a14a7ce73dab11ff71a3cec73820141edda3f1f Mon Sep 17 00:00:00 2001 From: Script Kiddy Date: Tue, 5 Jul 2011 14:59:46 +0200 Subject: [PATCH 01/44] SVN_SILENT made messages (.desktop file) --- data/services/plasma.protocol | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/data/services/plasma.protocol b/data/services/plasma.protocol index c27a622e4..fb94a84d2 100644 --- a/data/services/plasma.protocol +++ b/data/services/plasma.protocol @@ -12,27 +12,35 @@ Description[ca]=Un protocol pels serveis del Plasma Description[ca@valencia]=Un protocol pels serveis del Plasma Description[cs]=Protokol pro služby Plasma Description[da]=En protokol til Plasma-tjenester +Description[de]=Ein Protokoll für Plasma-Dienste Description[el]=Ένα πρωτόκολλο υπηρεσιών Plasma Description[es]=Un protocolo para los servicios de Plasma Description[et]=Plasma teenuste protokoll Description[hr]=Protokol za servise u Plasmi Description[hu]=Protokoll a Plazma-szolgáltatáshoz Description[ia]=un protocollo per servicios de Plasma +Description[is]=Samskiptamáti fyrir Plasma-þjónustur Description[ja]=Plasma サービスのためのプロトコル Description[kk]=Plasma қызметінің протоколы Description[km]=ពិធីការ​សម្រាប់​សេវា​កម្ម​ប្លាស្មា +Description[ko]=Plasma 서비스 프로토콜 Description[nb]=En protokoll for plasma-tjenester Description[nds]=En Protokoll för Plasma-Deensten Description[nl]=Een protocol voor Plasma-services Description[pa]=ਪਲਾਜ਼ਮਾ ਸਰਵਿਸ ਲਈ ਪਰੋਟੋਕਾਲ +Description[pl]=Protokół dla usług Plazmy Description[pt]=Um protocolo para os serviços do Plasma Description[pt_BR]=Protocolo para os serviços do Plasma Description[ro]=Un protocol pentru servicii Plasma Description[ru]=Протокол для служб Plasma Description[sk]=Protokol pre Plasma služby +Description[sr]=Протокол за плазма сервисе +Description[sr@ijekavian]=Протокол за плазма сервисе +Description[sr@ijekavianlatin]=Protokol za plasma servise +Description[sr@latin]=Protokol za plasma servise Description[sv]=Ett protokoll för Plasma-tjänster Description[tr]=Plasma servisleri için bir protokol -Description[ug]=پىلازما(Plasma) مۇلازىمېتىنىڭ كېلىشىمى +Description[ug]=پلازما(Plasma) مۇلازىمىتىنىڭ كېلىشىمى Description[uk]=Протокол для служб Плазми Description[x-test]=xxA protocol for Plasma servicesxx Description[zh_TW]=Plasma 服務協定 From 4af42a09864c5d9c8603c7389dae9e65c2156f7f Mon Sep 17 00:00:00 2001 From: Script Kiddy Date: Wed, 6 Jul 2011 19:16:46 +0200 Subject: [PATCH 02/44] SVN_SILENT made messages (.desktop file) --- data/services/plasma.protocol | 2 ++ data/servicetypes/plasma-service.desktop | 1 + data/servicetypes/plasma-toolbox.desktop | 1 + .../plasma-containmentactions-test.desktop | 2 ++ 4 files changed, 6 insertions(+) diff --git a/data/services/plasma.protocol b/data/services/plasma.protocol index fb94a84d2..df3acf35e 100644 --- a/data/services/plasma.protocol +++ b/data/services/plasma.protocol @@ -24,6 +24,7 @@ Description[ja]=Plasma サービスのためのプロトコル Description[kk]=Plasma қызметінің протоколы Description[km]=ពិធីការ​សម្រាប់​សេវា​កម្ម​ប្លាស្មា Description[ko]=Plasma 서비스 프로토콜 +Description[lv]=Plasma servisu protokols Description[nb]=En protokoll for plasma-tjenester Description[nds]=En Protokoll för Plasma-Deensten Description[nl]=Een protocol voor Plasma-services @@ -39,6 +40,7 @@ Description[sr@ijekavian]=Протокол за плазма сервисе Description[sr@ijekavianlatin]=Protokol za plasma servise Description[sr@latin]=Protokol za plasma servise Description[sv]=Ett protokoll för Plasma-tjänster +Description[th]=โพรโทคอลสำหรับใช้กับบริการของพลาสมา Description[tr]=Plasma servisleri için bir protokol Description[ug]=پلازما(Plasma) مۇلازىمىتىنىڭ كېلىشىمى Description[uk]=Протокол для служб Плазми diff --git a/data/servicetypes/plasma-service.desktop b/data/servicetypes/plasma-service.desktop index d9f8d7381..cc204736e 100644 --- a/data/servicetypes/plasma-service.desktop +++ b/data/servicetypes/plasma-service.desktop @@ -27,6 +27,7 @@ Comment[kk]=Plasma қызметі Comment[km]=សេវា​​ប្លាស្មា Comment[ko]=Plasma 서비스 Comment[lt]=Plasma tarnyba +Comment[lv]=Plasma serviss Comment[nb]=Plasma-tjeneste Comment[nds]=Plasma-Deenst Comment[nl]=Plasma-service diff --git a/data/servicetypes/plasma-toolbox.desktop b/data/servicetypes/plasma-toolbox.desktop index 93f2fae76..1c3f084a2 100644 --- a/data/servicetypes/plasma-toolbox.desktop +++ b/data/servicetypes/plasma-toolbox.desktop @@ -28,6 +28,7 @@ Comment[km]=ប្រអប់​ឧបករណ៍​ប្លាស្មា Comment[ko]=Plasma 도구 상자 Comment[ku]=Qutiya amûrên Plasma Comment[lt]=Pasma įrankinė +Comment[lv]=Plasma rīkkopa Comment[nb]=Plasma-verktøykasse Comment[nds]=Plasma-Warktüüchkist Comment[nl]=Plasma-hulpmiddelen diff --git a/tests/testcontainmentactionsplugin/plasma-containmentactions-test.desktop b/tests/testcontainmentactionsplugin/plasma-containmentactions-test.desktop index bdcb0c89b..de65f7517 100644 --- a/tests/testcontainmentactionsplugin/plasma-containmentactions-test.desktop +++ b/tests/testcontainmentactionsplugin/plasma-containmentactions-test.desktop @@ -26,6 +26,7 @@ Name[km]=សាកល្បង Name[ko]=테스트 Name[ku]=Bicaribîne Name[lt]=Testas +Name[lv]=Tests Name[nb]=Test Name[nds]=Utproberen Name[nl]=Test @@ -77,6 +78,7 @@ Comment[km]=កម្មវិធី​ជំនួយ​ដំបូង​ស Comment[ko]=테스트를 위한 뼈대 플러그인 Comment[ku]=Pêvekekî hêsan ji bo ceribandinê Comment[lt]=Netikras priedas testavimui +Comment[lv]=Testēšanai paredzēts spraudnis Comment[nb]=Et attrapp-programtillegg for testing Comment[nds]=En Platzholler-Moduul för't Utproberen Comment[nl]=Een dummy plugin voor testen From b736b762030aea14486a5f7bf4befc57f9b4c9a2 Mon Sep 17 00:00:00 2001 From: Script Kiddy Date: Thu, 7 Jul 2011 18:43:55 +0200 Subject: [PATCH 03/44] SVN_SILENT made messages (.desktop file) --- data/services/plasma.protocol | 1 + data/servicetypes/plasma-service.desktop | 1 + data/servicetypes/plasma-toolbox.desktop | 1 + .../plasma-containmentactions-test.desktop | 2 ++ 4 files changed, 5 insertions(+) diff --git a/data/services/plasma.protocol b/data/services/plasma.protocol index df3acf35e..788e86841 100644 --- a/data/services/plasma.protocol +++ b/data/services/plasma.protocol @@ -16,6 +16,7 @@ Description[de]=Ein Protokoll für Plasma-Dienste Description[el]=Ένα πρωτόκολλο υπηρεσιών Plasma Description[es]=Un protocolo para los servicios de Plasma Description[et]=Plasma teenuste protokoll +Description[fr]=Un protocole pour les services Plasma Description[hr]=Protokol za servise u Plasmi Description[hu]=Protokoll a Plazma-szolgáltatáshoz Description[ia]=un protocollo per servicios de Plasma diff --git a/data/servicetypes/plasma-service.desktop b/data/servicetypes/plasma-service.desktop index cc204736e..cfb80feb8 100644 --- a/data/servicetypes/plasma-service.desktop +++ b/data/servicetypes/plasma-service.desktop @@ -16,6 +16,7 @@ Comment[es]=Servicio de Plasma Comment[et]=Plasma teenus Comment[eu]=Plasma zerbitzua Comment[fi]=Plasma-palvelu +Comment[fr]=Service Plasma Comment[gl]=Servizo do Plasma Comment[hr]=Servis u Plasmi Comment[hu]=Plazma-szolgáltatás diff --git a/data/servicetypes/plasma-toolbox.desktop b/data/servicetypes/plasma-toolbox.desktop index 1c3f084a2..92a5bffaa 100644 --- a/data/servicetypes/plasma-toolbox.desktop +++ b/data/servicetypes/plasma-toolbox.desktop @@ -16,6 +16,7 @@ Comment[es]=Caja de herramientas de Plasma Comment[et]=Plasma tööriistakast Comment[eu]=Plasma tresna-kutxa Comment[fi]=Plasma-työkalurivi +Comment[fr]=Boîte à outils Plasma Comment[gl]=Barra de ferramentas do Plasma Comment[hr]=Plasma alatni okvir Comment[hu]=Plazma-eszközkészlet diff --git a/tests/testcontainmentactionsplugin/plasma-containmentactions-test.desktop b/tests/testcontainmentactionsplugin/plasma-containmentactions-test.desktop index de65f7517..b5ca8e01e 100644 --- a/tests/testcontainmentactionsplugin/plasma-containmentactions-test.desktop +++ b/tests/testcontainmentactionsplugin/plasma-containmentactions-test.desktop @@ -14,6 +14,7 @@ Name[et]=Test Name[eu]=Proba Name[fa]=آزمون Name[fi]=Testi +Name[fr]=Test Name[gl]=Proba Name[hr]=Test Name[hu]=Teszt @@ -66,6 +67,7 @@ Comment[es]=Un complemento de pruebas Comment[et]=Libaplugin testimiseks Comment[eu]=Probatarako gezurretazko plugin bat Comment[fi]=Tyhjä testausliitännäinen +Comment[fr]=Un module factice de test Comment[gl]=Un engadido para probas Comment[hr]=Lažan priključak za testiranje Comment[hu]=Üres bővítmény teszteléshez From 9021634a1a7346340620946629ee55d441ddbe1e Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Mon, 11 Jul 2011 21:45:56 +0200 Subject: [PATCH 04/44] prevent triggering a crash in Qt's text layouting also simplifies code as a fun side effect. --- private/tooltip.cpp | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/private/tooltip.cpp b/private/tooltip.cpp index fca9b6715..c70bdb2e6 100644 --- a/private/tooltip.cpp +++ b/private/tooltip.cpp @@ -56,10 +56,6 @@ public: m_toolTip(parent), m_document(new QTextDocument(this)) { - //d->text->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum); -// QTextOption op; -// op.setWrapMode(QTextOption::WordWrap); -// m_document->setDefaultTextOption(op); } void setStyleSheet(const QString &css) @@ -71,18 +67,16 @@ public: { QString html; if (!data.mainText().isEmpty()) { - html.append("" + data.mainText() + ""); - - if (!data.subText().isEmpty()) { - html.append("
"); - } + html.append("
" + data.mainText() + "
"); } html.append(data.subText()); m_anchor.clear(); m_document->clear(); data.registerResources(m_document); - m_document->setHtml("

" + html + "

"); + if (!html.isEmpty()) { + m_document->setHtml("

" + html + "

"); + } m_document->adjustSize(); m_haloRects.clear(); From 2e0b653b48853ea35a2a173ec37cc917fd4a7a77 Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Mon, 11 Jul 2011 21:46:34 +0200 Subject: [PATCH 05/44] paint in parent coords, do events in local coords this makes clicking on the window previews accurate (e.g. clicking at the top of them works) also some code consistency when iterating over the collections and some cleanups --- private/windowpreview.cpp | 51 ++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/private/windowpreview.cpp b/private/windowpreview.cpp index 2e7ddfb61..8df0f2e5d 100644 --- a/private/windowpreview.cpp +++ b/private/windowpreview.cpp @@ -133,8 +133,9 @@ bool WindowPreview::highlightWindows() const void WindowPreview::setInfo() { + QWidget *w = parentWidget(); if (isEmpty()) { - WindowEffects::showWindowThumbnails(parentWidget()->winId()); + WindowEffects::showWindowThumbnails(w->winId()); return; } @@ -143,11 +144,11 @@ void WindowPreview::setInfo() } if (windowSizes.size() == 0) { - WindowEffects::showWindowThumbnails(parentWidget()->winId()); + WindowEffects::showWindowThumbnails(w->winId()); return; } - Q_ASSERT(parentWidget()->isWindow()); // parent must be toplevel + Q_ASSERT(w->isWindow()); // parent must be toplevel QSize thumbnailSize = sizeHint(); thumbnailSize.scale(size(), Qt::KeepAspectRatio); @@ -155,21 +156,24 @@ void WindowPreview::setInfo() qreal left, top, right, bottom; m_background->getMargins(left, top, right, bottom); - QRect thumbnailRect = geometry().adjusted(left, top, -right, -bottom); - + const QRect thumbnailRect(QPoint(left, top), size() - QSize(left + right, top + bottom)); const int numWindows = ids.size(); + const qreal thumbWidth = (thumbnailRect.width() - WINDOW_MARGIN*(numWindows - 1)) / numWindows; + // we paint in parent coords, but accept events in local coords + QList inParentCoords; m_thumbnailRects.clear(); - int x = thumbnailRect.x(); + int x = thumbnailRect.x(); foreach (QSize s, windowSizes) { - s.scale((qreal)(thumbnailRect.width()-WINDOW_MARGIN*(numWindows-1))/numWindows, thumbnailRect.height(), Qt::KeepAspectRatio); + s.scale(thumbWidth, thumbnailRect.height(), Qt::KeepAspectRatio); int y = thumbnailRect.y() + (thumbnailRect.height() - s.height())/2; - m_thumbnailRects.append(QRect(QPoint(x,y), s)); + m_thumbnailRects.append(QRect(QPoint(x, y), s)); + inParentCoords.append(QRect(mapToParent(QPoint(x, y)), s)); x += s.width() + WINDOW_MARGIN; } - WindowEffects::showWindowThumbnails(parentWidget()->winId(), ids, m_thumbnailRects); + WindowEffects::showWindowThumbnails(w->winId(), ids, inParentCoords); } void WindowPreview::paintEvent(QPaintEvent *e) @@ -180,30 +184,24 @@ void WindowPreview::paintEvent(QPaintEvent *e) qreal left, top, right, bottom; m_background->getMargins(left, top, right, bottom); + const QSize delta(left + right, top + bottom); + const QPoint topLeft(left, top); foreach (const QRect &r, m_thumbnailRects) { //kWarning()<resizeFrame(r.size()+QSize(left+right, top+bottom)); - m_background->paintFrame(&painter, r.topLeft()-pos()-QPoint(left,top)); + m_background->resizeFrame(r.size() + delta); + m_background->paintFrame(&painter, r.topLeft() - topLeft); } - } void WindowPreview::mousePressEvent(QMouseEvent *event) { - QPoint p = event->pos(); - WId wid = 0; - for (int i = 0; i < m_thumbnailRects.size(); ++i) { - if (m_thumbnailRects[i].contains(p)) { - wid = ids[i]; - break; + if (m_thumbnailRects[i].contains(event->pos())) { + emit windowPreviewClicked(ids[i], event->buttons(), event->modifiers(), event->globalPos()); + return; } } - - if (wid) { - emit windowPreviewClicked(wid, event->buttons(), event->modifiers(), event->globalPos()); - } } void WindowPreview::mouseMoveEvent(QMouseEvent *event) @@ -212,14 +210,13 @@ void WindowPreview::mouseMoveEvent(QMouseEvent *event) return; } - int i = 0; - foreach (const QRect &rect, m_thumbnailRects) { - if (rect.contains(event->pos())) { - WindowEffects::highlightWindows(effectiveWinId(), QList()<pos())) { + WindowEffects::highlightWindows(effectiveWinId(), QList() << effectiveWinId() << ids[i]); return; } - ++i; } + WindowEffects::highlightWindows(effectiveWinId(), QList()); } From d8215fbfd0bb585d967680585ae2028a77384f62 Mon Sep 17 00:00:00 2001 From: Script Kiddy Date: Fri, 15 Jul 2011 16:57:31 +0200 Subject: [PATCH 06/44] SVN_SILENT made messages (.desktop file) --- data/services/plasma.protocol | 1 + 1 file changed, 1 insertion(+) diff --git a/data/services/plasma.protocol b/data/services/plasma.protocol index 788e86841..20c2a0e34 100644 --- a/data/services/plasma.protocol +++ b/data/services/plasma.protocol @@ -16,6 +16,7 @@ Description[de]=Ein Protokoll für Plasma-Dienste Description[el]=Ένα πρωτόκολλο υπηρεσιών Plasma Description[es]=Un protocolo para los servicios de Plasma Description[et]=Plasma teenuste protokoll +Description[fi]=Plasma-palvelujen protokolla Description[fr]=Un protocole pour les services Plasma Description[hr]=Protokol za servise u Plasmi Description[hu]=Protokoll a Plazma-szolgáltatáshoz From 09a24093cff2049e255367e726deb0981f6952fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Alvarez?= Date: Fri, 1 Jul 2011 20:17:57 -0300 Subject: [PATCH 07/44] Fix typo in Plasma::AbstractRunner apidox. --- abstractrunner.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abstractrunner.h b/abstractrunner.h index 7e336d4ea..62f8cacd5 100644 --- a/abstractrunner.h +++ b/abstractrunner.h @@ -101,7 +101,7 @@ class PLASMA_EXPORT AbstractRunner : public QObject * * Each runner is executed in its own thread. Whenever the user input changes this * method is called again. Thus, it needs to be thread-safe. Also, all matches need - * to be reported once this method returns. Asyncroneous runners therefore need + * to be reported once this method returns. Asynchronous runners therefore need * to make use of a local event loop to wait for all matches. * * It is recommended to use local status data in async runners. The simplest way is From fe1fe477d04b0355625bdcb74672e33d6903dc95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Alvarez?= Date: Fri, 1 Jul 2011 20:18:24 -0300 Subject: [PATCH 08/44] DataEngine apidox: clarify that init() doesn't need to call base impl. --- dataengine.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dataengine.h b/dataengine.h index 6623900e0..097d77bc0 100644 --- a/dataengine.h +++ b/dataengine.h @@ -83,7 +83,10 @@ class PLASMA_EXPORT DataEngine : public QObject * This method is called when the DataEngine is started. When this * method is called the DataEngine is fully constructed and ready to be * used. This method should be reimplemented by DataEngine subclasses - * which have the need to perform a startup routine. + * which need to perform a startup routine. + * + * The default implementation does nothing. Reimplementations in + * subclasses don't need to call this one. **/ virtual void init(); From 7c3949f2041d9503cbe006c05c651dd133b4e208 Mon Sep 17 00:00:00 2001 From: Script Kiddy Date: Mon, 18 Jul 2011 18:00:40 +0200 Subject: [PATCH 09/44] SVN_SILENT made messages (.desktop file) --- data/services/plasma.protocol | 1 + 1 file changed, 1 insertion(+) diff --git a/data/services/plasma.protocol b/data/services/plasma.protocol index 20c2a0e34..c834e622e 100644 --- a/data/services/plasma.protocol +++ b/data/services/plasma.protocol @@ -22,6 +22,7 @@ Description[hr]=Protokol za servise u Plasmi Description[hu]=Protokoll a Plazma-szolgáltatáshoz Description[ia]=un protocollo per servicios de Plasma Description[is]=Samskiptamáti fyrir Plasma-þjónustur +Description[it]=Un protocollo per servizi plasma Description[ja]=Plasma サービスのためのプロトコル Description[kk]=Plasma қызметінің протоколы Description[km]=ពិធីការ​សម្រាប់​សេវា​កម្ម​ប្លាស្មា From 239b5a5d10ab26d353f2752140f39247eab6ec73 Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Tue, 19 Jul 2011 09:34:34 +0200 Subject: [PATCH 10/44] don't remove the applet itself from the scenevent filter when deregistering as a drag handle the event filter is also used for things like the applet handle --- applet.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/applet.cpp b/applet.cpp index 92a19d7a2..2b557bb80 100644 --- a/applet.cpp +++ b/applet.cpp @@ -1651,7 +1651,9 @@ void Applet::unregisterAsDragHandle(QGraphicsItem *item) } if (d->registeredAsDragHandle.remove(item)) { - item->removeSceneEventFilter(this); + if (item != this) { + item->removeSceneEventFilter(this); + } } } From b35d410deb9ba9488af828ef0fc53f116fad897d Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Tue, 19 Jul 2011 09:36:52 +0200 Subject: [PATCH 11/44] remove the event filter if we're a containment, don't return too early from the filter --- applet.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/applet.cpp b/applet.cpp index 2b557bb80..b78153e95 100644 --- a/applet.cpp +++ b/applet.cpp @@ -1799,7 +1799,6 @@ bool Applet::sceneEventFilter(QGraphicsItem *watched, QEvent *event) break; } - return false; } switch (event->type()) { @@ -2409,11 +2408,15 @@ QVariant Applet::itemChange(GraphicsItemChange change, const QVariant &value) break; case ItemParentHasChanged: { - Containment *c = containment(); - if (c && c->containmentType() == Containment::DesktopContainment) { - installSceneEventFilter(this); - } else { + if (isContainment()) { removeSceneEventFilter(this); + } else { + Containment *c = containment(); + if (c && c->containmentType() == Containment::DesktopContainment) { + installSceneEventFilter(this); + } else { + removeSceneEventFilter(this); + } } } break; From 9f03a10b4d44dcafeacb807324fe9fbe3088e3a4 Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Tue, 19 Jul 2011 09:37:55 +0200 Subject: [PATCH 12/44] call Applet::sceneEventFilter; otherwise applet handles are broken on Applets that are also Containments BUG:277467 --- containment.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/containment.cpp b/containment.cpp index 725113925..c3c688fc0 100644 --- a/containment.cpp +++ b/containment.cpp @@ -1680,9 +1680,7 @@ void Containment::wheelEvent(QGraphicsSceneWheelEvent *event) bool Containment::sceneEventFilter(QGraphicsItem *watched, QEvent *event) { - Q_UNUSED(watched) - Q_UNUSED(event) - return false; + return Applet::sceneEventFilter(watched, event); } QVariant Containment::itemChange(GraphicsItemChange change, const QVariant &value) From a34e41b5461b832d53bf943f517f9c26ceffca6c Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Fri, 22 Jul 2011 17:34:46 +0200 Subject: [PATCH 13/44] put a found-paths cache in Theme --- theme.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/theme.cpp b/theme.cpp index c7cc7a3c2..f8cb01597 100644 --- a/theme.cpp +++ b/theme.cpp @@ -148,7 +148,7 @@ public: return cfg; } - QString findInTheme(const QString &image, const QString &theme) const; + QString findInTheme(const QString &image, const QString &theme, bool cache = true); void compositingChanged(); void discardCache(CacheTypes caches); void scheduledCacheUpdate(); @@ -189,6 +189,7 @@ public: QHash idsToCache; QHash animationMapping; QHash cachedStyleSheets; + QHash discoveries; QTimer *saveTimer; #ifdef Q_WS_X11 @@ -241,9 +242,12 @@ void ThemePrivate::onAppExitCleanup() cacheTheme = false; } -QString ThemePrivate::findInTheme(const QString &image, const QString &theme) const +QString ThemePrivate::findInTheme(const QString &image, const QString &theme, bool cache) { - //TODO: this should be using Package + if (cache && discoveries.contains(image)) { + return discoveries[image]; + } + QString search; if (locolor) { @@ -263,6 +267,10 @@ QString ThemePrivate::findInTheme(const QString &image, const QString &theme) co search = KStandardDirs::locate("data", search); } + if (cache && !search.isEmpty()) { + discoveries.insert(image, search); + } + return search; } @@ -280,6 +288,8 @@ void ThemePrivate::compositingChanged() void ThemePrivate::discardCache(CacheTypes caches) { + discoveries.clear(); + if (caches & PixmapCache) { pixmapsToCache.clear(); saveTimer->stop(); @@ -794,8 +804,8 @@ bool Theme::currentThemeHasImage(const QString &name) const return false; } - return !(d->findInTheme(name % QLatin1Literal(".svgz"), d->themeName).isEmpty()) || - !(d->findInTheme(name % QLatin1Literal(".svg"), d->themeName).isEmpty()); + return !(d->findInTheme(name % QLatin1Literal(".svgz"), d->themeName, false).isEmpty()) || + !(d->findInTheme(name % QLatin1Literal(".svg"), d->themeName, false).isEmpty()); } KSharedConfigPtr Theme::colorScheme() const From e525c88cb241df0ce4e9db62aa8350c2f7e08d87 Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Fri, 22 Jul 2011 17:55:57 +0200 Subject: [PATCH 14/44] discard discoveries only when the svg elements also go away; we don't care about colors --- theme.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/theme.cpp b/theme.cpp index f8cb01597..aa24e72d0 100644 --- a/theme.cpp +++ b/theme.cpp @@ -288,8 +288,6 @@ void ThemePrivate::compositingChanged() void ThemePrivate::discardCache(CacheTypes caches) { - discoveries.clear(); - if (caches & PixmapCache) { pixmapsToCache.clear(); saveTimer->stop(); @@ -305,6 +303,7 @@ void ThemePrivate::discardCache(CacheTypes caches) cachedStyleSheets.clear(); if (caches & SvgElementsCache) { + discoveries.clear(); invalidElements.clear(); if (svgElementsCache) { From dcce68643c4d0abd98d246080442b7a65f2e02ae Mon Sep 17 00:00:00 2001 From: Script Kiddy Date: Thu, 28 Jul 2011 17:29:57 +0200 Subject: [PATCH 15/44] SVN_SILENT made messages (.desktop file) --- data/services/plasma.protocol | 1 + 1 file changed, 1 insertion(+) diff --git a/data/services/plasma.protocol b/data/services/plasma.protocol index c834e622e..4fb27ca73 100644 --- a/data/services/plasma.protocol +++ b/data/services/plasma.protocol @@ -16,6 +16,7 @@ Description[de]=Ein Protokoll für Plasma-Dienste Description[el]=Ένα πρωτόκολλο υπηρεσιών Plasma Description[es]=Un protocolo para los servicios de Plasma Description[et]=Plasma teenuste protokoll +Description[eu]=Plasma zerbitzuentzako protokolo bat Description[fi]=Plasma-palvelujen protokolla Description[fr]=Un protocole pour les services Plasma Description[hr]=Protokol za servise u Plasmi From d43d4315aac4ffcd1ced5f88e925cd6fb6e8683b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=B6glund?= Date: Thu, 28 Jul 2011 23:37:17 +0200 Subject: [PATCH 16/44] plasma: Use the new KWindowSystem::compositingChanged() signal (cherry picked from commit b7b4358542e205c027ccd2718f43052851ff7152) --- theme.cpp | 23 ++++++----------------- theme.h | 2 +- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/theme.cpp b/theme.cpp index aa24e72d0..7b5e39803 100644 --- a/theme.cpp +++ b/theme.cpp @@ -97,23 +97,13 @@ public: ThemeConfig config; cacheTheme = config.cacheTheme(); -#ifdef Q_WS_X11 - Display *dpy = QX11Info::display(); - int screen = DefaultScreen(dpy); - locolor = DefaultDepth(dpy, screen) < 16; - - if (!locolor) { - char net_wm_cm_name[100]; - sprintf(net_wm_cm_name, "_NET_WM_CM_S%d", screen); - compositeWatch = new KSelectionWatcher(net_wm_cm_name, -1, q); - QObject::connect(compositeWatch, SIGNAL(newOwner(Window)), q, SLOT(compositingChanged())); - QObject::connect(compositeWatch, SIGNAL(lostOwner()), q, SLOT(compositingChanged())); + if (QPixmap::defaultDepth() > 8) { + QObject::connect(KWindowSystem::self(), SIGNAL(compositingChanged(bool)), q, SLOT(compositingChanged(bool))); //watch for blur effect property changes as well effectWatcher = 0; effectWatcher = new EffectWatcher("_KDE_NET_WM_BLUR_BEHIND_REGION"); QObject::connect(effectWatcher, SIGNAL(blurBehindChanged(bool)), q, SLOT(blurBehindChanged(bool))); } -#endif saveTimer = new QTimer(q); saveTimer->setSingleShot(true); @@ -149,7 +139,7 @@ public: } QString findInTheme(const QString &image, const QString &theme, bool cache = true); - void compositingChanged(); + void compositingChanged(bool active); void discardCache(CacheTypes caches); void scheduledCacheUpdate(); void colorsChanged(); @@ -274,12 +264,11 @@ QString ThemePrivate::findInTheme(const QString &image, const QString &theme, bo return search; } -void ThemePrivate::compositingChanged() +void ThemePrivate::compositingChanged(bool active) { #ifdef Q_WS_X11 - bool nowCompositingActive = compositeWatch->owner() != None; - if (compositingActive != nowCompositingActive) { - compositingActive = nowCompositingActive; + if (compositingActive != active) { + compositingActive = active; discardCache(PixmapCache | SvgElementsCache); emit q->themeChanged(); } diff --git a/theme.h b/theme.h index e4618e2ba..b5118276b 100644 --- a/theme.h +++ b/theme.h @@ -397,7 +397,7 @@ class PLASMA_EXPORT Theme : public QObject friend class ThemePrivate; ThemePrivate *const d; - Q_PRIVATE_SLOT(d, void compositingChanged()) + Q_PRIVATE_SLOT(d, void compositingChanged(bool)) Q_PRIVATE_SLOT(d, void colorsChanged()) Q_PRIVATE_SLOT(d, void blurBehindChanged(bool blur)) Q_PRIVATE_SLOT(d, void settingsFileChanged(const QString &)) From 9a9d2bd419bc525904358011059fb46c59c6aa5b Mon Sep 17 00:00:00 2001 From: Till Adam Date: Sat, 30 Jul 2011 12:52:18 +0200 Subject: [PATCH 17/44] EffectWatcher only exists on X11. (cherry-picked from 826a1eb) --- theme.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/theme.cpp b/theme.cpp index 7b5e39803..b66768062 100644 --- a/theme.cpp +++ b/theme.cpp @@ -99,10 +99,12 @@ public: if (QPixmap::defaultDepth() > 8) { QObject::connect(KWindowSystem::self(), SIGNAL(compositingChanged(bool)), q, SLOT(compositingChanged(bool))); +#ifdef Q_WS_X11 //watch for blur effect property changes as well effectWatcher = 0; effectWatcher = new EffectWatcher("_KDE_NET_WM_BLUR_BEHIND_REGION"); QObject::connect(effectWatcher, SIGNAL(blurBehindChanged(bool)), q, SLOT(blurBehindChanged(bool))); +#endif } saveTimer = new QTimer(q); From 44815f6ae0318fef8dd0d0c8621a3fb402dc74ac Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Sat, 30 Jul 2011 20:18:07 +0200 Subject: [PATCH 18/44] get the corona from the item itself BUG:277135 --- tooltipmanager.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/tooltipmanager.cpp b/tooltipmanager.cpp index 2952d7dea..a67599373 100644 --- a/tooltipmanager.cpp +++ b/tooltipmanager.cpp @@ -246,10 +246,11 @@ void ToolTipManager::setContent(QGraphicsWidget *widget, const ToolTipContent &d d->tipWidget->setContent(widget, data); d->tipWidget->prepareShowing(); - if (m_corona) { - //look if the data prefers aother graphicswidget, otherwise use the one used as event catcher - QGraphicsWidget *referenceWidget = data.graphicsWidget() ? data.graphicsWidget() : widget; - d->tipWidget->moveTo(m_corona->popupPosition(referenceWidget, d->tipWidget->size(), Qt::AlignCenter)); + //look if the data prefers aother graphicswidget, otherwise use the one used as event catcher + QGraphicsWidget *referenceWidget = data.graphicsWidget() ? data.graphicsWidget() : widget; + Corona *corona = qobject_cast(referenceWidget->scene()); + if (corona) { + d->tipWidget->moveTo(corona->popupPosition(referenceWidget, d->tipWidget->size(), Qt::AlignCenter)); } } } @@ -401,9 +402,10 @@ void ToolTipManagerPrivate::showToolTip() clickable = tooltip.value().isClickable(); tipWidget->setContent(currentWidget, tooltip.value()); tipWidget->prepareShowing(); - if (q->m_corona) { - QGraphicsWidget *referenceWidget = tooltip.value().graphicsWidget()?tooltip.value().graphicsWidget():currentWidget; - tipWidget->moveTo(q->m_corona->popupPosition(referenceWidget, tipWidget->size(), Qt::AlignCenter)); + QGraphicsWidget *referenceWidget = tooltip.value().graphicsWidget() ? tooltip.value().graphicsWidget() : currentWidget; + Corona *corona = qobject_cast(referenceWidget->scene()); + if (corona) { + tipWidget->moveTo(corona->popupPosition(referenceWidget, tipWidget->size(), Qt::AlignCenter)); } tipWidget->show(); isShown = true; //ToolTip is visible From d5d5ba688f4aaa29539f73b7256742835e48d2b7 Mon Sep 17 00:00:00 2001 From: Christoph Feck Date: Sat, 30 Jul 2011 21:18:38 +0200 Subject: [PATCH 19/44] Fix accessing pixmapCache after it is deleted BUG: 275570 FIXED-IN: 4.7.1 --- theme.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/theme.cpp b/theme.cpp index b66768062..2c427990f 100644 --- a/theme.cpp +++ b/theme.cpp @@ -310,10 +310,12 @@ void ThemePrivate::discardCache(CacheTypes caches) void ThemePrivate::scheduledCacheUpdate() { - QHashIterator it(pixmapsToCache); - while (it.hasNext()) { - it.next(); - pixmapCache->insertPixmap(idsToCache[it.key()], it.value()); + if (useCache()) { + QHashIterator it(pixmapsToCache); + while (it.hasNext()) { + it.next(); + pixmapCache->insertPixmap(idsToCache[it.key()], it.value()); + } } pixmapsToCache.clear(); From db3b17abf29c6cb8139551bc530e1139ffcadf5f Mon Sep 17 00:00:00 2001 From: Matthias Fuchs Date: Thu, 28 Jul 2011 18:13:33 +0200 Subject: [PATCH 20/44] Use a qobject_cast instead of a dynamic_cast. --- corona.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/corona.cpp b/corona.cpp index 4afef7b2f..048d68ebf 100644 --- a/corona.cpp +++ b/corona.cpp @@ -524,7 +524,7 @@ QPoint Corona::popupPosition(const QGraphicsItem *item, const QSize &s, Qt::Alig pos = v->mapToGlobal(pos); //kDebug() << "==> position is" << actualItem->scenePos() << v->mapFromScene(actualItem->scenePos()) << pos; - const Plasma::View *pv = dynamic_cast(v); + const Plasma::View *pv = qobject_cast(v); Plasma::Location loc = Floating; if (pv && pv->containment()) { From a18379e5d044dee0cdce73f2bfc36b207266314a Mon Sep 17 00:00:00 2001 From: Matthias Fuchs Date: Thu, 28 Jul 2011 18:53:21 +0200 Subject: [PATCH 21/44] Correctly display popups when using multiple screens If there are multiple screens with different resolutions or which are not alligned the same way then it could happen that popups at the edge were drawn (partially) offscreen. This patch fixes that issue. REVIEW:102118 BUG:276336 FIXED-IN:4.7.1 --- corona.cpp | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/corona.cpp b/corona.cpp index 048d68ebf..055af4e00 100644 --- a/corona.cpp +++ b/corona.cpp @@ -571,26 +571,6 @@ QPoint Corona::popupPosition(const QGraphicsItem *item, const QSize &s, Qt::Alig break; } - switch (loc) { - case BottomEdge: - pos.setY(v->geometry().y() - s.height()); - break; - case TopEdge: - pos.setY(v->geometry().bottom()); - break; - case LeftEdge: - pos.setX(v->geometry().right()); - break; - case RightEdge: - pos.setX(v->geometry().x() - s.width()); - break; - default: - if (pos.y() - s.height() > 0) { - pos.ry() = pos.y() - s.height(); - } else { - pos.ry() = pos.y() + (int)actualItem->boundingRect().size().height() + 1; - } - } //are we out of screen? int screen = ((pv && pv->containment()) ? pv->containment()->screen() : -1); @@ -605,6 +585,28 @@ QPoint Corona::popupPosition(const QGraphicsItem *item, const QSize &s, Qt::Alig } QRect screenRect = screenGeometry(screen); + + switch (loc) { + case BottomEdge: + pos.setY(v->geometry().y() - s.height()); + break; + case TopEdge: + pos.setY(v->geometry().bottom()); + break; + case LeftEdge: + pos.setX(v->geometry().right()); + break; + case RightEdge: + pos.setX(v->geometry().x() - s.width()); + break; + default: + if (pos.y() - s.height() > screenRect.top()) { + pos.ry() = pos.y() - s.height(); + } else { + pos.ry() = pos.y() + (int)actualItem->boundingRect().size().height() + 1; + } + } + //kDebug() << "==> rect for" << screen << "is" << screenRect; if (loc != LeftEdge && pos.x() + s.width() > screenRect.right()) { From 5484609cd3e54eebcd4bcb723ab4b6860229bce3 Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Wed, 3 Aug 2011 16:44:37 +0200 Subject: [PATCH 22/44] consolidate creation code; use the layout; don't hide dialog if already hidden fixes a few annoyances in the system tray --- popupapplet.cpp | 71 +++++++++++++++++++---------------------- private/popupapplet_p.h | 1 + 2 files changed, 34 insertions(+), 38 deletions(-) diff --git a/popupapplet.cpp b/popupapplet.cpp index 759ea7fc9..c1ed41fdb 100644 --- a/popupapplet.cpp +++ b/popupapplet.cpp @@ -86,58 +86,35 @@ void PopupApplet::setPopupIcon(const QIcon &icon) return; } - if (!d->icon) { - d->icon = new Plasma::IconWidget(icon, QString(), this); - connect(d->icon, SIGNAL(clicked()), this, SLOT(internalTogglePopup())); - - QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(); - layout->setContentsMargins(0, 0, 0, 0); - layout->setSpacing(0); - layout->setOrientation(Qt::Horizontal); - - setLayout(layout); - } else { - d->icon->setIcon(icon); - } + d->createIconWidget(); + d->icon->setIcon(icon); } void PopupApplet::setPopupIcon(const QString &iconName) { + // Attempt 1: is it in the plasmoid package? if (package()) { - //Attempt1: is it in the plasmoid package? const QString file = package()->filePath("images", iconName); if (!file.isEmpty()) { setPopupIcon(KIcon(file)); return; } - //Attempt2: is it a svg in the icons directory? } + + // Attempt 2: is it a svg in the icons directory? QString name = QString("icons/") + iconName.split("-").first(); if (!Plasma::Theme::defaultTheme()->imagePath(name).isEmpty()) { - if (!d->icon) { - d->icon = new Plasma::IconWidget(this); - d->icon->setSvg(name, iconName); - if (d->icon->svg().isEmpty()) { - setPopupIcon(KIcon(iconName)); - } - connect(d->icon, SIGNAL(clicked()), this, SLOT(internalTogglePopup())); - - QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(); - layout->setContentsMargins(0, 0, 0, 0); - layout->setSpacing(0); - layout->setOrientation(Qt::Horizontal); - - setLayout(layout); - } else { - d->icon->setSvg(name, iconName); - if (d->icon->svg().isEmpty()) { - setPopupIcon(KIcon(iconName)); - } + d->createIconWidget(); + d->icon->setSvg(name, iconName); + if (d->icon->svg().isEmpty()) { + setPopupIcon(KIcon(iconName)); } - // Final Attempt: use KIcon - } else { - setPopupIcon(KIcon(iconName)); + + return; } + + // Final Attempt: use KIcon + setPopupIcon(KIcon(iconName)); } QIcon PopupApplet::popupIcon() const @@ -625,7 +602,7 @@ void PopupApplet::hidePopup() d->delayedShowTimer.stop(); Dialog *dialog = d->dialogPtr.data(); - if (dialog) { + if (dialog && dialog->isVisible()) { if (location() != Floating) { dialog->animatedHide(locationToInverseDirection(location())); } else { @@ -832,6 +809,24 @@ void PopupAppletPrivate::statusChangeWhileShown(Plasma::ItemStatus status) preShowStatus = status; } +void PopupAppletPrivate::createIconWidget() +{ + if (icon) { + return; + } + + icon = new Plasma::IconWidget(q); + QObject::connect(icon, SIGNAL(clicked()), q, SLOT(internalTogglePopup())); + + QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + layout->setOrientation(Qt::Horizontal); + layout->addItem(icon); + layout->setAlignment(icon, Qt::AlignCenter); + q->setLayout(layout); +} + void PopupAppletPrivate::restoreDialogSize() { Plasma::Dialog *dialog = dialogPtr.data(); diff --git a/private/popupapplet_p.h b/private/popupapplet_p.h index 63253d61d..2a3aa4402 100644 --- a/private/popupapplet_p.h +++ b/private/popupapplet_p.h @@ -47,6 +47,7 @@ public: KConfigGroup popupConfigGroup(); void appletActivated(); void statusChangeWhileShown(Plasma::ItemStatus status); + void createIconWidget(); PopupApplet *q; From 8002f8754fe94157823cf14bfc5c29771ce4e8b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Alvarez?= Date: Fri, 24 Jun 2011 23:49:45 -0300 Subject: [PATCH 23/44] Fix typo in plasma apidox. --- datacontainer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datacontainer.h b/datacontainer.h index 4bf4f667e..746be5e40 100644 --- a/datacontainer.h +++ b/datacontainer.h @@ -57,7 +57,7 @@ class DataContainerPrivate; * See DataEngine::addSource() for more information. * * Note that there is normally no need to subclass DataContainer, except as - * a way of encapsulating the data retreival for a source, since all notifications + * a way of encapsulating the data retrieval for a source, since all notifications * are done via signals rather than virtual methods. **/ class PLASMA_EXPORT DataContainer : public QObject From c21910e83366b44f74d5135a54438d47cecb8b9f Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Tue, 5 Jul 2011 18:08:33 +0200 Subject: [PATCH 24/44] check the properties are really changed --- widgets/videowidget.cpp | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/widgets/videowidget.cpp b/widgets/videowidget.cpp index 2ad5c75d4..dee26e921 100644 --- a/widgets/videowidget.cpp +++ b/widgets/videowidget.cpp @@ -282,7 +282,18 @@ Phonon::AudioOutput *VideoWidget::audioOutput() const void VideoWidget::setUrl(const QString &url) { - d->media->setCurrentSource(Phonon::MediaSource(url)); + QString fileUrl; + if (url.startsWith('/')) { + fileUrl = "file://" % url; + } else { + fileUrl = url; + } + + if (fileUrl == d->media->currentSource().url().toString()) { + return; + } + + d->media->setCurrentSource(Phonon::MediaSource(fileUrl)); } QString VideoWidget::url() const @@ -292,6 +303,10 @@ QString VideoWidget::url() const void VideoWidget::setUsedControls(const Controls controls) { + if (controls == d->shownControls) { + return; + } + d->shownControls = controls; //kDebug()<<"Setting used controls"<media->state() == Phonon::PlayingState) { + return; + } + d->media->play(); } void VideoWidget::pause() { + if (d->media->state() == Phonon::PausedState) { + return; + } + d->media->pause(); } void VideoWidget::stop() { + if (d->media->state() == Phonon::StoppedState) { + return; + } + d->media->stop(); } void VideoWidget::seek(qint64 time) { + if (d->media->currentTime() == time) { + return; + } + d->media->seek(time); } From 15fbd34fae71b99b63c4684626d2a85ac9d5b16f Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Thu, 7 Jul 2011 15:32:04 +0200 Subject: [PATCH 25/44] bind tickInterval property --- widgets/videowidget.cpp | 10 ++++++++++ widgets/videowidget.h | 14 ++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/widgets/videowidget.cpp b/widgets/videowidget.cpp index dee26e921..d79a9fd95 100644 --- a/widgets/videowidget.cpp +++ b/widgets/videowidget.cpp @@ -542,6 +542,16 @@ bool VideoWidget::controlsVisible() const return d->controlsWidget != 0 && d->controlsWidget->isVisible(); } +void VideoWidget::setTickInterval(qint64 interval) +{ + d->media->setTickInterval(interval); +} + +qint64 VideoWidget::tickInterval() const +{ + return d->media->tickInterval(); +} + void VideoWidget::setStyleSheet(const QString &stylesheet) { d->videoWidget->setStyleSheet(stylesheet); diff --git a/widgets/videowidget.h b/widgets/videowidget.h index bbf3ce9ac..689e0c625 100644 --- a/widgets/videowidget.h +++ b/widgets/videowidget.h @@ -55,6 +55,7 @@ class PLASMA_EXPORT VideoWidget : public QGraphicsProxyWidget Q_PROPERTY(qint64 remainingTime READ remainingTime) Q_PROPERTY(Controls usedControls READ usedControls WRITE setUsedControls) Q_PROPERTY(bool controlsVisible READ controlsVisible WRITE setControlsVisible) + Q_PROPERTY(qint32 tickInterval READ tickInterval WRITE setTickInterval) Q_PROPERTY(QString styleSheet READ styleSheet WRITE setStyleSheet) Q_ENUMS(Control) @@ -142,6 +143,19 @@ public: */ bool controlsVisible() const; + /** + * @param interval milliseconds the tick signal will be emitted + * @since 4.8 + */ + void setTickInterval(qint64 interval); + + /** + * @return milliseconds the tick signal will be emitted + * @see tickInterval() + * @since 4.8 + */ + qint64 tickInterval() const; + /** * Sets the stylesheet used to control the visual display of this VideoWidget * From c21fc579689329be2bff8c8174f69a0a59f757de Mon Sep 17 00:00:00 2001 From: David Faure Date: Sun, 7 Aug 2011 00:44:08 +0200 Subject: [PATCH 26/44] Fix @since tag to reflect backport --- widgets/videowidget.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/widgets/videowidget.h b/widgets/videowidget.h index 689e0c625..82cb63de3 100644 --- a/widgets/videowidget.h +++ b/widgets/videowidget.h @@ -145,14 +145,14 @@ public: /** * @param interval milliseconds the tick signal will be emitted - * @since 4.8 + * @since 4.7.1 */ void setTickInterval(qint64 interval); /** * @return milliseconds the tick signal will be emitted * @see tickInterval() - * @since 4.8 + * @since 4.7.1 */ qint64 tickInterval() const; From 10dcf8ffc00ec7616ea44831b60d1893a9bca721 Mon Sep 17 00:00:00 2001 From: Dawit Alemayehu Date: Wed, 6 Jul 2011 19:16:36 -0400 Subject: [PATCH 27/44] Fixed -Wunused-parameter compiler warning. REVIEW: 101881 --- abstracttoolbox.cpp | 2 +- private/qtjolie-branch/qtjolie/abstractadaptor.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/abstracttoolbox.cpp b/abstracttoolbox.cpp index 14205a352..b3df4ee2e 100644 --- a/abstracttoolbox.cpp +++ b/abstracttoolbox.cpp @@ -42,7 +42,7 @@ AbstractToolBox::AbstractToolBox(Containment *parent) { } -AbstractToolBox::AbstractToolBox(QObject *parent, const QVariantList &args) +AbstractToolBox::AbstractToolBox(QObject *parent, const QVariantList & /*args*/) : QGraphicsWidget(dynamic_cast(parent)), d(new AbstractToolBoxPrivate(qobject_cast(parent))) { diff --git a/private/qtjolie-branch/qtjolie/abstractadaptor.cpp b/private/qtjolie-branch/qtjolie/abstractadaptor.cpp index ffa80be7c..5352ba0fe 100644 --- a/private/qtjolie-branch/qtjolie/abstractadaptor.cpp +++ b/private/qtjolie-branch/qtjolie/abstractadaptor.cpp @@ -31,7 +31,7 @@ namespace Jolie using namespace Jolie; AbstractAdaptor::AbstractAdaptor(QObject *parent) - : d(new AbstractAdaptorPrivate) + : QObject(parent), d(new AbstractAdaptorPrivate) { } From fb128ee26b34c518add663e309729ecc40b4bf38 Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Mon, 11 Jul 2011 20:55:19 +0200 Subject: [PATCH 28/44] shush the compiler --- tooltipcontent.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tooltipcontent.cpp b/tooltipcontent.cpp index 6a928a08c..9927f0258 100644 --- a/tooltipcontent.cpp +++ b/tooltipcontent.cpp @@ -227,11 +227,10 @@ void ToolTipContent::registerResources(QTextDocument *document) const while (it.hasNext()) { it.next(); const ToolTipResource &r = it.value(); - QTextDocument::ResourceType t; + QTextDocument::ResourceType t = QTextDocument::ImageResource; switch (r.type) { case ImageResource: - t = QTextDocument::ImageResource; break; case HtmlResource: t = QTextDocument::HtmlResource; From 0a64cca51f86ba2ebb61361649af3c3adcbc603f Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Mon, 11 Jul 2011 20:56:10 +0200 Subject: [PATCH 29/44] mark the methods deprecated as they should be --- tooltipcontent.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tooltipcontent.h b/tooltipcontent.h index 6ae29bdd3..ab50ae4a1 100644 --- a/tooltipcontent.h +++ b/tooltipcontent.h @@ -122,14 +122,14 @@ public: * @deprecated * @see setWindowsToPreview */ - void setWindowToPreview(WId id); + KDE_DEPRECATED void setWindowToPreview(WId id); /** * Id of a window if you want to show a preview * @deprecated * @see windowsToPreview */ - WId windowToPreview() const; + KDE_DEPRECATED WId windowToPreview() const; /** * Sets the IDS of the windows to show a preview for From 45e428dec5615e5335f9d77e6002e765d72302bb Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Mon, 11 Jul 2011 21:01:31 +0200 Subject: [PATCH 30/44] --deprecatedUsage; --- private/tooltip.cpp | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/private/tooltip.cpp b/private/tooltip.cpp index c70bdb2e6..52047d890 100644 --- a/private/tooltip.cpp +++ b/private/tooltip.cpp @@ -302,18 +302,11 @@ void ToolTip::setContent(QObject *tipper, const ToolTipContent &data) d->text->setContent(data); d->imageLabel->setPixmap(data.image()); - if (data.highlightWindows() && (data.windowsToPreview().size() > 1 || data.windowToPreview() != 0)) { + if (data.highlightWindows() && !data.windowsToPreview().isEmpty()) { WindowEffects::highlightWindows(winId(), QList() << winId() << data.windowsToPreview()); } - if (data.windowsToPreview().size() > 1) { - d->preview->setWindowIds(data.windowsToPreview()); - } else { - QListids; - ids.append(data.windowToPreview()); - d->preview->setWindowIds(ids); - } - + d->preview->setWindowIds(data.windowsToPreview()); d->preview->setHighlightWindows(data.highlightWindows()); d->autohide = data.autohide(); From ef6b65c2b14978f131ee12d85e04310e6c9858c4 Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Mon, 11 Jul 2011 21:30:00 +0200 Subject: [PATCH 31/44] simplify --- private/tooltip.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/private/tooltip.cpp b/private/tooltip.cpp index 52047d890..20c4ee03d 100644 --- a/private/tooltip.cpp +++ b/private/tooltip.cpp @@ -321,12 +321,8 @@ void ToolTip::setContent(QObject *tipper, const ToolTipContent &data) void ToolTip::prepareShowing() { - if (!d->preview->isEmpty()) { - // show/hide the preview area - d->preview->show(); - } else { - d->preview->hide(); - } + // show/hide the preview area + d->preview->setVisible(!d->preview->isEmpty()); layout()->activate(); d->preview->setInfo(); From 9e314fde8dbe841d9bd87661ce8d8de66335205f Mon Sep 17 00:00:00 2001 From: Montel Laurent Date: Wed, 13 Jul 2011 21:46:19 +0200 Subject: [PATCH 32/44] Pedantic --- private/wallpaperrenderthread_p.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/private/wallpaperrenderthread_p.h b/private/wallpaperrenderthread_p.h index 81d4ba2a8..7a31d591d 100644 --- a/private/wallpaperrenderthread_p.h +++ b/private/wallpaperrenderthread_p.h @@ -78,5 +78,5 @@ private: } // namespace Plasma -Q_DECLARE_METATYPE(Plasma::WallpaperRenderRequest); +Q_DECLARE_METATYPE(Plasma::WallpaperRenderRequest) #endif // PLASMA_WALLPAPERRENDERTHREAD_P_H From 575057e878ccef14b7205693c451b34e368bc7e4 Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Wed, 3 Aug 2011 16:42:51 +0200 Subject: [PATCH 33/44] don't bother hiding if we're not visible --- dialog.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dialog.cpp b/dialog.cpp index e09d0f1ea..4f8e6226a 100644 --- a/dialog.cpp +++ b/dialog.cpp @@ -753,6 +753,10 @@ Dialog::ResizeCorners Dialog::resizeCorners() const void Dialog::animatedHide(Plasma::Direction direction) { + if (!isVisible()) { + return; + } + if (!KWindowSystem::compositingActive()) { hide(); return; From f0d247f9c6a47602eb707016cb1a09775e6a8951 Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Tue, 2 Aug 2011 01:45:54 +0200 Subject: [PATCH 34/44] remove an unused variable --- theme.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/theme.cpp b/theme.cpp index 2c427990f..cdb7fc625 100644 --- a/theme.cpp +++ b/theme.cpp @@ -186,7 +186,6 @@ public: #ifdef Q_WS_X11 EffectWatcher *effectWatcher; - KSelectionWatcher *compositeWatch; #endif bool locolor : 1; bool compositingActive : 1; From 858abd824307d0798d8480dda48fcd4f45252edd Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Mon, 8 Aug 2011 14:42:38 +0200 Subject: [PATCH 35/44] allow popups to be freely resized when they aren't the applet --- popupapplet.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/popupapplet.cpp b/popupapplet.cpp index c1ed41fdb..d6e3106f3 100644 --- a/popupapplet.cpp +++ b/popupapplet.cpp @@ -372,7 +372,9 @@ void PopupAppletPrivate::popupConstraintsEvent(Plasma::Constraints constraints) dialog->d->appletPtr = q; dialogPtr = dialog; - dialog->setAspectRatioMode(savedAspectRatio); + if (icon) { + dialog->setAspectRatioMode(savedAspectRatio); + } //no longer use Qt::Popup since that seems to cause a lot of problem when you drag //stuff out of your Dialog (extenders). Monitor WindowDeactivate events so we can @@ -736,7 +738,9 @@ void PopupAppletPrivate::internalTogglePopup() KWindowSystem::setOnAllDesktops(dialog->winId(), true); KWindowSystem::setState(dialog->winId(), NET::SkipTaskbar | NET::SkipPager); - dialog->setAspectRatioMode(savedAspectRatio); + if (icon) { + dialog->setAspectRatioMode(savedAspectRatio); + } if (q->location() != Floating) { dialog->animatedShow(locationToDirection(q->location())); From f285745318f82bc3eb19201f328a5ab5a36d35a5 Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Sat, 30 Jul 2011 18:20:20 +0200 Subject: [PATCH 36/44] make extender applets freel resize --- private/extenderapplet.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/private/extenderapplet.cpp b/private/extenderapplet.cpp index ea3c25974..bd33615af 100644 --- a/private/extenderapplet.cpp +++ b/private/extenderapplet.cpp @@ -47,6 +47,7 @@ ExtenderApplet::~ExtenderApplet() void ExtenderApplet::init() { setPopupIcon("utilities-desktop-extra"); + setAspectRatioMode(Plasma::IgnoreAspectRatio); extender()->setAppearance(Extender::NoBorders); From b4c5e52c0f3ba1ca001a0548b89e69f4daa4b092 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Fri, 12 Aug 2011 16:03:40 +0200 Subject: [PATCH 37/44] ensure the frame is resized --- widgets/pushbutton.cpp | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/widgets/pushbutton.cpp b/widgets/pushbutton.cpp index d73ef141e..e67937b5f 100644 --- a/widgets/pushbutton.cpp +++ b/widgets/pushbutton.cpp @@ -111,6 +111,25 @@ public: } } + void syncFrame() + { + if (background) { + //resize all panels + background->setElementPrefix("pressed"); + background->resizeFrame(q->size()); + + syncActiveRect(); + + background->setElementPrefix("normal"); + background->resizeFrame(q->size()); + hoverAnimation->setProperty("startPixmap", background->framePixmap()); + + background->setElementPrefix("active"); + background->resizeFrame(activeRect.size()); + hoverAnimation->setProperty("targetPixmap", background->framePixmap()); + } + } + void syncActiveRect(); void syncBorders(); @@ -193,6 +212,7 @@ PushButton::PushButton(QGraphicsWidget *parent) connect(d->background, SIGNAL(repaintNeeded()), SLOT(syncBorders())); d->initTheming(); + d->syncFrame(); } PushButton::~PushButton() @@ -325,23 +345,9 @@ void PushButton::resizeEvent(QGraphicsSceneResizeEvent *event) { d->setPixmap(); - if (d->background) { - //resize all panels - d->background->setElementPrefix("pressed"); - d->background->resizeFrame(size()); + d->syncFrame(); - d->syncActiveRect(); - - d->background->setElementPrefix("normal"); - d->background->resizeFrame(size()); - d->hoverAnimation->setProperty("startPixmap", d->background->framePixmap()); - - d->background->setElementPrefix("active"); - d->background->resizeFrame(d->activeRect.size()); - d->hoverAnimation->setProperty("targetPixmap", d->background->framePixmap()); - } - - QGraphicsProxyWidget::resizeEvent(event); + QGraphicsProxyWidget::resizeEvent(event); } void PushButton::paint(QPainter *painter, From 78cfff2f3c1c8fc6d14867e9351033aa4a82808d Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Tue, 16 Aug 2011 14:56:18 +0200 Subject: [PATCH 38/44] if there are no widgets, don't create a dialog --- popupapplet.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/popupapplet.cpp b/popupapplet.cpp index d6e3106f3..59d12c457 100644 --- a/popupapplet.cpp +++ b/popupapplet.cpp @@ -348,6 +348,10 @@ void PopupAppletPrivate::popupConstraintsEvent(Plasma::Constraints constraints) } //kDebug() << "about to switch to a popup"; + if (!qWidget && !gWidget) { + delete dialogPtr.data(); + return; + } //there was already a dialog? don't make the switch again if (dialogPtr) { From ee5755090974708f9aebf765cb44fb3646dff5ba Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Tue, 16 Aug 2011 14:56:30 +0200 Subject: [PATCH 39/44] really don't show when there is no content --- popupapplet.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/popupapplet.cpp b/popupapplet.cpp index 59d12c457..c532d345e 100644 --- a/popupapplet.cpp +++ b/popupapplet.cpp @@ -729,9 +729,9 @@ void PopupAppletPrivate::internalTogglePopup() dialog->clearFocus(); } else { - if (q->graphicsWidget() && - q->graphicsWidget() == static_cast(q)->d->extender.data() && - static_cast(q)->d->extender.data()->isEmpty()) { + if (!q->graphicsWidget() || + (q->graphicsWidget() == static_cast(q)->d->extender.data() && + static_cast(q)->d->extender.data()->isEmpty())) { // we have nothing to show, so let's not. return; } From 6df8dc58dccdd69511fba4bef36fd7834d507738 Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Tue, 16 Aug 2011 16:22:16 +0200 Subject: [PATCH 40/44] small change that makes a huge visible difference also removes the unneeded ternary op given the above if() --- dialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dialog.cpp b/dialog.cpp index 4f8e6226a..aa48a6778 100644 --- a/dialog.cpp +++ b/dialog.cpp @@ -88,7 +88,7 @@ void DialogPrivate::scheduleBorderCheck(bool triggeredByResize) QObject::connect(moveTimer, SIGNAL(timeout()), q, SLOT(checkBorders())); } - moveTimer->start(triggeredByResize ? 0 : 200); + moveTimer->start(0); } void DialogPrivate::themeChanged() From db97a9b6cbc1212acd15195bb4ec0834f9e6519c Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Wed, 17 Aug 2011 18:07:12 +0200 Subject: [PATCH 41/44] add missing smallest font support for qml and js widgets --- theme.cpp | 12 ++++++++---- theme.h | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/theme.cpp b/theme.cpp index cdb7fc625..3849df2a6 100644 --- a/theme.cpp +++ b/theme.cpp @@ -859,16 +859,20 @@ void Theme::setFont(const QFont &font, FontRole role) QFont Theme::font(FontRole role) const { switch (role) { - case DesktopFont: - { + case DesktopFont: { KConfigGroup cg(KGlobal::config(), "General"); return cg.readEntry("desktopFont", d->generalFont); - } - break; + } + break; + case DefaultFont: default: return d->generalFont; break; + + case SmallestFont: + return KGlobalSettings::smallestReadableFont(); + break; } return d->generalFont; diff --git a/theme.h b/theme.h index b5118276b..7536f3dcf 100644 --- a/theme.h +++ b/theme.h @@ -78,7 +78,8 @@ class PLASMA_EXPORT Theme : public QObject enum FontRole { DefaultFont = 0, /**< The standard text font */ - DesktopFont /**< The standard text font */ + DesktopFont, /**< The standard text font */ + SmallestFont /**< The smallest readable font */ }; /** From c12af537e45e5d7ff74d464106d86e0ad450aa8f Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Wed, 17 Aug 2011 18:33:31 +0200 Subject: [PATCH 42/44] support minimumSize if the root object has a minimumSize set, set it as minimum size for the declarative widget, and keep it in sync --- widgets/declarativewidget.cpp | 27 ++++++++++++++++++++------- widgets/declarativewidget.h | 2 ++ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/widgets/declarativewidget.cpp b/widgets/declarativewidget.cpp index fd4b4e0f7..9ad2a436c 100644 --- a/widgets/declarativewidget.cpp +++ b/widgets/declarativewidget.cpp @@ -60,6 +60,8 @@ public: void execute(const QString &fileName); void finishExecute(); void scheduleExecutionEnd(); + void minimumWidthChanged(); + void minimumHeightChanged(); DeclarativeWidget *q; @@ -152,18 +154,19 @@ void DeclarativeWidgetPrivate::finishExecute() lay->addItem(widget); } else { q->setLayout(0); - qreal width = 0; - qreal height = 0; + qreal minimumWidth = 0; + qreal minimumHeight = 0; if (object) { - width = object->property("width").toReal(); - height = object->property("height").toReal(); + minimumWidth = object->property("minimumWidth").toReal(); + minimumHeight = object->property("minimumHeight").toReal(); object->setProperty("width", q->size().width()); object->setProperty("height", q->size().height()); + QObject::connect(object, SIGNAL(minimumWidthChanged()), q, SLOT(minimumWidthChanged())); + QObject::connect(object, SIGNAL(minimumHeightChanged()), q, SLOT(minimumHeightChanged())); } - //FIXME: find a better way to have a minimum size - if (width > 0 && height > 0) { - q->setMinimumSize(width, height); + if (minimumWidth > 0 && minimumHeight > 0) { + q->setMinimumSize(minimumWidth, minimumHeight); } else { q->setMinimumSize(-1, -1); } @@ -171,7 +174,17 @@ void DeclarativeWidgetPrivate::finishExecute() emit q->finished(); } +void DeclarativeWidgetPrivate::minimumWidthChanged() +{ + qreal minimumWidth = root->property("minimumWidth").toReal(); + q->setMinimumWidth(minimumWidth); +} +void DeclarativeWidgetPrivate::minimumHeightChanged() +{ + qreal minimumHeight = root->property("minimumHeight").toReal(); + q->setMinimumHeight(minimumHeight); +} DeclarativeWidget::DeclarativeWidget(QGraphicsWidget *parent) : QGraphicsWidget(parent), diff --git a/widgets/declarativewidget.h b/widgets/declarativewidget.h index 1f59b1a02..28270cb6e 100644 --- a/widgets/declarativewidget.h +++ b/widgets/declarativewidget.h @@ -129,6 +129,8 @@ private: Q_PRIVATE_SLOT(d, void finishExecute()) Q_PRIVATE_SLOT(d, void scheduleExecutionEnd()) + Q_PRIVATE_SLOT(d, void minimumWidthChanged()) + Q_PRIVATE_SLOT(d, void minimumHeightChanged()) }; } // namespace Plasma From cd912280a05f753d6eb9f109007b89396177322d Mon Sep 17 00:00:00 2001 From: Script Kiddy Date: Thu, 25 Aug 2011 14:16:14 +0200 Subject: [PATCH 43/44] SVN_SILENT made messages (.desktop file) --- data/services/plasma.protocol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/services/plasma.protocol b/data/services/plasma.protocol index 4fb27ca73..c52eb8ffb 100644 --- a/data/services/plasma.protocol +++ b/data/services/plasma.protocol @@ -17,7 +17,7 @@ Description[el]=Ένα πρωτόκολλο υπηρεσιών Plasma Description[es]=Un protocolo para los servicios de Plasma Description[et]=Plasma teenuste protokoll Description[eu]=Plasma zerbitzuentzako protokolo bat -Description[fi]=Plasma-palvelujen protokolla +Description[fi]=Plasma-palvelujen yhteyskäytäntö Description[fr]=Un protocole pour les services Plasma Description[hr]=Protokol za servise u Plasmi Description[hu]=Protokoll a Plazma-szolgáltatáshoz From 79ad385f415504c13196c32fbad275c02a53ada2 Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Thu, 25 Aug 2011 07:03:17 +0200 Subject: [PATCH 44/44] give applets with no qwidget or graphicswidget a chance to do something --- popupapplet.cpp | 20 +++++++++++++++----- private/popupapplet_p.h | 2 +- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/popupapplet.cpp b/popupapplet.cpp index c532d345e..116d0a12a 100644 --- a/popupapplet.cpp +++ b/popupapplet.cpp @@ -429,7 +429,7 @@ void PopupAppletPrivate::popupConstraintsEvent(Plasma::Constraints constraints) void PopupAppletPrivate::appletActivated() { - internalTogglePopup(); + internalTogglePopup(true); } QSizeF PopupApplet::sizeHint(Qt::SizeHint which, const QSizeF & constraint) const @@ -702,7 +702,7 @@ void PopupAppletPrivate::iconSizeChanged(int group) } } -void PopupAppletPrivate::internalTogglePopup() +void PopupAppletPrivate::internalTogglePopup(bool fromActivatedSignal) { if (autohideTimer) { autohideTimer->stop(); @@ -713,6 +713,11 @@ void PopupAppletPrivate::internalTogglePopup() Plasma::Dialog *dialog = dialogPtr.data(); if (!dialog) { q->setFocus(Qt::ShortcutFocusReason); + if (!fromActivatedSignal) { + QObject::disconnect(q, SIGNAL(activate()), q, SLOT(appletActivated())); + emit q->activate(); + QObject::connect(q, SIGNAL(activate()), q, SLOT(appletActivated())); + } return; } @@ -729,10 +734,15 @@ void PopupAppletPrivate::internalTogglePopup() dialog->clearFocus(); } else { - if (!q->graphicsWidget() || - (q->graphicsWidget() == static_cast(q)->d->extender.data() && - static_cast(q)->d->extender.data()->isEmpty())) { + if (q->graphicsWidget() && + q->graphicsWidget() == static_cast(q)->d->extender.data() && + static_cast(q)->d->extender.data()->isEmpty()) { // we have nothing to show, so let's not. + if (!fromActivatedSignal) { + QObject::disconnect(q, SIGNAL(activate()), q, SLOT(appletActivated())); + emit q->activate(); + QObject::connect(q, SIGNAL(activate()), q, SLOT(appletActivated())); + } return; } diff --git a/private/popupapplet_p.h b/private/popupapplet_p.h index 2a3aa4402..eab42c32d 100644 --- a/private/popupapplet_p.h +++ b/private/popupapplet_p.h @@ -35,7 +35,7 @@ public: ~PopupAppletPrivate(); void iconSizeChanged(int group); - void internalTogglePopup(); + void internalTogglePopup(bool fromActivatedSignal = false); void hideTimedPopup(); void clearPopupLostFocus(); void dialogSizeChanged();