diff --git a/CMakeLists.txt b/CMakeLists.txt index 5e68789c2b..0e492bd393 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,7 @@ if (UNIX) add_compile_options(-Werror=return-type) endif() +set(CMAKE_POSITION_INDEPENDENT_CODE ON) if(APPLE) @@ -58,7 +59,7 @@ project( HOMEPAGE_URL "http://jasp-stats.org/" DESCRIPTION "A fresh way to do statistics") -#needed for R-Interface and QMLComponents for them to build stuff porperly when *inside* JASP +#needed for R-Interface and QMLComponents for them to build stuff properly when *inside* JASP add_definitions(-DBUILDING_JASP) set(BUILDING_JASP TRUE) @@ -93,6 +94,13 @@ include(Config) # ------ Conan Dependency Manager include(Conan) +# Conan set the CMAKE_MSVC_RUNTIME_LIBRARY to MultiThreadedDLL (this adds the /MD flag, cf conan_toolchain.cmake) +# But on debug mode it does not set it to the MultiThreadedDebugDLL (/MDd): this can lead to a crash if a library uses a Qt function in a static method, as in DynamicRuntimeInfo) +if(WIN32 AND (CMAKE_MSVC_RUNTIME_LIBRARY STREQUAL "$<$:MultiThreadedDLL>")) + set(CMAKE_MSVC_RUNTIME_LIBRARY "$<$:MultiThreadedDebugDLL>") + message(STATUS "CMAKE_MSVC_RUNTIME_LIBRARY is set to ${CMAKE_MSVC_RUNTIME_LIBRARY}") +endif() + # ------ JASP Config diff --git a/Common/CMakeLists.txt b/Common/CMakeLists.txt index 42afc5c98e..7266995f3a 100644 --- a/Common/CMakeLists.txt +++ b/Common/CMakeLists.txt @@ -15,7 +15,7 @@ message(STATUS "appinfo.cpp is successfully generated...") file(GLOB_RECURSE HEADER_FILES "${CMAKE_CURRENT_LIST_DIR}/*.h") file(GLOB_RECURSE SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/*.cpp") -add_library(Common ${SOURCE_FILES} ${HEADER_FILES}) +add_library(Common STATIC ${SOURCE_FILES} ${HEADER_FILES}) if(LINUX) target_link_libraries(Common PUBLIC ${_LIB_RT}) @@ -23,13 +23,14 @@ if(LINUX) endif() target_include_directories( - Common - PUBLIC # JASP - ${PROJECT_SOURCE_DIR}/Common/jaspColumnEncoder - # R - ${R_INCLUDE_PATH} - ${R_HOME_PATH}/include - ${RCPP_PATH}/include + Common + PUBLIC + ${PROJECT_SOURCE_DIR}/Common/jaspColumnEncoder + # R + ${R_INCLUDE_PATH} + ${R_HOME_PATH}/include + ${RCPP_PATH}/include + ${Boost_INCLUDE_DIRS} ) target_link_libraries( @@ -40,13 +41,12 @@ target_link_libraries( Boost::timer Boost::chrono $<$:ntdll> - $<$:Qt::Core> ) target_compile_definitions( - Common PUBLIC $<$:JASP_USES_QT_HERE> + Common PUBLIC $<$:PROFILE_JASP> - JSONCPP_NO_LOCALE_SUPPORT ) + JSONCPP_NO_LOCALE_SUPPORT ) if(WINDOWS) target_compile_definitions( @@ -59,4 +59,5 @@ if(IWYU_EXECUTABLE AND RUN_IWYU) set_target_properties(Common PROPERTIES CXX_INCLUDE_WHAT_YOU_USE ${IWYU_EXECUTABLE}) endif() + list(POP_BACK CMAKE_MESSAGE_CONTEXT) diff --git a/Common/jaspColumnEncoder b/Common/jaspColumnEncoder index ac8dadb07e..741a5624a3 160000 --- a/Common/jaspColumnEncoder +++ b/Common/jaspColumnEncoder @@ -1 +1 @@ -Subproject commit ac8dadb07ed7300fa19d334625063f519fe702fa +Subproject commit 741a5624a394766941e58f002b415cc826ace36c diff --git a/Common/log.h b/Common/log.h index 278cb7ae8a..9de28875b5 100644 --- a/Common/log.h +++ b/Common/log.h @@ -44,12 +44,12 @@ class Log static void redirectStdOut(); static const char * getTimestamp(); - static logType _default; - static logType _where; - static std::string _logFilePath; - static logError _logError; - static int _stdoutfd, - _engineNo; + static logType _default; + static logType _where; + static std::string _logFilePath; + static logError _logError; + static int _stdoutfd, + _engineNo; static std::ostream* _nullStream; static std::ofstream _logFile; diff --git a/CommonData/CMakeLists.txt b/CommonData/CMakeLists.txt index 7cfbc97e9a..5024b96491 100644 --- a/CommonData/CMakeLists.txt +++ b/CommonData/CMakeLists.txt @@ -14,7 +14,7 @@ file(GLOB_RECURSE HEADER_FILES "${CMAKE_CURRENT_LIST_DIR}/*.h") file(GLOB_RECURSE SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/*.cpp") file(GLOB_RECURSE SQL_FILES "${CMAKE_CURRENT_LIST_DIR}/*.sql") -add_library(CommonData ${SOURCE_FILES} ${HEADER_FILES} ${SQL_FILES}) +add_library(CommonData STATIC ${SOURCE_FILES} ${HEADER_FILES} ${SQL_FILES}) if(LINUX) @@ -33,19 +33,21 @@ target_include_directories( ${R_INCLUDE_PATH} ${R_HOME_PATH}/include ${RCPP_PATH}/include + ${Boost_INCLUDE_DIRS} + PRIVATE + SQLite::SQLite3 ) target_link_libraries( - CommonData - PUBLIC - Common - LibArchive::LibArchive - SQLite::SQLite3 - # - $<$:Qt::Core>) + CommonData + PUBLIC + LibArchive::LibArchive +# Common + SQLite::SQLite3 +) target_compile_definitions( - CommonData PUBLIC $<$:JASP_USES_QT_HERE> + CommonData PUBLIC $<$:PROFILE_JASP> JSONCPP_NO_LOCALE_SUPPORT ) diff --git a/CommonData/column.cpp b/CommonData/column.cpp index 7c6b59eb4c..b7ce5d22b5 100644 --- a/CommonData/column.cpp +++ b/CommonData/column.cpp @@ -4,6 +4,7 @@ #include "dataset.h" #include "columnutils.h" #include "databaseinterface.h" +#include bool Column::_autoSortByValuesByDefault = true; @@ -435,7 +436,7 @@ stringset Column::mergeOldMissingDataMap(const Json::Value &missingData) stringset foundEmpty; std::map displayToLabel; //Keep track of which labels we added because only those could possibly be derived from missingDataMap - for(qsizetype r=0; r<_ints.size(); r++) + for(size_t r=0; r<_ints.size(); r++) { const std::string row = std::to_string(r); if(missingData.isMember(row)) @@ -940,7 +941,7 @@ int Column::labelsTempCount() _labelsTemp . push_back(doubleLabel); _labelsTempDbls . push_back(dbl); _labelsTempToIndex[doubleLabel] = _labelsTemp.size()-1; - _labelsTempMaxWidth = std::max(_labelsTempMaxWidth, qsizetype(_labelsTemp[_labelsTemp.size()-1].size())); + _labelsTempMaxWidth = std::max(_labelsTempMaxWidth, size_t(_labelsTemp[_labelsTemp.size()-1].size())); _labelsTempNumerics ++; } } @@ -983,7 +984,7 @@ stringvec Column::nonFilteredLevels() levels.insert(label->label()); } else if(!isEmptyValue(_dbls[r])) - levels.insert(ColumnUtils::doubleToString(_dbls[r])); + levels.insert(ColumnUtils::doubleToString(_dbls[r])); } // Use the right label order @@ -1777,7 +1778,7 @@ bool Column::labelsRemoveOrphans() return idsNotUsed.size(); } -std::set Column::labelsMoveRows(std::vector rows, bool up) +std::set Column::labelsMoveRows(std::vector rows, bool up) { JASPTIMER_SCOPE(Column::labelsMoveRows); @@ -1785,7 +1786,7 @@ std::set Column::labelsMoveRows(std::vector rows, bool up) std::sort(rows.begin(), rows.end(), [&](const auto & l, const auto & r) { return up ? l < r : r < l; }); - replaceDoublesTillLabelsRowWithLabels(std::min(qsizetype(labelsTempCount()), rows.back() + 1)); + replaceDoublesTillLabelsRowWithLabels(std::min(size_t(labelsTempCount()), rows.back() + 1)); std::vector new_labels(_labels.begin(), _labels.end()); @@ -2020,7 +2021,7 @@ void Column::upgradeExtractDoublesIntsFromLabels() { _dbls.resize(_ints.size()); - for(qsizetype r=0; r<_dbls.size(); r++) + for(size_t r=0; r<_dbls.size(); r++) { Label * label = labelByIntsId(_ints[r]); @@ -2318,7 +2319,7 @@ bool Column::isEmptyValue(const double val) const return _emptyValues->isEmptyValue(val); } -qsizetype Column::getMaximumWidthInCharactersIncludingShadow() +size_t Column::getMaximumWidthInCharactersIncludingShadow() { bool thereIsAShadow = false; @@ -2337,9 +2338,9 @@ qsizetype Column::getMaximumWidthInCharactersIncludingShadow() } -qsizetype Column::getMaximumWidthInCharacters(bool fancyEmptyValue, bool valuesPlease, qsizetype extraPad) +size_t Column::getMaximumWidthInCharacters(bool fancyEmptyValue, bool valuesPlease, size_t extraPad) { - qsizetype maxWidth = 0; + size_t maxWidth = 0; std::string takeWidth; //Call labelsTempCount() to both find out how many there are and generate them if necessary @@ -2349,7 +2350,7 @@ qsizetype Column::getMaximumWidthInCharacters(bool fancyEmptyValue, bool valuesP for(Label * label : labels()) { takeWidth = !valuesPlease ? label->label() : label->originalValueAsString(fancyEmptyValue); - maxWidth = std::max(maxWidth, qsizetype(stringUtils::approximateVisualLength(takeWidth))); + maxWidth = std::max(maxWidth, size_t(stringUtils::approximateVisualLength(takeWidth))); } diff --git a/CommonData/column.h b/CommonData/column.h index 8f0cc41ddb..0991921b8b 100644 --- a/CommonData/column.h +++ b/CommonData/column.h @@ -7,7 +7,7 @@ #include "utils.h" #include #include "emptyvalues.h" - +#include class DataSet; class Analysis; @@ -133,7 +133,7 @@ class Column : public DataSetBaseNode stringvec nonFilteredLevels(); void nonFilteredCountersReset(); - std::set labelsMoveRows(std::vector rows, bool up); + std::set labelsMoveRows(std::vector rows, bool up); void labelsReverse(); void valuesReverse(); void labelsOrderByValue(bool doDbUpdateEtc=true); @@ -226,8 +226,8 @@ class Column : public DataSetBaseNode bool isEmptyValue( const std::string & val) const; bool isEmptyValue( const double val) const; - qsizetype getMaximumWidthInCharactersIncludingShadow(); - qsizetype getMaximumWidthInCharacters(bool shortenAndFancyEmptyValue, bool valuesPlease, qsizetype extraPad = 4); ///< Tries to take into consideration that utf-8 can have more characters than codepoints and compensates for it + size_t getMaximumWidthInCharactersIncludingShadow(); + size_t getMaximumWidthInCharacters(bool shortenAndFancyEmptyValue, bool valuesPlease, size_t extraPad = 4); ///< Tries to take into consideration that utf-8 can have more characters than codepoints and compensates for it columnType resetValues(int thresholdScale); ///< "Reimport" the values it already has with a possibly different threshold of values stringset mergeOldMissingDataMap(const Json::Value & missingData); ///< <0.19 JASP collected the removed empty values values in a map in a json object... We need to be able to read at least 0.18.3 so here this function that absorbs such a map and adds any required labels. It does not add the empty values itself though! @@ -258,7 +258,7 @@ class Column : public DataSetBaseNode _labelsTempRevision = -1, ///< When were the "temporary labels" created? _labelsTempNumerics = 0, ///< Use the labelsTemp step to calculate the amount of numeric labels _highestIntsId = -1; - qsizetype _labelsTempMaxWidth = 0; + size_t _labelsTempMaxWidth = 0; stringvec _labelsTemp; ///< Contains displaystring for labels. Used to allow people to edit "double" labels. Initialized when necessary doublevec _labelsTempDbls; strintmap _labelsTempToIndex; diff --git a/CommonData/columnutils.h b/CommonData/columnutils.h index 761ac304a2..b32ae75fe5 100644 --- a/CommonData/columnutils.h +++ b/CommonData/columnutils.h @@ -2,9 +2,6 @@ #define COLUMNUTILS_H #include -#include -#include -#include #include "utils.h" class ColumnUtils diff --git a/CommonData/databaseinterface.cpp b/CommonData/databaseinterface.cpp index 3cb6174560..e254c5969d 100644 --- a/CommonData/databaseinterface.cpp +++ b/CommonData/databaseinterface.cpp @@ -1,10 +1,12 @@ #include "databaseinterface.h" #include "columntype.h" #include "tempfiles.h" +#include #include "version.h" #include "dataset.h" #include "timers.h" #include "utils.h" +#include #include "log.h" DatabaseInterface * DatabaseInterface::_singleton = nullptr; @@ -302,7 +304,7 @@ bool DatabaseInterface::filterSelect(int filterIndex, boolvec & bools) [&](sqlite3_stmt *){ }, [&](size_t row, sqlite3_stmt * stmt) { int val = sqlite3_column_int(stmt, 0); - changed = changed || bools[row] != val; + changed = changed || bools[row] != bool(val); bools[row] = val; }); } @@ -1367,6 +1369,17 @@ std::string DatabaseInterface::dbFile(bool onlyName) const return onlyName ? fileName : Utils::osPath(TempFiles::sessionDirName() + "/" + fileName).string(); } +DatabaseInterface *DatabaseInterface::singleton() +{ + if(!_singleton) + { + Log::log() << "No DatabaseInterface::singleton available here yet, creating an interface for internal.sqlite without recreating the dbstructure" << std::endl; + _singleton = new DatabaseInterface(false); + } + + return _singleton; +} + void DatabaseInterface::runQuery(const std::string & query, std::function bindParameters, std::function processRow) { JASPTIMER_SCOPE(DatabaseInterface::runQuery); diff --git a/CommonData/databaseinterface.h b/CommonData/databaseinterface.h index 26d366f93e..64262e0c95 100644 --- a/CommonData/databaseinterface.h +++ b/CommonData/databaseinterface.h @@ -2,16 +2,17 @@ #define DATABASEINTERFACE_H #include "columntype.h" -#include #include #include "utils.h" #include #include "version.h" - +#include class DataSet; class Column; class DatabaseInterface; +struct sqlite3_stmt; +struct sqlite3; ///Single point of interaction with sqlite, can later be turned into an interface for supporting other sql /// @@ -60,7 +61,7 @@ class DatabaseInterface ~DatabaseInterface(); std::string dbFile(bool onlyPostfix = false) const; ///< Convenience function for getting the filename where sqlite db should be - static DatabaseInterface * singleton() { return _singleton; } ///< There can be only one! https://www.youtube.com/watch?v=sqcLjcSloXs + static DatabaseInterface * singleton(); ///< There can be only one! https://www.youtube.com/watch?v=sqcLjcSloXs bool hasConnection() { return _db; } void upgradeDBFromVersion(Version originalVersion); ///< Ensures that the database has all the fields configured as required for the current JASP version, useful when loading older sqlite-containing jasp-files diff --git a/CommonData/dataset.cpp b/CommonData/dataset.cpp index 2600b129c8..b9375b03c3 100644 --- a/CommonData/dataset.cpp +++ b/CommonData/dataset.cpp @@ -1,5 +1,5 @@ #include "log.h" -#include +#include #include "timers.h" #include "dataset.h" #include "columnencoder.h" @@ -200,7 +200,7 @@ Column * DataSet::newColumn(const std::string &name) return col; } -qsizetype DataSet::getMaximumColumnWidthInCharacters(size_t columnIndex) const +size_t DataSet::getMaximumColumnWidthInCharacters(size_t columnIndex) const { if(columnIndex >= columnCount()) return 0; diff --git a/CommonData/dataset.h b/CommonData/dataset.h index 1c5165a18c..cf43cbb0ef 100644 --- a/CommonData/dataset.h +++ b/CommonData/dataset.h @@ -52,7 +52,7 @@ class DataSet : public DataSetBaseNode bool allColumnsPassFilter() const; - qsizetype getMaximumColumnWidthInCharacters(size_t columnIndex) const; + size_t getMaximumColumnWidthInCharacters(size_t columnIndex) const; stringvec getColumnNames(); void setDataFile( const std::string & dataFilePath, long timestamp) { _dataFilePath = dataFilePath; _dataFileTimestamp = timestamp; dbUpdate(); } diff --git a/CommonData/datasetbasenode.h b/CommonData/datasetbasenode.h index 9f2d513949..1df498ab5d 100644 --- a/CommonData/datasetbasenode.h +++ b/CommonData/datasetbasenode.h @@ -2,6 +2,7 @@ #define DATASETBASENODE_H #include "enumutilities.h" +#include DECLARE_ENUM(dataSetBaseNodeType, unknown, dataSet, data, filters, filter, column, label); diff --git a/CommonData/filter.cpp b/CommonData/filter.cpp index 439fe4cbbc..25744bcfae 100644 --- a/CommonData/filter.cpp +++ b/CommonData/filter.cpp @@ -1,3 +1,4 @@ +#include #include "filter.h" #include "timers.h" #include "dataset.h" diff --git a/CommonData/label.cpp b/CommonData/label.cpp index cf3949fddc..17c43145f7 100644 --- a/CommonData/label.cpp +++ b/CommonData/label.cpp @@ -1,5 +1,6 @@ #include "label.h" #include "column.h" +#include #include "timers.h" #include "databaseinterface.h" diff --git a/Desktop/CMakeLists.txt b/Desktop/CMakeLists.txt index 9aabf55445..fd7d181d15 100644 --- a/Desktop/CMakeLists.txt +++ b/Desktop/CMakeLists.txt @@ -51,7 +51,7 @@ set( "${PROJECT_SOURCE_DIR}/QMLComponents/components" CACHE PATH - "Path used to locate CMake modules by Qt Creator" + "Path used to locate QML modules by Qt Creator" FORCE ) @@ -94,7 +94,7 @@ target_include_directories( PUBLIC ${CMAKE_CURRENT_LIST_DIR} ${PROJECT_SOURCE_DIR}/Common - ${PROJECT_SOURCE_DIR}/Common/jaspColumnEncoder + ${PROJECT_SOURCE_DIR}/Common/jaspColumnEncoder ${PROJECT_SOURCE_DIR}/CommonData ${PROJECT_SOURCE_DIR}/QMLComponents # ReadStat @@ -110,10 +110,10 @@ target_include_directories( target_link_libraries( JASP - PUBLIC - Common - CommonData - QMLComponents + PUBLIC + Common + CommonData + QMLComponentsplugin Qt::Core Qt::Gui Qt::OpenGL @@ -157,7 +157,6 @@ target_link_libraries( $<$:${_R_Framework}> ) - target_compile_definitions(JASP PUBLIC JASP_USES_QT_HERE) if(NOT WINDOWS) @@ -165,9 +164,9 @@ if(NOT WINDOWS) target_link_libraries( JASP - PUBLIC - # When using Conan, we need to provide the static libraries directly, for some reason! - ${Iconv_LIBRARY_LIST}) + PRIVATE + # When using Conan, we need to provide the static libraries directly, for some reason! + ${Iconv_LIBRARY_LIST}) endif() if(LINUX) @@ -218,7 +217,7 @@ qt_add_resources( file(GLOB_RECURSE QML_RESOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/components/*") qt_add_resources( JASP - "widgets" + "widgetsandtheme" PREFIX "/" BASE diff --git a/QMLComponents/components/JASP/Theme/DarkTheme.qml b/Desktop/components/JASP/Theme/DarkTheme.qml similarity index 100% rename from QMLComponents/components/JASP/Theme/DarkTheme.qml rename to Desktop/components/JASP/Theme/DarkTheme.qml diff --git a/QMLComponents/components/JASP/Theme/Theme.qml b/Desktop/components/JASP/Theme/Theme.qml similarity index 98% rename from QMLComponents/components/JASP/Theme/Theme.qml rename to Desktop/components/JASP/Theme/Theme.qml index a4212861ec..1d29f310c3 100644 --- a/QMLComponents/components/JASP/Theme/Theme.qml +++ b/Desktop/components/JASP/Theme/Theme.qml @@ -17,9 +17,9 @@ // -import QtQuick 2.12 -import QtQuick.Controls 2.12 -import JASP 1.0 +import QtQuick +import QtQuick.Controls +import JASP JaspTheme { diff --git a/QMLComponents/components/JASP/Theme/qmldir b/Desktop/components/JASP/Theme/qmldir similarity index 100% rename from QMLComponents/components/JASP/Theme/qmldir rename to Desktop/components/JASP/Theme/qmldir diff --git a/Desktop/components/JASP/Widgets/AnalysisFormExpander.qml b/Desktop/components/JASP/Widgets/AnalysisFormExpander.qml index 4bba96abfe..09d527e3e5 100644 --- a/Desktop/components/JASP/Widgets/AnalysisFormExpander.qml +++ b/Desktop/components/JASP/Widgets/AnalysisFormExpander.qml @@ -1,6 +1,6 @@ -import QtQuick 2.11 -import QtQuick.Controls 2.4 -import JASP.Controls 1.0 +import QtQuick +import QtQuick.Controls +import JASP.Controls import Qt5Compat.GraphicalEffects DropArea diff --git a/Desktop/components/JASP/Widgets/AnalysisForms.qml b/Desktop/components/JASP/Widgets/AnalysisForms.qml index a7db37f252..a1eb8de20f 100644 --- a/Desktop/components/JASP/Widgets/AnalysisForms.qml +++ b/Desktop/components/JASP/Widgets/AnalysisForms.qml @@ -1,7 +1,6 @@ -import QtQuick 2.11 -import QtQuick.Controls 2.4 +import QtQuick import JASP -import JASP.Controls 1.0 +import JASP.Controls FocusScope diff --git a/Desktop/components/JASP/Widgets/ComputeColumnWindow.qml b/Desktop/components/JASP/Widgets/ComputeColumnWindow.qml index 300a5379fe..3e3415a372 100644 --- a/Desktop/components/JASP/Widgets/ComputeColumnWindow.qml +++ b/Desktop/components/JASP/Widgets/ComputeColumnWindow.qml @@ -1,7 +1,7 @@ -import QtQuick 2.7 -import QtQuick.Controls 2.12 -import QtQuick.Layouts 1.3 -import JASP.Controls 1.0 as JaspControls +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import JASP.Controls as JaspControls import JASP import "FilterConstructor" @@ -105,7 +105,7 @@ FocusScope { id: computeColumnEdit - RSyntaxHighlighterQuick + JaspControls.RSyntaxHighlighterQuick { textDocument: computeColumnEdit.textDocument } diff --git a/Desktop/components/JASP/Widgets/CreateComputeColumnDialog.qml b/Desktop/components/JASP/Widgets/CreateComputeColumnDialog.qml index 9f0d3725f5..c0aa9ef77c 100644 --- a/Desktop/components/JASP/Widgets/CreateComputeColumnDialog.qml +++ b/Desktop/components/JASP/Widgets/CreateComputeColumnDialog.qml @@ -1,5 +1,5 @@ -import QtQuick 2.9 -import QtQuick.Controls 2.2 +import QtQuick +import QtQuick.Controls import JASP.Controls as JaspControls diff --git a/Desktop/components/JASP/Widgets/CustomMenu.qml b/Desktop/components/JASP/Widgets/CustomMenu.qml index 555175b09b..1fa26022c7 100644 --- a/Desktop/components/JASP/Widgets/CustomMenu.qml +++ b/Desktop/components/JASP/Widgets/CustomMenu.qml @@ -16,9 +16,9 @@ // . // -import QtQuick 2.15 -import QtQuick.Controls 2.4 -import JASP.Controls 1.0 as JASPControl +import QtQuick +import QtQuick.Controls +import JASP.Controls as JASPControl import Qt5Compat.GraphicalEffects FocusScope diff --git a/Desktop/components/JASP/Widgets/DataPanel.qml b/Desktop/components/JASP/Widgets/DataPanel.qml index b48f1b6d71..72ed16a0a5 100644 --- a/Desktop/components/JASP/Widgets/DataPanel.qml +++ b/Desktop/components/JASP/Widgets/DataPanel.qml @@ -1,6 +1,6 @@ -import QtQuick.Controls 6.0 -import QtQuick.Layouts 1.0 -import QtQuick 2.15 +import QtQuick.Controls +import QtQuick.Layouts +import QtQuick Rectangle diff --git a/Desktop/components/JASP/Widgets/EnginesWindow.qml b/Desktop/components/JASP/Widgets/EnginesWindow.qml index 0398ca3eac..9889b989e4 100644 --- a/Desktop/components/JASP/Widgets/EnginesWindow.qml +++ b/Desktop/components/JASP/Widgets/EnginesWindow.qml @@ -1,8 +1,8 @@ -import QtQuick 2.12 -import QtQuick.Window 2.12 -import QtWebEngine 1.8 -import JASP.Widgets 1.0 -import JASP.Controls 1.0 +import QtQuick +import QtQuick.Window +import QtWebEngine +import JASP.Widgets +import JASP.Controls Window { diff --git a/Desktop/components/JASP/Widgets/FileMenu/BreadCrumbs.qml b/Desktop/components/JASP/Widgets/FileMenu/BreadCrumbs.qml index f6673df052..9baeb31110 100644 --- a/Desktop/components/JASP/Widgets/FileMenu/BreadCrumbs.qml +++ b/Desktop/components/JASP/Widgets/FileMenu/BreadCrumbs.qml @@ -1,9 +1,8 @@ -import QtQuick 2.11 -import QtQuick.Layouts 1.3 -import QtQuick.Controls 2.4 - -import JASP.Widgets 1.0 -import JASP.Controls 1.0 +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import JASP.Widgets +import JASP.Controls ListView { diff --git a/Desktop/components/JASP/Widgets/FileMenu/Computer.qml b/Desktop/components/JASP/Widgets/FileMenu/Computer.qml index 0012f4c30e..47246aced1 100644 --- a/Desktop/components/JASP/Widgets/FileMenu/Computer.qml +++ b/Desktop/components/JASP/Widgets/FileMenu/Computer.qml @@ -1,9 +1,8 @@ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Layouts 1.3 - -import JASP.Controls 1.0 -import JASP.Widgets 1.0 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import JASP.Controls +import JASP.Widgets Item { diff --git a/Desktop/components/JASP/Widgets/FileMenu/CurrentFile.qml b/Desktop/components/JASP/Widgets/FileMenu/CurrentFile.qml index 3be5ff1071..de95e80313 100644 --- a/Desktop/components/JASP/Widgets/FileMenu/CurrentFile.qml +++ b/Desktop/components/JASP/Widgets/FileMenu/CurrentFile.qml @@ -1,5 +1,5 @@ -import QtQuick 2.9 -import QtQuick.Controls 2.2 +import QtQuick +import QtQuick.Controls Item diff --git a/Desktop/components/JASP/Widgets/FileMenu/DataLibrary.qml b/Desktop/components/JASP/Widgets/FileMenu/DataLibrary.qml index b1b884a632..2037442ea5 100644 --- a/Desktop/components/JASP/Widgets/FileMenu/DataLibrary.qml +++ b/Desktop/components/JASP/Widgets/FileMenu/DataLibrary.qml @@ -1,6 +1,6 @@ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Layouts 1.3 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts Item diff --git a/Desktop/components/JASP/Widgets/FileMenu/DataLibraryBreadCrumbs.qml b/Desktop/components/JASP/Widgets/FileMenu/DataLibraryBreadCrumbs.qml index a390d5430c..dcbb406528 100644 --- a/Desktop/components/JASP/Widgets/FileMenu/DataLibraryBreadCrumbs.qml +++ b/Desktop/components/JASP/Widgets/FileMenu/DataLibraryBreadCrumbs.qml @@ -1,7 +1,7 @@ -import QtQuick 2.0 -import QtQuick.Layouts 1.3 -import QtQuick.Controls 2.2 -import JASP.Theme 1.0 +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import JASP.Theme ListView { diff --git a/Desktop/components/JASP/Widgets/FileMenu/FileList.qml b/Desktop/components/JASP/Widgets/FileMenu/FileList.qml index 7eeced8b7d..c2fdd234bb 100644 --- a/Desktop/components/JASP/Widgets/FileMenu/FileList.qml +++ b/Desktop/components/JASP/Widgets/FileMenu/FileList.qml @@ -1,6 +1,6 @@ -import QtQuick 2.11 -import QtQuick.Controls 2.4 -import JASP.Controls 1.0 +import QtQuick +import QtQuick.Controls +import JASP.Controls as JC ListView @@ -81,7 +81,7 @@ ListView hasBreadCrumbs: listView.breadCrumbs !== null } - JASPScrollBar + JC.JASPScrollBar { id: rightscrollbar flickable: parent diff --git a/Desktop/components/JASP/Widgets/FileMenu/FileMenu.qml b/Desktop/components/JASP/Widgets/FileMenu/FileMenu.qml index fcf116fbfc..51341c2f72 100644 --- a/Desktop/components/JASP/Widgets/FileMenu/FileMenu.qml +++ b/Desktop/components/JASP/Widgets/FileMenu/FileMenu.qml @@ -1,10 +1,10 @@ -import QtQuick 2.11 -import QtQuick.Controls 2.2 -import QtQuick.Layouts 1.3 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts -import JASP.Controls 1.0 +import JASP.Controls import JASP -import FileOperation 1.0 +import FileOperation FocusScope { diff --git a/Desktop/components/JASP/Widgets/FileMenu/ListItem.qml b/Desktop/components/JASP/Widgets/FileMenu/ListItem.qml index 42d7f2d53f..bcf6764dde 100644 --- a/Desktop/components/JASP/Widgets/FileMenu/ListItem.qml +++ b/Desktop/components/JASP/Widgets/FileMenu/ListItem.qml @@ -1,7 +1,5 @@ -import QtQuick 2.11 -import QtQuick.Controls 2.4 -import JASP.Controls 1.0 - +import QtQuick +import QtQuick.Controls FocusScope { diff --git a/Desktop/components/JASP/Widgets/FileMenu/MenuHeader.qml b/Desktop/components/JASP/Widgets/FileMenu/MenuHeader.qml index d5e3b244fe..36e064a013 100644 --- a/Desktop/components/JASP/Widgets/FileMenu/MenuHeader.qml +++ b/Desktop/components/JASP/Widgets/FileMenu/MenuHeader.qml @@ -1,9 +1,8 @@ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Layouts 1.3 - -import JASP.Widgets 1.0 -import JASP.Controls 1.0 +import QtQuick +import QtQuick.Controls as QtC +import QtQuick.Layouts +import JASP.Widgets +import JASP.Controls Item { @@ -63,7 +62,7 @@ Item } } - ToolSeparator + QtC.ToolSeparator { id: firstSeparator diff --git a/Desktop/components/JASP/Widgets/FileMenu/OSF.qml b/Desktop/components/JASP/Widgets/FileMenu/OSF.qml index 780fca7edb..7d1a45722a 100644 --- a/Desktop/components/JASP/Widgets/FileMenu/OSF.qml +++ b/Desktop/components/JASP/Widgets/FileMenu/OSF.qml @@ -16,11 +16,10 @@ // . // -import QtQuick 2.0 -import QtQuick.Controls 2.2 - -import JASP.Controls 1.0 -import JASP.Widgets 1.0 +import QtQuick +import QtQuick.Controls as QtC +import JASP.Controls +import JASP.Widgets //import QtQuick.Layouts 1.3 @@ -120,7 +119,7 @@ Item sortMenuModel: fileMenuModel.osf.sortedMenuModel } - ToolSeparator + QtC.ToolSeparator { id : firstSeparator visible : loggedin diff --git a/Desktop/components/JASP/Widgets/FileMenu/PrefsAdvanced.qml b/Desktop/components/JASP/Widgets/FileMenu/PrefsAdvanced.qml index ae7e61be6b..31d929c84b 100644 --- a/Desktop/components/JASP/Widgets/FileMenu/PrefsAdvanced.qml +++ b/Desktop/components/JASP/Widgets/FileMenu/PrefsAdvanced.qml @@ -1,7 +1,7 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 -import JASP.Widgets 1.0 -import JASP.Controls 1.0 +import QtQuick +import QtQuick.Controls +import JASP.Widgets +import JASP.Controls ScrollView { diff --git a/Desktop/components/JASP/Widgets/FileMenu/PrefsGroupRect.qml b/Desktop/components/JASP/Widgets/FileMenu/PrefsGroupRect.qml index 3f079553f0..762447bd42 100644 --- a/Desktop/components/JASP/Widgets/FileMenu/PrefsGroupRect.qml +++ b/Desktop/components/JASP/Widgets/FileMenu/PrefsGroupRect.qml @@ -1,10 +1,9 @@ -import QtQuick 2.11 -import QtQuick.Controls 2.4 -import QtQuick.Layouts 1.3 -import JASP.Widgets 1.0 - -import JASP.Controls 1.0 -import JASP 1.0 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import JASP.Widgets +import JASP.Controls +import JASP Rectangle { diff --git a/Desktop/components/JASP/Widgets/FileMenu/PrefsResults.qml b/Desktop/components/JASP/Widgets/FileMenu/PrefsResults.qml index f9698486d9..4b078b7c8a 100644 --- a/Desktop/components/JASP/Widgets/FileMenu/PrefsResults.qml +++ b/Desktop/components/JASP/Widgets/FileMenu/PrefsResults.qml @@ -1,8 +1,7 @@ -import QtQuick 2.11 -import QtQuick.Controls 2.4 -import JASP.Widgets 1.0 - -import JASP.Controls 1.0 +import QtQuick +import QtQuick.Controls +import JASP.Widgets +import JASP.Controls ScrollView { diff --git a/Desktop/components/JASP/Widgets/FileMenu/PrefsTextInput.qml b/Desktop/components/JASP/Widgets/FileMenu/PrefsTextInput.qml index 89a6bbbad1..708e645625 100644 --- a/Desktop/components/JASP/Widgets/FileMenu/PrefsTextInput.qml +++ b/Desktop/components/JASP/Widgets/FileMenu/PrefsTextInput.qml @@ -1,5 +1,5 @@ -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls Rectangle { diff --git a/Desktop/components/JASP/Widgets/FileMenu/PrefsUI.qml b/Desktop/components/JASP/Widgets/FileMenu/PrefsUI.qml index 791e3d614f..bfa8e464ee 100644 --- a/Desktop/components/JASP/Widgets/FileMenu/PrefsUI.qml +++ b/Desktop/components/JASP/Widgets/FileMenu/PrefsUI.qml @@ -1,8 +1,8 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 -import QtQuick.Layouts 1.3 as L -import JASP.Widgets 1.0 -import JASP.Controls 1.0 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts as L +import JASP.Widgets +import JASP.Controls ScrollView { @@ -80,7 +80,7 @@ ScrollView } } - GroupBox + Group { width: parent.width diff --git a/Desktop/components/JASP/Widgets/FileMenu/RecentFiles.qml b/Desktop/components/JASP/Widgets/FileMenu/RecentFiles.qml index e05df5b472..bcd9f72ab4 100644 --- a/Desktop/components/JASP/Widgets/FileMenu/RecentFiles.qml +++ b/Desktop/components/JASP/Widgets/FileMenu/RecentFiles.qml @@ -1,6 +1,6 @@ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Layouts 1.3 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts Item diff --git a/Desktop/components/JASP/Widgets/FilterConstructor/ColumnDrag.qml b/Desktop/components/JASP/Widgets/FilterConstructor/ColumnDrag.qml index 20359cd585..d15b5b6fae 100644 --- a/Desktop/components/JASP/Widgets/FilterConstructor/ColumnDrag.qml +++ b/Desktop/components/JASP/Widgets/FilterConstructor/ColumnDrag.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick DragGeneric { diff --git a/Desktop/components/JASP/Widgets/FilterConstructor/DragGeneric.qml b/Desktop/components/JASP/Widgets/FilterConstructor/DragGeneric.qml index 3d92345c76..20ff8b7650 100644 --- a/Desktop/components/JASP/Widgets/FilterConstructor/DragGeneric.qml +++ b/Desktop/components/JASP/Widgets/FilterConstructor/DragGeneric.qml @@ -1,5 +1,5 @@ -import QtQuick 2.9 -import QtQuick.Controls 2.2 +import QtQuick +import QtQuick.Controls MouseArea diff --git a/Desktop/components/JASP/Widgets/FilterConstructor/DropSpot.qml b/Desktop/components/JASP/Widgets/FilterConstructor/DropSpot.qml index 044e9affb1..302d2c156d 100644 --- a/Desktop/components/JASP/Widgets/FilterConstructor/DropSpot.qml +++ b/Desktop/components/JASP/Widgets/FilterConstructor/DropSpot.qml @@ -1,5 +1,5 @@ -import QtQuick 2.9 -import QtQuick.Controls 2.2 +import QtQuick +import QtQuick.Controls diff --git a/Desktop/components/JASP/Widgets/FilterConstructor/DropTrash.qml b/Desktop/components/JASP/Widgets/FilterConstructor/DropTrash.qml index 550ff815cf..4247acf65b 100644 --- a/Desktop/components/JASP/Widgets/FilterConstructor/DropTrash.qml +++ b/Desktop/components/JASP/Widgets/FilterConstructor/DropTrash.qml @@ -1,5 +1,5 @@ -import QtQuick 2.9 -import QtQuick.Controls 2.2 +import QtQuick +import QtQuick.Controls DropArea { diff --git a/Desktop/components/JASP/Widgets/FilterConstructor/ElementView.qml b/Desktop/components/JASP/Widgets/FilterConstructor/ElementView.qml index f4a23acbf4..634ce8b034 100644 --- a/Desktop/components/JASP/Widgets/FilterConstructor/ElementView.qml +++ b/Desktop/components/JASP/Widgets/FilterConstructor/ElementView.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick ListView diff --git a/Desktop/components/JASP/Widgets/FilterConstructor/Function.qml b/Desktop/components/JASP/Widgets/FilterConstructor/Function.qml index 661ddcff26..f841f69751 100644 --- a/Desktop/components/JASP/Widgets/FilterConstructor/Function.qml +++ b/Desktop/components/JASP/Widgets/FilterConstructor/Function.qml @@ -1,4 +1,4 @@ -import QtQuick 2.9 +import QtQuick Item diff --git a/Desktop/components/JASP/Widgets/FilterConstructor/FunctionDrag.qml b/Desktop/components/JASP/Widgets/FilterConstructor/FunctionDrag.qml index a90ba399bb..004de13f1c 100644 --- a/Desktop/components/JASP/Widgets/FilterConstructor/FunctionDrag.qml +++ b/Desktop/components/JASP/Widgets/FilterConstructor/FunctionDrag.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick DragGeneric { shownChild: showMe diff --git a/Desktop/components/JASP/Widgets/FilterConstructor/Number.qml b/Desktop/components/JASP/Widgets/FilterConstructor/Number.qml index abe2a4a751..1dd03cd8bc 100644 --- a/Desktop/components/JASP/Widgets/FilterConstructor/Number.qml +++ b/Desktop/components/JASP/Widgets/FilterConstructor/Number.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick Item { diff --git a/Desktop/components/JASP/Widgets/FilterConstructor/NumberDrag.qml b/Desktop/components/JASP/Widgets/FilterConstructor/NumberDrag.qml index 0e897c71c7..9f7fa7a04d 100644 --- a/Desktop/components/JASP/Widgets/FilterConstructor/NumberDrag.qml +++ b/Desktop/components/JASP/Widgets/FilterConstructor/NumberDrag.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick DragGeneric { property real value: 0 diff --git a/Desktop/components/JASP/Widgets/FilterConstructor/Operator.qml b/Desktop/components/JASP/Widgets/FilterConstructor/Operator.qml index 462b322d30..f8615e4855 100644 --- a/Desktop/components/JASP/Widgets/FilterConstructor/Operator.qml +++ b/Desktop/components/JASP/Widgets/FilterConstructor/Operator.qml @@ -1,4 +1,4 @@ -import QtQuick 2.9 +import QtQuick Item diff --git a/Desktop/components/JASP/Widgets/FilterConstructor/OperatorDrag.qml b/Desktop/components/JASP/Widgets/FilterConstructor/OperatorDrag.qml index 356c9ffb94..00b98ea46c 100644 --- a/Desktop/components/JASP/Widgets/FilterConstructor/OperatorDrag.qml +++ b/Desktop/components/JASP/Widgets/FilterConstructor/OperatorDrag.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick DragGeneric { shownChild: showMe diff --git a/Desktop/components/JASP/Widgets/FilterConstructor/OperatorSelector.qml b/Desktop/components/JASP/Widgets/FilterConstructor/OperatorSelector.qml index b3941760aa..b3e5e0e419 100644 --- a/Desktop/components/JASP/Widgets/FilterConstructor/OperatorSelector.qml +++ b/Desktop/components/JASP/Widgets/FilterConstructor/OperatorSelector.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick Item { diff --git a/Desktop/components/JASP/Widgets/FilterConstructor/OperatorSelectorComputedColumns.qml b/Desktop/components/JASP/Widgets/FilterConstructor/OperatorSelectorComputedColumns.qml index a4f1023c73..6edf744195 100644 --- a/Desktop/components/JASP/Widgets/FilterConstructor/OperatorSelectorComputedColumns.qml +++ b/Desktop/components/JASP/Widgets/FilterConstructor/OperatorSelectorComputedColumns.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick Item { diff --git a/Desktop/components/JASP/Widgets/FilterConstructor/OperatorVertical.qml b/Desktop/components/JASP/Widgets/FilterConstructor/OperatorVertical.qml index abd4d63a32..722c166fb0 100644 --- a/Desktop/components/JASP/Widgets/FilterConstructor/OperatorVertical.qml +++ b/Desktop/components/JASP/Widgets/FilterConstructor/OperatorVertical.qml @@ -1,4 +1,4 @@ -import QtQuick 2.9 +import QtQuick Item diff --git a/Desktop/components/JASP/Widgets/FilterConstructor/OperatorVerticalDrag.qml b/Desktop/components/JASP/Widgets/FilterConstructor/OperatorVerticalDrag.qml index 414f91f31f..4b76fbdb78 100644 --- a/Desktop/components/JASP/Widgets/FilterConstructor/OperatorVerticalDrag.qml +++ b/Desktop/components/JASP/Widgets/FilterConstructor/OperatorVerticalDrag.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick DragGeneric { shownChild: showMe diff --git a/Desktop/components/JASP/Widgets/FilterConstructor/String.qml b/Desktop/components/JASP/Widgets/FilterConstructor/String.qml index eb161aaa3f..ab24f4c87f 100644 --- a/Desktop/components/JASP/Widgets/FilterConstructor/String.qml +++ b/Desktop/components/JASP/Widgets/FilterConstructor/String.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick Item { diff --git a/Desktop/components/JASP/Widgets/FilterConstructor/StringDrag.qml b/Desktop/components/JASP/Widgets/FilterConstructor/StringDrag.qml index 7a601d0be0..2e3c299176 100644 --- a/Desktop/components/JASP/Widgets/FilterConstructor/StringDrag.qml +++ b/Desktop/components/JASP/Widgets/FilterConstructor/StringDrag.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick DragGeneric { property string text: "?" diff --git a/Desktop/components/JASP/Widgets/FilterWindow.qml b/Desktop/components/JASP/Widgets/FilterWindow.qml index a2dab847e7..11b46d95a6 100644 --- a/Desktop/components/JASP/Widgets/FilterWindow.qml +++ b/Desktop/components/JASP/Widgets/FilterWindow.qml @@ -1,6 +1,6 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 -import JASP.Controls 1.0 as JaspControls +import QtQuick +import QtQuick.Controls +import JASP.Controls as JaspControls import "FilterConstructor" import JASP @@ -301,7 +301,7 @@ FocusScope TextArea { - RSyntaxHighlighterQuick + JaspControls.RSyntaxHighlighterQuick { textDocument: filterGeneratedEdit.textDocument } @@ -351,7 +351,7 @@ FocusScope TextArea { - RSyntaxHighlighterQuick + JaspControls.RSyntaxHighlighterQuick { textDocument: filterEdit.textDocument } diff --git a/Desktop/components/JASP/Widgets/HelpWindow.qml b/Desktop/components/JASP/Widgets/HelpWindow.qml index 968c30e0bd..e288a30f77 100644 --- a/Desktop/components/JASP/Widgets/HelpWindow.qml +++ b/Desktop/components/JASP/Widgets/HelpWindow.qml @@ -1,8 +1,8 @@ -import QtQuick 2.12 -import QtQuick.Window 2.12 -import QtWebEngine 1.8 -import JASP.Widgets 1.0 -import JASP.Controls 1.0 +import QtQuick +import QtQuick.Window +import QtWebEngine +import JASP.Widgets +import JASP.Controls Window { diff --git a/Desktop/components/JASP/Widgets/ImageInverter.qml b/Desktop/components/JASP/Widgets/ImageInverter.qml index acf8da15a2..b518edf062 100644 --- a/Desktop/components/JASP/Widgets/ImageInverter.qml +++ b/Desktop/components/JASP/Widgets/ImageInverter.qml @@ -1,4 +1,4 @@ -import QtQuick 2.15 +import QtQuick ///Setting src to an Image will put this image inverter there and enable/disable it based on a dark theme is enabled. This is especially useful for getting the negative of a plot ShaderEffect diff --git a/Desktop/components/JASP/Widgets/JASPDataView.qml b/Desktop/components/JASP/Widgets/JASPDataView.qml index cd968cd48b..1d2ddf06bc 100644 --- a/Desktop/components/JASP/Widgets/JASPDataView.qml +++ b/Desktop/components/JASP/Widgets/JASPDataView.qml @@ -1,9 +1,9 @@ -import QtQuick 2.9 -import QtQuick.Window 2.3 -import QtQuick.Controls 2.2 +import QtQuick +import QtQuick.Window +import QtQuick.Controls -import JASP.Controls 1.0 -import JASP 1.0 +import JASP.Controls +import JASP FocusScope { diff --git a/Desktop/components/JASP/Widgets/JASPMouseAreaToolTipped.qml b/Desktop/components/JASP/Widgets/JASPMouseAreaToolTipped.qml index 19e0a475f9..58a5c725cd 100644 --- a/Desktop/components/JASP/Widgets/JASPMouseAreaToolTipped.qml +++ b/Desktop/components/JASP/Widgets/JASPMouseAreaToolTipped.qml @@ -1,5 +1,5 @@ -import QtQuick 2.9 -import QtQuick.Controls 2.2 +import QtQuick +import QtQuick.Controls MouseArea { diff --git a/Desktop/components/JASP/Widgets/JASPSplitHandle.qml b/Desktop/components/JASP/Widgets/JASPSplitHandle.qml index 745092c72b..fc6e4b7213 100644 --- a/Desktop/components/JASP/Widgets/JASPSplitHandle.qml +++ b/Desktop/components/JASP/Widgets/JASPSplitHandle.qml @@ -1,6 +1,6 @@ -import QtQuick 2.11 -import JASP.Widgets 1.0 -import QtQuick.Controls 6.0 +import QtQuick +import JASP.Widgets +import QtQuick.Controls //Only works vertically right now... diff --git a/Desktop/components/JASP/Widgets/LoadingIndicator.qml b/Desktop/components/JASP/Widgets/LoadingIndicator.qml index f1ab4b989d..90d5b243bc 100644 --- a/Desktop/components/JASP/Widgets/LoadingIndicator.qml +++ b/Desktop/components/JASP/Widgets/LoadingIndicator.qml @@ -1,4 +1,4 @@ -import QtQuick 2.12 +import QtQuick Item { diff --git a/Desktop/components/JASP/Widgets/MainPage.qml b/Desktop/components/JASP/Widgets/MainPage.qml index baa6b9dab5..26e56c539b 100644 --- a/Desktop/components/JASP/Widgets/MainPage.qml +++ b/Desktop/components/JASP/Widgets/MainPage.qml @@ -21,7 +21,7 @@ import QtWebEngine import QtWebChannel import JASP import QtQuick.Controls -import JASP.Controls 1.0 as JC +import JASP.Controls as JC Item { @@ -105,10 +105,10 @@ Item onXChanged: checkPosition(false) onDraggingChanged: checkPosition(true) - ALTNavigation.enabled: true - ALTNavigation.onTagMatch: { arrowClicked(); } - ALTNavigation.requestedPostfix: "D" - ALTNavigation.y: height / 2 - 25 * jaspTheme.uiScale + JC.ALTNavigation.enabled: true + JC.ALTNavigation.onTagMatch: { arrowClicked(); } + JC.ALTNavigation.requestedPostfix: "D" + JC.ALTNavigation.y: height / 2 - 25 * jaspTheme.uiScale function checkPosition(forceCheck) { @@ -230,9 +230,9 @@ Item visible: hasAnalysis && !ribbonModel.dataMode color: analysesModel.currentAnalysisIndex !== -1 ? jaspTheme.uiBackground : jaspTheme.white - ALTNavigation.enabled: true - ALTNavigation.requestedPostfix: "R" - ALTNavigation.onTagMatch: { resultsView.nextItemInFocusChain().forceActiveFocus(); } + JC.ALTNavigation.enabled: true + JC.ALTNavigation.requestedPostfix: "R" + JC.ALTNavigation.onTagMatch: { resultsView.nextItemInFocusChain().forceActiveFocus(); } Rectangle { diff --git a/Desktop/components/JASP/Widgets/MainWindow.qml b/Desktop/components/JASP/Widgets/MainWindow.qml index 64fb401b95..4b614be4c8 100644 --- a/Desktop/components/JASP/Widgets/MainWindow.qml +++ b/Desktop/components/JASP/Widgets/MainWindow.qml @@ -16,10 +16,10 @@ // . // -import QtQuick 2.11 -import QtQuick.Window 2.11 +import QtQuick +import QtQuick.Window import JASP -import QtQuick.Controls 2.12 +import QtQuick.Controls Window { diff --git a/Desktop/components/JASP/Widgets/MessageBox.qml b/Desktop/components/JASP/Widgets/MessageBox.qml index 6fdd34f8c5..b62cf3f308 100644 --- a/Desktop/components/JASP/Widgets/MessageBox.qml +++ b/Desktop/components/JASP/Widgets/MessageBox.qml @@ -1,10 +1,9 @@ -import QtQuick 2.11 -import QtQuick.Controls 2.4 -import JASP.Controls 1.0 -//import QtQuick.Dialogs 1.2 +import QtQuick +import QtQuick.Controls as QtC +import JASP.Controls -Popup +QtC.Popup //MessageDialog { id: messageRoot diff --git a/Desktop/components/JASP/Widgets/ModuleInstaller.qml b/Desktop/components/JASP/Widgets/ModuleInstaller.qml index fa71a66adc..e8ad427d9a 100644 --- a/Desktop/components/JASP/Widgets/ModuleInstaller.qml +++ b/Desktop/components/JASP/Widgets/ModuleInstaller.qml @@ -16,12 +16,11 @@ // . // -import QtQuick 2.11 -import QtQuick.Controls 2.7 as QTCONTROLS -import Qt.labs.folderlistmodel 2.11 -//import QtQuick.Window 2.3 -import JASP.Controls 1.0 -import JASP.Widgets 1.0 +import QtQuick +import QtQuick.Controls as QTCONTROLS +import Qt.labs.folderlistmodel +import JASP.Controls +import JASP.Widgets QTCONTROLS.Popup { diff --git a/Desktop/components/JASP/Widgets/PlotEditor/PlotEditingAxis.qml b/Desktop/components/JASP/Widgets/PlotEditor/PlotEditingAxis.qml index 2681fcfdc0..98f5e24cc4 100644 --- a/Desktop/components/JASP/Widgets/PlotEditor/PlotEditingAxis.qml +++ b/Desktop/components/JASP/Widgets/PlotEditor/PlotEditingAxis.qml @@ -1,11 +1,11 @@ -import QtQuick 2.14 -import QtQuick.Controls 2.14 -import QtQuick.Layouts 1.3 -import JASP.Widgets 1.0 as JASPW -import JASP.Theme 1.0 -import JASP.Controls 1.0 as JASPC -import JASP.PlotEditor 1.0 -import JASP 1.0 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import JASP.Widgets as JASPW +import JASP.Theme +import JASP.Controls as JASPC +import JASP.PlotEditor +import JASP /* TODO: it might make sense to add a global title/ box around all the options inside one axis. diff --git a/Desktop/components/JASP/Widgets/PlotEditor/PlotEditor.qml b/Desktop/components/JASP/Widgets/PlotEditor/PlotEditor.qml index 06f01415a7..a505a7ef41 100644 --- a/Desktop/components/JASP/Widgets/PlotEditor/PlotEditor.qml +++ b/Desktop/components/JASP/Widgets/PlotEditor/PlotEditor.qml @@ -1,10 +1,10 @@ -import QtQuick 2.14 -import QtQuick.Controls 6.0 -import QtQuick.Layouts 1.3 -import JASP.Widgets 1.0 as JASPW -import JASP.Theme 1.0 -import JASP.Controls 1.0 as JASPC -import JASP.PlotEditor 1.0 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import JASP.Widgets as JASPW +import JASP.Theme +import JASP.Controls as JASPC +import JASP.PlotEditor Popup { diff --git a/Desktop/components/JASP/Widgets/ProgressBarHolder.qml b/Desktop/components/JASP/Widgets/ProgressBarHolder.qml index 298aca7e7d..e257e2bfd8 100644 --- a/Desktop/components/JASP/Widgets/ProgressBarHolder.qml +++ b/Desktop/components/JASP/Widgets/ProgressBarHolder.qml @@ -1,5 +1,5 @@ -import QtQuick 2.11 -import QtQuick.Controls 2.4 +import QtQuick +import QtQuick.Controls Item diff --git a/Desktop/components/JASP/Widgets/RCommanderWindow.qml b/Desktop/components/JASP/Widgets/RCommanderWindow.qml index cc8907a622..f8c9ca197a 100644 --- a/Desktop/components/JASP/Widgets/RCommanderWindow.qml +++ b/Desktop/components/JASP/Widgets/RCommanderWindow.qml @@ -16,12 +16,12 @@ // . // -import QtQuick 2.12 -import QtQuick.Window 2.12 -import QtQuick.Controls 2.12 -import JASP 1.0 -import JASP.Widgets 1.0 as JW -import JASP.Controls 1.0 as JC +import QtQuick +import QtQuick.Window +import QtQuick.Controls +import JASP +import JASP.Widgets as JW +import JASP.Controls as JC Window { diff --git a/Desktop/components/JASP/Widgets/RenameColumnDialog.qml b/Desktop/components/JASP/Widgets/RenameColumnDialog.qml index 81d9157444..26b11929d5 100644 --- a/Desktop/components/JASP/Widgets/RenameColumnDialog.qml +++ b/Desktop/components/JASP/Widgets/RenameColumnDialog.qml @@ -1,6 +1,6 @@ -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import JASP.Controls 1.0 +import QtQuick +import QtQuick.Controls +import JASP.Controls Popup { diff --git a/Desktop/components/JASP/Widgets/Ribbon/MenuArrowButton.qml b/Desktop/components/JASP/Widgets/Ribbon/MenuArrowButton.qml index 210b2f510f..f709189440 100644 --- a/Desktop/components/JASP/Widgets/Ribbon/MenuArrowButton.qml +++ b/Desktop/components/JASP/Widgets/Ribbon/MenuArrowButton.qml @@ -16,8 +16,8 @@ // . // -import QtQuick 2.11 -import QtQuick.Controls 2.4 +import QtQuick +import QtQuick.Controls Rectangle diff --git a/Desktop/components/JASP/Widgets/Ribbon/RibbonBar.qml b/Desktop/components/JASP/Widgets/Ribbon/RibbonBar.qml index 0deac041a1..bb6a66b7d6 100644 --- a/Desktop/components/JASP/Widgets/Ribbon/RibbonBar.qml +++ b/Desktop/components/JASP/Widgets/Ribbon/RibbonBar.qml @@ -16,8 +16,9 @@ // . // -import QtQuick 2.11 +import QtQuick import JASP +import JASP.Controls FocusScope diff --git a/Desktop/components/JASP/Widgets/Ribbon/RibbonButton.qml b/Desktop/components/JASP/Widgets/Ribbon/RibbonButton.qml index b3d267b15e..b414e6a461 100644 --- a/Desktop/components/JASP/Widgets/Ribbon/RibbonButton.qml +++ b/Desktop/components/JASP/Widgets/Ribbon/RibbonButton.qml @@ -16,10 +16,10 @@ // . // -import QtQuick 2.11 -import QtQuick.Controls 2.4 -import JASP 1.0 -import JASP.Widgets 1.0 +import QtQuick +import QtQuick.Controls +import JASP +import JASP.Widgets Item { diff --git a/Desktop/components/JASP/Widgets/Ribbon/Ribbons.qml b/Desktop/components/JASP/Widgets/Ribbon/Ribbons.qml index ff4725e4d3..264a3d62d1 100644 --- a/Desktop/components/JASP/Widgets/Ribbon/Ribbons.qml +++ b/Desktop/components/JASP/Widgets/Ribbon/Ribbons.qml @@ -16,8 +16,9 @@ // . // -import QtQuick 2.15 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls +import JASP.Controls import JASP Item diff --git a/Desktop/components/JASP/Widgets/SaveDiscardCancelDialog.qml b/Desktop/components/JASP/Widgets/SaveDiscardCancelDialog.qml index 287f319fba..41c3283b8e 100644 --- a/Desktop/components/JASP/Widgets/SaveDiscardCancelDialog.qml +++ b/Desktop/components/JASP/Widgets/SaveDiscardCancelDialog.qml @@ -1,5 +1,5 @@ -import QtQuick 2.12 -import JASP 1.0 +import QtQuick +import JASP QtObject { diff --git a/Desktop/components/JASP/Widgets/SpinBox.qml b/Desktop/components/JASP/Widgets/SpinBox.qml index ea0d936746..32e7e18005 100644 --- a/Desktop/components/JASP/Widgets/SpinBox.qml +++ b/Desktop/components/JASP/Widgets/SpinBox.qml @@ -16,10 +16,10 @@ // . // -import QtQuick 2.11 -import QtQuick.Controls 2.5 -import JASP.Controls 1.0 as JaspControls -import JASP 1.0 +import QtQuick +import QtQuick.Controls +import JASP.Controls as JaspControls +import JASP Item { @@ -97,7 +97,7 @@ Item TextField { id: valueField - validator: JASPDoubleValidator { id: doubleValidator; bottom: root.min; top: root.max ; decimals: root.decimals } + validator: JaspControls.JASPDoubleValidator { id: doubleValidator; bottom: root.min; top: root.max ; decimals: root.decimals } anchors { left: minus.right diff --git a/Desktop/components/JASP/Widgets/UIScaleNotifier.qml b/Desktop/components/JASP/Widgets/UIScaleNotifier.qml index c975126ed8..802ec970c1 100644 --- a/Desktop/components/JASP/Widgets/UIScaleNotifier.qml +++ b/Desktop/components/JASP/Widgets/UIScaleNotifier.qml @@ -1,6 +1,6 @@ -import QtQuick 2.11 -import QtQuick.Controls 2.4 -import JASP.Widgets 1.0 +import QtQuick +import QtQuick.Controls +import JASP.Widgets Item { diff --git a/Desktop/data/columnmodel.cpp b/Desktop/data/columnmodel.cpp index 7415f8a61a..a1e6d69b0b 100644 --- a/Desktop/data/columnmodel.cpp +++ b/Desktop/data/columnmodel.cpp @@ -336,16 +336,16 @@ void ColumnModel::setColumnType(QString type) _undoStack->pushCommand(new SetColumnTypeCommand(this, {chosenColumn()}, int(cType))); } -std::vector ColumnModel::getSortedSelection() const +std::vector ColumnModel::getSortedSelection() const { if (_virtual) return {}; - std::map mapValueToRow; + std::map mapValueToRow; - for(qsizetype r=0; r out; + std::vector out; for(const QString & v : _selected) out.push_back(mapValueToRow[v]); @@ -357,7 +357,7 @@ std::vector ColumnModel::getSortedSelection() const void ColumnModel::setValueMaxWidth() { - qsizetype maxWidthChars = std::max((tr("Value").size()), !column() ? 0 : column()->getMaximumWidthInCharacters(false, true)); + size_t maxWidthChars = std::max(size_t(tr("Value").size()), !column() ? 0 : column()->getMaximumWidthInCharacters(false, true)); double prevMaxWidth = _valueMaxWidth; _valueMaxWidth = JaspTheme::fontMetrics().size(Qt::TextSingleLine, QString(maxWidthChars, 'X')).width(); @@ -368,7 +368,7 @@ void ColumnModel::setValueMaxWidth() void ColumnModel::setLabelMaxWidth() { - qsizetype maxWidthChars = std::max((tr("Label").size()), !column() ? 0 : column()->getMaximumWidthInCharacters(false, false)); + size_t maxWidthChars = std::max(size_t(tr("Label").size()), !column() ? 0 : column()->getMaximumWidthInCharacters(false, false)); double prevMaxWidth = _labelMaxWidth; _labelMaxWidth = JaspTheme::fontMetrics().size(Qt::TextSingleLine, QString(maxWidthChars, 'X')).width(); @@ -379,7 +379,7 @@ void ColumnModel::setLabelMaxWidth() void ColumnModel::moveSelectionUp() { - std::vector indexes = getSortedSelection(); + std::vector indexes = getSortedSelection(); if (_beingRefreshed || indexes.size() < 1) return; @@ -389,7 +389,7 @@ void ColumnModel::moveSelectionUp() void ColumnModel::moveSelectionDown() { - std::vector indexes = getSortedSelection(); + std::vector indexes = getSortedSelection(); if (_beingRefreshed || indexes.size() < 1) return; @@ -672,9 +672,9 @@ void ColumnModel::checkCurrentColumn(QStringList, QStringList missingColumns, QM void ColumnModel::removeAllSelected() { - QMap mapValueToRow; + QMap mapValueToRow; - for(qsizetype r=0; r selectedValues; diff --git a/Desktop/data/columnmodel.h b/Desktop/data/columnmodel.h index 06ca77bd63..bfe5458a32 100644 --- a/Desktop/data/columnmodel.h +++ b/Desktop/data/columnmodel.h @@ -47,7 +47,7 @@ class ColumnModel : public DataSetTableProxy static QString columnTypeFriendlyName( computedColumnType compColT); static QVariant columnTypeFriendlyMapping( computedColumnType compColT); - bool labelNeedsFilter(qsizetype col); + bool labelNeedsFilter(size_t col); QString columnNameQ(); QString columnTitle() const; QString columnDescription() const; @@ -161,7 +161,7 @@ public slots: void hasSeveralNumericValuesChanged(); private: - std::vector getSortedSelection() const; + std::vector getSortedSelection() const; void setValueMaxWidth(); void clearVirtual(); diff --git a/Desktop/data/columnsmodel.cpp b/Desktop/data/columnsmodel.cpp index 140df53c3d..b67e2bec3e 100644 --- a/Desktop/data/columnsmodel.cpp +++ b/Desktop/data/columnsmodel.cpp @@ -232,16 +232,6 @@ QHash ColumnsModel::roleNames() const return roles; } -int ColumnsModel::rowCount(const QModelIndex & p) const -{ - return QTransposeProxyModel::rowCount(p); -} - -QQmlContext* ColumnsModel::providerQMLContext() const -{ - return MainWindow::singleton()->giveRootQmlContext(); -} - QStringList ColumnsModel::getColumnNames() const { QStringList result; diff --git a/Desktop/data/columnsmodel.h b/Desktop/data/columnsmodel.h index b849ae4b87..942e7b1a2e 100644 --- a/Desktop/data/columnsmodel.h +++ b/Desktop/data/columnsmodel.h @@ -25,8 +25,6 @@ class ColumnsModel : public QTransposeProxyModel, public VariableInfoProvider QVariant data( const QModelIndex & index, int role = Qt::DisplayRole) const override; QHash roleNames() const override; - int columnCount(const QModelIndex & = QModelIndex()) const override { return 1; } - int rowCount( const QModelIndex & = QModelIndex()) const override; int getColumnIndex(const std::string & col) const { return _tableModel->getColumnIndex(col); } QStringList getColumnNames() const; Q_INVOKABLE int getColumnType(const QString & name) const; @@ -40,9 +38,8 @@ class ColumnsModel : public QTransposeProxyModel, public VariableInfoProvider QVariant provideInfo(VariableInfo::InfoType info, const QString& colName = "", int row = 0) const override; bool absorbInfo( VariableInfo::InfoType info, const QString& name, int row, QVariant value) override; - - QAbstractItemModel * providerModel() override { return this; } - QQmlContext * providerQMLContext() const override; + QAbstractItemModel * providerModel() override { return this; } + static ColumnsModel * singleton() { return _singleton; } public slots: diff --git a/Desktop/data/datasetpackage.cpp b/Desktop/data/datasetpackage.cpp index 697117995f..38488da683 100644 --- a/Desktop/data/datasetpackage.cpp +++ b/Desktop/data/datasetpackage.cpp @@ -1852,7 +1852,7 @@ bool DataSetPackage::labelNeedsFilter(size_t columnIndex) const } -void DataSetPackage::labelMoveRows(size_t colIdx, std::vector rows, bool up) +void DataSetPackage::labelMoveRows(size_t colIdx, std::vector rows, bool up) { Column * column = _dataSet->columns()[colIdx]; sizetset rowsChanged = column->labelsMoveRows(rows, up); @@ -2016,11 +2016,8 @@ QString DataSetPackage::insertColumnSpecial(int columnIndex, const QMapdataNode()), columnIndex, columnIndex); -#endif _dataSet->insertColumn(columnIndex); @@ -2032,11 +2029,7 @@ QString DataSetPackage::insertColumnSpecial(int columnIndex, const QMapincRevision(); -#ifdef ROUGH_RESET endResetModel(); -#else - endInsertColumns(); -#endif emit datasetChanged(tq(stringvec{column->name()}), {}, {}, false, true); diff --git a/Desktop/data/datasetpackage.h b/Desktop/data/datasetpackage.h index 4286219c3a..39e49ba162 100644 --- a/Desktop/data/datasetpackage.h +++ b/Desktop/data/datasetpackage.h @@ -251,7 +251,7 @@ class DataSetPackage : public QAbstractItemModel //Not QAbstractTableModel becau void resetFilterAllows( size_t columnIndex); int filteredOut( size_t columnIndex) const; bool labelNeedsFilter( size_t columnIndex) const; - void labelMoveRows( size_t columnIndex, std::vector rows, bool up); + void labelMoveRows( size_t columnIndex, std::vector rows, bool up); void labelReverse( size_t columnIndex); bool setFilterData(const std::string & filter, const boolvec & filterResult); void resetAllFilters(); diff --git a/Desktop/data/undostack.cpp b/Desktop/data/undostack.cpp index 2e3ee71392..238d4f3bd7 100644 --- a/Desktop/data/undostack.cpp +++ b/Desktop/data/undostack.cpp @@ -545,7 +545,7 @@ void FilterLabelCommand::redo() _model->setData(_model->index(_labelIndex, 0), _checked, int(DataSetPackage::specialRoles::filter)); } -MoveLabelCommand::MoveLabelCommand(QAbstractItemModel *model, const std::vector &indexes, bool up) +MoveLabelCommand::MoveLabelCommand(QAbstractItemModel *model, const std::vector &indexes, bool up) : UndoModelCommandLabelChange(model), _up{up} { if (_columnModel) @@ -582,9 +582,9 @@ MoveLabelCommand::MoveLabelCommand(QAbstractItemModel *model, const std::vector< } } -std::vector MoveLabelCommand::_getIndexes() +std::vector MoveLabelCommand::_getIndexes() { - std::vector indexes; + std::vector indexes; QStringList allLabels = DataSetPackage::pkg()->getColumnLabelsAsStringList(_colId); for (const QString& label : _labels) { @@ -599,7 +599,7 @@ std::vector MoveLabelCommand::_getIndexes() void MoveLabelCommand::redo() { _columnModel->setChosenColumn(_colId); - std::vector indexes = _getIndexes(); // The indexes must be recalculated each time + std::vector indexes = _getIndexes(); // The indexes must be recalculated each time DataSetPackage::pkg()->labelMoveRows(_colId, indexes, _up); //through DataSetPackage to make sure signals get sent } diff --git a/Desktop/data/undostack.h b/Desktop/data/undostack.h index 6f36cce08a..ed8ed2041f 100644 --- a/Desktop/data/undostack.h +++ b/Desktop/data/undostack.h @@ -119,12 +119,12 @@ class FilterLabelCommand: public UndoModelCommand class MoveLabelCommand: public UndoModelCommandLabelChange { public: - MoveLabelCommand(QAbstractItemModel *model, const std::vector& indexes, bool up); + MoveLabelCommand(QAbstractItemModel *model, const std::vector& indexes, bool up); void redo() override; private: - std::vector _getIndexes(); + std::vector _getIndexes(); void _moveLabels(bool up); QStringList _labels; diff --git a/Desktop/gui/preferencesmodel.h b/Desktop/gui/preferencesmodel.h index a000082dd7..04b510d009 100644 --- a/Desktop/gui/preferencesmodel.h +++ b/Desktop/gui/preferencesmodel.h @@ -145,7 +145,7 @@ class PreferencesModel : public PreferencesModelBase void zoomReset(); int maxEnginesAdmin() const; bool developerMode() const; - bool ALTNavModeActive() const; + bool ALTNavModeActive() const override; bool orderByValueByDefault() const; int maxScaleLevels() const override; QVariantList pdfPageSizeModel() const { return _pdfPageSizeModel; } @@ -273,7 +273,6 @@ public slots: void guiQtTextRenderChanged( bool guiQtTextRender); void reportingModeChanged( bool reportingMode); void showRSyntaxInResultsChanged( bool showRSyntax); - void ALTNavModeActiveChanged( bool ALTNavModeActive); void aboutToChangeEmptyValues( QStringList newValues); void orderByValueByDefaultChanged( bool orderByValueByDefault); void checkUpdatesAskUserChanged( bool checkAsk); diff --git a/Desktop/mainwindow.cpp b/Desktop/mainwindow.cpp index 2223c3771b..3fffb5cafe 100644 --- a/Desktop/mainwindow.cpp +++ b/Desktop/mainwindow.cpp @@ -39,37 +39,14 @@ #include "mainwindow.h" -#include "analysisform.h" -#include "controls/jaspcontrol.h" -#include "controls/checkboxbase.h" -#include "controls/comboboxbase.h" -#include "controls/textinputbase.h" -#include "controls/componentslistbase.h" -#include "controls/rsyntaxhighlighter.h" -#include "controls/factorsformbase.h" -#include "controls/inputlistbase.h" -#include "controls/textareabase.h" -#include "controls/sliderbase.h" -#include "controls/expanderbuttonbase.h" -#include "controls/variableslistbase.h" -#include "controls/variablesformbase.h" -#include "controls/factorlevellistbase.h" -#include "controls/tableviewbase.h" -#include "controls/radiobuttonbase.h" -#include "controls/radiobuttonsgroupbase.h" -#include "controls/jaspdoublevalidator.h" -#include "controls/groupboxbase.h" - #include "gui/jaspversionchecker.h" #include "gui/preferencesmodel.h" -#include "ALTNavigation/altnavigation.h" #include "ALTNavigation/altnavcontrol.h" #include "utilities/messageforwarder.h" #include "modules/activemodules.h" #include "modules/dynamicmodules.h" #include "modules/menumodel.h" -#include "modules/description/entrybase.h" #include "qquick/datasetview.h" #include "qquick/rcommander.h" @@ -99,12 +76,12 @@ MainWindow * MainWindow::_singleton = nullptr; MainWindow::MainWindow(QApplication * application) : QObject(application), _application(application) { std::cout << "MainWindow constructor started" << std::endl; - connect(this, &MainWindow::exitSignal, this, &QApplication::exit, Qt::QueuedConnection); assert(!_singleton); _singleton = this; JASPTIMER_START(MainWindowConstructor); + QQuickStyle::setStyle("Basic"); QQuickWindow::setTextRenderType(Settings::value(Settings::GUI_USE_QT_TEXTRENDER).toBool() ? @@ -161,40 +138,18 @@ MainWindow::MainWindow(QApplication * application) : QObject(application), _appl makeConnections(); - qmlRegisterUncreatableType ("JASP", 1, 0, "JASP", "Impossible to create JASP Object" ); //This is here to keep JASP.enum short I guess? qmlRegisterUncreatableType ("JASP", 1, 0, "MessageForwarder", "You can't touch this" ); qmlRegisterType ("JASP", 1, 0, "DataSetView" ); qmlRegisterType ("JASP", 1, 0, "JaspTheme" ); - qmlRegisterType ("JASP", 1, 0, "AnalysisForm" ); qmlRegisterType ("JASP", 1, 0, "RCommander" ); - qmlRegisterType ("JASP", 1, 0, "JASPControl" ); - qmlRegisterType ("JASP", 1, 0, "GroupBoxBase" ); - qmlRegisterType ("JASP", 1, 0, "ExpanderButtonBase" ); - qmlRegisterType ("JASP", 1, 0, "CheckBoxBase" ); - qmlRegisterType ("JASP", 1, 0, "SliderBase" ); - qmlRegisterType ("JASP", 1, 0, "TextInputBase" ); - qmlRegisterType ("JASP", 1, 0, "TextAreaBase" ); - qmlRegisterType ("JASP", 1, 0, "ComboBoxBase" ); - qmlRegisterType ("JASP", 1, 0, "RadioButtonBase" ); - qmlRegisterType ("JASP", 1, 0, "RadioButtonsGroupBase" ); - qmlRegisterType ("JASP", 1, 0, "RSyntaxHighlighterQuick" ); - qmlRegisterType ("JASP", 1, 0, "ComponentsListBase" ); - qmlRegisterType ("JASP", 1, 0, "FactorsFormBase" ); - qmlRegisterType ("JASP", 1, 0, "InputListBase" ); - qmlRegisterType ("JASP", 1, 0, "FactorLevelListBase" ); - qmlRegisterType ("JASP", 1, 0, "VariablesListBase" ); - qmlRegisterType ("JASP", 1, 0, "VariablesFormBase" ); - qmlRegisterType ("JASP", 1, 0, "TableViewBase" ); - qmlRegisterType ("JASP", 1, 0, "JASPDoubleValidator" ); qmlRegisterType ("JASP", 1, 0, "ResultsJsInterface" ); qmlRegisterType ("JASP", 1, 0, "ColumnModel" ); - qmlRegisterType ("JASP", 1, 0, "Formula" ); qmlRegisterUncreatableType ("JASP.PlotEditor", 1, 0, "AxisModel", "Can't make it"); qmlRegisterUncreatableType ("JASP.PlotEditor", 1, 0, "PlotEditorModel", "Can't make it"); - ALTNavigation::registerQMLTypes("JASP"); ALTNavControl::ctrl()->enableAlTNavigation(_preferences->ALTNavModeActive()); + QmlUtils::setGlobalPropertiesInQMLContext(_qml->rootContext()); _dynamicModules->registerQMLTypes(); @@ -636,31 +591,6 @@ void MainWindow::loadQML() _qml->rootContext()->setContextProperty("computedColumnTypeConstructorCode", int(computedColumnType::constructorCode) ); _qml->rootContext()->setContextProperty("computedColumnTypeAnalysisNotComputed", int(computedColumnType::analysisNotComputed) ); - - bool debug = false, - isMac = false, - isLinux = false; - -#ifdef JASP_DEBUG - debug = true; -#endif - -#ifdef __APPLE__ - isMac = true; -#endif - -#ifdef __linux__ - isLinux = true; -#endif - - bool isWindows = !isMac && !isLinux; - - _qml->rootContext()->setContextProperty("DEBUG_MODE", debug); - _qml->rootContext()->setContextProperty("MACOS", isMac); - _qml->rootContext()->setContextProperty("LINUX", isLinux); - _qml->rootContext()->setContextProperty("WINDOWS", isWindows); - _qml->rootContext()->setContextProperty("INTERACTION_SEPARATOR", Term::separator); - _qml->setOutputWarningsToStandardError(true); setQmlImportPaths(); @@ -760,6 +690,7 @@ void MainWindow::setQmlImportPaths() QStringList newImportPaths = originalImportPaths; + newImportPaths.append(":/jasp-stats.org/imports"); newImportPaths.append("qrc:///components"); newImportPaths.append(_dynamicModules->importPaths()); diff --git a/Docs/development/jasp-build-guide-windows.md b/Docs/development/jasp-build-guide-windows.md index 974f24a573..b4d148fe3a 100644 --- a/Docs/development/jasp-build-guide-windows.md +++ b/Docs/development/jasp-build-guide-windows.md @@ -21,13 +21,13 @@ Before everything, you need to download and install the Microsoft Visual Studio - During the installation, you will be asked asked to customize your installation, in this section, here, make sure to select the followings, - From the "Workloads" tab, select the "Desktop Development with C++" item. This package includes several tools, and you should make sure that the followings are selected from the right panel, - C++ code desktop features (probably pre-selected) - - MSVC v142 (v143) - VS 2019 (2020) C++ x64/x86 build tools + - MSVC v144 - VS 2022 C++ x64/x86 build tools - Windows 10 SDK - Just-In-Time debugger - C++ profiling tools - C++ CMake Tools for Windows - From the "Individual Components" tab, search and select the following - - C++ 2019 (2022) Redistributable MSMs + - C++ 2022 Redistributable MSMs ### Installing Qt Creator and Qt 6 @@ -111,18 +111,17 @@ You should see something like below, you can edit the `default` file in `path\to ``` [settings] -os=Windows -os_build=Windows arch=x86_64 -arch_build=x86_64 -compiler=Visual Studio -compiler.version=16 -build_type=Debug -[options] +build_type=Release +compiler=msvc +compiler.cppstd=14 +compiler.runtime=dynamic +compiler.runtime_type=Release +compiler.version=194 +os=Windows [conf] -tools.microsoft.msbuild:vs_version=17 tools.cmake.cmaketoolchain:generator=Ninja -[tool_requires] + ``` > 💡 Although CMake and Qt Creator will run Conan process for you, if it's your very first time configuring JASP, and you ran into any problem, you can run the Conan command manually. If things go wrong, CMake configuration will stop and tells you what you should do to resolve the Conan issue. diff --git a/Docs/development/jasp-qml-style-example.qml b/Docs/development/jasp-qml-style-example.qml index 1a8638cce0..0c936f231b 100644 --- a/Docs/development/jasp-qml-style-example.qml +++ b/Docs/development/jasp-qml-style-example.qml @@ -2,16 +2,15 @@ //Comments (like this) will describe what the "approved" style is and how to use it. //Make sure you indent using tabs and *not* with spaces. The tabs should have a 4-space width. -import QtQuick 2.8 -import QtQuick.Layouts 1.3 -import JASP.Controls 1.0 -import JASP.Widgets 1.0 +import QtQuick +import QtQuick.Layouts +import JASP.Controls //Not exactly a style thing but every QML form should have Form as it's root: Form { //Opening braces should on their own line and at the exact same indent as the closing brace. - GroupBox //A subitem is indented and always has a space between the previous subitem/property/function + Group //A subitem is indented and always has a space between the previous subitem/property/function { title: qsTr("A nice grouping of elements") //putting qsTr(...) around string constants allows us to make the interface translatable. diff --git a/Engine/CMakeLists.txt b/Engine/CMakeLists.txt index 4ea4c84554..1d95e47b6c 100644 --- a/Engine/CMakeLists.txt +++ b/Engine/CMakeLists.txt @@ -39,7 +39,8 @@ add_dependencies(JASPEngine R-Interface) target_include_directories( JASPEngine - PUBLIC ${PROJECT_SOURCE_DIR}/R-Interface + PUBLIC + ${PROJECT_SOURCE_DIR}/R-Interface ${PROJECT_SOURCE_DIR}/CommonData ${PROJECT_SOURCE_DIR}/Common ${PROJECT_SOURCE_DIR}/Common/jaspColumnEncoder @@ -64,19 +65,17 @@ if(WIN32) endif() target_link_libraries( - JASPEngine - PUBLIC Common - CommonData - # - $<$:${_LIB_R_INTERFACE_STATIC_DLL_A}> - $<$>:R-Interface> - # Boost - Boost::system - Boost::date_time - Boost::timer - Boost::chrono - # - LibArchive::LibArchive) + JASPEngine + PUBLIC + Common + CommonData + $<$:${_LIB_R_INTERFACE_STATIC_DLL_A}> + $<$>:R-Interface> + Boost::system + Boost::date_time + Boost::timer + Boost::chrono +) if(IWYU_EXECUTABLE AND RUN_IWYU) set_target_properties(JASPEngine PROPERTIES CXX_INCLUDE_WHAT_YOU_USE diff --git a/Engine/rbridge.cpp b/Engine/rbridge.cpp index c58ed7ba58..fafc5307e0 100644 --- a/Engine/rbridge.cpp +++ b/Engine/rbridge.cpp @@ -27,6 +27,8 @@ #include "enginebase.h" #include "r_functionwhitelist.h" #include +#include + #ifdef _WIN32 #include diff --git a/Engine/rbridge.h b/Engine/rbridge.h index 52a0d819d3..3edce65f1b 100644 --- a/Engine/rbridge.h +++ b/Engine/rbridge.h @@ -24,9 +24,7 @@ #endif #include -#include -#include -#include +#include #include "jasprcpp_interface.h" #include "columnencoder.h" diff --git a/QMLComponents/ALTNavigation/altnavcontrol.cpp b/QMLComponents/ALTNavigation/altnavcontrol.cpp index a1bca2af58..3cf9d0c497 100644 --- a/QMLComponents/ALTNavigation/altnavcontrol.cpp +++ b/QMLComponents/ALTNavigation/altnavcontrol.cpp @@ -137,7 +137,7 @@ void ALTNavControl::setAltNavActive(bool value) { _dynamicTreeUpdate = true; _currentRoot->setChildrenPrefix(); - for(ALTNavScope* node : qAsConst(_attachedScopeMap)) + for(ALTNavScope* node : std::as_const(_attachedScopeMap)) { if (node->foreground()) { diff --git a/QMLComponents/ALTNavigation/altnavigation.cpp b/QMLComponents/ALTNavigation/altnavigation.cpp index 1c725663a3..8acf8b7b76 100644 --- a/QMLComponents/ALTNavigation/altnavigation.cpp +++ b/QMLComponents/ALTNavigation/altnavigation.cpp @@ -7,12 +7,3 @@ ALTNavScope* ALTNavigation::qmlAttachedProperties(QObject *object) ALTNavControl::ctrl()->registrate(scope, object); return scope; } - -//Could parameterize module -void ALTNavigation::registerQMLTypes(QString uri) -{ - std::string u = uri.toStdString(); - qmlRegisterType (u.c_str(), 1, 0, "ALTNavigation" ); - qmlRegisterType (u.c_str(), 1, 0, "ALTNavTagBase" ); - qmlRegisterUncreatableType (u.c_str(), 1, 0, "AssignmentStrategy", "Can't make it" ); -} diff --git a/QMLComponents/ALTNavigation/altnavigation.h b/QMLComponents/ALTNavigation/altnavigation.h index cc980e6906..f6f36a9efe 100644 --- a/QMLComponents/ALTNavigation/altnavigation.h +++ b/QMLComponents/ALTNavigation/altnavigation.h @@ -84,6 +84,7 @@ class ALTNavigation : public QObject { Q_OBJECT + QML_ELEMENT QML_ATTACHED(ALTNavScope) public: @@ -94,11 +95,6 @@ class ALTNavigation : public QObject */ static ALTNavScope* qmlAttachedProperties(QObject *object); - /*! - * \brief registers the QML types related to this subsystem under JASP - */ - static void registerQMLTypes(QString uri); - }; #endif // ALTNAVIGATION_H diff --git a/QMLComponents/ALTNavigation/altnavscope.cpp b/QMLComponents/ALTNavigation/altnavscope.cpp index 36149648e0..526cf002c5 100644 --- a/QMLComponents/ALTNavigation/altnavscope.cpp +++ b/QMLComponents/ALTNavigation/altnavscope.cpp @@ -15,7 +15,7 @@ ALTNavScope::ALTNavScope(QObject* attachee) if(_attachee) //is a visual item { //create a visual tag - QQmlComponent component(qmlEngine(_attachee), QUrl("qrc:///components/JASP/Widgets/ALTNavTag.qml"), _attachee); + QQmlComponent component(qmlEngine(_attachee), QUrl("qrc:/jasp-stats.org/imports/JASP/Controls/components/JASP/Controls/ALTNavTag.qml"), _attachee); _attachedTag = qobject_cast(component.create()); _attachedTag->setParentItem(_attachee); _attachedTag->setParent(_attachee); diff --git a/QMLComponents/ALTNavigation/altnavtag.h b/QMLComponents/ALTNavigation/altnavtag.h index a455f14db4..dc5a18084f 100644 --- a/QMLComponents/ALTNavigation/altnavtag.h +++ b/QMLComponents/ALTNavigation/altnavtag.h @@ -14,6 +14,7 @@ class ALTNavScope; class ALTNavTagBase : public QQuickItem { Q_OBJECT + QML_ELEMENT Q_PROPERTY( QString tagText READ getTagText NOTIFY tagTextChanged ); Q_PROPERTY( bool active READ getActive NOTIFY activeChanged ); diff --git a/QMLComponents/CMakeLists.txt b/QMLComponents/CMakeLists.txt index ce42019b0b..32077360a3 100644 --- a/QMLComponents/CMakeLists.txt +++ b/QMLComponents/CMakeLists.txt @@ -4,8 +4,21 @@ list(APPEND CMAKE_MESSAGE_CONTEXT QMLComponents) file(GLOB_RECURSE HEADER_FILES "${CMAKE_CURRENT_LIST_DIR}/*.h") file(GLOB_RECURSE SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/*.cpp") +file(GLOB_RECURSE QML_FILES RELATIVE "${CMAKE_CURRENT_LIST_DIR}" "components/JASP/Controls/*.qml") -add_library(QMLComponents ${SOURCE_FILES} ${HEADER_FILES}) +qt_add_qml_module( + QMLComponents + STATIC + URI JASP.Controls + OUTPUT_DIRECTORY "JASP/Controls" + RESOURCE_PREFIX /jasp-stats.org/imports + DEPENDENCIES QtQuick + SOURCES ${SOURCE_FILES} ${HEADER_FILES} + QML_FILES ${QML_FILES} +) + +# This define is needed for the linking +target_compile_definitions(QMLComponents PUBLIC QT_STATICPLUGIN) if(LINUX) target_link_libraries(QMLComponents PUBLIC ${_LIB_RT}) @@ -22,14 +35,20 @@ configure_file(${CMAKE_CURRENT_LIST_DIR}/utilities/appdirs.h.in ${CMAKE_CURRENT_LIST_DIR}/utilities//appdirs.h) message(STATUS "appdirs.h is successfully generated...") +target_compile_definitions(QMLComponents PUBLIC JASP_USES_QT_HERE) + target_include_directories( QMLComponents PUBLIC # JASP ${PROJECT_SOURCE_DIR}/Common - ${PROJECT_SOURCE_DIR}/Common/jaspColumnEncoder ${PROJECT_SOURCE_DIR}/CommonData + ${PROJECT_SOURCE_DIR}/Common/jaspColumnEncoder + ${CMAKE_CURRENT_LIST_DIR}/controls + ${CMAKE_CURRENT_LIST_DIR}/rsyntax + ${CMAKE_CURRENT_LIST_DIR}/ALTNavigation ) + target_link_libraries( QMLComponents PUBLIC @@ -49,16 +68,4 @@ target_link_libraries( $<$:/app/lib/$ENV{FLATPAK_ARCH}-linux-gnu/libQt6Core5Compat.so> ) -file(GLOB_RECURSE QML_RESOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/components/*") - -qt_add_resources( - QMLComponents - "qmlComponents" - PREFIX - "/" - BASE - ${CMAKE_CURRENT_LIST_DIR} - FILES - ${QML_RESOURCE_FILES}) - list(POP_BACK CMAKE_MESSAGE_CONTEXT) diff --git a/QMLComponents/analysisbase.cpp b/QMLComponents/analysisbase.cpp index 09be5e7f0f..a2e0b29ecb 100644 --- a/QMLComponents/analysisbase.cpp +++ b/QMLComponents/analysisbase.cpp @@ -10,6 +10,8 @@ AnalysisBase::AnalysisBase(QObject* parent, Version moduleVersion) : QObject(parent) , _moduleVersion(moduleVersion) { + // If the parent object is the form, just use it. This is used in R-Syntax mode when the AnalysisForm::parseOptions creates a dummy AnalysisBase + _analysisForm = qobject_cast(parent); } AnalysisBase::AnalysisBase(QObject* parent, AnalysisBase* duplicateMe) diff --git a/QMLComponents/analysisbase.h b/QMLComponents/analysisbase.h index 5ae4bee671..9e9421f7d8 100644 --- a/QMLComponents/analysisbase.h +++ b/QMLComponents/analysisbase.h @@ -11,6 +11,8 @@ class AnalysisForm; class AnalysisBase : public QObject { Q_OBJECT + QML_ELEMENT + Q_PROPERTY(QQuickItem * formItem READ formItem NOTIFY formItemChanged ) Q_PROPERTY(QString qmlError READ qmlError WRITE setQmlError NOTIFY qmlErrorChanged ) diff --git a/QMLComponents/analysisform.cpp b/QMLComponents/analysisform.cpp index 8daa6b50fa..e6377bbb4c 100644 --- a/QMLComponents/analysisform.cpp +++ b/QMLComponents/analysisform.cpp @@ -132,7 +132,7 @@ void AnalysisForm::runScriptRequestDone(const QString& result, const QString& co bindTo(Json::nullValue); // Some controls generate extra controls (rowComponents): these extra controls must be first destroyed, because they may disturb the binding of other controls // For this, bind all controls to null and wait for the controls to be completely destroyed. - QTimer::singleShot(0, [=](){ + QTimer::singleShot(0, this, [this, options](){ bindTo(options); blockValueChangeSignal(false, false); _analysis->boundValueChangedHandler(); @@ -456,7 +456,7 @@ void AnalysisForm::addControlError(JASPControl* control, QString message, bool t // Cannot instantiate _controlErrorMessageComponent in the constructor (it crashes), and it might be too late in the formCompletedHandler since error can be generated earlier // So create it when it is needed for the first time. if (!_controlErrorMessageComponent) - _controlErrorMessageComponent = new QQmlComponent(qmlEngine(this), "qrc:///components/JASP/Controls/ControlErrorMessage.qml"); + _controlErrorMessageComponent = new QQmlComponent(qmlEngine(this), "qrc:/jasp-stats.org/imports/JASP/Controls/components/JASP/Controls/ControlErrorMessage.qml"); controlErrorMessageItem = qobject_cast(_controlErrorMessageComponent->create(QQmlEngine::contextForObject(this))); if (!controlErrorMessageItem) @@ -913,7 +913,7 @@ QString AnalysisForm::helpMD() const orderedControls.removeIf([](JASPControl* c) { return c->helpMD().isEmpty(); }); if (orderedControls.length() > 0 && orderedControls[0]->controlType() != JASPControl::ControlType::Expander) - // If the first control is an ExpanderButton, then it adds already a line + // If the first control is an Section, then it adds already a line markdown << "\n---\n"; for(JASPControl * control : orderedControls) diff --git a/QMLComponents/analysisform.h b/QMLComponents/analysisform.h index 844a2114bf..5327df37ef 100644 --- a/QMLComponents/analysisform.h +++ b/QMLComponents/analysisform.h @@ -44,6 +44,8 @@ class RSyntax; class AnalysisForm : public QQuickItem { Q_OBJECT + QML_ELEMENT + Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged ) Q_PROPERTY(QString errors READ errors NOTIFY errorsChanged ) Q_PROPERTY(QString warnings READ warnings NOTIFY warningsChanged ) diff --git a/Desktop/components/JASP/Widgets/ALTNavTag.qml b/QMLComponents/components/JASP/Controls/ALTNavTag.qml similarity index 97% rename from Desktop/components/JASP/Widgets/ALTNavTag.qml rename to QMLComponents/components/JASP/Controls/ALTNavTag.qml index 0b49a37cbc..53168b1ebd 100644 --- a/Desktop/components/JASP/Widgets/ALTNavTag.qml +++ b/QMLComponents/components/JASP/Controls/ALTNavTag.qml @@ -1,6 +1,7 @@ import QtQuick import QtQuick.Controls import JASP +import JASP.Controls //Tag shown when alt navigation mode is enabled. ALTNavTagBase diff --git a/QMLComponents/components/JASP/Controls/AddColumnField.qml b/QMLComponents/components/JASP/Controls/AddColumnField.qml index 85ccacfb0d..32dfc4da5f 100644 --- a/QMLComponents/components/JASP/Controls/AddColumnField.qml +++ b/QMLComponents/components/JASP/Controls/AddColumnField.qml @@ -16,9 +16,9 @@ // . // -import QtQuick 2.11 -import JASP.Controls 1.0 -import JASP 1.0 +import QtQuick +import JASP.Controls +import JASP TextField { diff --git a/QMLComponents/components/JASP/Controls/AssignButton.qml b/QMLComponents/components/JASP/Controls/AssignButton.qml index 858d8435e0..c745ff81cf 100644 --- a/QMLComponents/components/JASP/Controls/AssignButton.qml +++ b/QMLComponents/components/JASP/Controls/AssignButton.qml @@ -17,7 +17,7 @@ // -import QtQuick 2.11 +import QtQuick Button { diff --git a/QMLComponents/components/JASP/Controls/AssignedPairsVariablesList.qml b/QMLComponents/components/JASP/Controls/AssignedPairsVariablesList.qml index 7e6e673c3b..f0836c8a99 100644 --- a/QMLComponents/components/JASP/Controls/AssignedPairsVariablesList.qml +++ b/QMLComponents/components/JASP/Controls/AssignedPairsVariablesList.qml @@ -16,7 +16,7 @@ // . // -import JASP 1.0 +import JASP VariablesList { diff --git a/QMLComponents/components/JASP/Controls/AssignedRepeatedMeasuresCells.qml b/QMLComponents/components/JASP/Controls/AssignedRepeatedMeasuresCells.qml index 2c8f300fe4..b85d83d7ca 100644 --- a/QMLComponents/components/JASP/Controls/AssignedRepeatedMeasuresCells.qml +++ b/QMLComponents/components/JASP/Controls/AssignedRepeatedMeasuresCells.qml @@ -16,7 +16,7 @@ // . // -import JASP 1.0 +import JASP VariablesList { diff --git a/QMLComponents/components/JASP/Controls/AssignedVariablesList.qml b/QMLComponents/components/JASP/Controls/AssignedVariablesList.qml index f78d5cadfd..4ab65d9735 100644 --- a/QMLComponents/components/JASP/Controls/AssignedVariablesList.qml +++ b/QMLComponents/components/JASP/Controls/AssignedVariablesList.qml @@ -16,7 +16,7 @@ // . // -import JASP 1.0 +import JASP VariablesList { diff --git a/QMLComponents/components/JASP/Controls/AvailableVariablesList.qml b/QMLComponents/components/JASP/Controls/AvailableVariablesList.qml index 35f972f077..8228825b3b 100644 --- a/QMLComponents/components/JASP/Controls/AvailableVariablesList.qml +++ b/QMLComponents/components/JASP/Controls/AvailableVariablesList.qml @@ -16,7 +16,7 @@ // . // -import JASP 1.0 +import JASP VariablesList { diff --git a/QMLComponents/components/JASP/Controls/BayesFactorType.qml b/QMLComponents/components/JASP/Controls/BayesFactorType.qml index 9076f03cdd..c127cb1a70 100644 --- a/QMLComponents/components/JASP/Controls/BayesFactorType.qml +++ b/QMLComponents/components/JASP/Controls/BayesFactorType.qml @@ -17,8 +17,8 @@ // -import QtQuick 2.8 -import JASP.Controls 1.0 +import QtQuick +import JASP.Controls RadioButtonGroup diff --git a/QMLComponents/components/JASP/Controls/Button.qml b/QMLComponents/components/JASP/Controls/Button.qml index f948836885..1f2c555f9a 100644 --- a/QMLComponents/components/JASP/Controls/Button.qml +++ b/QMLComponents/components/JASP/Controls/Button.qml @@ -15,8 +15,8 @@ // License along with this program. If not, see // . // -import QtQuick 2.11 -import JASP 1.0 +import QtQuick +import JASP.Controls JASPControl { diff --git a/QMLComponents/components/JASP/Controls/CIField.qml b/QMLComponents/components/JASP/Controls/CIField.qml index 2a9556833f..61d5d3524e 100644 --- a/QMLComponents/components/JASP/Controls/CIField.qml +++ b/QMLComponents/components/JASP/Controls/CIField.qml @@ -16,9 +16,9 @@ // . // -import QtQuick 2.11 -import JASP.Controls 1.0 -import JASP 1.0 +import QtQuick +import JASP.Controls +import JASP PercentField { diff --git a/QMLComponents/components/JASP/Controls/CheckBox.qml b/QMLComponents/components/JASP/Controls/CheckBox.qml index 289cab2e6c..505bea54fc 100644 --- a/QMLComponents/components/JASP/Controls/CheckBox.qml +++ b/QMLComponents/components/JASP/Controls/CheckBox.qml @@ -18,7 +18,7 @@ import QtQuick import QtQuick.Controls as QtC -import JASP +import JASP.Controls CheckBoxBase diff --git a/QMLComponents/components/JASP/Controls/CheckColumnIsFreeOrMineField.qml b/QMLComponents/components/JASP/Controls/CheckColumnIsFreeOrMineField.qml index 22d6835f98..204a4ee29c 100644 --- a/QMLComponents/components/JASP/Controls/CheckColumnIsFreeOrMineField.qml +++ b/QMLComponents/components/JASP/Controls/CheckColumnIsFreeOrMineField.qml @@ -16,9 +16,9 @@ // . // -import QtQuick 2.11 -import JASP.Controls 1.0 -import JASP 1.0 +import QtQuick +import JASP.Controls +import JASP TextField { diff --git a/QMLComponents/components/JASP/Controls/Chi2TestTableView.qml b/QMLComponents/components/JASP/Controls/Chi2TestTableView.qml index 240c9ee791..c71b35e518 100644 --- a/QMLComponents/components/JASP/Controls/Chi2TestTableView.qml +++ b/QMLComponents/components/JASP/Controls/Chi2TestTableView.qml @@ -17,10 +17,10 @@ // -import QtQuick 2.0 -import QtQuick.Layouts 1.11 -import JASP.Controls 1.0 -import JASP 1.0 +import QtQuick +import QtQuick.Layouts +import JASP.Controls +import JASP BasicThreeButtonTableView { diff --git a/QMLComponents/components/JASP/Controls/ColorPalette.qml b/QMLComponents/components/JASP/Controls/ColorPalette.qml index 841ad4c1d3..324919de33 100644 --- a/QMLComponents/components/JASP/Controls/ColorPalette.qml +++ b/QMLComponents/components/JASP/Controls/ColorPalette.qml @@ -17,8 +17,8 @@ // -import QtQuick 2.8 -import JASP.Controls 1.0 +import QtQuick +import JASP.Controls DropDown { diff --git a/QMLComponents/components/JASP/Controls/ColumnLayout.qml b/QMLComponents/components/JASP/Controls/ColumnLayout.qml index c4a362ea5c..3d200af4c4 100644 --- a/QMLComponents/components/JASP/Controls/ColumnLayout.qml +++ b/QMLComponents/components/JASP/Controls/ColumnLayout.qml @@ -16,8 +16,8 @@ // . // -import QtQuick 2.11 -import QtQuick.Layouts 1.3 +import QtQuick +import QtQuick.Layouts ColumnLayout diff --git a/QMLComponents/components/JASP/Controls/ComponentsList.qml b/QMLComponents/components/JASP/Controls/ComponentsList.qml index 9664e7d069..24331a7933 100644 --- a/QMLComponents/components/JASP/Controls/ComponentsList.qml +++ b/QMLComponents/components/JASP/Controls/ComponentsList.qml @@ -18,8 +18,9 @@ import QtQuick import QtQuick.Controls as QtControls -import JASP import QtQuick.Layouts +import JASP.Controls +import JASP ComponentsListBase { diff --git a/QMLComponents/components/JASP/Controls/ComputedColumnField.qml b/QMLComponents/components/JASP/Controls/ComputedColumnField.qml index a7f72a4b35..dbd4f6aff4 100644 --- a/QMLComponents/components/JASP/Controls/ComputedColumnField.qml +++ b/QMLComponents/components/JASP/Controls/ComputedColumnField.qml @@ -16,9 +16,8 @@ // . // -import QtQuick 2.11 -import JASP.Controls 1.0 -import JASP 1.0 +import QtQuick +import JASP.Controls TextField { diff --git a/QMLComponents/components/JASP/Controls/ControlErrorMessage.qml b/QMLComponents/components/JASP/Controls/ControlErrorMessage.qml index b30b886f2c..b41c064394 100644 --- a/QMLComponents/components/JASP/Controls/ControlErrorMessage.qml +++ b/QMLComponents/components/JASP/Controls/ControlErrorMessage.qml @@ -15,8 +15,8 @@ // License along with this program. If not, see // . // -import QtQuick 2.11 -import JASP 1.0 +import QtQuick +import JASP Rectangle { diff --git a/QMLComponents/components/JASP/Controls/CrossButton.qml b/QMLComponents/components/JASP/Controls/CrossButton.qml index b643de2b7b..da5dba8504 100644 --- a/QMLComponents/components/JASP/Controls/CrossButton.qml +++ b/QMLComponents/components/JASP/Controls/CrossButton.qml @@ -15,8 +15,8 @@ // License along with this program. If not, see // . // -import QtQuick 2.11 -import JASP 1.0 +import QtQuick +import JASP Item { diff --git a/QMLComponents/components/JASP/Controls/CustomContrastsTableView.qml b/QMLComponents/components/JASP/Controls/CustomContrastsTableView.qml index 8dfb8b7c93..f1f9f905eb 100644 --- a/QMLComponents/components/JASP/Controls/CustomContrastsTableView.qml +++ b/QMLComponents/components/JASP/Controls/CustomContrastsTableView.qml @@ -17,10 +17,10 @@ // -import QtQuick 2.0 -import QtQuick.Layouts 1.11 -import JASP.Controls 1.0 -import JASP 1.0 +import QtQuick +import QtQuick.Layouts +import JASP.Controls +import JASP BasicThreeButtonTableView { diff --git a/QMLComponents/components/JASP/Controls/Divider.qml b/QMLComponents/components/JASP/Controls/Divider.qml index 4a9ba1d3fb..8773d15558 100644 --- a/QMLComponents/components/JASP/Controls/Divider.qml +++ b/QMLComponents/components/JASP/Controls/Divider.qml @@ -17,8 +17,8 @@ // -import QtQuick 2.0 -import QtQuick.Layouts 1.3 +import QtQuick +import QtQuick.Layouts diff --git a/QMLComponents/components/JASP/Controls/DoubleField.qml b/QMLComponents/components/JASP/Controls/DoubleField.qml index 1e4482f3f9..4b997e50f5 100644 --- a/QMLComponents/components/JASP/Controls/DoubleField.qml +++ b/QMLComponents/components/JASP/Controls/DoubleField.qml @@ -16,9 +16,8 @@ // . // -import QtQuick 2.11 -import JASP.Controls 1.0 -import JASP 1.0 +import QtQuick +import JASP.Controls TextField { diff --git a/QMLComponents/components/JASP/Controls/ComboBox.qml b/QMLComponents/components/JASP/Controls/DropDown.qml similarity index 98% rename from QMLComponents/components/JASP/Controls/ComboBox.qml rename to QMLComponents/components/JASP/Controls/DropDown.qml index d25e695c9a..971c0552a3 100644 --- a/QMLComponents/components/JASP/Controls/ComboBox.qml +++ b/QMLComponents/components/JASP/Controls/DropDown.qml @@ -1,7 +1,7 @@ import QtQuick -import QtQuick.Controls +import QtQuick.Controls as QTC import QtQuick.Layouts -import JASP +import JASP.Controls ComboBoxBase @@ -51,7 +51,7 @@ ComboBoxBase } } - ComboBox + QTC.ComboBox { id: control implicitWidth: longestFieldWidth + (allowedTypeIcons.count > 0 ? allowedTypeIcons.width + jaspTheme.contentMargin : 0) @@ -160,7 +160,7 @@ ComboBoxBase radius: jaspTheme.jaspControlHighlightWidth } - popup: Popup + popup: QTC.Popup { id: popupRoot padding: 1 @@ -220,7 +220,7 @@ ComboBoxBase } } - delegate: ItemDelegate + delegate: QTC.ItemDelegate { implicitHeight: jaspTheme.comboBoxHeight implicitWidth: popupView.width diff --git a/QMLComponents/components/JASP/Controls/FactorLevelList.qml b/QMLComponents/components/JASP/Controls/FactorLevelList.qml index 38844ed211..79b97df0aa 100644 --- a/QMLComponents/components/JASP/Controls/FactorLevelList.qml +++ b/QMLComponents/components/JASP/Controls/FactorLevelList.qml @@ -16,10 +16,9 @@ // . // -import QtQuick 2.11 -import QtQml.Models 2.2 -import JASP.Controls 1.0 -import JASP 1.0 +import QtQuick +import QtQml.Models +import JASP.Controls FactorLevelListBase { diff --git a/QMLComponents/components/JASP/Controls/FactorsForm.qml b/QMLComponents/components/JASP/Controls/FactorsForm.qml index 32d085b583..78581af35c 100644 --- a/QMLComponents/components/JASP/Controls/FactorsForm.qml +++ b/QMLComponents/components/JASP/Controls/FactorsForm.qml @@ -1,8 +1,7 @@ -import QtQuick 2.11 -import QtQuick.Controls 2.4 -import JASP.Controls 1.0 -import JASP 1.0 -import QtQuick.Layouts 1.3 +import QtQuick +import JASP.Controls +import JASP +import QtQuick.Layouts FactorsFormBase { diff --git a/QMLComponents/components/JASP/Controls/FactorsList.qml b/QMLComponents/components/JASP/Controls/FactorsList.qml index e5808df36a..1a3945625f 100644 --- a/QMLComponents/components/JASP/Controls/FactorsList.qml +++ b/QMLComponents/components/JASP/Controls/FactorsList.qml @@ -1,5 +1,5 @@ -import QtQuick 2.8 -import JASP.Controls 1.0 +import QtQuick +import JASP.Controls AssignedVariablesList { diff --git a/QMLComponents/components/JASP/Controls/FileSelector.qml b/QMLComponents/components/JASP/Controls/FileSelector.qml index 744e4b9979..3a62f21925 100644 --- a/QMLComponents/components/JASP/Controls/FileSelector.qml +++ b/QMLComponents/components/JASP/Controls/FileSelector.qml @@ -1,6 +1,6 @@ -import JASP 1.0 -import JASP.Controls 1.0 -import QtQuick 2.11 as QT +import JASP +import JASP.Controls +import QtQuick as QT TextField { diff --git a/QMLComponents/components/JASP/Controls/Form.qml b/QMLComponents/components/JASP/Controls/Form.qml index 83cf28a43d..22be130d29 100644 --- a/QMLComponents/components/JASP/Controls/Form.qml +++ b/QMLComponents/components/JASP/Controls/Form.qml @@ -15,10 +15,10 @@ // License along with this program. If not, see // . // -import QtQuick 2.11 -import QtQuick.Controls 2.4 -import JASP.Controls 1.0 -import JASP 1.0 +import QtQuick +import QtQuick.Controls as QtC +import JASP.Controls +import JASP AnalysisForm { @@ -194,11 +194,11 @@ AnalysisForm label: qsTr("Generate Wrapper") onClicked: popup.open() - Popup + QtC.Popup { id: popup - parent: Overlay.overlay + parent: QtC.Overlay.overlay anchors.centerIn: parent width: 400 * jaspTheme.uiScale diff --git a/QMLComponents/components/JASP/Controls/FormulaField.qml b/QMLComponents/components/JASP/Controls/FormulaField.qml index afb3f0dec2..dba9af7301 100644 --- a/QMLComponents/components/JASP/Controls/FormulaField.qml +++ b/QMLComponents/components/JASP/Controls/FormulaField.qml @@ -16,9 +16,9 @@ // . // -import QtQuick 2.11 -import JASP.Controls 1.0 -import JASP 1.0 +import QtQuick +import JASP.Controls +import JASP TextField { diff --git a/QMLComponents/components/JASP/Controls/GroupBox.qml b/QMLComponents/components/JASP/Controls/Group.qml similarity index 99% rename from QMLComponents/components/JASP/Controls/GroupBox.qml rename to QMLComponents/components/JASP/Controls/Group.qml index 99a49f142c..2dc19410a9 100644 --- a/QMLComponents/components/JASP/Controls/GroupBox.qml +++ b/QMLComponents/components/JASP/Controls/Group.qml @@ -17,8 +17,8 @@ // import QtQuick -import QtQuick.Controls import QtQuick.Layouts as L +import JASP.Controls import JASP GroupBoxBase diff --git a/QMLComponents/components/JASP/Controls/HelpButton.qml b/QMLComponents/components/JASP/Controls/HelpButton.qml index 59acd29892..de7a5ef96b 100644 --- a/QMLComponents/components/JASP/Controls/HelpButton.qml +++ b/QMLComponents/components/JASP/Controls/HelpButton.qml @@ -16,9 +16,9 @@ // . // -import QtQuick 2.8 -import QtQuick.Layouts 1.3 -import JASP.Controls 1.0 +import QtQuick +import QtQuick.Layouts +import JASP.Controls ///Simple help button that shows you the 'helpPage'. Only works when run from a Form. MenuButton diff --git a/QMLComponents/components/JASP/Controls/InputListView.qml b/QMLComponents/components/JASP/Controls/InputListView.qml index 95f65152c7..21d2b93c97 100644 --- a/QMLComponents/components/JASP/Controls/InputListView.qml +++ b/QMLComponents/components/JASP/Controls/InputListView.qml @@ -16,10 +16,9 @@ // . // -import QtQuick 2.11 -import QtQml.Models 2.2 -import JASP.Controls 1.0 -import JASP 1.0 +import QtQuick +import QtQml.Models +import JASP.Controls InputListBase { diff --git a/QMLComponents/components/JASP/Controls/IntegerField.qml b/QMLComponents/components/JASP/Controls/IntegerField.qml index 6862147e8a..9c32d7269d 100644 --- a/QMLComponents/components/JASP/Controls/IntegerField.qml +++ b/QMLComponents/components/JASP/Controls/IntegerField.qml @@ -16,8 +16,8 @@ // . // -import QtQuick 2.11 -import JASP 1.0 +import QtQuick +import JASP.Controls TextField { diff --git a/QMLComponents/components/JASP/Controls/JAGSTextArea.qml b/QMLComponents/components/JASP/Controls/JAGSTextArea.qml index aa877610ac..997baf9bbc 100644 --- a/QMLComponents/components/JASP/Controls/JAGSTextArea.qml +++ b/QMLComponents/components/JASP/Controls/JAGSTextArea.qml @@ -1,6 +1,6 @@ -import QtQuick 2.0 -import JASP.Controls 1.0 -import JASP 1.0 +import QtQuick +import JASP.Controls +import JASP TextArea { diff --git a/QMLComponents/components/JASP/Controls/JASPScrollBar.qml b/QMLComponents/components/JASP/Controls/JASPScrollBar.qml index b1b99282c3..346ffb887f 100644 --- a/QMLComponents/components/JASP/Controls/JASPScrollBar.qml +++ b/QMLComponents/components/JASP/Controls/JASPScrollBar.qml @@ -17,8 +17,8 @@ // // Code based on http://stackoverflow.com/questions/17833103/how-to-create-scrollbar-in-qtquick-2-0 -import QtQuick 2 -import QtQml 2 +import QtQuick +import QtQml Item { diff --git a/QMLComponents/components/JASP/Controls/JagsTableView.qml b/QMLComponents/components/JASP/Controls/JagsTableView.qml index 03bde0fcc6..58cb16cdf6 100644 --- a/QMLComponents/components/JASP/Controls/JagsTableView.qml +++ b/QMLComponents/components/JASP/Controls/JagsTableView.qml @@ -17,10 +17,10 @@ // -import QtQuick 2.0 -import QtQuick.Layouts 1.11 -import JASP.Controls 1.0 -import JASP 1.0 +import QtQuick +import QtQuick.Layouts +import JASP.Controls +import JASP BasicThreeButtonTableView { diff --git a/QMLComponents/components/JASP/Controls/Label.qml b/QMLComponents/components/JASP/Controls/Label.qml index 856c71a037..3fb81e714d 100644 --- a/QMLComponents/components/JASP/Controls/Label.qml +++ b/QMLComponents/components/JASP/Controls/Label.qml @@ -17,10 +17,9 @@ // import QtQuick -import QtQuick.Controls +import QtQuick.Controls as QtC - -Label +QtC.Label { font: jaspTheme.font color: enabled ? jaspTheme.textEnabled : jaspTheme.textDisabled diff --git a/QMLComponents/components/JASP/Controls/MenuButton.qml b/QMLComponents/components/JASP/Controls/MenuButton.qml index fc83fb5434..598cb79c9d 100644 --- a/QMLComponents/components/JASP/Controls/MenuButton.qml +++ b/QMLComponents/components/JASP/Controls/MenuButton.qml @@ -1,7 +1,6 @@ -import QtQuick 2.11 -import QtQuick.Controls 2.2 -import QtQuick.Layouts 1.3 -import JASP.Controls 1.0 +import QtQuick +import QtQuick.Layouts +import JASP.Controls RoundedButton { diff --git a/QMLComponents/components/JASP/Controls/ModelTermsList.qml b/QMLComponents/components/JASP/Controls/ModelTermsList.qml index 646cf548e2..7f02497fda 100644 --- a/QMLComponents/components/JASP/Controls/ModelTermsList.qml +++ b/QMLComponents/components/JASP/Controls/ModelTermsList.qml @@ -16,8 +16,9 @@ // . // -import QtQuick 2.11 -import JASP 1.0 +import QtQuick +import JASP.Controls +import JASP VariablesList diff --git a/QMLComponents/components/JASP/Controls/PercentField.qml b/QMLComponents/components/JASP/Controls/PercentField.qml index 3f18153c7e..bdf40091ab 100644 --- a/QMLComponents/components/JASP/Controls/PercentField.qml +++ b/QMLComponents/components/JASP/Controls/PercentField.qml @@ -16,10 +16,8 @@ // . // -import QtQuick 2.11 -import JASP.Controls 1.0 - -import JASP 1.0 +import QtQuick +import JASP.Controls DoubleField { diff --git a/QMLComponents/components/JASP/Controls/RadioButton.qml b/QMLComponents/components/JASP/Controls/RadioButton.qml index 07eda15863..7499591b4d 100644 --- a/QMLComponents/components/JASP/Controls/RadioButton.qml +++ b/QMLComponents/components/JASP/Controls/RadioButton.qml @@ -18,7 +18,7 @@ import QtQuick import QtQuick.Controls as QtC -import JASP +import JASP.Controls RadioButtonBase diff --git a/QMLComponents/components/JASP/Controls/RadioButtonGroup.qml b/QMLComponents/components/JASP/Controls/RadioButtonGroup.qml index 10b5f566c0..0e81d74fc4 100644 --- a/QMLComponents/components/JASP/Controls/RadioButtonGroup.qml +++ b/QMLComponents/components/JASP/Controls/RadioButtonGroup.qml @@ -17,10 +17,9 @@ // -import QtQuick 2.11 -import QtQuick.Controls 2.4 -import QtQuick.Layouts 1.3 as L -import JASP 1.0 +import QtQuick +import QtQuick.Layouts as L +import JASP.Controls RadioButtonsGroupBase diff --git a/QMLComponents/components/JASP/Controls/RectangularButton.qml b/QMLComponents/components/JASP/Controls/RectangularButton.qml index 4f6cb2a556..4ca7163206 100644 --- a/QMLComponents/components/JASP/Controls/RectangularButton.qml +++ b/QMLComponents/components/JASP/Controls/RectangularButton.qml @@ -16,8 +16,8 @@ // . // -import QtQuick 2.9 -import QtQuick.Controls 2.4 +import QtQuick +import QtQuick.Controls Rectangle diff --git a/QMLComponents/components/JASP/Controls/RoundedButton.qml b/QMLComponents/components/JASP/Controls/RoundedButton.qml index 3dbde8a8bb..12698300e9 100644 --- a/QMLComponents/components/JASP/Controls/RoundedButton.qml +++ b/QMLComponents/components/JASP/Controls/RoundedButton.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick RectangularButton { diff --git a/QMLComponents/components/JASP/Controls/RowLayout.qml b/QMLComponents/components/JASP/Controls/RowLayout.qml index 992d70e1ef..8e367b563c 100644 --- a/QMLComponents/components/JASP/Controls/RowLayout.qml +++ b/QMLComponents/components/JASP/Controls/RowLayout.qml @@ -16,8 +16,8 @@ // . // -import QtQuick 2.11 -import QtQuick.Layouts 1.3 +import QtQuick +import QtQuick.Layouts RowLayout { diff --git a/QMLComponents/components/JASP/Controls/ExpanderButton.qml b/QMLComponents/components/JASP/Controls/Section.qml similarity index 98% rename from QMLComponents/components/JASP/Controls/ExpanderButton.qml rename to QMLComponents/components/JASP/Controls/Section.qml index 2587f01ea2..919de3fa10 100644 --- a/QMLComponents/components/JASP/Controls/ExpanderButton.qml +++ b/QMLComponents/components/JASP/Controls/Section.qml @@ -16,9 +16,10 @@ // . // -import QtQuick 2.11 -import QtQuick.Layouts 1.3 as L -import JASP 1.0 +import QtQuick +import QtQuick.Layouts as L +import JASP.Controls +import JASP FocusScope { diff --git a/QMLComponents/components/JASP/Controls/SetSeed.qml b/QMLComponents/components/JASP/Controls/SetSeed.qml index a867c10f5f..549b462eb5 100644 --- a/QMLComponents/components/JASP/Controls/SetSeed.qml +++ b/QMLComponents/components/JASP/Controls/SetSeed.qml @@ -1,5 +1,5 @@ // -// Copyright (C) 2013-2018 University of Amsterdam +// Copyright (C) 2013-2025 University of Amsterdam // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as @@ -17,8 +17,7 @@ // -import QtQuick 2.8 -import JASP.Controls 1.0 +import JASP.Controls Group { diff --git a/QMLComponents/components/JASP/Controls/SimpleTableView.qml b/QMLComponents/components/JASP/Controls/SimpleTableView.qml index b551acd093..06686cb9e3 100644 --- a/QMLComponents/components/JASP/Controls/SimpleTableView.qml +++ b/QMLComponents/components/JASP/Controls/SimpleTableView.qml @@ -17,10 +17,9 @@ // -import QtQuick 2.0 -import QtQuick.Layouts 1.11 -import JASP.Controls 1.0 -import JASP 1.0 +import QtQuick +import JASP.Controls +import JASP BasicThreeButtonTableView { diff --git a/QMLComponents/components/JASP/Controls/Slider.qml b/QMLComponents/components/JASP/Controls/Slider.qml index 9b9d57bbed..44cd8c99a9 100644 --- a/QMLComponents/components/JASP/Controls/Slider.qml +++ b/QMLComponents/components/JASP/Controls/Slider.qml @@ -1,8 +1,7 @@ -import QtQuick 2.11 -import QtQuick.Controls 2.4 -import JASP.Controls 1.0 as JC //He returns! -import QtQuick.Layouts 1.3 -import JASP 1.0 +import QtQuick +import QtQuick.Controls as QtC +import JASP.Controls +import QtQuick.Layouts SliderBase { @@ -45,7 +44,7 @@ SliderBase color: enabled ? jaspTheme.textEnabled : jaspTheme.textDisabled } - Slider + QtC.Slider { id: control Layout.alignment: Qt.AlignCenter @@ -105,7 +104,7 @@ SliderBase } - JC.DoubleField + DoubleField { id: textField value: control.value diff --git a/QMLComponents/components/JASP/Controls/SortMenuButton.qml b/QMLComponents/components/JASP/Controls/SortMenuButton.qml index 1de6d35880..529e40f0fa 100644 --- a/QMLComponents/components/JASP/Controls/SortMenuButton.qml +++ b/QMLComponents/components/JASP/Controls/SortMenuButton.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick MenuButton diff --git a/QMLComponents/components/JASP/Controls/SubjectivePriors.qml b/QMLComponents/components/JASP/Controls/SubjectivePriors.qml index 1a04d27a41..d1d0588676 100644 --- a/QMLComponents/components/JASP/Controls/SubjectivePriors.qml +++ b/QMLComponents/components/JASP/Controls/SubjectivePriors.qml @@ -17,10 +17,10 @@ // -import QtQuick 2.8 -import QtQuick.Layouts 1.3 -import JASP.Controls 1.0 -import JASP 1.0 +import QtQuick +import QtQuick.Layouts +import JASP.Controls +import JASP Section { diff --git a/QMLComponents/components/JASP/Controls/Switch.qml b/QMLComponents/components/JASP/Controls/Switch.qml index dc3597159f..923cb5c532 100644 --- a/QMLComponents/components/JASP/Controls/Switch.qml +++ b/QMLComponents/components/JASP/Controls/Switch.qml @@ -16,9 +16,9 @@ // . // -import QtQuick 2.11 -import QtQuick.Controls 2.4 -import JASP 1.0 +import QtQuick +import QtQuick.Controls +import JASP.Controls CheckBoxBase { diff --git a/QMLComponents/components/JASP/Controls/TabView.qml b/QMLComponents/components/JASP/Controls/TabView.qml index 5b974105b8..fa08b80baa 100644 --- a/QMLComponents/components/JASP/Controls/TabView.qml +++ b/QMLComponents/components/JASP/Controls/TabView.qml @@ -19,7 +19,7 @@ import QtQuick import QtQuick.Controls as QtControls import QtQuick.Layouts -import JASP +import JASP.Controls ComponentsListBase { diff --git a/QMLComponents/components/JASP/Controls/Text.qml b/QMLComponents/components/JASP/Controls/Text.qml index 69ed97faf7..8eb234487a 100644 --- a/QMLComponents/components/JASP/Controls/Text.qml +++ b/QMLComponents/components/JASP/Controls/Text.qml @@ -16,8 +16,7 @@ // . // -import QtQuick 2.11 -import QtQuick.Controls 2.4 +import QtQuick Text { diff --git a/QMLComponents/components/JASP/Controls/TextArea.qml b/QMLComponents/components/JASP/Controls/TextArea.qml index b04b5799e2..98c94376ed 100644 --- a/QMLComponents/components/JASP/Controls/TextArea.qml +++ b/QMLComponents/components/JASP/Controls/TextArea.qml @@ -1,7 +1,8 @@ -import QtQuick 2.11 -import QtQuick.Controls 2.4 as QTC -import QtQuick.Layouts 1.3 -import JASP 1.0 +import QtQuick +import QtQuick.Controls as QTC +import QtQuick.Layouts +import JASP.Controls +import JASP TextAreaBase { diff --git a/QMLComponents/components/JASP/Controls/TextField.qml b/QMLComponents/components/JASP/Controls/TextField.qml index 172b8d9a8d..649a4125e2 100644 --- a/QMLComponents/components/JASP/Controls/TextField.qml +++ b/QMLComponents/components/JASP/Controls/TextField.qml @@ -17,9 +17,9 @@ // import QtQuick -import QtQuick.Controls 2.4 as QTC -import QtQuick.Layouts 1.3 -import JASP 1.0 +import QtQuick.Controls as QTC +import QtQuick.Layouts +import JASP.Controls TextInputBase { diff --git a/QMLComponents/components/JASP/Controls/VariablesForm.qml b/QMLComponents/components/JASP/Controls/VariablesForm.qml index fc7bc93484..9dc9e1940e 100644 --- a/QMLComponents/components/JASP/Controls/VariablesForm.qml +++ b/QMLComponents/components/JASP/Controls/VariablesForm.qml @@ -16,9 +16,9 @@ // . // -import QtQuick 2.12 -import QtQuick.Layouts 1.12 -import JASP 1.0 +import QtQuick +import QtQuick.Layouts +import JASP.Controls VariablesFormBase { diff --git a/QMLComponents/components/JASP/Controls/VariablesList.qml b/QMLComponents/components/JASP/Controls/VariablesList.qml index 766a5937a2..6f3559d963 100644 --- a/QMLComponents/components/JASP/Controls/VariablesList.qml +++ b/QMLComponents/components/JASP/Controls/VariablesList.qml @@ -20,6 +20,7 @@ import QtQuick import QtQuick.Controls as QTCONTROLS import QtQml.Models +import JASP.Controls import JASP VariablesListBase diff --git a/QMLComponents/components/JASP/Controls/qmldir b/QMLComponents/components/JASP/Controls/qmldir deleted file mode 100644 index 1edc3a2b75..0000000000 --- a/QMLComponents/components/JASP/Controls/qmldir +++ /dev/null @@ -1,69 +0,0 @@ -module -AddColumnField 1.0 AddColumnField.qml -AssignButton 1.0 AssignButton.qml -AssignedRepeatedMeasuresCells 1.0 AssignedRepeatedMeasuresCells.qml -AssignedPairsVariablesList 1.0 AssignedPairsVariablesList.qml -AssignedVariablesList 1.0 AssignedVariablesList.qml -AvailableVariablesList 1.0 AvailableVariablesList.qml -BasicThreeButtonTableView 1.0 BasicThreeButtonTableView.qml -BayesFactorType 1.0 BayesFactorType.qml -Button 1.0 Button.qml -CheckBox 1.0 CheckBox.qml -Chi2TestTableView 1.0 Chi2TestTableView.qml -CIField 1.0 CIField.qml -ColumnLayout 1.0 ColumnLayout.qml -ColorPalette 1.0 ColorPalette.qml -ComboBox 1.0 ComboBox.qml -ComponentsList 1.0 ComponentsList.qml -ComputedColumnField 1.0 ComputedColumnField.qml -CheckColumnIsFreeOrMineField 1.0 CheckColumnIsFreeOrMineField.qml -ContrastsList 1.0 ContrastsList.qml -ControlErrorMessage 1.0 ControlErrorMessage.qml -CrossButton 1.0 CrossButton.qml -CustomContrastsTableView 1.0 CustomContrastsTableView.qml -Divider 1.0 Divider.qml -DoubleField 1.0 DoubleField.qml -DropDown 1.0 ComboBox.qml -ExpanderButton 1.0 ExpanderButton.qml -FactorLevelList 1.0 FactorLevelList.qml -FactorsForm 1.0 FactorsForm.qml -FactorsList 1.0 FactorsList.qml -FileSelector 1.0 FileSelector.qml -Form 1.0 Form.qml -FormulaField 1.0 FormulaField.qml -GridLayout 1.0 GridLayout.qml -Group 1.0 GroupBox.qml -GroupBox 1.0 GroupBox.qml -HelpButton 1.0 HelpButton.qml -InputListView 1.0 InputListView.qml -IntegerField 1.0 IntegerField.qml -JagsTableView 1.0 JagsTableView.qml -JAGSTextArea 1.0 JAGSTextArea.qml -JASPControl 1.0 JASPControl.qml -JASPGridControl 1.0 JASPGridControl.qml -JASPGridViewControl 1.0 JASPGridViewControl.qml -JASPScrollBar 1.0 JASPScrollBar.qml -Label 1.0 Label.qml -MenuButton 1.0 MenuButton.qml -ModelTermsList 1.0 ModelTermsList.qml -PercentField 1.0 PercentField.qml -RowLayout 1.0 RowLayout.qml -SubjectivePriors 1.0 SubjectivePriors.qml -SortMenuButton 1.0 SortMenuButton.qml -RoundedButton 1.0 RoundedButton.qml -RectangularButton 1.0 RectangularButton.qml -Section 1.0 ExpanderButton.qml -TabView 1.0 TabView.qml -Text 1.0 Text.qml -RadioButton 1.0 RadioButton.qml -RadioButtonGroup 1.0 RadioButtonGroup.qml -RowComponents 1.0 RowComponents.qml -SetSeed 1.0 SetSeed.qml -SimpleTableView 1.0 SimpleTableView.qml -Slider 1.0 Slider.qml -Switch 1.0 Switch.qml -TableView 1.0 TableView.qml -TextField 1.0 TextField.qml -TextArea 1.0 TextArea.qml -VariablesForm 1.0 VariablesForm.qml -VariablesList 1.0 VariablesList.qml diff --git a/QMLComponents/controls/checkboxbase.h b/QMLComponents/controls/checkboxbase.h index c06d4c8484..771aa57905 100644 --- a/QMLComponents/controls/checkboxbase.h +++ b/QMLComponents/controls/checkboxbase.h @@ -25,6 +25,7 @@ class CheckBoxBase : public JASPControl, public BoundControlBase { Q_OBJECT + QML_ELEMENT public: CheckBoxBase(QQuickItem* parent = nullptr); diff --git a/QMLComponents/controls/comboboxbase.h b/QMLComponents/controls/comboboxbase.h index b7d1bb22f2..f06ec7d63d 100644 --- a/QMLComponents/controls/comboboxbase.h +++ b/QMLComponents/controls/comboboxbase.h @@ -28,6 +28,7 @@ class ComboBoxBase : public JASPListControl, public BoundControlBase { Q_OBJECT + QML_ELEMENT Q_PROPERTY( int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged ) Q_PROPERTY( QString currentText READ currentText WRITE setCurrentText NOTIFY currentTextChanged ) diff --git a/QMLComponents/controls/componentslistbase.h b/QMLComponents/controls/componentslistbase.h index 0ceb20d16d..ff54cbd05e 100644 --- a/QMLComponents/controls/componentslistbase.h +++ b/QMLComponents/controls/componentslistbase.h @@ -26,6 +26,7 @@ class ComponentsListBase : public JASPListControl, public BoundControlBase { Q_OBJECT + QML_ELEMENT Q_PROPERTY( bool addItemManually READ addItemManually WRITE setAddItemManually NOTIFY addItemManuallyChanged ) Q_PROPERTY( int minimumItems READ minimumItems WRITE setMinimumItems NOTIFY minimumItemsChanged ) diff --git a/QMLComponents/controls/expanderbuttonbase.h b/QMLComponents/controls/expanderbuttonbase.h index 44dafcbc9d..3dc5202bbe 100644 --- a/QMLComponents/controls/expanderbuttonbase.h +++ b/QMLComponents/controls/expanderbuttonbase.h @@ -26,6 +26,8 @@ class ExpanderButtonBase : public JASPControl { Q_OBJECT + QML_ELEMENT + public: explicit ExpanderButtonBase(QQuickItem *parent = nullptr); diff --git a/QMLComponents/controls/factorlevellistbase.h b/QMLComponents/controls/factorlevellistbase.h index 9bdbb0d9bd..d266b37e7d 100644 --- a/QMLComponents/controls/factorlevellistbase.h +++ b/QMLComponents/controls/factorlevellistbase.h @@ -26,7 +26,8 @@ class FactorLevelListBase : public JASPListControl, public BoundControlBase { Q_OBJECT - + QML_ELEMENT + Q_PROPERTY( QString factorName READ factorName WRITE setFactorName NOTIFY factorNameChanged ) Q_PROPERTY( QString levelName READ levelName WRITE setLevelName NOTIFY levelNameChanged ) Q_PROPERTY( QString factorPlaceHolder READ factorPlaceHolder WRITE setFactorPlaceHolder NOTIFY factorPlaceHolderChanged ) diff --git a/QMLComponents/controls/factorsformbase.h b/QMLComponents/controls/factorsformbase.h index 9fc6c09bfd..7775637948 100644 --- a/QMLComponents/controls/factorsformbase.h +++ b/QMLComponents/controls/factorsformbase.h @@ -27,6 +27,7 @@ class FactorsFormBase : public JASPListControl, public BoundControlBase { Q_OBJECT + QML_ELEMENT Q_PROPERTY( int initNumberFactors READ initNumberFactors WRITE setInitNumberFactors NOTIFY initNumberFactorsChanged ) Q_PROPERTY( int countVariables READ countVariables NOTIFY countVariablesChanged ) diff --git a/QMLComponents/controls/groupboxbase.h b/QMLComponents/controls/groupboxbase.h index da38995fb8..e4d47583ea 100644 --- a/QMLComponents/controls/groupboxbase.h +++ b/QMLComponents/controls/groupboxbase.h @@ -24,6 +24,7 @@ class GroupBoxBase : public JASPControl { Q_OBJECT + QML_ELEMENT public: GroupBoxBase(QQuickItem* parent = nullptr); diff --git a/QMLComponents/controls/inputlistbase.h b/QMLComponents/controls/inputlistbase.h index cc104ab142..d906e9ac1d 100644 --- a/QMLComponents/controls/inputlistbase.h +++ b/QMLComponents/controls/inputlistbase.h @@ -26,7 +26,8 @@ class InputListBase : public JASPListControl, public BoundControlBase { Q_OBJECT - + QML_ELEMENT + public: InputListBase(QQuickItem* parent = nullptr); diff --git a/QMLComponents/controls/jaspcontrol.h b/QMLComponents/controls/jaspcontrol.h index 084509525e..effc66550c 100644 --- a/QMLComponents/controls/jaspcontrol.h +++ b/QMLComponents/controls/jaspcontrol.h @@ -18,6 +18,7 @@ class BoundControl; class JASPControl : public QQuickItem { Q_OBJECT + QML_ELEMENT Q_PROPERTY( ControlType controlType READ controlType WRITE setControlType NOTIFY controlTypeChanged ) Q_PROPERTY( QString name READ name WRITE setName NOTIFY nameChanged ) diff --git a/QMLComponents/controls/jaspdoublevalidator.h b/QMLComponents/controls/jaspdoublevalidator.h index 1d1d7ed6f7..e152a63b3c 100644 --- a/QMLComponents/controls/jaspdoublevalidator.h +++ b/QMLComponents/controls/jaspdoublevalidator.h @@ -29,6 +29,7 @@ class JASPDoubleValidator : public QDoubleValidator { Q_OBJECT + QML_ELEMENT Q_PROPERTY(JASPControl::Inclusive inclusive READ inclusive WRITE setInclusive NOTIFY inclusiveChanged ) diff --git a/QMLComponents/controls/jasplistcontrol.h b/QMLComponents/controls/jasplistcontrol.h index 2bc05057d5..0ea1b6a342 100644 --- a/QMLComponents/controls/jasplistcontrol.h +++ b/QMLComponents/controls/jasplistcontrol.h @@ -38,6 +38,7 @@ class ColumnTypesModel; class JASPListControl : public JASPControl { Q_OBJECT + QML_ELEMENT Q_PROPERTY( ListModel* model READ model NOTIFY modelChanged ) Q_PROPERTY( QVariant source READ source WRITE setSource NOTIFY sourceChanged ) @@ -68,9 +69,9 @@ class JASPListControl : public JASPControl public: - JASPListControl(QQuickItem* parent); - - virtual ListModel * model() const = 0; + JASPListControl(QQuickItem* parent = nullptr); + + virtual ListModel * model() const { return nullptr; } // Cannot be a pure virtual function: JASPListControl would not be a default constructible object, and could not be a QML Type virtual void setUpModel(); void setUp() override; void cleanUp() override; diff --git a/QMLComponents/controls/radiobuttonbase.h b/QMLComponents/controls/radiobuttonbase.h index 35f9051b53..37e2d4b83f 100644 --- a/QMLComponents/controls/radiobuttonbase.h +++ b/QMLComponents/controls/radiobuttonbase.h @@ -26,6 +26,8 @@ class RadioButtonsGroupBase; class RadioButtonBase : public JASPControl { Q_OBJECT + QML_ELEMENT + Q_PROPERTY(JASPControl* group READ group NOTIFY groupChanged) // Cannot have a RadioButtonsGroupBase property: compilation error in the moc stuff. public: diff --git a/QMLComponents/controls/radiobuttonsgroupbase.h b/QMLComponents/controls/radiobuttonsgroupbase.h index 43e164be77..05da6d8439 100644 --- a/QMLComponents/controls/radiobuttonsgroupbase.h +++ b/QMLComponents/controls/radiobuttonsgroupbase.h @@ -28,7 +28,8 @@ class RadioButtonBase; class RadioButtonsGroupBase : public JASPControl, public BoundControlBase { Q_OBJECT - + QML_ELEMENT + Q_PROPERTY( QString value READ value NOTIFY valueChanged ) Q_PROPERTY( RadioButtonBase* checkedButton READ checkedButton NOTIFY valueChanged ) Q_PROPERTY( QList buttons READ buttons NOTIFY buttonsChanged ) diff --git a/QMLComponents/controls/rsyntaxhighlighter.h b/QMLComponents/controls/rsyntaxhighlighter.h index 0bfe8f1fd2..b3b79678d7 100644 --- a/QMLComponents/controls/rsyntaxhighlighter.h +++ b/QMLComponents/controls/rsyntaxhighlighter.h @@ -72,6 +72,8 @@ protected slots: class RSyntaxHighlighterQuick : public QQuickItem { Q_OBJECT + QML_ELEMENT + Q_PROPERTY(QQuickTextDocument* textDocument READ textDocument WRITE setTextDocument NOTIFY textDocumentChanged) public: diff --git a/QMLComponents/controls/sliderbase.h b/QMLComponents/controls/sliderbase.h index 9318439d4e..6ab003139f 100644 --- a/QMLComponents/controls/sliderbase.h +++ b/QMLComponents/controls/sliderbase.h @@ -7,7 +7,8 @@ class SliderBase : public JASPControl, public BoundControlBase { Q_OBJECT - + QML_ELEMENT + public: SliderBase(QQuickItem* parent = nullptr); diff --git a/QMLComponents/controls/tableviewbase.h b/QMLComponents/controls/tableviewbase.h index d8edc78a81..df4d0bead7 100644 --- a/QMLComponents/controls/tableviewbase.h +++ b/QMLComponents/controls/tableviewbase.h @@ -26,6 +26,7 @@ class TableViewBase : public JASPListControl, public BoundControl { Q_OBJECT + QML_ELEMENT Q_PROPERTY( ModelType modelType READ modelType WRITE setModelType NOTIFY modelTypeChanged ) Q_PROPERTY( ItemType itemType READ itemType WRITE setItemType NOTIFY itemTypeChanged ) diff --git a/QMLComponents/controls/textareabase.h b/QMLComponents/controls/textareabase.h index 0c08ebdc61..4d231dfde5 100644 --- a/QMLComponents/controls/textareabase.h +++ b/QMLComponents/controls/textareabase.h @@ -35,6 +35,7 @@ class TextAreaBase : public JASPListControl, public BoundControl { Q_OBJECT + QML_ELEMENT Q_PROPERTY( TextType textType READ textType WRITE setTextType NOTIFY textTypeChanged ) Q_PROPERTY( bool hasScriptError READ hasScriptError WRITE setHasScriptError NOTIFY hasScriptErrorChanged ) diff --git a/QMLComponents/controls/textinputbase.cpp b/QMLComponents/controls/textinputbase.cpp index d33143609e..6b6cda622f 100644 --- a/QMLComponents/controls/textinputbase.cpp +++ b/QMLComponents/controls/textinputbase.cpp @@ -18,8 +18,6 @@ #include "textinputbase.h" #include "analysisform.h" -#include "utils.h" -#include "columnutils.h" using namespace std; diff --git a/QMLComponents/controls/textinputbase.h b/QMLComponents/controls/textinputbase.h index f7a63c6b75..8e5bc18b81 100644 --- a/QMLComponents/controls/textinputbase.h +++ b/QMLComponents/controls/textinputbase.h @@ -25,6 +25,7 @@ class TextInputBase : public JASPControl, public BoundControlBase { Q_OBJECT + QML_ELEMENT Q_PROPERTY( bool hasScriptError READ hasScriptError WRITE setHasScriptError NOTIFY hasScriptErrorChanged ) Q_PROPERTY( QVariant defaultValue READ defaultValue WRITE setDefaultValue NOTIFY defaultValueChanged ) diff --git a/QMLComponents/controls/variablesformbase.h b/QMLComponents/controls/variablesformbase.h index 4b4c9d3d2d..373640869a 100644 --- a/QMLComponents/controls/variablesformbase.h +++ b/QMLComponents/controls/variablesformbase.h @@ -26,6 +26,7 @@ class VariablesListBase; class VariablesFormBase : public JASPControl { Q_OBJECT + QML_ELEMENT Q_PROPERTY( JASPControl* availableVariablesList READ availableVariablesList NOTIFY availableVariablesListChanged ) Q_PROPERTY( QList allAssignedVariablesList READ allAssignedVariablesList NOTIFY allAssignedVariablesListChanged ) diff --git a/QMLComponents/controls/variableslistbase.h b/QMLComponents/controls/variableslistbase.h index 3e77854f91..73c17a5df7 100644 --- a/QMLComponents/controls/variableslistbase.h +++ b/QMLComponents/controls/variableslistbase.h @@ -29,6 +29,7 @@ class CheckBoxBase; class VariablesListBase : public JASPListControl, public BoundControl { Q_OBJECT + QML_ELEMENT Q_PROPERTY( ListViewType listViewType READ listViewType WRITE setListViewType NOTIFY listViewTypeChanged ) Q_PROPERTY( int columns READ columns WRITE setColumns NOTIFY columnsChanged ) diff --git a/QMLComponents/preferencesmodelbase.h b/QMLComponents/preferencesmodelbase.h index 603fd791f1..3fdf2c4939 100644 --- a/QMLComponents/preferencesmodelbase.h +++ b/QMLComponents/preferencesmodelbase.h @@ -24,6 +24,7 @@ public slots: virtual void setCurrentThemeName(QString currentThemeName) {} virtual void setShowRSyntax(bool showRSyntax) {} virtual void setShowAllROptions(bool showAllROptions) {} + virtual bool ALTNavModeActive() const { return false; } signals: void ribbonBarHeightScaleChanged(float height); @@ -34,6 +35,7 @@ public slots: void interfaceFontChanged(); void showRSyntaxChanged(); void showAllROptionsChanged(); + void ALTNavModeActiveChanged(bool ALTNavModeActive); protected: static PreferencesModelBase* _singleton; diff --git a/QMLComponents/rsyntax/formulabase.h b/QMLComponents/rsyntax/formulabase.h index 691b0713b5..8739afc4e0 100644 --- a/QMLComponents/rsyntax/formulabase.h +++ b/QMLComponents/rsyntax/formulabase.h @@ -31,6 +31,7 @@ class ListModel; class FormulaBase : public QQuickItem { Q_OBJECT + QML_NAMED_ELEMENT(Formula) Q_PROPERTY( QVariant userMustSpecify READ userMustSpecify WRITE setUserMustSpecify NOTIFY userMustSpecifyChanged ) Q_PROPERTY( QVariant lhs READ lhs WRITE setLhs NOTIFY lhsChanged ) diff --git a/QMLComponents/utilities/qmlutils.cpp b/QMLComponents/utilities/qmlutils.cpp index f0c09bbe04..4d92da101d 100644 --- a/QMLComponents/utilities/qmlutils.cpp +++ b/QMLComponents/utilities/qmlutils.cpp @@ -5,6 +5,10 @@ #include "qutils.h" #include "log.h" #include "columnencoder.h" +#include "models/term.h" +#include "jaspcontrol.h" +#include "altnavpostfixassignmentstrategy.h" +#include "variableinfo.h" #ifdef linux #include @@ -169,3 +173,34 @@ QDir QmlUtils::generateQMLCacheDir() } #endif + +void QmlUtils::setGlobalPropertiesInQMLContext(QQmlContext * ctxt) +{ + bool debug = false, + isMac = false, + isLinux = false; + +#ifdef JASP_DEBUG + debug = true; +#endif + +#ifdef __APPLE__ + isMac = true; +#endif + +#ifdef __linux__ + isLinux = true; +#endif + + bool isWindows = !isMac && !isLinux; + + ctxt->setContextProperty("DEBUG_MODE", debug); + ctxt->setContextProperty("MACOS", isMac); + ctxt->setContextProperty("LINUX", isLinux); + ctxt->setContextProperty("WINDOWS", isWindows); + ctxt->setContextProperty("INTERACTION_SEPARATOR", Term::separator); + ctxt->setContextProperty("dataSetInfo", VariableInfo::info()); + + qmlRegisterUncreatableType( "JASP", 1, 0, "JASP", "Impossible to create JASP Object"); + qmlRegisterUncreatableType("JASP", 1, 0, "AssignmentStrategy", "Can't make it" ); +} diff --git a/QMLComponents/utilities/qmlutils.h b/QMLComponents/utilities/qmlutils.h index 847488ea83..f72a12dc82 100644 --- a/QMLComponents/utilities/qmlutils.h +++ b/QMLComponents/utilities/qmlutils.h @@ -19,6 +19,8 @@ class QmlUtils : public QObject public: explicit QmlUtils(QObject *parent = nullptr); + static void setGlobalPropertiesInQMLContext(QQmlContext * ctxt); + #ifdef linux // Functions for qml cache bug workaround on linux public: @@ -27,6 +29,7 @@ class QmlUtils : public QObject static QDir generateQMLCacheDir(); #endif + public slots: QString encodeAllColumnNames( const QString & str); QString decodeAllColumnNames( const QString & str); @@ -39,5 +42,4 @@ public slots: QObject * instantiateQml( const QUrl & filePath, const std::string & moduleName, QQmlContext * ctxt = nullptr); QObject * instantiateQml(const QString & qmlTxt, const QUrl & url, const std::string & moduleName, const std::string & whatAmILoading, const std::string & filename, QQmlContext * ctxt = nullptr); - #endif // QMLUTILS_H diff --git a/QMLComponents/utilities/qutils.h b/QMLComponents/utilities/qutils.h index 0742a552a0..b376fea35a 100644 --- a/QMLComponents/utilities/qutils.h +++ b/QMLComponents/utilities/qutils.h @@ -33,7 +33,6 @@ #include #include #include -#include #include #include diff --git a/QMLComponents/variableinfo.cpp b/QMLComponents/variableinfo.cpp index c4862e5eac..a97eda24bc 100644 --- a/QMLComponents/variableinfo.cpp +++ b/QMLComponents/variableinfo.cpp @@ -9,16 +9,7 @@ VariableInfo::VariableInfo(VariableInfoProvider* providerInfo) : QObject(providerInfo->providerModel()), _provider(providerInfo) { if (_singleton == nullptr) - { _singleton = this; - QTimer::singleShot(0, [&]() { _setDataSetInfoInContext(); }); - } -} - -void VariableInfo::_setDataSetInfoInContext() -{ - QQmlContext* context = _provider->providerQMLContext(); - context->setContextProperty("dataSetInfo", this); } VariableInfo *VariableInfo::info() diff --git a/QMLComponents/variableinfo.h b/QMLComponents/variableinfo.h index e2e33640cb..07dc351044 100644 --- a/QMLComponents/variableinfo.h +++ b/QMLComponents/variableinfo.h @@ -69,8 +69,6 @@ class VariableInfo : public QObject void dataAvailableChanged(); private: - void _setDataSetInfoInContext(); - VariableInfoProvider * _provider = nullptr; static VariableInfo *_singleton; @@ -82,7 +80,6 @@ class VariableInfoProvider virtual QVariant provideInfo(VariableInfo::InfoType info, const QString& name = "", int row = 0) const = 0; virtual bool absorbInfo(VariableInfo::InfoType info, const QString& name, int row, QVariant value) = 0; virtual QAbstractItemModel* providerModel() { return nullptr; } - virtual QQmlContext* providerQMLContext() const = 0; }; class VariableInfoConsumer diff --git a/R-Interface/CMakeLists.txt b/R-Interface/CMakeLists.txt index de3bb51c17..1e0ef801e2 100644 --- a/R-Interface/CMakeLists.txt +++ b/R-Interface/CMakeLists.txt @@ -174,20 +174,14 @@ if(WIN32) target_link_libraries( R-Interface - PUBLIC # RInside - ${_LIB_RINSIDE} - # R - ${_LIB_R} - # - #${RTOOLS_LIB_JSONCPP_DLL} - # - $<$:Qt::Core>) + ${_LIB_RINSIDE} + ${_LIB_R} + ) target_compile_definitions( R-Interface PUBLIC JASP_R_INTERFACE_LIBRARY QT_NO_DEPRECATED_WARNINGS - $<$:JASP_USES_QT_HERE> $<$:PRINT_ENGINE_MESSAGES>) target_compile_definitions( @@ -209,10 +203,8 @@ else() PUBLIC # JASP ${PROJECT_SOURCE_DIR}/Common ${PROJECT_SOURCE_DIR}/CommonData - ${PROJECT_SOURCE_DIR}/Common/jaspColumnEncoder + ${PROJECT_SOURCE_DIR}/Common/jaspColumnEncoder ${PROJECT_SOURCE_DIR}/Common/jaspColumnEncoder/json - #$<$:${_PKGCONFIG_LIB_JSONCPP_INCLUDEDIR}> - # R ${R_INCLUDE_PATH} ${RCPP_PATH}/include ${RINSIDE_PATH}/include @@ -221,28 +213,23 @@ else() target_link_libraries( R-Interface - PUBLIC Boost::filesystem - Boost::system - Boost::date_time - Boost::timer - Boost::chrono - # CPM/CMake - #$<$:${_PKGCONFIG_LIB_JSONCPP_LIBRARIES}> - #$<$:${_PKGCONFIG_LIB_JSONCPP_LINK_LIBRARIES}> - #$<$:jsoncpp::jsoncpp> - # R - ${_LIB_RINSIDE} - $<$:${_LIB_R}> - $<$:${_R_Framework}> - # - $<$:Qt::Core>) + PUBLIC + Common + CommonData + Boost::system + Boost::date_time + Boost::timer + Boost::chrono + ${_LIB_RINSIDE} + $<$:${_LIB_R}> + $<$:${_R_Framework}> +) target_compile_definitions( R-Interface PUBLIC JASP_R_INTERFACE_LIBRARY QT_NO_DEPRECATED_WARNINGS - RCPP_NO_SUGAR - $<$:JASP_USES_QT_HERE> + RCPP_NO_SUGAR $<$:PRINT_ENGINE_MESSAGES>) if(IWYU_EXECUTABLE AND RUN_IWYU)