Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37740807
en ru br
ALT Linux repositórios
S:5.27.8-alt1

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


--- 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();
 }
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009