File indexing completed on 2024-05-05 17:45:18
0001 /* 0002 SPDX-FileCopyrightText: 2007-2010 John Tapsell <johnflux@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.0-only 0005 */ 0006 0007 #ifndef Q_WS_WIN 0008 0009 #include "ksystemactivitydialog.h" 0010 0011 #include "processui/ksysguardprocesslist.h" 0012 0013 #include <QAction> 0014 #include <QCloseEvent> 0015 #include <QDBusConnection> 0016 #include <QIcon> 0017 #include <QLineEdit> 0018 #include <QString> 0019 #include <QVBoxLayout> 0020 0021 #include <KLocalizedString> 0022 #include <KSharedConfig> 0023 #include <KX11Extras> 0024 0025 KSystemActivityDialog::KSystemActivityDialog(QWidget *parent) 0026 : KMainWindow(parent) 0027 , m_configGroup(KSharedConfig::openConfig()->group("TaskDialog")) 0028 { 0029 setAutoSaveSettings(); 0030 0031 m_processList = new KSysGuardProcessList; 0032 m_processList->setScriptingEnabled(true); 0033 0034 QVBoxLayout *mainLayout = new QVBoxLayout; 0035 mainLayout->addWidget(m_processList); 0036 0037 QWidget *mainWidget = new QWidget; 0038 mainWidget->setLayout(mainLayout); 0039 setCentralWidget(mainWidget); 0040 0041 QAction *closeAction = new QAction; 0042 closeAction->setShortcuts({QKeySequence::Quit, Qt::Key_Escape}); 0043 connect(closeAction, &QAction::triggered, this, &KSystemActivityDialog::close); 0044 addAction(closeAction); 0045 0046 m_processList->loadSettings(m_configGroup); 0047 0048 QDBusConnection con = QDBusConnection::sessionBus(); 0049 con.registerObject(QStringLiteral("/"), this, QDBusConnection::ExportAllSlots); 0050 } 0051 0052 void KSystemActivityDialog::run() 0053 { 0054 show(); 0055 raise(); 0056 KX11Extras::setOnDesktop(winId(), KX11Extras::currentDesktop()); 0057 KX11Extras::forceActiveWindow(winId()); 0058 } 0059 0060 void KSystemActivityDialog::setFilterText(const QString &filterText) 0061 { 0062 m_processList->filterLineEdit()->setText(filterText); 0063 m_processList->filterLineEdit()->setFocus(); 0064 } 0065 0066 QString KSystemActivityDialog::filterText() const 0067 { 0068 return m_processList->filterLineEdit()->text(); 0069 } 0070 0071 void KSystemActivityDialog::closeEvent(QCloseEvent *event) 0072 { 0073 m_processList->saveSettings(m_configGroup); 0074 KSharedConfig::openConfig()->sync(); 0075 0076 KMainWindow::closeEvent(event); 0077 } 0078 0079 QSize KSystemActivityDialog::sizeHint() const 0080 { 0081 return QSize(650, 420); 0082 } 0083 0084 #endif // not Q_WS_WIN