Commit Graph

510 Commits

Author SHA1 Message Date
Léo Lam 5c2e03380f Qt: Always show the stop button in the toolbar
Reverts a previous Qt change that was likely not intended to match WX.
2017-09-26 17:44:18 +02:00
Léo Lam 8dcd5cdd1d Qt: Reduce spacing between toolbar actions 2017-09-26 17:43:51 +02:00
Léo Lam b05207325d Qt: Fix render to main
The render widget was not hidden at the right moment.
2017-09-26 17:43:50 +02:00
Léo Lam f28839acf9 Qt: Make toolbar buttons wider
Makes the toolbar look more comfortable instead of all squished
together, and more similar to our current look.

Instead of setting a hardcoded minimal size for buttons, MakeActions()
now uses the maximum size hint width.
2017-09-26 17:43:50 +02:00
Léo Lam 587b275c8e Qt: Increase the height of game list items
This makes the images in the game list look less weird (since they are
not squashed together anymore). The list also looks more like WX now.
2017-09-26 17:43:50 +02:00
Léo Lam 6cfd7baac9 Qt/Config: Fix inconsistent spacing between options 2017-09-26 17:43:50 +02:00
Léo Lam ca3be07e59 Qt/GameList: Fix broken File Name column 2017-09-26 17:43:50 +02:00
Léo Lam 6db55fc2d0 Qt/About: Fix text size to better match WX 2017-09-26 17:43:49 +02:00
Léo Lam a158b87f9b Qt/About: Fix the HTML
* remove useless units after 'zero' values
* reduce the size of 'Dolphin' to be more reasonable and look better
* avoid hardcoding the normal and small font sizes
2017-09-26 17:43:49 +02:00
Léo Lam 8f2558dc89 Qt: Simplify AboutDialog creation
Just create the AboutDialog on the stack -- the actual object lives on
the heap anyway, since Qt uses the pimpl idiom. Removes the need for
an explicit new and a special delete on close attribute.
2017-09-26 17:43:49 +02:00
Léo Lam 730b7fc833 Qt: Remove __DATE__ to make builds reproducible
See also PR #3259.

