ShowDesktop::ShowDesktop(const ILxQtPanelPluginStartupInfo &startupInfo) : QObject(), ILxQtPanelPlugin(startupInfo) { m_key = GlobalKeyShortcut::Client::instance()->addAction(QString(), QString("/panel/%1/show_hide").arg(settings()->group()), tr("Show desktop"), this); if (m_key) { connect(m_key, SIGNAL(activated()), this, SLOT(showDesktop())); if (m_key->shortcut().isEmpty()) { m_key->changeShortcut(DEFAULT_SHORTCUT); if (m_key->shortcut().isEmpty()) { LxQt::Notification::notify(tr("Show Desktop: Global shortcut '%1' cannot be registered").arg(DEFAULT_SHORTCUT)); } } } QAction * act = new QAction(XdgIcon::fromTheme("user-desktop"), tr("Show Desktop"), this); connect(act, SIGNAL(triggered()), this, SLOT(showDesktop())); mButton.setDefaultAction(act); mButton.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); }
void ShowDesktop::slotWindowAdded(WId w) { if (!m_showingDesktop) { return; } NETWinInfo inf(tqt_xdisplay(), w, tqt_xrootwin(), NET::XAWMState | NET::WMWindowType); NET::WindowType windowType = inf.windowType(NET::AllTypesMask); if ((windowType == NET::Normal || windowType == NET::Unknown) && inf.mappingState() == NET::Visible) { TDEConfig twincfg( "twinrc", true ); // see in twin twincfg.setGroup( "Windows" ); if( twincfg.readBoolEntry( "ShowDesktopIsMinimizeAll", false )) { m_iconifiedList.clear(); m_showingDesktop = false; emit desktopShown(false); } else { m_activeWindow = w; showDesktop(false); } } }
void ShowDesktop::slotWindowAdded(WId w) { if (!m_showingDesktop) { return; } NETWinInfo inf(QX11Info::display(), w, QX11Info::appRootWindow(), NET::XAWMState | NET::WMWindowType); NET::WindowType windowType = inf.windowType(NET::AllTypesMask); if ((windowType == NET::Normal || windowType == NET::Unknown) && inf.mappingState() == NET::Visible) { KConfig _kwincfg( "kwinrc" ); KConfigGroup kwincfg(&_kwincfg, "Windows" ); if( kwincfg.readEntry( "ShowDesktopIsMinimizeAll", false )) { m_iconifiedList.clear(); m_showingDesktop = false; emit desktopShown(false); } else { m_activeWindow = w; showDesktop(false); } } }
void PagerWindow::showWindow (qulonglong wid) { auto& w = Util::XWrapper::Instance (); const auto desk = w.GetWindowDesktop (wid); showDesktop (desk); w.RaiseWindow (wid); for (int i = 0, count = w.GetDesktopCount (); i < count; ++i) { auto deskItem = DesktopsModel_->item (i); const auto& modelVar = deskItem->data (DesktopsModel::Role::SubModel); auto model = dynamic_cast<SingleDesktopModel*> (modelVar.value<QObject*> ()); for (int j = 0; j < model->rowCount (); ++j) { auto winItem = model->item (j); const auto thatID = winItem->data (SingleDesktopModel::Role::WID).toULongLong (); winItem->setData (thatID == wid, SingleDesktopModel::Role::IsActive); } } }
void ShowDesktop::slotCurrentDesktopChanged(int) { showDesktop( false ); }