コード例 #1
0
ファイル: showdesktop.cpp プロジェクト: pythoneer/lxqt-panel
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);
}
コード例 #2
0
ファイル: showdesktop.cpp プロジェクト: Fat-Zer/tdebase
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);
        }
    }
}
コード例 #3
0
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);
        }
    }
}
コード例 #4
0
ファイル: pagerwindow.cpp プロジェクト: ForNeVeR/leechcraft
	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);
			}
		}
	}
コード例 #5
0
ファイル: showdesktop.cpp プロジェクト: Fat-Zer/tdebase
void ShowDesktop::slotCurrentDesktopChanged(int)
{
    showDesktop( false );
}