Also makes the copyright text identical to DolphinWX.
2017-09-26 17:43:49 +02:00
Michael M 9245210c49 Qt: bold graphics settings on ConfigChanged, not EmulationStateChanged
EmulationStateChanged is functionally correct right now, but
ConfigChanged expresses more semantically why the config setting gets
re-read and the widgets updated.
2017-09-25 21:48:13 +02:00
Michael M a334ec3daa Qt: add ConfigChanged signal to Settings 2017-09-25 21:46:23 +02:00
Leo Lam 969a72faed Merge pull request #6079 from spycrab/qt_fix_log
Qt: Fix log / log config window not being marked as hidden when closing
2017-09-21 17:29:24 +02:00
Anthony 47a2a16b77 [Qt] Fix bolding of GraphicsChoice.cpp 2017-09-20 09:13:23 -07:00
spycrab 0b43e1bcf4 Qt: Fix log / log config window not being marked as hidden when closing 2017-09-20 15:12:26 +02:00
spycrab 6c7e392f0c Qt/GraphicsSettings: Fix overriden settings not being bolded 2017-09-20 15:12:05 +02:00
JosJuice b6bc3bc7c9 Remove DVDInterface::ChangeDiscAsHost
There isn't much point in keeping this utility function around
now that RunAsCPUThread provides a simple way of running things
on the CPU thread.
2017-09-17 11:44:27 +02:00
Leo Lam 764e058865 Merge pull request #6063 from ligfx/queuemethodonobject
Qt QueueOnObject/RunOnObject: accept pointers to member functions
2017-09-16 16:46:44 +02:00
Leo Lam 68baf7d8fc Merge pull request #6062 from ligfx/fixqtcorestate
Settings: register the Core::State type with Qt
2017-09-15 22:38:42 +02:00
spycrab f90e81b9db Qt/Properties: Implement "Gecko codes" tab 2017-09-15 19:45:46 +02:00
JosJuice a0cddc579f DolphinQt2: Check for file systems being nullptr
nullptr gets returned for file systems that are deemed invalid.
2017-09-15 19:44:23 +02:00
Michael M 7f812a7a03 RunOnObject: accept pointers to member functions 2017-09-15 10:36:33 -07:00
Michael M 1e27e87d93 QueueOnObject: accept pointers to member functions 2017-09-15 10:36:32 -07:00
Michael M 6191f04524 Settings: register the Core::State type with Qt 2017-09-15 10:35:38 -07:00
Michael M 4ea8166b93 Qt: Advanced config pane 2017-09-15 10:35:01 -07:00
Leo Lam 7cb8d6612c Merge pull request #5870 from JosJuice/lazy-filesystem
DiscIO: Use Common::Lazy more
2017-09-15 19:30:05 +02:00
JosJuice f294599e73 DiscIO: Use Common::Lazy for loading GC banners 2017-09-15 19:21:50 +02:00
Leo Lam 2b4bf8662a Merge pull request #5577 from ligfx/separateexpressionparsingandbinding
ControlReference/ExpressionParser: separate parsing from binding
2017-09-15 19:11:57 +02:00
spycrab 5aecd61ede Qt/Settings: Implement cheat settings 2017-09-15 19:01:23 +02:00
spycrab 8687f6aae7 Qt: Implement CheatWarningWidget 2017-09-15 19:01:23 +02:00
spycrab 8580e159fe Qt/SettingsWindow: Add SelectGeneralPane method 2017-09-15 19:01:22 +02:00
Leo Lam 0d07821935 Merge pull request #6024 from ligfx/coreonstatechangedcallback
Qt: use Settings::EmulationStateChanged
2017-09-15 18:45:17 +02:00
Leo Lam 30dd544931 Merge pull request #5990 from spycrab/qt_logger_cleanup
Qt: Make Log and Log Configuration widget separate from dock
2017-09-15 18:30:45 +02:00
Michael M 60cba5722c Qt: use translations 2017-09-14 17:15:21 -07:00
Michael M b22ed9683d InterfacePane: add all interface languages 2017-09-14 17:15:21 -07:00
Michael M 31f1c06226 ControlReference: don't reparse expression when references are updated 2017-09-14 12:53:35 -07:00
spycrab 48d57f223d Qt: Make Log and Log Configuration widget separate 2017-09-14 20:56:48 +02:00
Michael M 3e1072b24d Qt: use Settings::EmulationStateChanged 2017-09-13 17:30:18 -07:00
Michael M 8e805dcbf4 Core: SetOnStoppedCallback -> SetOnStateChangedCallback 2017-09-13 17:30:18 -07:00
Michael M d217e797f2 move Movie::DoFrameStep to Core::DoFrameStep 2017-09-13 17:30:18 -07:00
spycrab e7318fda34 Qt: Bring column selection up to par with Wx 2017-09-13 22:05:45 +02:00
spycrab 2a7ad0b721 Qt/FilesystemWidget: Use AddAction helper 2017-09-11 14:25:30 +02:00
Mat M a9b339fb65 Merge pull request #6048 from spycrab/qt_fix_tools
Qt: Fix "Load Wii System Menu" being in the wrong place
2017-09-10 02:18:13 -04:00
spycrab c3a08f8653 Qt: Fix "Load Wii System Menu" being in the wrong place 2017-09-10 06:43:29 +02:00
Lioncash 696e1b40b5 Common: Move version strings to their own header
Ideally Common.h wouldn't be a header in the Common library, and instead be renamed to something else, like PlatformCompatibility.h or something, but even then, there's still some things in the header that don't really fall under that label

This moves the version strings out to their own version header that doesn't dump a bunch of other unrelated things into scope, like what Common.h was doing.

This also places them into the Common namespace, as opposed to letting them sit in the global namespace.
2017-09-09 19:28:10 -04:00
Markus Wick 62a331deed Merge pull request #6035 from leoetlino/warning-fixes
Core: Fix warnings
2017-09-08 09:17:31 +02:00
spycrab 16e99985f9 Qt/GameList: Use AddAction for "Change Disc" 2017-09-07 20:42:11 +02:00
Léo Lam a8849f87f1 Core: Fix warnings
Fixes two -Wmissing-declarations warnings
2017-09-07 20:35:17 +02:00
spycrab 0b2b72b366 Qt: Fix Wii Disc options being disabled while core is running 2017-09-07 19:46:06 +02:00
Leo Lam 14bd0fbf4b Merge pull request #6029 from spycrab/qt_change_disc
Qt/GameList: Add "Change Disc" option
2017-09-07 19:24:25 +02:00
Leo Lam c472462498 Merge pull request #6021 from spycrab/qt_build_by_default
CMake: Build DolphinQt2 by default
2017-09-07 19:23:07 +02:00
Leo Lam 0de3593b45 Merge pull request #6008 from spycrab/qt_older
Qt: Support versions < 5.6
2017-09-07 19:22:40 +02:00
Leo Lam 7971a4d66c Merge pull request #5981 from spycrab/qt_filesystem
Qt/GameList: Implement "Filesystem" tab
2017-09-07 19:19:48 +02:00
spycrab 8f8e96f59f Qt/GameList: Add "Change Disc" option 2017-09-07 01:25:22 +02:00
JosJuice b96e4a2bce Merge pull request #5927 from spycrab/qt_gamelist_cache
Qt: Implement gamelist caching
2017-09-05 21:16:22 +02:00
spycrab 28799bbe79 CMake: Build DolphinQt2 by default 2017-09-04 22:28:48 +02:00
spycrab a361a1deed Qt/SettingsWindow: Fix window not being detected as a dialog by some window managers 2017-09-04 19:50:24 +02:00
spycrab 4fdd4e2718 Qt: Support versions < 5.6 2017-09-04 10:40:47 +02:00
spycrab f00456e6bf Qt/ControllersWindow: Use std::map instead of std::unordered_map 2017-09-04 08:58:52 +02:00
spycrab 0d3c4a3883 Qt/DevelopmentWarning: Add "Don't show me this warning again" option 2017-09-03 03:46:23 +02:00
spycrab 1b593fd56b Qt: Implement TAS/Movie shortcuts 2017-09-03 02:58:38 +02:00
spycrab 0e7ed3514f Qt: Implement "Movie" menu 2017-09-03 02:57:44 +02:00
spycrab 4163ee42bc Qt/GameList: Implement SelectionChanged() 2017-09-03 01:49:04 +02:00
spycrab 018c2cfd65 Qt/MSVC: Add icon 2017-09-02 23:51:59 +02:00
spycrab fcdd247f93 Qt: Fix building on <= 5.7.x 2017-09-02 03:20:20 +02:00
spycrab 1173c2f790 Qt: Implement "Extract Certificates from NAND" 2017-08-29 08:31:50 +02:00
spycrab 561d31f887 Qt: Implement "Import BootMii NAND Backup" 2017-08-29 08:31:45 +02:00
spycrab a2b7632850 Qt: Implement "Load GameCube Main Menu" 2017-08-29 02:57:46 +02:00
spycrab 0dfde1d34e Qt: Implement "Export All Wii Saves" 2017-08-28 23:00:14 +02:00
spycrab 9469fc3d6f Qt: Implement "Import Wii Save" 2017-08-28 23:00:14 +02:00
spycrab 95a53a435c Qt/GraphicsWidget: Fix bad layout column 2017-08-27 10:04:06 +02:00
spycrab 8b346b7058 Qt/GameList: Implement "Filesystem" tab 2017-08-26 14:56:33 +02:00
spycrab 56aad4a958 Qt/PropertiesDialog: Make title more like Wx 2017-08-26 14:44:38 +02:00
spycrab 2630fa0ce9 Qt: Only show "Filesystem" Tab when game is disc based 2017-08-25 20:35:41 +02:00
spycrab b9c5a2af05 Qt: Implement gamelist caching 2017-08-24 07:17:31 +02:00
Anthony 935c1da357 Merge pull request #5951 from ligfx/gametrackerworkqueuethread
GameTracker: use new Common::WorkQueueThread instead of signals/slots
2017-08-23 08:02:36 -07:00
Leo Lam 788af71f30 Merge pull request #5949 from ligfx/gamelistmodelupdategame
GameListModel: make UpdateGame update existing files as well
2017-08-22 21:39:29 +02:00
Leo Lam b3a8209821 Merge pull request #5960 from ligfx/gamefiledontstorefilepathparts
GameFile: don't store file path parts
2017-08-22 21:29:30 +02:00
Leo Lam 232b81999a Merge pull request #5961 from ligfx/gamefilebanner
GameFile: handle missing banners in UI instead
2017-08-22 21:26:38 +02:00
Michael M d00ecb7231 GameFile: remove unused m_company 2017-08-22 12:18:49 -07:00
JosJuice 09f3f9b41a Remove NonCopyable
The class NonCopyable is, like the name says, supposed to disallow
copying. But should it allow moving?

For a long time, NonCopyable used to not allow moving. (It declared
a deleted copy constructor and assigment operator without declaring
a move constructor and assignment operator, making the compiler
implicitly delete the move constructor and assignment operator.)
That's fine if the classes that inherit from NonCopyable don't need
to be movable or if writing the move constructor and assignment
operator by hand is fine, but that's not the case for all classes,
as I discovered when I was working on the DirectoryBlob PR.

Because of that, I decided to make NonCopyable movable in c7602cc,
allowing me to use NonCopyable in DirectoryBlob.h. That was however
an unfortunate decision, because some of the classes that inherit
from NonCopyable have incorrect behavior when moved by default-
generated move constructors and assignment operators, and do not
explicitly delete the move constructors and assignment operators,
relying on NonCopyable being non-movable.

So what can we do about this? There are four solutions that I can
think of:

1. Make NonCopyable non-movable and tell DirectoryBlob to suck it.

