From 19de141688406f29cfc4200dc27c18369dbd2799 Mon Sep 17 00:00:00 2001 From: Vadim Peretokin Date: Thu, 8 Aug 2019 06:09:38 +0200 Subject: [PATCH] Merge release-4.0 back into development (#2918) * Remove left over debug statement for command line (#2885) * Fix permGroup for aliases and timers (#2887) * Remove text unnecessary for proxy translation (#2892) * Update autocomplete list for 4.0 (#2896) * Fix no patterns being set for triggers (#2891) * Default-initialise the repeating boolean (#2899) * Revert trigger editor changes (#2898) * Revert "Fix no patterns being set for triggers (#2891)" This reverts commit 0913755c091fef5a89ebd1a883f2e685061c6cc5. * Revert "Fix errors when creating new triggers (#2868)" This reverts commit 0578c6142889baee5c65d22b958960b1539e31ec. * Add supporters tab (#2880) (#2906) * Add initial tab and icon * Refactor text setting into separate methods * Comment improvement * Added a super simplistic structure for the Patreon tab * Added new HTML in * Add images * Remove PlaceholderText, fix Qt 5.7 compile * Add images in * Add missing end tag * Remove obsolete end tag * Set minimum size on about dialog to one that looks okay * Re-save with GIMP and fix libpng warnings * Draw our own images * Update names and white space * Layout * Typo * Dont create if already existing * Dont crash when closing Mudlet * Drop %3, save screen space * Don't print supporter's introduction big (cherry picked from commit 278d49f520318362328a02b6a49003003fa4eddd) * Update Windows Qt - 4.0 edition (#2911) * Move appveyor and windows SDK to Qt 5.12.4 * Fix macOS crash when saving settings (#2915) * 4.0.0 release * Re-set dev * Use OpenSSL 1.1.1 on Windows (#2923) * Use OpenSSL 1.1.1 on Windows * Set release build * Reset -dev * Fix dblsqd auto attachment * Fix mudletOlderThan() for 4.0 (#2925) (#2928) * mudletOlderThan fix * Logic adjustments * Combine and straighten else clauses (cherry picked from commit 42295a8526e005c89fd089106778ca5374184ee8) * Fix Patreon link in Supporters tab to open browser (#2927) (#2930) (cherry picked from commit 5647fe9628317f5e59fab845f2e191e88bb62dcb) * New Crowdin translations (#2838) * New translations mudlet.ts (French) * New translations mudlet.ts (French) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (Dutch) * New translations mudlet.ts (English, United Kingdom) * New translations mudlet.ts (French) * New translations mudlet.ts (German) * New translations mudlet.ts (Italian) * New translations mudlet.ts (Polish) * New translations mudlet.ts (Portuguese) * New translations mudlet.ts (Russian) * New translations mudlet.ts (Spanish) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Greek) * New translations mudlet.ts (Pirate English) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (English, United Kingdom) * New translations mudlet.ts (French) * New translations mudlet.ts (German) * New translations mudlet.ts (Italian) * New translations mudlet.ts (Polish) * New translations mudlet.ts (Portuguese) * New translations mudlet.ts (Russian) * New translations mudlet.ts (Spanish) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Italian) * New translations mudlet.ts (Russian) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (German) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (German) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (French) * New translations mudlet.ts (French) * New translations mudlet.ts (French) * New translations mudlet.ts (French) * New translations mudlet.ts (French) * New translations mudlet.ts (French) * New translations mudlet.ts (French) * New translations mudlet.ts (French) * New translations mudlet.ts (French) * New translations mudlet.ts (French) * New translations mudlet.ts (French) * New translations mudlet.ts (French) * New translations mudlet.ts (French) * New translations mudlet.ts (French) * New translations mudlet.ts (French) * New translations mudlet.ts (Italian) * New translations mudlet.ts (Italian) * New translations mudlet.ts (French) * New translations mudlet.ts (French) * New translations mudlet.ts (Italian) * New translations mudlet.ts (Italian) * New translations mudlet.ts (Italian) * New translations mudlet.ts (Italian) * New translations mudlet.ts (Italian) * New translations mudlet.ts (Italian) * New translations mudlet.ts (Italian) * New translations mudlet.ts (French) * New translations mudlet.ts (French) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (Dutch) * New translations mudlet.ts (English, United Kingdom) * New translations mudlet.ts (French) * New translations mudlet.ts (German) * New translations mudlet.ts (Italian) * New translations mudlet.ts (Polish) * New translations mudlet.ts (Portuguese) * New translations mudlet.ts (Russian) * New translations mudlet.ts (Spanish) * New translations mudlet.ts (Chinese Traditional) * New translations mudlet.ts (Greek) * New translations mudlet.ts (Pirate English) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (French) * New translations mudlet.ts (German) * New translations mudlet.ts (Italian) * New translations mudlet.ts (Polish) * New translations mudlet.ts (Russian) * New translations mudlet.ts (Russian) * New translations mudlet.ts (Italian) * New translations mudlet.ts (Italian) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (German) * New translations mudlet.ts (German) * New translations mudlet.ts (German) * New translations mudlet.ts (German) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (German) * New translations mudlet.ts (German) * New translations mudlet.ts (German) * New translations mudlet.ts (German) * New translations mudlet.ts (German) * New translations mudlet.ts (German) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (Chinese Simplified) * New translations mudlet.ts (Italian) * New translations mudlet.ts (Italian) * New translations mudlet.ts (German) * New translations mudlet.ts (German) * New translations mudlet.ts (German) * New translations mudlet.ts (German) * New translations mudlet.ts (Chinese Simplified) (cherry picked from commit 96e25f556f7a5020a41f1131b5cd4cad58af82ed) * 4.0.2 hotfix release * Use Qt 5.12.3 for Windows Mudlet (#2932) * Properly initialise ssl and proxy settings (#2931) * Actual 4.0.2 hotfix release * Re-set dev * Revert "Use OpenSSL 1.1.1 on Windows (#2923)" (#2934) This reverts commit 4127624fee124bdac5324d7b2a5c11cc13a81ec1. * 4.0.3 hotfix release (re-enable TLS/SSL in Windows) * Re-set dev --- .appveyor.yml | 2 +- CI/appveyor.set-environment.ps1 | 2 +- CI/qt-silent-install.qs | 2 +- CMakeLists.txt | 2 +- src/Host.cpp | 6 ++++++ src/TLuaInterpreter.cpp | 12 +++++------- src/TTrigger.cpp | 14 ++++++-------- src/TTrigger.h | 2 +- src/XMLimport.cpp | 2 +- src/dlgProfilePreferences.cpp | 4 +++- src/dlgTriggerEditor.cpp | 4 ++-- src/mudlet.pro | 6 +++--- src/mudlet.qrc | 6 ++++++ src/ui/profile_preferences.ui | 4 ++-- 14 files changed, 39 insertions(+), 29 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 70d7f3737f7..4dbf97f1687 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -13,7 +13,7 @@ environment: DBLSQD_PASS: secure: Bm5PLJjC39XmRC55RPGVP9c5CFxvWu2VorAAmu5QS38= matrix: - - QT_BASE_DIR: C:\Qt\5.12.4\mingw73_32 + - QT_BASE_DIR: C:\Qt\5.12.3\mingw73_32 MINGW_BASE_DIR: C:\Qt\Tools\mingw730_32 install: - cd "%APPVEYOR_BUILD_FOLDER%\CI" diff --git a/CI/appveyor.set-environment.ps1 b/CI/appveyor.set-environment.ps1 index 50ba4552034..4e7eabb8634 100644 --- a/CI/appveyor.set-environment.ps1 +++ b/CI/appveyor.set-environment.ps1 @@ -6,7 +6,7 @@ function SetQtBaseDir([string] $logFile) { } catch { - $Env:QT_BASE_DIR = "C:\Qt\5.12.4\mingw73_32" + $Env:QT_BASE_DIR = "C:\Qt\5.12.3\mingw73_32" } } Write-Output "Using $Env:QT_BASE_DIR as QT base directory." | Tee-Object -File "$logFile" -Append diff --git a/CI/qt-silent-install.qs b/CI/qt-silent-install.qs index e4889535efa..d72a112d7dc 100644 --- a/CI/qt-silent-install.qs +++ b/CI/qt-silent-install.qs @@ -27,7 +27,7 @@ Controller.prototype.ComponentSelectionPageCallback = function() { var widget = gui.currentPageWidget(); widget.deselectAll(); - widget.selectComponent("qt.qt5.5124.win32_mingw73"); + widget.selectComponent("qt.qt5.5123.win32_mingw73"); widget.selectComponent("qt.tools.win32_mingw730"); gui.clickButton(buttons.NextButton); diff --git a/CMakeLists.txt b/CMakeLists.txt index d3e58122efd..62632a7580c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,7 +75,7 @@ endif() # To insure consistency please ensure the SAME of the first two values are also # assigned to the "VERSION" and "BUILD" variables in the native qmake project # file, which is NOW called: ./src/mudlet.pro -set(APP_VERSION 3.22.1) +set(APP_VERSION 4.0.3) if(DEFINED ENV{MUDLET_VERSION_BUILD} AND NOT $ENV{MUDLET_VERSION_BUILD} STREQUAL "") set(APP_BUILD $ENV{MUDLET_VERSION_BUILD}) else() diff --git a/src/Host.cpp b/src/Host.cpp index ceb9e94b874..24bffb2b39b 100644 --- a/src/Host.cpp +++ b/src/Host.cpp @@ -68,6 +68,12 @@ Host::Host(int port, const QString& hostname, const QString& login, const QStrin , mFORCE_NO_COMPRESSION(false) , mFORCE_SAVE_ON_EXIT(false) , mInsertedMissingLF(false) +, mSslTsl(false) +, mUseProxy(false) +, mProxyAddress(QString()) +, mProxyPort(0) +, mProxyUsername(QString()) +, mProxyPassword(QString()) , mIsGoingDown(false) , mIsProfileLoadingSequence(false) , mLF_ON_GA(true) diff --git a/src/TLuaInterpreter.cpp b/src/TLuaInterpreter.cpp index 024b7a1e896..55a154b8924 100644 --- a/src/TLuaInterpreter.cpp +++ b/src/TLuaInterpreter.cpp @@ -6352,15 +6352,13 @@ int TLuaInterpreter::getMousePosition(lua_State* L) int TLuaInterpreter::tempTimer(lua_State* L) { double time; - bool repeating; + bool repeating{}; if (!lua_isnumber(L, 1)) { lua_pushfstring(L, "tempTimer: bad argument #1 type (time in seconds as {maybe decimal} number expected, got %s!)", luaL_typename(L, 1)); return lua_error(L); } time = lua_tonumber(L, 1); - // This is a static function so will not have a this pointer and we will have - // to get a reference to a class object and its members by looking them up: Host& host = getHostFromLua(L); TLuaInterpreter* pLuaInterpreter = host.getLuaInterpreter(); if (lua_isfunction(L, 2)) { @@ -15809,7 +15807,7 @@ int TLuaInterpreter::startPermRegexTrigger(const QString& name, const QString& p return -1; //parent not found } pT = new TTrigger(pP, mpHost); - pT->setRegexCodeList(regexList, propertyList, true); + pT->setRegexCodeList(regexList, propertyList); } pT->setIsFolder(regexList.empty()); pT->setIsActive(true); @@ -15840,7 +15838,7 @@ int TLuaInterpreter::startPermBeginOfLineStringTrigger(const QString& name, cons return -1; //parent not found } pT = new TTrigger(pP, mpHost); - pT->setRegexCodeList(regexList, propertyList, true); + pT->setRegexCodeList(regexList, propertyList); } pT->setIsFolder(regexList.empty()); pT->setIsActive(true); @@ -15870,7 +15868,7 @@ int TLuaInterpreter::startPermSubstringTrigger(const QString& name, const QStrin return -1; //parent not found } pT = new TTrigger(pP, mpHost); - pT->setRegexCodeList(regexList, propertyList, true); + pT->setRegexCodeList(regexList, propertyList); } pT->setIsFolder(regexList.empty()); pT->setIsActive(true); @@ -15899,7 +15897,7 @@ int TLuaInterpreter::startPermPromptTrigger(const QString& name, const QString& return -1; //parent not found } pT = new TTrigger(pP, mpHost); - pT->setRegexCodeList(regexList, propertyList, true); + pT->setRegexCodeList(regexList, propertyList); } pT->setIsFolder(false); pT->setIsActive(true); diff --git a/src/TTrigger.cpp b/src/TTrigger.cpp index eb173661d8b..22fcc483405 100644 --- a/src/TTrigger.cpp +++ b/src/TTrigger.cpp @@ -103,7 +103,7 @@ TTrigger::TTrigger(const QString& name, const QStringList& regexList, const QLis , mRegisteredAnonymousLuaFunction(false) , mExpiryCount(-1) { - setRegexCodeList(regexList, regexProperyList, true); + setRegexCodeList(regexList, regexProperyList); } TTrigger::~TTrigger() @@ -130,8 +130,9 @@ TTrigger::~TTrigger() void TTrigger::setName(const QString& name) { - if (!isTemporary()) { - mpHost->getTriggerUnit()->mLookupTable.remove(mName, this); + if( ! isTemporary() ) + { + mpHost->getTriggerUnit()->mLookupTable.remove( mName, this ); } mName = name; mpHost->getTriggerUnit()->mLookupTable.insertMulti(name, this); @@ -143,7 +144,7 @@ static void pcre_deleter(pcre* pointer) } //FIXME: sperren, wenn code nicht compiliert werden kann *ODER* regex falsch -bool TTrigger::setRegexCodeList(QStringList regexList, QList propertyList, const bool addingTrigger) +bool TTrigger::setRegexCodeList(QStringList regexList, QList propertyList) { regexList.replaceInStrings("\n", ""); mRegexCodeList.clear(); @@ -173,14 +174,11 @@ bool TTrigger::setRegexCodeList(QStringList regexList, QList propertyList, qDebug() << "[CRITICAL ERROR (plz report):] Trigger name=" << mName << " aborting reason: propertyList.size() != regexList.size()"; } - if (!addingTrigger && ((propertyList.empty()) && (!isFolder()) && (!mColorTrigger))) { + if ((propertyList.empty()) && (!isFolder()) && (!mColorTrigger)) { setError(QStringLiteral("%1") .arg(tr("Error: This trigger has no patterns defined, yet. Add some to activate it."))); mOK_init = false; return false; - } else if (addingTrigger) { - mOK_init = true; - return true; } bool state = true; diff --git a/src/TTrigger.h b/src/TTrigger.h index e262ac96632..17e2c7fa4e7 100644 --- a/src/TTrigger.h +++ b/src/TTrigger.h @@ -101,7 +101,7 @@ class TTrigger : public Tree void compile(); void execute(); bool isFilterChain(); - bool setRegexCodeList(QStringList regex, QList regexPropertyList, const bool addingTrigger = false); + bool setRegexCodeList(QStringList regex, QList regexPropertyList); QString getScript() { return mScript; } bool setScript(const QString& script); bool compileScript(); diff --git a/src/XMLimport.cpp b/src/XMLimport.cpp index 8a4d07a00e7..f76c4f99acc 100644 --- a/src/XMLimport.cpp +++ b/src/XMLimport.cpp @@ -1170,7 +1170,7 @@ int XMLimport::readTriggerGroup(TTrigger* pParent) } } - if (!pT->setRegexCodeList(pT->mRegexCodeList, pT->mRegexCodePropertyList, true)) { + if (!pT->setRegexCodeList(pT->mRegexCodeList, pT->mRegexCodePropertyList)) { qDebug().nospace() << "XMLimport::readTriggerGroup(...): ERROR: can not " "initialize pattern list for trigger: " << pT->getName(); diff --git a/src/dlgProfilePreferences.cpp b/src/dlgProfilePreferences.cpp index ecfd9643be1..34d59bcde6b 100644 --- a/src/dlgProfilePreferences.cpp +++ b/src/dlgProfilePreferences.cpp @@ -2444,7 +2444,9 @@ void dlgProfilePreferences::slot_save_and_exit() } #if defined(INCLUDE_UPDATER) - pMudlet->updater->setAutomaticUpdates(!checkbox_noAutomaticUpdates->isChecked()); + if (!mudlet::scmIsDevelopmentVersion) { + pMudlet->updater->setAutomaticUpdates(!checkbox_noAutomaticUpdates->isChecked()); + } #endif pMudlet->setToolBarIconSize(MainIconSize->value()); diff --git a/src/dlgTriggerEditor.cpp b/src/dlgTriggerEditor.cpp index b2e4ef52f7b..554b52ab4b7 100644 --- a/src/dlgTriggerEditor.cpp +++ b/src/dlgTriggerEditor.cpp @@ -3224,9 +3224,9 @@ void dlgTriggerEditor::addTrigger(bool isFolder) pT->setName(name); - pT->setIsFolder(isFolder); - pT->setRegexCodeList(regexList, regexPropertyList, true); + pT->setRegexCodeList(regexList, regexPropertyList); pT->setScript(script); + pT->setIsFolder(isFolder); pT->setIsActive(false); pT->setIsMultiline(false); pT->mStayOpen = 0; diff --git a/src/mudlet.pro b/src/mudlet.pro index 842ad70e9c8..eaa3b1583df 100644 --- a/src/mudlet.pro +++ b/src/mudlet.pro @@ -99,7 +99,7 @@ TEMPLATE = app ########################## Version and Build setting ########################### # Set the current Mudlet Version, unfortunately the Qt documentation suggests # that only a #.#.# form without any other alphanumberic suffixes is required: -VERSION = 3.22.1 +VERSION = 4.0.3 # if you are distributing modified code, it would be useful if you # put something distinguishing into the MUDLET_VERSION_BUILD environment @@ -319,10 +319,10 @@ DEFINES += LUA_DEFAULT_PATH=\\\"$${LUA_DEFAULT_DIR}\\\" # tweaking in that situation # Edbee widget needed in all cases. -# Mudlet customised (Lua 5.1 specific?) lua-code-format source code needed in +# Mudlet customised (Lua 5.1 specific) lua-code-format source code needed in # all cases. (The code is built into a lcf module within # TLuaInterpreter::initIndenterGlobals() on demand) - and we need to get the -# git submodule from Mudlet's own GitHub server... +# git submodule from Mudlet's own GitHub repository # NOTE: It does SEEM possible to prebuild and install this into a system wide # luarocks installation by changing to the "./3rdparty/lcf" directory with the diff --git a/src/mudlet.qrc b/src/mudlet.qrc index 699b2b2a235..c0a35835c9a 100644 --- a/src/mudlet.qrc +++ b/src/mudlet.qrc @@ -183,5 +183,11 @@ ui/package_manager.ui ui/package_manager_unpack.ui ui/set_room_area.ui + mudlet-lua/lua/generic-mapper/generic_mapper.xml + icons/clessidra.jpg + mudlet-lua/lua/utf8_filenames.lua + icons/Patreon_Mark_Primary.png + icons/frame_plaque.png + icons/frame_swords.png diff --git a/src/ui/profile_preferences.ui b/src/ui/profile_preferences.ui index f9411be0d2a..b31fe9f824c 100644 --- a/src/ui/profile_preferences.ui +++ b/src/ui/profile_preferences.ui @@ -4873,14 +4873,14 @@ - : + : - 00009 + 00009 port