Compare commits

..
656 Commits
Author SHA1 Message Date
Tannin 256cdb8df7 fixed priority ordering after enabling/disabling mod 2016-05-09 20:36:13 +02:00
Tannin 32480f7a81 minor fixes 2016-05-07 00:23:13 +02:00
Tannin e43762e7db profiles can now be configured to use the global game settings instead of profile-local 2016-05-07 00:22:23 +02:00
Tannin afe0d749c4 added option to use a mod as the target to create now files instead of "overwrite" 2016-05-07 00:18:23 +02:00
Tannin eb97c46ed6 cleanup 2016-05-07 00:03:38 +02:00
Tannin d958e11e2b now using github for self updater 2016-05-06 23:47:51 +02:00
Tannin b0e3e86a61 moved plugins.txt reading/writing to game plugin 2016-05-06 23:39:08 +02:00
Tannin 9df612c7ca more configuration options
- overwrite path configurable
- one can now set a base directory for all configurable paths
- user can now opt in/out of receiving pre-release updates (not functional yet)
2016-03-02 21:28:17 +01:00
Tannin 0899724d90 profile- and group-dropdown no longer switch by mouse-wheel. Plus fixed refreshing of right-hand side tabs 2016-03-02 21:22:26 +01:00
Tannin 53d9789740 updated icon and splash screen. MO can now use custom instance specific splash screens and splashes stored in game plugins 2016-03-02 21:20:38 +01:00
Tannin 4f8c71d626 merged master into new_vfs_library 2016-02-12 19:08:25 +01:00
Tannin fd68248698 fixed browse-button for mod directory (in settings) 2016-02-09 20:57:20 +01:00
Tannin 1ad2115e01 fixed cleanup of file handles 2016-02-09 20:55:39 +01:00
Tannin 8d1dd6238f fixed display of process name in unlock-widget 2016-02-09 20:54:54 +01:00
Tannin aaa1f52bdd fixed cleanup on restart 2016-02-09 20:53:09 +01:00
Tannin b085aeea0e changed focus policy on grouping selection to prevent accidentally changing the grouping mode 2016-02-09 20:51:56 +01:00
Tannin ea621ef859 fixed update of window title 2016-02-09 20:50:07 +01:00
Tannin 3202713cff updated to match current usvfs api 2016-02-09 20:46:46 +01:00
Tannin ad9d50e5f0 replaced boost&qt foreach-implementations by the c++11 variant 2016-02-09 20:32:26 +01:00
Tannin 63eaf453e0 portable setup is no longer offered if the directory isn't writable 2016-02-09 20:05:41 +01:00
Tannin 8a9a1680b0 code formatting (clang_format) 2016-02-09 20:02:58 +01:00
Tannin 1439347def updated version number 2016-02-08 20:33:53 +01:00
Tannin a9a51f5085 fixed a potential crash-cause when querying download info and slight improvement (?) to the regex that extracts the modid 2016-01-10 20:22:50 +01:00
Tannin 2aae65d6f6 made instance-switching usable
this includes tons and tons of changes to how paths are determined.
the profiles-dir can now also be configured
2016-01-10 20:19:56 +01:00
Tannin ddf841400e Merge branch 'new_vfs_library' of https://github.com/TanninOne/modorganizer into new_vfs_library 2015-12-28 14:34:44 +01:00
Tannin 1bfc91046b removed get-prefix from many getters. removed const from managed_game variable.
other fixes
2015-12-28 14:33:30 +01:00
TanninOne d417229e6b executables installed as mods are now run through a proxy (not working yet) 2015-12-28 13:54:16 +01:00
TanninOne 1d1cd36957 slight fixes to transfer saves functionality 2015-12-28 13:50:20 +01:00
TanninOne c037b74b00 Merge branch 'master' into new_vfs_library 2015-12-23 11:38:34 +01:00
TanninOne 5adb3b377e Merge pull request #450 from ThosRTanner/master
Restore start download file method (2 of 3)
2015-12-21 15:12:22 +01:00
TanninOne d4326250fb Update readme.md 2015-12-21 15:11:55 +01:00
Thomas Tanner 2d43645b64 Restore start download file method (2 of 3) 2015-12-20 22:25:11 +00:00
TanninOne 9d260a43f6 Merge pull request #422 from ThosRTanner/master
remove last vestiges of GameInfo
2015-12-19 10:33:36 +01:00
TanninOne 9effaec234 Merge pull request #423 from ThosRTanner/patch-1
Adding fallout4 to the list of repositories
2015-12-19 10:31:59 +01:00
Tannin 502e950cde support for adding directories to the vfs that will act as create target for new files 2015-12-18 20:32:29 +01:00
Tannin 4908affbfc fixed display of savegame widget in case parsing fails 2015-12-18 20:28:03 +01:00
Tannin 8dc51895e3 improved file overwriting in transfersaves dialog 2015-12-18 20:20:06 +01:00
Tannin 568b2abc12 removed close-mo feature 2015-12-18 20:16:28 +01:00
Thomas Tanner c344714661 And found it was unreadable so ordered things a bit and replaced 2 line 'could use forward reference' with 1 2015-12-12 12:35:14 +00:00
Thomas Tanner a3a4d5441d Full details from include what you use for qt creator 'issue' box 2015-12-12 11:51:05 +00:00
Tannin e60e2858d8 Merge branch 'master' into new_vfs_library
Conflicts:
	src/gameinfoimpl.cpp
	src/installationmanager.cpp
	src/mainwindow.cpp
	src/organizercore.cpp
	src/organizercore.h
	src/organizerproxy.cpp
	src/organizerproxy.h
	src/savegamegamebryo.cpp
	src/savegamegamebyro.h
	src/selfupdater.h
	src/shared/fallout3info.cpp
	src/shared/fallout3info.h
	src/shared/falloutnvinfo.cpp
	src/shared/falloutnvinfo.h
	src/shared/gameinfo.cpp
	src/shared/gameinfo.h
	src/shared/oblivioninfo.cpp
	src/shared/oblivioninfo.h
	src/shared/skyriminfo.cpp
	src/shared/skyriminfo.h
	src/spawn.cpp
	src/transfersavesdialog.cpp
2015-12-07 21:00:22 +01:00
Tannin 495846534d - no longer displaying "not logged in". This was too confusing for some
- fixed files missing from vfs if parent directory exists in real destination dir
- implemented plugin api to access current profile
- steam game detection now also works for 64-bit games
- removed reference to archive tab from tutorial
- usvfs log level is now taken from config
- some cleanup
2015-12-07 20:09:34 +01:00
ThosRTanner 4a8c7306be Adding fallout4 to the list 2015-12-06 22:12:39 +00:00
Thomas Tanner 7b087f8f9d Facepalm moments - realised gameinfo init call is no longer needed. Removed all references 2015-12-06 21:10:37 +00:00
Thomas Tanner eff0f46872 Merge remote-tracking branch 'refs/remotes/TanninOne/master' 2015-12-06 17:44:17 +00:00
TanninOne 752bed064c Merge pull request #349 from ThosRTanner/issue/344
Fix for Issue 344 (1 of 4) - add code to get script extender and game versions
2015-12-06 17:32:18 +01:00
Thomas Tanner 750239bebb Merge branch 'master' into issue/344
# Conflicts:
#	src/gameinfoimpl.cpp
#	src/gameinfoimpl.h
#	src/shared/fallout3info.h
#	src/shared/falloutnvinfo.h
#	src/shared/gameinfo.h
#	src/shared/oblivioninfo.h
#	src/shared/skyriminfo.h
2015-12-06 15:49:56 +00:00
TanninOne 865c75a499 Merge branch 'ThosRTanner-master' 2015-12-06 15:10:45 +01:00
TanninOne eca56079d5 Merge branch 'master' of https://github.com/ThosRTanner/modorganizer into ThosRTanner-master 2015-12-06 15:03:38 +01:00
TanninOne e31cf3f2fd Merge pull request #372 from ThosRTanner/issue/356
Refactor gameinfo & 'shared' library to use game plugins (9 of 17)
2015-12-06 13:24:19 +01:00
Thomas Tanner 3670ab2528 Remove debugging code quick! 2015-12-06 12:07:25 +00:00
Thomas Tanner 235d893eb8 Gets rid of last vestiges of GameInfo apart from startup and hookdll
Working on sorting out savegame stuff
2015-12-05 19:13:05 +00:00
Thomas Tanner c2ed844eeb Merge remote-tracking branch 'remotes/TanninOne/master' into issue/356
Conflicts:
	src/downloadmanager.cpp
	src/mainwindow.cpp
	src/modinfo.cpp
	src/modinfo.h
	src/selfupdater.cpp
	src/shared/fallout3info.cpp
	src/shared/fallout3info.h
	src/shared/falloutnvinfo.cpp
	src/shared/falloutnvinfo.h
	src/shared/gameinfo.h
	src/shared/oblivioninfo.cpp
	src/shared/oblivioninfo.h
	src/shared/skyriminfo.cpp
	src/shared/skyriminfo.h
2015-12-05 12:49:12 +00:00
Thomas Tanner cb09ace972 Hoist self with own petard - add const 2015-12-05 10:43:19 +00:00
Thomas Tanner 0dedf5a875 Merge remote-tracking branch 'remotes/TanninOne/master' into issue/344
# Conflicts:
#	src/shared/fallout3info.h
#	src/shared/falloutnvinfo.h
#	src/shared/gameinfo.h
#	src/shared/oblivioninfo.h
#	src/shared/skyriminfo.h
2015-12-05 10:32:07 +00:00
Thomas Tanner ec9c78f8fa Merge remote-tracking branch 'TanninOne/master'
# Conflicts:
#	SConstruct
#	src/modinfo.cpp
#	src/modinfo.h
2015-12-05 10:21:44 +00:00
Thomas Tanner c07e48075e Most of work for savegame 2015-12-05 06:51:57 +00:00
TanninOne 688e149c96 Merge pull request #334 from ThosRTanner/issue/308
Allow right click on module to see web link if supplied in fomod
2015-12-04 22:30:35 +01:00
TanninOne 87d5fe28f6 Merge pull request #328 from ThosRTanner/issue/324
Cope with quotes in file- and module- names
2015-12-04 21:55:11 +01:00
TanninOne ce38a3bd33 Merge pull request #3 from ThosRTanner/archive_cleanup
Refactoring archive library (Part 3)
2015-12-04 17:51:45 +01:00
TanninOne 71b8c00592 Merge pull request #402 from ReadmeCritic/master
Update README URLs based on HTTP redirects
2015-12-04 17:49:46 +01:00
ReadmeCritic 20442cd4de Update README URLs based on HTTP redirects 2015-11-29 19:55:03 -08:00
Thomas Tanner c236078aa1 Fix up so that hookdll continues to work properly 2015-11-29 14:44:12 +00:00
Thomas Tanner 9a88a190eb Another cleanup and make the program not crash when looking at saves for the nonce 2015-11-29 12:55:49 +00:00
Thomas Tanner d03e4f45ef Abstract away the xxse_loader manipulation and make use of the 'ScriptExtender' feature instead
A note: This makes loadmechanism.cpp require xxse_loader.exe to exist, not the dll as other places get the version number from the exe.
2015-11-28 23:12:29 +00:00
Thomas Tanner 9e2bcffc32 Reworked startup considerably so now no longer dependant on GameInfo
Did some const correctness to the "managed_game" property as you shouldn't really be altering the plugin details whilst MO is running
2015-11-28 14:53:32 +00:00
Thomas Tanner 2e78a381ea Fix sconstruct issue from main line 2015-11-27 08:13:21 +00:00
Thomas Tanner bb56696f7e Merge remote-tracking branch 'TanninOne/master' into issue/324 2015-11-27 07:58:22 +00:00
Thomas Tanner ca54ee2e9a Renamed getNexusName to getGameShortName as previously because it hopefully isn't too nexus related. 2015-11-26 21:22:47 +00:00
Thomas Tanner 2025145ff6 Replaced the IPluginGame getNexusDisplayURL with some APIs in NexusInterface
It makes more sense to have them here as they have very little to do with the game, more to do with the origin of the mod.
2015-11-26 21:02:45 +00:00
Thomas Tanner 1b1fc247df Remove remaining gameInfo 2015-11-26 17:54:25 +00:00
Thomas Tanner dd37152eae This removes getNexusPage from GameInfo and is currently in the game plugin.
I'm looking to move it to the nexus interface though as it doesn't really relate to the game plugin.

I've also removed the MananagementURL as
- you can log into nexus without needing to specify the game
- See above - it doesn't belong with the game plugin

This gets rid of all dependencies bar game saving and logging in
2015-11-26 17:48:50 +00:00
Thomas Tanner 82e6c98043 Replace last occurrence of GameInfo::getNexusGameID and remove a whole load of gameinfo.h includes 2015-11-26 07:39:35 +00:00
Thomas Tanner 29dadf52f1 Forgot to remove the redundant member 2015-11-25 20:40:34 +00:00
Thomas Tanner 38c5899fef Replace GameInfo::getNexusInfoUrl with IPluginGame::getNexusManagementUrl
also added getNexusDisplayUrl for the other variant of getNexusPage

Removed skyrim static versions

note that Nexusinterface is now passed a game plugin rather than a URL and a game ID if you want to override the current game
2015-11-25 19:31:05 +00:00
Thomas Tanner b9b12ca765 Bunch of const correctness changes. There shouldn't be any update of plugin games once MO has started 2015-11-25 14:23:58 +00:00
Thomas Tanner 78b686b2bc Removes all references to GameInfo::getGameDirectory apart from one during startup
Did some const correctness improvements

Also may have fixed a potential crash as the Profile copy constructor didn't copy the m_GamePlugin membber
2015-11-25 08:22:40 +00:00
Thomas Tanner 42a68689fe Replace GameInfo::getNexusModID with IPluginGame::getNexusModOrganizerID()
Also implement IPluginGame::getNexusGameID() but not hooked it in yet.
2015-11-24 16:16:57 +00:00
Thomas Tanner c7d583bcf1 Replace GameInfo::getLoadorderMechanism with IPluginGame::getLoadOrderMechanism 2015-11-24 14:21:19 +00:00
Thomas Tanner d6da51536f Merge branch 'issue/356' of https://github.com/ThosRTanner/modorganizer into issue/356 2015-11-24 09:52:54 +00:00
Thomas Tanner d4a287a4cc Updated comments so I can see where I'm going 2015-11-24 09:51:46 +00:00
Thomas Tanner 91576257bc Updated comments so I can see where I'm going 2015-11-24 09:50:02 +00:00
Thomas Tanner a7ef089650 Use IPluginGame::getIniFiles throughout.
Also removed the default constructor from Profile class and stopped registering it as a QMetaObject (which it is the only reason it is there).
2015-11-24 09:45:45 +00:00
Thomas Tanner 37c3bea7dd Removes all uses of GameInfo::getShortName, replaced by IPluginGame::getNexustName 2015-11-24 06:58:29 +00:00
Tannin fe8c3aaea5 some fixes and removed obsolete code 2015-11-23 21:44:47 +01:00
Tannin dda9e11976 added interface for file mapping plugins 2015-11-23 21:43:37 +01:00
Tannin 9945b5e926 added support for fallout 4 savegames 2015-11-23 21:41:25 +01:00
Thomas Tanner 3659284ab6 Remove most instances of GameInfo::getname, and transfer getDLCPlugins to the plugingame interface
Also commented out startDownloadNexusFile as it doesn't appear to be used anywhere
2015-11-23 18:32:30 +00:00
Thomas Tanner 2a50683133 Removed 'requiresSteam' which is only used in one place and might or might not be game related 2015-11-23 13:35:48 +00:00
Thomas Tanner efaba90706 Final eradication of igameinfo and adding python wrappers for IPluginGame 2015-11-22 21:18:56 +00:00
Thomas Tanner 159501d076 Removes igameinfo.h from everywhere apart from (sort of) the pythonrunner plugin.
Also comment out the filemapping function because it's large and doesn't appear to be used anywhere
2015-11-22 08:46:46 +00:00
Thomas Tanner 4dbb3b148d Replace some instances of qApp->property("managed_game") with the saved pointer.
Pedantic note: This doesn't help the possibility of supporting multiple executables greatly, we'd have to have a lot of register-for-change events.
2015-11-21 17:26:34 +00:00
Thomas Tanner 408b7933d2 Replace GameInfo::path with iPluginGame::gameDirectory (or dataDirectory where applicable) 2015-11-21 16:32:48 +00:00
Thomas Tanner efb54100dc Removal of (get)BinaryName 2015-11-21 12:30:33 +00:00
Thomas Tanner f339cc8431 Member variable unused so removed it.
Leaves one asking *why* the datapath can be inside the game directory.
2015-11-20 19:34:09 +00:00
Thomas Tanner 49de6e8d25 Get rid of GameIfo::getOrganizerDirectory and associated member variable
qApp->getProperty("dataPath") can be used instead (and is pretty much everywhere else) so it's unnecessary
2015-11-20 18:07:06 +00:00
Tannin dbbd0c4eec usvfs log is now written to a persistent file (no log rotation yet though) 2015-11-19 19:10:18 +01:00
Tannin 4ff751fb7e some fixes/disabled code required since hook.dll is gone 2015-11-19 19:09:34 +01:00
Tannin d8d81ee06f fix/workaround for a problem where Qt thinks it's not connected to the net 2015-11-19 19:07:23 +01:00
Tannin a4b69c9ed8 added fallout 4 support 2015-11-19 19:05:50 +01:00
Thomas Tanner 7f9af7f93e Merge remote-tracking branch 'refs/remotes/TanninOne/master' 2015-11-18 20:51:52 +00:00
Thomas Tanner 9ac845779a Fixup 2015-11-18 20:51:27 +00:00
Tannin 053ebc898f build system fix 2015-11-17 20:01:44 +01:00
Tannin 0bd38e3f67 Merge branch 'master' into new_vfs_library
Conflicts:
	src/CMakeLists.txt
2015-11-17 19:12:53 +01:00
Tannin 7f4f4cafea first work on interfacing with usvfs 2015-11-17 18:58:00 +01:00
Tannin 56ba058cd5 updated build scripts 2015-11-16 21:39:52 +01:00
Thomas Tanner d1932bfc8e Better header matching 2015-11-12 21:48:40 +00:00
Thomas Tanner a284cbf232 Yet more changes for include what you use, including a moderate hack for compiling stackdata with clang 2015-11-09 18:16:58 +00:00
Thomas Tanner fe54b6c46a More cleanups 2015-11-08 23:18:16 +00:00
Thomas Tanner d82ca00733 Separated out the include what you use mappings into separate files, more improvements 2015-11-08 09:46:30 +00:00
Thomas Tanner 1a12b1f1f6 Decided it shouldn't be an error if i can't get information about the file. 2015-11-04 21:39:14 +00:00
Thomas Tanner 184cff8a77 Add support for version dependency checks 2015-11-01 18:27:34 +00:00
Thomas Tanner f1aaf92afb Improve diagnostics if IWYU is enabled
Few small cleanups from clang
2015-10-31 19:40:33 +00:00
Thomas Tanner 8f64a1d136 Proper integraton of IWYU into the build (including massaging clang errors into the issues tab).
Note: There is at least one ug in QT that stops thing s copiling because it doesn't undertand clangs version
2015-10-25 21:07:02 +00:00
Thomas Tanner b1cfc45853 Make the IWYU generation generic 2015-10-25 08:36:30 +00:00
Thomas Tanner 76bee42dd1 umm. windows hardlinks weren't quite working as expected 2015-10-18 19:00:14 +01:00
Thomas Tanner 0f8ae51459 Added support for include-what-you-use in a very simplistic fashion to the Scons build. This isn't exactly production ready because the qt headers are a nightmarish web of interdependencies but it's useful for checking.
I've also removed a few unused include files it detected and corrected some things that upset clang in a big way.
2015-10-17 19:05:00 +01:00
Thomas Tanner dfdf80417e Merge remote-tracking branch 'refs/remotes/TanninOne/master' 2015-10-15 19:09:08 +01:00
Thomas Tanner d4754f4d3c Fix for some nexus fomods having the old version of the mod link and not the new version.
Also fixed a lot of const correctness things
2015-10-15 18:44:39 +01:00
Thomas Tanner 1cb0a49dfc Merge remote-tracking branch 'TanninOne/master' into issue/308 2015-10-15 13:34:32 +01:00
Thomas Tanner 9d88ca13b9 Added functionality to use the web page link in a fomod to supply an optional web page.
Also refactored modinfo into multiple files (as the actual types are opaque anyway) and cleaned up the headers a bit

