[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/ksysguard/libksysguard/processui
From:       John Tapsell <john.tapsell () kdemail ! net>
Date:       2007-08-31 20:46:27
Message-ID: 1188593187.055461.27743.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 707042 by johnflux:

Add a function to return a list of the selected processes


 M  +26 -14    ksysguardprocesslist.cpp  
 M  +4 -0      ksysguardprocesslist.h  


--- trunk/KDE/kdebase/workspace/ksysguard/libksysguard/processui/ksysguardprocesslist.cpp \
#707041:707042 @@ -406,24 +406,37 @@
 	reniceProcess->start("kdesu", arguments);
 }
 
+QList<KSysGuard::Process *> KSysGuardProcessList::selectedProcesses() const
+{
+	QList<KSysGuard::Process *> processes;
+	QModelIndexList selectedIndexes = \
d->mUi->treeView->selectionModel()->selectedRows(); +	for(int i = 0; i < \
selectedIndexes.size(); ++i) { +		KSysGuard::Process *process = \
reinterpret_cast<KSysGuard::Process *> \
(d->mFilterModel.mapToSource(selectedIndexes.at(i)).internalPointer()); +		processes \
<< process; +	}
+	return processes;
+
+}
+
 void KSysGuardProcessList::reniceSelectedProcesses()
 {
-	QModelIndexList selectedIndexes = \
d->mUi->treeView->selectionModel()->selectedRows(); +	QList<KSysGuard::Process *> \
processes = selectedProcesses();  QStringList selectedAsStrings;
 	QList< long long> selectedPids;
-	int firstPriority = 0;
-	for (int i = 0; i < selectedIndexes.size(); ++i) {
-		KSysGuard::Process *process = reinterpret_cast<KSysGuard::Process *> \
                (d->mFilterModel.mapToSource(selectedIndexes.at(i)).internalPointer());
                
-		if(i==0) firstPriority = process->niceLevel;
-		selectedPids << process->pid;
-		selectedAsStrings << d->mModel.getStringForProcess(process);
-	}
 	
-	if (selectedAsStrings.isEmpty())
+	if (processes.isEmpty())
 	{
 		KMessageBox::sorry(this, i18n("You need to select a process first."));
 		return;
 	}
+
+	int firstPriority = 0;
+	foreach(KSysGuard::Process *process, processes) {
+		selectedPids << process->pid;
+		selectedAsStrings << d->mModel.getStringForProcess(process);
+	}
+	firstPriority = processes.first()->niceLevel;
+
 	ReniceDlg reniceDlg(d->mUi->treeView, firstPriority, selectedAsStrings);
 	if(reniceDlg.exec() == QDialog::Rejected) return;
 	int newPriority = reniceDlg.newPriority;
@@ -465,10 +478,9 @@
 	QModelIndexList selectedIndexes = \
d->mUi->treeView->selectionModel()->selectedRows();  QStringList selectedAsStrings;
 	QList< long long> selectedPids;
-	QList<KSysGuard::Process *> selectedProcesses;
-	for (int i = 0; i < selectedIndexes.size(); ++i) {
-		KSysGuard::Process *process = reinterpret_cast<KSysGuard::Process *> \
                (d->mFilterModel.mapToSource(selectedIndexes.at(i)).internalPointer());
                
-		selectedProcesses << process;
+
+	QList<KSysGuard::Process *> processes = selectedProcesses();
+	foreach(KSysGuard::Process *process, processes) {
 		selectedPids << process->pid;
 		selectedAsStrings << d->mModel.getStringForProcess(process);
 	}
@@ -494,7 +506,7 @@
 			return;
 		}
 	}
-	foreach(KSysGuard::Process *process, selectedProcesses) {
+	foreach(KSysGuard::Process *process, processes) {
 		process->timeKillWasSent.start();
 	}
 
--- trunk/KDE/kdebase/workspace/ksysguard/libksysguard/processui/ksysguardprocesslist.h \
#707041:707042 @@ -71,6 +71,10 @@
 
 	/** Whether the widget will show child totals for CPU and Memory etc usage */
 	bool showTotals() const;
+
+	/** Returns a list of the processes that have been selected by the user. */
+	QList<KSysGuard::Process *> selectedProcesses() const;
+
 public Q_SLOTS:
 	/** Inform the view that the user has changed the current row */
 	void currentRowChanged(const QModelIndex &current);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic