Group :: Desktop gráfico/KDE
RPM: plasma5-workspace
Main Changelog Spec Patches Sources Download Gear Bugs e FR Repocop
Patch: alt-systemmonitor-ignoreconfig.patch
Download
Download
--- a/plasma-workspace/systemmonitor/ksystemactivitydialog.cpp
+++ b/plasma-workspace/systemmonitor/ksystemactivitydialog.cpp
@@ -20,6 +20,7 @@
#include "ksystemactivitydialog.h"
+#include <QTreeView>
#include <QAction>
#include <QCloseEvent>
#include <QDBusConnection>
@@ -37,6 +38,7 @@
KSystemActivityDialog::KSystemActivityDialog(QWidget *parent)
: QDialog(parent)
, m_processList(nullptr)
+ , m_ignoreConfig(false)
{
setWindowTitle(i18n("System Activity"));
setWindowIcon(QIcon::fromTheme(QStringLiteral("utilities-system-monitor")));
@@ -51,8 +53,32 @@ KSystemActivityDialog::KSystemActivityDi
connect(closeWindow, &QAction::triggered, this, &KSystemActivityDialog::accept);
addAction(closeWindow);
- KConfigGroup cg = KSharedConfig::openConfig()->group("TaskDialog");
- m_processList.loadSettings(cg);
+ if (!m_ignoreConfig) {
+ qDebug() << "Settings was loaded from config";
+ KConfigGroup cg = KSharedConfig::openConfig()->group("TaskDialog");
+
+ m_processList.loadSettings(cg);
+ } else {
+ qDebug() << "Config was ignored, default settings were used";
+ // sort descending by memory, for some weird reason Qt::AscendingOrder is sorting descending and vice versa
+ m_processList.treeView()->sortByColumn(ProcessModel::HeadingMemory, Qt::AscendingOrder);
+ // show only own processes
+ m_processList.setState(ProcessFilter::State::OwnProcesses);
+ // hide "user" column
+ m_processList.treeView()->hideColumn(ProcessModel::HeadingUser);
+ // show "kill" column
+ m_processList.treeView()->showColumn(ProcessModel::HeadingKillBtn);
+ // move "kill" button
+ m_processList.setKillButtonVisible(false);
+
+ // resize columns
+ m_processList.treeView()->resizeColumnToContents(ProcessModel::HeadingMemory);
+ m_processList.treeView()->resizeColumnToContents(ProcessModel::HeadingName);
+ m_processList.treeView()->resizeColumnToContents(ProcessModel::HeadingKillBtn);
+
+ // update every 2 seconds
+ m_processList.setUpdateIntervalMSecs(2000);
+ }
QDBusConnection con = QDBusConnection::sessionBus();
con.registerObject(QStringLiteral("/"), this, QDBusConnection::ExportAllSlots);
@@ -79,18 +105,21 @@ QString KSystemActivityDialog::filterTex
void KSystemActivityDialog::closeEvent(QCloseEvent *event)
{
- saveDialogSettings();
+ if (!m_ignoreConfig)
+ saveDialogSettings();
event->accept();
}
void KSystemActivityDialog::reject()
{
- saveDialogSettings();
+ if (!m_ignoreConfig)
+ saveDialogSettings();
QDialog::reject();
}
void KSystemActivityDialog::saveDialogSettings()
{
+ qDebug() << "Saving settings";
// When the user closes the dialog, save the process list setup
KConfigGroup cg = KSharedConfig::openConfig()->group("TaskDialog");
m_processList.saveSettings(cg);
@@ -102,4 +131,9 @@ QSize KSystemActivityDialog::sizeHint()
return QSize(650, 420);
}
+void KSystemActivityDialog::ignoreConfig()
+{
+ m_ignoreConfig = true;
+}
+
#endif // not Q_WS_WIN
diff --git a/plasma-workspace/systemmonitor/ksystemactivitydialog.h b/plasma-workspace/systemmonitor/ksystemactivitydialog.h
index 49a12828..03d142f2 100644
--- a/plasma-workspace/systemmonitor/ksystemactivitydialog.h
+++ b/plasma-workspace/systemmonitor/ksystemactivitydialog.h
@@ -43,6 +43,7 @@ public:
*/
void run();
+ void ignoreConfig();
/** Set the text in the filter line in the process list widget */
void setFilterText(const QString &filterText);
QString filterText() const;
@@ -59,6 +60,7 @@ protected:
private:
void saveDialogSettings();
+ bool m_ignoreConfig;
KSysGuardProcessList m_processList;
};
#endif // not Q_WS_WIN
--- a/plasma-workspace/systemmonitor/main.cpp
+++ b/plasma-workspace/systemmonitor/main.cpp
@@ -17,6 +17,9 @@
*
*/
+#include <QCommandLineParser>
+#include <QCommandLineOption>
+#include <QDebug>
#include <KLocalizedString>
#include <QApplication>
#include <QDBusConnection>
@@ -42,5 +45,19 @@ int main(int argc, char **argv)
}
KSystemActivityDialog dialog;
+
+ QCommandLineParser cliOptions;
+ QCommandLineOption ignOption(QStringList() << QStringLiteral("i") <<
+ QStringLiteral("ignore-config"),
+ i18n("Disable config file"));
+
+ cliOptions.addOption(ignOption);
+ cliOptions.process(app);
+
+ if (cliOptions.isSet(ignOption)) {
+ dialog.ignoreConfig();
+ qDebug() << "The config will be ignored";
+ }
+
return dialog.exec();
}