diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 3c8e915a8..aeed5da81 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -46,7 +46,7 @@ concurrency: jobs: configure: name: Configure - runs-on: ubuntu-slim + runs-on: ubuntu-latest outputs: tag: ${{steps.configure.outputs.tag}} sha: ${{steps.configure.outputs.sha}} diff --git a/.github/workflows/desktop-lint.yml b/.github/workflows/desktop-lint.yml index fe7be0287..433f302a5 100644 --- a/.github/workflows/desktop-lint.yml +++ b/.github/workflows/desktop-lint.yml @@ -20,13 +20,13 @@ on: jobs: format: - runs-on: ubuntu-slim + runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v6 with: - fetch-depth: 20 # should be enough to find merge base + fetch-depth: 20 # should be enough to find merge base - name: Install dependencies shell: bash diff --git a/.github/workflows/translations-pull.yml b/.github/workflows/translations-pull.yml index ca9069192..ed61e3b19 100644 --- a/.github/workflows/translations-pull.yml +++ b/.github/workflows/translations-pull.yml @@ -16,7 +16,7 @@ jobs: if: github.event_name != 'schedule' || github.repository_owner == 'Cockatrice' name: Pull languages - runs-on: ubuntu-slim + runs-on: ubuntu-latest steps: - name: Checkout repo diff --git a/.github/workflows/translations-push.yml b/.github/workflows/translations-push.yml index e926a58ed..777e9e6ac 100644 --- a/.github/workflows/translations-push.yml +++ b/.github/workflows/translations-push.yml @@ -16,7 +16,7 @@ jobs: if: github.event_name != 'schedule' || github.repository_owner == 'Cockatrice' name: Push strings - runs-on: ubuntu-slim + runs-on: ubuntu-latest steps: - name: Checkout repo @@ -46,7 +46,7 @@ jobs: - name: Render template id: template - uses: chuhlomin/render-template/binary@v1 + uses: chuhlomin/render-template@v1 with: template: .ci/update_translation_source_strings_template.md vars: | diff --git a/.github/workflows/web-lint.yml b/.github/workflows/web-lint.yml index ecc6d14d1..8a90325e7 100644 --- a/.github/workflows/web-lint.yml +++ b/.github/workflows/web-lint.yml @@ -10,7 +10,7 @@ on: jobs: ESLint: - runs-on: ubuntu-slim + runs-on: ubuntu-latest defaults: run: diff --git a/CMakeLists.txt b/CMakeLists.txt index 4a5e944c4..fe808a652 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -74,11 +74,11 @@ endif() # A project name is needed for CPack # Version can be overriden by git tags, see cmake/getversion.cmake -project("Cockatrice" VERSION 3.0.0) +project("Cockatrice" VERSION 2.11.0) # Set release name if not provided via env/cmake var if(NOT DEFINED GIT_TAG_RELEASENAME) - set(GIT_TAG_RELEASENAME "Graduation Day") + set(GIT_TAG_RELEASENAME "Omenpath") endif() # Use c++20 for all targets diff --git a/cmake/NSIS.template.in b/cmake/NSIS.template.in index 7b52b7bcc..2fdc61fb9 100644 --- a/cmake/NSIS.template.in +++ b/cmake/NSIS.template.in @@ -11,7 +11,6 @@ SetCompressor LZMA Var NormalDestDir Var PortableDestDir Var PortableMode -Var ReinstallMode !include LogicLib.nsh !include FileFunc.nsh @@ -29,23 +28,13 @@ Var ReinstallMode !define MUI_FINISHPAGE_RUN_TEXT "Run 'Cockatrice' now" !define MUI_ICON "${NSIS_SOURCE_PATH}\cockatrice\resources\appicon.ico" -!define MUI_PAGE_CUSTOMFUNCTION_PRE SkipIfReinstall !insertmacro MUI_PAGE_WELCOME - -!define MUI_PAGE_CUSTOMFUNCTION_PRE SkipIfReinstall !insertmacro MUI_PAGE_LICENSE "${NSIS_SOURCE_PATH}\LICENSE" - Page Custom PortableModePageCreate PortableModePageLeave !define MUI_PAGE_CUSTOMFUNCTION_PRE componentsPagePre !insertmacro MUI_PAGE_COMPONENTS - -!define MUI_PAGE_CUSTOMFUNCTION_PRE SkipIfReinstall !insertmacro MUI_PAGE_DIRECTORY - -!define MUI_PAGE_CUSTOMFUNCTION_PRE SkipIfReinstall !insertmacro MUI_PAGE_INSTFILES - -!define MUI_PAGE_CUSTOMFUNCTION_PRE SkipIfReinstall !insertmacro MUI_PAGE_FINISH !insertmacro MUI_UNPAGE_CONFIRM @@ -84,7 +73,6 @@ ${IfNot} ${Errors} MessageBox MB_ICONINFORMATION|MB_SETFOREGROUND "\ /PORTABLE : Install in portable mode$\n\ /S : Silent install$\n\ - /R : Silent upgrade$\n\ /D=%directory% : Specify destination directory$\n" Quit ${EndIf} @@ -102,16 +90,6 @@ ${Else} ${EndIf} ${EndIf} -ClearErrors -${GetOptions} $9 "/R" $8 -${IfNot} ${Errors} - StrCpy $ReinstallMode 1 - SetSilent silent - SetAutoClose true -${Else} - StrCpy $ReinstallMode 0 -${EndIf} - ${If} $InstDir == "" ; User did not use /D to specify a directory, ; we need to set a default based on the install mode @@ -119,22 +97,6 @@ ${If} $InstDir == "" ${EndIf} Call SetModeDestinationFromInstdir -; --- Detect portable install when using /R --- -${If} $ReinstallMode = 1 - IfFileExists "$InstDir\portable.dat" 0 not_portable - StrCpy $PortableMode 1 - Goto portable_done - - not_portable: - StrCpy $PortableMode 0 - - portable_done: -${EndIf} - -${If} $ReinstallMode = 1 - Call AutoUninstallIfNeeded -${EndIf} - FunctionEnd Function un.onInit @@ -164,46 +126,8 @@ ${Else} ${EndIf} FunctionEnd -Function SkipIfReinstall -${If} $ReinstallMode = 1 - Abort -${EndIf} -FunctionEnd - -Function AutoUninstallIfNeeded - -SetShellVarContext all - -; --- 32-bit uninstall --- -SetRegView 32 -ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "QuietUninstallString" - -StrCmp $R0 "" done32 -DetailPrint "Removing previous version (32-bit)..." -ExecWait '$R0' - -done32: - -; --- 64-bit uninstall --- -${If} ${RunningX64} - SetRegView 64 - ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "QuietUninstallString" - - StrCmp $R0 "" done64 - DetailPrint "Removing previous version (64-bit)..." - ExecWait '$R0' - - done64: -${EndIf} - -FunctionEnd Function PortableModePageCreate - -${If} $ReinstallMode = 1 - Abort -${EndIf} - Call SetModeDestinationFromInstdir ; If the user clicks BACK on the directory page we will remember their mode specific directory !insertmacro MUI_HEADER_TEXT "Install Mode" "Choose how you want to install Cockatrice." nsDialogs::Create 1018 @@ -235,11 +159,6 @@ ${EndIf} FunctionEnd Function componentsPagePre - -${If} $ReinstallMode = 1 - Return -${EndIf} - ${If} $PortableMode = 0 SetShellVarContext all @@ -249,12 +168,8 @@ ${If} $PortableMode = 0 ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "UninstallString" StrCmp $R0 "" done32 - ${If} $ReinstallMode = 0 - MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "A previous version of Cockatrice must be uninstalled before installing the new one." IDOK uninst32 - Abort - ${Else} - Goto uninst32 - ${EndIf} + MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "A previous version of Cockatrice must be uninstalled before installing the new one." IDOK uninst32 + Abort uninst32: ClearErrors @@ -269,12 +184,8 @@ ${If} $PortableMode = 0 ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "UninstallString" StrCmp $R0 "" done64 - ${If} $ReinstallMode = 0 - MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "A previous version of Cockatrice must be uninstalled before installing the new one." IDOK uninst64 - Abort - ${Else} - Goto uninst64 - ${EndIf} + MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "A previous version of Cockatrice must be uninstalled before installing the new one." IDOK uninst64 + Abort uninst64: ClearErrors @@ -366,12 +277,6 @@ ${Else} FileWrite $0 "PORTABLE" FileClose $0 ${EndIf} - -${If} $ReinstallMode = 1 - IfFileExists "$INSTDIR\cockatrice.exe" 0 +2 - Exec '"$INSTDIR\cockatrice.exe"' -${EndIf} - SectionEnd Section "Start menu item" SecStartMenu diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_update.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_update.cpp index c9adeb270..0a9244dec 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_update.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_update.cpp @@ -219,9 +219,7 @@ void DlgUpdate::downloadSuccessful(const QUrl &filepath) { setLabel(tr("Installing...")); // Try to open the installer. If it opens, quit Cockatrice - if (QProcess::startDetached(filepath.toLocalFile(), - QStringList() - << "/R" << QString("/D=%1").arg(QCoreApplication::applicationDirPath()))) { + if (QDesktopServices::openUrl(filepath)) { QMetaObject::invokeMethod(static_cast(parent()), "close", Qt::QueuedConnection); qCInfo(DlgUpdateLog) << "Opened downloaded update file successfully - closing Cockatrice"; close(); diff --git a/oracle/src/oracleimporter.cpp b/oracle/src/oracleimporter.cpp index 578afd98d..b5d7b9856 100644 --- a/oracle/src/oracleimporter.cpp +++ b/oracle/src/oracleimporter.cpp @@ -366,6 +366,8 @@ int OracleImporter::importCardsFromSet(const CardSetPtr ¤tSet, const QList auto found_iter = splitCards.find(name + numProperty); if (found_iter == splitCards.end()) { splitCards.insert(name + numProperty, {{split}, name}); + } else if (layout == "adventure" || layout == "prepare") { + found_iter->first.insert(0, split); } else { found_iter->first.append(split); }