[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/plasma/applets/tasks
From: Peter Pan <wppan () redflag-linux ! com>
Date: 2009-07-27 10:12:59
Message-ID: 1248689579.292632.21991.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1002921 by peterpan:
reject showing tooltips when the popup dialog is showing.
BUG:199107
M +9 -0 taskgroupitem.cpp
M +15 -1 tasks.cpp
M +3 -3 tasks.h
M +32 -12 windowtaskitem.cpp
--- trunk/KDE/kdebase/workspace/plasma/applets/tasks/taskgroupitem.cpp \
#1002920:1002921 @@ -192,6 +192,7 @@
//close the popup if the group is removed
if (m_popupDialog) {
m_popupDialog->hide();
+ disconnect(m_popupDialog, 0, 0, 0);
m_popupDialog->deleteLater();
m_popupDialog = 0;
}
@@ -267,6 +268,13 @@
return;
}
+ QWidget * dialog = m_applet->popupDialog();
+
+ if (dialog && dialog->isVisible()) {
+ Plasma::ToolTipManager::self()->clearContent(this);
+ return;
+ }
+
Plasma::ToolTipContent data(m_group->name(),
i18nc("Which virtual desktop a window is currently \
on", "On %1",
\
KWindowSystem::desktopName(m_group->desktop()))); @@ -630,6 +638,7 @@
if (!m_popupDialog) {
// Initialize popup dialog
m_popupDialog = new Plasma::Dialog();
+ connect(m_popupDialog, SIGNAL(dialogVisible(bool)), m_applet, \
SLOT(setPopupDialog(bool)));
KWindowSystem::setState(m_popupDialog->winId(), NET::SkipTaskbar| \
NET::SkipPager);
m_popupDialog->setWindowFlags(Qt::FramelessWindowHint | \
Qt::WindowStaysOnTopHint);
//TODO in the future it may be possible to use the Qt::Popup flag instead of \
the eventFilter, but for now the focus works better with the \
eventFilter
--- trunk/KDE/kdebase/workspace/plasma/applets/tasks/tasks.cpp #1002920:1002921
@@ -52,7 +52,8 @@
m_bottomMargin(0),
m_rootGroupItem(0),
m_groupManager(0),
- m_groupModifierKey(Qt::AltModifier)
+ m_groupModifierKey(Qt::AltModifier),
+ m_popupDialog(0)
{
setHasConfigurationInterface(true);
setAspectRatioMode(Plasma::IgnoreAspectRatio);
@@ -391,7 +392,20 @@
return m_rootGroupItem;
}
+QWidget *Tasks::popupDialog() const
+{
+ return m_popupDialog;
+}
+void Tasks::setPopupDialog(bool status)
+{
+ QWidget *widget = qobject_cast<QWidget *>(sender());
+
+ if (widget->isVisible()) {
+ m_popupDialog = widget;
+ }
+}
+
K_EXPORT_PLASMA_APPLET(tasks, Tasks)
#include "tasks.moc"
--- trunk/KDE/kdebase/workspace/plasma/applets/tasks/tasks.h #1002920:1002921
@@ -105,8 +105,7 @@
bool showToolTip() const;
void needsVisualFocus();
-
-
+ QWidget *popupDialog() const;
signals:
/**
* emitted whenever we receive a constraintsEvent
@@ -116,6 +115,7 @@
protected slots:
void configAccepted();
+ void setPopupDialog(bool status);
protected:
void createConfigurationInterface(KConfigDialog *parent);
@@ -156,7 +156,7 @@
Qt::KeyboardModifier m_groupModifierKey;
int m_currentDesktop;
-
+ QWidget *m_popupDialog;
};
#endif
--- trunk/KDE/kdebase/workspace/plasma/applets/tasks/windowtaskitem.cpp \
#1002920:1002921 @@ -185,21 +185,41 @@
{
if (!m_task) {
return;
- }
+ }
+
+ bool showToolTip = true;
+ TaskGroupItem *group = parentGroup();
- QPixmap p = m_task->task()->icon(KIconLoader::SizeLarge, KIconLoader::SizeLarge, \
false);
- if (p.height() > KIconLoader::SizeLarge) {
- p = p.scaled(QSize(KIconLoader::SizeLarge, KIconLoader::SizeLarge),
- Qt::KeepAspectRatio, Qt::SmoothTransformation);
- }
+ if (group) {
+ QWidget *groupPopupDialog = parentGroup()->popupDialog();
+ QWidget *dialog = m_applet->popupDialog();
- Plasma::ToolTipContent data(m_task->name(),
- i18nc("Which virtual desktop a window is currently \
on", "On %1",
- \
KWindowSystem::desktopName(m_task->desktop())), p);
- data.setWindowToPreview(m_task->task()->window());
- data.setClickable(true);
+ if (dialog && dialog->isVisible()) {
+ if (groupPopupDialog && groupPopupDialog == dialog) {
+ showToolTip = true;
+ } else {
+ showToolTip = false;
+ }
+ }
+ }
+
+ if (showToolTip) {
+ QPixmap p = m_task->task()->icon(KIconLoader::SizeLarge, \
KIconLoader::SizeLarge, false); + if (p.height() > KIconLoader::SizeLarge) {
+ p = p.scaled(QSize(KIconLoader::SizeLarge, KIconLoader::SizeLarge),
+ Qt::KeepAspectRatio, Qt::SmoothTransformation);
+ }
- Plasma::ToolTipManager::self()->setContent(this, data);
+ Plasma::ToolTipContent data(m_task->name(),
+ i18nc("Which virtual desktop a window is \
currently on", "On %1", + \
KWindowSystem::desktopName(m_task->desktop())), p); + \
data.setWindowToPreview(m_task->task()->window()); + data.setClickable(true);
+
+ Plasma::ToolTipManager::self()->setContent(this, data);
+ } else {
+ Plasma::ToolTipManager::self()->clearContent(this);
+ }
}
void WindowTaskItem::setStartupTask(TaskItem *task)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic