Skip to content

Commit c48a463

Browse files
committed
Update displayServices
1 parent ba69c65 commit c48a463

File tree

1 file changed

+18
-23
lines changed

1 file changed

+18
-23
lines changed

mainwindow.cpp

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -314,50 +314,44 @@ void MainWindow::displayServices()
314314
const QStringList incrementalSearchPatterns = {"s", "sa", "sam", "samb", "samba"};
315315
const QString currentFilter = ui->comboFilter->currentText();
316316

317-
auto matchesSearchCriteria = [&](const QString &serviceName) {
318-
return searchText.isEmpty() || serviceName.startsWith(searchText)
319-
|| (serviceName == "smbd" && incrementalSearchPatterns.contains(searchText));
320-
};
321-
322-
auto matchesFilterCriteria = [&](bool isRunning, bool isEnabled) {
323-
if (currentFilter == tr("Running services")) {
324-
return isRunning;
325-
} else if (currentFilter == tr("Services enabled at boot")) {
326-
return isEnabled;
327-
} else if (currentFilter == tr("Services disabled at boot")) {
328-
return !isEnabled;
329-
}
330-
return true;
331-
};
317+
ui->listServices->setUpdatesEnabled(false);
318+
319+
const bool isFilterAll = currentFilter.isEmpty() || currentFilter == tr("All services");
320+
const bool isFilterRunning = currentFilter == tr("Running services");
321+
const bool isFilterEnabled = currentFilter == tr("Services enabled at boot");
322+
const bool isFilterDisabled = currentFilter == tr("Services disabled at boot");
332323

333324
for (const auto &service : services) {
334325
const QString serviceName = service->getName().toLower();
326+
const bool isRunning = service->isRunning();
327+
const bool isEnabled = service->isEnabled();
335328

336-
if (!matchesSearchCriteria(serviceName)) {
329+
// Check search criteria
330+
if (!searchText.isEmpty() && !serviceName.startsWith(searchText)
331+
&& !(serviceName == QLatin1String("smbd") && incrementalSearchPatterns.contains(searchText))) {
337332
continue;
338333
}
339334

340-
const bool isRunning = service->isRunning();
341-
const bool isEnabled = service->isEnabled();
342-
343-
if (!matchesFilterCriteria(isRunning, isEnabled)) {
335+
// Check filter criteria
336+
if ((isFilterRunning && !isRunning) || (isFilterEnabled && !isEnabled) || (isFilterDisabled && isEnabled)
337+
|| (!isFilterAll && !isFilterRunning && !isFilterEnabled && !isFilterDisabled)) {
344338
continue;
345339
}
346340

341+
// Update counters
347342
if (isRunning) {
348343
++countActive;
349344
} else if (isEnabled) {
350345
++countEnabled;
351346
}
352347

348+
// Create item and add it directly to the list widget
353349
auto *item = new QListWidgetItem(serviceName, ui->listServices);
354350
item->setData(Qt::UserRole, QVariant::fromValue(service.get()));
355-
356351
item->setForeground(isRunning ? runningColor : (isEnabled ? enabledColor : Qt::black));
357-
358-
ui->listServices->addItem(item);
359352
}
360353

354+
// Update status labels
361355
ui->labelCount->setText(tr("%1 total services, %2 currently <font color='%3'>running</font>")
362356
.arg(services.count())
363357
.arg(countActive)
@@ -368,6 +362,7 @@ void MainWindow::displayServices()
368362
.arg(getHtmlColor(enabledColor)));
369363

370364
ui->listServices->sortItems();
365+
ui->listServices->setUpdatesEnabled(true);
371366
ui->listServices->blockSignals(false);
372367
savedRow = qBound(0, savedRow, ui->listServices->count() - 1);
373368
ui->listServices->setCurrentRow(savedRow);

0 commit comments

Comments
 (0)