2. Keep allowing moving NonCopyable, and expect that classes that
   don't support moving will delete the move constructor and
   assignment operator manually. Not only is this inconsistent
   (having classes disallow copying one way and disallow moving
   another way), but deleting the move constructor and assignment
   operator manually is too easy to forget compared to how tricky
   the resulting problems are.

3. Have one "MovableNonCopyable" and one "NonMovableNonCopyable".
   It works, but it feels rather silly...

4. Don't have a NonCopyable class at all. Considering that deleting
   the copy constructor and assignment operator only takes two lines
   of code, I don't see much of a reason to keep NonCopyable. I
   suppose that there was more of a point in having NonCopyable back
   in the pre-C++11 days, when it wasn't possible to use "= delete".

I decided to go with the fourth one (like the commit title says).
The implementation of the commit is fairly straight-forward, though
I would like to point out that I skipped adding "= delete" lines
for classes whose only reason for being uncopyable is that they
contain uncopyable classes like File::IOFile and std::unique_ptr,
because the compiler makes such classes uncopyable automatically.
2017-08-22 16:40:34 +02:00
Michael M 5f30ebed23 GameFile: don't store file path parts 2017-08-21 23:55:45 -07:00
Michael M e88b5f4254 GameFile: add missing include for QFileInfo 2017-08-21 23:55:45 -07:00
Michael M 061da1300a GameFile: handle missing banners in UI instead
Currently, GameFile returns a generic banner if the file didn't have one
available (either because the file format doesn't support it, or because
it's a Wii file without an associated save).

It makes more sense to handle the lack of banner in the UI layer. The
game list will use the generic missing banner explicitly (no change from before), and the game info window now omits the banner display entirely if the file didn't have one (since it's not useful to display/allow the user to save the "missing banner" banner).
2017-08-21 18:00:04 -07:00
Michael M 8c13e0230c GameTracker: use WorkQueueThread 2017-08-20 14:40:56 -07:00
Leo Lam 165a995cc4 Merge pull request #5950 from ligfx/gamelistmodelfilenamefallback
GameListModel: fallback to file name if long name is empty
2017-08-20 23:29:27 +02:00
Michael M 1a59ea3adb GameFile: don't assign English long name for ELF/DOLs 2017-08-20 13:50:24 -07:00
Michael M f3ab974bc6 GameListModel: fallback to file name if long name is empty 2017-08-20 13:50:24 -07:00
Michael M 6bfb280cec GameListModel: make UpdateGame take a const ref 2017-08-20 13:46:49 -07:00
Michael M f724a06108 GameListModel: make UpdateGame update existing files as well 2017-08-20 13:46:49 -07:00
Michael M 623026f420 Connect to Settings::PathAdded/Removed directly in GameListModel
It no longer makes sense to connect these signals in GameList, since
GameListModel is now owned by Settings.
2017-08-19 15:59:40 -07:00
Michael M 7d9ad88bc5 Add initial paths to GameTracker after construction
It's strange to see GameTracker add its own initial paths in
construction, because you might expect a race condition where the
GameLoaded signal is emitted before it gets connected to in
GameListModel.

In fact, this doesn't happen, but only because of how it abuses the Qt
signals mechanism to load files asynchronously: GameLoader emits a
GameLoaded signal which gets forwarded to the GameTracker::GameLoaded
signal _after_ control returns to the event loop, at which point
GameListModel has connected.

This commit moves the logic of adding initial paths out of GameTracker
to a point after the signals are connected, which is more obvious and
doesn't rely on how GameTracker implements concurrency.
2017-08-19 15:59:40 -07:00
Michael M abf55be70d RunOnObject: add missing QThread include 2017-08-17 16:41:35 -07:00
Leo Lam a53b01360c Merge pull request #5898 from ligfx/extractupnp
Common: extract UPnP namespace from NetPlayServer
2017-08-17 03:11:41 +08:00
Léo Lam d2452b8ecf Qt: Fix old usage of GetSelectedGame
Waited too long before merging a PR, which managed to break the build
because GetSelectedGame was changed without introducing any conflict :(
2017-08-16 13:21:14 +02:00
Leo Lam 3748384008 Merge pull request #5746 from leoetlino/disc-updates
Add support for installing disc updates from the game list
2017-08-16 19:02:42 +08:00
Jonathan Hamilton 5c213a5ad5 Qt frontend build fix for USE_UPNP=OFF
A couple of missing "#ifdef USE_UPNP" around
NetPlaySetupDialog::m_host_upnp
2017-08-14 13:31:55 -07:00
Michael M b5d070b0cf NetPlayServer: handle port forwarding in constructor 2017-08-13 18:50:52 -07:00
Michael M 4b50e77a26 NetPlayClient/Server: apply Parameter Object pattern to traversal parameters 2017-08-13 18:50:52 -07:00