mirror of
https://github.com/ModOrganizer2/modorganizer.git
synced 2026-07-27 13:58:24 -07:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
db1e63dc72 | ||
|
|
74e88b00c8 | ||
|
|
28a68cf51b | ||
|
|
a24a1cbf25 | ||
|
|
0c75ff1836 | ||
|
|
5c192fb8c5 | ||
|
|
80fc713273 | ||
|
|
cb1c9f5e83 | ||
|
|
7dad8bcb28 | ||
|
|
302a9b744d | ||
|
|
ff31ce636b | ||
|
|
90421277e7 | ||
|
|
4656ba9447 | ||
|
|
b157ebb28c | ||
|
|
385a888c0b | ||
|
|
7b45d807d6 | ||
|
|
f0597eb243 | ||
|
|
8839e11636 | ||
|
|
240cbd6a27 | ||
|
|
81344771dd | ||
|
|
2c28107ae8 | ||
|
|
da35cd3ea0 | ||
|
|
bd48d2f8bc | ||
|
|
554b468475 | ||
|
|
604d86ed07 | ||
|
|
a5bb70f53b | ||
|
|
0586b2856b | ||
|
|
184b6d3907 | ||
|
|
4d54b962aa | ||
|
|
6773e14fc5 | ||
|
|
e4b952278d | ||
|
|
dda5272dc9 | ||
|
|
062e0cce2d | ||
|
|
027f941bb1 | ||
|
|
083d107875 | ||
|
|
2226a483d1 | ||
|
|
240900de39 | ||
|
|
2c69f9c407 | ||
|
|
ebb30e0c37 | ||
|
|
361e59e40d | ||
|
|
ad702537bd | ||
|
|
ebf378cda0 | ||
|
|
d43f35f56b | ||
|
|
db973f7422 | ||
|
|
7ab98cb451 | ||
|
|
bf02d13ed4 | ||
|
|
b2d7181ca7 | ||
|
|
689248619a | ||
|
|
66b17eea8a | ||
|
|
89b1f1d48d | ||
|
|
b75e3c1231 | ||
|
|
1b4b6dbeb4 | ||
|
|
4adb13c943 | ||
|
|
54fd26fee1 | ||
|
|
0aaece55d8 | ||
|
|
ef21bd6193 | ||
|
|
b45b6f3342 | ||
|
|
d7a1955f18 | ||
|
|
7c80181e01 | ||
|
|
88e218d83e | ||
|
|
720e4dd516 | ||
|
|
2497d4e151 | ||
|
|
9a2a1a4301 | ||
|
|
b3898c5d66 | ||
|
|
6794713165 | ||
|
|
fa598e86db | ||
|
|
ffdc5ca7cc | ||
|
|
e19597ee4e | ||
|
|
c55a923bb8 | ||
|
|
797a007eab | ||
|
|
d7bc542b3d | ||
|
|
977d562976 | ||
|
|
af16521a2d | ||
|
|
581a8871c6 | ||
|
|
53a54230eb | ||
|
|
7ec0b79eb4 | ||
|
|
3974ddced4 | ||
|
|
d0099a9dbb | ||
|
|
3cf3de700e | ||
|
|
9ec913945a | ||
|
|
092596f57a | ||
|
|
8d5c67296f | ||
|
|
58e17777de | ||
|
|
836e550dd0 | ||
|
|
4cd09a2f3b | ||
|
|
a92fc98246 | ||
|
|
9a3cf3bc1c | ||
|
|
853c42081d | ||
|
|
901bf0059d | ||
|
|
b2d0abe0e4 | ||
|
|
00af56f7c7 | ||
|
|
55a65b16cc | ||
|
|
51ad72c74d | ||
|
|
080cfeea41 | ||
|
|
ef699514c9 | ||
|
|
087f3841f3 | ||
|
|
627660ebb7 | ||
|
|
0825cd0f20 | ||
|
|
66e04f636e | ||
|
|
6c54ef5ec2 | ||
|
|
9cc196ae3a | ||
|
|
c8118ea0fa | ||
|
|
2f1d270c08 | ||
|
|
5cb0d1cb3d | ||
|
|
d53591c6c9 | ||
|
|
701e6e4927 | ||
|
|
d15262b903 | ||
|
|
88452e5d76 | ||
|
|
cabffa23a9 | ||
|
|
7e2811cb46 | ||
|
|
ebe6011174 | ||
|
|
d659ad7294 | ||
|
|
139ee36a3f | ||
|
|
4124bc3976 | ||
|
|
643477de2f | ||
|
|
bf505d2d5f | ||
|
|
2866a494d4 | ||
|
|
56a3dd4624 | ||
|
|
126f8deb55 | ||
|
|
f0f2112c15 | ||
|
|
0c6f983148 | ||
|
|
ac3953030d | ||
|
|
03608230ac | ||
|
|
fe44deb765 | ||
|
|
b09f8ce7b4 | ||
|
|
2d4b463338 | ||
|
|
e4d431fe21 | ||
|
|
eaeb48d745 | ||
|
|
b16a0ab3d9 | ||
|
|
a611c355ce | ||
|
|
4689db7624 | ||
|
|
8bea685640 | ||
|
|
91eaba8b44 | ||
|
|
822534e16a | ||
|
|
c64e12a289 | ||
|
|
9438098cf1 | ||
|
|
4269e82c80 | ||
|
|
d63c164a74 | ||
|
|
45cc67da05 | ||
|
|
0da2060da4 | ||
|
|
4149ce4cdb | ||
|
|
f2b33d75cb | ||
|
|
d869d99785 | ||
|
|
bfeda873c4 | ||
|
|
c9766b6e1a | ||
|
|
99156abc6e | ||
|
|
03328e9f55 | ||
|
|
c48d1c36b7 | ||
|
|
866a004438 | ||
|
|
8b8ddc8163 | ||
|
|
5dc1ee3da6 | ||
|
|
dd653c3752 | ||
|
|
a8556eacb6 | ||
|
|
f0810bfa43 | ||
|
|
7432f7870b | ||
|
|
71f9c4f69d | ||
|
|
71b4911c8c | ||
|
|
d1ed7ae5d7 | ||
|
|
1cf368c126 | ||
|
|
a3671a5557 | ||
|
|
afa0cb9446 | ||
|
|
0657774e2e | ||
|
|
695593968b | ||
|
|
61edeb12f1 | ||
|
|
5ae681e6d5 | ||
|
|
db6b536fb1 | ||
|
|
64590a10d7 | ||
|
|
4a582e524d | ||
|
|
a00cda607c | ||
|
|
42407866e9 | ||
|
|
c3a8a0b9eb | ||
|
|
607b2a10aa | ||
|
|
6b60d54853 | ||
|
|
c7101be7d8 | ||
|
|
d80a77a4cb | ||
|
|
33b544112c | ||
|
|
8a3af93b39 | ||
|
|
352975e757 | ||
|
|
cd83f4e732 | ||
|
|
4f25a0689f | ||
|
|
3d642563cb | ||
|
|
0100c86887 | ||
|
|
8d04c77c29 | ||
|
|
b935ce3862 | ||
|
|
fcebf21c44 | ||
|
|
3d1dfadb40 | ||
|
|
c2c48bd39a | ||
|
|
9163a6dc34 | ||
|
|
8bf3037d4b | ||
|
|
4f1bb36933 | ||
|
|
cbdea13a9c | ||
|
|
b36c666899 | ||
|
|
bbab59f681 | ||
|
|
bfbb190998 | ||
|
|
c3b7737ae4 | ||
|
|
30878ae394 | ||
|
|
45a182a381 | ||
|
|
0b07cfa3f0 | ||
|
|
986330a3bd | ||
|
|
81c5ca5308 | ||
|
|
3a8da159da | ||
|
|
f6c3b516fd | ||
|
|
5665be7fd1 | ||
|
|
a625acd17b | ||
|
|
e522afa63b | ||
|
|
e3c3c2dcc4 | ||
|
|
519f215fd7 | ||
|
|
89221af929 | ||
|
|
f5a815185f | ||
|
|
59a36107a1 | ||
|
|
bc5d5d8bfa | ||
|
|
a294f8410f | ||
|
|
256cdb8df7 | ||
|
|
32480f7a81 | ||
|
|
e43762e7db | ||
|
|
afe0d749c4 | ||
|
|
eb97c46ed6 | ||
|
|
d958e11e2b | ||
|
|
b0e3e86a61 | ||
|
|
9df612c7ca | ||
|
|
0899724d90 | ||
|
|
53d9789740 | ||
|
|
4f8c71d626 | ||
|
|
ba8464f01f | ||
|
|
fd68248698 | ||
|
|
1ad2115e01 | ||
|
|
8d1dd6238f | ||
|
|
aaa1f52bdd | ||
|
|
b085aeea0e | ||
|
|
ea621ef859 | ||
|
|
3202713cff | ||
|
|
ad9d50e5f0 | ||
|
|
63eaf453e0 | ||
|
|
8a9a1680b0 | ||
|
|
1439347def | ||
|
|
0e9a86ebfc | ||
|
|
8da9ba5404 | ||
|
|
387326f2d6 | ||
|
|
a9a51f5085 | ||
|
|
2aae65d6f6 | ||
|
|
d07b4f7ff0 | ||
|
|
197c49e996 | ||
|
|
0d50427b83 | ||
|
|
e90fbb1df2 | ||
|
|
a4dbe82be7 | ||
|
|
42417b6a01 | ||
|
|
f2b2ee1a11 | ||
|
|
ae6bb99c52 | ||
|
|
3869eaaf2b | ||
|
|
6edf12f2f7 | ||
|
|
f55a5f2b21 | ||
|
|
5f5184ebfe | ||
|
|
30b29635f6 | ||
|
|
0c536a4c12 | ||
|
|
967c2ae653 | ||
|
|
ba176e5e9b |
@@ -0,0 +1,25 @@
|
||||
# The problem
|
||||
|
||||
Briefly describe the issue you are experiencing (or the feature you want to see added to Mod Organizer). 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
|
||||
|
||||
# Environment
|
||||
|
||||
* Mod Organizer Version that exhibits the issue:
|
||||
* Last Mod Organizer Verison that did not exhibit the issue (if applicable):
|
||||
* Desktop OS/version used to run Mod Organizer:
|
||||
|
||||
# Details
|
||||
|
||||
If necessary, describe the problem you have been experiencing in more detail.
|
||||
|
||||
# Link to Mod Organizer logs
|
||||
|
||||
## USVFS
|
||||
Create a [GIST](https://gist.github.com) which is a paste of your USVFS logs, and link them here.
|
||||
Do _NOT_ paste your full USVFS logs here, as it will make this issue very long and hard to read!
|
||||
If you are reporting a bug, _always_ include the USVFS logs!
|
||||
|
||||
## MO Interface
|
||||
Create a [GIST](https://gist.github.com) which is a paste of your mo_interface logs, and link them here.
|
||||
Do _NOT_ paste your full mo_interface logs here, as it will make this issue very long and hard to read!
|
||||
If you are reporting a bug, _always_ include the mo_interface logs!
|
||||
@@ -2,11 +2,17 @@
|
||||
Thumbs.db
|
||||
src/moc_*.cpp
|
||||
src/ui_*.h
|
||||
src/organizer_en.ts
|
||||
src/*.qrc.depends
|
||||
src/Modorganizer.*
|
||||
src/*.bak
|
||||
CMakeLists.txt.user
|
||||
edit
|
||||
stderr.log
|
||||
stdout.log
|
||||
vs_stderr.log
|
||||
vs_stdout.log
|
||||
build
|
||||
/vsbuild
|
||||
/CMakeFiles
|
||||
.idea
|
||||
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
|
||||
[mod-organizer.organizer]
|
||||
file_filter = organizer/organizer_<lang>.ts
|
||||
source_file = organizer/organizer_en.ts
|
||||
source_lang = en
|
||||
|
||||
[mod-organizer.diagnosebasic]
|
||||
file_filter = plugins/diagnoseBasic/diagnoseBasic_<lang>.ts
|
||||
source_file = plugins/diagnoseBasic/diagnoseBasic_en.ts
|
||||
source_lang = en
|
||||
|
||||
[mod-organizer.bsaextractor]
|
||||
file_filter = plugins/bsaExtractor/bsaExtractor_<lang>.ts
|
||||
source_file = plugins/bsaExtractor/bsaExtractor_en.ts
|
||||
source_lang = en
|
||||
|
||||
[mod-organizer.checkfnis]
|
||||
file_filter = plugins/checkFNIS/checkFNIS_<lang>.ts
|
||||
source_file = plugins/checkFNIS/checkFNIS_en.ts
|
||||
source_lang = en
|
||||
|
||||
[mod-organizer.inieditor]
|
||||
file_filter = plugins/iniEditor/iniEditor_<lang>.ts
|
||||
source_file = plugins/iniEditor/iniEditor_en.ts
|
||||
source_lang = en
|
||||
|
||||
[mod-organizer.installerbain]
|
||||
file_filter = plugins/installerBAIN/installerBAIN_<lang>.ts
|
||||
source_file = plugins/installerBAIN/installerBAIN_en.ts
|
||||
source_lang = en
|
||||
|
||||
[mod-organizer.installerbundle]
|
||||
file_filter = plugins/installerBundle/installerBundle_<lang>.ts
|
||||
source_file = plugins/installerBundle/installerBundle_en.ts
|
||||
source_lang = en
|
||||
|
||||
[mod-organizer.installerfomod]
|
||||
file_filter = plugins/installerFomod/installerFomod_<lang>.ts
|
||||
source_file = plugins/installerFomod/installerFomod_en.ts
|
||||
source_lang = en
|
||||
|
||||
[mod-organizer.installermanual]
|
||||
file_filter = plugins/installerManual/installerManual_<lang>.ts
|
||||
source_file = plugins/installerManual/installerManual_en.ts
|
||||
source_lang = en
|
||||
|
||||
[mod-organizer.installerncc]
|
||||
file_filter = plugins/installerNCC/installerNCC_<lang>.ts
|
||||
source_file = plugins/installerNCC/installerNCC_en.ts
|
||||
source_lang = en
|
||||
|
||||
[mod-organizer.installerquick]
|
||||
file_filter = plugins/installerQuick/installerQuick_<lang>.ts
|
||||
source_file = plugins/installerQuick/installerQuick_en.ts
|
||||
source_lang = en
|
||||
|
||||
[mod-organizer.nmmimport]
|
||||
file_filter = plugins/NMMImport/NMMImport_<lang>.ts
|
||||
source_file = plugins/NMMImport/NMMImport_en.ts
|
||||
source_lang = en
|
||||
|
||||
[mod-organizer.previewbase]
|
||||
file_filter = plugins/previewBase/previewBase_<lang>.ts
|
||||
source_file = plugins/previewBase/previewBase_en.ts
|
||||
source_lang = en
|
||||
|
||||
[mod-organizer.previewdds]
|
||||
file_filter = plugins/previewDDS/previewDDS_<lang>.ts
|
||||
source_file = plugins/previewDDS/previewDDS_en.ts
|
||||
source_lang = en
|
||||
|
||||
[mod-organizer.proxypython]
|
||||
file_filter = plugins/proxyPython/proxyPython_<lang>.ts
|
||||
source_file = plugins/proxyPython/proxyPython_en.ts
|
||||
source_lang = en
|
||||
|
||||
[mod-organizer.configurator]
|
||||
file_filter = plugins/pyniEdit/pyniEdit_<lang>.ts
|
||||
source_file = plugins/pyniEdit/pyniEdit_en.ts
|
||||
source_lang = en
|
||||
+3
-3
@@ -2,13 +2,13 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
|
||||
|
||||
PROJECT(organizer)
|
||||
|
||||
|
||||
SET(DEPENDENCIES_DIR CACHE PATH "")
|
||||
# hint to find qt in dependencies path
|
||||
LIST(APPEND CMAKE_PREFIX_PATH ${DEPENDENCIES_DIR}/qt5/lib/cmake)
|
||||
|
||||
LIST(APPEND CMAKE_PREFIX_PATH ${QT_ROOT}/lib/cmake)
|
||||
FILE(GLOB_RECURSE BOOST_ROOT ${DEPENDENCIES_DIR}/boost*/project-config.jam)
|
||||
GET_FILENAME_COMPONENT(BOOST_ROOT ${BOOST_ROOT} DIRECTORY)
|
||||
|
||||
SET(ZLIB_ROOT ${DEPENDENCIES_DIR}/zlib)
|
||||
|
||||
ADD_SUBDIRECTORY(src)
|
||||
ADD_SUBDIRECTORY(src)
|
||||
|
||||
+33
-10
@@ -431,16 +431,24 @@ msvs_version = int(env['MSVS_VERSION'].split('.')[0]) + 2000
|
||||
if msvs_version > 2010:
|
||||
msvs_version += 1
|
||||
|
||||
# Need more work on the qt version stuff
|
||||
#build-ModOrganizer-Desktop_Qt_5_4_1_MSVC2013_OpenGL_32bit-Debug
|
||||
build_dir = 'scons-ModOrganizer-QT_%s_for_MSVS%d_32bit-%s' % (
|
||||
#os.path.basename(env['QTDIR']).replace('.', '_'),
|
||||
'5_4_1_OpenGL',
|
||||
# Read the QT version info
|
||||
with open(os.path.join(env['QTDIR'], 'mkspecs', 'qconfig.pri')) as qtinfo:
|
||||
for line in qtinfo:
|
||||
info = re.split(r'\s*=\s*', line.rstrip())
|
||||
if info[0] == 'QT_VERSION':
|
||||
env[info[0]] = info[1]
|
||||
elif '_VERSION' in info[0]:
|
||||
env[info[0]] = int(info[1])
|
||||
|
||||
build_dir = 'scons-ModOrganizer-QT_%s_%sfor_MSVS%d_32bit-%s' % (
|
||||
env['QT_VERSION'].replace('.', '_'),
|
||||
'OpenGL_' if 'opengl' in env['QTDIR'] else '',
|
||||
msvs_version,
|
||||
config.title())
|
||||
|
||||
# Put the sconsign file somewhere sane
|
||||
env.SConsignFile(os.path.join(build_dir, '.sconsign.dblite'))
|
||||
env.CacheDir(os.path.join(build_dir, '.cache'))
|
||||
|
||||
#this doesn't seem to work
|
||||
#env.VariantDir('build/$CONFIG', 'source')
|
||||
@@ -531,9 +539,6 @@ qt_env = env.Clone()
|
||||
if qt_env['CONFIG'] != 'debug':
|
||||
qt_env.AppendUnique(CPPDEFINES = [ 'QT_NO_DEBUG' ])
|
||||
|
||||
# Better way of working this out
|
||||
qt_env['QT_MAJOR_VERSION'] = 5 #int(os.path.basename(env['QTDIR']).split('.')[0])
|
||||
|
||||
qt_env.Tool('qt%d' % qt_env['QT_MAJOR_VERSION'])
|
||||
|
||||
# FIXME See if I can work out how to get official scons qt to work. Appears
|
||||
@@ -618,6 +623,20 @@ if qt_env['QT_MAJOR_VERSION'] > 4:
|
||||
]
|
||||
|
||||
# Finally, set up rules to install the DLLs.
|
||||
# use windeployqt.exe to install all required libraries
|
||||
#SET(windeploy_parameters --no-translations --no-plugins --libdir dlls --release-with-debug-info --no-compiler-runtime)
|
||||
#INSTALL(
|
||||
# CODE
|
||||
# "EXECUTE_PROCESS(
|
||||
# COMMAND
|
||||
# ${qt5bin}/windeployqt.exe ModOrganizer.exe ${windeploy_parameters}
|
||||
# COMMAND
|
||||
# ${qt5bin}/windeployqt.exe uibase.dll ${windeploy_parameters}
|
||||
# WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/bin
|
||||
# )"
|
||||
#)
|
||||
# this should probably be a rule though it seems to produce an awful lot of
|
||||
# Stuff(TM). or a postaction
|
||||
|
||||
dll_path = os.path.join('$INSTALL_PATH', 'DLLs')
|
||||
|
||||
@@ -648,8 +667,12 @@ if 'WebKit' in libs_to_install and qt_env['QT_MAJOR_VERSION'] == 4:
|
||||
if qt_env['QT_MAJOR_VERSION'] > 4:
|
||||
# Guesswork a bit.
|
||||
dlls_to_install += [
|
||||
os.path.join(env['QTDIR'], 'bin', 'icu%s53.dll' % lib)
|
||||
for lib in ('dt','in', 'uc')
|
||||
os.path.join(env['QTDIR'],
|
||||
'bin',
|
||||
'icu%s%d%d.dll' % (lib,
|
||||
qt_env['QT_MAJOR_VERSION'],
|
||||
qt_env['QT_MINOR_VERSION'] - 1))
|
||||
for lib in ('dt','in', 'uc')
|
||||
]
|
||||
|
||||
platform_dlls = []
|
||||
|
||||
+23
-12
@@ -35,7 +35,8 @@ removing = None
|
||||
includes = dict()
|
||||
|
||||
adding = None
|
||||
added = dict()
|
||||
added = defaultdict(list)
|
||||
lcadded = dict()
|
||||
|
||||
foundline = None
|
||||
|
||||
@@ -69,9 +70,10 @@ def process_next_line(line, outfile):
|
||||
elif adding:
|
||||
m = re.match(r'.*class (.*);', line)
|
||||
if m:
|
||||
added[m.group(1)] = (adding, line)
|
||||
added[m.group(1)].append((adding, line))
|
||||
lcadded[m.group(1).lower() + '.h'] = m.group(1)
|
||||
else:
|
||||
added[line] = (adding, line)
|
||||
added[line].append((adding, line))
|
||||
elif removing:
|
||||
# Really we should stash these so that if we get a 'class xxx' in
|
||||
# the add lines we can print it here. also we could do the case
|
||||
@@ -79,12 +81,20 @@ def process_next_line(line, outfile):
|
||||
m = re.match(r'- #include [<"](.*)[">] +// lines (.*)-', line)
|
||||
if m:
|
||||
foundline = m.group(2)
|
||||
if m.group(1) in added:
|
||||
messages[removing].append(
|
||||
'%s(%s) : warning I0004: Replace include of %s with '
|
||||
'forward reference %s' % (
|
||||
removing, m.group(2), m.group(1), added[m.group(1)][1]))
|
||||
del added[m.group(1)]
|
||||
# Note: In this project at least we have a naming convention of
|
||||
# lower case filename and upper case classname.
|
||||
clname = m.group(1)
|
||||
if clname not in added:
|
||||
if clname in lcadded:
|
||||
clname = lcadded[clname]
|
||||
if clname in added:
|
||||
for item in added[clname]:
|
||||
if removing == item[0]:
|
||||
messages[removing].append(
|
||||
'%s(%s) : warning I0004: Replace include of %s'
|
||||
' with forward reference %s' % (
|
||||
removing, m.group(2), m.group(1), item[1]))
|
||||
del added[clname]
|
||||
else:
|
||||
messages[removing].append(
|
||||
'%s(%s) : warning I0001: Unnecessary include of %s' % (
|
||||
@@ -132,9 +142,10 @@ if foundline is None:
|
||||
foundline = '1'
|
||||
|
||||
for add in added:
|
||||
messages[added[add][0]].append(
|
||||
'%s(%s) : warning I0003: Need to include %s' % (
|
||||
added[add][0], foundline, added[add][1]))
|
||||
for item in added[add]:
|
||||
messages[item[0]].append(
|
||||
'%s(%s) : warning I0003: Need to include %s' % (
|
||||
item[0], foundline, item[1]))
|
||||
|
||||
for file in sorted(messages.keys(), reverse = True):
|
||||
for line in messages[file]:
|
||||
|
||||
@@ -2463,7 +2463,7 @@
|
||||
{ include: [ "@\"(QtCore/)?qglobal\\.h\"", "private", "<QtGlobal>", "public" ] },
|
||||
{ include: [ "@\"(QtCore/)?qnamespace\\.h\"", "private", "<Qt>", "public" ] },
|
||||
{ include: [ "@\"(QtCore/)?qlogging\\.h\"", "private", "<QtDebug>", "public" ] }, #qDebug, qWarning, etc
|
||||
{ include: [ "@\"(QtCore/)?qalgorithms\\.h\"", "private", "<QAlgorithms>", "public" ] }, #qSort, etc
|
||||
{ include: [ "@\"(QtCore/)?qalgorithms\\.h\"", "private", "<QtAlgorithms>", "public" ] }, #qSort, etc
|
||||
{ include: [ "@\"(QtWinExtras/)?qwinfunctions\\.h\"", "private", "<QtWin>", "public" ] }, # for fromHICON
|
||||
|
||||
# These ones are just madness. For instance, why with the above do we get
|
||||
|
||||
+61
-53
@@ -18,15 +18,12 @@ SET(organizer_SRCS
|
||||
settings.cpp
|
||||
selfupdater.cpp
|
||||
selectiondialog.cpp
|
||||
savegameinfowidgetgamebryo.cpp
|
||||
savegameinfowidget.cpp
|
||||
savegamegamebryo.cpp
|
||||
savegame.cpp
|
||||
queryoverwritedialog.cpp
|
||||
profilesdialog.cpp
|
||||
profile.cpp
|
||||
pluginlistsortproxy.cpp
|
||||
pluginlist.cpp
|
||||
pluginlistview.cpp
|
||||
overwriteinfodialog.cpp
|
||||
nxmaccessmanager.cpp
|
||||
nexusinterface.cpp
|
||||
@@ -35,17 +32,19 @@ SET(organizer_SRCS
|
||||
modlist.cpp
|
||||
modinfodialog.cpp
|
||||
modinfo.cpp
|
||||
modinfobackup.cpp
|
||||
modinfoforeign.cpp
|
||||
modinfooverwrite.cpp
|
||||
modinforegular.cpp
|
||||
modinfowithconflictinfo.cpp
|
||||
modinfobackup.cpp
|
||||
modinfoforeign.cpp
|
||||
modinfooverwrite.cpp
|
||||
modinforegular.cpp
|
||||
modinfowithconflictinfo.cpp
|
||||
messagedialog.cpp
|
||||
mainwindow.cpp
|
||||
main.cpp
|
||||
loghighlighter.cpp
|
||||
logbuffer.cpp
|
||||
lockeddialogbase.cpp
|
||||
lockeddialog.cpp
|
||||
waitingonclosedialog.cpp
|
||||
loadmechanism.cpp
|
||||
installationmanager.cpp
|
||||
helper.cpp
|
||||
@@ -80,26 +79,21 @@ SET(organizer_SRCS
|
||||
previewdialog.cpp
|
||||
aboutdialog.cpp
|
||||
json.cpp
|
||||
safewritefile.cpp
|
||||
modflagicondelegate.cpp
|
||||
genericicondelegate.cpp
|
||||
organizerproxy.cpp
|
||||
viewmarkingscrollbar.cpp
|
||||
plugincontainer.cpp
|
||||
organizercore.cpp
|
||||
instancemanager.cpp
|
||||
usvfsconnector.cpp
|
||||
eventfilter.cpp
|
||||
moshortcut.cpp
|
||||
|
||||
shared/inject.cpp
|
||||
shared/windows_error.cpp
|
||||
shared/error_report.cpp
|
||||
shared/directoryentry.cpp
|
||||
shared/gameinfo.cpp
|
||||
shared/oblivioninfo.cpp
|
||||
shared/fallout3info.cpp
|
||||
shared/fallout4info.cpp
|
||||
shared/falloutnvinfo.cpp
|
||||
shared/util.cpp
|
||||
shared/skyriminfo.cpp
|
||||
shared/appconfig.cpp
|
||||
shared/leaktrace.cpp
|
||||
shared/stackdata.cpp
|
||||
@@ -114,15 +108,12 @@ SET(organizer_HDRS
|
||||
settings.h
|
||||
selfupdater.h
|
||||
selectiondialog.h
|
||||
savegameinfowidgetgamebryo.h
|
||||
savegameinfowidget.h
|
||||
savegamegamebyro.h
|
||||
savegame.h
|
||||
queryoverwritedialog.h
|
||||
profilesdialog.h
|
||||
profile.h
|
||||
pluginlistsortproxy.h
|
||||
pluginlist.h
|
||||
pluginlistview.h
|
||||
overwriteinfodialog.h
|
||||
nxmaccessmanager.h
|
||||
nexusinterface.h
|
||||
@@ -131,16 +122,18 @@ SET(organizer_HDRS
|
||||
modlist.h
|
||||
modinfodialog.h
|
||||
modinfo.h
|
||||
modinfobackup.h
|
||||
modinfoforeign.h
|
||||
modinfooverwrite.h
|
||||
modinforegular.h
|
||||
modinfowithconflictinfo.h
|
||||
modinfobackup.h
|
||||
modinfoforeign.h
|
||||
modinfooverwrite.h
|
||||
modinforegular.h
|
||||
modinfowithconflictinfo.h
|
||||
messagedialog.h
|
||||
mainwindow.h
|
||||
loghighlighter.h
|
||||
logbuffer.h
|
||||
lockeddialogbase.h
|
||||
lockeddialog.h
|
||||
waitingonclosedialog.h
|
||||
loadmechanism.h
|
||||
installationmanager.h
|
||||
helper.h
|
||||
@@ -175,27 +168,24 @@ SET(organizer_HDRS
|
||||
previewdialog.h
|
||||
aboutdialog.h
|
||||
json.h
|
||||
safewritefile.h
|
||||
modflagicondelegate.h
|
||||
genericicondelegate.h
|
||||
organizerproxy.h
|
||||
viewmarkingscrollbar.h
|
||||
plugincontainer.h
|
||||
organizercore.h
|
||||
ilockedwaitingforprocess.h
|
||||
iuserinterface.h
|
||||
instancemanager.h
|
||||
usvfsconnector.h
|
||||
eventfilter.h
|
||||
descriptionpage.h
|
||||
moshortcut.h
|
||||
|
||||
shared/inject.h
|
||||
shared/windows_error.h
|
||||
shared/error_report.h
|
||||
shared/directoryentry.h
|
||||
shared/gameinfo.h
|
||||
shared/oblivioninfo.h
|
||||
shared/fallout3info.h
|
||||
shared/fallout4info.h
|
||||
shared/falloutnvinfo.h
|
||||
shared/util.h
|
||||
shared/skyriminfo.h
|
||||
shared/appconfig.h
|
||||
shared/appconfig.inc
|
||||
shared/leaktrace.h
|
||||
@@ -208,7 +198,6 @@ SET(organizer_UIS
|
||||
simpleinstalldialog.ui
|
||||
settingsdialog.ui
|
||||
selectiondialog.ui
|
||||
savegameinfowidget.ui
|
||||
queryoverwritedialog.ui
|
||||
profilesdialog.ui
|
||||
overwriteinfodialog.ui
|
||||
@@ -217,6 +206,7 @@ SET(organizer_UIS
|
||||
messagedialog.ui
|
||||
mainwindow.ui
|
||||
lockeddialog.ui
|
||||
waitingonclosedialog.ui
|
||||
installdialog.ui
|
||||
finddialog.ui
|
||||
editexecutablesdialog.ui
|
||||
@@ -254,19 +244,22 @@ SET(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
SET(CMAKE_AUTOMOC ON)
|
||||
SET(CMAKE_AUTOUIC ON)
|
||||
FIND_PACKAGE(Qt5Widgets REQUIRED)
|
||||
FIND_PACKAGE(Qt5Declarative REQUIRED)
|
||||
FIND_PACKAGE(Qt5QuickWidgets REQUIRED)
|
||||
FIND_PACKAGE(Qt5Quick REQUIRED)
|
||||
FIND_PACKAGE(Qt5Network REQUIRED)
|
||||
FIND_PACKAGE(Qt5WinExtras REQUIRED)
|
||||
FIND_PACKAGE(Qt5WebKitWidgets REQUIRED)
|
||||
FIND_PACKAGE(Qt5WebEngineWidgets REQUIRED)
|
||||
FIND_PACKAGE(Qt5LinguistTools)
|
||||
QT5_WRAP_UI(organizer_UIHDRS ${organizer_UIS})
|
||||
QT5_ADD_RESOURCES(organizer_RCCPPS ${organizer_QRCS})
|
||||
QT5_CREATE_TRANSLATION(organizer_translations_qm ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/organizer_en.ts)
|
||||
|
||||
INCLUDE_DIRECTORIES(${Qt5Declarative_INCLUDES})
|
||||
|
||||
ADD_DEFINITIONS(-DQT_MESSAGELOGCONTEXT)
|
||||
|
||||
# Boost
|
||||
SET(Boost_USE_STATIC_LIBS ON)
|
||||
SET(Boost_USE_STATIC_LIBS OFF)
|
||||
SET(Boost_USE_MULTITHREADED ON)
|
||||
SET(Boost_USE_STATIC_RUNTIME OFF)
|
||||
FIND_PACKAGE(Boost REQUIRED)
|
||||
@@ -291,18 +284,24 @@ INCLUDE_DIRECTORIES(${project_path}/uibase/src
|
||||
${project_path}/bsatk/src
|
||||
${project_path}/esptk/src
|
||||
${project_path}/archive/src
|
||||
${project_path}/../usvfs/usvfs
|
||||
${project_path}/../usvfs/include
|
||||
${project_path}/game_gamebryo/src
|
||||
${project_path}/game_features/src)
|
||||
|
||||
MESSAGE(STATUS ${project_path}/gameGamebryo/src)
|
||||
${project_path}/game_features/src
|
||||
${project_path}/githubpp/src)
|
||||
|
||||
|
||||
INCLUDE_DIRECTORIES(shared ${ZLIB_INCLUDE_DIRS})
|
||||
LINK_DIRECTORIES(${lib_path}
|
||||
${project_path}/../zlib/lib)
|
||||
|
||||
ADD_DEFINITIONS(-D_UNICODE -DUNICODE -DNOMINMAX -D_CRT_SECURE_NO_WARNINGS)
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND git log -1 --format=%h
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_COMMIT_HASH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
ADD_DEFINITIONS(-D_UNICODE -DUNICODE -DNOMINMAX -D_CRT_SECURE_NO_WARNINGS -DBOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE -DGITID="${GIT_COMMIT_HASH}")
|
||||
|
||||
IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||
SET(usvfs_name usvfs_x64)
|
||||
@@ -310,21 +309,23 @@ ELSE()
|
||||
SET(usvfs_name usvfs_x86)
|
||||
ENDIF()
|
||||
|
||||
ADD_EXECUTABLE(ModOrganizer WIN32 ${organizer_HDRS} ${organizer_SRCS} ${organizer_UIHDRS} ${organizer_RCS} ${organizer_RCCPPS})
|
||||
ADD_EXECUTABLE(ModOrganizer WIN32 ${organizer_HDRS} ${organizer_SRCS} ${organizer_UIHDRS} ${organizer_RCS} ${organizer_RCCPPS} ${organizer_translations_qm})
|
||||
TARGET_LINK_LIBRARIES(ModOrganizer
|
||||
Qt5::Widgets Qt5::WinExtras Qt5::WebKitWidgets
|
||||
Qt5::Widgets Qt5::WinExtras Qt5::WebEngineWidgets Qt5::Quick
|
||||
${Boost_LIBRARIES}
|
||||
zlibstatic
|
||||
uibase esptk bsatk
|
||||
uibase esptk bsatk githubpp
|
||||
${usvfs_name}
|
||||
Dbghelp advapi32 Version Shlwapi)
|
||||
|
||||
SET_TARGET_PROPERTIES(ModOrganizer PROPERTIES COMPILE_FLAGS /GL)
|
||||
IF (NOT "${OPTIMIZE_COMPILE_FLAGS}" STREQUAL "")
|
||||
SET_TARGET_PROPERTIES(ModOrganizer PROPERTIES COMPILE_FLAGS_RELWITHDEBINFO
|
||||
${OPTIMIZE_COMPILE_FLAGS})
|
||||
ENDIF()
|
||||
SET_TARGET_PROPERTIES(ModOrganizer PROPERTIES LINK_FLAGS_RELWITHDEBINFO
|
||||
"/LARGEADDRESSAWARE ${OPTIMIZE_LINK_FLAGS}")
|
||||
|
||||
|
||||
QT5_USE_MODULES(ModOrganizer Widgets Declarative Network WebKitWidgets)
|
||||
QT5_USE_MODULES(ModOrganizer Widgets Script Qml QuickWidgets Quick Network WebEngineWidgets)
|
||||
|
||||
|
||||
###############
|
||||
@@ -336,23 +337,30 @@ FIND_PROGRAM(WINDEPLOYQT_COMMAND windeployqt PATHS ${qt5bin} NO_DEFAULT_PATH)
|
||||
|
||||
INSTALL(TARGETS ModOrganizer
|
||||
RUNTIME DESTINATION bin)
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/ModOrganizer.pdb
|
||||
INSTALL(FILES $<TARGET_PDB_FILE:ModOrganizer>
|
||||
DESTINATION pdb)
|
||||
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dlls.manifest.qt5
|
||||
DESTINATION bin/dlls
|
||||
RENAME dlls.manifest)
|
||||
|
||||
# use windeployqt.exe to install all required libraries
|
||||
SET(windeploy_parameters --no-translations --no-plugins --libdir dlls --release-with-debug-info --no-compiler-runtime)
|
||||
SET(windeploy_parameters "--no-translations --plugindir qtplugins --libdir dlls --release-with-debug-info --no-compiler-runtime")
|
||||
INSTALL(
|
||||
CODE
|
||||
"EXECUTE_PROCESS(
|
||||
COMMAND
|
||||
${qt5bin}/windeployqt.exe ModOrganizer.exe ${windeploy_parameters}
|
||||
${qt5bin}/windeployqt.exe ModOrganizer.exe --webenginewidgets ${windeploy_parameters}
|
||||
COMMAND
|
||||
${qt5bin}/windeployqt.exe uibase.dll ${windeploy_parameters}
|
||||
WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/bin
|
||||
)"
|
||||
)
|
||||
file(REMOVE_RECURSE ${CMAKE_INSTALL_PREFIX}/bin/platforms)
|
||||
file(REMOVE_RECURSE ${CMAKE_INSTALL_PREFIX}/bin/styles)
|
||||
file(REMOVE_RECURSE ${CMAKE_INSTALL_PREFIX}/bin/dlls/imageformats)
|
||||
file(RENAME ${CMAKE_INSTALL_PREFIX}/bin/qtplugins/platforms ${CMAKE_INSTALL_PREFIX}/bin/platforms)
|
||||
file(RENAME ${CMAKE_INSTALL_PREFIX}/bin/qtplugins/styles ${CMAKE_INSTALL_PREFIX}/bin/styles)
|
||||
file(RENAME ${CMAKE_INSTALL_PREFIX}/bin/qtplugins/imageformats ${CMAKE_INSTALL_PREFIX}/bin/dlls/imageformats)
|
||||
file(REMOVE_RECURSE ${CMAKE_INSTALL_PREFIX}/bin/qtplugins)"
|
||||
)
|
||||
|
||||
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/stylesheets
|
||||
|
||||
+12
-1
@@ -22,6 +22,14 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
|
||||
#include "ui_aboutdialog.h"
|
||||
#include <utility.h>
|
||||
|
||||
#include <QApplication>
|
||||
#include <QLabel>
|
||||
#include <QListWidget>
|
||||
#include <QListWidgetItem>
|
||||
#include <QTextBrowser>
|
||||
#include <QVariant>
|
||||
#include <Qt>
|
||||
|
||||
|
||||
AboutDialog::AboutDialog(const QString &version, QWidget *parent)
|
||||
: QDialog(parent)
|
||||
@@ -46,10 +54,13 @@ AboutDialog::AboutDialog(const QString &version, QWidget *parent)
|
||||
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_APACHE2);
|
||||
addLicense("LOOT", LICENSE_GPL3);
|
||||
|
||||
ui->nameLabel->setText(QString("<span style=\"font-size:12pt; font-weight:600;\">%1 %2</span>").arg(ui->nameLabel->text()).arg(version));
|
||||
#ifdef HGID
|
||||
#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
|
||||
|
||||
+4
-3
@@ -22,10 +22,11 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define ABOUTDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <QListWidgetItem>
|
||||
class QListWidgetItem;
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
|
||||
#include <map>
|
||||
#include <vector>
|
||||
#include <utility>
|
||||
|
||||
namespace Ui {
|
||||
class AboutDialog;
|
||||
|
||||
+48
-6
@@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>508</width>
|
||||
<height>335</height>
|
||||
<width>604</width>
|
||||
<height>369</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -18,13 +18,50 @@
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<spacer name="verticalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="iconLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>250</width>
|
||||
<height>250</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>250</width>
|
||||
<height>250</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="resources.qrc">:/MO/gui/mo_icon.ico</pixmap>
|
||||
<pixmap resource="resources.qrc">:/MO/gui/splash</pixmap>
|
||||
</property>
|
||||
<property name="scaledContents">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -83,7 +120,7 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string notr="true">Copyright 2011-2015 Sebastian Herbord</string>
|
||||
<string notr="true">Copyright 2011-2016 Sebastian Herbord</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -114,7 +151,7 @@
|
||||
</widget>
|
||||
<widget class="QWidget" name="credits">
|
||||
<attribute name="title">
|
||||
<string>Credits</string>
|
||||
<string>Thanks</string>
|
||||
</attribute>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
@@ -202,7 +239,7 @@
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>Others</string>
|
||||
<string>Other Supporter</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_7">
|
||||
<item>
|
||||
@@ -265,6 +302,11 @@
|
||||
<string notr="true">thosrtanner</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>ogrotten</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
||||
+13
-14
@@ -21,37 +21,36 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
|
||||
#include "ui_activatemodsdialog.h"
|
||||
|
||||
#include <QComboBox>
|
||||
#include <QHeaderView>
|
||||
#include <QLabel>
|
||||
#include <QString>
|
||||
#include <QTableWidget>
|
||||
|
||||
ActivateModsDialog::ActivateModsDialog(const std::map<QString, std::vector<QString> > &missingPlugins, QWidget *parent)
|
||||
#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();
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
|
||||
headerView->setSectionResizeMode(0, QHeaderView::Stretch);
|
||||
headerView->setSectionResizeMode(1, QHeaderView::Interactive);
|
||||
#else
|
||||
headerView->setResizeMode(0, QHeaderView::Stretch);
|
||||
headerView->setResizeMode(1, QHeaderView::Interactive);
|
||||
#endif
|
||||
|
||||
int row = 0;
|
||||
|
||||
modsTable->setRowCount(missingPlugins.size());
|
||||
modsTable->setRowCount(missingAssets.size());
|
||||
|
||||
for (std::map<QString, std::vector<QString> >::const_iterator espIter = missingPlugins.begin();
|
||||
espIter != missingPlugins.end(); ++espIter, ++row) {
|
||||
modsTable->setCellWidget(row, 0, new QLabel(espIter->first));
|
||||
if (espIter->second.size() == 0) {
|
||||
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 (std::vector<QString>::const_iterator modIter = espIter->second.begin();
|
||||
modIter != espIter->second.end(); ++modIter) {
|
||||
combo->addItem(*modIter);
|
||||
for (QString const &mod : espIter.value()) {
|
||||
combo->addItem(mod);
|
||||
}
|
||||
modsTable->setCellWidget(row, 1, combo);
|
||||
}
|
||||
|
||||
@@ -20,8 +20,14 @@ 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 <map>
|
||||
|
||||
#include <QObject>
|
||||
|
||||
class QString;
|
||||
class QWidget;
|
||||
|
||||
#include <set>
|
||||
|
||||
namespace Ui {
|
||||
@@ -42,7 +48,7 @@ public:
|
||||
* @param missingPlugins a map containing missing plugins that need to be activated
|
||||
* @param parent ... Defaults to 0.
|
||||
**/
|
||||
explicit ActivateModsDialog(const std::map<QString, std::vector<QString> > &missingPlugins, QWidget *parent = 0);
|
||||
explicit ActivateModsDialog(SaveGameInfo::MissingAssets const &missingAssets, QWidget *parent = 0);
|
||||
~ActivateModsDialog();
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,14 +17,14 @@
|
||||
<item>
|
||||
<widget class="QTableWidget" name="modsTable">
|
||||
<property name="toolTip">
|
||||
<string>This is a list of esps and esms that were active when the save game was created.</string>
|
||||
<string>This is a list of esps, esms, and esls that were active when the save game was created.</string>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of esps and esms that were active when the save game was created.</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is a list of esps, esms, and esls that were active when the save game was created.</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">For each esp, the right column contains the mod (or mods) that can be enabled to make the missing esps/esms available.</span></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you hit Ok, all the mods selected in the right columns and all missing esps that have become available will be activated.</span></p></body></html></string>
|
||||
|
||||
+16
-16
@@ -28,13 +28,13 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
|
||||
#include <utility.h>
|
||||
#include "settings.h"
|
||||
|
||||
#include <QWebEngineSettings>
|
||||
#include <QNetworkCookieJar>
|
||||
#include <QNetworkCookie>
|
||||
#include <QMenu>
|
||||
#include <QInputDialog>
|
||||
#include <QWebHistory>
|
||||
#include <QWebEngineHistory>
|
||||
#include <QDir>
|
||||
#include <QWebFrame>
|
||||
#include <QDesktopWidget>
|
||||
#include <QKeyEvent>
|
||||
|
||||
@@ -77,8 +77,8 @@ void BrowserDialog::closeEvent(QCloseEvent *event)
|
||||
|
||||
void BrowserDialog::initTab(BrowserView *newView)
|
||||
{
|
||||
newView->page()->setNetworkAccessManager(m_AccessManager);
|
||||
newView->page()->setForwardUnsupportedContent(true);
|
||||
//newView->page()->setNetworkAccessManager(m_AccessManager);
|
||||
//newView->page()->setForwardUnsupportedContent(true);
|
||||
|
||||
connect(newView, SIGNAL(loadProgress(int)), this, SLOT(progress(int)));
|
||||
connect(newView, SIGNAL(titleChanged(QString)), this, SLOT(titleChanged(QString)));
|
||||
@@ -86,14 +86,14 @@ void BrowserDialog::initTab(BrowserView *newView)
|
||||
connect(newView, SIGNAL(startFind()), this, SLOT(startSearch()));
|
||||
connect(newView, SIGNAL(urlChanged(QUrl)), this, SLOT(urlChanged(QUrl)));
|
||||
connect(newView, SIGNAL(openUrlInNewTab(QUrl)), this, SLOT(openInNewTab(QUrl)));
|
||||
connect(newView->page(), SIGNAL(downloadRequested(QNetworkRequest)), this, SLOT(downloadRequested(QNetworkRequest)));
|
||||
connect(newView->page(), SIGNAL(unsupportedContent(QNetworkReply*)), this, SLOT(unsupportedContent(QNetworkReply*)));
|
||||
connect(newView, SIGNAL(downloadRequested(QNetworkRequest)), this, SLOT(downloadRequested(QNetworkRequest)));
|
||||
connect(newView, SIGNAL(unsupportedContent(QNetworkReply*)), this, SLOT(unsupportedContent(QNetworkReply*)));
|
||||
|
||||
ui->backBtn->setEnabled(false);
|
||||
ui->fwdBtn->setEnabled(false);
|
||||
m_Tabs->addTab(newView, tr("new"));
|
||||
newView->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
|
||||
newView->settings()->setAttribute(QWebSettings::AutoLoadImages, true);
|
||||
newView->settings()->setAttribute(QWebEngineSettings::PluginsEnabled, true);
|
||||
newView->settings()->setAttribute(QWebEngineSettings::AutoLoadImages, true);
|
||||
}
|
||||
|
||||
|
||||
@@ -133,10 +133,10 @@ void BrowserDialog::openUrl(const QUrl &url)
|
||||
|
||||
void BrowserDialog::maximizeWidth()
|
||||
{
|
||||
int viewportWidth = getCurrentView()->page()->viewportSize().width();
|
||||
int viewportWidth = getCurrentView()->page()->contentsSize ().width();
|
||||
int frameWidth = width() - viewportWidth;
|
||||
|
||||
int contentWidth = getCurrentView()->page()->mainFrame()->contentsSize().width();
|
||||
int contentWidth = getCurrentView()->page()->contentsSize().width();
|
||||
|
||||
QDesktopWidget screen;
|
||||
int currentScreen = screen.screenNumber(this);
|
||||
@@ -190,7 +190,7 @@ QString BrowserDialog::guessFileName(const QString &url)
|
||||
void BrowserDialog::unsupportedContent(QNetworkReply *reply)
|
||||
{
|
||||
try {
|
||||
QWebPage *page = qobject_cast<QWebPage*>(sender());
|
||||
QWebEnginePage *page = qobject_cast<QWebEnginePage*>(sender());
|
||||
if (page == nullptr) {
|
||||
qCritical("sender not a page");
|
||||
return;
|
||||
@@ -252,10 +252,10 @@ void BrowserDialog::startSearch()
|
||||
|
||||
void BrowserDialog::on_searchEdit_returnPressed()
|
||||
{
|
||||
BrowserView *currentView = getCurrentView();
|
||||
if (currentView != nullptr) {
|
||||
currentView->findText(ui->searchEdit->text(), QWebPage::FindWrapsAroundDocument);
|
||||
}
|
||||
// BrowserView *currentView = getCurrentView();
|
||||
// if (currentView != nullptr) {
|
||||
// currentView->findText(ui->searchEdit->text(), QWebEnginePage::FindWrapsAroundDocument);
|
||||
// }
|
||||
}
|
||||
|
||||
void BrowserDialog::on_refreshBtn_clicked()
|
||||
@@ -274,7 +274,7 @@ void BrowserDialog::on_browserTabWidget_currentChanged(int index)
|
||||
|
||||
void BrowserDialog::on_urlEdit_returnPressed()
|
||||
{
|
||||
QWebView *currentView = getCurrentView();
|
||||
QWebEngineView *currentView = getCurrentView();
|
||||
if (currentView != nullptr) {
|
||||
currentView->setUrl(QUrl(ui->urlEdit->text()));
|
||||
}
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
|
||||
#include <QNetworkRequest>
|
||||
#include <QNetworkReply>
|
||||
#include <QTimer>
|
||||
#include <QWebView>
|
||||
#include <QWebEngineView>
|
||||
#include <QQueue>
|
||||
#include <QTabWidget>
|
||||
#include <QAtomicInt>
|
||||
|
||||
+18
-17
@@ -21,23 +21,23 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include <QEvent>
|
||||
#include <QKeyEvent>
|
||||
#include <QWebFrame>
|
||||
#include <QWebElement>
|
||||
#include <QNetworkDiskCache>
|
||||
#include <QWebEngineContextMenuData>
|
||||
#include <QWebEngineSettings>
|
||||
#include <QMenu>
|
||||
#include <Shlwapi.h>
|
||||
#include "utility.h"
|
||||
|
||||
|
||||
BrowserView::BrowserView(QWidget *parent)
|
||||
: QWebView(parent)
|
||||
: QWebEngineView(parent)
|
||||
{
|
||||
installEventFilter(this);
|
||||
|
||||
page()->settings()->setMaximumPagesInCache(10);
|
||||
//page()->settings()->setMaximumPagesInCache(10);
|
||||
}
|
||||
|
||||
QWebView *BrowserView::createWindow(QWebPage::WebWindowType)
|
||||
QWebEngineView *BrowserView::createWindow(QWebEnginePage::WebWindowType)
|
||||
{
|
||||
BrowserView *newView = new BrowserView(parentWidget());
|
||||
emit initTab(newView);
|
||||
@@ -59,17 +59,18 @@ bool BrowserView::eventFilter(QObject *obj, QEvent *event)
|
||||
mouseEvent->ignore();
|
||||
return true;
|
||||
}
|
||||
} else if (event->type() == QEvent::MouseButtonRelease) {
|
||||
QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event);
|
||||
if (mouseEvent->button() == Qt::MidButton) {
|
||||
QWebHitTestResult hitTest = page()->frameAt(mouseEvent->pos())->hitTestContent(mouseEvent->pos());
|
||||
if (hitTest.linkUrl().isValid()) {
|
||||
emit openUrlInNewTab(hitTest.linkUrl());
|
||||
}
|
||||
mouseEvent->ignore();
|
||||
|
||||
return true;
|
||||
}
|
||||
// TODO This is due to that QTWebEnginePage doesn't support QWebFrame anymore
|
||||
// } else if (event->type() == QEvent::MouseButtonRelease) {
|
||||
// QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event);
|
||||
// if (mouseEvent->button() == Qt::MidButton) {
|
||||
// QWebEngineContextMenuData hitTest = page()->hitTestContent(mouseEvent->pos());
|
||||
// if (hitTest.linkUrl().isValid()) {
|
||||
// emit openUrlInNewTab(hitTest.linkUrl());
|
||||
// }
|
||||
// mouseEvent->ignore();
|
||||
//
|
||||
// return true;
|
||||
// }
|
||||
}
|
||||
return QWebView::eventFilter(obj, event);
|
||||
return QWebEngineView::eventFilter(obj, event);
|
||||
}
|
||||
|
||||
+4
-4
@@ -24,13 +24,13 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
|
||||
class QEvent;
|
||||
class QUrl;
|
||||
class QWidget;
|
||||
#include <QWebView>
|
||||
#include <QWebPage>
|
||||
#include <QWebEngineView>
|
||||
#include <QWebEnginePage>
|
||||
|
||||
/**
|
||||
* @brief web view used to display a nexus page
|
||||
**/
|
||||
class BrowserView : public QWebView
|
||||
class BrowserView : public QWebEngineView
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
@@ -66,7 +66,7 @@ signals:
|
||||
|
||||
protected:
|
||||
|
||||
virtual QWebView *createWindow(QWebPage::WebWindowType type);
|
||||
virtual QWebEngineView *createWindow(QWebEnginePage::WebWindowType type);
|
||||
|
||||
virtual bool eventFilter(QObject *obj, QEvent *event);
|
||||
|
||||
|
||||
+57
-32
@@ -44,6 +44,10 @@ QString CategoryFactory::categoriesFilePath()
|
||||
CategoryFactory::CategoryFactory()
|
||||
{
|
||||
atexit(&cleanup);
|
||||
}
|
||||
|
||||
void CategoryFactory::loadCategories()
|
||||
{
|
||||
reset();
|
||||
|
||||
QFile categoryFile(categoriesFilePath());
|
||||
@@ -188,7 +192,7 @@ int CategoryFactory::addCategory(const QString &name, const std::vector<int> &ne
|
||||
|
||||
void CategoryFactory::addCategory(int id, const QString &name, const std::vector<int> &nexusIDs, int parentID)
|
||||
{
|
||||
int index = m_Categories.size();
|
||||
int index = static_cast<int>(m_Categories.size());
|
||||
m_Categories.push_back(Category(index, id, name, nexusIDs, parentID));
|
||||
for (int nexusID : nexusIDs) {
|
||||
m_NexusMap[nexusID] = index;
|
||||
@@ -201,42 +205,63 @@ void CategoryFactory::loadDefaultCategories()
|
||||
{
|
||||
// the order here is relevant as it defines the order in which the
|
||||
// mods appear in the combo box
|
||||
addCategory(1, "Animations", MakeVector<int>(1, 51), 0);
|
||||
addCategory(2, "Armour", MakeVector<int>(1, 54), 0);
|
||||
addCategory(3, "Sound & Music", MakeVector<int>(1, 61), 0);
|
||||
addCategory(5, "Clothing", MakeVector<int>(1, 60), 0);
|
||||
addCategory(6, "Collectables", MakeVector<int>(1, 92), 0);
|
||||
addCategory(28, "Companions", MakeVector<int>(2, 66, 96), 0);
|
||||
addCategory(7, "Creatures & Mounts", MakeVector<int>(2, 83, 65), 0);
|
||||
addCategory(8, "Factions", MakeVector<int>(1, 25), 0);
|
||||
addCategory(9, "Gameplay", MakeVector<int>(1, 24), 0);
|
||||
addCategory(10, "Hair", MakeVector<int>(1, 26), 0);
|
||||
addCategory(1, "Animations", MakeVector<int>(2, 4, 51), 0);
|
||||
addCategory(52, "Poses", MakeVector<int>(1, 29), 1);
|
||||
addCategory(2, "Armour", MakeVector<int>(2, 5, 54), 0);
|
||||
addCategory(53, "Power Armor", MakeVector<int>(1, 53), 2);
|
||||
addCategory(3, "Audio", MakeVector<int>(3, 33, 35, 106), 0);
|
||||
addCategory(38, "Music", MakeVector<int>(2, 34, 61), 0);
|
||||
addCategory(39, "Voice", MakeVector<int>(2, 36, 107), 0);
|
||||
addCategory(5, "Clothing", MakeVector<int>(2, 9, 60), 0);
|
||||
addCategory(41, "Jewelry", MakeVector<int>(1, 102), 5);
|
||||
addCategory(42, "Backpacks", MakeVector<int>(1, 49), 5);
|
||||
addCategory(6, "Collectables", MakeVector<int>(2, 10, 92), 0);
|
||||
addCategory(28, "Companions", MakeVector<int>(3, 11, 66, 96), 0);
|
||||
addCategory(7, "Creatures, Mounts, & Vehicles", MakeVector<int>(4, 12, 65, 83, 101), 0);
|
||||
addCategory(8, "Factions", MakeVector<int>(2, 16, 25), 0);
|
||||
addCategory(9, "Gameplay", MakeVector<int>(2, 15, 24), 0);
|
||||
addCategory(27, "Combat", MakeVector<int>(1, 77), 9);
|
||||
addCategory(43, "Crafting", MakeVector<int>(2, 50, 100), 9);
|
||||
addCategory(48, "Overhauls", MakeVector<int>(2, 24, 79), 9);
|
||||
addCategory(49, "Perks", MakeVector<int>(1, 27), 9);
|
||||
addCategory(54, "Radio", MakeVector<int>(1, 31), 9);
|
||||
addCategory(55, "Shouts", MakeVector<int>(1, 104), 9);
|
||||
addCategory(22, "Skills & Levelling", MakeVector<int>(2, 46, 73), 9);
|
||||
addCategory(58, "Weather & Lighting", MakeVector<int>(1, 56), 9);
|
||||
addCategory(44, "Equipment", MakeVector<int>(1, 44), 43);
|
||||
addCategory(45, "Home/Settlement", MakeVector<int>(1, 45), 43);
|
||||
addCategory(10, "Body, Face, & Hair", MakeVector<int>(2, 17, 26), 0);
|
||||
addCategory(39, "Tattoos", MakeVector<int>(1, 57), 10);
|
||||
addCategory(40, "Character Presets", MakeVector<int>(1, 58), 0);
|
||||
addCategory(11, "Items", MakeVector<int>(2, 27, 85), 0);
|
||||
addCategory(32, "Mercantile", MakeVector<int>(1, 69), 0);
|
||||
addCategory(19, "Weapons", MakeVector<int>(1, 55), 11);
|
||||
addCategory(36, "Weapon & Armour Sets", MakeVector<int>(1, 39), 11);
|
||||
addCategory(12, "Locations", MakeVector<int>(7, 22, 30, 70, 88, 89, 90, 91), 0);
|
||||
addCategory(31, "Landscape Changes", MakeVector<int>(1, 58), 0);
|
||||
addCategory(4, "Cities", MakeVector<int>(1, 53), 12);
|
||||
addCategory(29, "Environment", MakeVector<int>(1, 74), 0);
|
||||
addCategory(30, "Immersion", MakeVector<int>(1, 78), 0);
|
||||
addCategory(32, "Mercantile", MakeVector<int>(2, 23, 69), 0);
|
||||
addCategory(37, "Ammo", MakeVector<int>(1, 3), 11);
|
||||
addCategory(19, "Weapons", MakeVector<int>(2, 41, 55), 11);
|
||||
addCategory(36, "Weapon & Armour Sets", MakeVector<int>(1, 42), 11);
|
||||
addCategory(23, "Player Homes", MakeVector<int>(2, 28, 67), 0);
|
||||
addCategory(25, "Castles & Mansions", MakeVector<int>(1, 68), 23);
|
||||
addCategory(51, "Settlements", MakeVector<int>(1, 48), 23);
|
||||
addCategory(12, "Locations", MakeVector<int>(10, 20, 21, 22, 30, 47, 70, 88, 89, 90, 91), 0);
|
||||
addCategory(4, "Cities", MakeVector<int>(1, 53), 12);
|
||||
addCategory(31, "Landscape Changes", MakeVector<int>(1, 58), 0);
|
||||
addCategory(29, "Environment", MakeVector<int>(2, 14, 74), 0);
|
||||
addCategory(30, "Immersion", MakeVector<int>(2, 51, 78), 0);
|
||||
addCategory(20, "Magic", MakeVector<int>(3, 75, 93, 94), 0);
|
||||
addCategory(21, "Models & Textures", MakeVector<int>(1, 29), 0);
|
||||
addCategory(33, "Modders resources", MakeVector<int>(1, 82), 0);
|
||||
addCategory(13, "NPCs", MakeVector<int>(1, 33), 0);
|
||||
addCategory(14, "Patches", MakeVector<int>(2, 79, 84), 0);
|
||||
addCategory(24, "Bugfixes", MakeVector<int>(1, 95), 0);
|
||||
addCategory(35, "Utilities", MakeVector<int>(1, 39), 0);
|
||||
addCategory(26, "Cheats", MakeVector<int>(1, 40), 0);
|
||||
addCategory(23, "Player Homes", MakeVector<int>(1, 67), 0);
|
||||
addCategory(15, "Quests", MakeVector<int>(1, 35), 0);
|
||||
addCategory(21, "Models & Textures", MakeVector<int>(2, 19, 29), 0);
|
||||
addCategory(33, "Modders resources", MakeVector<int>(2, 18, 82), 0);
|
||||
addCategory(13, "NPCs", MakeVector<int>(3, 22, 33, 99), 0);
|
||||
addCategory(24, "Bugfixes", MakeVector<int>(2, 6, 95), 0);
|
||||
addCategory(14, "Patches", MakeVector<int>(2, 25, 84), 24);
|
||||
addCategory(35, "Utilities", MakeVector<int>(2, 38, 39), 0);
|
||||
addCategory(26, "Cheats", MakeVector<int>(1, 8), 0);
|
||||
addCategory(15, "Quests", MakeVector<int>(2, 30, 35), 0);
|
||||
addCategory(16, "Races & Classes", MakeVector<int>(1, 34), 0);
|
||||
addCategory(27, "Combat", MakeVector<int>(1, 77), 0);
|
||||
addCategory(22, "Skills", MakeVector<int>(1, 73), 0);
|
||||
addCategory(34, "Stealth", MakeVector<int>(1, 76), 0);
|
||||
addCategory(17, "UI", MakeVector<int>(1, 42), 0);
|
||||
addCategory(18, "Visuals", MakeVector<int>(1, 62), 0);
|
||||
addCategory(17, "UI", MakeVector<int>(2, 37, 42), 0);
|
||||
addCategory(18, "Visuals", MakeVector<int>(2, 40, 62), 0);
|
||||
addCategory(50, "Pip-Boy", MakeVector<int>(1, 52), 18);
|
||||
addCategory(46, "Shader Presets", MakeVector<int>(3, 13, 97, 105), 0);
|
||||
addCategory(47, "Miscellaneous", MakeVector<int>(2, 2, 28), 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -75,6 +75,11 @@ public:
|
||||
**/
|
||||
void reset();
|
||||
|
||||
/**
|
||||
* @brief read categories from file
|
||||
*/
|
||||
void loadCategories();
|
||||
|
||||
/**
|
||||
* @brief save the categories to the categories.dat file
|
||||
**/
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user