I also changed 'visit on nexus' from the menu not to open the downloads tab because it was a little confusing
2015-10-15 13:34:01 +01:00
TanninOne f25a51446c Merge pull request #329 from ThosRTanner/master
Update to scons build
2015-10-14 19:52:44 +02:00
Thomas Tanner ec07d3d4d9 Updated scons build a bit to produce helpful-ish git tag for organizer.
Use r"..." strings in template file to make it easier to copy/paste paths from windows clipboard.

Changed organizer.pro to not produce strange messages if you opened it because it couldn't find a .hg directory
2015-10-13 15:24:41 +01:00
Thomas Tanner ca6d7c7d11 Merge branch 'master' into archive_cleanup 2015-10-12 12:54:49 +01:00
Thomas Tanner 077a58f410 Merge branch 'master' of https://github.com/TanninOne/modorganizer into archive_cleanup
# Conflicts:
#	src/installationmanager.cpp
2015-10-12 12:54:19 +01:00
Thomas Tanner 939993aefe Bring scons build up to date with cmake build 2015-10-11 21:28:38 +01:00
Thomas Tanner af9a128b4f Merge branch 'TanninOne/master' 2015-10-11 21:26:21 +01:00
Thomas Tanner 9d4b7a1df0 Merge remote-tracking branch 'TanninOne/master' into issue/324 2015-10-11 21:12:59 +01:00
Thomas Tanner 9a7b0ee2c7 Fixes for quotes in module names:
Treat the module name from Nexus as HTML and convert into plain text.
Allow ' in a module name
Also removed the ::tr1:: namespace in the regexs
2015-10-11 21:12:37 +01:00
Tannin 7d93a9a200 updated about dialog. Now contains a link to the source code 2015-10-10 19:36:12 +02:00
Tannin 90d87a0cf7 fixed progress dialogs appearing on startup
Appears to be a new bug in qt or maybe incompatibility with Windows 10: All Progress dialogs were made visibly automatically a few seconds after application startup. This was "fixed" by creating the dialog dynamically on demand
2015-10-10 19:35:18 +02:00
Tannin 115315df28 build fixes 2015-10-10 19:29:45 +02:00
Thomas Tanner c5876cb6a1 Merge remote-tracking branch 'TanninOne/master' 2015-10-10 13:50:22 +01:00
Thomas Tanner e7b61cb485 Remove the exec of hg which does funny things in your QT project window if you aren't using mercurial 2015-10-10 13:43:01 +01:00
Tannin a0eb00b6b6 more work on build system 2015-10-08 23:56:07 +02:00
TanninOne f2484c3b0e Update readme.md 2015-10-06 20:08:57 +02:00
TanninOne 107adbfffc Update readme.md 2015-10-06 20:03:49 +02:00
Thomas Tanner f5c86bc22c Merge branch 'master' of https://github.com/TanninOne/modorganizer into archive_cleanup 2015-10-02 23:01:34 +01:00
Thomas Tanner 2fb4917111 Changes to go with cleaned up archive library 2015-09-27 13:29:04 +01:00
TanninOne de98fe64a3 Merge pull request #1 from ThosRTanner/master
Small cleanups
2015-09-26 19:54:31 +02:00
Thomas Tanner 364c385f1a Merge branch 'master' of https://github.com/TanninOne/modorganizer.git
# Conflicts:
#	.gitignore
2015-09-26 12:21:43 +01:00
Thomas Tanner 3c1c50fefc Create an ignore file 2015-09-26 12:12:31 +01:00
Tom Tanner 095967451e Remove some unused files and build esptk as a library 2015-09-26 11:55:17 +01:00
Tom Tanner eb901e0dfc This fixes some resource leaks with archive handling 2015-09-26 11:54:27 +01:00
Tannin 462c549f77 added cmake build system 2015-09-26 11:39:30 +02:00
Tannin 1f8c24ee7a updated readme 2015-09-23 21:57:03 +02:00
Tannin 8865f9d7bc added cmake build script and a few fixes for 64-bit compatibility 2015-09-23 21:47:56 +02:00
Tannin ae82ab7dca Merge 2015-09-06 09:50:35 +02:00
Tannin 999810e1d5 incremented version number 2015-09-06 09:49:01 +02:00
Tom Tanner 4dbf01cd56 Merge 2015-09-05 17:18:58 +01:00
Tom Tanner cd7b409c10 Weren't getting warned if you changed an executable then selected another
This fixes that and also redisplays the newly selected item properly
2015-09-05 17:18:37 +01:00
Tannin ff8377a8ff Added tag release v1.3.11 for changeset c14a9865ea2e 2015-09-05 17:24:47 +02:00
Tannin 4573d111a2 better sorting on the flag-column 2015-09-03 21:35:48 +02:00
Tannin 84ec954073 more intuitive sorting with grouping active 2015-09-03 21:35:04 +02:00
Tannin 63188eb6f3 Merge 2015-09-03 19:34:53 +02:00
Tannin 0a51fdf08e DLC bsas are now auto-enabled for pre-skyrim games 2015-09-03 19:33:33 +02:00
Tannin cb315b4179 bugfix: "add" button in editexecutables dialog didn't work 2015-09-03 19:32:40 +02:00
Tom Tanner d96d904765 Fix not recognising 'add' (1308) 2015-09-02 22:13:24 +01:00
Tannin 9588667404 Added tag release v1.3.10 for changeset 8638428b1ebc 2015-09-01 20:31:32 +02:00
Tannin b008753e1d workaround: after editing in a filtered view, if the edited item disappears as
a result of the edit, no further editor could be opened
2015-09-01 19:49:28 +02:00
Tannin 3c7ab3b668 Merge 2015-08-31 21:26:47 +02:00
Tannin d85019f4b1 auto-discovered executables aren't turned into custom ones if the user presses
"Modify" without doing any changes
2015-08-31 21:25:43 +02:00
Tannin 05edcf8840 code cleanup 2015-08-31 21:24:48 +02:00
Tannin 2a22461f14 bugfix: auto-discovered executables couldn't be customized 2015-08-31 21:24:04 +02:00
Tom Tanner 0c3c822d77 Stop the temp files to delete list growing on each install 2015-08-30 13:36:11 +01:00
Tom Tanner f0ee9c3e4d Merge 2015-08-28 20:04:15 +01:00
Tannin 83edfe0c96 Merge 2015-08-27 20:59:37 +02:00
Tannin 86d833bcc8 bugfix: crash on network connection problem 2015-08-27 20:58:39 +02:00
Tannin 58198a6bfd bugfix: update.bsa sorted incorrectly 2015-08-27 20:58:01 +02:00
Tom Tanner 32339addbf Fix nasty message when starting MO for first time 2015-08-22 22:53:13 +01:00
Tannin dd875c05de removed obsolete code 2015-08-17 20:56:53 +02:00
Tannin 17938b503a Merge 2015-08-17 20:52:12 +02:00
Tannin 269d4f6765 bugfix: wrong app ids used for oblivion and fallout 3
rewrote handling of different game variants: now resides in game plugin and works
2015-08-17 20:50:47 +02:00
Tom Tanner 0fa7f7469f Merge 2015-08-15 16:52:18 +01:00
Tannin ea1c2b46fe Merge 2015-08-15 12:37:19 +02:00
Tannin 89f3c0d65a more verbosity about login/logout to/from nexus 2015-08-15 12:06:26 +02:00
Tom Tanner 821f95b8ab Clean up of fixes for custom executable window 2015-08-13 22:37:33 +01:00
Tom Tanner 716dbcc97d Merge 2015-08-13 21:48:33 +01:00
Tom Tanner 8e7ac4e064 Fix the executable configuration flags going awry from Customise window 2015-08-13 20:07:21 +01:00
Tannin 69a8a40b99 bugfix: categories that reference each other in a cycle could send MO into an endless loop 2015-08-12 21:50:06 +02:00
Tannin 229161565e some fixes after reverting changes in c361167b9b75 2015-08-12 21:48:51 +02:00
Tom Tanner 9c3b390f08 Fix up merge mess 2015-08-11 21:53:00 +01:00
Tom Tanner 5244544424 Merge 2015-08-11 21:35:06 +01:00
Tannin 217ca284fe Merge 2015-08-11 19:31:48 +02:00
Tannin 0aecc3427a small bugfix 2015-08-11 19:23:12 +02:00
Tannin b6627ff5e0 small code cleanup 2015-08-09 17:11:18 +02:00
Tom Tanner b0d86c9e01 Merge 2015-08-09 15:56:39 +01:00
Tannin a7d6eb75c2 reverted most changes of changeset 626da419828a as I don't agree with them 2015-08-09 15:16:57 +02:00
Tannin 6f09cf2205 Merge 2015-08-09 13:51:17 +02:00
Tannin e6abe486a7 added some (currently unused) functionality to dump the list of file mappings
from real to virtual location
2015-08-09 13:04:01 +02:00
Tannin 52fcfaa292 some code cleanup 2015-08-09 12:52:30 +02:00
Tannin 4230313ef5 now displays currently logged in account in title bar 2015-08-09 12:51:19 +02:00
Tannin ff8057d34b - MO now validates session cookie on startup
- It also retrieves account status
- rewrote how MO decides when to log-in/when to give up on logging in
2015-08-09 12:40:57 +02:00
Tom Tanner b098214860 More work on the executables list
Apart from an off by one in the popup list which had crept back in, reworked
the underlying code even more, which now seems to get the list behaving in
a predictable way.
2015-08-05 22:40:49 +01:00
Tannin 8cf429a1dd - bugfix: manual installer now cancels drag&drop when dropping on a subitem
- bugfix: objects dropped on the modlist were treated as mods when they weren't urls
2015-08-05 22:48:34 +02:00
Tom Tanner 9f7bec01d0 Merge 2015-08-02 21:58:02 +01:00
Tannin 643a50ad5a - changed the way flags on executables are stored in memory
- some coding style fixes
2015-08-02 20:09:56 +02:00
Tom Tanner eaaa1b312d Extract multiple copies of file from archive
Had to rewrite the archive handling a bit. First pass, some tidyups required.
2015-08-02 16:25:32 +01:00
Tannin 9c17ecc87e Merge 2015-08-02 14:58:17 +02:00
Tannin 051589c38e bugfix: archive list wasn't saved after enabling/disabling a mod. 2015-07-31 14:18:44 +02:00
Tom Tanner 48fae44566 Fix up selection with exactly/at least/at most one 2015-07-18 20:57:37 +01:00
Tom Tanner e1c8d00979 Reworked executable lists to not use 3 bools in addExecutable
Think it's more readable
2015-07-18 13:34:10 +01:00
Tom Tanner 0503097494 Allow user to select app icon or mo icon for generated shortcuts
Also fixes 'x' for toolbar not disappearing when it should
Issue 701
2015-07-18 10:44:49 +01:00
Tom Tanner 3a39f90870 small patch to show which obsolete files are being removed 2015-07-17 22:12:46 +01:00
Tom Tanner 18ad656586 Merge 2015-07-09 18:58:57 +01:00
Tom Tanner eaafc489fc Reworking the Custom Executables list and the shortcut popup.
Certainly fixes the issue where the 'toolbar' entry doesn't lose the cross.

One of the 'find' methods ignored case but none of the others did, so I've
made it not ignore case either.

