mirror of
https://github.com/ModOrganizer2/modorganizer.git
synced 2026-07-27 13:58:24 -07:00
Compare commits
37
Commits
2_5_x
...
dev/extensions
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8006988b20 | ||
|
|
890bee5444 | ||
|
|
263eb6a552 | ||
|
|
ee6624f091 | ||
|
|
17a2e5ef31 | ||
|
|
5c264af63e | ||
|
|
5061ff5e59 | ||
|
|
c9f592049e | ||
|
|
20711bd3bf | ||
|
|
af52b779e6 | ||
|
|
0d699bd025 | ||
|
|
28f134cc86 | ||
|
|
c6516af5db | ||
|
|
d35ffb9751 | ||
|
|
64f9c998cd | ||
|
|
a02fabc06f | ||
|
|
62fe0a4c13 | ||
|
|
1993fee880 | ||
|
|
646723cac7 | ||
|
|
9d9370100c | ||
|
|
17e54ba347 | ||
|
|
f8ea6dedd0 | ||
|
|
1d5a40738c | ||
|
|
54a7e93878 | ||
|
|
d0d0a983bb | ||
|
|
bb4f3fd74b | ||
|
|
61ef16d08d | ||
|
|
c44ee31e9f | ||
|
|
08fc25d641 | ||
|
|
f305502c5d | ||
|
|
b6de58f2d3 | ||
|
|
75e24cd926 | ||
|
|
bafc058b7f | ||
|
|
71434efaa9 | ||
|
|
8f1dbe9f35 | ||
|
|
19fae10b2b | ||
|
|
7ed06a77c1 |
@@ -6,15 +6,47 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
types: [opened, synchronize, reopened]
|
types: [opened, synchronize, reopened]
|
||||||
|
|
||||||
|
env:
|
||||||
|
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: windows-2022
|
runs-on: windows-2022
|
||||||
steps:
|
steps:
|
||||||
- name: Build ModOrganizer 2
|
# https://learn.microsoft.com/en-us/vcpkg/consume/binary-caching-github-actions-cache
|
||||||
uses: ModOrganizer2/build-with-mob-action@master
|
- name: Export GitHub Actions cache environment variables
|
||||||
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
qt-modules: qtpositioning qtwebchannel qtwebengine qtwebsockets
|
script: |
|
||||||
mo2-third-parties:
|
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
||||||
7z zlib gtest libbsarch libloot openssl bzip2 python lz4 spdlog
|
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
||||||
boost boost-di sip pyqt pybind11 ss licenses explorerpp DirectXTex
|
|
||||||
mo2-dependencies: usvfs cmake_common uibase githubpp bsatk esptk archive lootcli game_gamebryo
|
- name: Install Qt
|
||||||
|
uses: jurplel/install-qt-action@v3
|
||||||
|
with:
|
||||||
|
version: 6.7.1
|
||||||
|
modules: qtpositioning qtwebchannel qtwebengine qtwebsockets
|
||||||
|
cache: true
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: "Set environmental variables"
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "VCPKG_ROOT=$VCPKG_INSTALLATION_ROOT" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Configure ModOrganizer
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
cmake --preset vs2022-windows-standalone `
|
||||||
|
"-DCMAKE_PREFIX_PATH=${env:QT_ROOT_DIR}\msvc2019_64" `
|
||||||
|
"-DCMAKE_INSTALL_PREFIX=install"
|
||||||
|
|
||||||
|
- name: Build ModOrganizer
|
||||||
|
run: cmake --build vsbuild --config RelWithDebInfo --target INSTALL
|
||||||
|
|
||||||
|
- name: Package ModOrganizer
|
||||||
|
uses: actions/upload-artifact@master
|
||||||
|
with:
|
||||||
|
name: modorganizer
|
||||||
|
path: ./install
|
||||||
|
|||||||
@@ -12,5 +12,6 @@ edit
|
|||||||
/msbuild.log
|
/msbuild.log
|
||||||
/*std*.log
|
/*std*.log
|
||||||
/*build
|
/*build
|
||||||
|
.vscode
|
||||||
|
|
||||||
/src/version.aps
|
/src/version.aps
|
||||||
|
|||||||
@@ -1,46 +0,0 @@
|
|||||||
syntax: glob
|
|
||||||
scons_configure.py
|
|
||||||
scons-ModOrganizer-*
|
|
||||||
ModOrganizer-build-desktop*
|
|
||||||
outputd/*
|
|
||||||
output/*
|
|
||||||
build-ModOrganizer-*
|
|
||||||
source/NCC/*/bin
|
|
||||||
source/NCC/*/obj
|
|
||||||
source/NCC/bin
|
|
||||||
*.orig
|
|
||||||
source/plugins/proxyPython/build
|
|
||||||
staging/*
|
|
||||||
source - Copy/*
|
|
||||||
ModOrganizer-build-*
|
|
||||||
pdbs/*
|
|
||||||
source/NCC/BossDummy.x/*
|
|
||||||
*.ts
|
|
||||||
staging_prepare/*
|
|
||||||
staging_trans/*
|
|
||||||
tools/python_zip/*
|
|
||||||
Makefile
|
|
||||||
html
|
|
||||||
*.vcxproj
|
|
||||||
*.pdb
|
|
||||||
*.dll
|
|
||||||
*.exp
|
|
||||||
*.tlog
|
|
||||||
*.user
|
|
||||||
*.obj
|
|
||||||
*.suo
|
|
||||||
*.sln
|
|
||||||
*.log
|
|
||||||
*.filters
|
|
||||||
*.lib
|
|
||||||
source/organizer/resources/contents/icons
|
|
||||||
source/plugins/build-*
|
|
||||||
*/GeneratedFiles/*
|
|
||||||
translations/*
|
|
||||||
source/LocalPaths.pri
|
|
||||||
source/*/Win32/Debug/*
|
|
||||||
source/plugins/*/Win32/Debug/*
|
|
||||||
*~
|
|
||||||
syntax: regexp
|
|
||||||
Makefile\.(Debug|Release)
|
|
||||||
source/.*/debug/.*
|
|
||||||
+12
-11
@@ -1,16 +1,17 @@
|
|||||||
cmake_minimum_required(VERSION 3.16)
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
# TODO: move these to cmake_common?
|
# TODO: clean include directives
|
||||||
set(OPENSSL_USE_STATIC_LIBS FALSE CACHE STRING "" FORCE)
|
set(MO2_CMAKE_DEPRECATED_UIBASE_INCLUDE ON)
|
||||||
set(MySQL_INCLUDE_DIRS CACHE STRING "" FORCE)
|
|
||||||
|
|
||||||
if(DEFINED DEPENDENCIES_DIR)
|
|
||||||
include(${DEPENDENCIES_DIR}/modorganizer_super/cmake_common/mo2.cmake)
|
|
||||||
else()
|
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/../cmake_common/mo2.cmake)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
project(organizer)
|
project(organizer)
|
||||||
add_subdirectory(src)
|
|
||||||
|
|
||||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dump_running_process.bat DESTINATION bin)
|
find_package(mo2-cmake CONFIG REQUIRED)
|
||||||
|
|
||||||
|
set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1)
|
||||||
|
|
||||||
|
add_subdirectory(src)
|
||||||
|
add_subdirectory(themes)
|
||||||
|
|
||||||
|
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT organizer)
|
||||||
|
|
||||||
|
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dump_running_process.bat DESTINATION ${MO2_INSTALL_BIN})
|
||||||
|
|||||||
@@ -0,0 +1,59 @@
|
|||||||
|
{
|
||||||
|
"configurePresets": [
|
||||||
|
{
|
||||||
|
"errors": {
|
||||||
|
"deprecated": true
|
||||||
|
},
|
||||||
|
"hidden": true,
|
||||||
|
"name": "cmake-dev",
|
||||||
|
"warnings": {
|
||||||
|
"deprecated": true,
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cacheVariables": {
|
||||||
|
"VCPKG_MANIFEST_NO_DEFAULT_FEATURES": {
|
||||||
|
"type": "BOOL",
|
||||||
|
"value": "ON"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"toolchainFile": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
|
||||||
|
"hidden": true,
|
||||||
|
"name": "vcpkg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"binaryDir": "${sourceDir}/vsbuild",
|
||||||
|
"architecture": {
|
||||||
|
"strategy": "set",
|
||||||
|
"value": "x64"
|
||||||
|
},
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_CXX_FLAGS": "/EHsc /MP /W3",
|
||||||
|
"VCPKG_TARGET_TRIPLET": {
|
||||||
|
"type": "STRING",
|
||||||
|
"value": "x64-windows-static-md"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"generator": "Visual Studio 17 2022",
|
||||||
|
"inherits": ["cmake-dev", "vcpkg"],
|
||||||
|
"name": "vs2022-windows",
|
||||||
|
"toolset": "v143"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cacheVariables": {
|
||||||
|
"VCPKG_MANIFEST_FEATURES": {
|
||||||
|
"type": "STRING",
|
||||||
|
"value": "standalone"
|
||||||
|
},
|
||||||
|
"MO2_INSTALL_IS_BIN": {
|
||||||
|
"type": "BOOL",
|
||||||
|
"value": "ON"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"inherits": "vs2022-windows",
|
||||||
|
"name": "vs2022-windows-standalone"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": 4
|
||||||
|
}
|
||||||
-713
File diff suppressed because it is too large
Load Diff
@@ -1,77 +0,0 @@
|
|||||||
version: dev-appveyor{build}
|
|
||||||
skip_branch_with_pr: true
|
|
||||||
image: Visual Studio 2019
|
|
||||||
init:
|
|
||||||
- ps: >-
|
|
||||||
# define build version depending on nightly or normal build
|
|
||||||
|
|
||||||
if($env:APPVEYOR_SCHEDULED_BUILD -eq 'True'){
|
|
||||||
$timestamp= Get-Date -Format "ddMMyyyy-HHmm"
|
|
||||||
Update-AppveyorBuild -Version "$($env:MO_VERSION)$($env:VER_STUB_NIGHTLY)$timestamp"
|
|
||||||
} else {
|
|
||||||
Update-AppveyorBuild -Version "$($env:MO_VERSION)$($env:VER_STUB_NORMAL)$($env:APPVEYOR_BUILD_NUMBER)"
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Host Build version set to: $env:APPVEYOR_BUILD_VERSION
|
|
||||||
environment:
|
|
||||||
WEBHOOK_URL:
|
|
||||||
secure: gOKbXaZM9ImtMD5XrYITvdyZUW/az082G9OIN1EC1VaKiI9iefpxhBavJ6Al6CzIZvQ+3pxnLqjmNgA7cDc22wcj2kB4hSG5qhbTI8wGa8jLQ5L65nuRZ3vrIqghBz9G3GLglgZkg6eqH9r3Kqc6UzcpCGzxxPOqm550nRcIiUU=
|
|
||||||
MO_VERSION: 2.4.0
|
|
||||||
VER_STUB_NORMAL: dev-appveyor-
|
|
||||||
VER_STUB_NIGHTLY: dev-nightly-
|
|
||||||
build_script:
|
|
||||||
- pwsh: >-
|
|
||||||
# Maintenance comments:
|
|
||||||
|
|
||||||
# APPVEYOR_BUILD_FOLDER= "c:\projects\modorganizer-slug"
|
|
||||||
|
|
||||||
# -Need to update py3 version used to invoke unimake.py once in a while.
|
|
||||||
|
|
||||||
# -Need update MO_VERSION env variable after each release.
|
|
||||||
|
|
||||||
# -Always clones umbrella master
|
|
||||||
|
|
||||||
# -Will checkout all the branches matching the one that triggered the build on the main repo.
|
|
||||||
|
|
||||||
# End comments.
|
|
||||||
|
|
||||||
$ErrorActionPreference = 'Stop'
|
|
||||||
|
|
||||||
git clone --depth=1 --no-single-branch https://github.com/ModOrganizer2/modorganizer-umbrella.git c:\projects\modorganizer-umbrella
|
|
||||||
|
|
||||||
New-Item -ItemType Directory -Path ${env:APPVEYOR_BUILD_FOLDER}\modorganizer-build
|
|
||||||
|
|
||||||
cd c:\projects\modorganizer-umbrella
|
|
||||||
|
|
||||||
($env:APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH -eq $null) ? ($branch = $env:APPVEYOR_REPO_BRANCH) : ($branch = $env:APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH)
|
|
||||||
|
|
||||||
git checkout $(git show-ref --verify --quiet refs/remotes/origin/${branch} || echo '-b') ${branch}
|
|
||||||
|
|
||||||
C:\Python38-x64\python.exe unimake.py -d ${env:APPVEYOR_BUILD_FOLDER}\modorganizer-build -s Appveyor_Build=True -s Feature_Branch=${env:APPVEYOR_REPO_BRANCH} -s override_build_version=${env:APPVEYOR_BUILD_VERSION}
|
|
||||||
|
|
||||||
if($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode ) }
|
|
||||||
test: off
|
|
||||||
artifacts:
|
|
||||||
- path: '\modorganizer-build\install\bin\ModOrganizer.exe'
|
|
||||||
name: Mod.Organizer-$(APPVEYOR_BUILD_VERSION)
|
|
||||||
- path: '\modorganizer-build\install\pdb\ModOrganizer.pdb'
|
|
||||||
name: PDB-Mod.Organizer-$(APPVEYOR_BUILD_VERSION)
|
|
||||||
deploy: off
|
|
||||||
on_success:
|
|
||||||
- ps: >-
|
|
||||||
Set-Location -Path $env:APPVEYOR_BUILD_FOLDER
|
|
||||||
|
|
||||||
Invoke-RestMethod https://raw.githubusercontent.com/DiscordHooks/appveyor-discord-webhook/master/send.ps1 -o send.ps1
|
|
||||||
|
|
||||||
if($env:APPVEYOR_SCHEDULED_BUILD -ne 'True'){
|
|
||||||
./send.ps1 success $env:WEBHOOK_URL
|
|
||||||
}
|
|
||||||
on_failure:
|
|
||||||
- ps: >-
|
|
||||||
Set-Location -Path $env:APPVEYOR_BUILD_FOLDER
|
|
||||||
|
|
||||||
Invoke-RestMethod https://raw.githubusercontent.com/DiscordHooks/appveyor-discord-webhook/master/send.ps1 -o send.ps1
|
|
||||||
|
|
||||||
if($env:APPVEYOR_SCHEDULED_BUILD -ne 'True'){
|
|
||||||
./send.ps1 failure $env:WEBHOOK_URL
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
[
|
|
||||||
|
|
||||||
# for boost???
|
|
||||||
# These are probably correct but might need a revisit as if you look at the boost documentation pages, it
|
|
||||||
# can give you huge lists of alternate includes...
|
|
||||||
{ symbol: [ "BOOST_FOREACH", "private", "<boost/foreach.hpp>", "public" ] },
|
|
||||||
|
|
||||||
{ include: [ "@\"boost/bind/.*\"", "private", "<boost/bind.hpp>", "public" ] },
|
|
||||||
{ include: [ "@\"boost/algorithm/string/.*\"", "private", "<boost/algorithm/string.hpp>", "public" ] },
|
|
||||||
{ include: [ "@\"boost/assign/.*\"", "private", "<boost/assign.hpp>", "public" ] },
|
|
||||||
{ include: [ "@\"boost/filesystem/.*\"", "private", "<boost/filesystem.hpp>", "public" ] },
|
|
||||||
{ include: [ "@\"boost/format/.*\"", "private", "<boost/format.hpp>", "public" ] },
|
|
||||||
{ include: [ "@\"boost/function/.*\"", "private", "<boost/function.hpp>", "public" ] },
|
|
||||||
{ include: [ "@\"boost/local/.*\"", "private", "<boost/locale.hpp>", "public" ] },
|
|
||||||
{ include: [ "@\"boost/python/.*\"", "private", "<boost/python.hpp>", "public" ] },
|
|
||||||
{ include: [ "@\"boost/signals2/.*\"", "private", "<boost/signals2.hpp>", "public" ] },
|
|
||||||
{ include: [ "\"boost/smart_ptr/scoped_array.hpp\"", "private", "<boost/scoped_array.hpp>", "public" ] },
|
|
||||||
{ include: [ "\"boost/smart_ptr/shared_ptr.hpp\"", "private", "<boost/shared_ptr.hpp>", "public" ] },
|
|
||||||
# this appears to be excessive
|
|
||||||
#{ include: [ "@\"boost/thread/.*\"", "private", "<boost/thread.hpp>", "public" ] },
|
|
||||||
|
|
||||||
# And this is specific to us
|
|
||||||
{ include: [ "\"appconfig.inc\"", "private", "\"appconfig.h\"", "public" ] },
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
# Ones I don't yet know how to deal with
|
|
||||||
#include "boost/fusion/container/vector/vector10_fwd.hpp" // for fusion
|
|
||||||
#include "boost/iterator/iterator_facade.hpp" // for operator!=
|
|
||||||
#include "boost/iterator/iterator_facade.hpp"
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
# This python script contains the configuration for scons
|
|
||||||
# Copy this to scons_configure.py and adjust to taste.
|
|
||||||
|
|
||||||
# Path to your boost install - it should have a boost/ subdirectory and a stage/
|
|
||||||
# subdirectory. The scons script will use stage/lib if there, or the appropriate
|
|
||||||
# version for your compiler, if you installed the multiple-build version
|
|
||||||
BOOSTPATH = r"C:\Apps\boost_1_55_0"
|
|
||||||
|
|
||||||
# Version of Visual Studio to use, if you wish to use a specific version. If you
|
|
||||||
# don't specify a version, the latest will be picked.. See the scons manual for
|
|
||||||
# supported values.
|
|
||||||
#MSVC_VERSION = '10.0Exp'
|
|
||||||
|
|
||||||
# Path to your python install
|
|
||||||
# You don't really need to set this up but you might if (say) you have a 32- and
|
|
||||||
# 64-bit python install and scons has been installed for the 64 bit version
|
|
||||||
#PYTHONPATH=r"C:\Apps\Python"
|
|
||||||
|
|
||||||
# Path to your QT install. This might constrain the version of MSVC you can use.
|
|
||||||
# This seems to be set by QTCreator
|
|
||||||
#QTDIR = r"C:\Apps\Qt\4.8.6"
|
|
||||||
|
|
||||||
# Path to 7-zip sources
|
|
||||||
SEVENZIPPATH = r"C:\Apps\7-Zip\7z920"
|
|
||||||
|
|
||||||
# Path to zlib. Please read the README file for more information about how this
|
|
||||||
# needs to be set up
|
|
||||||
ZLIBPATH = r"C:\Apps\zlib-1.2.8"
|
|
||||||
|
|
||||||
# Source control programs. Sadly I can't get this information from qt, even
|
|
||||||
# though you have to set it up in the configuration
|
|
||||||
GIT = r"C:\Program Files\git\bin\git.exe"
|
|
||||||
MERCURIAL = r"C:\Program Files\TortoiseHg\hg.exe"
|
|
||||||
+101
-23
@@ -1,36 +1,100 @@
|
|||||||
cmake_minimum_required(VERSION 3.16)
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
|
find_package(mo2-cmake CONFIG REQUIRED)
|
||||||
|
|
||||||
|
find_package(usvfs CONFIG REQUIRED)
|
||||||
|
|
||||||
|
find_package(mo2-uibase CONFIG REQUIRED)
|
||||||
|
find_package(mo2-archive CONFIG REQUIRED)
|
||||||
|
find_package(mo2-lootcli-header CONFIG REQUIRED)
|
||||||
|
find_package(mo2-bsatk CONFIG REQUIRED)
|
||||||
|
find_package(mo2-esptk CONFIG REQUIRED)
|
||||||
|
find_package(mo2-dds-header CONFIG REQUIRED)
|
||||||
|
find_package(mo2-libbsarch CONFIG REQUIRED)
|
||||||
|
|
||||||
|
find_package(Qt6 REQUIRED COMPONENTS WebEngineWidgets WebSockets)
|
||||||
|
find_package(Boost CONFIG REQUIRED COMPONENTS program_options thread interprocess signals2 uuid accumulators)
|
||||||
|
find_package(7zip CONFIG REQUIRED)
|
||||||
|
find_package(lz4 CONFIG REQUIRED)
|
||||||
|
find_package(ZLIB REQUIRED)
|
||||||
|
|
||||||
add_executable(organizer)
|
add_executable(organizer)
|
||||||
set_target_properties(organizer PROPERTIES OUTPUT_NAME "ModOrganizer")
|
set_target_properties(organizer PROPERTIES
|
||||||
mo2_configure_executable(organizer
|
OUTPUT_NAME "ModOrganizer"
|
||||||
WARNINGS OFF
|
WIN32_EXECUTABLE TRUE)
|
||||||
EXTRA_TRANSLATIONS ${MO2_SUPER_PATH}/game_gamebryo/src ${MO2_UIBASE_PATH}/src
|
|
||||||
PRIVATE_DEPENDS
|
# disable translations because we want to be able to install somewhere else if
|
||||||
uibase githubpp bsatk esptk archive usvfs lootcli boost::program_options
|
# required
|
||||||
DirectXTex libbsarch Qt::WebEngineWidgets Qt::WebSockets)
|
mo2_configure_target(organizer WARNINGS 3 TRANSLATIONS OFF)
|
||||||
target_link_libraries(organizer PUBLIC Shlwapi)
|
|
||||||
target_include_directories(organizer PUBLIC ${DDS_ROOT})
|
# we add translations "manually" to handle MO2_INSTALL_IS_BIN
|
||||||
mo2_install_target(organizer)
|
mo2_add_translations(organizer
|
||||||
|
INSTALL_RELEASE
|
||||||
|
INSTALL_DIRECTORY "${MO2_INSTALL_BIN}/translations"
|
||||||
|
SOURCES ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
|
mo2_set_project_to_run_from_install(
|
||||||
|
organizer EXECUTABLE ${CMAKE_INSTALL_PREFIX}/${MO2_INSTALL_BIN}/ModOrganizer.exe)
|
||||||
|
|
||||||
|
target_link_libraries(organizer PRIVATE
|
||||||
|
Shlwapi Bcrypt
|
||||||
|
usvfs::usvfs mo2::uibase mo2::archive mo2::libbsarch
|
||||||
|
mo2::bsatk mo2::esptk mo2::lootcli-header
|
||||||
|
Boost::program_options Boost::signals2 Boost::uuid Boost::accumulators
|
||||||
|
Qt6::WebEngineWidgets Qt6::WebSockets Version Dbghelp)
|
||||||
|
|
||||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/dlls.manifest.qt6"
|
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/dlls.manifest.qt6"
|
||||||
DESTINATION bin/dlls
|
DESTINATION ${MO2_INSTALL_BIN}/dlls
|
||||||
CONFIGURATIONS Release RelWithDebInfo
|
CONFIGURATIONS Release RelWithDebInfo
|
||||||
RENAME dlls.manifest)
|
RENAME dlls.manifest)
|
||||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/dlls.manifest.debug.qt6"
|
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/dlls.manifest.debug.qt6"
|
||||||
DESTINATION bin/dlls
|
DESTINATION ${MO2_INSTALL_BIN}/dlls
|
||||||
CONFIGURATIONS Debug
|
CONFIGURATIONS Debug
|
||||||
RENAME dlls.manifest)
|
RENAME dlls.manifest)
|
||||||
|
|
||||||
install(DIRECTORY
|
if (NOT MO2_SKIP_TUTORIALS_INSTALL)
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/stylesheets"
|
install(
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/tutorials"
|
DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/tutorials"
|
||||||
DESTINATION bin)
|
DESTINATION ${MO2_INSTALL_BIN})
|
||||||
|
endif()
|
||||||
|
|
||||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/resources/markdown.html"
|
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/resources/markdown.html"
|
||||||
DESTINATION bin/resources)
|
DESTINATION ${MO2_INSTALL_BIN}/resources)
|
||||||
|
|
||||||
mo2_deploy_qt(BINARIES ModOrganizer.exe uibase.dll plugins/bsa_packer.dll)
|
# install ModOrganizer.exe itself
|
||||||
|
install(FILES $<TARGET_FILE:organizer> DESTINATION ${MO2_INSTALL_BIN})
|
||||||
|
|
||||||
|
# install dependencies DLLs
|
||||||
|
install(FILES $<TARGET_FILE:mo2::libbsarch> DESTINATION ${MO2_INSTALL_BIN}/dlls)
|
||||||
|
install(FILES $<TARGET_FILE:mo2::archive> DESTINATION ${MO2_INSTALL_BIN}/dlls)
|
||||||
|
install(FILES $<TARGET_FILE:7zip::7zip> DESTINATION ${MO2_INSTALL_BIN}/dlls)
|
||||||
|
|
||||||
|
# this may copy over the ones from uibase/usvfs
|
||||||
|
# - when building with mob, this should not matter as the files should be identical
|
||||||
|
# - when building standalone, this should help having matching USVFS DLL between the
|
||||||
|
# build and the installation
|
||||||
|
# - this may cause issue with uibase in standalone mode if the installed version does
|
||||||
|
# not match the one used for the build, but there would be other issue anyway (e.g.
|
||||||
|
# different uibase.dll between modorganizer and plugins)
|
||||||
|
#
|
||||||
|
install(FILES
|
||||||
|
$<TARGET_FILE:mo2::uibase>
|
||||||
|
$<TARGET_FILE:usvfs_x64::usvfs_dll>
|
||||||
|
$<TARGET_FILE:usvfs_x86::usvfs_dll>
|
||||||
|
$<TARGET_FILE:usvfs_x64::usvfs_proxy>
|
||||||
|
$<TARGET_FILE:usvfs_x86::usvfs_proxy>
|
||||||
|
DESTINATION ${MO2_INSTALL_BIN})
|
||||||
|
|
||||||
|
# do not install PDB if CMAKE_INSTALL_PREFIX is "bin"
|
||||||
|
if (NOT MO2_INSTALL_IS_BIN)
|
||||||
|
install(FILES $<TARGET_PDB_FILE:organizer> DESTINATION pdb)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
mo2_deploy_qt(
|
||||||
|
DIRECTORY ${MO2_INSTALL_BIN}
|
||||||
|
BINARIES ModOrganizer.exe $<TARGET_FILE_NAME:mo2::uibase>)
|
||||||
|
|
||||||
|
# set source groups for VS
|
||||||
mo2_add_filter(NAME src/application GROUPS
|
mo2_add_filter(NAME src/application GROUPS
|
||||||
iuserinterface
|
iuserinterface
|
||||||
commandline
|
commandline
|
||||||
@@ -49,20 +113,20 @@ mo2_add_filter(NAME src/browser GROUPS
|
|||||||
)
|
)
|
||||||
|
|
||||||
mo2_add_filter(NAME src/categories GROUPS
|
mo2_add_filter(NAME src/categories GROUPS
|
||||||
categories
|
categories
|
||||||
categoriestable
|
categoriestable
|
||||||
categoriesdialog
|
categoriesdialog
|
||||||
categoryimportdialog
|
categoryimportdialog
|
||||||
)
|
)
|
||||||
|
|
||||||
mo2_add_filter(NAME src/core GROUPS
|
mo2_add_filter(NAME src/core GROUPS
|
||||||
archivefiletree
|
archivefiletree
|
||||||
|
github
|
||||||
|
inibakery
|
||||||
installationmanager
|
installationmanager
|
||||||
nexusinterface
|
nexusinterface
|
||||||
nxmaccessmanager
|
nxmaccessmanager
|
||||||
organizercore
|
organizercore
|
||||||
game_features
|
|
||||||
plugincontainer
|
|
||||||
apiuseraccount
|
apiuseraccount
|
||||||
processrunner
|
processrunner
|
||||||
qdirfiletree
|
qdirfiletree
|
||||||
@@ -70,6 +134,16 @@ mo2_add_filter(NAME src/core GROUPS
|
|||||||
uilocker
|
uilocker
|
||||||
)
|
)
|
||||||
|
|
||||||
|
mo2_add_filter(NAME src/extensions GROUPS
|
||||||
|
game_features
|
||||||
|
thememanager
|
||||||
|
translationmanager
|
||||||
|
extensionmanager
|
||||||
|
extensionwatcher
|
||||||
|
pluginmanager
|
||||||
|
proxyqt
|
||||||
|
)
|
||||||
|
|
||||||
mo2_add_filter(NAME src/dialogs GROUPS
|
mo2_add_filter(NAME src/dialogs GROUPS
|
||||||
aboutdialog
|
aboutdialog
|
||||||
activatemodsdialog
|
activatemodsdialog
|
||||||
@@ -205,6 +279,7 @@ mo2_add_filter(NAME src/proxies GROUPS
|
|||||||
downloadmanagerproxy
|
downloadmanagerproxy
|
||||||
gamefeaturesproxy
|
gamefeaturesproxy
|
||||||
modlistproxy
|
modlistproxy
|
||||||
|
extensionlistproxy
|
||||||
organizerproxy
|
organizerproxy
|
||||||
pluginlistproxy
|
pluginlistproxy
|
||||||
proxyutils
|
proxyutils
|
||||||
@@ -221,6 +296,7 @@ mo2_add_filter(NAME src/register GROUPS
|
|||||||
)
|
)
|
||||||
|
|
||||||
mo2_add_filter(NAME src/settings GROUPS
|
mo2_add_filter(NAME src/settings GROUPS
|
||||||
|
extensionsettings
|
||||||
settings
|
settings
|
||||||
settingsutilities
|
settingsutilities
|
||||||
)
|
)
|
||||||
@@ -231,7 +307,9 @@ mo2_add_filter(NAME src/settingsdialog GROUPS
|
|||||||
settingsdialoggeneral
|
settingsdialoggeneral
|
||||||
settingsdialognexus
|
settingsdialognexus
|
||||||
settingsdialogpaths
|
settingsdialogpaths
|
||||||
settingsdialogplugins
|
settingsdialogextensions
|
||||||
|
settingsdialogextensionrow
|
||||||
|
settingsdialogextensioninfo
|
||||||
settingsdialogworkarounds
|
settingsdialogworkarounds
|
||||||
settingsdialogmodlist
|
settingsdialogmodlist
|
||||||
settingsdialogtheme
|
settingsdialogtheme
|
||||||
|
|||||||
@@ -1,60 +0,0 @@
|
|||||||
TEMPLATE = subdirs
|
|
||||||
|
|
||||||
SUBDIRS = bsatk \
|
|
||||||
shared \
|
|
||||||
uibase \
|
|
||||||
esptk \
|
|
||||||
organizer \
|
|
||||||
hookdll \
|
|
||||||
archive \
|
|
||||||
helper \
|
|
||||||
plugins \
|
|
||||||
nxmhandler \
|
|
||||||
BossDummy \
|
|
||||||
pythonRunner \
|
|
||||||
loot_cli
|
|
||||||
|
|
||||||
pythonRunner.depends = uibase
|
|
||||||
plugins.depends = pythonRunner uibase
|
|
||||||
hookdll.depends = shared
|
|
||||||
organizer.depends = shared uibase plugins
|
|
||||||
|
|
||||||
CONFIG(debug, debug|release) {
|
|
||||||
DESTDIR = $$PWD/../outputd
|
|
||||||
} else {
|
|
||||||
DESTDIR = $$PWD/../output
|
|
||||||
}
|
|
||||||
|
|
||||||
STATICDATAPATH = $${DESTDIR}\\..\\tools\\static_data\\dlls
|
|
||||||
DLLSPATH = $${DESTDIR}\\dlls
|
|
||||||
|
|
||||||
otherlibs.path = $$DLLSPATH
|
|
||||||
otherlibs.files += $${STATICDATAPATH}\\7z.dll \
|
|
||||||
$${BOOSTPATH}\\stage\\lib\\boost_python-vc*-mt-1*.dll
|
|
||||||
|
|
||||||
qtlibs.path = $$DLLSPATH
|
|
||||||
|
|
||||||
greaterThan(QT_MAJOR_VERSION, 4) {
|
|
||||||
QTLIBNAMES += Core Gui Network OpenGL Script Sql Svg Qml Quick Webkit Widgets Xml XmlPatterns
|
|
||||||
} else {
|
|
||||||
QTLIBNAMES += Core Declarative Gui Network OpenGL Script Sql Svg Webkit Xml XmlPatterns
|
|
||||||
}
|
|
||||||
|
|
||||||
greaterThan(QT_MAJOR_VERSION, 5) {
|
|
||||||
QTLIBNAMES += OpenGLWidgets
|
|
||||||
}
|
|
||||||
|
|
||||||
QTLIBSUFFIX = $${QT_MAJOR_VERSION}.dll
|
|
||||||
CONFIG(debug, debug|release): QTLIBSUFFIX = "d$${QTLIBSUFFIX}" # Can't use Debug: .. here, it ignores the line - no idea why, as it works in BossDummy.pro
|
|
||||||
|
|
||||||
for(QTNAME, QTLIBNAMES) {
|
|
||||||
QTFILE = Qt$${QTNAME}
|
|
||||||
qtlibs.files += $$[QT_INSTALL_BINS]\\$${QTFILE}$${QTLIBSUFFIX}
|
|
||||||
}
|
|
||||||
|
|
||||||
INSTALLS += qtlibs otherlibs
|
|
||||||
|
|
||||||
OTHER_FILES +=\
|
|
||||||
../SConstruct\
|
|
||||||
../scons_configure.py\
|
|
||||||
SConscript
|
|
||||||
-179
@@ -1,179 +0,0 @@
|
|||||||
import ctypes
|
|
||||||
import os
|
|
||||||
import subprocess
|
|
||||||
|
|
||||||
def resolve_name(source):
|
|
||||||
# Get the actual name of the file, after reparse points and symlinks are
|
|
||||||
# taken into account.
|
|
||||||
GENERIC_READ = 0x80000000
|
|
||||||
FILE_SHARE_READ = 0x1
|
|
||||||
OPEN_EXISTING = 0x3
|
|
||||||
FILE_FLAG_BACKUP_SEMANTICS = 0x02000000
|
|
||||||
handle = ctypes.windll.kernel32.CreateFileA(source,
|
|
||||||
GENERIC_READ,
|
|
||||||
FILE_SHARE_READ,
|
|
||||||
None,
|
|
||||||
OPEN_EXISTING,
|
|
||||||
FILE_FLAG_BACKUP_SEMANTICS,
|
|
||||||
None)
|
|
||||||
# get the target
|
|
||||||
FILE_NAME_NORMALIZED = 0x0
|
|
||||||
FILE_NAME_OPENED = 0x8
|
|
||||||
buff = ctypes.create_string_buffer(1024)
|
|
||||||
res = ctypes.windll.kernel32.GetFinalPathNameByHandleA(handle,
|
|
||||||
buff,
|
|
||||||
ctypes.sizeof(buff),
|
|
||||||
FILE_NAME_NORMALIZED)
|
|
||||||
target = buff.value
|
|
||||||
ctypes.windll.kernel32.CloseHandle(handle)
|
|
||||||
return target
|
|
||||||
|
|
||||||
def search_up(path, target):
|
|
||||||
while True:
|
|
||||||
if os.path.exists(os.path.join(path, target)):
|
|
||||||
return True
|
|
||||||
npath = os.path.dirname(path)
|
|
||||||
if npath == path:
|
|
||||||
break
|
|
||||||
path = npath
|
|
||||||
return False
|
|
||||||
|
|
||||||
Import('qt_env')
|
|
||||||
|
|
||||||
env = qt_env.Clone()
|
|
||||||
|
|
||||||
modules = [
|
|
||||||
'Core',
|
|
||||||
'Gui',
|
|
||||||
'Network',
|
|
||||||
'Script',
|
|
||||||
'Sql',
|
|
||||||
'WebKit',
|
|
||||||
'Xml',
|
|
||||||
'XmlPatterns',
|
|
||||||
'Declarative'
|
|
||||||
]
|
|
||||||
|
|
||||||
if env['QT_MAJOR_VERSION'] > 4:
|
|
||||||
modules += [
|
|
||||||
'Widgets',
|
|
||||||
'Qml',
|
|
||||||
'WebKitWidgets'
|
|
||||||
]
|
|
||||||
|
|
||||||
env.EnableQtModules(*modules)
|
|
||||||
|
|
||||||
env.Uic(env.Glob('*.ui'))
|
|
||||||
|
|
||||||
env.RequireLibraries('uibase', 'shared', 'bsatk', 'esptk')
|
|
||||||
|
|
||||||
env.AppendUnique(LIBS = [
|
|
||||||
'shell32',
|
|
||||||
'user32',
|
|
||||||
'ole32',
|
|
||||||
'advapi32',
|
|
||||||
'gdi32',
|
|
||||||
'shlwapi',
|
|
||||||
'Psapi',
|
|
||||||
'Version'
|
|
||||||
])
|
|
||||||
|
|
||||||
# We have to 'persuade' moc to generate certain other targets and inject them
|
|
||||||
# into the list of cpps
|
|
||||||
other_sources = env.AddExtraMoc(env.Glob('*.h'))
|
|
||||||
|
|
||||||
for file in env.Glob('*.rc'):
|
|
||||||
other_sources.append(env.RES(file))
|
|
||||||
|
|
||||||
# Note the order of this is important, or you can pick up the wrong report.h...
|
|
||||||
# Doing appendunique seems to throw the moc code into a tizzy
|
|
||||||
env['CPPPATH'] += [
|
|
||||||
'../archive',
|
|
||||||
'../plugins/gamefeatures',
|
|
||||||
'.', # Why is this necessary?
|
|
||||||
'${LOOTPATH}',
|
|
||||||
'${BOOSTPATH}',
|
|
||||||
]
|
|
||||||
|
|
||||||
#########################FUDGE###############################
|
|
||||||
env['CPPPATH'] += [
|
|
||||||
'../plugins/gameGamebryo',
|
|
||||||
]
|
|
||||||
#############################################################
|
|
||||||
|
|
||||||
env.AppendUnique(CPPDEFINES = [
|
|
||||||
'_UNICODE',
|
|
||||||
'_CRT_SECURE_NO_WARNINGS',
|
|
||||||
'_SCL_SECURE_NO_WARNINGS',
|
|
||||||
'BOOST_DISABLE_ASSERTS',
|
|
||||||
'NDEBUG',
|
|
||||||
'QT_MESSAGELOGCONTEXT'
|
|
||||||
])
|
|
||||||
|
|
||||||
# Boost produces very long names with msvc truncates. Doesn't seem to cause
|
|
||||||
# problems.
|
|
||||||
# Also note to remove the -wd4100 I hacked the boost headers (tagged_argument.hpp)
|
|
||||||
# appropriately.
|
|
||||||
env.AppendUnique(CPPFLAGS = [ '-wd4503' ])
|
|
||||||
|
|
||||||
env.AppendUnique(LINKFLAGS = [
|
|
||||||
'/SUBSYSTEM:WINDOWS',
|
|
||||||
'${EXE_MANIFEST_DEPENDENCY}'
|
|
||||||
])
|
|
||||||
|
|
||||||
# modeltest is optional and it doesn't compile anyway...
|
|
||||||
cpp_files = [
|
|
||||||
x for x in env.Glob('*.cpp', source = True)
|
|
||||||
if x.name != 'modeltest.cpp' and x.name != 'aboutdialog.cpp' and \
|
|
||||||
not x.name.startswith('moc_') # I think this is a strange bug
|
|
||||||
]
|
|
||||||
|
|
||||||
about_env = env.Clone()
|
|
||||||
# This is somewhat of a hack until I can work out a way of setting up a build
|
|
||||||
# with all the repos without using millions of junction points
|
|
||||||
try:
|
|
||||||
target = resolve_name(Dir('.').srcnode().abspath)
|
|
||||||
if search_up(target, '.hg'):
|
|
||||||
hgid = subprocess.check_output([env['MERCURIAL'], 'id', '-i']).rstrip()
|
|
||||||
elif search_up(target, '.git'):
|
|
||||||
hgid = subprocess.check_output([env['GIT'], '-C', target, 'describe',
|
|
||||||
'--tag']).rstrip()
|
|
||||||
else:
|
|
||||||
hgid = "Unknown"
|
|
||||||
except:
|
|
||||||
hgid = "Problem determining version"
|
|
||||||
|
|
||||||
# FIXME: It'd be much easier to stringify this in the source code
|
|
||||||
about_env.AppendUnique(CPPDEFINES = [ 'HGID=\\"%s\\"' % hgid ])
|
|
||||||
other_sources.append(about_env.StaticObject('aboutdialog.cpp'))
|
|
||||||
|
|
||||||
env.AppendUnique(LIBPATH = "${ZLIBPATH}/build")
|
|
||||||
env.AppendUnique(LIBS = 'zlibstatic')
|
|
||||||
|
|
||||||
prog = env.Program('ModOrganizer',
|
|
||||||
cpp_files + env.Glob('*.qrc') + other_sources)
|
|
||||||
|
|
||||||
env.InstallModule(prog)
|
|
||||||
|
|
||||||
for subdir in ('tutorials', 'stylesheets'):
|
|
||||||
env.Install(os.path.join(env['INSTALL_PATH'], subdir),
|
|
||||||
env.Glob(os.path.join(subdir, '*')))
|
|
||||||
|
|
||||||
# FIXME Sort the translations. Except they don't exist on the 1.2 branch
|
|
||||||
|
|
||||||
res = env['QT_USED_MODULES']
|
|
||||||
Return('res')
|
|
||||||
|
|
||||||
"""
|
|
||||||
CONFIG(debug, debug|release) {
|
|
||||||
} else {
|
|
||||||
QMAKE_CXXFLAGS += /Zi /GL
|
|
||||||
QMAKE_LFLAGS += /DEBUG /LTCG /OPT:REF /OPT:ICF
|
|
||||||
}
|
|
||||||
|
|
||||||
TRANSLATIONS = organizer_en.ts
|
|
||||||
|
|
||||||
|
|
||||||
QMAKE_POST_LINK += xcopy /y /s /I $$quote($$BASEDIR\\*.qm) $$quote($$DSTDIR)\\translations $$escape_expand(\\n)
|
|
||||||
|
|
||||||
"""
|
|
||||||
@@ -20,8 +20,8 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#ifndef ARCHIVEFILENETRY_H
|
#ifndef ARCHIVEFILENETRY_H
|
||||||
#define ARCHIVEFILENTRY_H
|
#define ARCHIVEFILENTRY_H
|
||||||
|
|
||||||
#include "archive.h"
|
#include <archive/archive.h>
|
||||||
#include "ifiletree.h"
|
#include <uibase/ifiletree.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define CATEGORIESDIALOG_H
|
#define CATEGORIESDIALOG_H
|
||||||
|
|
||||||
#include "categories.h"
|
#include "categories.h"
|
||||||
#include "plugincontainer.h"
|
|
||||||
#include "tutorabledialog.h"
|
#include "tutorabledialog.h"
|
||||||
#include <set>
|
#include <set>
|
||||||
|
|
||||||
@@ -71,7 +70,6 @@ private:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::CategoriesDialog* ui;
|
Ui::CategoriesDialog* ui;
|
||||||
PluginContainer* m_PluginContainer;
|
|
||||||
int m_ContextRow;
|
int m_ContextRow;
|
||||||
|
|
||||||
int m_HighestID;
|
int m_HighestID;
|
||||||
|
|||||||
@@ -249,6 +249,15 @@ void ColorTable::load(Settings& s)
|
|||||||
[this](auto&& v) {
|
[this](auto&& v) {
|
||||||
m_settings->colors().setPluginListContained(v);
|
m_settings->colors().setPluginListContained(v);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
addColor(
|
||||||
|
QObject::tr("Plugin is master of selected plugin"), QColor(255, 255, 0, 64),
|
||||||
|
[this] {
|
||||||
|
return m_settings->colors().pluginListMaster();
|
||||||
|
},
|
||||||
|
[this](auto&& v) {
|
||||||
|
m_settings->colors().setPluginListMaster(v);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void ColorTable::resetColors()
|
void ColorTable::resetColors()
|
||||||
|
|||||||
+2
-1
@@ -828,8 +828,9 @@ std::optional<int> ReloadPluginCommand::runPostOrganizer(OrganizerCore& core)
|
|||||||
QDir(qApp->applicationDirPath() + "/" + ToQString(AppConfig::pluginPath()))
|
QDir(qApp->applicationDirPath() + "/" + ToQString(AppConfig::pluginPath()))
|
||||||
.absoluteFilePath(name);
|
.absoluteFilePath(name);
|
||||||
|
|
||||||
|
// TODO: reload extension, not plugin
|
||||||
log::debug("reloading plugin from {}", filepath);
|
log::debug("reloading plugin from {}", filepath);
|
||||||
core.pluginContainer().reloadPlugin(filepath);
|
// core.pluginManager().reloadPlugin(filepath);
|
||||||
|
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ private:
|
|||||||
std::vector<QDir> m_created;
|
std::vector<QDir> m_created;
|
||||||
};
|
};
|
||||||
|
|
||||||
CreateInstanceDialog::CreateInstanceDialog(const PluginContainer& pc, Settings* s,
|
CreateInstanceDialog::CreateInstanceDialog(const PluginManager& pc, Settings* s,
|
||||||
QWidget* parent)
|
QWidget* parent)
|
||||||
: QDialog(parent), ui(new Ui::CreateInstanceDialog), m_pc(pc), m_settings(s),
|
: QDialog(parent), ui(new Ui::CreateInstanceDialog), m_pc(pc), m_settings(s),
|
||||||
m_switching(false), m_singlePage(false)
|
m_switching(false), m_singlePage(false)
|
||||||
@@ -133,13 +133,13 @@ CreateInstanceDialog::CreateInstanceDialog(const PluginContainer& pc, Settings*
|
|||||||
|
|
||||||
addShortcutAction(QKeySequence::Find, Actions::Find);
|
addShortcutAction(QKeySequence::Find, Actions::Find);
|
||||||
|
|
||||||
addShortcut(Qt::ALT + Qt::Key_Left, [&] {
|
addShortcut(Qt::ALT | Qt::Key_Left, [&] {
|
||||||
back();
|
back();
|
||||||
});
|
});
|
||||||
addShortcut(Qt::ALT + Qt::Key_Right, [&] {
|
addShortcut(Qt::ALT | Qt::Key_Right, [&] {
|
||||||
next(false);
|
next(false);
|
||||||
});
|
});
|
||||||
addShortcut(Qt::CTRL + Qt::Key_Return, [&] {
|
addShortcut(Qt::CTRL | Qt::Key_Return, [&] {
|
||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -161,7 +161,7 @@ Ui::CreateInstanceDialog* CreateInstanceDialog::getUI()
|
|||||||
return ui.get();
|
return ui.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
const PluginContainer& CreateInstanceDialog::pluginContainer()
|
const PluginManager& CreateInstanceDialog::pluginManager()
|
||||||
{
|
{
|
||||||
return m_pc;
|
return m_pc;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace cid
|
|||||||
class Page;
|
class Page;
|
||||||
}
|
}
|
||||||
|
|
||||||
class PluginContainer;
|
class PluginManager;
|
||||||
class Settings;
|
class Settings;
|
||||||
|
|
||||||
// this is a wizard for creating a new instance, it is made out of Page objects,
|
// this is a wizard for creating a new instance, it is made out of Page objects,
|
||||||
@@ -90,13 +90,12 @@ public:
|
|||||||
ProfileSettings profileSettings;
|
ProfileSettings profileSettings;
|
||||||
};
|
};
|
||||||
|
|
||||||
CreateInstanceDialog(const PluginContainer& pc, Settings* s,
|
CreateInstanceDialog(const PluginManager& pc, Settings* s, QWidget* parent = nullptr);
|
||||||
QWidget* parent = nullptr);
|
|
||||||
|
|
||||||
~CreateInstanceDialog();
|
~CreateInstanceDialog();
|
||||||
|
|
||||||
Ui::CreateInstanceDialog* getUI();
|
Ui::CreateInstanceDialog* getUI();
|
||||||
const PluginContainer& pluginContainer();
|
const PluginManager& pluginManager();
|
||||||
Settings* settings();
|
Settings* settings();
|
||||||
|
|
||||||
// disables all the pages except for the given one, used on startup when some
|
// disables all the pages except for the given one, used on startup when some
|
||||||
@@ -185,7 +184,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<Ui::CreateInstanceDialog> ui;
|
std::unique_ptr<Ui::CreateInstanceDialog> ui;
|
||||||
const PluginContainer& m_pc;
|
const PluginManager& m_pc;
|
||||||
Settings* m_settings;
|
Settings* m_settings;
|
||||||
std::vector<std::unique_ptr<cid::Page>> m_pages;
|
std::vector<std::unique_ptr<cid::Page>> m_pages;
|
||||||
QString m_originalNext;
|
QString m_originalNext;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#include "createinstancedialogpages.h"
|
#include "createinstancedialogpages.h"
|
||||||
#include "filesystemutilities.h"
|
#include "filesystemutilities.h"
|
||||||
#include "instancemanager.h"
|
#include "instancemanager.h"
|
||||||
#include "plugincontainer.h"
|
#include "pluginmanager.h"
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
#include "settingsdialognexus.h"
|
#include "settingsdialognexus.h"
|
||||||
#include "shared/appconfig.h"
|
#include "shared/appconfig.h"
|
||||||
@@ -55,7 +55,7 @@ void PlaceholderLabel::setVisible(bool b)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Page::Page(CreateInstanceDialog& dlg)
|
Page::Page(CreateInstanceDialog& dlg)
|
||||||
: ui(dlg.getUI()), m_dlg(dlg), m_pc(dlg.pluginContainer()), m_skip(false),
|
: ui(dlg.getUI()), m_dlg(dlg), m_pc(dlg.pluginManager()), m_skip(false),
|
||||||
m_firstActivation(true)
|
m_firstActivation(true)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user