aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorConfuSomu2024-01-05 00:03:13 +0100
committerConfuSomu2024-01-05 00:03:13 +0100
commit6db1c2645d6c5b7f8e4b13b8f58b4673ea5457f3 (patch)
tree4cedc069142decf396b75c86631d286bb7489883 /src
parent2659a72cc70c72a7b3d1fd3a349db7c30e9a63ea (diff)
downloadActorViewer-6db1c2645d6c5b7f8e4b13b8f58b4673ea5457f3.tar
ActorViewer-6db1c2645d6c5b7f8e4b13b8f58b4673ea5457f3.tar.gz
ActorViewer-6db1c2645d6c5b7f8e4b13b8f58b4673ea5457f3.zip
Rerun search if new archive is opened
Diffstat (limited to 'src')
-rw-r--r--src/finddialog.cpp8
-rw-r--r--src/finddialog.h4
-rw-r--r--src/mainwindow.cpp4
-rw-r--r--src/widgets/tab_activity_list.cpp11
-rw-r--r--src/widgets/tab_activity_list.h2
5 files changed, 20 insertions, 9 deletions
diff --git a/src/finddialog.cpp b/src/finddialog.cpp
index fe56b38..4d03aab 100644
--- a/src/finddialog.cpp
+++ b/src/finddialog.cpp
@@ -51,6 +51,10 @@ void FindDialog::set_search_text(const QString &text, bool search_immediately) {
else on_textInputSearch_textEdited(text);
}
+void FindDialog::force_research() {
+ init_search(true);
+}
+
inline void FindDialog::run_search() {
init_search();
}
@@ -76,9 +80,9 @@ void FindDialog::set_qlist_widget(QListWidget* widget) {
}
// Start a new search only if the search text input has changed
-void FindDialog::init_search() {
+void FindDialog::init_search(bool force) {
QString current_search = ui->textInputSearch->text();
- if (*last_search == current_search or not list_widget) return;
+ if (not force and (*last_search == current_search or not list_widget)) return;
matches = list_widget->findItems(current_search, Qt::MatchContains);
diff --git a/src/finddialog.h b/src/finddialog.h
index c26f8fd..38a58f2 100644
--- a/src/finddialog.h
+++ b/src/finddialog.h
@@ -13,6 +13,8 @@ class FindDialog : public QDialog {
public:
FindDialog(QWidget *parent = nullptr);
~FindDialog();
+ // Force doing again the search, useful if list_widget items have changed
+ void force_research();
public slots:
void set_search_text(const QString &text, bool search_immediately = false);
@@ -42,7 +44,7 @@ private:
// This is used with the spin box to avoid having repeated value changes due to the on_spinBox_valueChanged slot
bool value_changed_processed = false;
- void init_search();
+ void init_search(bool force = false);
void update_status();
void select_match();
bool has_search_changed();
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 023119f..b54a767 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -48,7 +48,9 @@ void MainWindow::create_initial_tabs() {
connect(ui->actionFind, &QAction::triggered, activity_list_tab, &TabActivityList::on_buttonSearch_clicked);
connect(ui->actionOpen_URL, &QAction::triggered, activity_list_tab, &TabActivityList::actionOpen_URL_triggered);
connect(ui->menuView, &QMenu::aboutToHide, activity_list_tab, &TabActivityList::menuView_aboutToHide);
- connect(this, &MainWindow::new_archive_opened, activity_list_tab, &TabActivityList::relist_statuses);
+ connect(this, &MainWindow::new_archive_opened, activity_list_tab, [=] {
+ activity_list_tab->relist_statuses(true);
+ });
// TODO: Add the "+" tab for opening new tabs
}
diff --git a/src/widgets/tab_activity_list.cpp b/src/widgets/tab_activity_list.cpp
index 8ae046a..faa6138 100644
--- a/src/widgets/tab_activity_list.cpp
+++ b/src/widgets/tab_activity_list.cpp
@@ -99,15 +99,18 @@ void TabActivityList::actionOpen_URL_triggered(bool checked) {
}
}
-void TabActivityList::relist_statuses() {
+void TabActivityList::relist_statuses(bool new_archive_opened) {
if (*data_archive) {
ui->listWidget->clear();
(*data_archive)->update_status_list(view_filters, ui->listWidget);
view_filters_changed = false;
}
- // Cursor overriden only when opening new archive
- if (QApplication::overrideCursor())
- QApplication::restoreOverrideCursor();
+ if (new_archive_opened) {
+ if (QApplication::overrideCursor())
+ QApplication::restoreOverrideCursor();
+ if (find_dialog)
+ find_dialog->force_research();
+ }
}
// Function used to reset filters when we have detected that the "All toots" toggle has been toggled on or shouldn't be toggled anymore
diff --git a/src/widgets/tab_activity_list.h b/src/widgets/tab_activity_list.h
index ae6d426..4e520da 100644
--- a/src/widgets/tab_activity_list.h
+++ b/src/widgets/tab_activity_list.h
@@ -41,7 +41,7 @@ public slots:
void actionOpen_URL_triggered(bool checked);
void menuView_aboutToHide();
- void relist_statuses();
+ void relist_statuses(bool new_archive_opened = false);
void select_list_item(QListWidgetItem* item);
void set_search_text(const QString &text);