Also made the code to get the desktop/startmenu paths use a more up-to-date API
2015-07-09 18:58:34 +01:00
Tannin 7799c348ba defining PSAPI_VERSION to 1 may allow MO 1.3 to run on Vista again. 2015-07-07 20:57:20 +02:00
Tannin 0a1f3efac5 filter names in the filter pane now also show up as tooltips 2015-07-07 20:54:18 +02:00
Tannin 1eea37e4e1 small code beautification 2015-07-07 20:53:38 +02:00
Tannin 9a5965afa7 bugfix: invalidation bsa wasn't created when switching to a profile that needed it
invalidation bsa is now always placed as the first bsa
2015-07-07 20:52:46 +02:00
Tannin 7853ba5f9a Merge 2015-06-30 19:57:59 +02:00
Tannin 90dcc81715 incremented version number 2015-06-30 19:57:46 +02:00
Tannin 1e75fd8dae bugfix: dropping files from overwrite on mod failed whien mod grouping was active 2015-06-29 20:38:16 +02:00
Tannin 61033814fd bugfix: aboutToChangeData and postDataChanged signals were not correctly set up when mod grouping was enabled 2015-06-29 20:28:56 +02:00
Tom Tanner ca591dbd23 and now I find out I don't need to do it at all 2015-06-23 20:27:38 +01:00
Tom Tanner 7602fef6e7 Finish refactoring all the tab code into classes 2015-06-21 18:27:03 +01:00
Tom Tanner 67b1f9dca2 Merge 2015-06-21 07:51:49 +01:00
Tom Tanner 5ae279d8bb More refactoring, slightly easier to use classes 2015-06-21 07:51:05 +01:00
Tom Tanner 81ef3d0a81 Factor out general, nexis, plugins tab code into individual classes
Add some code and page to control what is/isn't significant in overwrite
2015-06-20 15:37:32 +01:00
Tannin dc0e67a8b3 Added tag release v1.3.8 for changeset 04197ab95dcd 2015-06-20 13:55:39 +02:00
Tannin aa21a192cb bugfix: fix in changeset f4c306711386 wasn't fully working 2015-06-20 13:55:29 +02:00
Tannin d4d7ce1fd3 small stuff 2015-06-17 18:33:28 +02:00
Tannin e31baf3ee6 - bugfix: MO crashed without error message when "bootstrapping" failed 2015-06-17 18:33:16 +02:00
Tannin 5dcfca7c9d bugfix: disabled mods were marked "redundant" 2015-06-15 20:01:28 +02:00
Tannin e9ee7e7f85 bugfix: dialog-memory wasn't initialized when starting through a desktop link so
access (in case steam wasn't running) caused a crash
2015-06-15 20:00:27 +02:00
Tannin 67d017fc98 fix: some names in about dialog were marked translatable 2015-06-15 19:58:57 +02:00
Tannin a700e6a3ef Added tag release v1.3.7 for changeset e857b583c68f 2015-06-13 16:21:21 +02:00
Tannin c95de1b3aa small stuff 2015-06-12 18:32:50 +02:00
Tannin 351fc9ca9c fixed display of installation time for mods without nexus id 2015-06-11 18:54:59 +02:00
Tannin 53f0a2bc79 bugfix: opening a foreign mod info dialog caused the content to be "forgotten" 2015-06-11 18:54:20 +02:00
Tannin 793dfb1637 added plugin interface to add/remove/list categories to/from/of mods 2015-06-10 22:09:32 +02:00
Tannin d25a81071c more generic solution to the problem fixed in changeset bb74f8eb639c, now also applied in another location 2015-06-10 21:22:54 +02:00
Tannin ef9a61886c a mod that overwrites another yet is completely overwritten by another is now displayed as "redundant" 2015-06-10 21:21:32 +02:00
Tannin 13a40b43c8 bugfix: files weren't correctly assigned to unmanaged mods. 2015-06-10 21:20:31 +02:00
Tannin d7790cd717 incorrect use of "complete" file suffixes 2015-06-09 20:40:13 +02:00
Tannin 84d632af6a fixes regarding path name generation during mod installation 2015-06-09 20:39:17 +02:00
Tannin b14b35349d post-merge cleanup 2015-06-08 19:55:00 +02:00
Tannin 83a4db2362 Merge 2015-06-08 18:29:49 +02:00
Tannin c797af8b76 increased ui responsiveness while integrated loot is running 2015-06-08 18:28:59 +02:00
Tannin ebf6ff3f76 workaround to prevent crashes when toggling mods causes the filtered list to change 2015-06-08 18:28:20 +02:00
Tannin 02b5e73c2d bugfix: potential null-pointer access when something goes wrong enabling a mod 2015-06-08 17:27:34 +02:00
Tom Tanner b0b2f1d3a9 Make the about dialog come up on the first tab 2015-06-07 13:37:41 +01:00
Tom Tanner d8e406daa0 Merge 2015-06-06 15:58:51 +01:00
Tom Tanner 50dcc4c1d4 Addition of FileNameString clase which ignores case during compares.
Affects rather a lot of stuff.
2015-06-06 15:56:44 +01:00
Tannin e21db0eaea bugfix: moving an executable in the executable list caused that executable
to disappear
2015-06-04 12:50:35 +02:00
Tannin 859332e18d a little more logging during startup 2015-06-04 12:50:11 +02:00
Tannin 1fd8f44960 bugfix: selecting an image in the modinfo dialog caused the image label
to grow slightly each time
2015-06-04 12:49:47 +02:00
Tannin e0c655330d Added tag release v1.3.6 for changeset 7bed8faa975a 2015-05-31 00:36:58 +02:00
Tannin a0999cd42b Removed tag release v1.3.6 2015-05-31 00:36:56 +02:00
Tannin eb47d4d0bb small stuff in preparation of release 2015-05-31 00:36:16 +02:00
Tannin 59476e38ec Added tag release v1.3.6 for changeset 11b2864c40c9 2015-05-30 17:34:11 +02:00
Tannin c5d36af06d Added tag release v1.3.5 for changeset 3f7672859c79 2015-05-30 16:12:14 +02:00
Tannin 8d1931bc6b - fix to the look of save game tooltip in dracula theme 2015-05-27 20:10:55 +02:00
Tannin c05be9f5c3 small stuff 2015-05-26 20:42:15 +02:00
Tannin 75714907d9 closing the categories context menu no longer completely resets the mod list 2015-05-25 15:29:58 +02:00
Tannin 02471a3da1 cleaned up warning messages from the download manager in case of download problems 2015-05-25 14:58:34 +02:00
Tannin afab0cec7e compact download view now uses icons instead of colors to distinguish state 2015-05-25 14:57:58 +02:00
Tannin 02cc97a58d - bugfix: bsa order wasn't correctly restored. 2015-05-24 18:51:03 +02:00
Tannin ffd94e72b4 - bugfix: immediately after creating the first profile, the directory structure
didn't correctly assign files to unhandled.
2015-05-23 17:25:58 +02:00
Tannin 6435e1ab8a - bugfix: couldn't change from "qt" styles back to regular style 2015-05-23 17:18:04 +02:00
Tannin dbfa9b89d1 some fixes to the dracula qss 2015-05-18 20:42:07 +02:00
Tannin fe5c4255c8 bugfix: previous fix for download name filter didn't work 2015-05-18 20:41:46 +02:00
Tannin ac8f6dbdec added theme inspired by JetBrains Dracula (created by Kojoley on github) 2015-05-17 14:39:01 +02:00
Tannin d2ab10ecff reduced number of mods for which update information is requested at once 2015-05-17 14:32:01 +02:00
Tannin 883f4d9894 bugfix: MO requested update information for mods without mod-id 2015-05-17 14:31:38 +02:00
Tannin d3e904e9ad - bugfix (not released): double click on mod didn't work until a mod was checked/unchecked once 2015-05-17 14:31:07 +02:00
Tannin e38592da97 extended plugin interface. Plugins can now activate/deactivate mods, install mods
suggesting a name and retrieve a list of all installed mods
2015-05-17 14:30:14 +02:00
Tannin 268d2ffe8b - some code cleanup and modernization trying to fix "dr memory" reports
(though they were almost certainly false positives)
- there is now a 50ms timeout on logging messages
- bugfix: leaked handles after directory searches
2015-05-17 14:03:01 +02:00
Tannin 9d3364f4da fixes to make MO compile with mingw (also fixes some warnings generated by mingw) 2015-05-16 18:44:07 +02:00
Tannin 9ea5086c4c slight cleanup regarding steam log-in settings 2015-05-12 20:34:05 +02:00
Tannin 4c1155a6ab Merge 2015-05-12 19:00:41 +02:00
Tannin 90365041f4 workaround to prevent repeated checking of mods with the mouse was interpreted
as double click
2015-05-12 18:56:44 +02:00
Tannin 183b571560 minor stuff 2015-05-11 21:41:00 +02:00
Tannin 0f1271dd99 - bugfix: moving a mod didn't properly update conflict highlighting 2015-05-11 21:40:35 +02:00
Tannin dbdc2538f9 bugfix: upon closing the profiles dialog, the profile was changed to the
top-most profile and back
2015-05-11 21:39:56 +02:00
Tannin 5a908442d6 dropping an url on the download widget now attempts to download the url 2015-05-11 21:37:12 +02:00
Tannin 328244692b better type safety in accessing tool plugins 2015-05-11 18:05:01 +02:00
Tannin f32b4c3ce1 - language list in settings no longer contains english twice
- language names in settings are now in the native language
2015-05-10 16:01:07 +02:00
Tannin 83a896d0a9 - bugfix: case conversion could produce different local-dependent results
between the time the vfs lookup map is set up and later when querying it.
2015-05-10 16:00:15 +02:00
Tannin 209fe5cab5 esp list refresh is now delayed if the directory-structure is being updated. This
may have been causing the lists to be cleared.
2015-05-10 15:45:27 +02:00
Tom Tanner cd68c9d53c Merge from master 2015-05-10 12:35:52 +01:00
Tannin 65b64d111b Merge with branch1.2 2015-05-10 11:24:25 +02:00
Tannin 73fa7045b6 missed a file when dropping redundant report.h (changeset a2d809870347) 2015-05-10 11:22:50 +02:00
Tannin a25d889e78 - bugfix: shortcuts specifying a profile didn't work 2015-05-10 11:22:10 +02:00
Tannin 3680e37d39 Merge 2015-05-09 21:46:40 +02:00
Tannin abba182b1b dropped redundant report.h/report.cpp 2015-05-09 21:44:19 +02:00
Tom Tanner ffb470a380 Add in a tab to allow saving of steam username and password. 2015-05-09 18:10:38 +01:00
Tom Tanner 1403d51a82 Fix mod organiser not picking up stuff from a blank profile 2015-05-09 11:41:39 +01:00
Tom Tanner 89eabf3c4d added a 'yes to all' shellMove and made the drag-and-drop code use shellMove/shellCopy 2015-05-03 09:51:01 +01:00
Tom Tanner 26368df7a6 Retain 'backup' switch state on mod overwrite options 2015-05-03 08:43:12 +01:00
Tom Tanner 5f399f6a39 Another removal of redundant commentary 2015-04-29 21:18:43 +01:00
Tom Tanner c909f8ce4f remove redundant comments/code from drag'n'drop stuff 2015-04-29 21:14:46 +01:00
Tom Tanner ce925bc73e Allows drag-and-drop into the download tab 2015-04-26 09:44:57 +01:00
Tom Tanner 927504cbd9 1) reintroduce the report error when unpacking archives to avoid the error
message disappearing entirely
2) Allow very long filenames to be used when unpacking
2015-04-25 13:04:14 +01:00
Tom Tanner a44cb011a5 Small fixup to passing of argc/argv. 2015-04-19 21:10:32 +01:00
Tom Tanner 11e67d7a6c More fixing up of scons. Give up entirely with debugging python proxy 2015-04-19 21:10:03 +01:00
Tannin 0b58653e2d bugfix: filter on download list always filtered by file name, not by displayed name 2015-04-19 20:33:46 +02:00
Tannin e47e04dcf2 refactorings 2015-04-12 15:54:14 +02:00
Tannin fd584f8038 - operations not possible during directory refresh can now be delayed unit after
the refresh.
- will now rewrite the plugin list(s) immediately after running external
application
- changes missing from changeset 9f522a324341
2015-04-12 15:52:22 +02:00
Tannin 942bd04e5e bugfix: batch-activation/deactivation used non-persistent indices which seems to
be a problem nowadays (probably related to Qt5?)
2015-04-12 15:48:50 +02:00
Tannin 4b6e8ac51b safe file writer now ignores the hash if the file doesn't exist 2015-04-12 15:45:34 +02:00
Tannin 8c2e88b9c9 MO will no longer use the load order from an empty loadorder.txt because the
file should at least have a header.
2015-04-12 15:43:46 +02:00
Tannin ef39699d69 missing changes that belong into changeset 5eaf1e439403 2015-04-12 15:42:45 +02:00
Tannin 55eacfbd80 bugfix: save-dir monitoring is now disabled while editing a profile so that,
in case of local save games the active profile path isn't locked
2015-04-12 15:41:17 +02:00
Tannin 056acd03cd bugfix: when using a user-selected game path that path wasn't use for
auto-detecting executables
2015-04-12 15:39:16 +02:00
Tannin 9eb1a303a7 cosmetic changes and increased version number 2015-04-08 18:54:09 +02:00
Tannin a44c4bbdb2 enabling/disabling a plugin should now immediately cause a check for problems 2015-04-08 18:53:43 +02:00
Tannin 8cca47454a if overwriting the ModOrganizer.ini file fails, another attempt to store
settings is made, writing to the ini file directly.
2015-04-08 18:52:43 +02:00
Tannin a818688d3f bugfix: save games didn't show up in the transfer saves dialog 2015-04-08 18:30:22 +02:00
Tannin feaad36168 download directory, cache directory and mod directory are now only stored in the
ini file when they differ from the default. this should make moving MO easier
2015-04-08 18:30:02 +02:00
Tannin a6f7480ab9 bugfix: tutorial broken 2015-04-08 18:09:36 +02:00
Tannin 1ba140e0fa avoid saving plugin list during directory updates as they may be invalid 2015-03-31 18:32:46 +02:00
Tannin eed3664302 a signal is now emitted when the state (checked/unchecked) of a plugin changes 2015-03-31 18:31:54 +02:00
Tannin 35eb41daf9 will now avoid writing plugin lists if they would be empty (as its probably a bug) 2015-03-31 18:31:21 +02:00
Tannin 38eb03c306 bugfix: modlist automatically scrolled to the top after closing context menu 2015-03-31 17:48:07 +02:00
Tannin 6ff201385c bugfix: re-enabled alignment of content icons 2015-03-31 17:43:36 +02:00
Tom Tanner 0269fc36e6 If there are no Missing ESPs, say "None" rather than leaving an empty list. 2015-03-29 18:01:56 +01:00
Tom Tanner fa5d3cdaf3 Update readme with information about getting python proxy to work in a debug build. 2015-03-29 18:01:12 +01:00
Tom Tanner ab28c9631a Merge 2015-03-28 10:54:02 +00:00
Tom Tanner 04b6f2e475 Added json file dependency into moc scanner 2015-03-28 10:11:09 +00:00
Tannin 0d5197a3c8 Merge in changes by Tom Tanner 2015-03-27 18:24:37 +01:00
Tannin 8eb63a068c cleanup 2015-03-27 16:37:31 +01:00
Tannin 4d4a7713fb bugfix: not all icons showed up 2015-03-27 16:36:55 +01:00
Tannin 4161696527 bugfix: MO didn't use all parameters of preconfigured executables 2015-03-27 16:33:32 +01:00
Tannin 73eea93abb bugfix: "edit executables" dialog didn't actually save a modified executable when
confirming the save-on-close dialog
2015-03-27 16:31:26 +01:00
Tom Tanner db7c6e6006 Add in all the necessary stuff for scons 2015-03-25 22:35:53 +00:00
Tom Tanner 266a696429 Merge 2015-03-22 10:51:43 +00:00
Tom Tanner ea520baf4e Fix a meory leak with modules that error during loading
More Sconscript stuff
2015-03-22 10:49:15 +00:00
Tannin 07b8896f92 updated build instructions, version number, packaging scripts 2015-03-21 16:39:54 +01:00
Tannin 4a2e4652f4 - after closing the overwrite dialog the in-memory directory structure is updated again
- bugfix: crash on creating shortcuts
2015-03-21 16:37:49 +01:00
Tannin a9e1d44a2a changed the way the right-most column in the mod list is stretched to a way that is independent of the mod ordering 2015-03-21 16:35:10 +01:00
Tannin b210a2f083 MO will again remove obsolete files on startup 2015-03-21 16:31:54 +01:00
Tannin cbbc2d191d bugfix: crash when entering search terms for the mod list 2015-03-21 16:30:43 +01:00
Tannin cad7ed47be bugfix: sync-overwrite dialog didn't open 2015-03-21 16:29:55 +01:00
Tom Tanner a9cec9e5e2 Fixed Scons build for existing bits.
Changed pynedit.pro to fetch from 'standard' install location
Changed saveas code to use organizer report rather than uibase - this way it's
not dependant on the vagaries of the include path, and works the same as the
rest of the organiser directory
2015-03-20 10:34:30 +00:00
Tom Tanner 771dde7771 Merge 2015-03-19 16:48:21 +00:00
Tannin c6758e47c8 minor stuff (slight changes to the visual style, code refactorings, version increment) 2015-03-18 19:41:46 +01:00
Tannin 4a99cfe6ad bugfix: crash related to bad timing when filtering the mod list 2015-03-18 19:41:11 +01:00
Tannin f134c7ab4c - plugin list can now be sorted by flags
- sorting by mod index now puts the disabled mods to one end of the list
2015-03-18 19:40:12 +01:00
Tannin 03b029c613 - avoiding unnecessary meta.ini saves when checking mods for updates 2015-03-18 19:35:49 +01:00
Tom Tanner a1c8e529f7 Merge with branch1.2 2015-03-18 17:40:29 +00:00
Tom Tanner 39dd67f22f Refactoring and cleanup. 2015-03-18 14:16:04 +00:00
Tom Tanner de79d15980 Every plugin now built 2015-03-17 16:31:15 +00:00
Tom Tanner 16beb6f9b1 Abortive attempt to use official 'qt' tool
This resulted in some small cleanups but not much else
2015-03-16 10:14:00 +00:00
Tom Tanner a00a9a5bba Cleanup 2015-03-16 08:35:14 +00:00
Tom Tanner 4b1059f5a1 Building cleanly without patched versions. Doesn't do the plugins yet 2015-03-15 16:26:41 +00:00
Tom Tanner 2628dd3fb8 Yet more scons stuff. Now builds everything but the plugins, and installs all the dlls 2015-03-15 10:58:21 +00:00
Tom Tanner 2d20185e77 More sconscripts set up 2015-03-14 14:59:52 +00:00
Tannin 7a1ae9b0f1 Merge with branch1.2 2015-03-09 12:34:34 +01:00
Tannin d45ebf1348 added LocalPaths to ignore list 2015-03-09 12:33:37 +01:00
Tannin db2954e8eb minor cleanup 2015-03-09 12:22:13 +01:00
Tannin 8c0756bd9d - bugfix: changing the highlight in the modlist didn't always prompt an immediate update of overwrite markers 2015-03-09 12:18:25 +01:00
Tannin 026b97835e - when activating/deactivating a mod the contained esps are only activated/deactivated if no other
active mod provides the same plugins
2015-03-09 12:17:57 +01:00
Tom Tanner 97d6f7ce01 First attempt at using scons to build 2015-03-08 13:20:56 +00:00
Tom Tanner d80cdf726e Small typo fix 2015-03-01 13:16:27 +00:00
Thomas Tanner 9c8f0a2041 revert 2015-03-01 12:52:57 +00:00
Thomas Tanner 1b16897228 test 2015-03-01 12:24:04 +00:00
Thomas Tanner 4bd5df5ab4 Change readme to include sip install 2015-03-01 11:48:55 +00:00
Tannin d08e0ebab0 - some fixes to how file changes are signaled and delayed 2015-03-01 11:28:49 +01:00
Tannin 6479f972dc tons of code cleanup and minor fixes to harden the code (mostly suggestions from static code analysis) 2015-02-25 18:38:01 +01:00
Tannin e01ab940b0 bugfix: tooltips in dark style were too transparent 2015-02-25 18:11:31 +01:00
Tannin e9c937f909 bugfix: plugin list wasn't user-sortable 2015-02-25 18:03:26 +01:00
Tannin d87661a66f sorting by content now produces a more useful list 2015-02-25 18:02:39 +01:00
Tannin 3c030a28e9 bugfix: filtering by meta-categories (checked/unchecked, update available) didn't work 2015-02-25 18:01:49 +01:00
Tannin 6b4cb9ff4c bugfix: crash when trying to delete mods (issue #1016) 2015-02-25 18:00:46 +01:00
Tannin cbe84327c6 - added content icon for BSAs
- improved display of content icons (better scaling and some borders)
- bugfix: contains changes missing from changeset bc6b6430017b
2015-02-25 17:57:38 +01:00
Tannin ce228e512c - No longer setting the dll directory as a windows search folder for dlls because
that appears to remove another search folder AND the configured seach folders seem
to be inherited by processes started from MO (both confirmed only in windows 8.1)
2015-02-25 17:53:48 +01:00
Tannin 1579e4dcb0 - bugfix: detection of support for direct loading load mechanism was broken
- proxy dll load mechanism disabled since it seems to have been bugged for ages
and nobody noticed so it appears to be unneeded
2015-02-25 17:50:57 +01:00
Tannin 671d96383b icon delegates now use a pixmap cache to improve rendering performance 2015-02-25 17:48:37 +01:00
Tannin bdfd41a862 cleanup 2015-01-29 19:30:10 +01:00
Tannin 8aa6dc4c7d extended the game-plugin interface 2015-01-29 19:26:42 +01:00
Tannin c3a95bdef1 Merge with branch1.2 2015-01-24 19:34:12 +01:00
Tannin f756aede08 updated version number 2015-01-24 19:16:42 +01:00
Tannin 855e8bd737 fixed logging in case of changes and errors in the mod list 2015-01-22 19:55:41 +01:00
Tannin b0fe23a711 bugfix: When displaying the list of save games to delete the list is capped to 10 entries, otherwise the window may extend beyond the screen 2015-01-22 19:50:51 +01:00
Tannin c2edbcf90f bugfix: initialization order was wrong and so kept foreign language systems from correctly loading mod order if Unmanaged is translated
"Unmanaged" is no longer translatable as its used internally as an identifier
2015-01-22 19:47:18 +01:00
Tannin 2400e2c99e cleanup (mostly removing unused includes) 2015-01-22 19:44:38 +01:00
Tannin af1e3d0187 removed some obsolete code 2015-01-22 19:38:14 +01:00
Tannin 9ab9c072fc Added tag release v1.2.17 for changeset 2078ce371648 2015-01-22 19:02:47 +01:00
Tannin 30c016567f bugfix: first attempt at discovering java binary always failed 2015-01-11 11:28:02 +01:00
Tannin da27ec45da increased version number and minor stuff 2015-01-11 11:17:26 +01:00
Tannin 1321564a92 bugfix: priority couldn't be changed directly in plugin list (this change was apparently not copied to the branch) 2015-01-11 11:17:04 +01:00
Tannin 4d9795527d different way to check for file existence 2015-01-11 11:16:04 +01:00
Tannin 9f09c30e08 bugfix: translations for some plugins weren't loaded 2015-01-11 11:14:58 +01:00
Tannin caf31e72cc bugfix: executables with extensions other than .com, .cmd or .bat were started with cmd.exe (since 1.2.16) 2015-01-11 11:14:10 +01:00
Tannin f2ab6825bf Added tag release v1.2.16 for changeset a837623ea911 2015-01-11 11:10:21 +01:00
Tannin 25348238b2 bugfix: translations for configurator plugin weren't named correctly 2015-01-08 20:07:58 +01:00
Tannin 8b3a42bd17 bugfix: translations for plugins were not used 2015-01-08 20:07:32 +01:00
Tannin 6f1162c23f bugfix: showEvent contains initializion code that should be run only on first start of the application 2015-01-08 20:06:56 +01:00
Tannin 2b21463514 - download servers that haven't been available for over a month are now purged from the known servers list
- bugfix: encoding detection for fomod xmls could incorrectly interpret files as utf16 encoded
- bugfix: hashing algorithm for bsa files was wrong
- bugfix: nxmhandler reported non-issues as errors
- bugfix: nxmhandler tried to apply chrome fix on every start
- bugfix: "not endorsed" icon displayed for non-nexus mods
- bugfix: when drag&dropping within the overwrite dialog the file might still get moved to a mod (and probably not the intended one)
- bugfix: dropping files from overwrite on the modlist was refused when not sorting by priority (only in 1.2.15)
- bugfix: unmanaged mods couldn't be reordered (only in 1.2.15)
2015-01-07 23:13:40 +01:00
Tannin d20a26e0eb Added tag release v1.2.15 for changeset d1946676ce17 2015-01-07 23:09:58 +01:00
Tannin 9edc39633b - bugfixes
- moved more functionality to game-plugins
- further decoupled management functionality from the UI
- created another "tutorial" which is only a single page with relevant parts of
  the ui highlighted with info as tooltips
2015-01-06 19:31:53 +01:00
Tannin b415db619e Merge 2015-01-04 10:33:37 +01:00
Tannin bd8267993d - fixes after merge 2015-01-04 10:13:12 +01:00
Tannin f5c56efeb3 re-integrated changes missing from the merge 2015-01-03 16:18:38 +01:00
Tannin a16e25380f Merge with branch1.2 2015-01-03 15:58:52 +01:00
Tannin 459816ab71 updated packaging and build scripts 2015-01-03 15:09:25 +01:00
Tannin 9b5c238938 - repository info is now stored with the mod 2015-01-03 12:35:25 +01:00
Tannin e7b6a7cbdd - bugfix: no exec info returned for .exe
- bugfix: wide string conversion functions seem to have failed for empty string
2015-01-03 12:34:26 +01:00
Tannin ab925e1e7c added/updated translation files 2014-12-20 17:25:12 +01:00
Tannin 7bfb48d6ab cleanup 2014-12-20 14:45:08 +01:00
Tannin 88817c7f3b - drag&drop in the plugin list now also prompts a message instead of being impossible 2014-12-20 14:44:40 +01:00
Tannin ee0041ba18 - bugfix: file extensions when adding executables were treated case sensitive
- exe files are now started directly, not through cmd
2014-12-20 14:43:22 +01:00
Tannin 306ba78b0f bugfix: when merging mods with a custom installer, various ini settings (incl. category) were reset 2014-12-20 14:42:43 +01:00
Tannin e33406b4b5 endorsing is now only offered for mods with a valid nexus id 2014-12-20 14:42:00 +01:00
Tannin a5906f1044 workaround to prevent executables dialog from auto-selecting the top-most executable 2014-12-20 14:41:28 +01:00
Tannin ebfeb2fbf9 - mod-list can now be re-ordered with drag&drop while grouping is active
- drag&drop is not disabled when ordering by other columns than priority. MO will notify using messagedialog that it's impossible instead.
2014-12-14 18:25:26 +01:00
Tannin f666e3d835 when reinstalling a mod the existing mods name is used by default 2014-12-14 16:32:57 +01:00
Tannin 003cb6dec5 if a shortcut-started application is the same binary as a configured one, the corresponding steam app id is used 2014-12-14 16:32:30 +01:00
Tannin 7fb7207ac7 custom installers can now set the installation file (and the ncc installer now does) 2014-12-14 16:30:23 +01:00
Tannin 64eced4614 - NCC installer can now discover files in other mods (thanks Reunion!) and knows the script extender version 2014-12-13 16:47:11 +01:00
Tannin 8634b97bea all executables can now be repositioned, including auto-detected ones 2014-12-09 20:02:28 +01:00
Tannin 116a36b943 searching for steam process will no longer fail when more than 1024 processes are running (and steam is past the 1024th) 2014-12-09 18:35:32 +01:00
Tannin 479fdb3dcd removed use of ModInfo::internalName 2014-12-09 18:34:09 +01:00
Tannin acf35da699 now stored installed files with each mod 2014-12-09 18:09:11 +01:00
Tannin 6eb05396e4 bugfix: hitting the fix button in the diagnosis plugin could crash MO if the
line didn't have mouse focus
2014-12-04 19:30:07 +01:00
Tannin 9fcf34fec7 bugfix: ini tweaks were not applied in priority order 2014-12-04 19:27:55 +01:00
Tannin 6c1e63258c minor fixes 2014-12-04 19:25:07 +01:00
Tannin 226993eece - added error handling when a file can't be deleted from vfs
- minor bugfixes
2014-12-01 18:44:37 +01:00
Tannin b2d04d70fc accidentally removed loot_cli from build 2014-11-28 11:51:52 +01:00
Tannin 99de80e722 replaced all uses of NULL with nullptr
fixed a few placed where NULL was used as a number or boolean
2014-11-28 11:19:20 +01:00
Tannin 78f628e0af cleanup und bugfixes after refactoring 2014-11-28 11:06:28 +01:00
Tannin 78da5fc37f more bugfixes 2014-11-26 20:22:00 +01:00
Tannin ffef339e2b several bugfixes from the bugfix-wc that I forgot to backport 2014-11-26 20:21:33 +01:00
Tannin 4fa700bb55 undid some changes that accidentally made it to this branch 2014-11-26 20:19:07 +01:00
Tannin 45a46778fb Merge 2014-11-21 15:07:31 +01:00
Tannin cfb863f6c3 qt5 compatibility 2014-11-21 15:01:47 +01:00
Tannin f2f9e11fdd - started on a refactoring moving functionality out of the MainWindow class
- started on support for game-plugins
2014-11-21 14:45:30 +01:00
Tannin 9907437d93 - fixed manifest for qt5
- download messages can now be sent from different user accounts
2014-11-14 23:33:49 +01:00
Tannin d23466f036 - fixed manifest for qt5
- download messages can now be sent from different user accounts
2014-11-14 23:33:49 +01:00
Tannin 3b7a468f73 - updated staging script to use qt5 and to fetch translations from transifex
- removed call to function unavailable in Windows XP
2014-11-11 23:48:22 +01:00
Tannin 53896e66f1 - updated staging script to use qt5 and to fetch translations from transifex
- removed call to function unavailable in Windows XP
2014-11-11 23:48:22 +01:00
Tannin efc77930ad Merge 2014-11-11 21:52:50 +01:00
Tannin 01265e9b03 - re-enabled use of img-tags in bbcode converter
- addded a workaround for cases where, after a MO update, the stored modlist layout has no size for new columns
- using a webview again for the nexus view of the modinfo dialog
2014-11-11 21:46:16 +01:00
Tannin 9494938534 Merge 2014-11-11 21:42:18 +01:00
Tannin 0b14949d0e some work on installer scripts 2014-11-11 21:41:22 +01:00
Tannin 2237d7c103 - re-enabled use of img-tags in bbcode converter
- addded a workaround for cases where, after a MO update, the stored modlist layout has no size for new columns
- using a webview again for the nexus view of the modinfo dialog
2014-11-11 21:46:16 +01:00
Tannin 7c1273b246 some work on installer scripts 2014-11-11 21:41:22 +01:00
Tannin 9ab7bada1c - bsa parser will now cancel in case of a read error. Before, when attempting to parse a broken bsa it could take forever and continuously allocate memory
- better error message when bsa parsing fails
- slightly better support for font colors in bbcode converter
- configurator now also uses pyqt5
- bugfix: bsa hashing function converted backslashes to slashes instead of the other way around. hash calculation is still often wrong on folder names...
2014-11-09 14:01:48 +01:00
Tannin 1eea3bd90e - bsa parser will now cancel in case of a read error. Before, when attempting to parse a broken bsa it could take forever and continuously allocate memory
- better error message when bsa parsing fails
- slightly better support for font colors in bbcode converter
- configurator now also uses pyqt5
- bugfix: bsa hashing function converted backslashes to slashes instead of the other way around. hash calculation is still often wrong on folder names...
2014-11-09 14:01:48 +01:00
Tannin 10cc566081 Merge 2014-11-06 00:07:06 +01:00
Tannin 53d1f3e00e - workaround for GetModuleFileName-calls that supply wrong buffer size
- removed obsoleted calls to GetVersionEx
- bugfix: download urls were potentially not encoded correctly
- bugfixes to tls-based recursion protection
2014-11-06 00:03:44 +01:00
Tannin 20db939501 - workaround for GetModuleFileName-calls that supply wrong buffer size
- removed obsoleted calls to GetVersionEx
- bugfix: download urls were potentially not encoded correctly
- bugfixes to tls-based recursion protection
2014-11-06 00:03:44 +01:00
Tannin df0bd3331a - archive library can now query for password during extraction (seems to be necessary for rars)
- process blacklist is now taken from a file if there is one, not hardcoded
- removed workaround for the papyrus compiler
- updated loot client to work with the actual api
- loot client now links with loot32.dll at runtime
- loot client now produces its output in a (json-)file which includes all plugin messages and dirty flags
- fomod installer now tries to parse the xml with several encodings
- fomod installer will now display a diagnostics warning if the jpg imageformat isn't supported
- base preview plugin now tries to be a bit smarter about resizing images to fit the screen
- bugfix: fomod installer no longer tries to open an image even after detecting its invalid
- bugfix: potential null-pointer dereferentiation in getprivateprofile... hooks
- bugfix: potential null-pointer dereferentiation in download manager
- bugfix: internal origin name showed up in one more place
- bugfix: ToString function produced strings that were one (zero-termination-)character too long
2014-11-05 23:48:06 +01:00
Tannin db0e278817 - moved the hook-recursion-protection to tls
- some code cleanup and consolidation
- hook.dll will now report all of its own exceptions
- some more logging during startup
- changed the way urls are encoded for download requests
- now displaying (one of the) process name(s) while waiting for a program to end
- bugfix: spawned processes were forced to leave the job
2014-09-29 20:35:35 +02:00
Tannin bfa6c9ab1e - moved the hook-recursion-protection to tls
- some code cleanup and consolidation
- hook.dll will now report all of its own exceptions
- some more logging during startup
- changed the way urls are encoded for download requests
- now displaying (one of the) process name(s) while waiting for a program to end
- bugfix: spawned processes were forced to leave the job
2014-09-29 20:35:35 +02:00
Tannin 7a7c464b18 - archive library can now query for password during extraction (seems to be necessary for rars)
- process blacklist is now taken from a file if there is one, not hardcoded
- removed workaround for the papyrus compiler
- updated loot client to work with the actual api
- loot client now links with loot32.dll at runtime
- loot client now produces its output in a (json-)file which includes all plugin messages and dirty flags
- fomod installer now tries to parse the xml with several encodings
- fomod installer will now display a diagnostics warning if the jpg imageformat isn't supported
- base preview plugin now tries to be a bit smarter about resizing images to fit the screen
- bugfix: fomod installer no longer tries to open an image even after detecting its invalid
- bugfix: potential null-pointer dereferentiation in getprivateprofile... hooks
- bugfix: potential null-pointer dereferentiation in download manager
- bugfix: internal origin name showed up in one more place
- bugfix: ToString function produced strings that were one (zero-termination-)character too long
2014-11-05 23:48:06 +01:00
Tannin 2ce135e0bf updated minimum nmm compatible version number 2014-09-27 19:18:33 +02:00
Tannin 93bd29c13d - several style fixes suggested by static analysis
- will now support up to 4 levels of version numbers (major.minor.subminor.subsubminor
2014-09-24 19:51:51 +02:00
Tannin a62ecc5bf1 - several style fixes suggested by static analysis
- will now support up to 4 levels of version numbers (major.minor.subminor.subsubminor
2014-09-24 19:51:51 +02:00
Tannin 637ce6bcc1 - removed a use of wostringstream which seems to have been involved in a bug. Still not sure how
- rewrote widechar <-> multibyte conversion functions to handle arbitrary string lengths
2014-09-19 22:01:37 +02:00
Tannin 5f1022917b - removed a use of wostringstream which seems to have been involved in a bug. Still not sure how
- rewrote widechar <-> multibyte conversion functions to handle arbitrary string lengths
2014-09-19 22:01:37 +02:00
Tannin d3d7e30286 non-mo mods now have a constructed name that cannot conflict with a regular mod 2014-09-10 20:44:39 +02:00
Tannin b77dcb2206 non-mo mods now have a constructed name that cannot conflict with a regular mod 2014-09-10 20:44:39 +02:00
Tannin 7d27138086 when MO fails to overwrite its ini file it tries another method using qt functions 2014-09-10 20:43:33 +02:00
Tannin 430048d201 when MO fails to overwrite its ini file it tries another method using qt functions 2014-09-10 20:43:33 +02:00
Tannin 19cb2d4076 plugins can now query the list of masters for a plugin 2014-09-10 20:37:17 +02:00
Tannin 4c42a6fbf1 plugins can now query the list of masters for a plugin 2014-09-10 20:37:17 +02:00
Tannin 5aa5c90d39 profiles are now created with an (empty) archives.txt 2014-09-10 20:35:57 +02:00
Tannin 243b59c64c profiles are now created with an (empty) archives.txt 2014-09-10 20:35:57 +02:00
Tannin 12a57d7f6d - descriptions for plugin settings are now displayed 2014-09-10 20:34:31 +02:00
Tannin b0a4748da5 - descriptions for plugin settings are now displayed 2014-09-10 20:34:31 +02:00
Tannin 482f13a50b - re-enabled building of loot_cli and started developing against the new api
- extended set of default categories
- more tolerand bbcode parser
- added a few colors for the bbcode parser
- more fixes to qt5 compatibility
- started work on ability to unloading (and thus re-loading) of plugins
- names of plugins are no longer localizable (because those names are also used to store settings)
- added settings to disable individual diagnosis settings
- path of dependencies is now configured in a .pri file instead of environment variablees
- bugfix: if the modid-input is canceled, the id was saved as -1 and wasn't re-requested from the user
- bugfix: moving files with the SHFileOperation-Api didn't update the vfs correctly (still not perfect but better)
- bugfix: attempt to remove the deleter-file seems to have caused error messages for some users
- bugfix: fixed a couple of cases that might have caused the tutorial to hang
2014-09-08 20:37:23 +02:00
Tannin 9daeb9479b - re-enabled building of loot_cli and started developing against the new api
- extended set of default categories
- more tolerand bbcode parser
- added a few colors for the bbcode parser
- more fixes to qt5 compatibility
- started work on ability to unloading (and thus re-loading) of plugins
- names of plugins are no longer localizable (because those names are also used to store settings)
- added settings to disable individual diagnosis settings
- path of dependencies is now configured in a .pri file instead of environment variablees
- bugfix: if the modid-input is canceled, the id was saved as -1 and wasn't re-requested from the user
- bugfix: moving files with the SHFileOperation-Api didn't update the vfs correctly (still not perfect but better)
- bugfix: attempt to remove the deleter-file seems to have caused error messages for some users
- bugfix: fixed a couple of cases that might have caused the tutorial to hang
2014-09-08 20:37:23 +02:00
Tannin f481a7aae3 Merge 2014-08-28 18:21:51 +02:00
Tannin 15b9927cef minor fixes 2014-08-28 18:20:40 +02:00
Tannin cc42e76f54 - bugfix: MO would report invalid index errors when downloading while download list is sorted by filetime descending 2014-08-25 21:07:29 +02:00
Tannin 07bae15d7c - bugfix: MO would report invalid index errors when downloading while download list is sorted by filetime descending 2014-08-25 21:07:29 +02:00
Tannin 84598cbcbf - processes spawned from MO are now themselves allowed to break away from the job.
Without this the CEF (chromium embedded framework) seems to fail
- bugfix: Fixed an error message when installing a fomod wrapped in an archive
- bugfix: sorting plugins had no effect on non-skyrim games
- bugfix: fomod parser quit installing filelists after one file
- bugfix: function retrieving local appdata path read wrong directory
2014-08-25 20:12:25 +02:00
Tannin 778160cf0d - processes spawned from MO are now themselves allowed to break away from the job.
Without this the CEF (chromium embedded framework) seems to fail
- bugfix: Fixed an error message when installing a fomod wrapped in an archive
- bugfix: sorting plugins had no effect on non-skyrim games
- bugfix: fomod parser quit installing filelists after one file
- bugfix: function retrieving local appdata path read wrong directory
2014-08-25 20:12:25 +02:00
Tannin 02973be652 - bugfix: mods were specified by internal name in archive and data tab 2014-08-19 18:44:35 +02:00
Tannin 14106436ca - bugfix: mods were specified by internal name in archive and data tab 2014-08-19 18:44:35 +02:00
Tannin fc2591e028 - new plugin-api to determine the origin of a file 2014-08-18 23:01:25 +02:00
Tannin 4f509e365e - new plugin-api to determine the origin of a file 2014-08-18 23:01:25 +02:00
Tannin 9a97098cc3 - bugfix: text files weren't displayed in the mod-info-dialog 2014-08-18 23:01:02 +02:00
Tannin 4ebc8dc014 - bugfix: text files weren't displayed in the mod-info-dialog 2014-08-18 23:01:02 +02:00
Tannin 4b1e6683d2 - can now filter by mod content
- all files/directories that require write access can now be placed in AppData instead of the MO directory
2014-08-18 23:00:25 +02:00
Tannin 5d3c1f34f4 - login package now also uses a "proper" user-agent 2014-08-18 22:57:00 +02:00
Tannin 06701856f8 - login package now also uses a "proper" user-agent 2014-08-18 22:57:00 +02:00
Tannin 5d4a55c3a6 - performance optimizations for detection of file changes in mod directories
- added a workaround for download-link handling in chrome
- MO will now create a profile even if the game-launcher has never been run
- bugfix: files weren't cleanly removed from vfs file register
2014-08-01 12:10:49 +02:00
Tannin 844ba99892 - performance optimizations for detection of file changes in mod directories
- added a workaround for download-link handling in chrome
- MO will now create a profile even if the game-launcher has never been run
- bugfix: files weren't cleanly removed from vfs file register
2014-08-01 12:10:49 +02:00
Tannin 470b6ed0bf - browser dialog now has a hidden url-field (for testing only)
- loot_cli is no longer part of this project. I will probably create a fork of loot that allows command-line usage instead
- loot integration now works with such a modified loot version
- integrated loot will now also integrate incompatibility messages in the MO UI
- overwrite-markers are now updated as the list order is changed
- fnis checker will now always allow the user to ignore fnis errors
- plugin interface now has a function to wait for handles returned from startApplication (which can be job or process handles)
- bugfix: non-mo mods sharing the name with regular mods now have a different internal name
- bugfix: using hotkeys the vanilla game-plugins could be moved
2014-07-27 18:34:32 +02:00
Tannin 715623e790 - browser dialog now has a hidden url-field (for testing only)
- loot_cli is no longer part of this project. I will probably create a fork of loot that allows command-line usage instead
- loot integration now works with such a modified loot version
- integrated loot will now also integrate incompatibility messages in the MO UI
- overwrite-markers are now updated as the list order is changed
- fnis checker will now always allow the user to ignore fnis errors
- plugin interface now has a function to wait for handles returned from startApplication (which can be job or process handles)
- bugfix: non-mo mods sharing the name with regular mods now have a different internal name
- bugfix: using hotkeys the vanilla game-plugins could be moved
2014-07-27 18:34:32 +02:00
Tannin 0050cb0740 - download-list will no longer show a file as having incomplete data if there is no file version
- added a new mod column with icons displaying the content of the mod
- MO now differentiates between mods using an internal name that disambiguates between foreign and regular mods
2014-07-21 19:14:24 +02:00
Tannin 9879aae575 - download-list will no longer show a file as having incomplete data if there is no file version
- added a new mod column with icons displaying the content of the mod
- MO now differentiates between mods using an internal name that disambiguates between foreign and regular mods
2014-07-21 19:14:24 +02:00
Tannin f6ef5477e7 normalized eol style (all files should now have windows line endings) 2014-07-17 22:02:15 +02:00
Tannin cc9827cdda normalized eol style (all files should now have windows line endings) 2014-07-17 22:02:15 +02:00
Tannin e24f3fef77 - bugfix: broke qt4 compatibility in trying to support qt5
- bugfix: overwrite dialog displayed system drives if the overwrite directory didn't exist
- bugfix: ini tweak activation wasn't saved
2014-07-17 20:04:22 +02:00
Tannin 4e5a67fc06 - bugfix: broke qt4 compatibility in trying to support qt5
- bugfix: overwrite dialog displayed system drives if the overwrite directory didn't exist
- bugfix: ini tweak activation wasn't saved
2014-07-17 20:04:22 +02:00
Tannin 0a152ceadf Merge 2014-07-15 20:45:29 +02:00
Tannin 5718af3510 - Disabled compilation of loot_cli as the current loot version can't be compiled or linked against with vs 2010
- bugfix: some incompatibilities with non-skyrim games
- bugfix: incorrect handling of plurals in translateable strings
2014-07-15 20:37:10 +02:00
Tannin 434b6be69d merged changes by TheBloke 2014-07-15 17:48:43 +02:00
Tannin 67b0268e70 - qt 5 compatibility fixes
- detection for support of optimized find no longer depends on deprecated api
2014-07-15 17:31:44 +02:00
Tannin d412060d59 - qt 5 compatibility fixes
- detection for support of optimized find no longer depends on deprecated api
2014-07-15 17:31:44 +02:00
Tannin 84c66727bf - when highlighting a mod the overwritten and overwriting mods are now highlighted in the list
- when starting an external application MO now wraps the process in a job and waits on that instead. This way MO is not unlocked early when skyrim is started through skse
- mod info dialog no longer offers the esp tab for foreign mods because that caused confusion
- updated translation files
- download directory and mod directory are now created if necessary
- bugfix: staging script created unnecessary copies of translation files
- bugfix: potential invalid array access when trying to determine best mod order
- bugfix: deleter file wasn't removed after esp hiding was disabled
- bugfix: potential access to to un-initialized login reply
- bugfix: changed the initialization order to allow more ui controls to be localized
2014-07-14 21:22:44 +02:00
TheBloke bfb3385e49 deleteSavegame:
- Confirmation question shows number of saves to be deleted, when more than 1
2014-07-13 16:11:30 +01:00
TheBloke f59f52501c savegameList: more minor changes
- Context Menu - can do same job with fewer variables and assignments
- deleteSaveGame_clicked - const reference, not new value, in foreach loop
2014-07-13 15:45:19 +01:00
TheBloke 9b67e338e1 savegameList:
- Context menu bugfix, previous method of getting rows didn't work when items
 were selected in certain ways, e.g. Control-A
- Context menu now uses selectedIndexes(), which always works with all selections.
- Renamed enableFixMods to multipleSelected so same value can be used to decide
 whether to show single or plural version of "Delete save(s)"
2014-07-13 15:24:46 +01:00
TheBloke 7944bacfd9 savegameList: A few cleanups and minor code improvements
- Slight improvements over previous commits, using more appropriate methods and
 removing some unnecessary code. No functional changes.
2014-07-12 11:15:34 +01:00
TheBloke 1b4c07eb20 - savegameList: Improved save game handling from MainWindow
-- Save game deletion now does Recycle Bin delete (wishlist #675)
-- Save game deletion now also deletes .skse file (bug #687)
-- Can select and delete multiple save games (ExtendedSelection) (wishlist #675)
-- Uses new SaveGame->saveFiles() method to get filenames (eg .ess & .skse)
-- Context menu - "Fix Mods.." option only appears if 1 save is selected
-- Context menu - delete menu option labelled "Delete save" or "Delete saves",
 according to 1 or >1 saves selected.
-- Context menu - delete menu confirmation shows list of all selected saves
2014-07-11 01:46:42 +01:00
TheBloke d93df95dcf - Save game management: re-factored getting of filenames including .skse
-- New - SaveGame->saveFiles(), returns all filenames for save (eg. ess + skse)
-- Moved - SaveGameGameBryo->attachedFiles() to SaveGame->attachedFiles()
-- This allows the getting of save file names with just a SaveGame object, not
 a GameBryo object, which would do a full file read including plugins and image etc.
-- Therefore SaveGame is no longer abstract.

- Transfer Saves: re-factored to use new SaveGame->saveFiles() method
-- Removed - TransferSavesDialog->getFilesToProcess, now redundant as information
 is now provided by SaveGame class itself.
2014-07-11 01:29:33 +01:00
TheBloke 46a32ff3b7 Additional 'make install' step - install boost_python DLL to output(d)\DLLs
Extended the new ModOrganizer.pro 'make install' steps, to now also copy
  $$(BOOSTPATH)\stage\lib\boost_python-vc*-mt-1*.dll
 This is the final install step required, so that now ModOrganizer.exe works
  fully when a Qt-Creator "Run" step is performed.
 The wildcard should pick up the right version of the library regardless of
  MSVC compiler version used.

Updated Qt5 version check to the standardised greaterThan check.
2014-07-08 04:05:33 +01:00
TheBloke 0046d8710e Compilation dependency tracking enabled for organizer, hook, bsaExtractor, shared
Previously, qmake did not detect when code was changed in the static libraries
 So for example, changing code in shared/*.cpp and then Build, would not cause
  a re-link and re-deploy of ModOrganizer.exe.
 This has been fixed by adding PRE_TARGETDEPS references to each project that
  depend on static libraries provided by other sub-projects.
 These checks are conditional on debug|release, to point to the correct lib.

 List of currently configured static library dependency checks -
  organizer - mo_shared.lib, bsatk.lib
  hookdll - mo_shared.lib, bsatk.lib
  shared - bsatk.lib
  bsaExtractor - bsatk.lib

 I have tested to confirm that changing a shared file results in re-linking and
  re-deplomyent of both ModOrganizer.exe and hook.dll.

 Note that dependencies have not been configured for DLLs, as these are
  loaded dynamically and so recompilation is not required.
  But there could be an argument for configuring DLLs as dependencies too -
   as if you make a change in DLL code, you might want all clients of the DLL to
    be recompiled to check that they have not been broken by the changes?
  The downside of that would be extra re-compilation every time.
2014-07-08 04:01:24 +01:00
TheBloke 2b5748003d .pro files - formatting/consistency fixes
Many small formatting changes to the majority of .pro files
 Consistent style for Qt version checking, using greaterThan(QT_MAJOR_VERSION, 4)
  This seems safest, as would continue to work for a future Qt 6 etc.
  Note that this makes redudundant the commit before this one, to organizer.pro
 Consistent indenting
 Moved some file configuration sections to be together with related sections
 Moved some installation-related sections (e.g. OUTDIR/DSTDIR) to be at the bottom,
  immediately before the related POST_LINK install lines.
 Similarly, in some cases separated out CONFIG(debug,.. checks into separate
  LIB/INCLUDE sections (high in file) and installation directory sections (low
   in file)
2014-07-07 23:32:18 +01:00
TheBloke a49ed5c33c organizer.pro - tiny tweak to Qt5 version check
Directly checking QT_MAJOR_VERSION instead of pattern matching on QT_VERSION
2014-07-07 21:51:35 +01:00
TheBloke 62b0c07a93 Added 'make install' steps in ModOrganizer.pro -
Added config to install required libraries to output(d) directory
 If the user adds a Deploy step, that runs 'jom install', he will have the
  necessary libraries copied to output(d)\dlls
 These libraries are -
  7z.dll
  Qt4 Core Declarative Gui Network OpenGL Script Sql Svg Webkit Xml XmlPatterns
   Different set configured for Qt5, e.g. adding Widgets, Qml, Quick
   In a debug build, the 'd' DLLs will be used instead.
   Qt4 libraries are copied from system Qt4 installation directory.
 This allows the Qt-Creator user to hit "Run" in Qt-C and end up with a complete
  install, including all DLLs; no manual Exporer copying required.
 This therefore removes the need for post-build steps 10 & 11 in Readme.txt.
 Future thought - Update all current POST_LINK (x)copy steps to make install?

Fixed DESTDIR in ModOrganizer.pro
 It was pointing to source/output(d) before, should be ..\output(d)
 It was not used before so didn't matter, but is now referenced for install.
2014-07-07 21:39:27 +01:00
tomjobbins 05c58c8b3d Added tag release v1.2.9 for changeset d70ead9aea95 2014-07-07 20:23:52 +01:00
Tannin 9b33e0a970 Merge 2014-07-03 17:42:56 +02:00
Tannin b1ac479fb6 slight fixes to qt5 compatibility 2014-07-03 17:42:31 +02:00
Tannin 80b10107d9 - Disabled compilation of loot_cli as the current loot version can't be compiled or linked against with vs 2010
- bugfix: some incompatibilities with non-skyrim games
- bugfix: incorrect handling of plurals in translateable strings
2014-07-15 20:37:10 +02:00
TheBloke 1707941f6e deleteSavegame:
- Confirmation question shows number of saves to be deleted, when more than 1
2014-07-13 16:11:30 +01:00
TheBloke d0b75e8b25 savegameList: more minor changes
- Context Menu - can do same job with fewer variables and assignments
- deleteSaveGame_clicked - const reference, not new value, in foreach loop
2014-07-13 15:45:19 +01:00
TheBloke 4fc441b249 savegameList:
- Context menu bugfix, previous method of getting rows didn't work when items
 were selected in certain ways, e.g. Control-A
- Context menu now uses selectedIndexes(), which always works with all selections.
- Renamed enableFixMods to multipleSelected so same value can be used to decide
 whether to show single or plural version of "Delete save(s)"
2014-07-13 15:24:46 +01:00
TheBloke 581d065d7a savegameList: A few cleanups and minor code improvements
- Slight improvements over previous commits, using more appropriate methods and
 removing some unnecessary code. No functional changes.
2014-07-12 11:15:34 +01:00
TheBloke 5d2b5202af - savegameList: Improved save game handling from MainWindow
-- Save game deletion now does Recycle Bin delete (wishlist #675)
-- Save game deletion now also deletes .skse file (bug #687)
-- Can select and delete multiple save games (ExtendedSelection) (wishlist #675)
-- Uses new SaveGame->saveFiles() method to get filenames (eg .ess & .skse)
-- Context menu - "Fix Mods.." option only appears if 1 save is selected
-- Context menu - delete menu option labelled "Delete save" or "Delete saves",
 according to 1 or >1 saves selected.
-- Context menu - delete menu confirmation shows list of all selected saves
2014-07-11 01:46:42 +01:00
TheBloke 8044ef4f1d - Save game management: re-factored getting of filenames including .skse
-- New - SaveGame->saveFiles(), returns all filenames for save (eg. ess + skse)
-- Moved - SaveGameGameBryo->attachedFiles() to SaveGame->attachedFiles()
-- This allows the getting of save file names with just a SaveGame object, not
 a GameBryo object, which would do a full file read including plugins and image etc.
-- Therefore SaveGame is no longer abstract.

- Transfer Saves: re-factored to use new SaveGame->saveFiles() method
-- Removed - TransferSavesDialog->getFilesToProcess, now redundant as information
 is now provided by SaveGame class itself.
2014-07-11 01:29:33 +01:00
TheBloke 3d98491ebc Additional 'make install' step - install boost_python DLL to output(d)\DLLs
Extended the new ModOrganizer.pro 'make install' steps, to now also copy
  $$(BOOSTPATH)\stage\lib\boost_python-vc*-mt-1*.dll
 This is the final install step required, so that now ModOrganizer.exe works
  fully when a Qt-Creator "Run" step is performed.
 The wildcard should pick up the right version of the library regardless of
  MSVC compiler version used.

Updated Qt5 version check to the standardised greaterThan check.
2014-07-08 04:05:33 +01:00
TheBloke 923654961b Compilation dependency tracking enabled for organizer, hook, bsaExtractor, shared
Previously, qmake did not detect when code was changed in the static libraries
 So for example, changing code in shared/*.cpp and then Build, would not cause
  a re-link and re-deploy of ModOrganizer.exe.
 This has been fixed by adding PRE_TARGETDEPS references to each project that
  depend on static libraries provided by other sub-projects.
 These checks are conditional on debug|release, to point to the correct lib.

 List of currently configured static library dependency checks -
  organizer - mo_shared.lib, bsatk.lib
  hookdll - mo_shared.lib, bsatk.lib
  shared - bsatk.lib
  bsaExtractor - bsatk.lib

 I have tested to confirm that changing a shared file results in re-linking and
  re-deplomyent of both ModOrganizer.exe and hook.dll.

 Note that dependencies have not been configured for DLLs, as these are
  loaded dynamically and so recompilation is not required.
  But there could be an argument for configuring DLLs as dependencies too -
   as if you make a change in DLL code, you might want all clients of the DLL to
    be recompiled to check that they have not been broken by the changes?
  The downside of that would be extra re-compilation every time.
2014-07-08 04:01:24 +01:00
TheBloke 76c861ed12 .pro files - formatting/consistency fixes
Many small formatting changes to the majority of .pro files
 Consistent style for Qt version checking, using greaterThan(QT_MAJOR_VERSION, 4)
  This seems safest, as would continue to work for a future Qt 6 etc.
  Note that this makes redudundant the commit before this one, to organizer.pro
 Consistent indenting
 Moved some file configuration sections to be together with related sections
 Moved some installation-related sections (e.g. OUTDIR/DSTDIR) to be at the bottom,
  immediately before the related POST_LINK install lines.
 Similarly, in some cases separated out CONFIG(debug,.. checks into separate
  LIB/INCLUDE sections (high in file) and installation directory sections (low
   in file)
2014-07-07 23:32:18 +01:00
TheBloke 31cab54861 organizer.pro - tiny tweak to Qt5 version check
Directly checking QT_MAJOR_VERSION instead of pattern matching on QT_VERSION
2014-07-07 21:51:35 +01:00
TheBloke 2a16cc4262 Added 'make install' steps in ModOrganizer.pro -
Added config to install required libraries to output(d) directory
 If the user adds a Deploy step, that runs 'jom install', he will have the
  necessary libraries copied to output(d)\dlls
 These libraries are -
  7z.dll
  Qt4 Core Declarative Gui Network OpenGL Script Sql Svg Webkit Xml XmlPatterns
   Different set configured for Qt5, e.g. adding Widgets, Qml, Quick
   In a debug build, the 'd' DLLs will be used instead.
   Qt4 libraries are copied from system Qt4 installation directory.
 This allows the Qt-Creator user to hit "Run" in Qt-C and end up with a complete
  install, including all DLLs; no manual Exporer copying required.
 This therefore removes the need for post-build steps 10 & 11 in Readme.txt.
 Future thought - Update all current POST_LINK (x)copy steps to make install?

Fixed DESTDIR in ModOrganizer.pro
 It was pointing to source/output(d) before, should be ..\output(d)
 It was not used before so didn't matter, but is now referenced for install.
2014-07-07 21:39:27 +01:00
Tannin a5b6556d67 slight fixes to qt5 compatibility 2014-07-03 17:42:31 +02:00
Tannin af89733121 - bugfix: update.bsa is again treated like a regular bsa because hiding it from the archive-list made it impossible (in managed bsa mode) to overwrite files from update.bsa
- bugfix: disabled-state for mo management wasn't saved
- bugfix: when starting an application, settings were saved twice
- bugfix: origin ids and handles for directory updates were out of sync
2014-06-30 22:37:21 +02:00
Tannin baf1240be7 Added tag release v1.2.6 for changeset c40e9a70e99e 2014-06-29 15:09:55 +02:00
Tannin 6e4626852c - re-inserted code for bsa hiding (this was necessary to enforce expected bsa order after all)
- bsas from foreign bsas are now loaded as expected by hook.dll as well
- state of log-window-split is now saved
- auto completion in installer name boxes is now case-sensitive so that users can change casing of the mod names
- bugfix: self updater did enforce the skyrim url for MO updates but not the game_id
- bugfix: modinfo dialog didn't correctly read mod meta information on opening
- bugfix: MO didn't report on endorsement (for MO)
2014-06-29 15:09:45 +02:00
Tannin e8f56d65d2 Added tag release v1.2.5 for changeset 70663ff89a38 2014-06-25 23:51:39 +02:00
Tannin 5e7c875b29 - test-plugins accidentally distributed in the 1.2.5 release are now automatically deleted
- some fixes to the tutorial (mostly wording but also some actual problems)
- bugfix: could disable mods that aren't supposed to be disable-able
- bugfix: mod list wasn't saved on some changes
- bugfix: when trying to start directly to application, MO didn't start up correctly
- bugfix: hook.dll didn't load mod bsas into its directory structure and thus didn't allow bsas to overwrite loose files
- bugfix: in some constellations the tutorial files couldn't be found despite being in the right location
2014-06-25 23:51:29 +02:00
Tannin b2a7c7c223 Merge 2014-06-23 21:43:40 +02:00
Tannin 7b4582c1b1 - adjusted mod load order in hook.dll to match the one from the UI
- bugfix: fnis checker took files in archives into consideration for hashing
2014-06-23 20:23:59 +02:00
Tannin 5d7b23acef - bugfix: networkaccessmanager of browser dialog wasn't destroyed correctly. As a result the cookie jar doesn't get saved 2014-06-21 12:16:57 +02:00
Tannin 3628ec930b - changed the url used to login on nexus (the previous page was disabled)
- bugfix: download manager might have tried to read from a closed connection
2014-06-21 10:39:28 +02:00
Tannin e22aeca3ff - download read buffer is now limited to 1MB. Might prevent out-of-memory errors during download
- bugfix: plugins are now disabled when deactivating a mod  before the files are removed from the vfs
2014-06-17 18:36:28 +02:00
Tannin cbd6b288eb Merge 2014-06-16 21:50:53 +02:00
Tannin 484749e612 - added pseudo-categories to filter for mo-managed vs. unmanaged mods
- deleted mods are now moved to the recycle bin instead of being deleted permanently
- reduced modinfo dialog for foreign mods
- foreign mods are now displayed with a pseudo-category
- added a signal when a plugin is moved
- bugfix: refreshing of directory structure for mods with bsas didn't work correctly when enabling a mod and on changing display of foreign mods
- bugfix: one mod in the list was assigned the same priority on the directory structure as the data directory
- bugfix: conflicts tab in the mod info dialog offered the hide option for files in bsas
2014-06-16 21:49:57 +02:00
Tannin 5b3cdaa83b bugfix: the warning dialog upon changing the mod directory didn't have an effect, the process couldn't be canceled 2014-06-14 09:17:57 +02:00
Tannin 6d3f88b330 Added tag release v1.2.3 for changeset c503e48f97aa 2014-06-08 15:10:21 +02:00
Tannin 0feb4b702d - loot client now only updates the masterlist once per MO session
- new event to notify plugins of changed mod priority
- overwrite now shows up in the "checked" category instead of "unchecked"
- display of "foreign" mods can now be limited to only official content
- bugfix: bsa extraction dialog showed up even if the plugin was disabled
- bugfix: after detection of foreign mods the priority of the overwrite folder could get messed up
- bugfix: when displaying only the context menu for the mod list as a whole, the menu didn't disappear
- bugfix: MO crashed when trying to download via the integrated browser
2014-06-08 15:10:08 +02:00
Tannin 5a4b6e70fd - plugin-list now displays loot messages 2014-06-02 19:15:23 +02:00
Tannin 18574c2ba8 - removed needless modlist-rewrite 2014-05-31 13:44:26 +02:00
Tannin 1eb783aae3 - added a new mod type that represents files handled externally (i.e. DLCs) as mods in MO
- hashes of file names in bsa files are no longer checked all the time
- author and description is now read from esp files
- rewrote the code that fixes modlists after a rename, should be a bit more robust
- fixes to qt 5 and msvc 2013 compatibility
- started to update the tutorial (not done yet!)
- bugfix: counter for the problems badge wasn't calculated correctly
2014-05-31 13:43:48 +02:00
Tannin 93a19799b8 Merge 2014-05-28 14:23:11 +02:00
Tannin 2a31eb40fb small bugfixes 2014-05-28 14:14:28 +02:00
Tannin cf0a1bc2be - files in bsas are now only displayed in the data tab if they are managed by mo
- number of problems detected by MO is now displayed as a badge on the icon
- rephrased the explanation text on the Archives tab. unchecked plugin-loaded bsas no longer prompt a warning
- bsa extraction is now handled in a plugin
- added a way for plugins to react to mod installation
- re-enabled the automatic fix for asset order problems
- bugfix: In some cases when a download wasn't started successfully the download urls weren't stored in the meta file so no resume was possible
- bugfix: MO tried to resume downloads when it didn't have and download urls
- bugfix: downloads couldn't be paused if the download was already broken on the network layer
- bugfix: download managear did not recognize a file as downloaded if the download completed before signals were hooked up
- bugfix: in-place file replacement was re-broken
2014-05-25 15:39:45 +02:00
Tannin 48c8cca578 - NCC will now report an error if a script tries to extract a non-existent file instead of creating an empty output file
- ncc installer plugin now uses a more reliable method to force the installer window to the foreground
- missing version on TESV.exe will no longer be reported as an error
- bugfix: loot client didn't read list of active mods
- bugfix: invalid free call in error reporting function
2014-05-15 19:11:19 +02:00
Tannin 977b407525 - mod list context menu split into two menus (one for whole list, one for selected mods)
- added option to combine category filters using "or"
- added context menu option for deselecting category filters
- slightly changed ui on the category filters
- added a sample plugin for cpp that can be built without building the rest of MO
- simple installer can now be configured to run without any user interaction
- extended interface for python plugins
- iorganizer implementation moved out of the main window
- nexus requests from plugins will now be identified in the user agent
- bugfix: shortcuts created from MO used the wrong working directory
- bugfix: deactivation of bsas didn't stick
- bugfix: file hiding mechanism wasn't active
- bugfix: executables linked on the toolbar couldn't be removed if the executable was removed first
- bugfix: the endorsement-filter couldn't be combined with other filters
- bugfix: python interface to repository bridge was broken
2014-05-13 21:20:44 +02:00
Tannin f4b1aba61a Added tag release v1.2.1 for changeset 366d0a6ac409 2014-05-06 21:07:34 +02:00
Tannin 0eb1662a0e - very effective optimization to findfirstfile-calls
- several configuration files are now only saved to disk if the content actually changed.
  This should also get rid of a problem where plugins.txt was re-written immediately after starting the game
  (causing a conflict with the game)
- reduced "noise" from hook.dll
- removed some debugging messages
2014-05-05 18:24:15 +02:00
Tannin 164ec25a75 - bugfix: endless loop in detection of mod order problems 2014-05-04 16:13:35 +02:00
Tannin 6fb36d6c02 - main window now has a small view displaying log messages
- mod list will now be highlighted when grouping is active is active
- download tooltip now supports bbcode markup in the description
- bbcode translator will now translate some named colors
- algorithm for detection of mod order problems is now more sophisticated
- exposed more functionality to python plugins
- updated to qt 4.8.6 dlls
- bugfix: plugin list wasn't
- bugfix: state changes in mod list wasn't always reported
- bugfix: loot client will now create necessary directory
- bugfix: NCC sometimes used wrong source path for extracting
- bugfix: removed noisy debug message
2014-05-04 14:50:01 +02:00
Tannin ea1f959ad5 - download tooltip now also includes the file description
- will now display an error message when the ini file can't be updated (in addition to what windows says)
2014-05-01 10:03:40 +02:00
Tannin 7cf3b3455b Added tag release v1.2.0 for changeset cc9f6dd8ee3f 2014-04-25 20:02:53 +02:00
Tannin 84cfa95254 - bugfix: newly installed files could be added hidden
- bugfix: registered bsas in data aren't ordered correctly
2014-04-25 19:15:12 +02:00
Tannin 264da60929 - updated installer
- prettified a few log messages
2014-04-24 22:07:42 +02:00
Tannin 2db33523a1 - added an option to show meta info on downloads instead of filenames
- MO will now cancel if user tries to run MO vfs-injected
- when saving the MO ini file it is now written to a tmp file first and then overwritten
- updated to link against boost python 1.55
2014-04-23 23:59:30 +02:00
Tannin 540747177a - loot client no longer stalls the process while waiting for masterlist update
- configurator now gives better warning messages when encountering an invalid ini file
- bugfix: crash on cleanup up browser dialog
- bugfix: GetCurrentDirectory returned wrong string length
2014-04-16 22:32:59 +02:00
Tannin 739c3424e7 - loot integration now displays the report
- fixes to the previous merge
- bugfix: cli loot didn't handle non-ascii characters correctly
2014-04-05 20:54:08 +02:00
Tannin cabed9b268 Merge with branch1.1 2014-04-05 15:36:42 +02:00
Tannin c017f4a0d5 - added buttons to backup and restore the modlist and pluginlist
- replaced boss integration with loot
2014-04-05 15:14:37 +02:00
Tannin b1f1682790 - bugfix: the add/remove categories function could fail when a filter/grouping on categories was active 2014-03-26 17:23:26 +01:00
Tannin 28301e7486 - improved NCC compatibility
- crude support for multi-volume archives
- updated imageformats plugins
- nxmhandler now puts the exe to the top of the list when registering an MO instance, even if it is already in the list
- bugfix: WritePrivateProfileString hook attempted to access lpKeyName even when it is null
2014-03-26 15:35:59 +01:00
Tannin 2d0fab4482 Merge 2014-03-18 19:18:17 +01:00
Tannin c19c4820d8 - force-enabled game esms no longer break keyboard-navigation in plugin list 2014-03-18 19:18:04 +01:00
Tannin 8ab1b47943 - bugfix: if resuming a download failed with the server sending a textual error message,
MO tried to display the whole file inside the error message
- bugfix: resuming a download didn't trigger a nexus-login when necessary
- bugfix: integrated fomod installer only used the first block of data inside a description
2014-03-18 18:29:32 +01:00
Tannin ff272dcbbd Merge 2014-03-16 20:05:13 +01:00
Tannin 98354cd1e7 some fixes towards qt5 compatibility 2014-03-16 20:04:57 +01:00
Tannin 129b76d7d2 - unpacking bsas during installation no longer overwrites loose files (since the loose files
would have taken precedence)
2014-03-13 21:57:11 +01:00
Tannin a82b7e9949 - "CreateDirectory" will no longer create directories in original data directory
- bain installer will now be less picky about the archives supported
- updated NCC to be compatible with more recent NMM code base
- hack in NCC to allow it to install arbitrary sized files even in 32-bit builds
- updated the python27.dll to one that links to msvcr100.dll to get rid of the dependency of msvcr90.dll
- bugfix: dll search order wasn't set to allow plugins to load the correct qt dlls
2014-03-13 19:00:32 +01:00
Tannin 0f8f7bf777 Added tag releease v1.1.2 for changeset 4276e1188b42 2014-02-26 22:14:06 +01:00
Tannin f4cf992700 Removed tag 1.1.2 2014-02-26 22:13:53 +01:00
Tannin bec644bac3 Added tag 1.1.2 for changeset 4276e1188b42 2014-02-26 22:13:43 +01:00
Tannin bb98bfade6 - MO will now be elevated if needed 2014-02-23 18:53:38 +01:00
Tannin 00f4e1799f - slightly overworked display of icon delegates
- updated installer
2014-02-23 17:18:20 +01:00
Tannin 35fcf1c25b - made the indicator for drag&drop more visible
- message boxes can now be made to not (re-)activate the window
- executable names for starting from the command line are now case-insensitive
2014-02-22 19:22:12 +01:00
Tannin bed3c08a6d - bugfix: on-demand loading of data tree broke filtering on conflicting files 2014-02-18 19:08:12 +01:00
Tannin f9eba9dc15 - ini file changes that would have to overwrite ini tweaks are now stored in a separate file
and actually get used.
- a warning message advices users to clean out that separate file
- slightly improved default main window layout
- bugfix: newly created ini tweaks were added to the list with incorrect  properties
2014-02-17 21:15:20 +01:00
Tannin 9c8e43853d - a few hooks will now somewhat handle file names starting with \\?\
- mod meta information is now (also) saved by a timer to reduce the likelyhood
of a data loss in case of a crash
- mod meta files are now written to a temporary file and then renamed to real name to
reduce chance of breaking the file
- updated minimum compatible nmm version to 0.47.0
- bugfix: defaults for newestVersion, version and installationFile when creating
an empty mod were integers instead of strings
- bugfix: "Plugins" and "Archives" weren't translatable
2014-02-12 21:00:49 +01:00
Tannin 7aadb47637 - archives.txt is now written using the "safe"-write mechanism
- added the whole boss fork to the repository
- bugfix: boss db is now always re-initialised because otherwise there might have been differing results between runs
- bugfix: locked load order was ignored by integrated boss
- bugfix: archive list wasn't written back on all changes that affected it
- bugfix: CreateFile-hook didn't reroute files created with OPEN_ALWAYS to overwrite directory
- bugfix: NtQueryDirectoryFile-hook didn't return the correct status code when searching for a file that doesn't exist
2014-02-07 21:05:48 +01:00
Tannin 76fbe6effe - tabs in the mod info dialog can now be moved around by the user 2014-02-04 19:55:27 +01:00
Tannin 38ee6ccf0a Added tag release v1.1.1 for changeset 73a1f1438658 2014-02-02 15:14:07 +01:00
Tannin 7722a9b6df - main window is now actually disabled while integrated boss is running
- bugfix: integrated boss sorting couldn't recognize plugins specified via regular expression
2014-02-02 14:26:24 +01:00
Tannin 48704877ca - bugfix: upon moving files between mods, an attempt was made to access origins
for both, even if one (or both) mods weren't active
- bugfix: plugin-list should now deal with nested "layoutAboutToBeChanged" calls
gracefully. May be the reason of a bug.
2014-02-02 00:09:03 +01:00
Tannin 48c944c737 - bugfix: elevation dialog didn't offer a "yes" option
- bugfix: python plugins crashed the application when trying to create a nexus bridge
- bugfix: python plugins couldn't register for failed requests correctly
2014-01-29 21:06:55 +01:00
Tannin af50eedbe2 - bugfix: dds preview or transparent textures looked odd
- bugfix: lazy loaded data tree deleted the placeholder
2014-01-29 00:23:16 +01:00
Tannin 52e5dd3c57 Added tag release v1.1.0 for changeset 87c2eea95307 2014-01-29 00:20:47 +01:00
Tannin ccd5d1294f - bugfix: accessing profile without loading one when starting an app through the commandline
- bugfix: locked-dialog was disabled
2014-01-27 21:31:10 +01:00
Tannin de984a4ef8 - information from boss no longer gets lost as soon as the plugin list gets refreshed
- bugfix: modified boss dll missed one file on sorting
2014-01-23 21:14:44 +01:00
Tannin e597823337 - boss integration
- plugin list can now also display multiple flags for a file (like the mod list)
- changed some compiler&linker settings to produce smaller binaries
2014-01-23 00:05:46 +01:00
Tannin e69210b3a7 - when a download server returns a text file, it's assumed to be an error and the text displayed as an error
- save games can now be deleted from inside MO
- bugfix: removing the pending download entry failed if the download-url request failed
- bugfix: download manager didn't stop automatically resuming failed downloads under certain circumstances
- bugfix: uninstalled downloads were treated as not-finished when refreshing the download list
- bugfix: updating the filesystem watcher on the saves directory didn't work correctly
2014-01-18 19:51:58 +01:00
Tannin 40d20ab294 - added an about dialog
- updated json library
2014-01-16 20:43:42 +01:00
Tannin 6ed82866b0 - moved code for file previews to plugins 2014-01-14 21:16:36 +01:00
Tannin a083a2d3b6 - implemented hook for NtQueryDirectoryFile
- saves list is now automatically updated on FS changes
- optimization: data tree widget is no longer filled completely at once but one directory at a time
- bugfix: pending downloads were not removed from list after a failed nxm request
- bugfix: there was still a nmm.nexusmods.com link
- bugfix: the text "alpha" in version strings wasn't interpreted correctly
2014-01-13 19:32:54 +01:00
Tannin db09b806b9 - Mod Organizer can now display most image types (including dds) and txt files from the data
tree, presenting a comparison of variants in case of overwritten files
2014-01-05 18:50:56 +01:00
Tannin 859c0aed98 download manager now removed orphaned meta files 2014-01-04 16:39:38 +01:00
Tannin 0ea7d99b9f Merge 2014-01-04 16:05:39 +01:00
Tannin 6cffbd4f27 using icons + splash from heavydude 2014-01-04 16:05:25 +01:00
Tannin 4dc3538a7d - nxmhandler will now ask before registering itself
- downloads from nexus are now displayed before file information is retrieved
- logging from the ui is now a bit more informative
- download list now scrolls to bottom automatically
2014-01-04 15:57:14 +01:00
Tannin e45b747c82 Added tag release v1.0.12 for changeset 440287834340 2014-01-03 18:43:03 +01:00
Tannin 2d6bacbb6a -removed compiled translations from the repository 2014-01-03 18:41:47 +01:00
Tannin d029e97724 - hook dll now monitors all mod directories, not only overwrite
- dialog for changing executables now warns if changes will be lost
- main window is now locked before activating pre-start hooks
- better responsiveness while main window is locked (or should be)
2014-01-03 18:40:46 +01:00
Tannin a9435f637e Added tag release v1.0.11 for changeset 806fd77aa2de 2013-12-19 20:33:38 +01:00
Tannin e1e35da6fe Added tag release v1.0.10 for changeset e72788d8ac35 2013-12-19 20:31:48 +01:00
Tannin e43f126b03 - bugfix: crash on overwriting a mod (introduced after the previous release)
- bugfix: ncc installer now brings the installer window to front (again? more reliably? not sure if it really worked before)
2013-12-19 20:30:39 +01:00
Tannin 35c9fe3e98 - bugfix: archive.dll could cause a crash, attempting to close an archive that failed to open
- bugfix: upon changing categories the mappings of deleted categories wasn't cleaned up which could cause an error message
- bugfix: the number of esps/esms that can be loaded is actually 255 not 256 since the save game counts too
- bugfix: "visit on nexus" from the modinfo dialog also lead to the wrong url
2013-12-19 19:40:59 +01:00
Tannin 82f7b09b40 Merge 2013-12-14 17:19:27 +01:00
Tannin f33d24870f - added more information to readme
- 7zip source path is now configurable
2013-12-14 17:19:15 +01:00
Tannin 14ac234daf - plugin list now highlights plugins with attached ini files
- bugfix: opening nexus through the globe icon used the nmm.nexusmods.com url
2013-12-14 13:23:13 +01:00
Tannin 22b8eb7c5a - downgrading a mod (using replace) will now change the version
- bain installer will now accept archives with omod conversion data.
2013-12-11 20:43:30 +01:00
Tannin 9ee90a35dc - MO now applies a minimum to the nmm-compatibility field.
- bugfix: "visit on nexus" directed the browser to the servers meant for nmm
- bugfix: url for "check all for updates" and "enorse/unendorse" were not constructed correctly
2013-12-08 14:16:25 +01:00
Tannin ff78c6a014 - bugfix: extracting bsas did not work with non-ascii characters in the mod name
- another attempt to switch branches...
2013-12-07 17:41:45 +01:00
Tannin 340edcfbca - returned to default branch
- nexus interface will now use the nmm url
- nmm importer no longer cancels on a missing non-essential flag
2013-12-07 17:13:36 +01:00
Tannin c4f0bc39c7 Merge with default 2013-12-07 16:55:19 +01:00
Tannin e71c37df37 - bugfix: drag&drop on archive list didn't always work properly 2013-12-07 16:54:08 +01:00
Tannin b32457a7d2 - minor text fixes
- versions without a subminor version are now displayed without it (1.1 instead of 1.1.0)
- version compares now prefer the decimal comparison over the traditional
2013-12-07 16:07:28 +01:00
Tannin 6e1e8c37eb minor text changes 2013-12-07 14:23:51 +01:00
Tannin 469cc2d945 - download manager now saves the file times on nexus, for potential later use in version check
- nexus interface now supports 301 redirects
- now using the new nexus url format
- bugfix: "visit on nexus" used an outdated url scheme and thus caused unnecessary redirection
2013-12-07 12:48:18 +01:00
Tannin 0e90b9d233 - bugfix: changing nexus id directly via mod list did not cause the change to be saved 2013-12-04 19:54:28 +01:00
Tannin 0e19c84722 Added tag release v1.0.9 for changeset a61a930515ae 2013-12-01 23:52:42 +01:00
Tannin daf4ae44fa - added second context menu for changing categories that applies only changes to
the selected mods instead of replacing the existing set of categories (thanks to Ross!)
- bugfix: category filtering didn't work correctly when grouping was also active
2013-12-01 23:50:24 +01:00
Tannin ac29aa81f2 minor updates to readme and mod info ui 2013-12-01 21:43:16 +01:00
Tannin a0335d0a63 Added tag 1.0.8 for changeset a61a930515ae 2013-11-27 20:25:55 +01:00
Tannin f1515193ca - plugins can now be localized too
- fixes to the installer script
- extended build scripts to fetch translations from pootle server automatically
2013-11-27 20:25:24 +01:00
Tannin db0347212a - bugfix: installFile for mods was not a relative path if the downloads directory was non-default
- bugfix: crash after removing the last profile in the list (ordered alphabetically)
- improved subdirs ordering to ensure pythonrunner is compiled before pythonproxy
- translation files for plugins are now generated
- set some texts as un-translatable where it made no sense
- staging script now re-builds MO completely before packaging
- updated qt libraries for packaging to 4.8.5
- added python to the package
2013-11-22 17:45:34 +01:00
Tannin 5895a1a92d - bugfix: canceling creation of an ini tweak prompted an error message
- added missing files from earlier commit (wtf?)
2013-11-20 21:54:14 +01:00
Tannin c6101e34e1 - archive.dll now supports querying the crc value of files
- esptk now determines if a esp is a dummy (without records)
- hook.dll no longer creates a log file if noone wrote to it
- nexus id and installtime columns are now hidden by default
- modlist can now be refreshed without saving first (so plugins can replace the modlist.txt as a whole)
- plugins can now query more details about virtualised files
- added style options "plastique" and "cleanlooks"
- "overwrite" is no longer listed with a creation time
- a warning will now be displayed if the user has too many plugins active
- a warning will now be displayed if mods with scripts have an installation order that doesn't match the corresponding esp load order
- nmm importer now has select all/deselect all buttons
- nmm importer no longer tries to unpack missing files from archives (won't work anyway)
- initial support for importing from nmm 0.5 alpha
- removed some broken warning suppresions
- python runner now works with bundled python
- extended qbs build system (still fails to build the main gui application)
- implemented a nsis-based installer
2013-11-18 20:17:14 +01:00
Tannin 75475a7984 - started qbs based project files (not functional yet)
- modlist will now updated immediately after a change throw the modinfo dialog
- bugfix: configurator wasn't able to save after revision 137
2013-11-11 23:19:54 +01:00
Tannin 315ed6e41a Added tag release v1.0.7 for changeset 1973f6e00784 2013-11-06 18:40:09 +01:00
Tannin b2d613e9d1 Added tag release v1.0.6 for changeset 1973f6e00784 2013-11-06 18:40:03 +01:00
Tannin f010c22a3b - diagnosis plugins can now request to be re-evaluated
- main application now contains means for plugins to react on some changes (to be extended)
- plugins can now retrieve more information about a mod
- user-agent sent to nexus now automatically contains the current MO version
- included updated russian translation
- problems dialog now refreshes itself after a fix was applied
- fixed new esp/asset ordering diagnosis. May be fully functional now
- bugfix: restoring locked load order could leave MO in an endless loop (not sure if this fix is correct yet)
- bugfix: plugin list was not visually updated after some changes
- bugfix: nmm importer threw away mod ordering
2013-11-06 18:35:27 +01:00
Tannin d1594798e6 - added a new diagnosis to detect potential problems in regards to esp vs. asset ordering (not fully functional yet)
- new plugin interfaces to the mod list
- plugins can now query the origin (mod) of a esp/esm
- bugfix: potential access to profile before one was activated
- bugfix: regression in previous (not-yet-released) commit prevented changes to bsa list from being saved
2013-11-01 14:59:25 +01:00
Tannin 09bd3dbead - text files encoded in system encoding should now be correctly recognized in the mod info dialog
- archive-list can be user-sorted again (within one mod)
2013-10-26 15:02:31 +02:00
Tannin 8c0b309bde - Option to choose edition of the game. Currently only relevant for FO3 because FO3 GOTY is its own app
- applications that aren't in the executables list can again be started from the command line
- references to missing categories are now removed from mods
- bugfix: integrated fomod installer didn't update description and picture on some constellations of Windows version and theme
2013-10-25 14:49:42 +02:00
Tannin bc7c42dbe8 - directories in data-view are now sorted
- questionbox with selection memory is now exposed to plugins
- the choice to run fnis from the checker can now be memorized
2013-10-20 16:51:40 +02:00
Tannin 9a03783f49 - tooltip on download list now contains the file name
- bugfix: when refreshing the directory tree conflict information wasn't immediately refreshed (including on start)
- bugfix: dataChanged events wasn't emitted when user changed the modlist
- bugfix: file patterns in checkfnis plugin weren't completely correct
2013-10-18 23:35:38 +02:00
Tannin d73b1e38c8 - mod sorting now always uses priority as secondary sorting
- added missing ipluginlist.h
2013-10-17 19:21:22 +02:00
Tannin b47c89661e - plugin (esp/esm) list is now exposed to plugins (read-only functionality right now)
- integrated fomod installer now supports file dependencies
- bugfix: integrated fomod installer crashed if the installer had no optiosn´´ns
2013-10-16 23:04:03 +02:00
Tannin 0b84cc3d45 Merge 2013-10-16 19:34:56 +02:00
Tannin 1bf3cc585e - nmm importer now also transfers category, endorsement state and lastest version information
- nmm importer should now always determine the correct nexus id
- nmm importer will now correctly restore overwritten files for imported mods
2013-10-16 19:32:59 +02:00
Tannin eae275cc84 Added tag release v1.0.5 for changeset c6a9d2ab2d6c 2013-10-15 23:34:16 +02:00
Tannin f3cb50057b - bugfixes to last merge
- fnis-check plugin can now be disabled
2013-10-12 13:21:37 +02:00
Tannin 5518309300 Merge 2013-10-12 12:32:37 +02:00
Tannin f22bb9d6a6 Merge 2013-10-11 23:04:44 +02:00
Tannin 382226bb46 - added new plugin to test if fnis needs to be run
- some functionality to the plugin interface to enable them to search for files&directories in the virtual FS (rudimentary atm)
- functionality for plugins to react to application being started from MO
- broken ESPs are no longer reported as popup windows but only in the log file
- bugfix: plugins couldn't store persistent data if they had no user-editable settings
2013-10-11 23:03:49 +02:00
Tannin bdf04f516c - MO now warns if a nxm-link for a wrong game was attempted instead of downloading the wrong file
- bugfix: in nxmhandler adding a new line with different game but same executable didn't work (the change was silently dropped)
2013-10-10 21:23:25 +02:00
Tannin 54c7131a5e - new toggle to display hidden downloads
- hidden downloads can be un-hidden
- the installation manager now more thoroughly cleans up the temporary directory after installation
- added SkyrimLauncher.exe to the list of auto-detected executables
- bugfix: shutting down MO while downloads where active in some occasions didn't work
- bugfix: when canceling the only active download the taskbar icon didn't return to normal
2013-10-10 19:32:01 +02:00
Tannin 15e256ef44 Added tag release v1.0.4 for changeset 7732c5d2e41d 2013-10-10 19:09:29 +02:00
Tannin b23a4885e0 - bugfix: When updating MO, if login is required, the process didn't continue automatically after login 2013-10-06 14:12:25 +02:00
Tannin 823dfd410b - option to ignore/unignore updates is now only shown if there IS an update
- window now shouldn't lose focus on win 8 2 seconds after mod information gets invalidated
- small bugfix related to new version scheme parsing
2013-10-06 13:34:34 +02:00
Tannin ba09054e6b Merge 2013-10-06 12:20:07 +02:00
Tannin 694e3ed279 bugfix: statusbar may have stayed enabled if an error occured on handling the refreshed-event 2013-10-06 12:19:46 +02:00
Tannin cffd9eb4e2 - hook.dll now doesn't inject to certain applications (currently steam, chrome and firefox)
- versioning system improved. Will now report "downgrades" for mods and support a different versioning system (requires manual switch)
- updates can now be ignored until a new version is uploaded
- new splash screen
- bugfix: a few memory leaks (shouldn't account for much)
- bugfix: result of GetModuleHandle wasn't zero-terminated in some cases
2013-10-05 14:20:48 +02:00
Tannin 640b14ef25 diagnosis plugin now warns when nitpick is installed 2013-09-30 18:33:45 +02:00
Tannin 47293827bb - download progress is now visible in task bar
- esp-tooltip now lists all masters, highlighting the missing ones
- python plugin will now report a problem if the path contains a semicolon
- leak detection now (somewaht) works around the fact that we don't always get a stack trace
- bugfix: mod meta-file is now reliably created if it was missing
- bugfix: parser for nxm-links didn't handle numbers in the mod name
- bugfix: small memory leak
2013-09-28 21:13:57 +02:00
Tannin 0a3169b808 - plugin tooltip now only lists the masters that aren't enabled (if any) 2013-09-26 19:10:44 +02:00
Tannin f4528c7aaa - bugfix: esp parsing could crash for broken/unrecognized esps
- bugfix: esp parser didn't handle oblivion esps correctly
2013-09-23 22:39:58 +02:00
Tannin 4f0a6e8b88 Added tag release v1.0.2 for changeset 0aaed2f8f48d 2013-09-22 13:24:53 +02:00
Tannin 98e5e57a84 - added support for mod page plugins
- re-introduced the integrated browser
- added a plugin to download from the tes alliance page
- the download list now contains the file description
- nexus interface now stores cookies persistently to reduce number of required log-ins
2013-09-15 15:20:00 +02:00
293 changed files with 44821 additions and 78368 deletions
+12
View File
@@ -0,0 +1,12 @@
*.user
Thumbs.db
src/moc_*.cpp
src/ui_*.h
src/*.qrc.depends
src/Modorganizer.*
CMakeLists.txt.user
edit
stderr.log
stdout.log
build
.idea
+31
View File
@@ -1,4 +1,6 @@
syntax: glob
scons_configure.py
scons-ModOrganizer-*
ModOrganizer-build-desktop*
outputd/*
output/*
@@ -13,3 +15,32 @@ source - Copy/*
ModOrganizer-build-*
pdbs/*
source/NCC/BossDummy.x/*
*.ts
staging_prepare/*
staging_trans/*
tools/python_zip/*
Makefile
html
*.vcxproj
*.pdb
*.dll
*.exp
*.tlog
*.user
*.obj
*.suo
*.sln
*.log
*.filters
*.lib
source/organizer/resources/contents/icons
source/plugins/build-*
*/GeneratedFiles/*
translations/*
source/LocalPaths.pri
source/*/Win32/Debug/*
source/plugins/*/Win32/Debug/*
*~
syntax: regexp
Makefile\.(Debug|Release)
source/.*/debug/.*
+14
View File
@@ -0,0 +1,14 @@
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)
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)
-68
View File
@@ -1,68 +0,0 @@
HOW TO BUILD
============
Requirements:
-------------
Visual C++ compiler 2010 (VC 10.0) or up
- Included in visual c++ express 2010 or windows sdk 7.0
QtSDK 4.8.x (http://qt-project.org/downloads)
- Qt5 is not yet supported but WIP
- Install according to instruction
boost libraries (http://www.boost.org/)
- Compile according to their instructions (using vc++)
- As of time of writing boost_thread is the only compiled boost library used, you can
disable the others to safe yourself the compile time
zlib (http://www.zlib.net/)
- Compile static library according to their instructions
- You should have a "zlibstatic.lib" under "build" afterwards
7z.dll (http://www.7-zip.org/download.html)
- Part of the 7-zip program
- Has to be the 32-bit dll! (approx. 893kb)
Recommended:
------------
Qt Creator
- Included in QtSDK but there might be a newer version as a separate download
Set up (using Qt Creator):
--------------------------
1. Using Qt Creator open source/ModOrganizer.pro from your working copy
2. Open the "Projects" tab, open the "Details" for "Build Environment"
3. Click "Add" to add a variable called "BOOSTPATH" with the path of your boost installation as the value (i.e. C:\code\boost_1_52_0)
4. Click "Add" to add a variable called "ZLIBPATH" with the path of your zlib installation as the value (i.e. C:\code\zlib-1.2.7)
5. Switch the build configuration at the very top of the same page from "debug" to "release" (or vice versa) and repeat steps 3 and 4
6. Compile the configuration(s) you want to use (debug and/or release) (Build All). This should compile correctly.
7. return to the "projects" tab and switch to "Run Settings"
For Release build:
8r. Add a "Run configuration" that points to <your working copy>\output\ModOrganizer.exe
9r. Copy "7z.dll" to <your working copy>\output\dlls
10r. From QtSDK\Desktop\Qt\4.8.0\msvc2010\bin copy the following files to <your working copy>\output\dlls: QtCore4.dll, QtDeclarative4.dll, QtGui4.dll, QtNetwork4.dll, QtScript4.dll, QtSql4.dll, QtWebkit4.dll, QtXml4.dll, QtXmlPatterns4.dll
For Debug build:
8d. Add a "Run configuration" that points to <your working copy>\outputd\ModOrganizer.exe
9d. Copy "7z.dll" to <your working copy>\outputd\dlls
10d. From QtSDK\Desktop\Qt\4.8.0\msvc2010\bin copy the following files to <your working copy>\outputd\dlls: QtCored4.dll, QtDeclaratived4.dll, QtGuid4.dll, QtNetworkd4.dll, QtScriptd4.dll, QtSqld4.dll, QtWebkitd4.dll, QtXmld4.dll, QtXmlPatternsd4.dll
Now you should be able to compile and run Mod Organizer.
Please note that when you change anything apart from the "organizer" subproject, qt creator may not pick up on the changes
and not recompile the modified subproject. the "organizer" project on the other hand is always re-linked. If anyone knowledgeable enough with qmake
can fix that that would be awesome.
Set up (without Qt Creator):
----------------------------
1. open a command line shell and navigate to <your working copy>\source
2. run "qmake -tp vc" to create a visual c++ solution
3. Open that solution
4. - 98. A miracle happens
99. You can now compile MO using VC
I'm not using this workflow so I can't give more detailed instructions.
Please note that the primary project format of MO remains qmake, if you work with visual studio and make changes to the project (like adding
source files) you have to manually transfer those changes to the .pro file.
+711
View File
File diff suppressed because it is too large Load Diff
+30
View File
@@ -0,0 +1,30 @@
[
# for boost???
# These are probably correct but might need a revisit as if you look at the boost documentation pages, it
# can give you huge lists of alternate includes...
{ symbol: [ "BOOST_FOREACH", "private", "<boost/foreach.hpp>", "public" ] },
{ include: [ "@\"boost/bind/.*\"", "private", "<boost/bind.hpp>", "public" ] },
{ include: [ "@\"boost/algorithm/string/.*\"", "private", "<boost/algorithm/string.hpp>", "public" ] },
{ include: [ "@\"boost/assign/.*\"", "private", "<boost/assign.hpp>", "public" ] },
{ include: [ "@\"boost/filesystem/.*\"", "private", "<boost/filesystem.hpp>", "public" ] },
{ include: [ "@\"boost/format/.*\"", "private", "<boost/format.hpp>", "public" ] },
{ include: [ "@\"boost/function/.*\"", "private", "<boost/function.hpp>", "public" ] },
{ include: [ "@\"boost/local/.*\"", "private", "<boost/locale.hpp>", "public" ] },
{ include: [ "@\"boost/python/.*\"", "private", "<boost/python.hpp>", "public" ] },
{ include: [ "@\"boost/signals2/.*\"", "private", "<boost/signals2.hpp>", "public" ] },
{ include: [ "\"boost/smart_ptr/scoped_array.hpp\"", "private", "<boost/scoped_array.hpp>", "public" ] },
{ include: [ "\"boost/smart_ptr/shared_ptr.hpp\"", "private", "<boost/shared_ptr.hpp>", "public" ] },
# this appears to be excessive
#{ include: [ "@\"boost/thread/.*\"", "private", "<boost/thread.hpp>", "public" ] },
# And this is specific to us
{ include: [ "\"appconfig.inc\"", "private", "\"appconfig.h\"", "public" ] },
]
# Ones I don't yet know how to deal with
#include "boost/fusion/container/vector/vector10_fwd.hpp" // for fusion
#include "boost/iterator/iterator_facade.hpp" // for operator!=
#include "boost/iterator/iterator_facade.hpp"
+157
View File
@@ -0,0 +1,157 @@
from collections import defaultdict
import fileinput
import re
import subprocess
import sys
"""
source/organizer/aboutdialog.h should add these lines:
#include <QObject> // for Q_OBJECT, slots
#include <QString> // for QString
class QListWidgetItem;
class QWidget;
source/organizer/aboutdialog.h should remove these lines:
- #include <QListWidgetItem> // lines 25-25
- #include <utility> // lines 28-28
- #include <vector> // lines 27-27
- class DownloadManager; // lines 47-47
The full include-list for source/organizer/aboutdialog.h:
#include <QDialog> // for QDialog
#include <QObject> // for Q_OBJECT, slots
#include <QString> // for QString
#include <map> // for map
class QListWidgetItem;
class QWidget;
namespace Ui { class AboutDialog; } // lines 31-31
---
"""
removing = None
includes = dict()
adding = None
added = dict()
lcadded = dict()
foundline = None
errors = False
messages = defaultdict(list)
def process_next_line(line, outfile):
""" Read a line of output/error from include-what-you use
Turn clang errors into a form QT creator recognises
Raise warnings for unneeded includes
"""
global removing
global includes
global foundline
global errors
global added
global adding
line = line.rstrip()
print >> outfile, line
if line.endswith(' should remove these lines:'):
adding = None
removing = (line.split(' '))[0]
elif line.endswith(' should add these lines:'):
removing = None
adding = (line.split(' '))[0]
elif line == '' or line.startswith(' the full include-list'):
adding = None
removing = None
elif adding:
m = re.match(r'.*class (.*);', line)
if m:
added[m.group(1)] = (adding, line)
lcadded[m.group(1).lower() + '.h'] = m.group(1)
else:
added[line] = (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
# fixing.
m = re.match(r'- #include [<"](.*)[">] +// lines (.*)-', line)
if m:
foundline = m.group(2)
# 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:
messages[removing].append(
'%s(%s) : warning I0004: Replace include of %s with '
'forward reference %s' % (
removing, m.group(2), m.group(1), added[clname][1]))
del added[clname]
else:
messages[removing].append(
'%s(%s) : warning I0001: Unnecessary include of %s' % (
removing, m.group(2), m.group(1)))
else:
m = re.match(r'- (.*) +// lines (.*)-', line)
if m:
messages[removing].append(
'%s(%s) : warning I0002: Unnecessary forward ref of %s' % (
removing, m.group(2), m.group(1)))
else:
print '********* I got confused **********'
elif line.startswith('In file included from'):
line = re.sub(r'^(In file included from)(.*):(\d+):',
r' \2(\3) : \1 here',
line)
# Note; QT Creator seems to be unwilling to let you double click the
# line to select the code in question if you get a string of these, not
# sure why.
elif ': note:' in line:
line = ' ' + re.sub(r':(\d+):\d+: note:', r'(\1) : note:', line)
else:
# Replace clang :line:column: type: with ms (line) : type nnnn:
line = re.sub(r':(\d+):\d+: ([^:]*):', r'(\1) : \2 I1234:', line)
if ' : error I1234:' in line:
errors = True
print line
outfile = open(sys.argv[1], 'w')
process = subprocess.Popen(sys.argv[2:],
stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
while True:
output = process.stdout.readline()
if output == '' and process.poll() is not None:
break
if output:
process_next_line(output, outfile)
# A note: We should probably do some work as we use the source code line for
# messages in include files...
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 file in sorted(messages.keys(), reverse = True):
for line in messages[file]:
print line
rc = process.poll()
# The return code you get appears to be more to do with the amount of output
# generated than any real error, so instead we should error if any ': error:'
# lines are detected
if errors:
sys.exit(1)
+2478
View File
File diff suppressed because it is too large Load Diff
+42
View File
@@ -0,0 +1,42 @@
# Mod Organizer
Mod Organizer (MO) is a tool for managing mod collections of arbitrary size. It is specifically designed for people who like to experiment with mods and thus need an easy and reliable way to install and uninstall them.
## Building
Please refer to [TanninOne/modorganizer-umbrella](https://github.com/TanninOne/modorganizer-umbrella) for build instructions.
## Other Repositories
MO 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/TanninOne/modorganizer
* https://github.com/TanninOne/modorganizer-uibase
* https://github.com/TanninOne/modorganizer-hookdll
* https://github.com/TanninOne/modorganizer-bsatk
* https://github.com/TanninOne/modorganizer-esptk
* https://github.com/TanninOne/modorganizer-archive
* https://github.com/TanninOne/modorganizer-nxmhandler
* https://github.com/TanninOne/modorganizer-lootcli
* https://github.com/TanninOne/modorganizer-helper
* https://github.com/TanninOne/modorganizer-tool_nmmimport
* https://github.com/TanninOne/modorganizer-tool_configurator
* https://github.com/TanninOne/modorganizer-tool_inieditor
* https://github.com/TanninOne/modorganizer-preview_base
* https://github.com/TanninOne/modorganizer-diagnose_basic
* https://github.com/TanninOne/modorganizer-installer_quick
* https://github.com/TanninOne/modorganizer-installer_manual
* https://github.com/TanninOne/modorganizer-installer_fomod
* https://github.com/TanninOne/modorganizer-installer_bundle
* https://github.com/TanninOne/modorganizer-installer_bain
* https://github.com/TanninOne/modorganizer-game_skyrim
* https://github.com/TanninOne/modorganizer-game_oblivion
* https://github.com/TanninOne/modorganizer-game_fallout3
* https://github.com/TanninOne/modorganizer-game_fallout4
* https://github.com/TanninOne/modorganizer-game_falloutnv
* https://github.com/TanninOne/modorganizer-game_gamebryo
* https://github.com/TanninOne/modorganizer-game_features
* https://github.com/TanninOne/modorganizer-check_fnis
* https://github.com/TanninOne/modorganizer-plugin_python
* https://github.com/TanninOne/modorganizer-bsa_extractor
* https://github.com/TanninOne/usvfs
+33
View File
@@ -0,0 +1,33 @@
# This python script contains the configuration for scons
# Copy this to scons_configure.py and adjust to taste.
# Path to your boost install - it should have a boost/ subdirectory and a stage/
# subdirectory. The scons script will use stage/lib if there, or the appropriate
# version for your compiler, if you installed the multiple-build version
BOOSTPATH = r"C:\Apps\boost_1_55_0"
# Version of Visual Studio to use, if you wish to use a specific version. If you
# don't specify a version, the latest will be picked.. See the scons manual for
# supported values.
#MSVC_VERSION = '10.0Exp'
# Path to your python install
# You don't really need to set this up but you might if (say) you have a 32- and
# 64-bit python install and scons has been installed for the 64 bit version
#PYTHONPATH=r"C:\Apps\Python"
# Path to your QT install. This might constrain the version of MSVC you can use.
# This seems to be set by QTCreator
#QTDIR = r"C:\Apps\Qt\4.8.6"
# Path to 7-zip sources
SEVENZIPPATH = r"C:\Apps\7-Zip\7z920"
# Path to zlib. Please read the README file for more information about how this
# needs to be set up
ZLIBPATH = r"C:\Apps\zlib-1.2.8"
# Source control programs. Sadly I can't get this information from qt, even
# though you have to set it up in the configuration
GIT = r"C:\Program Files\git\bin\git.exe"
MERCURIAL = r"C:\Program Files\TortoiseHg\hg.exe"
+349
View File
@@ -0,0 +1,349 @@
CMAKE_MINIMUM_REQUIRED (VERSION 2.8)
CMAKE_POLICY(SET CMP0020 NEW)
#CMAKE_POLICY(SET CMP0043 NEW)
SET(PROJ_AUTHOR Tannin)
SET(PROJ_ARCH x86)
IF(CMAKE_SIZEOF_VOID_P EQUAL 8)
SET(PROJ_ARCH x64)
ENDIF()
SET(organizer_SRCS
transfersavesdialog.cpp
syncoverwritedialog.cpp
spawn.cpp
singleinstance.cpp
settingsdialog.cpp
settings.cpp
selfupdater.cpp
selectiondialog.cpp
queryoverwritedialog.cpp
profilesdialog.cpp
profile.cpp
pluginlistsortproxy.cpp
pluginlist.cpp
overwriteinfodialog.cpp
nxmaccessmanager.cpp
nexusinterface.cpp
motddialog.cpp
modlistsortproxy.cpp
modlist.cpp
modinfodialog.cpp
modinfo.cpp
modinfobackup.cpp
modinfoforeign.cpp
modinfooverwrite.cpp
modinforegular.cpp
modinfowithconflictinfo.cpp
messagedialog.cpp
mainwindow.cpp
main.cpp
loghighlighter.cpp
logbuffer.cpp
lockeddialog.cpp
loadmechanism.cpp
installationmanager.cpp
helper.cpp
filedialogmemory.cpp
executableslist.cpp
editexecutablesdialog.cpp
downloadmanager.cpp
downloadlistwidgetcompact.cpp
downloadlistwidget.cpp
downloadlistsortproxy.cpp
downloadlist.cpp
directoryrefresher.cpp
credentialsdialog.cpp
categoriesdialog.cpp
categories.cpp
bbcode.cpp
activatemodsdialog.cpp
moapplication.cpp
profileinputdialog.cpp
icondelegate.cpp
csvbuilder.cpp
savetextasdialog.cpp
qtgroupingproxy.cpp
modlistview.cpp
problemsdialog.cpp
serverinfo.cpp
browserview.cpp
browserdialog.cpp
persistentcookiejar.cpp
noeditdelegate.cpp
previewgenerator.cpp
previewdialog.cpp
aboutdialog.cpp
json.cpp
modflagicondelegate.cpp
genericicondelegate.cpp
organizerproxy.cpp
viewmarkingscrollbar.cpp
plugincontainer.cpp
organizercore.cpp
instancemanager.cpp
usvfsconnector.cpp
eventfilter.cpp
shared/inject.cpp
shared/windows_error.cpp
shared/error_report.cpp
shared/directoryentry.cpp
shared/util.cpp
shared/appconfig.cpp
shared/leaktrace.cpp
shared/stackdata.cpp
)
SET(organizer_HDRS
transfersavesdialog.h
syncoverwritedialog.h
spawn.h
singleinstance.h
settingsdialog.h
settings.h
selfupdater.h
selectiondialog.h
queryoverwritedialog.h
profilesdialog.h
profile.h
pluginlistsortproxy.h
pluginlist.h
overwriteinfodialog.h
nxmaccessmanager.h
nexusinterface.h
motddialog.h
modlistsortproxy.h
modlist.h
modinfodialog.h
modinfo.h
modinfobackup.h
modinfoforeign.h
modinfooverwrite.h
modinforegular.h
modinfowithconflictinfo.h
messagedialog.h
mainwindow.h
loghighlighter.h
logbuffer.h
lockeddialog.h
loadmechanism.h
installationmanager.h
helper.h
filedialogmemory.h
executableslist.h
editexecutablesdialog.h
downloadmanager.h
downloadlistwidgetcompact.h
downloadlistwidget.h
downloadlistsortproxy.h
downloadlist.h
directoryrefresher.h
credentialsdialog.h
categoriesdialog.h
categories.h
bbcode.h
activatemodsdialog.h
moapplication.h
profileinputdialog.h
icondelegate.h
csvbuilder.h
savetextasdialog.h
qtgroupingproxy.h
modlistview.h
problemsdialog.h
serverinfo.h
browserview.h
browserdialog.h
persistentcookiejar.h
noeditdelegate.h
previewgenerator.h
previewdialog.h
aboutdialog.h
json.h
modflagicondelegate.h
genericicondelegate.h
organizerproxy.h
viewmarkingscrollbar.h
plugincontainer.h
organizercore.h
iuserinterface.h
instancemanager.h
usvfsconnector.h
eventfilter.h
shared/inject.h
shared/windows_error.h
shared/error_report.h
shared/directoryentry.h
shared/util.h
shared/appconfig.h
shared/appconfig.inc
shared/leaktrace.h
shared/stackdata.h
)
SET(organizer_UIS
transfersavesdialog.ui
syncoverwritedialog.ui
simpleinstalldialog.ui
settingsdialog.ui
selectiondialog.ui
queryoverwritedialog.ui
profilesdialog.ui
overwriteinfodialog.ui
motddialog.ui
modinfodialog.ui
messagedialog.ui
mainwindow.ui
lockeddialog.ui
installdialog.ui
finddialog.ui
editexecutablesdialog.ui
downloadlistwidgetcompact.ui
downloadlistwidget.ui
credentialsdialog.ui
categoriesdialog.ui
activatemodsdialog.ui
profileinputdialog.ui
savetextasdialog.ui
problemsdialog.ui
previewdialog.ui
browserdialog.ui
aboutdialog.ui
)
SET(organizer_QRCS
resources.qrc
stylesheet_resource.qrc
)
SET(organizer_RCS
app_icon.rc
version.rc
)
SOURCE_GROUP(Source FILES ${organizer_SRCS})
SOURCE_GROUP(Headers FILES ${organizer_HDRS})
SOURCE_GROUP(UI FILES ${organizer_UIS})
# Qt5
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
SET(CMAKE_AUTOMOC ON)
SET(CMAKE_AUTOUIC ON)
FIND_PACKAGE(Qt5Widgets REQUIRED)
FIND_PACKAGE(Qt5Declarative REQUIRED)
FIND_PACKAGE(Qt5Network REQUIRED)
FIND_PACKAGE(Qt5WinExtras REQUIRED)
FIND_PACKAGE(Qt5WebKitWidgets REQUIRED)
QT5_WRAP_UI(organizer_UIHDRS ${organizer_UIS})
QT5_ADD_RESOURCES(organizer_RCCPPS ${organizer_QRCS})
INCLUDE_DIRECTORIES(${Qt5Declarative_INCLUDES})
ADD_DEFINITIONS(-DQT_MESSAGELOGCONTEXT)
# Boost
SET(Boost_USE_STATIC_LIBS OFF)
SET(Boost_USE_MULTITHREADED ON)
SET(Boost_USE_STATIC_RUNTIME OFF)
FIND_PACKAGE(Boost REQUIRED)
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
FIND_PACKAGE(zlib REQUIRED)
# TODO FindZlib doesn't find the static zlib library
# MO projects
SET(default_project_path "${CMAKE_SOURCE_DIR}/..")
GET_FILENAME_COMPONENT(${default_project_path} ${default_project_path} REALPATH)
SET(project_path "${default_project_path}" CACHE PATH "path to the other mo projects")
SET(lib_path "${project_path}/../../install/libs")
INCLUDE_DIRECTORIES(${project_path}/uibase/src
${project_path}/bsatk/src
${project_path}/esptk/src
${project_path}/archive/src
${project_path}/../usvfs/usvfs
${project_path}/game_gamebryo/src
${project_path}/game_features/src
${project_path}/githubpp/src)
INCLUDE_DIRECTORIES(shared ${ZLIB_INCLUDE_DIRS})
LINK_DIRECTORIES(${lib_path}
${project_path}/../zlib/lib)
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 -DGITID="${GIT_COMMIT_HASH}")
IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
SET(usvfs_name usvfs_x64)
ELSE()
SET(usvfs_name usvfs_x86)
ENDIF()
ADD_EXECUTABLE(ModOrganizer WIN32 ${organizer_HDRS} ${organizer_SRCS} ${organizer_UIHDRS} ${organizer_RCS} ${organizer_RCCPPS})
TARGET_LINK_LIBRARIES(ModOrganizer
Qt5::Widgets Qt5::WinExtras Qt5::WebKitWidgets
${Boost_LIBRARIES}
zlibstatic
uibase esptk bsatk githubpp
${usvfs_name}
Dbghelp advapi32 Version Shlwapi)
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)
###############
## Installation
SET(qt5bin ${Qt5Core_DIR}/../../../bin)
FIND_PROGRAM(WINDEPLOYQT_COMMAND windeployqt PATHS ${qt5bin} NO_DEFAULT_PATH)
INSTALL(TARGETS ModOrganizer
RUNTIME DESTINATION bin)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/ModOrganizer.pdb
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)
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
)"
)
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/stylesheets
${CMAKE_CURRENT_SOURCE_DIR}/tutorials
DESTINATION bin)
+1566 -1059
View File
File diff suppressed because it is too large Load Diff
+45 -15
View File
@@ -1,26 +1,56 @@
TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS = bsatk \
shared \
uibase \
organizer \
hookdll \
archive \
helper \
shared \
uibase \
esptk \
organizer \
hookdll \
archive \
helper \
plugins \
proxydll \
nxmhandler \
BossDummy \
pythonRunner \
esptk
BossDummy \
pythonRunner \
loot_cli
pythonRunner.depends = uibase
plugins.depends = pythonRunner uibase
hookdll.depends = shared
organizer.depends = shared, uibase, plugins
organizer.depends = shared uibase plugins
CONFIG(debug, debug|release) {
DESTDIR = outputd
DESTDIR = $$PWD/../outputd
} else {
DESTDIR = output
DESTDIR = $$PWD/../output
}
STATICDATAPATH = $${DESTDIR}\\..\\tools\\static_data\\dlls
DLLSPATH = $${DESTDIR}\\dlls
otherlibs.path = $$DLLSPATH
otherlibs.files += $${STATICDATAPATH}\\7z.dll \
$${BOOSTPATH}\\stage\\lib\\boost_python-vc*-mt-1*.dll
qtlibs.path = $$DLLSPATH
greaterThan(QT_MAJOR_VERSION, 4) {
QTLIBNAMES += Core Gui Network OpenGL Script Sql Svg Qml Quick Webkit Widgets Xml XmlPatterns
} else {
QTLIBNAMES += Core Declarative Gui Network OpenGL Script Sql Svg Webkit Xml XmlPatterns
}
QTLIBSUFFIX = $${QT_MAJOR_VERSION}.dll
CONFIG(debug, debug|release): QTLIBSUFFIX = "d$${QTLIBSUFFIX}" # Can't use Debug: .. here, it ignores the line - no idea why, as it works in BossDummy.pro
for(QTNAME, QTLIBNAMES) {
QTFILE = Qt$${QTNAME}
qtlibs.files += $$[QT_INSTALL_BINS]\\$${QTFILE}$${QTLIBSUFFIX}
}
INSTALLS += qtlibs otherlibs
OTHER_FILES +=\
../SConstruct\
../scons_configure.py\
SConscript
+179
View File
@@ -0,0 +1,179 @@
import ctypes
import os
import subprocess
def resolve_name(source):
# Get the actual name of the file, after reparse points and symlinks are
# taken into account.
GENERIC_READ = 0x80000000
FILE_SHARE_READ = 0x1
OPEN_EXISTING = 0x3
FILE_FLAG_BACKUP_SEMANTICS = 0x02000000
handle = ctypes.windll.kernel32.CreateFileA(source,
GENERIC_READ,
FILE_SHARE_READ,
None,
OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS,
None)
# get the target
FILE_NAME_NORMALIZED = 0x0
FILE_NAME_OPENED = 0x8
buff = ctypes.create_string_buffer(1024)
res = ctypes.windll.kernel32.GetFinalPathNameByHandleA(handle,
buff,
ctypes.sizeof(buff),
FILE_NAME_NORMALIZED)
target = buff.value
ctypes.windll.kernel32.CloseHandle(handle)
return target
def search_up(path, target):
while True:
if os.path.exists(os.path.join(path, target)):
return True
npath = os.path.dirname(path)
if npath == path:
break
path = npath
return False
Import('qt_env')
env = qt_env.Clone()
modules = [
'Core',
'Gui',
'Network',
'Script',
'Sql',
'WebKit',
'Xml',
'XmlPatterns',
'Declarative'
]
if env['QT_MAJOR_VERSION'] > 4:
modules += [
'Widgets',
'Qml',
'WebKitWidgets'
]
env.EnableQtModules(*modules)
env.Uic(env.Glob('*.ui'))
env.RequireLibraries('uibase', 'shared', 'bsatk', 'esptk')
env.AppendUnique(LIBS = [
'shell32',
'user32',
'ole32',
'advapi32',
'gdi32',
'shlwapi',
'Psapi',
'Version'
])
# We have to 'persuade' moc to generate certain other targets and inject them
# into the list of cpps
other_sources = env.AddExtraMoc(env.Glob('*.h'))
for file in env.Glob('*.rc'):
other_sources.append(env.RES(file))
# Note the order of this is important, or you can pick up the wrong report.h...
# Doing appendunique seems to throw the moc code into a tizzy
env['CPPPATH'] += [
'../archive',
'../plugins/gamefeatures',
'.', # Why is this necessary?
'${LOOTPATH}',
'${BOOSTPATH}',
]
#########################FUDGE###############################
env['CPPPATH'] += [
'../plugins/gameGamebryo',
]
#############################################################
env.AppendUnique(CPPDEFINES = [
'_UNICODE',
'_CRT_SECURE_NO_WARNINGS',
'_SCL_SECURE_NO_WARNINGS',
'BOOST_DISABLE_ASSERTS',
'NDEBUG',
'QT_MESSAGELOGCONTEXT'
])
# Boost produces very long names with msvc truncates. Doesn't seem to cause
# problems.
# Also note to remove the -wd4100 I hacked the boost headers (tagged_argument.hpp)
# appropriately.
env.AppendUnique(CPPFLAGS = [ '-wd4503' ])
env.AppendUnique(LINKFLAGS = [
'/SUBSYSTEM:WINDOWS',
'${EXE_MANIFEST_DEPENDENCY}'
])
# modeltest is optional and it doesn't compile anyway...
cpp_files = [
x for x in env.Glob('*.cpp', source = True)
if x.name != 'modeltest.cpp' and x.name != 'aboutdialog.cpp' and \
not x.name.startswith('moc_') # I think this is a strange bug
]
about_env = env.Clone()
# This is somewhat of a hack until I can work out a way of setting up a build
# with all the repos without using millions of junction points
try:
target = resolve_name(Dir('.').srcnode().abspath)
if search_up(target, '.hg'):
hgid = subprocess.check_output([env['MERCURIAL'], 'id', '-i']).rstrip()
elif search_up(target, '.git'):
hgid = subprocess.check_output([env['GIT'], '-C', target, 'describe',
'--tag']).rstrip()
else:
hgid = "Unknown"
except:
hgid = "Problem determining version"
# FIXME: It'd be much easier to stringify this in the source code
about_env.AppendUnique(CPPDEFINES = [ 'HGID=\\"%s\\"' % hgid ])
other_sources.append(about_env.StaticObject('aboutdialog.cpp'))
env.AppendUnique(LIBPATH = "${ZLIBPATH}/build")
env.AppendUnique(LIBS = 'zlibstatic')
prog = env.Program('ModOrganizer',
cpp_files + env.Glob('*.qrc') + other_sources)
env.InstallModule(prog)
for subdir in ('tutorials', 'stylesheets'):
env.Install(os.path.join(env['INSTALL_PATH'], subdir),
env.Glob(os.path.join(subdir, '*')))
# FIXME Sort the translations. Except they don't exist on the 1.2 branch
res = env['QT_USED_MODULES']
Return('res')
"""
CONFIG(debug, debug|release) {
} else {
QMAKE_CXXFLAGS += /Zi /GL
QMAKE_LFLAGS += /DEBUG /LTCG /OPT:REF /OPT:ICF
}
TRANSLATIONS = organizer_en.ts
QMAKE_POST_LINK += xcopy /y /s /I $$quote($$BASEDIR\\*.qm) $$quote($$DSTDIR)\\translations $$escape_expand(\\n)
"""
+94
View File
@@ -0,0 +1,94 @@
/*
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 <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)
, ui(new Ui::AboutDialog)
{
ui->setupUi(this);
m_LicenseFiles[LICENSE_LGPL3] = "lgpl-3.0.txt";
m_LicenseFiles[LICENSE_GPL3] = "gpl-3.0.txt";
m_LicenseFiles[LICENSE_BSD3] = "bsd3.txt";
m_LicenseFiles[LICENSE_BOOST] = "boost.txt";
m_LicenseFiles[LICENSE_CCBY3] = "by-sa3.txt";
m_LicenseFiles[LICENSE_ZLIB] = "zlib.txt";
m_LicenseFiles[LICENSE_APACHE2] = "apache-license-2.0.txt";
addLicense("Qt", LICENSE_LGPL3);
addLicense("Qt Json", LICENSE_GPL3);
addLicense("Boost Library", LICENSE_BOOST);
addLicense("7-zip", LICENSE_LGPL3);
addLicense("ZLib", LICENSE_ZLIB);
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_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));
#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
}
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() + "/license/" + iter->second;
QString text = MOBase::readFileText(filePath);
ui->licenseText->setText(text);
} else {
ui->licenseText->setText(tr("No license"));
}
}
+71
View File
@@ -0,0 +1,71 @@
#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_GPL3,
LICENSE_BSD3,
LICENSE_BOOST,
LICENSE_CCBY3,
LICENSE_ZLIB,
LICENSE_APACHE2
};
private:
void addLicense(const QString &name, Licenses license);
private slots:
void on_creditsList_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
private:
Ui::AboutDialog *ui;
std::map<int, QString> m_LicenseFiles;
};
#endif // ABOUTDIALOG_H
+368
View File
@@ -0,0 +1,368 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>AboutDialog</class>
<widget class="QDialog" name="AboutDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>746</width>
<height>369</height>
</rect>
</property>
<property name="windowTitle">
<string>About</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<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/splash</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="about">
<attribute name="title">
<string>About</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="nameLabel">
<property name="text">
<string notr="true">Mod Organizer</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="revisionLabel">
<property name="text">
<string>Revision:</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<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="label_3">
<property name="text">
<string notr="true">Copyright 2011-2016 Sebastian Herbord</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string notr="true">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This program 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.&lt;/p&gt;&lt;p&gt;See the GNU General Public License for more details.&lt;/p&gt;&lt;p&gt;Source code can be found at &lt;a href=&quot;https://github.com/TanninOne/modorganizer&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#007af4;&quot;&gt;GitHub&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="software">
<attribute name="title">
<string>Used Software</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QListWidget" name="creditsList"/>
</item>
<item>
<widget class="QTextBrowser" name="licenseText"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="credits">
<attribute name="title">
<string>Credits</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Translators</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">pndrev (German)</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">DaWul (Spanish)</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Fiama (Spanish)</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Alyndiar (French)</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Jlkawaii (French)</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Rigoletto (French)</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Scythe1912 (Chinese)</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">yc0620shen (Chinese)</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">miraclefreak (Czech)</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">tokcdk (Russian)</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Ren (Korean)</string>
</property>
<property name="toolTip">
<string/>
</property>
</item>
<item>
<property name="text">
<string>... more (Can't track)</string>
</property>
<property name="toolTip">
<string/>
</property>
</item>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>Others</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_7">
<item>
<widget class="QListWidget" name="listWidget">
<property name="selectionMode">
<enum>QAbstractItemView::NoSelection</enum>
</property>
<item>
<property name="text">
<string notr="true">blacksol</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">DoubleYou</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">deathneko11</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Bridger</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">GamerPoet</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Gopher</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">GSDFan</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Uhuru</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Wolverine2710</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">z929669</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">thosrtanner</string>
</property>
</item>
<item>
<property name="text">
<string>ogrotten</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="closeButton">
<property name="text">
<string>Close</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources>
<include location="resources.qrc"/>
</resources>
<connections>
<connection>
<sender>closeButton</sender>
<signal>clicked()</signal>
<receiver>AboutDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>460</x>
<y>313</y>
</hint>
<hint type="destinationlabel">
<x>253</x>
<y>167</y>
</hint>
</hints>
</connection>
</connections>
</ui>
+101 -97
View File
@@ -1,97 +1,101 @@
/*
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 <QLabel>
ActivateModsDialog::ActivateModsDialog(const std::map<QString, std::vector<QString> > &missingPlugins, 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());
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) {
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);
}
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 != NULL) {
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 != NULL) {
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();
#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(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 -70
View File
@@ -1,70 +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 "tutorabledialog.h"
#include <map>
#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(const std::map<QString, std::vector<QString> > &missingPlugins, 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
+1 -3
View File
@@ -1,3 +1 @@
#include "version.rc"
IDI_ICON1 ICON DISCARDABLE "mo_icon.ico"
IDI_ICON1 ICON DISCARDABLE "mo_icon.ico"

Some files were not shown because too many files have changed in this diff Show More