--- a/plasma-workspace/systemmonitor/ksystemactivitydialog.cpp +++ b/plasma-workspace/systemmonitor/ksystemactivitydialog.cpp @@ -20,6 +20,7 @@ #include "ksystemactivitydialog.h" +#include #include #include #include @@ -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 +#include +#include #include #include #include @@ -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(); }