From 3b05cedc8b49d7018c379d46c5a56df8353090b8 Mon Sep 17 00:00:00 2001 From: Rens Dofferhoff Date: Wed, 8 Mar 2023 11:20:40 +0100 Subject: [PATCH 1/4] add hide dependencies to resultmenu --- Desktop/analysis/analyses.cpp | 9 +++++++++ Desktop/analysis/analyses.h | 1 + Desktop/analysis/analysis.cpp | 7 +++++++ Desktop/analysis/analysis.h | 1 + Desktop/components/JASP/Widgets/MainPage.qml | 3 ++- Desktop/html/js/analysis.js | 2 +- Desktop/html/js/collection.js | 2 ++ Desktop/html/js/image.js | 2 ++ Desktop/html/js/jaspwidgets.js | 1 + Desktop/html/js/main.js | 2 ++ Desktop/html/js/object.js | 1 + Desktop/html/js/table.js | 1 + Desktop/mainwindow.cpp | 1 + Desktop/results/resultmenumodel.cpp | 19 ++++++++++++++----- Desktop/results/resultmenumodel.h | 2 ++ Desktop/results/resultsjsinterface.h | 1 + 16 files changed, 48 insertions(+), 7 deletions(-) diff --git a/Desktop/analysis/analyses.cpp b/Desktop/analysis/analyses.cpp index b37bb65d16..7b6bf0fb13 100644 --- a/Desktop/analysis/analyses.cpp +++ b/Desktop/analysis/analyses.cpp @@ -741,6 +741,15 @@ void Analyses::showDependenciesInAnalysis(size_t analysis_id, QString optionName get(analysis_id)->showDependenciesOnQMLForObject(optionName); } +void Analyses::hideDependenciesInAnalysis(size_t analysis_id, QString optionName) +{ + //just hide it for all analysis, probably desired + for (auto& analysis : _analysisMap) + { + analysis.second->hideDependencies(); + } +} + void Analyses::analysisTitleChangedHandler(string moduleName, string oldTitle, string newTitle) { applyToAll([&](Analysis * a) diff --git a/Desktop/analysis/analyses.h b/Desktop/analysis/analyses.h index fe22faecf2..cdd9db618c 100644 --- a/Desktop/analysis/analyses.h +++ b/Desktop/analysis/analyses.h @@ -130,6 +130,7 @@ public slots: void move(int fromIndex, int toIndex); void duplicateAnalysis(size_t id); void showDependenciesInAnalysis(size_t analysis_id, QString optionName); + void hideDependenciesInAnalysis(size_t analysis_id, QString optionName); void analysisTitleChangedHandler(std::string moduleName, std::string oldTitle, std::string newTitlesendRScriptHandler); void prepareForLanguageChange(); void languageChangedHandler(); diff --git a/Desktop/analysis/analysis.cpp b/Desktop/analysis/analysis.cpp index d7c34382c6..0691a7dfc0 100644 --- a/Desktop/analysis/analysis.cpp +++ b/Desktop/analysis/analysis.cpp @@ -575,6 +575,13 @@ void Analysis::showDependenciesOnQMLForObject(QString uniqueName) processResultsForDependenciesToBeShown(); } +void Analysis::hideDependencies() +{ + _analysisForm->setMustBe({}); + _analysisForm->setMustContain({}); +} + + bool Analysis::processResultsForDependenciesToBeShownMetaTraverser(const Json::Value & array) { if(!array.isArray()) diff --git a/Desktop/analysis/analysis.h b/Desktop/analysis/analysis.h index 8f9d88ff63..0fd761ebfa 100644 --- a/Desktop/analysis/analysis.h +++ b/Desktop/analysis/analysis.h @@ -188,6 +188,7 @@ public slots: void setDynamicModule( Modules::DynamicModule * module); void emitDuplicationSignals(); void showDependenciesOnQMLForObject(QString uniqueName); //uniqueName is basically "name" in meta in results. + void hideDependencies(); void boundValueChangedHandler() override; void requestComputedColumnCreationHandler( const std::string & columnName) override; void requestColumnCreationHandler( const std::string & columnName, columnType colType) override { emit requestColumnCreation(columnName, this, colType); } diff --git a/Desktop/components/JASP/Widgets/MainPage.qml b/Desktop/components/JASP/Widgets/MainPage.qml index 75806dfa02..54da4336e8 100644 --- a/Desktop/components/JASP/Widgets/MainPage.qml +++ b/Desktop/components/JASP/Widgets/MainPage.qml @@ -341,7 +341,8 @@ Item function setAllUserDataFromJavascript(json) { resultsJsInterface.setAllUserDataFromJavascript(json) } function setResultsMetaFromJavascript(json) { resultsJsInterface.setResultsMetaFromJavascript(json) } function duplicateAnalysis(id) { resultsJsInterface.duplicateAnalysis(id) } - function showDependenciesInAnalysis(id, optName) { resultsJsInterface.showDependenciesInAnalysis(id, optName) } + function showDependenciesInAnalysis(id, optName) { resultsJsInterface.showDependenciesInAnalysis(id, optName); resultMenuModel.setDependenciesShown(true) } + function hideDependenciesInAnalysis(id, optName) { resultsJsInterface.hideDependenciesInAnalysis(id, optName); resultMenuModel.setDependenciesShown(false) } function showAnalysesMenu(options) { diff --git a/Desktop/html/js/analysis.js b/Desktop/html/js/analysis.js index 787f8e9313..29499b3542 100644 --- a/Desktop/html/js/analysis.js +++ b/Desktop/html/js/analysis.js @@ -102,7 +102,7 @@ JASPWidgets.AnalysisView = JASPWidgets.View.extend({ this.model.on("SaveImage:clicked", function (options) { this.trigger("saveimage", this.model.get("id"), options) }, this); this.model.on("EditImage:clicked", function (image, options) { this.imageBeingEdited = image; this.trigger("editimage", this.model.get("id"), options) }, this); this.model.on("ShowDependencies:clicked", function (optName) { this.trigger("showDependencies", this.model.get("id"), optName) }, this); - + this.model.on("HideDependencies:clicked", function (optName) { this.trigger("hideDependencies", this.model.get("id"), optName) }, this); this.$el.on("changed:userData", this, this.onUserDataChanged); }, diff --git a/Desktop/html/js/collection.js b/Desktop/html/js/collection.js index ad1875e2bb..49c4054117 100644 --- a/Desktop/html/js/collection.js +++ b/Desktop/html/js/collection.js @@ -88,6 +88,8 @@ JASPWidgets.collectionView = JASPWidgets.View.extend({ }, showDependenciesClicked: function() { this.model.trigger("ShowDependencies:clicked", this.model.get("name")); }, + hideDependenciesClicked: function() { this.model.trigger("HideDependencies:clicked", this.model.get("name")); }, + collapseMenuClicked: function() { this.setCollapsedState(!this.model.get('collapsed')); }, noteOptions: function() { return [ { key: this.noteBoxKey, visible: this.noteBox.visible } ]; }, hasNotes: function() { return this.model.get('name') !== null; }, diff --git a/Desktop/html/js/image.js b/Desktop/html/js/image.js index be5ac2ff40..2e9179989e 100644 --- a/Desktop/html/js/image.js +++ b/Desktop/html/js/image.js @@ -45,6 +45,8 @@ JASPWidgets.imageView = JASPWidgets.objectView.extend({ saveImageClicked: function() { this.model.trigger("SaveImage:clicked", { data: this.model.get("data"), width: this.model.get("width"), height: this.model.get("height"), name: this.model.get("name") }); }, editImageClicked: function() { this.model.trigger("EditImage:clicked", this.myView, { data: this.model.get("data"), width: this.model.get("width"), height: this.model.get("height"), name: this.model.get("name"), title: this.model.get("title"), type: "interactive" }); }, showDependenciesClicked: function() { this.model.trigger("ShowDependencies:clicked", this.model.get("name")); }, + hideDependenciesClicked: function() { this.model.trigger("HideDependencies:clicked", this.model.get("name")); }, + menuName: "Plot", myView: undefined, diff --git a/Desktop/html/js/jaspwidgets.js b/Desktop/html/js/jaspwidgets.js index 068f3ca862..973889ff9f 100644 --- a/Desktop/html/js/jaspwidgets.js +++ b/Desktop/html/js/jaspwidgets.js @@ -967,6 +967,7 @@ JASPWidgets.Toolbar = JASPWidgets.View.extend({ hasRemove: (parent.hasRemove === undefined || parent.hasRemove()) && parent.removeMenuClicked !== undefined, hasDuplicate: (parent.hasDuplicate === undefined || parent.hasDuplicate()) && parent.duplicateMenuClicked !== undefined, hasShowDeps: (parent.hasShowDeps === undefined || parent.hasShowDeps()) && parent.showDependenciesClicked !== undefined, + hasHideDeps: true, hasCollapse: (parent.hasCollapse === undefined || parent.hasCollapse()) && parent.collapseMenuClicked !== undefined, hasLaTeXCode: (parent.hasLaTeXCode === undefined || parent.hasLaTeXCode()) && parent.latexCodeMenuClicked !== undefined, hasRemoveAllAnalyses: parent.menuName === 'All', diff --git a/Desktop/html/js/main.js b/Desktop/html/js/main.js index bea00b55e7..e305061d78 100644 --- a/Desktop/html/js/main.js +++ b/Desktop/html/js/main.js @@ -146,6 +146,7 @@ $(document).ready(function () { window.editTitleMenuClicked = function () { window.menuObjectFunctionCaller( window.menuObject.editTitleClicked .bind(window.menuObject) ); } window.collapseMenuClicked = function () { window.menuObjectFunctionCaller( window.menuObject.collapseMenuClicked .bind(window.menuObject) ); } window.showDependenciesClicked = function () { window.menuObjectFunctionCaller( window.menuObject.showDependenciesClicked .bind(window.menuObject) ); } + window.hideDependenciesClicked = function () { window.menuObjectFunctionCaller( window.menuObject.hideDependenciesClicked .bind(window.menuObject) ); } window.duplicateMenuClicked = function () { window.menuObjectFunctionCaller( window.menuObject.duplicateMenuClicked .bind(window.menuObject) ); } window.removeMenuClicked = function () { window.menuObjectFunctionCaller( window.menuObject.removeMenuClicked .bind(window.menuObject) ); } window.citeMenuClicked = function () { window.menuObjectFunctionCaller( window.menuObject.citeMenuClicked .bind(window.menuObject), "Citations copied to clipboard" ); } @@ -471,6 +472,7 @@ $(document).ready(function () { jaspWidget.on("saveimage", function (id, options) { jasp.analysisSaveImage(id, JSON.stringify(options)) }); jaspWidget.on("editimage", function (id, options) { jasp.analysisEditImage(id, JSON.stringify(options)) }); jaspWidget.on("showDependencies", function (id, optName) { jasp.showDependenciesInAnalysis(id, optName); }); + jaspWidget.on("hideDependencies", function (id, optName) { jasp.hideDependenciesInAnalysis(id, optName); }); jaspWidget.on("analysis:remove", function (id) { jasp.removeAnalysisRequest(id); }); jaspWidget.on("analysis:duplicate", function (id) { jasp.duplicateAnalysis(id); }); jaspWidget.on("analysis:userDataChanged", function () { window.getAllUserData(); }); diff --git a/Desktop/html/js/object.js b/Desktop/html/js/object.js index b639d7e461..509d568b59 100644 --- a/Desktop/html/js/object.js +++ b/Desktop/html/js/object.js @@ -73,6 +73,7 @@ JASPWidgets.objectConstructor = function (results, params, ignoreEvents) { itemModel.on("SaveImage:clicked", function (options) { this.trigger("SaveImage:clicked", options) }, this.model); itemModel.on("EditImage:clicked", function (image, options) { this.trigger("EditImage:clicked", image, options) }, this.model); itemModel.on("ShowDependencies:clicked", function (options) { this.trigger("ShowDependencies:clicked", options) }, this.model); + itemModel.on("HideDependencies:clicked", function (options) { this.trigger("HideDependencies:clicked", options) }, this.model); itemModel.on("analysis:resizeStarted", function (image) { this.trigger("analysis:resizeStarted", image) }, this.model); if (!ignoreEvents) { this.listenTo(itemView, "toolbar:showMenu", function (obj, options) { this.trigger("toolbar:showMenu", obj, options); }); } diff --git a/Desktop/html/js/table.js b/Desktop/html/js/table.js index 95a1474971..f724db2490 100644 --- a/Desktop/html/js/table.js +++ b/Desktop/html/js/table.js @@ -38,6 +38,7 @@ JASPWidgets.tableView = JASPWidgets.objectView.extend({ }, showDependenciesClicked: function() { this.model.trigger("ShowDependencies:clicked", this.model.get("name")); }, + hideDependenciesClicked: function() { this.model.trigger("HideDependencies:clicked", this.model.get("name")); }, hasLaTeXCode: function () { var optLaTeXCode = this.model.get("latexCode"); diff --git a/Desktop/mainwindow.cpp b/Desktop/mainwindow.cpp index 6528992720..9339a85509 100644 --- a/Desktop/mainwindow.cpp +++ b/Desktop/mainwindow.cpp @@ -327,6 +327,7 @@ void MainWindow::makeConnections() connect(_resultsJsInterface, &ResultsJsInterface::analysisTitleChangedInResults, _analyses, &Analyses::analysisTitleChangedInResults ); connect(_resultsJsInterface, &ResultsJsInterface::duplicateAnalysis, _analyses, &Analyses::duplicateAnalysis ); connect(_resultsJsInterface, &ResultsJsInterface::showDependenciesInAnalysis, _analyses, &Analyses::showDependenciesInAnalysis ); + connect(_resultsJsInterface, &ResultsJsInterface::hideDependenciesInAnalysis, _analyses, &Analyses::hideDependenciesInAnalysis ); connect(_resultsJsInterface, &ResultsJsInterface::showPlotEditor, _plotEditorModel, &PlotEditorModel::showPlotEditor ); connect(_resultsJsInterface, &ResultsJsInterface::resultsMetaChanged, _analyses, &Analyses::resultsMetaChanged ); connect(_resultsJsInterface, &ResultsJsInterface::allUserDataChanged, _analyses, &Analyses::allUserDataChanged ); diff --git a/Desktop/results/resultmenumodel.cpp b/Desktop/results/resultmenumodel.cpp index f10d8cab09..6be8fc304f 100644 --- a/Desktop/results/resultmenumodel.cpp +++ b/Desktop/results/resultmenumodel.cpp @@ -48,8 +48,9 @@ void ResultMenuModel::_generateCorrectlyTranslatedResultEntries() { "hasRemoveAllAnalyses", ResultMenuEntry(tr("Remove All"), "hasRemoveAllAnalyses", "close-button.png", "") }, { "hasRefreshAllAnalyses", ResultMenuEntry(tr("Refresh All"), "hasRefreshAllAnalyses", "", "") }, { "hasShowDeps", ResultMenuEntry(tr("Show Dependencies"), "hasShowDeps", "", "window.showDependenciesClicked()") }, - { "hasExportResults", ResultMenuEntry(tr("Export Results"), "hasExportResults", "", "") } - }; + { "hasExportResults", ResultMenuEntry(tr("Export Results"), "hasExportResults", "", "") }, + { "hasHideDeps", ResultMenuEntry(tr("Hide Dependencies"), "hasHideDeps", "", "window.hideDependenciesClicked()") } + }; } QVariant ResultMenuModel::data(const QModelIndex &index, int role) const @@ -126,11 +127,19 @@ void ResultMenuModel::setOptions(QString options, QStringList selected) } else if (key == "hasShowDeps") { - if(Settings::value(Settings::DEVELOPER_MODE).toBool()) + if (Settings::value(Settings::DEVELOPER_MODE).toBool()) { //It's developerMode time! - entries.push_back(separator); - entries.push_back(entry); + if (!_dependenciesShown) + { + entries.push_back(separator); + entries.push_back(entry); + } + else + { + entries.push_back(separator); + entries.push_back(_allResultEntries.find("hasHideDeps")->second); + } } } else diff --git a/Desktop/results/resultmenumodel.h b/Desktop/results/resultmenumodel.h index 026f7f9072..187c3cbd4a 100644 --- a/Desktop/results/resultmenumodel.h +++ b/Desktop/results/resultmenumodel.h @@ -51,6 +51,7 @@ class ResultMenuModel : public QAbstractListModel Q_INVOKABLE void setOptions(QString, QStringList); Q_INVOKABLE QString getJSFunction(int index) const { return _resultMenuEntries.at(index).jsFunction(); } Q_INVOKABLE QString getName(int index) const { return _resultMenuEntries.at(index).name(); } + Q_INVOKABLE void setDependenciesShown(bool value) { _dependenciesShown = value; } private slots: void _generateCorrectlyTranslatedResultEntries(); @@ -59,6 +60,7 @@ private slots: std::vector _resultMenuEntries; std::map _allResultEntries; QStringList _entriesOrder; + bool _dependenciesShown = false; }; diff --git a/Desktop/results/resultsjsinterface.h b/Desktop/results/resultsjsinterface.h index d2a3d54e2f..026cdd9bcd 100644 --- a/Desktop/results/resultsjsinterface.h +++ b/Desktop/results/resultsjsinterface.h @@ -81,6 +81,7 @@ class ResultsJsInterface : public QObject Q_INVOKABLE void removeAnalysisRequest( int id); Q_INVOKABLE void duplicateAnalysis( int id); Q_INVOKABLE void showDependenciesInAnalysis( int id, QString optionName); + Q_INVOKABLE void hideDependenciesInAnalysis( int id, QString optionName); Q_INVOKABLE void packageModified(); Q_INVOKABLE void refreshAllAnalyses(); Q_INVOKABLE void removeAllAnalyses(); From d362ee957697d556bed76ce2ac5fe0a6a7bd2bb6 Mon Sep 17 00:00:00 2001 From: Rens Dofferhoff Date: Wed, 8 Mar 2023 11:23:43 +0100 Subject: [PATCH 2/4] remove debug leftovers --- Desktop/html/js/jaspwidgets.js | 1 - 1 file changed, 1 deletion(-) diff --git a/Desktop/html/js/jaspwidgets.js b/Desktop/html/js/jaspwidgets.js index 973889ff9f..068f3ca862 100644 --- a/Desktop/html/js/jaspwidgets.js +++ b/Desktop/html/js/jaspwidgets.js @@ -967,7 +967,6 @@ JASPWidgets.Toolbar = JASPWidgets.View.extend({ hasRemove: (parent.hasRemove === undefined || parent.hasRemove()) && parent.removeMenuClicked !== undefined, hasDuplicate: (parent.hasDuplicate === undefined || parent.hasDuplicate()) && parent.duplicateMenuClicked !== undefined, hasShowDeps: (parent.hasShowDeps === undefined || parent.hasShowDeps()) && parent.showDependenciesClicked !== undefined, - hasHideDeps: true, hasCollapse: (parent.hasCollapse === undefined || parent.hasCollapse()) && parent.collapseMenuClicked !== undefined, hasLaTeXCode: (parent.hasLaTeXCode === undefined || parent.hasLaTeXCode()) && parent.latexCodeMenuClicked !== undefined, hasRemoveAllAnalyses: parent.menuName === 'All', From 219e98b87a57c688619f4857830de1525d208a45 Mon Sep 17 00:00:00 2001 From: RDOFFERHOFF Date: Mon, 17 Apr 2023 16:14:47 +0200 Subject: [PATCH 3/4] improvements --- Desktop/analysis/analyses.cpp | 18 +++++++++--------- Desktop/analysis/analyses.h | 3 +-- Desktop/components/JASP/Widgets/MainPage.qml | 6 ++++-- Desktop/html/js/analysis.js | 3 +-- Desktop/html/js/collection.js | 4 +--- Desktop/html/js/image.js | 3 +-- Desktop/html/js/main.js | 7 +++---- Desktop/html/js/object.js | 3 +-- Desktop/html/js/table.js | 3 +-- Desktop/mainwindow.cpp | 1 - Desktop/results/resultmenumodel.cpp | 16 ++++------------ Desktop/results/resultsjsinterface.h | 2 +- 12 files changed, 27 insertions(+), 42 deletions(-) diff --git a/Desktop/analysis/analyses.cpp b/Desktop/analysis/analyses.cpp index 7b6bf0fb13..5e0f347143 100644 --- a/Desktop/analysis/analyses.cpp +++ b/Desktop/analysis/analyses.cpp @@ -734,19 +734,19 @@ void Analyses::duplicateAnalysis(size_t id) analysis->refresh(); } -void Analyses::showDependenciesInAnalysis(size_t analysis_id, QString optionName) +void Analyses::showDependenciesInAnalysis(size_t analysis_id, QString optionName, bool show) { if(!get(analysis_id)) return; - get(analysis_id)->showDependenciesOnQMLForObject(optionName); -} - -void Analyses::hideDependenciesInAnalysis(size_t analysis_id, QString optionName) -{ - //just hide it for all analysis, probably desired - for (auto& analysis : _analysisMap) + if(show) + get(analysis_id)->showDependenciesOnQMLForObject(optionName); + else { - analysis.second->hideDependencies(); + //just hide it for all analysis, probably desired + for (auto& analysis : _analysisMap) + { + analysis.second->hideDependencies(); + } } } diff --git a/Desktop/analysis/analyses.h b/Desktop/analysis/analyses.h index cdd9db618c..65fe4ba737 100644 --- a/Desktop/analysis/analyses.h +++ b/Desktop/analysis/analyses.h @@ -129,8 +129,7 @@ public slots: void setCurrentFormPrevH(double currentFormPrevH); void move(int fromIndex, int toIndex); void duplicateAnalysis(size_t id); - void showDependenciesInAnalysis(size_t analysis_id, QString optionName); - void hideDependenciesInAnalysis(size_t analysis_id, QString optionName); + void showDependenciesInAnalysis(size_t analysis_id, QString optionName, bool show); void analysisTitleChangedHandler(std::string moduleName, std::string oldTitle, std::string newTitlesendRScriptHandler); void prepareForLanguageChange(); void languageChangedHandler(); diff --git a/Desktop/components/JASP/Widgets/MainPage.qml b/Desktop/components/JASP/Widgets/MainPage.qml index 54da4336e8..96de5a6ea4 100644 --- a/Desktop/components/JASP/Widgets/MainPage.qml +++ b/Desktop/components/JASP/Widgets/MainPage.qml @@ -341,8 +341,10 @@ Item function setAllUserDataFromJavascript(json) { resultsJsInterface.setAllUserDataFromJavascript(json) } function setResultsMetaFromJavascript(json) { resultsJsInterface.setResultsMetaFromJavascript(json) } function duplicateAnalysis(id) { resultsJsInterface.duplicateAnalysis(id) } - function showDependenciesInAnalysis(id, optName) { resultsJsInterface.showDependenciesInAnalysis(id, optName); resultMenuModel.setDependenciesShown(true) } - function hideDependenciesInAnalysis(id, optName) { resultsJsInterface.hideDependenciesInAnalysis(id, optName); resultMenuModel.setDependenciesShown(false) } + + function showDependenciesInAnalysis(id, optName, show) { + resultsJsInterface.showDependenciesInAnalysis(id, optName, show); + resultMenuModel.setDependenciesShown(show); } function showAnalysesMenu(options) { diff --git a/Desktop/html/js/analysis.js b/Desktop/html/js/analysis.js index 29499b3542..b9d227ad5c 100644 --- a/Desktop/html/js/analysis.js +++ b/Desktop/html/js/analysis.js @@ -101,8 +101,7 @@ JASPWidgets.AnalysisView = JASPWidgets.View.extend({ this.model.on("CustomOptions:changed", function (options) { this.trigger("optionschanged", this.model.get("id"), options) }, this); this.model.on("SaveImage:clicked", function (options) { this.trigger("saveimage", this.model.get("id"), options) }, this); this.model.on("EditImage:clicked", function (image, options) { this.imageBeingEdited = image; this.trigger("editimage", this.model.get("id"), options) }, this); - this.model.on("ShowDependencies:clicked", function (optName) { this.trigger("showDependencies", this.model.get("id"), optName) }, this); - this.model.on("HideDependencies:clicked", function (optName) { this.trigger("hideDependencies", this.model.get("id"), optName) }, this); + this.model.on("ShowDependencies:clicked", function (optName, show) { this.trigger("showDependencies", this.model.get("id"), optName, show) }, this); this.$el.on("changed:userData", this, this.onUserDataChanged); }, diff --git a/Desktop/html/js/collection.js b/Desktop/html/js/collection.js index 49c4054117..c517e2f2f7 100644 --- a/Desktop/html/js/collection.js +++ b/Desktop/html/js/collection.js @@ -87,9 +87,7 @@ JASPWidgets.collectionView = JASPWidgets.View.extend({ return true; }, - showDependenciesClicked: function() { this.model.trigger("ShowDependencies:clicked", this.model.get("name")); }, - hideDependenciesClicked: function() { this.model.trigger("HideDependencies:clicked", this.model.get("name")); }, - + showDependenciesClicked: function(show) { this.model.trigger("ShowDependencies:clicked", this.model.get("name"), show); }, collapseMenuClicked: function() { this.setCollapsedState(!this.model.get('collapsed')); }, noteOptions: function() { return [ { key: this.noteBoxKey, visible: this.noteBox.visible } ]; }, hasNotes: function() { return this.model.get('name') !== null; }, diff --git a/Desktop/html/js/image.js b/Desktop/html/js/image.js index 2e9179989e..db8f0a8395 100644 --- a/Desktop/html/js/image.js +++ b/Desktop/html/js/image.js @@ -44,8 +44,7 @@ JASPWidgets.imageView = JASPWidgets.objectView.extend({ hasCollapse: function() { return this.$el.hasClass('jasp-collection-item') === false; }, saveImageClicked: function() { this.model.trigger("SaveImage:clicked", { data: this.model.get("data"), width: this.model.get("width"), height: this.model.get("height"), name: this.model.get("name") }); }, editImageClicked: function() { this.model.trigger("EditImage:clicked", this.myView, { data: this.model.get("data"), width: this.model.get("width"), height: this.model.get("height"), name: this.model.get("name"), title: this.model.get("title"), type: "interactive" }); }, - showDependenciesClicked: function() { this.model.trigger("ShowDependencies:clicked", this.model.get("name")); }, - hideDependenciesClicked: function() { this.model.trigger("HideDependencies:clicked", this.model.get("name")); }, + showDependenciesClicked: function(show) { this.model.trigger("ShowDependencies:clicked", this.model.get("name"), show); }, menuName: "Plot", diff --git a/Desktop/html/js/main.js b/Desktop/html/js/main.js index e305061d78..b620165553 100644 --- a/Desktop/html/js/main.js +++ b/Desktop/html/js/main.js @@ -145,13 +145,13 @@ $(document).ready(function () { window.editImageClicked = function () { window.menuObjectFunctionCaller( window.menuObject.editImageClicked .bind(window.menuObject) ); } window.editTitleMenuClicked = function () { window.menuObjectFunctionCaller( window.menuObject.editTitleClicked .bind(window.menuObject) ); } window.collapseMenuClicked = function () { window.menuObjectFunctionCaller( window.menuObject.collapseMenuClicked .bind(window.menuObject) ); } - window.showDependenciesClicked = function () { window.menuObjectFunctionCaller( window.menuObject.showDependenciesClicked .bind(window.menuObject) ); } - window.hideDependenciesClicked = function () { window.menuObjectFunctionCaller( window.menuObject.hideDependenciesClicked .bind(window.menuObject) ); } window.duplicateMenuClicked = function () { window.menuObjectFunctionCaller( window.menuObject.duplicateMenuClicked .bind(window.menuObject) ); } window.removeMenuClicked = function () { window.menuObjectFunctionCaller( window.menuObject.removeMenuClicked .bind(window.menuObject) ); } window.citeMenuClicked = function () { window.menuObjectFunctionCaller( window.menuObject.citeMenuClicked .bind(window.menuObject), "Citations copied to clipboard" ); } window.latexCodeMenuClicked = function () { window.menuObjectFunctionCaller( window.menuObject.latexCodeMenuClicked .bind(window.menuObject), "LaTeX code copied to clipboard"); } + window.showDependenciesClicked = function (show) { window.menuObject.showDependenciesClicked(show); } + window.notesMenuClicked = function (noteType, visibility) { if (window.menuObject.notesMenuClicked && window.menuObject.notesMenuClicked(noteType, visibility)) window.menuObject.toolbar.displayMessage(); @@ -471,8 +471,7 @@ $(document).ready(function () { jaspWidget.on("optionschanged", function (id, options) { jasp.analysisChangedDownstream(id, JSON.stringify(options)) }); jaspWidget.on("saveimage", function (id, options) { jasp.analysisSaveImage(id, JSON.stringify(options)) }); jaspWidget.on("editimage", function (id, options) { jasp.analysisEditImage(id, JSON.stringify(options)) }); - jaspWidget.on("showDependencies", function (id, optName) { jasp.showDependenciesInAnalysis(id, optName); }); - jaspWidget.on("hideDependencies", function (id, optName) { jasp.hideDependenciesInAnalysis(id, optName); }); + jaspWidget.on("showDependencies", function (id, optName, show) { jasp.showDependenciesInAnalysis(id, optName, show); }); jaspWidget.on("analysis:remove", function (id) { jasp.removeAnalysisRequest(id); }); jaspWidget.on("analysis:duplicate", function (id) { jasp.duplicateAnalysis(id); }); jaspWidget.on("analysis:userDataChanged", function () { window.getAllUserData(); }); diff --git a/Desktop/html/js/object.js b/Desktop/html/js/object.js index 509d568b59..0555a4546f 100644 --- a/Desktop/html/js/object.js +++ b/Desktop/html/js/object.js @@ -72,8 +72,7 @@ JASPWidgets.objectConstructor = function (results, params, ignoreEvents) { itemModel.on("CustomOptions:changed", function (options) { this.trigger("CustomOptions:changed", options) }, this.model); itemModel.on("SaveImage:clicked", function (options) { this.trigger("SaveImage:clicked", options) }, this.model); itemModel.on("EditImage:clicked", function (image, options) { this.trigger("EditImage:clicked", image, options) }, this.model); - itemModel.on("ShowDependencies:clicked", function (options) { this.trigger("ShowDependencies:clicked", options) }, this.model); - itemModel.on("HideDependencies:clicked", function (options) { this.trigger("HideDependencies:clicked", options) }, this.model); + itemModel.on("ShowDependencies:clicked", function (options, show) { this.trigger("ShowDependencies:clicked", options, show) }, this.model); itemModel.on("analysis:resizeStarted", function (image) { this.trigger("analysis:resizeStarted", image) }, this.model); if (!ignoreEvents) { this.listenTo(itemView, "toolbar:showMenu", function (obj, options) { this.trigger("toolbar:showMenu", obj, options); }); } diff --git a/Desktop/html/js/table.js b/Desktop/html/js/table.js index f724db2490..fd721c7222 100644 --- a/Desktop/html/js/table.js +++ b/Desktop/html/js/table.js @@ -37,8 +37,7 @@ JASPWidgets.tableView = JASPWidgets.objectView.extend({ return true; }, - showDependenciesClicked: function() { this.model.trigger("ShowDependencies:clicked", this.model.get("name")); }, - hideDependenciesClicked: function() { this.model.trigger("HideDependencies:clicked", this.model.get("name")); }, + showDependenciesClicked: function(show) { this.model.trigger("ShowDependencies:clicked", this.model.get("name"), show); }, hasLaTeXCode: function () { var optLaTeXCode = this.model.get("latexCode"); diff --git a/Desktop/mainwindow.cpp b/Desktop/mainwindow.cpp index 9339a85509..6528992720 100644 --- a/Desktop/mainwindow.cpp +++ b/Desktop/mainwindow.cpp @@ -327,7 +327,6 @@ void MainWindow::makeConnections() connect(_resultsJsInterface, &ResultsJsInterface::analysisTitleChangedInResults, _analyses, &Analyses::analysisTitleChangedInResults ); connect(_resultsJsInterface, &ResultsJsInterface::duplicateAnalysis, _analyses, &Analyses::duplicateAnalysis ); connect(_resultsJsInterface, &ResultsJsInterface::showDependenciesInAnalysis, _analyses, &Analyses::showDependenciesInAnalysis ); - connect(_resultsJsInterface, &ResultsJsInterface::hideDependenciesInAnalysis, _analyses, &Analyses::hideDependenciesInAnalysis ); connect(_resultsJsInterface, &ResultsJsInterface::showPlotEditor, _plotEditorModel, &PlotEditorModel::showPlotEditor ); connect(_resultsJsInterface, &ResultsJsInterface::resultsMetaChanged, _analyses, &Analyses::resultsMetaChanged ); connect(_resultsJsInterface, &ResultsJsInterface::allUserDataChanged, _analyses, &Analyses::allUserDataChanged ); diff --git a/Desktop/results/resultmenumodel.cpp b/Desktop/results/resultmenumodel.cpp index 6be8fc304f..aead651276 100644 --- a/Desktop/results/resultmenumodel.cpp +++ b/Desktop/results/resultmenumodel.cpp @@ -49,7 +49,6 @@ void ResultMenuModel::_generateCorrectlyTranslatedResultEntries() { "hasRefreshAllAnalyses", ResultMenuEntry(tr("Refresh All"), "hasRefreshAllAnalyses", "", "") }, { "hasShowDeps", ResultMenuEntry(tr("Show Dependencies"), "hasShowDeps", "", "window.showDependenciesClicked()") }, { "hasExportResults", ResultMenuEntry(tr("Export Results"), "hasExportResults", "", "") }, - { "hasHideDeps", ResultMenuEntry(tr("Hide Dependencies"), "hasHideDeps", "", "window.hideDependenciesClicked()") } }; } @@ -129,17 +128,10 @@ void ResultMenuModel::setOptions(QString options, QStringList selected) { if (Settings::value(Settings::DEVELOPER_MODE).toBool()) { - //It's developerMode time! - if (!_dependenciesShown) - { - entries.push_back(separator); - entries.push_back(entry); - } - else - { - entries.push_back(separator); - entries.push_back(_allResultEntries.find("hasHideDeps")->second); - } + entry.setDisplayText(_dependenciesShown ? "Hide Dependencies" : "Show Dependencies"); + entry.setJSFunction(QString("window.showDependenciesClicked(%1)").arg(_dependenciesShown ? "false" : "true")); + entries.push_back(separator); + entries.push_back(entry); } } else diff --git a/Desktop/results/resultsjsinterface.h b/Desktop/results/resultsjsinterface.h index 026cdd9bcd..945e4edb88 100644 --- a/Desktop/results/resultsjsinterface.h +++ b/Desktop/results/resultsjsinterface.h @@ -80,7 +80,7 @@ class ResultsJsInterface : public QObject Q_INVOKABLE void analysisTitleChangedInResults( int id, QString title); Q_INVOKABLE void removeAnalysisRequest( int id); Q_INVOKABLE void duplicateAnalysis( int id); - Q_INVOKABLE void showDependenciesInAnalysis( int id, QString optionName); + Q_INVOKABLE void showDependenciesInAnalysis( int id, QString optionName, bool show); Q_INVOKABLE void hideDependenciesInAnalysis( int id, QString optionName); Q_INVOKABLE void packageModified(); Q_INVOKABLE void refreshAllAnalyses(); From b06f1d42b1f3f377e8a15a1cbb52711f8b3bc243 Mon Sep 17 00:00:00 2001 From: Rens Dofferhoff Date: Tue, 18 Apr 2023 13:03:20 +0200 Subject: [PATCH 4/4] oops --- Desktop/analysis/analysis.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Desktop/analysis/analysis.cpp b/Desktop/analysis/analysis.cpp index 0691a7dfc0..ebf3cadd49 100644 --- a/Desktop/analysis/analysis.cpp +++ b/Desktop/analysis/analysis.cpp @@ -579,6 +579,7 @@ void Analysis::hideDependencies() { _analysisForm->setMustBe({}); _analysisForm->setMustContain({}); + _showDepsName = ""; }