mirror of
https://github.com/ModOrganizer2/modorganizer.git
synced 2026-07-27 13:58:24 -07:00
Compare commits
15
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1412befe1b | ||
|
|
e6e88074ea | ||
|
|
2388f2471b | ||
|
|
2c6c223cb0 | ||
|
|
f16738ffd6 | ||
|
|
f2dc4ddd30 | ||
|
|
322b5d59f0 | ||
|
|
06d356e48f | ||
|
|
8db55c451c | ||
|
|
768e6291b3 | ||
|
|
2cdb7c5b13 | ||
|
|
b9f9e6af94 | ||
|
|
b9078ffefd | ||
|
|
04c5986aa6 | ||
|
|
1cb18b3c00 |
@@ -1,41 +0,0 @@
|
||||
---
|
||||
# We'll use defaults from the LLVM style, but with 4 columns indentation.
|
||||
BasedOnStyle: LLVM
|
||||
IndentWidth: 2
|
||||
---
|
||||
Language: Cpp
|
||||
DeriveLineEnding: false
|
||||
UseCRLF: true
|
||||
DerivePointerAlignment: false
|
||||
PointerAlignment: Left
|
||||
AlignConsecutiveAssignments: true
|
||||
AllowShortFunctionsOnASingleLine: Inline
|
||||
AllowShortIfStatementsOnASingleLine: Never
|
||||
AllowShortLambdasOnASingleLine: Empty
|
||||
AlwaysBreakTemplateDeclarations: Yes
|
||||
AccessModifierOffset: -2
|
||||
AlignTrailingComments: true
|
||||
SpacesBeforeTrailingComments: 2
|
||||
NamespaceIndentation: Inner
|
||||
MaxEmptyLinesToKeep: 1
|
||||
BreakBeforeBraces: Custom
|
||||
BraceWrapping:
|
||||
AfterCaseLabel: false
|
||||
AfterClass: true
|
||||
AfterControlStatement: false
|
||||
AfterEnum: true
|
||||
AfterFunction: true
|
||||
AfterNamespace: true
|
||||
AfterStruct: true
|
||||
AfterUnion: true
|
||||
AfterExternBlock: true
|
||||
BeforeCatch: false
|
||||
BeforeElse: false
|
||||
BeforeLambdaBody: false
|
||||
BeforeWhile: false
|
||||
IndentBraces: false
|
||||
SplitEmptyFunction: false
|
||||
SplitEmptyRecord: false
|
||||
SplitEmptyNamespace: true
|
||||
ColumnLimit: 88
|
||||
ForEachMacros: ['Q_FOREACH', 'foreach']
|
||||
@@ -1,2 +0,0 @@
|
||||
d13f6bb870cdda71257f665367be8ef9fca86255
|
||||
86bb01ba9eac879d3685c439ac9da0028bc4bc80
|
||||
@@ -1,7 +0,0 @@
|
||||
# Set the default behavior, in case people don't have core.autocrlf set.
|
||||
* text=auto
|
||||
|
||||
# Explicitly declare text files you want to always be normalized and converted
|
||||
# to native line endings on checkout.
|
||||
*.cpp text eol=crlf
|
||||
*.h text eol=crlf
|
||||
@@ -1,27 +0,0 @@
|
||||
---
|
||||
name: Game support Request
|
||||
about: Request support for a new game
|
||||
title: Add support for game [GAME NAME]
|
||||
labels: 'Feature Request, additional games support, area: mo2 game plugins'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**This template is useful to add basic support using https://github.com/ModOrganizer2/modorganizer-basic_games.**
|
||||
|
||||
**If you are vaguely familiar with programming you can try following the instructions on that link to get something working yourself. If you have trouble with that please fill in this template.**
|
||||
|
||||
**Please provide the following information for the game (remove the optional lines you do not use):**
|
||||
|
||||
- **Name:** Name of the game
|
||||
- **Short name:** Name of the game in Nexus URL (e.g. skyrimse for Skyrim SE).
|
||||
- **Nexus ID [optional]:** ID of the game on Nexus (you can usually find this in Nexus URL).
|
||||
- **Executable:** Name of the main executable for the game (relative to the game folder).
|
||||
- **Launcher [optional]:** Name of the game launcher (relative to the game folder).
|
||||
- **Data path:** Path to the data folder of the game (relative to the game folder). Please note that the Virtual Files System often does not work for top level dlls or exe files.
|
||||
- **Documents path:** Path to folder containing INI files, etc., for the game (usually under "My Games", or the game folder itself).
|
||||
- **Saves directory [optional]:** Path to the folder containing save games (this default to the path above).
|
||||
- **Save extension [optional]:** Extension of the saves
|
||||
- **Steam ID [optional]:** ID of the game on Steam (if the game is on Steam).
|
||||
|
||||
**Provide additional details regarding the game that could be required for the plugin.**
|
||||
@@ -8,7 +8,7 @@ assignees: ''
|
||||
---
|
||||
|
||||
## The problem:
|
||||
Briefly describe the issue you are experiencing. Tell us what you were trying to do and what happened instead. Remember, this is _not_ a place to ask questions. For that, go to our [Discord server](https://discord.gg/ewUVAqyrQX).
|
||||
Briefly describe the issue you are experiencing. Tell us what you were trying to do and what happened instead. Remember, this is _not_ a place to ask questions. For that, go to our [discord channel](https://discord.gg/5tCqt6V)
|
||||
|
||||
|
||||
## To Reproduce:
|
||||
@@ -20,7 +20,7 @@ Steps to reproduce the behavior:
|
||||
## Environment:
|
||||
|
||||
* Mod Organizer Version that exhibits the issue:
|
||||
* Last Mod Organizer Version that did not exhibit the issue (if applicable):
|
||||
* Last Mod Organizer Verison that did not exhibit the issue (if applicable):
|
||||
* Desktop OS/version used to run Mod Organizer:
|
||||
|
||||
## Details:
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
name: Build ModOrganizer 2
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: master
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-2022
|
||||
steps:
|
||||
- name: Build ModOrganizer 2
|
||||
uses: ModOrganizer2/build-with-mob-action@master
|
||||
with:
|
||||
qt-modules: qtpositioning qtwebchannel qtwebengine qtwebsockets
|
||||
mo2-third-parties:
|
||||
7z zlib fmt gtest libbsarch libloot openssl libffi bzip2 python lz4 spdlog
|
||||
boost boost-di sip pyqt pybind11 ss licenses explorerpp usvfs
|
||||
mo2-dependencies: cmake_common uibase githubpp bsatk esptk archive lootcli game_gamebryo
|
||||
@@ -1,17 +0,0 @@
|
||||
name: Lint ModOrganizer 2
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Run clang-format
|
||||
uses: jidicula/clang-format-action@v4.11.0
|
||||
with:
|
||||
clang-format-version: "15"
|
||||
check-path: "."
|
||||
+11
-7
@@ -1,16 +1,20 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
# TODO: move these to cmake_common?
|
||||
set(OPENSSL_USE_STATIC_LIBS FALSE CACHE STRING "" FORCE)
|
||||
set(MySQL_INCLUDE_DIRS CACHE STRING "" FORCE)
|
||||
project(organizer)
|
||||
set(project_type exe)
|
||||
set(executable_name ModOrganizer)
|
||||
set(enable_warnings OFF)
|
||||
|
||||
# appveyor does not build modorganizer in its standard location, so use
|
||||
# DEPENDENCIES_DIR to find cmake_common
|
||||
if(DEFINED DEPENDENCIES_DIR)
|
||||
include(${DEPENDENCIES_DIR}/modorganizer_super/cmake_common/mo2.cmake)
|
||||
include(${DEPENDENCIES_DIR}/modorganizer_super/cmake_common/project.cmake)
|
||||
else()
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../cmake_common/mo2.cmake)
|
||||
include(../cmake_common/project.cmake)
|
||||
endif()
|
||||
|
||||
project(organizer)
|
||||
set(additional_translations ${uibase_path}/src)
|
||||
|
||||
add_subdirectory(src)
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dump_running_process.bat DESTINATION bin)
|
||||
install(FILES dump_running_process.bat DESTINATION bin)
|
||||
|
||||
+20
-28
@@ -16,46 +16,42 @@ init:
|
||||
environment:
|
||||
WEBHOOK_URL:
|
||||
secure: gOKbXaZM9ImtMD5XrYITvdyZUW/az082G9OIN1EC1VaKiI9iefpxhBavJ6Al6CzIZvQ+3pxnLqjmNgA7cDc22wcj2kB4hSG5qhbTI8wGa8jLQ5L65nuRZ3vrIqghBz9G3GLglgZkg6eqH9r3Kqc6UzcpCGzxxPOqm550nRcIiUU=
|
||||
MO_VERSION: 2.4.0
|
||||
VER_STUB_NORMAL: dev-appveyor-
|
||||
MO_VERSION: 2.3.0
|
||||
VER_STUB_NORMAL: dev-appveyor
|
||||
VER_STUB_NIGHTLY: dev-nightly-
|
||||
build_script:
|
||||
- pwsh: >-
|
||||
# Maintenance comments:
|
||||
- cmd: >-
|
||||
REM Maintenance comments:
|
||||
|
||||
# APPVEYOR_BUILD_FOLDER= "c:\projects\modorganizer-slug"
|
||||
REM APPVEYOR_BUILD_FOLDER= "c:\projects\modorganizer-slug"
|
||||
|
||||
# -Need to update py3 version used to invoke unimake.py once in a while.
|
||||
REM -Need to update py3 version used to invoke unimake.py once in a while.
|
||||
|
||||
# -Need update MO_VERSION env variable after each release.
|
||||
REM -Need update MO_VERSION env variable after each release.
|
||||
|
||||
# -Always clones umbrella master
|
||||
REM -Always clones umbrella master
|
||||
|
||||
# -Will checkout all the branches matching the one that triggered the build on the main repo.
|
||||
REM -Will checkout all the branches matching the one that triggered the build on the main repo.
|
||||
|
||||
# End comments.
|
||||
REM End comments.
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
git clone --depth=1 --no-single-branch https://github.com/ModOrganizer2/modorganizer-umbrella.git c:\projects\modorganizer-umbrella
|
||||
git clone --depth=1 https://github.com/ModOrganizer2/modorganizer-umbrella.git c:\projects\modorganizer-umbrella 2> $null
|
||||
|
||||
|
||||
mkdir %APPVEYOR_BUILD_FOLDER%\modorganizer-build -type directory
|
||||
|
||||
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 ) }
|
||||
C:\Python38-x64\python.exe unimake.py -d %APPVEYOR_BUILD_FOLDER%\modorganizer-build -s Appveyor_Build=True -s Feature_Branch=%APPVEYOR_REPO_BRANCH% -s override_build_version=%APPVEYOR_BUILD_VERSION%
|
||||
test: off
|
||||
artifacts:
|
||||
- path: '\modorganizer-build\install\bin\ModOrganizer.exe'
|
||||
- path: '\modorganizer-build\install\bin'
|
||||
name: Mod.Organizer-$(APPVEYOR_BUILD_VERSION)
|
||||
- path: '\modorganizer-build\install\pdb\ModOrganizer.pdb'
|
||||
name: PDB-Mod.Organizer-$(APPVEYOR_BUILD_VERSION)
|
||||
- path: '\modorganizer-build\install\pdb'
|
||||
name: PDBs-Mod.Organizer-$(APPVEYOR_BUILD_VERSION)
|
||||
deploy: off
|
||||
on_success:
|
||||
- ps: >-
|
||||
@@ -63,15 +59,11 @@ on_success:
|
||||
|
||||
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
|
||||
}
|
||||
./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
|
||||
}
|
||||
./send.ps1 failure $env:WEBHOOK_URL
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
pushd "%~dp0"
|
||||
start ModOrganizer.exe crashdump
|
||||
start ModOrganizer.exe --crashdump
|
||||
|
||||
@@ -8,102 +8,5 @@ file={m_wsFile}
|
||||
loaded={m_loaded}
|
||||
expanded={m_expanded}
|
||||
}}</DisplayString></Type>
|
||||
<Type Name="QFileInfoPrivate">
|
||||
<DisplayString Condition="0 == this"><null></DisplayString>
|
||||
<DisplayString>{fileEntry}</DisplayString>
|
||||
<StringView>fileEntry</StringView>
|
||||
<Expand>
|
||||
<Item Name="QSharedData">*((Qt5Core.dll!QSharedData *) this)</Item>
|
||||
<Item Name="fileEntry">fileEntry</Item>
|
||||
<!--
|
||||
<Item Name="metaData">metaData</Item>
|
||||
<Item Name="fileListsInitialized">fileListsInitialized</Item>
|
||||
<Item Name="fileEngine">fileEngine</Item>
|
||||
<Item Name="fileNames">fileNames</Item>
|
||||
<Item Name="fileOwners">fileOwners</Item>
|
||||
<Item Name="cachedFlags">cachedFlags</Item>
|
||||
<Item Name="isDefaultConstructed">isDefaultConstructed</Item>
|
||||
<Item Name="cache_enabled">cache_enabled</Item>
|
||||
<Item Name="fileFlags">fileFlags</Item>
|
||||
<Item Name="fileSize">fileSize</Item>
|
||||
<Item Name="fileTimes">fileTimes</Item>
|
||||
-->
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
|
||||
<Type Name="QFileInfo">
|
||||
<DisplayString>{*((Qt5Core.dll!QFileInfoPrivate *) d_ptr.d)}</DisplayString>
|
||||
<StringView>*((Qt5Core.dll!QFileInfoPrivate *) d_ptr.d)</StringView>
|
||||
<Expand>
|
||||
<Item Name="QFileInfoPrivate">*((Qt5Core.dll!QFileInfoPrivate *) d_ptr.d)</Item>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
|
||||
<Type Name="QFileSystemEntry">
|
||||
<DisplayString Condition="0 == this"><null></DisplayString>
|
||||
<DisplayString>{m_filePath}</DisplayString>
|
||||
<StringView>m_filePath</StringView>
|
||||
<!--
|
||||
<Expand>
|
||||
<Item Name="m_filePath">m_filePath</Item>
|
||||
<Item Name="m_nativeFilePath">m_nativeFilePath</Item>
|
||||
<Item Name="m_lastSeparator">m_lastSeparator</Item>
|
||||
<Item Name="m_firstDotInFileName">m_firstDotInFileName</Item>
|
||||
<Item Name="m_lastDotInFileName">m_lastDotInFileName</Item>
|
||||
</Expand>
|
||||
-->
|
||||
</Type>
|
||||
|
||||
|
||||
<Type Name="QDirPrivate">
|
||||
<DisplayString Condition="0 == this"><null></DisplayString>
|
||||
<DisplayString>{dirEntry}</DisplayString>
|
||||
<StringView>dirEntry</StringView>
|
||||
<Expand>
|
||||
<Item Name="QSharedData">*((Qt5Core.dll!QSharedData *) this)</Item>
|
||||
<Item Name="dirEntry">dirEntry</Item>
|
||||
<Item Name="nameFilters">nameFilters</Item>
|
||||
<Item Name="absoluteDirEntry">absoluteDirEntry</Item>
|
||||
<!--
|
||||
<Item Name="metaData">metaData</Item>
|
||||
<Item Name="fileListsInitialized">fileListsInitialized</Item>
|
||||
<Item Name="fileEngine">fileEngine</Item>
|
||||
<Item Name="files">files</Item>
|
||||
<Item Name="fileInfos">fileInfos</Item>
|
||||
<Item Name="sort">sort</Item>
|
||||
<Item Name="filters">filters</Item>
|
||||
-->
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
|
||||
<Type Name="QDir">
|
||||
<DisplayString>{*((Qt5Core.dll!QDirPrivate *) d_ptr.d)}</DisplayString>
|
||||
<StringView>*((Qt5Core.dll!QDirPrivate *) d_ptr.d)</StringView>
|
||||
<Expand>
|
||||
<Item Name="QDirPrivate">*((Qt5Core.dll!QDirPrivate *) d_ptr.d)</Item>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
|
||||
<Type Name="QFilePrivate">
|
||||
<DisplayString Condition="0 == this"><null></DisplayString>
|
||||
<DisplayString>{fileName}</DisplayString>
|
||||
<StringView>fileName</StringView>
|
||||
<Expand>
|
||||
<Item Name="QFileDevice">*((Qt5Core.dll!QFileDevice *) this)</Item>
|
||||
<Item Name="fileName">fileName</Item>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
|
||||
<Type Name="QFile">
|
||||
<DisplayString>{*((Qt5Core.dll!QFilePrivate *) d_ptr.d)}</DisplayString>
|
||||
<StringView>*((Qt5Core.dll!QFilePrivate *) d_ptr.d)</StringView>
|
||||
<Expand>
|
||||
<Item Name="QFilePrivate">*((Qt5Core.dll!QFilePrivate *) d_ptr.d)</Item>
|
||||
</Expand>
|
||||
</Type>
|
||||
</AutoVisualizer>
|
||||
|
||||
@@ -12,17 +12,17 @@ The project took up speed again after a few more coders showed up in late 2017,
|
||||
## Help Wanted!
|
||||
Mod Organizer 2 is an open project in the hands of the community, there are problems that need to be solved and things that could be added. MO2 really needs developers and if you have the programming skills and some free time you can really improve the experience of the modding community.
|
||||
|
||||
To have more information, please join the open MO2 Development discord server: [Mod Organizer 2](https://discord.gg/ewUVAqyrQX)
|
||||
To have more information, please join the open MO2 Development discord server :* [ModOrganizerDevs](https://discord.gg/vD2ZbfX)
|
||||
If you want to help translate MO2 to your language you should join the discord server too and head to the #translation channel.
|
||||
To setup a development environment on your machine, there is the [mob project](https://github.com/modorganizer2/mob) that handles that.
|
||||
If you want to submit your code changes, please use a good formatting style like the default one in Visual Studio.
|
||||
To setup a development environment on your machine, there is the [umbrella project](https://github.com/Modorganizer2/modorganizer-umbrella) that handles that.
|
||||
If you want to submit your code changes, please use a good formating style like the default one in Visual Studio.
|
||||
|
||||
Through the work of a few people of the community MO2 has come quite far, now it needs some more of those people to go further.
|
||||
|
||||
## Reporting Issues:
|
||||
Issues should be reported to the GitHub page or on the open discord server: [Mod Organizer 2](https://discord.gg/ewUVAqyrQX). Here is also where dev builds are tested, bugs are reported and investigated, suggestions are discussed and a lot more.
|
||||
Issues should be reported to the GitHub page or on the open discord server: [ModOrganizerDevs](https://discord.gg/vD2ZbfX). Here is also where dev builds are tested, bugs are reported and investigated, suggestions are discussed and a lot more.
|
||||
|
||||
Credits to Tannin, LePresidente, Silarn, erasmux, AL12, LostDragonist, AnyOldName3, isa, Holt59 and many others for the development.
|
||||
Credits to Tannin, LePresidente, Silarn, erasmux, AL12, LostDragonist, AnyOldName3 and many others for the development.
|
||||
|
||||
## Download Location
|
||||
|
||||
@@ -35,11 +35,11 @@ Credits to Tannin, LePresidente, Silarn, erasmux, AL12, LostDragonist, AnyOldNam
|
||||
|
||||
## Building
|
||||
|
||||
Please refer to [Modorganizer2/mob](https://github.com/modorganizer2/mob) for build instructions.
|
||||
Please refer to [Modorganizer2/modorganizer-umbrella](https://github.com/Modorganizer2/modorganizer-umbrella) for build instructions.
|
||||
|
||||
## Other Repositories
|
||||
|
||||
MO2 consists of multiple repositories on github. The mob project will download them automatically as required. They should however also be buildable individually.
|
||||
MO2 consists of multiple repositories on github. The Umbrella project will download them automatically as required. They should however also be buildable individually.
|
||||
Here is a complete list:
|
||||
|
||||
* https://github.com/LePresidente/cpython-1
|
||||
@@ -47,7 +47,6 @@ Here is a complete list:
|
||||
* https://github.com/ModOrganizer2/githubpp
|
||||
* https://github.com/ModOrganizer2/modorganizer
|
||||
* https://github.com/ModOrganizer2/modorganizer-archive
|
||||
* https://github.com/ModOrganizer2/modorganizer-basic_games
|
||||
* https://github.com/ModOrganizer2/modorganizer-bsatk
|
||||
* https://github.com/ModOrganizer2/modorganizer-bsa_extractor
|
||||
* https://github.com/ModOrganizer2/modorganizer-check_fnis
|
||||
@@ -69,13 +68,10 @@ Here is a complete list:
|
||||
* https://github.com/ModOrganizer2/modorganizer-game_skyrimVR
|
||||
* https://github.com/ModOrganizer2/modorganizer-game_ttw
|
||||
* https://github.com/ModOrganizer2/modorganizer-installer_bain
|
||||
* https://github.com/ModOrganizer2/modorganizer-installer_wizard
|
||||
* https://github.com/ModOrganizer2/modorganizer-installer_bundle
|
||||
* https://github.com/ModOrganizer2/modorganizer-installer_fomod
|
||||
* https://github.com/ModOrganizer2/modorganizer-installer_fomod_csharp
|
||||
* https://github.com/ModOrganizer2/modorganizer-installer_manual
|
||||
* https://github.com/ModOrganizer2/modorganizer-installer_ncc
|
||||
* https://github.com/ModOrganizer2/modorganizer-installer_omod
|
||||
* https://github.com/ModOrganizer2/modorganizer-installer_quick
|
||||
* https://github.com/ModOrganizer2/modorganizer-lootcli
|
||||
* https://github.com/ModOrganizer2/modorganizer-NCC
|
||||
|
||||
+67
-98
@@ -1,71 +1,49 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
add_executable(organizer)
|
||||
set_target_properties(organizer PROPERTIES OUTPUT_NAME "ModOrganizer")
|
||||
mo2_configure_executable(organizer
|
||||
WARNINGS OFF
|
||||
EXTRA_TRANSLATIONS ${MO2_SUPER_PATH}/game_gamebryo/src ${MO2_UIBASE_PATH}/src
|
||||
PRIVATE_DEPENDS
|
||||
uibase githubpp bsatk esptk archive usvfs lootcli boost::program_options
|
||||
Qt::WebEngineWidgets Qt::WebSockets)
|
||||
target_link_libraries(organizer PUBLIC Shlwapi)
|
||||
mo2_install_target(organizer)
|
||||
# appveyor does not build modorganizer in its standard location, so use
|
||||
# DEPENDENCIES_DIR to find cmake_common
|
||||
if(DEFINED DEPENDENCIES_DIR)
|
||||
include(${DEPENDENCIES_DIR}/modorganizer_super/cmake_common/src.cmake)
|
||||
else()
|
||||
include(../cmake_common/src.cmake)
|
||||
endif()
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/dlls.manifest.qt5"
|
||||
DESTINATION bin/dlls
|
||||
RENAME dlls.manifest)
|
||||
|
||||
install(DIRECTORY
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/stylesheets"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/tutorials"
|
||||
DESTINATION bin)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/resources/markdown.html"
|
||||
DESTINATION bin/resources)
|
||||
|
||||
mo2_deploy_qt(BINARIES ModOrganizer.exe uibase.dll plugins/bsa_packer.dll)
|
||||
|
||||
mo2_add_filter(NAME src/application GROUPS
|
||||
add_filter(NAME src/application GROUPS
|
||||
iuserinterface
|
||||
commandline
|
||||
main
|
||||
moapplication
|
||||
moshortcut
|
||||
multiprocess
|
||||
sanitychecks
|
||||
selfupdater
|
||||
updatedialog
|
||||
singleinstance
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/browser GROUPS
|
||||
add_filter(NAME src/browser GROUPS
|
||||
browserdialog
|
||||
browserview
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/categories GROUPS
|
||||
categories
|
||||
categoriestable
|
||||
categoriesdialog
|
||||
categoryimportdialog
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/core GROUPS
|
||||
add_filter(NAME src/core GROUPS
|
||||
categories
|
||||
archivefiletree
|
||||
installationmanager
|
||||
instancemanager
|
||||
loadmechanism
|
||||
nexusinterface
|
||||
nxmaccessmanager
|
||||
organizercore
|
||||
plugincontainer
|
||||
organizerproxy
|
||||
apiuseraccount
|
||||
processrunner
|
||||
qdirfiletree
|
||||
virtualfiletree
|
||||
uilocker
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/dialogs GROUPS
|
||||
add_filter(NAME src/dialogs GROUPS
|
||||
aboutdialog
|
||||
activatemodsdialog
|
||||
categoriesdialog
|
||||
credentialsdialog
|
||||
filedialogmemory
|
||||
forcedloaddialog
|
||||
@@ -83,15 +61,15 @@ mo2_add_filter(NAME src/dialogs GROUPS
|
||||
waitingonclosedialog
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/downloads GROUPS
|
||||
add_filter(NAME src/downloads GROUPS
|
||||
downloadlist
|
||||
downloadlistview
|
||||
downloadlistsortproxy
|
||||
downloadlistwidget
|
||||
downloadmanager
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/env GROUPS
|
||||
add_filter(NAME src/env GROUPS
|
||||
env
|
||||
envdump
|
||||
envfs
|
||||
envmetrics
|
||||
envmodule
|
||||
@@ -101,36 +79,28 @@ mo2_add_filter(NAME src/env GROUPS
|
||||
envwindows
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/executables GROUPS
|
||||
add_filter(NAME src/executables GROUPS
|
||||
executableslist
|
||||
editexecutablesdialog
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/instances GROUPS
|
||||
createinstancedialog
|
||||
createinstancedialogpages
|
||||
instancemanager
|
||||
instancemanagerdialog
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/loot GROUPS
|
||||
add_filter(NAME src/loot GROUPS
|
||||
loot
|
||||
lootdialog
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/mainwindow GROUPS
|
||||
add_filter(NAME src/mainwindow GROUPS
|
||||
datatab
|
||||
downloadstab
|
||||
iconfetcher
|
||||
filetree
|
||||
filetreeitem
|
||||
filetreemodel
|
||||
filterlist
|
||||
mainwindow
|
||||
savestab
|
||||
statusbar
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/modinfo GROUPS
|
||||
add_filter(NAME src/modinfo GROUPS
|
||||
modinfo
|
||||
modinfobackup
|
||||
modinfoforeign
|
||||
@@ -140,7 +110,7 @@ mo2_add_filter(NAME src/modinfo GROUPS
|
||||
modinfowithconflictinfo
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/modinfo/dialog GROUPS
|
||||
add_filter(NAME src/modinfo/dialog GROUPS
|
||||
modinfodialog
|
||||
modinfodialogcategories
|
||||
modinfodialogconflicts
|
||||
@@ -153,56 +123,31 @@ mo2_add_filter(NAME src/modinfo/dialog GROUPS
|
||||
modinfodialogtab
|
||||
modinfodialogtextfiles
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/modinfo/dialog/widgets GROUPS
|
||||
modidlineedit
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/modlist GROUPS
|
||||
add_filter(NAME src/modlist GROUPS
|
||||
modlist
|
||||
modlistdropinfo
|
||||
modlistsortproxy
|
||||
modlistbypriorityproxy
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/modlist/view GROUPS
|
||||
filterlist
|
||||
modlistview
|
||||
modlistviewactions
|
||||
modlistcontextmenu
|
||||
modflagicondelegate
|
||||
modcontenticondelegate
|
||||
modconflicticondelegate
|
||||
modlistversiondelegate
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/plugins GROUPS
|
||||
add_filter(NAME src/plugins GROUPS
|
||||
plugincontainer
|
||||
pluginlist
|
||||
pluginlistsortproxy
|
||||
pluginlistview
|
||||
pluginlistcontextmenu
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/previews GROUPS
|
||||
add_filter(NAME src/previews GROUPS
|
||||
previewdialog
|
||||
previewgenerator
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/profiles GROUPS
|
||||
add_filter(NAME src/profiles GROUPS
|
||||
profile
|
||||
profileinputdialog
|
||||
profilesdialog
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/proxies GROUPS
|
||||
downloadmanagerproxy
|
||||
modlistproxy
|
||||
organizerproxy
|
||||
pluginlistproxy
|
||||
proxyutils
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/register GROUPS
|
||||
add_filter(NAME src/register GROUPS
|
||||
shared/directoryentry
|
||||
shared/fileentry
|
||||
shared/filesorigin
|
||||
@@ -212,40 +157,40 @@ mo2_add_filter(NAME src/register GROUPS
|
||||
directoryrefresher
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/settings GROUPS
|
||||
add_filter(NAME src/settings GROUPS
|
||||
settings
|
||||
settingsutilities
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/settingsdialog GROUPS
|
||||
add_filter(NAME src/settingsdialog GROUPS
|
||||
settingsdialog
|
||||
settingsdialogdiagnostics
|
||||
settingsdialoggeneral
|
||||
settingsdialognexus
|
||||
settingsdialogpaths
|
||||
settingsdialogplugins
|
||||
settingsdialogsteam
|
||||
settingsdialogworkarounds
|
||||
settingsdialogmodlist
|
||||
settingsdialogtheme
|
||||
disableproxyplugindialog
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/utilities GROUPS
|
||||
add_filter(NAME src/utilities GROUPS
|
||||
shared/appconfig
|
||||
bbcode
|
||||
csvbuilder
|
||||
shared/error_report
|
||||
shared/leaktrace
|
||||
persistentcookiejar
|
||||
serverinfo
|
||||
spawn
|
||||
shared/stackdata
|
||||
shared/util
|
||||
usvfsconnector
|
||||
shared/windows_error
|
||||
thread_utils
|
||||
json
|
||||
glob_matching
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/widgets GROUPS
|
||||
add_filter(NAME src/widgets GROUPS
|
||||
colortable
|
||||
genericicondelegate
|
||||
filerenamer
|
||||
@@ -253,10 +198,34 @@ mo2_add_filter(NAME src/widgets GROUPS
|
||||
lcdnumber
|
||||
loglist
|
||||
loghighlighter
|
||||
modflagicondelegate
|
||||
modconflicticondelegate
|
||||
modidlineedit
|
||||
noeditdelegate
|
||||
qtgroupingproxy
|
||||
texteditor
|
||||
viewmarkingscrollbar
|
||||
modelutils
|
||||
copyeventfilter
|
||||
)
|
||||
|
||||
|
||||
requires_project(game_features githubpp bsatk esptk archive usvfs)
|
||||
|
||||
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE
|
||||
${modorganizer_super_path}/lootcli/include
|
||||
)
|
||||
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dlls.manifest.qt5
|
||||
DESTINATION bin/dlls
|
||||
RENAME dlls.manifest)
|
||||
|
||||
install(FILES ${qm_files} DESTINATION bin/translations)
|
||||
|
||||
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/stylesheets
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/tutorials
|
||||
DESTINATION bin)
|
||||
|
||||
deploy_qt(BINARIES ModOrganizer.exe uibase.dll plugins/bsa_packer.dll)
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../qdds.dll DESTINATION bin/dlls/imageformats)
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/resources/markdown.html DESTINATION bin/resources)
|
||||
|
||||
@@ -40,10 +40,6 @@ greaterThan(QT_MAJOR_VERSION, 4) {
|
||||
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
|
||||
|
||||
|
||||
+124
-126
@@ -1,126 +1,124 @@
|
||||
/*
|
||||
Copyright (C) 2014 Sebastian Herbord. All rights reserved.
|
||||
|
||||
This file is part of Mod Organizer.
|
||||
|
||||
Mod Organizer is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Mod Organizer is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "aboutdialog.h"
|
||||
#include "shared/util.h"
|
||||
#include "ui_aboutdialog.h"
|
||||
#include <utility.h>
|
||||
|
||||
#include <QApplication>
|
||||
#include <QFontDatabase>
|
||||
#include <QLabel>
|
||||
#include <QListWidget>
|
||||
#include <QListWidgetItem>
|
||||
#include <QTextBrowser>
|
||||
#include <QVariant>
|
||||
#include <Qt>
|
||||
|
||||
AboutDialog::AboutDialog(const QString& version, QWidget* parent)
|
||||
: QDialog(parent), ui(new Ui::AboutDialog)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
m_LicenseFiles[LICENSE_LGPL3] = "LGPL-v3.0.txt";
|
||||
m_LicenseFiles[LICENSE_LGPL21] = "GNU-LGPL-v2.1.txt";
|
||||
m_LicenseFiles[LICENSE_GPL3] = "GPL-v3.0.txt";
|
||||
m_LicenseFiles[LICENSE_GPL2] = "GPL-v2.0.txt";
|
||||
m_LicenseFiles[LICENSE_BOOST] = "boost.txt";
|
||||
m_LicenseFiles[LICENSE_7ZIP] = "7zip.txt";
|
||||
m_LicenseFiles[LICENSE_CCBY3] = "BY-SA-v3.0.txt";
|
||||
m_LicenseFiles[LICENSE_ZLIB] = "zlib.txt";
|
||||
m_LicenseFiles[LICENSE_PYTHON] = "python.txt";
|
||||
m_LicenseFiles[LICENSE_SSL] = "openssl.txt";
|
||||
m_LicenseFiles[LICENSE_CPPTOML] = "cpptoml.txt";
|
||||
m_LicenseFiles[LICENSE_UDIS] = "udis86.txt";
|
||||
m_LicenseFiles[LICENSE_SPDLOG] = "spdlog.txt";
|
||||
m_LicenseFiles[LICENSE_FMT] = "fmt.txt";
|
||||
m_LicenseFiles[LICENSE_SIP] = "sip.txt";
|
||||
m_LicenseFiles[LICENSE_CASTLE] = "Castle.txt";
|
||||
m_LicenseFiles[LICENSE_ANTLR] = "AntlrBuildTask.txt";
|
||||
m_LicenseFiles[LICENSE_DXTEX] = "DXTex.txt";
|
||||
m_LicenseFiles[LICENSE_VDF] = "ValveFileVDF.txt";
|
||||
|
||||
addLicense("Qt", LICENSE_LGPL3);
|
||||
addLicense("Qt Json", LICENSE_GPL3);
|
||||
addLicense("Boost Library", LICENSE_BOOST);
|
||||
addLicense("7-zip", LICENSE_7ZIP);
|
||||
addLicense("ZLib", LICENSE_NONE);
|
||||
addLicense("Tango Icon Theme", LICENSE_NONE);
|
||||
addLicense("RRZE Icon Set", LICENSE_CCBY3);
|
||||
addLicense("Icons by Lorc, Delapouite and sbed available on http://game-icons.net",
|
||||
LICENSE_CCBY3);
|
||||
addLicense("Castle Core", LICENSE_CASTLE);
|
||||
addLicense("ANTLR", LICENSE_ANTLR);
|
||||
addLicense("LOOT", LICENSE_GPL3);
|
||||
addLicense("Python", LICENSE_PYTHON);
|
||||
addLicense("OpenSSL", LICENSE_SSL);
|
||||
addLicense("cpptoml", LICENSE_CPPTOML);
|
||||
addLicense("Udis86", LICENSE_UDIS);
|
||||
addLicense("spdlog", LICENSE_SPDLOG);
|
||||
addLicense("{fmt}", LICENSE_FMT);
|
||||
addLicense("SIP", LICENSE_SIP);
|
||||
addLicense("DXTex Headers", LICENSE_DXTEX);
|
||||
addLicense("Valve File VDF Reader", LICENSE_VDF);
|
||||
|
||||
ui->nameLabel->setText(
|
||||
QString("<span style=\"font-size:12pt; font-weight:600;\">%1 %2</span>")
|
||||
.arg(ui->nameLabel->text())
|
||||
.arg(version));
|
||||
#if defined(HGID)
|
||||
ui->revisionLabel->setText(ui->revisionLabel->text() + " " + HGID);
|
||||
#elif defined(GITID)
|
||||
ui->revisionLabel->setText(ui->revisionLabel->text() + " " + GITID);
|
||||
#else
|
||||
ui->revisionLabel->setText(ui->revisionLabel->text() + " unknown");
|
||||
#endif
|
||||
|
||||
ui->usvfsLabel->setText(ui->usvfsLabel->text() + " " +
|
||||
MOShared::getUsvfsVersionString());
|
||||
ui->licenseText->setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
|
||||
}
|
||||
|
||||
AboutDialog::~AboutDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void AboutDialog::addLicense(const QString& name, Licenses license)
|
||||
{
|
||||
QListWidgetItem* item = new QListWidgetItem(name);
|
||||
item->setData(Qt::UserRole, license);
|
||||
ui->creditsList->addItem(item);
|
||||
}
|
||||
|
||||
void AboutDialog::on_creditsList_currentItemChanged(QListWidgetItem* current,
|
||||
QListWidgetItem*)
|
||||
{
|
||||
auto iter = m_LicenseFiles.find(current->data(Qt::UserRole).toInt());
|
||||
if (iter != m_LicenseFiles.end()) {
|
||||
QString filePath = qApp->applicationDirPath() + "/licenses/" + iter->second;
|
||||
QString text = MOBase::readFileText(filePath);
|
||||
ui->licenseText->setText(text);
|
||||
} else {
|
||||
ui->licenseText->setText(tr("No license"));
|
||||
}
|
||||
}
|
||||
|
||||
void AboutDialog::on_sourceText_linkActivated(const QString& link)
|
||||
{
|
||||
MOBase::shell::Open(QUrl(link));
|
||||
}
|
||||
/*
|
||||
Copyright (C) 2014 Sebastian Herbord. All rights reserved.
|
||||
|
||||
This file is part of Mod Organizer.
|
||||
|
||||
Mod Organizer is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Mod Organizer is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#include "aboutdialog.h"
|
||||
#include "ui_aboutdialog.h"
|
||||
#include "shared/util.h"
|
||||
#include <utility.h>
|
||||
|
||||
#include <QApplication>
|
||||
#include <QLabel>
|
||||
#include <QListWidget>
|
||||
#include <QListWidgetItem>
|
||||
#include <QTextBrowser>
|
||||
#include <QVariant>
|
||||
#include <Qt>
|
||||
#include <QFontDatabase>
|
||||
|
||||
AboutDialog::AboutDialog(const QString &version, QWidget *parent)
|
||||
: QDialog(parent)
|
||||
, ui(new Ui::AboutDialog)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
m_LicenseFiles[LICENSE_LGPL3] = "LGPL-v3.0.txt";
|
||||
m_LicenseFiles[LICENSE_LGPL21] = "GNU-LGPL-v2.1.txt";
|
||||
m_LicenseFiles[LICENSE_GPL3] = "GPL-v3.0.txt";
|
||||
m_LicenseFiles[LICENSE_GPL2] = "GPL-v2.0.txt";
|
||||
m_LicenseFiles[LICENSE_BOOST] = "boost.txt";
|
||||
m_LicenseFiles[LICENSE_7ZIP] = "7zip.txt";
|
||||
m_LicenseFiles[LICENSE_CCBY3] = "BY-SA-v3.0.txt";
|
||||
m_LicenseFiles[LICENSE_ZLIB] = "zlib.txt";
|
||||
m_LicenseFiles[LICENSE_PYTHON] = "python.txt";
|
||||
m_LicenseFiles[LICENSE_SSL] = "openssl.txt";
|
||||
m_LicenseFiles[LICENSE_CPPTOML] = "cpptoml.txt";
|
||||
m_LicenseFiles[LICENSE_UDIS] = "udis86.txt";
|
||||
m_LicenseFiles[LICENSE_SPDLOG] = "spdlog.txt";
|
||||
m_LicenseFiles[LICENSE_FMT] = "fmt.txt";
|
||||
m_LicenseFiles[LICENSE_SIP] = "sip.txt";
|
||||
m_LicenseFiles[LICENSE_CASTLE] = "Castle.txt";
|
||||
m_LicenseFiles[LICENSE_ANTLR] = "AntlrBuildTask.txt";
|
||||
m_LicenseFiles[LICENSE_DXTEX] = "DXTex.txt";
|
||||
|
||||
addLicense("Qt", LICENSE_LGPL3);
|
||||
addLicense("Qt Json", LICENSE_GPL3);
|
||||
addLicense("Boost Library", LICENSE_BOOST);
|
||||
addLicense("7-zip", LICENSE_7ZIP);
|
||||
addLicense("ZLib", LICENSE_NONE);
|
||||
addLicense("Tango Icon Theme", LICENSE_NONE);
|
||||
addLicense("RRZE Icon Set", LICENSE_CCBY3);
|
||||
addLicense("Icons by Lorc, Delapouite and sbed available on http://game-icons.net", LICENSE_CCBY3);
|
||||
addLicense("Castle Core", LICENSE_CASTLE);
|
||||
addLicense("ANTLR", LICENSE_ANTLR);
|
||||
addLicense("LOOT", LICENSE_GPL3);
|
||||
addLicense("Python", LICENSE_PYTHON);
|
||||
addLicense("OpenSSL", LICENSE_SSL);
|
||||
addLicense("cpptoml", LICENSE_CPPTOML);
|
||||
addLicense("Udis86", LICENSE_UDIS);
|
||||
addLicense("spdlog", LICENSE_SPDLOG);
|
||||
addLicense("{fmt}", LICENSE_FMT);
|
||||
addLicense("SIP", LICENSE_SIP);
|
||||
addLicense("DXTex Headers", LICENSE_DXTEX);
|
||||
|
||||
ui->nameLabel->setText(QString("<span style=\"font-size:12pt; font-weight:600;\">%1 %2</span>").arg(ui->nameLabel->text()).arg(version));
|
||||
#if defined(HGID)
|
||||
ui->revisionLabel->setText(ui->revisionLabel->text() + " " + HGID);
|
||||
#elif defined(GITID)
|
||||
ui->revisionLabel->setText(ui->revisionLabel->text() + " " + GITID);
|
||||
#else
|
||||
ui->revisionLabel->setText(ui->revisionLabel->text() + " unknown");
|
||||
#endif
|
||||
|
||||
|
||||
ui->usvfsLabel->setText(ui->usvfsLabel->text() + " " + MOShared::getUsvfsVersionString());
|
||||
ui->licenseText->setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
|
||||
}
|
||||
|
||||
|
||||
AboutDialog::~AboutDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
|
||||
void AboutDialog::addLicense(const QString &name, Licenses license)
|
||||
{
|
||||
QListWidgetItem *item = new QListWidgetItem(name);
|
||||
item->setData(Qt::UserRole, license);
|
||||
ui->creditsList->addItem(item);
|
||||
}
|
||||
|
||||
|
||||
void AboutDialog::on_creditsList_currentItemChanged(QListWidgetItem *current, QListWidgetItem*)
|
||||
{
|
||||
auto iter = m_LicenseFiles.find(current->data(Qt::UserRole).toInt());
|
||||
if (iter != m_LicenseFiles.end()) {
|
||||
QString filePath = qApp->applicationDirPath() + "/licenses/" + iter->second;
|
||||
QString text = MOBase::readFileText(filePath);
|
||||
ui->licenseText->setText(text);
|
||||
} else {
|
||||
ui->licenseText->setText(tr("No license"));
|
||||
}
|
||||
}
|
||||
|
||||
void AboutDialog::on_sourceText_linkActivated(const QString &link)
|
||||
{
|
||||
emit linkClicked(link);
|
||||
}
|
||||
|
||||
+87
-82
@@ -1,82 +1,87 @@
|
||||
#ifndef ABOUTDIALOG_H
|
||||
/*
|
||||
Copyright (C) 2014 Sebastian Herbord. All rights reserved.
|
||||
|
||||
This file is part of Mod Organizer.
|
||||
|
||||
Mod Organizer is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Mod Organizer is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#define ABOUTDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
class QListWidgetItem;
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
|
||||
#include <map>
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
class AboutDialog;
|
||||
}
|
||||
|
||||
class AboutDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AboutDialog(const QString& version, QWidget* parent = 0);
|
||||
~AboutDialog();
|
||||
|
||||
private:
|
||||
enum Licenses
|
||||
{
|
||||
LICENSE_NONE,
|
||||
LICENSE_LGPL3,
|
||||
LICENSE_LGPL21,
|
||||
LICENSE_GPL3,
|
||||
LICENSE_GPL2,
|
||||
LICENSE_BOOST,
|
||||
LICENSE_CCBY3,
|
||||
LICENSE_PYTHON,
|
||||
LICENSE_SSL,
|
||||
LICENSE_CPPTOML,
|
||||
LICENSE_7ZIP,
|
||||
LICENSE_ZLIB,
|
||||
LICENSE_UDIS,
|
||||
LICENSE_SPDLOG,
|
||||
LICENSE_FMT,
|
||||
LICENSE_SIP,
|
||||
LICENSE_CASTLE,
|
||||
LICENSE_ANTLR,
|
||||
LICENSE_DXTEX,
|
||||
LICENSE_VDF,
|
||||
};
|
||||
|
||||
private:
|
||||
void addLicense(const QString& name, Licenses license);
|
||||
|
||||
private slots:
|
||||
void on_creditsList_currentItemChanged(QListWidgetItem* current,
|
||||
QListWidgetItem* previous);
|
||||
void on_sourceText_linkActivated(const QString& link);
|
||||
|
||||
private:
|
||||
Ui::AboutDialog* ui;
|
||||
|
||||
std::map<int, QString> m_LicenseFiles;
|
||||
};
|
||||
|
||||
#endif // ABOUTDIALOG_H
|
||||
#ifndef ABOUTDIALOG_H
|
||||
/*
|
||||
Copyright (C) 2014 Sebastian Herbord. All rights reserved.
|
||||
|
||||
This file is part of Mod Organizer.
|
||||
|
||||
Mod Organizer is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Mod Organizer is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#define ABOUTDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
class QListWidgetItem;
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
|
||||
#include <map>
|
||||
|
||||
namespace Ui {
|
||||
class AboutDialog;
|
||||
}
|
||||
|
||||
class AboutDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AboutDialog(const QString &version, QWidget *parent = 0);
|
||||
~AboutDialog();
|
||||
|
||||
signals:
|
||||
|
||||
void linkClicked(QString link);
|
||||
|
||||
private:
|
||||
|
||||
enum Licenses {
|
||||
LICENSE_NONE,
|
||||
LICENSE_LGPL3,
|
||||
LICENSE_LGPL21,
|
||||
LICENSE_GPL3,
|
||||
LICENSE_GPL2,
|
||||
LICENSE_BOOST,
|
||||
LICENSE_CCBY3,
|
||||
LICENSE_PYTHON,
|
||||
LICENSE_SSL,
|
||||
LICENSE_CPPTOML,
|
||||
LICENSE_7ZIP,
|
||||
LICENSE_ZLIB,
|
||||
LICENSE_UDIS,
|
||||
LICENSE_SPDLOG,
|
||||
LICENSE_FMT,
|
||||
LICENSE_SIP,
|
||||
LICENSE_CASTLE,
|
||||
LICENSE_ANTLR,
|
||||
LICENSE_DXTEX
|
||||
};
|
||||
|
||||
private:
|
||||
|
||||
void addLicense(const QString &name, Licenses license);
|
||||
|
||||
private slots:
|
||||
void on_creditsList_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
|
||||
void on_sourceText_linkActivated(const QString &link);
|
||||
|
||||
private:
|
||||
|
||||
Ui::AboutDialog *ui;
|
||||
|
||||
std::map<int, QString> m_LicenseFiles;
|
||||
|
||||
};
|
||||
|
||||
#endif // ABOUTDIALOG_H
|
||||
|
||||
+8
-113
@@ -127,7 +127,7 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string notr="true"><html><head/><body><p>Copyright © 2011-2016 Sebastian Herbord<br/>Copyright © 2016-2023 Mod Organizer 2 Contributors</p></body></html></string>
|
||||
<string notr="true"><html><head/><body><p>Copyright © 2011-2016 Sebastian Herbord<br/>Copyright © 2016-2019 Mod Organizer 2 Contributors</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -220,11 +220,6 @@
|
||||
<string notr="true">isa</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Holt59</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
@@ -263,7 +258,7 @@
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Qudix</string>
|
||||
<string notr="true">Holt59</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
@@ -297,31 +292,11 @@
|
||||
<string notr="true">miraclefreak (Czech)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Meiton (Czech)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Cyb3r (Dutch)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">madmedic (Dutch)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Ilja (Finnish)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Mikmet (Finnish)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Alyndiar (French)</string>
|
||||
@@ -347,11 +322,6 @@
|
||||
<string>Yoplala (French)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">CircleOfDao (German)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Faron (German)</string>
|
||||
@@ -367,11 +337,6 @@
|
||||
<string notr="true">Xahtax (German)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Ypselon (German)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>yohru (Japanese)</string>
|
||||
@@ -435,11 +400,6 @@
|
||||
<string notr="true">Hakan "Nyks45" Albayrak (Turkish)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Kato (Turkish)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>...and all other contributors!</string>
|
||||
@@ -466,12 +426,7 @@
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Tannin (Original Creator)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">6788</string>
|
||||
<string>Tannin (Original Creator)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
@@ -479,36 +434,6 @@
|
||||
<string notr="true">blacksol</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">BlueAmulet</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Bridger</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Brixified</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">ddbb07</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">deathneko11</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">dekart811</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">DoubleYou</string>
|
||||
@@ -521,22 +446,17 @@
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">erri120</string>
|
||||
<string notr="true">deathneko11</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">ianpatt</string>
|
||||
<string notr="true">Bridger</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Falsellyu</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">foresto</string>
|
||||
<string notr="true">Brixified</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
@@ -559,21 +479,6 @@
|
||||
<string notr="true">GSDFan</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">JayLCypher</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">jimfcarroll</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Luca|EzioTheDeadPoet</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">ogrotten</string>
|
||||
@@ -584,11 +489,6 @@
|
||||
<string notr="true">outdatedtv</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Patchier</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">PurpleFez</string>
|
||||
@@ -609,11 +509,6 @@
|
||||
<string notr="true">SuperSandro2000</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Trosski</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Uhuru</string>
|
||||
@@ -626,12 +521,12 @@
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">thosrtanner</string>
|
||||
<string notr="true">z929669</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">z929669</string>
|
||||
<string notr="true">thosrtanner</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
|
||||
+96
-94
@@ -1,94 +1,96 @@
|
||||
/*
|
||||
Copyright (C) 2012 Sebastian Herbord. All rights reserved.
|
||||
|
||||
This file is part of Mod Organizer.
|
||||
|
||||
Mod Organizer is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Mod Organizer is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "activatemodsdialog.h"
|
||||
#include "ui_activatemodsdialog.h"
|
||||
|
||||
#include <QComboBox>
|
||||
#include <QHeaderView>
|
||||
#include <QLabel>
|
||||
#include <QString>
|
||||
#include <QTableWidget>
|
||||
|
||||
#include <QtGlobal>
|
||||
|
||||
ActivateModsDialog::ActivateModsDialog(SaveGameInfo::MissingAssets const& missingAssets,
|
||||
QWidget* parent)
|
||||
: TutorableDialog("ActivateMods", parent), ui(new Ui::ActivateModsDialog)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
QTableWidget* modsTable = findChild<QTableWidget*>("modsTable");
|
||||
QHeaderView* headerView = modsTable->horizontalHeader();
|
||||
headerView->setSectionResizeMode(0, QHeaderView::Stretch);
|
||||
headerView->setSectionResizeMode(1, QHeaderView::Interactive);
|
||||
|
||||
int row = 0;
|
||||
|
||||
modsTable->setRowCount(missingAssets.size());
|
||||
|
||||
for (SaveGameInfo::MissingAssets::const_iterator espIter = missingAssets.begin();
|
||||
espIter != missingAssets.end(); ++espIter, ++row) {
|
||||
modsTable->setCellWidget(row, 0, new QLabel(espIter.key()));
|
||||
if (espIter->size() == 0) {
|
||||
modsTable->setCellWidget(row, 1, new QLabel(tr("not found")));
|
||||
} else {
|
||||
QComboBox* combo = new QComboBox();
|
||||
for (QString const& mod : espIter.value()) {
|
||||
combo->addItem(mod);
|
||||
}
|
||||
modsTable->setCellWidget(row, 1, combo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ActivateModsDialog::~ActivateModsDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
std::set<QString> ActivateModsDialog::getModsToActivate()
|
||||
{
|
||||
std::set<QString> result;
|
||||
QTableWidget* modsTable = findChild<QTableWidget*>("modsTable");
|
||||
|
||||
for (int row = 0; row < modsTable->rowCount(); ++row) {
|
||||
QComboBox* comboBox = dynamic_cast<QComboBox*>(modsTable->cellWidget(row, 1));
|
||||
if (comboBox != nullptr) {
|
||||
result.insert(comboBox->currentText());
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
std::set<QString> ActivateModsDialog::getESPsToActivate()
|
||||
{
|
||||
std::set<QString> result;
|
||||
QTableWidget* modsTable = findChild<QTableWidget*>("modsTable");
|
||||
|
||||
for (int row = 0; row < modsTable->rowCount(); ++row) {
|
||||
QComboBox* comboBox = dynamic_cast<QComboBox*>(modsTable->cellWidget(row, 1));
|
||||
if (comboBox != nullptr) {
|
||||
QLabel* espName = dynamic_cast<QLabel*>(modsTable->cellWidget(row, 0));
|
||||
|
||||
result.insert(espName->text());
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
/*
|
||||
Copyright (C) 2012 Sebastian Herbord. All rights reserved.
|
||||
|
||||
This file is part of Mod Organizer.
|
||||
|
||||
Mod Organizer is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Mod Organizer is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "activatemodsdialog.h"
|
||||
#include "ui_activatemodsdialog.h"
|
||||
|
||||
#include <QComboBox>
|
||||
#include <QHeaderView>
|
||||
#include <QLabel>
|
||||
#include <QString>
|
||||
#include <QTableWidget>
|
||||
|
||||
#include <QtGlobal>
|
||||
|
||||
ActivateModsDialog::ActivateModsDialog(SaveGameInfo::MissingAssets const &missingAssets, QWidget *parent)
|
||||
: TutorableDialog("ActivateMods", parent), ui(new Ui::ActivateModsDialog)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
QTableWidget *modsTable = findChild<QTableWidget*>("modsTable");
|
||||
QHeaderView *headerView = modsTable->horizontalHeader();
|
||||
headerView->setSectionResizeMode(0, QHeaderView::Stretch);
|
||||
headerView->setSectionResizeMode(1, QHeaderView::Interactive);
|
||||
|
||||
int row = 0;
|
||||
|
||||
modsTable->setRowCount(missingAssets.size());
|
||||
|
||||
for (SaveGameInfo::MissingAssets::const_iterator espIter = missingAssets.begin();
|
||||
espIter != missingAssets.end(); ++espIter, ++row) {
|
||||
modsTable->setCellWidget(row, 0, new QLabel(espIter.key()));
|
||||
if (espIter->size() == 0) {
|
||||
modsTable->setCellWidget(row, 1, new QLabel(tr("not found")));
|
||||
} else {
|
||||
QComboBox* combo = new QComboBox();
|
||||
for (QString const &mod : espIter.value()) {
|
||||
combo->addItem(mod);
|
||||
}
|
||||
modsTable->setCellWidget(row, 1, combo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ActivateModsDialog::~ActivateModsDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
|
||||
std::set<QString> ActivateModsDialog::getModsToActivate()
|
||||
{
|
||||
std::set<QString> result;
|
||||
QTableWidget *modsTable = findChild<QTableWidget*>("modsTable");
|
||||
|
||||
for (int row = 0; row < modsTable->rowCount(); ++row) {
|
||||
QComboBox *comboBox = dynamic_cast<QComboBox*>(modsTable->cellWidget(row, 1));
|
||||
if (comboBox != nullptr) {
|
||||
result.insert(comboBox->currentText());
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
std::set<QString> ActivateModsDialog::getESPsToActivate()
|
||||
{
|
||||
std::set<QString> result;
|
||||
QTableWidget *modsTable = findChild<QTableWidget*>("modsTable");
|
||||
|
||||
for (int row = 0; row < modsTable->rowCount(); ++row) {
|
||||
QComboBox *comboBox = dynamic_cast<QComboBox*>(modsTable->cellWidget(row, 1));
|
||||
if (comboBox != nullptr) {
|
||||
QLabel *espName = dynamic_cast<QLabel*>(modsTable->cellWidget(row, 0));
|
||||
|
||||
result.insert(espName->text());
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
+76
-79
@@ -1,79 +1,76 @@
|
||||
/*
|
||||
Copyright (C) 2012 Sebastian Herbord. All rights reserved.
|
||||
|
||||
This file is part of Mod Organizer.
|
||||
|
||||
Mod Organizer is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Mod Organizer is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef ACTIVATEMODSDIALOG_H
|
||||
#define ACTIVATEMODSDIALOG_H
|
||||
|
||||
#include "savegameinfo.h"
|
||||
#include "tutorabledialog.h"
|
||||
|
||||
#include <QObject>
|
||||
|
||||
class QString;
|
||||
class QWidget;
|
||||
|
||||
#include <set>
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
class ActivateModsDialog;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Dialog that is used to batch activate/deactivate mods and plugins
|
||||
**/
|
||||
class ActivateModsDialog : public MOBase::TutorableDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
/**
|
||||
* @brief constructor
|
||||
*
|
||||
* @param missingPlugins a map containing missing plugins that need to be activated
|
||||
* @param parent ... Defaults to 0.
|
||||
**/
|
||||
explicit ActivateModsDialog(SaveGameInfo::MissingAssets const& missingAssets,
|
||||
QWidget* parent = 0);
|
||||
~ActivateModsDialog();
|
||||
|
||||
/**
|
||||
* @brief get a list of mods that the user chose to activate
|
||||
*
|
||||
* @note This can of ocurse only be called after the dialog has been displayed
|
||||
*
|
||||
* @return set< QString > the mods to activate
|
||||
**/
|
||||
std::set<QString> getModsToActivate();
|
||||
|
||||
/**
|
||||
* @brief get a list of plugins that should be activated
|
||||
*
|
||||
* @return set< QString > the plugins to activate. This contains only plugins that
|
||||
*become available after enabling the mods retrieved with getModsToActivate
|
||||
**/
|
||||
std::set<QString> getESPsToActivate();
|
||||
|
||||
private slots:
|
||||
|
||||
private:
|
||||
Ui::ActivateModsDialog* ui;
|
||||
};
|
||||
|
||||
#endif // ACTIVATEMODSDIALOG_H
|
||||
/*
|
||||
Copyright (C) 2012 Sebastian Herbord. All rights reserved.
|
||||
|
||||
This file is part of Mod Organizer.
|
||||
|
||||
Mod Organizer is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Mod Organizer is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef ACTIVATEMODSDIALOG_H
|
||||
#define ACTIVATEMODSDIALOG_H
|
||||
|
||||
#include "savegameinfo.h"
|
||||
#include "tutorabledialog.h"
|
||||
|
||||
#include <QObject>
|
||||
|
||||
class QString;
|
||||
class QWidget;
|
||||
|
||||
#include <set>
|
||||
|
||||
namespace Ui {
|
||||
class ActivateModsDialog;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Dialog that is used to batch activate/deactivate mods and plugins
|
||||
**/
|
||||
class ActivateModsDialog : public MOBase::TutorableDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
/**
|
||||
* @brief constructor
|
||||
*
|
||||
* @param missingPlugins a map containing missing plugins that need to be activated
|
||||
* @param parent ... Defaults to 0.
|
||||
**/
|
||||
explicit ActivateModsDialog(SaveGameInfo::MissingAssets const &missingAssets, QWidget *parent = 0);
|
||||
~ActivateModsDialog();
|
||||
|
||||
/**
|
||||
* @brief get a list of mods that the user chose to activate
|
||||
*
|
||||
* @note This can of ocurse only be called after the dialog has been displayed
|
||||
*
|
||||
* @return set< QString > the mods to activate
|
||||
**/
|
||||
std::set<QString> getModsToActivate();
|
||||
|
||||
/**
|
||||
* @brief get a list of plugins that should be activated
|
||||
*
|
||||
* @return set< QString > the plugins to activate. This contains only plugins that become available after enabling the mods retrieved with getModsToActivate
|
||||
**/
|
||||
std::set<QString> getESPsToActivate();
|
||||
|
||||
private slots:
|
||||
|
||||
private:
|
||||
Ui::ActivateModsDialog *ui;
|
||||
};
|
||||
|
||||
#endif // ACTIVATEMODSDIALOG_H
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user