mirror of
https://github.com/ModOrganizer2/modorganizer.git
synced 2026-07-27 13:58:24 -07:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c1a56f77ea | ||
|
|
91bd9b1eb6 | ||
|
|
548744d746 | ||
|
|
57e65abf75 | ||
|
|
d41cd8d877 | ||
|
|
9c82a1102e | ||
|
|
e623c13400 | ||
|
|
9c9a43ec8d | ||
|
|
eb3cfe2594 | ||
|
|
482f3d1f6d | ||
|
|
fed4ea257a | ||
|
|
35e0bc2285 | ||
|
|
2ea23c4129 | ||
|
|
100f57dea1 | ||
|
|
708928e643 | ||
|
|
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 | ||
|
|
a3671a5557 | ||
|
|
5ae681e6d5 |
@@ -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
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ 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)
|
||||
|
||||
|
||||
+29
-10
@@ -23,6 +23,7 @@ SET(organizer_SRCS
|
||||
profile.cpp
|
||||
pluginlistsortproxy.cpp
|
||||
pluginlist.cpp
|
||||
pluginlistview.cpp
|
||||
overwriteinfodialog.cpp
|
||||
nxmaccessmanager.cpp
|
||||
nexusinterface.cpp
|
||||
@@ -41,7 +42,9 @@ SET(organizer_SRCS
|
||||
main.cpp
|
||||
loghighlighter.cpp
|
||||
logbuffer.cpp
|
||||
lockeddialogbase.cpp
|
||||
lockeddialog.cpp
|
||||
waitingonclosedialog.cpp
|
||||
loadmechanism.cpp
|
||||
installationmanager.cpp
|
||||
helper.cpp
|
||||
@@ -85,6 +88,7 @@ SET(organizer_SRCS
|
||||
instancemanager.cpp
|
||||
usvfsconnector.cpp
|
||||
eventfilter.cpp
|
||||
moshortcut.cpp
|
||||
|
||||
shared/windows_error.cpp
|
||||
shared/error_report.cpp
|
||||
@@ -109,6 +113,7 @@ SET(organizer_HDRS
|
||||
profile.h
|
||||
pluginlistsortproxy.h
|
||||
pluginlist.h
|
||||
pluginlistview.h
|
||||
overwriteinfodialog.h
|
||||
nxmaccessmanager.h
|
||||
nexusinterface.h
|
||||
@@ -126,7 +131,9 @@ SET(organizer_HDRS
|
||||
mainwindow.h
|
||||
loghighlighter.h
|
||||
logbuffer.h
|
||||
lockeddialogbase.h
|
||||
lockeddialog.h
|
||||
waitingonclosedialog.h
|
||||
loadmechanism.h
|
||||
installationmanager.h
|
||||
helper.h
|
||||
@@ -167,10 +174,13 @@ SET(organizer_HDRS
|
||||
viewmarkingscrollbar.h
|
||||
plugincontainer.h
|
||||
organizercore.h
|
||||
ilockedwaitingforprocess.h
|
||||
iuserinterface.h
|
||||
instancemanager.h
|
||||
usvfsconnector.h
|
||||
eventfilter.h
|
||||
descriptionpage.h
|
||||
moshortcut.h
|
||||
|
||||
shared/windows_error.h
|
||||
shared/error_report.h
|
||||
@@ -196,6 +206,7 @@ SET(organizer_UIS
|
||||
messagedialog.ui
|
||||
mainwindow.ui
|
||||
lockeddialog.ui
|
||||
waitingonclosedialog.ui
|
||||
installdialog.ui
|
||||
finddialog.ui
|
||||
editexecutablesdialog.ui
|
||||
@@ -233,10 +244,11 @@ 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})
|
||||
@@ -272,7 +284,7 @@ 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
|
||||
${project_path}/githubpp/src)
|
||||
@@ -289,7 +301,7 @@ EXECUTE_PROCESS(
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
ADD_DEFINITIONS(-D_UNICODE -DUNICODE -DNOMINMAX -D_CRT_SECURE_NO_WARNINGS -DGITID="${GIT_COMMIT_HASH}")
|
||||
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)
|
||||
@@ -299,7 +311,7 @@ ENDIF()
|
||||
|
||||
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 githubpp
|
||||
@@ -313,7 +325,7 @@ 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)
|
||||
|
||||
|
||||
###############
|
||||
@@ -325,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
|
||||
|
||||
+43
-2
@@ -154,8 +154,44 @@
|
||||
<string>Thanks</string>
|
||||
</attribute>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>Current Maintainers</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||
<item>
|
||||
<widget class="QListWidget" name="listWidget_2">
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::NoSelection</enum>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">LePresidente</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Silarn</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">erasmux</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Diana</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>Translators</string>
|
||||
</property>
|
||||
@@ -237,7 +273,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<property name="title">
|
||||
<string>Other Supporter</string>
|
||||
</property>
|
||||
@@ -247,6 +283,11 @@
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::NoSelection</enum>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Al12 (Discord) </string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">blacksol</string>
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
+52
-31
@@ -205,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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
#include <QWebEnginePage>
|
||||
|
||||
#ifndef DESCRIPTIONPAGE_H
|
||||
#define DESCRIPTIONPAGE_H
|
||||
|
||||
class DescriptionPage : public QWebEnginePage
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
DescriptionPage(QObject* parent = 0) : QWebEnginePage(parent){}
|
||||
|
||||
bool acceptNavigationRequest(const QUrl & url, QWebEnginePage::NavigationType type, bool isMainFrame)
|
||||
{
|
||||
if (type == QWebEnginePage::NavigationTypeLinkClicked)
|
||||
{
|
||||
emit linkClicked(url);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
signals:
|
||||
void linkClicked(const QUrl&);
|
||||
|
||||
};
|
||||
|
||||
#endif //DESCRIPTIONPAGE_H
|
||||
@@ -88,8 +88,8 @@ void DirectoryRefresher::addModBSAToStructure(DirectoryEntry *directoryStructure
|
||||
QFileInfo fileInfo(archive);
|
||||
if (m_EnabledArchives.find(fileInfo.fileName()) != m_EnabledArchives.end()) {
|
||||
try {
|
||||
directoryStructure->addFromBSA(ToWString(modName), directoryW,
|
||||
ToWString(QDir::toNativeSeparators(fileInfo.absoluteFilePath())), priority);
|
||||
//directoryStructure->addFromBSA(ToWString(modName), directoryW,
|
||||
// ToWString(QDir::toNativeSeparators(fileInfo.absoluteFilePath())), priority);
|
||||
} catch (const std::exception &e) {
|
||||
throw MyException(tr("failed to parse bsa %1: %2").arg(archive, e.what()));
|
||||
}
|
||||
|
||||
+14
-17
@@ -1,31 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||
<assemblyIdentity type="win32" name="dlls" version="1.0.0.0" processorArchitecture="x86"/>
|
||||
<file name="icuin54.dll"/>
|
||||
<file name="icuuc54.dll"/>
|
||||
<file name="icudt54.dll"/>
|
||||
<file name="7z.dll"/>
|
||||
<file name="archive.dll"/>
|
||||
<file name="d3dcompiler_47.dll"/>
|
||||
<file name="libeay32.dll"/>
|
||||
<file name="ssleay32.dll"/>
|
||||
<file name="libEGL.dll"/>
|
||||
<file name="libGLESV2.dll"/>
|
||||
<file name="liblz4.dll"/>
|
||||
<file name="opengl32sw.dll"/>
|
||||
<file name="Qt5Core.dll"/>
|
||||
<file name="Qt5Declarative.dll"/>
|
||||
<file name="Qt5Gui.dll"/>
|
||||
<file name="Qt5Multimedia.dll"/>
|
||||
<file name="Qt5MultimediaWidgets.dll"/>
|
||||
<file name="Qt5Network.dll"/>
|
||||
<file name="Qt5OpenGL.dll"/>
|
||||
<file name="Qt5Positioning.dll"/>
|
||||
<file name="Qt5PrintSupport.dll"/>
|
||||
<file name="Qt5Qml.dll"/>
|
||||
<file name="Qt5Quick.dll"/>
|
||||
<file name="Qt5Sensors.dll"/>
|
||||
<file name="Qt5Script.dll"/>
|
||||
<file name="Qt5Sql.dll"/>
|
||||
<file name="Qt5QuickWidgets.dll"/>
|
||||
<file name="Qt5WebChannel.dll"/>
|
||||
<file name="Qt5SerialPort.dll"/>
|
||||
<file name="Qt5Svg.dll"/>
|
||||
<file name="Qt5WebChannel.dll"/>
|
||||
<file name="Qt5WebKit.dll"/>
|
||||
<file name="Qt5WebKitWidgets.dll"/>
|
||||
<file name="Qt5WebEngineCore.dll"/>
|
||||
<file name="Qt5WebEngineWidgets.dll"/>
|
||||
<file name="Qt5Widgets.dll"/>
|
||||
<file name="Qt5WinExtras.dll"/>
|
||||
<file name="Qt5Xml.dll"/>
|
||||
<file name="Qt5XmlPatterns.dll"/>
|
||||
<file name="Qt5WinExtras.dll"/>
|
||||
<file name="ssleay32.dll"/>
|
||||
</assembly>
|
||||
@@ -228,7 +228,8 @@ bool EditExecutablesDialog::executableChanged()
|
||||
|
||||
QString storedCustomOverwrite = m_Profile->setting("custom_overwrites", selectedExecutable.m_Title).toString();
|
||||
|
||||
return selectedExecutable.m_Arguments != ui->argumentsEdit->text()
|
||||
return selectedExecutable.m_Title != ui->titleEdit->text()
|
||||
|| selectedExecutable.m_Arguments != ui->argumentsEdit->text()
|
||||
|| selectedExecutable.m_SteamAppID != ui->appIDOverwriteEdit->text()
|
||||
|| !storedCustomOverwrite.isEmpty() != ui->newFilesModCheckBox->isChecked()
|
||||
|| !storedCustomOverwrite.isEmpty() && (storedCustomOverwrite != ui->newFilesModBox->currentText())
|
||||
|
||||
@@ -10,6 +10,12 @@
|
||||
<height>460</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>200</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Modify Executables</string>
|
||||
</property>
|
||||
|
||||
@@ -86,7 +86,7 @@ Executable &ExecutablesList::find(const QString &title)
|
||||
return exe;
|
||||
}
|
||||
}
|
||||
throw std::runtime_error(QString("invalid name %1").arg(title).toLocal8Bit().constData());
|
||||
throw std::runtime_error(QString("invalid executable name %1").arg(title).toLocal8Bit().constData());
|
||||
}
|
||||
|
||||
|
||||
@@ -192,7 +192,7 @@ void ExecutablesList::addExecutableInternal(const QString &title, const QString
|
||||
newExe.m_Arguments = arguments;
|
||||
newExe.m_WorkingDirectory = workingDirectory;
|
||||
newExe.m_SteamAppID = steamAppID;
|
||||
newExe.m_Flags = 0;
|
||||
newExe.m_Flags = Executable::UseApplicationIcon;
|
||||
m_Executables.push_back(newExe);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
#ifndef ILOCKEDWAITINGFORPROCESS_H
|
||||
#define ILOCKEDWAITINGFORPROCESS_H
|
||||
|
||||
class QString;
|
||||
|
||||
class ILockedWaitingForProcess
|
||||
{
|
||||
public:
|
||||
virtual bool unlockForced() const = 0;
|
||||
virtual void setProcessName(QString const &) = 0;
|
||||
};
|
||||
|
||||
#endif // ILOCKEDWAITINGFORPROCESS_H
|
||||
@@ -187,6 +187,7 @@ bool InstallationManager::unpackSingleFile(const QString &fileName)
|
||||
|
||||
m_InstallationProgress->setWindowTitle(tr("Extracting files"));
|
||||
m_InstallationProgress->setWindowModality(Qt::WindowModal);
|
||||
m_InstallationProgress->setFixedSize(600, 100);
|
||||
m_InstallationProgress->show();
|
||||
|
||||
bool res = m_ArchiveHandler->extract(QDir::tempPath(),
|
||||
@@ -274,6 +275,7 @@ QStringList InstallationManager::extractFiles(const QStringList &filesOrig, bool
|
||||
m_InstallationProgress->windowFlags() & (~Qt::WindowContextHelpButtonHint));
|
||||
m_InstallationProgress->setWindowTitle(tr("Extracting files"));
|
||||
m_InstallationProgress->setWindowModality(Qt::WindowModal);
|
||||
m_InstallationProgress->setFixedSize(600, 100);
|
||||
m_InstallationProgress->show();
|
||||
|
||||
// unpack only the files we need for the installer
|
||||
@@ -419,9 +421,10 @@ void InstallationManager::updateProgress(float percentage)
|
||||
|
||||
void InstallationManager::updateProgressFile(QString const &fileName)
|
||||
{
|
||||
if (m_InstallationProgress != nullptr) {
|
||||
m_InstallationProgress->setLabelText(fileName);
|
||||
}
|
||||
if (m_InstallationProgress != nullptr) {
|
||||
m_InstallationProgress->setLabelText(fileName);
|
||||
QCoreApplication::processEvents();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -563,6 +566,7 @@ bool InstallationManager::doInstall(GuessedValue<QString> &modName, int modID,
|
||||
m_InstallationProgress->setWindowFlags(
|
||||
m_InstallationProgress->windowFlags() & (~Qt::WindowContextHelpButtonHint));
|
||||
m_InstallationProgress->setWindowModality(Qt::WindowModal);
|
||||
m_InstallationProgress->setFixedSize(600, 100);
|
||||
m_InstallationProgress->show();
|
||||
if (!m_ArchiveHandler->extract(targetDirectory,
|
||||
new MethodCallback<InstallationManager, void, float>(this, &InstallationManager::updateProgress),
|
||||
|
||||
+15
-5
@@ -47,9 +47,19 @@ InstanceManager &InstanceManager::instance()
|
||||
return s_Instance;
|
||||
}
|
||||
|
||||
void InstanceManager::overrideInstance(const QString& instanceName)
|
||||
{
|
||||
m_overrideInstanceName = instanceName;
|
||||
m_overrideInstance = true;
|
||||
}
|
||||
|
||||
|
||||
QString InstanceManager::currentInstance() const
|
||||
{
|
||||
return m_AppSettings.value(INSTANCE_KEY, "").toString();
|
||||
if (m_overrideInstance)
|
||||
return m_overrideInstanceName;
|
||||
else
|
||||
return m_AppSettings.value(INSTANCE_KEY, "").toString();
|
||||
}
|
||||
|
||||
void InstanceManager::clearCurrentInstance()
|
||||
@@ -177,7 +187,8 @@ void InstanceManager::createDataPath(const QString &dataPath) const
|
||||
QString InstanceManager::determineDataPath()
|
||||
{
|
||||
QString instanceId = currentInstance();
|
||||
if (instanceId.isEmpty() && portableInstall() && !m_Reset) {
|
||||
if (instanceId.isEmpty() && !m_Reset && (m_overrideInstance || portableInstall()))
|
||||
{
|
||||
// startup, apparently using portable mode before
|
||||
return qApp->applicationDirPath();
|
||||
}
|
||||
@@ -187,8 +198,9 @@ QString InstanceManager::determineDataPath()
|
||||
+ "/" + instanceId);
|
||||
|
||||
|
||||
if (instanceId.isEmpty() || !QFileInfo::exists(dataPath)) {
|
||||
if (!m_overrideInstance && (instanceId.isEmpty() || !QFileInfo::exists(dataPath))) {
|
||||
instanceId = chooseInstance(instances());
|
||||
setCurrentInstance(instanceId);
|
||||
if (!instanceId.isEmpty()) {
|
||||
dataPath = QDir::fromNativeSeparators(
|
||||
QStandardPaths::writableLocation(QStandardPaths::DataLocation)
|
||||
@@ -199,8 +211,6 @@ QString InstanceManager::determineDataPath()
|
||||
if (instanceId.isEmpty()) {
|
||||
return qApp->applicationDirPath();
|
||||
} else {
|
||||
setCurrentInstance(instanceId);
|
||||
|
||||
createDataPath(dataPath);
|
||||
|
||||
return dataPath;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user