[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kwin
Subject:    [PATCH] Add an Ignore minimized windows option to TabBox
From:       Stefano Avallone <stavallo () unina ! it>
Date:       2011-12-20 19:01:26
Message-ID: 1324411145-2973-1-git-send-email-stavallo () unina ! it
[Download RAW message or body]

---
 kwin/kcmkwin/kwintabbox/main.cpp |    9 +++++++++
 kwin/kcmkwin/kwintabbox/main.ui  |    7 +++++++
 kwin/tabbox/tabbox.cpp           |    3 +++
 kwin/tabbox/tabboxconfig.cpp     |   13 +++++++++++++
 kwin/tabbox/tabboxconfig.h       |   16 ++++++++++++++++
 5 files changed, 48 insertions(+), 0 deletions(-)

diff --git a/kwin/kcmkwin/kwintabbox/main.cpp b/kwin/kcmkwin/kwintabbox/main.cpp
index 53b3144..69a409b 100644
--- a/kwin/kcmkwin/kwintabbox/main.cpp
+++ b/kwin/kcmkwin/kwintabbox/main.cpp
@@ -138,6 +138,7 @@ KWinTabBoxConfig::KWinTabBoxConfig(QWidget* parent, const \
                QVariantList& args)
     connect(m_primaryTabBoxUi->effectCombo, SIGNAL(currentIndexChanged(int)), this, \
SLOT(changed()));  // check boxes
     connect(m_primaryTabBoxUi->showOutlineCheck, SIGNAL(stateChanged(int)), this, \
SLOT(changed())); +    connect(m_primaryTabBoxUi->ignoreMinimizedCheck, \
                SIGNAL(stateChanged(int)), this, SLOT(changed()));
     connect(m_primaryTabBoxUi->showTabBox, SIGNAL(toggled(bool)), this, \
                SLOT(changed()));
     connect(m_primaryTabBoxUi->highlightWindowCheck, SIGNAL(stateChanged(int)), \
                this, SLOT(changed()));
     connect(m_primaryTabBoxUi->showDesktopBox, SIGNAL(stateChanged(int)), this, \
SLOT(changed())); @@ -147,6 +148,7 @@ KWinTabBoxConfig::KWinTabBoxConfig(QWidget* \
                parent, const QVariantList& args)
     connect(m_alternativeTabBoxUi->effectCombo, SIGNAL(currentIndexChanged(int)), \
this, SLOT(changed()));  // check boxes alternative
     connect(m_alternativeTabBoxUi->showOutlineCheck, SIGNAL(stateChanged(int)), \
this, SLOT(changed())); +    connect(m_alternativeTabBoxUi->ignoreMinimizedCheck, \
                SIGNAL(stateChanged(int)), this, SLOT(changed()));
     connect(m_alternativeTabBoxUi->showTabBox, SIGNAL(toggled(bool)), this, \
                SLOT(changed()));
     connect(m_alternativeTabBoxUi->highlightWindowCheck, SIGNAL(stateChanged(int)), \
                this, SLOT(changed()));
     connect(m_alternativeTabBoxUi->showDesktopBox, SIGNAL(stateChanged(int)), this, \
SLOT(changed())); @@ -235,6 +237,8 @@ void KWinTabBoxConfig::loadConfig(const \
KConfigGroup& config, KWin::TabBox::TabB  
     tabBoxConfig.setShowOutline(config.readEntry<bool>("ShowOutline",
                                 TabBox::TabBoxConfig::defaultShowOutline()));
+    tabBoxConfig.setIgnoreMinimized(config.readEntry<bool>("IgnoreMinimized",
+                                TabBox::TabBoxConfig::defaultIgnoreMinimized()));
     tabBoxConfig.setShowTabBox(config.readEntry<bool>("ShowTabBox",
                                TabBox::TabBoxConfig::defaultShowTabBox()));
     tabBoxConfig.setHighlightWindows(config.readEntry<bool>("HighlightWindows",
@@ -262,6 +266,7 @@ void KWinTabBoxConfig::saveConfig(KConfigGroup& config, const \
KWin::TabBox::TabB  
     // check boxes
     config.writeEntry("ShowOutline",      tabBoxConfig.isShowOutline());
+    config.writeEntry("IgnoreMinimized",  tabBoxConfig.isIgnoreMinimized());
     config.writeEntry("ShowTabBox",       tabBoxConfig.isShowTabBox());
     config.writeEntry("HighlightWindows", tabBoxConfig.isHighlightWindows());
 
@@ -360,6 +365,7 @@ void KWinTabBoxConfig::defaults()
 
     // checkboxes
     m_primaryTabBoxUi->showOutlineCheck->setChecked(TabBox::TabBoxConfig::defaultShowOutline());
 +    m_primaryTabBoxUi->ignoreMinimizedCheck->setChecked(TabBox::TabBoxConfig::defaultIgnoreMinimized());
                
     m_primaryTabBoxUi->showTabBox->setChecked(TabBox::TabBoxConfig::defaultShowTabBox());
                
     m_primaryTabBoxUi->highlightWindowCheck->setChecked(TabBox::TabBoxConfig::defaultHighlightWindow());
                
     m_primaryTabBoxUi->showDesktopBox->setChecked(TabBox::TabBoxConfig::defaultShowDesktop());
 @@ -374,6 +380,7 @@ void KWinTabBoxConfig::defaults()
 
     // checkboxes
     m_alternativeTabBoxUi->showOutlineCheck->setChecked(TabBox::TabBoxConfig::defaultShowOutline());
 +    m_alternativeTabBoxUi->ignoreMinimizedCheck->setChecked(TabBox::TabBoxConfig::defaultIgnoreMinimized());
                
     m_alternativeTabBoxUi->showTabBox->setChecked(TabBox::TabBoxConfig::defaultShowTabBox());
                
     m_alternativeTabBoxUi->highlightWindowCheck->setChecked(TabBox::TabBoxConfig::defaultHighlightWindow());
                
     m_alternativeTabBoxUi->showDesktopBox->setChecked(TabBox::TabBoxConfig::defaultShowDesktop());
 @@ -404,6 +411,7 @@ void KWinTabBoxConfig::updateUiFromConfig(KWinTabBoxConfigForm* \
ui, const KWin::  
     // check boxes
     ui->showOutlineCheck->setChecked(config.isShowOutline());
+    ui->ignoreMinimizedCheck->setChecked(config.isIgnoreMinimized());
     ui->showTabBox->setChecked(config.isShowTabBox());
     ui->highlightWindowCheck->setChecked(config.isHighlightWindows());
     ui->showDesktopBox->setChecked(config.isShowDesktop());
@@ -415,6 +423,7 @@ void KWinTabBoxConfig::updateConfigFromUi(const \
                KWin::KWinTabBoxConfigForm* ui,
     config.setClientSwitchingMode(TabBox::TabBoxConfig::ClientSwitchingMode(ui->switchingModeCombo->currentIndex()));
  
     config.setShowOutline(ui->showOutlineCheck->isChecked());
+    config.setIgnoreMinimized(ui->ignoreMinimizedCheck->isChecked());
     config.setShowTabBox(ui->showTabBox->isChecked());
     config.setHighlightWindows(ui->highlightWindowCheck->isChecked());
     config.setShowDesktop(ui->showDesktopBox->isChecked());
diff --git a/kwin/kcmkwin/kwintabbox/main.ui b/kwin/kcmkwin/kwintabbox/main.ui
index e81168c..49b26c4 100644
--- a/kwin/kcmkwin/kwintabbox/main.ui
+++ b/kwin/kcmkwin/kwintabbox/main.ui
@@ -103,6 +103,13 @@
     </widget>
    </item>
    <item>
+    <widget class="QCheckBox" name="ignoreMinimizedCheck">
+     <property name="text">
+      <string>Ignore minimized windows</string>
+     </property>
+    </widget>
+   </item>
+   <item>
     <widget class="Line" name="line">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
diff --git a/kwin/tabbox/tabbox.cpp b/kwin/tabbox/tabbox.cpp
index 9cc7935..484fa80 100644
--- a/kwin/tabbox/tabbox.cpp
+++ b/kwin/tabbox/tabbox.cpp
@@ -134,6 +134,7 @@ TabBoxClient* TabBoxHandlerImpl::clientToAddToList(TabBoxClient* \
client, int des  addClient = current->isOnDesktop(desktop);
     addClient = addClient && current->isOnCurrentActivity();
     addClient = addClient && current->wantsTabFocus() && !current->skipSwitcher();
+    addClient = addClient && !(current->isMinimized() && \
config().isIgnoreMinimized());  if (addClient) {
         // don't add windows that have modal dialogs
         Client* modal = current->findModal();
@@ -558,6 +559,8 @@ void TabBox::loadConfig(const KConfigGroup& config, TabBoxConfig& \
tabBoxConfig)  
     tabBoxConfig.setShowOutline(config.readEntry<bool>("ShowOutline",
                                 TabBoxConfig::defaultShowOutline()));
+    tabBoxConfig.setIgnoreMinimized(config.readEntry<bool>("IgnoreMinimized",
+                                TabBoxConfig::defaultIgnoreMinimized()));
     tabBoxConfig.setShowTabBox(config.readEntry<bool>("ShowTabBox",
                                TabBoxConfig::defaultShowTabBox()));
     tabBoxConfig.setHighlightWindows(config.readEntry<bool>("HighlightWindows",
diff --git a/kwin/tabbox/tabboxconfig.cpp b/kwin/tabbox/tabboxconfig.cpp
index c1fa4bb..957c667 100644
--- a/kwin/tabbox/tabboxconfig.cpp
+++ b/kwin/tabbox/tabboxconfig.cpp
@@ -31,6 +31,7 @@ public:
         : showTabBox(TabBoxConfig::defaultShowTabBox())
         , highlightWindows(TabBoxConfig::defaultHighlightWindow())
         , showOutline(TabBoxConfig::defaultShowOutline())
+        , ignoreMinimized(TabBoxConfig::defaultIgnoreMinimized())
         , tabBoxMode(TabBoxConfig::ClientTabBox)
         , layout(TabBoxConfig::defaultLayoutMode())
         , clientListMode(TabBoxConfig::defaultListMode())
@@ -48,6 +49,7 @@ public:
     bool showTabBox;
     bool highlightWindows;
     bool showOutline;
+    bool ignoreMinimized;
 
     TabBoxConfig::TabBoxMode tabBoxMode;
     TabBoxConfig::LayoutMode layout;
@@ -77,6 +79,7 @@ TabBoxConfig& TabBoxConfig::operator=(const \
KWin::TabBox::TabBoxConfig& object)  d->showTabBox = object.isShowTabBox();
     d->highlightWindows = object.isHighlightWindows();
     d->showOutline = object.isShowOutline();
+    d->ignoreMinimized = object.isIgnoreMinimized();
     d->tabBoxMode = object.tabBoxMode();
     d->showDesktop = object.isShowDesktop();
     d->layout = object.layout();
@@ -111,6 +114,16 @@ bool TabBoxConfig::isShowOutline() const
     return d->showOutline;
 }
 
+void TabBoxConfig::setIgnoreMinimized(bool ignore)
+{
+    d->ignoreMinimized = ignore;
+}
+
+bool TabBoxConfig::isIgnoreMinimized() const
+{
+    return d->ignoreMinimized;
+}
+
 void TabBoxConfig::setShowTabBox(bool show)
 {
     d->showTabBox = show;
diff --git a/kwin/tabbox/tabboxconfig.h b/kwin/tabbox/tabboxconfig.h
index c8e5617..a3c26d4 100644
--- a/kwin/tabbox/tabboxconfig.h
+++ b/kwin/tabbox/tabboxconfig.h
@@ -133,6 +133,13 @@ public:
     */
     bool isShowOutline() const;
     /**
+    * @return If minimized windows should be ignored
+    * This option does not apply for TabBoxMode DesktopTabBox.
+    * @see setIgnoreMinimized
+    * @see defaultIgnoreMinimized
+    */
+    bool isIgnoreMinimized() const;
+    /**
     * @return The current TabBoxMode
     * @see setTabBoxMode
     */
@@ -219,6 +226,12 @@ public:
     */
     void setShowOutline(bool show);
     /**
+    * @param ignore Ignore minimized windows.
+    * This option does not apply for TabBoxMode DesktopTabBox.
+    * @see isIgnoreMinimized
+    */
+    void setIgnoreMinimized(bool ignore);
+    /**
     * @param mode The new TabBoxMode to be used.
     * @see tabBoxMode
     */
@@ -296,6 +309,9 @@ public:
     static bool defaultShowOutline() {
         return true;
     }
+    static bool defaultIgnoreMinimized() {
+        return false;
+    }
     static bool defaultHighlightWindow() {
         return true;
     }
-- 
1.7.8

_______________________________________________
kwin mailing list
kwin@kde.org
https://mail.kde.org/mailman/listinfo/kwin


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic