From c2fff61ccdc9c8397e7cae28f8c48bea5f6ab588 Mon Sep 17 00:00:00 2001 From: Thunderforge Date: Sat, 26 May 2018 20:35:28 -0500 Subject: [PATCH] Changing so that data changes happen only after the addon is checked --- apps/launcher/datafilespage.cpp | 15 +++++++++++---- apps/launcher/datafilespage.hpp | 4 ++-- .../contentselector/view/contentselector.cpp | 13 ------------- .../contentselector/view/contentselector.hpp | 2 -- 4 files changed, 13 insertions(+), 21 deletions(-) diff --git a/apps/launcher/datafilespage.cpp b/apps/launcher/datafilespage.cpp index 8d4d2422f..25a09ab1b 100644 --- a/apps/launcher/datafilespage.cpp +++ b/apps/launcher/datafilespage.cpp @@ -37,11 +37,14 @@ Launcher::DataFilesPage::DataFilesPage(Files::ConfigurationManager &cfg, Config: connect(mProfileDialog->lineEdit(), SIGNAL(textChanged(QString)), this, SLOT(updateOkButton(QString))); - connect(mSelector, SIGNAL(signalSelectedFilesChanged(QStringList)), - this, SLOT(slotSelectedFilesChanged(QStringList))); buildView(); loadSettings(); + + // Connect signal and slot after the settings have been loaded. We only care about the user changing + // the addons and don't want to get signals of the system doing it during startup. + connect(mSelector, SIGNAL(signalAddonDataChanged(QModelIndex,QModelIndex)), + this, SLOT(slotAddonDataChanged())); } void Launcher::DataFilesPage::buildView() @@ -322,7 +325,11 @@ bool Launcher::DataFilesPage::showDeleteMessageBox (const QString &text) return (msgBox.clickedButton() == deleteButton); } -void Launcher::DataFilesPage::slotSelectedFilesChanged(QStringList selectedFilesChanged) +void Launcher::DataFilesPage::slotAddonDataChanged() { - emit signalSelectedFilesChanged(selectedFilesChanged); + QStringList selectedFiles = selectedFilePaths(); + if (previousSelectedFiles != selectedFiles) { + previousSelectedFiles = selectedFiles; + emit signalSelectedFilesChanged(selectedFiles); + } } \ No newline at end of file diff --git a/apps/launcher/datafilespage.hpp b/apps/launcher/datafilespage.hpp index fb9f9e04f..8893412be 100644 --- a/apps/launcher/datafilespage.hpp +++ b/apps/launcher/datafilespage.hpp @@ -60,7 +60,7 @@ namespace Launcher void slotProfileChangedByUser(const QString &previous, const QString ¤t); void slotProfileRenamed(const QString &previous, const QString ¤t); void slotProfileDeleted(const QString &item); - void slotSelectedFilesChanged (QStringList selectedFiles); + void slotAddonDataChanged (); void updateOkButton(const QString &text); @@ -81,7 +81,7 @@ namespace Launcher Config::LauncherSettings &mLauncherSettings; QString mPreviousProfile; - + QStringList previousSelectedFiles; QString mDataLocal; void setPluginsCheckstates(Qt::CheckState state); diff --git a/components/contentselector/view/contentselector.cpp b/components/contentselector/view/contentselector.cpp index 4798d160c..5e16064f4 100644 --- a/components/contentselector/view/contentselector.cpp +++ b/components/contentselector/view/contentselector.cpp @@ -216,8 +216,6 @@ void ContentSelectorView::ContentSelector::slotShowContextMenu(const QPoint& pos { QPoint globalPos = ui.addonView->viewport()->mapToGlobal(pos); mContextMenu->exec(globalPos); - // TODO This is a temporary workaround to demonstrate that the selected files signal can be sent - emitSelectedFilesChanged(); } void ContentSelectorView::ContentSelector::setCheckStateForMultiSelectedItems(bool checked) @@ -241,15 +239,4 @@ void ContentSelectorView::ContentSelector::slotUncheckMultiSelectedItems() void ContentSelectorView::ContentSelector::slotCheckMultiSelectedItems() { setCheckStateForMultiSelectedItems(true); -} - -void ContentSelectorView::ContentSelector::emitSelectedFilesChanged() -{ - //retrieve the files selected for the profile - ContentSelectorModel::ContentFileList items = selectedFiles(); - QStringList filePaths; - foreach(const ContentSelectorModel::EsmFile *item, items) { - filePaths.append(item->filePath()); - } - emit signalSelectedFilesChanged(filePaths); } \ No newline at end of file diff --git a/components/contentselector/view/contentselector.hpp b/components/contentselector/view/contentselector.hpp index 5015306ab..323f926ed 100644 --- a/components/contentselector/view/contentselector.hpp +++ b/components/contentselector/view/contentselector.hpp @@ -15,7 +15,6 @@ namespace ContentSelectorView Q_OBJECT QMenu *mContextMenu; - QStringList mFilePaths; protected: @@ -56,7 +55,6 @@ namespace ContentSelectorView void buildContextMenu(); void setGameFileSelected(int index, bool selected); void setCheckStateForMultiSelectedItems(bool checked); - void emitSelectedFilesChanged(); signals: void signalCurrentGamefileIndexChanged (int);