Commit Graph

172 Commits

Author SHA1 Message Date
Lioncash 839fc7e749
DolphinQt2/MainWindow: Resolve a memory leak on systems with X11
In the case we had X11 libs available, we'd allocate an XRRConfiguration instance and pass it
to the GraphicsWindow instance, but it would never actually be freed.
2018-04-05 09:07:08 -04:00
Léo Lam 9be505fde2
Merge pull request #6473 from spycrab/qt_dbg_memory
Qt/Debugger: Implement "Memory" widget
2018-04-04 16:58:04 +02:00
spycrab 95ae4b34d9 Qt/Debugger: Implement "Memory" widget 2018-04-04 13:43:30 +02:00
Lioncash 306d132232 MainWindow: Remove unused std::string variable in NetPlayHost() 2018-03-27 22:47:02 -04:00
Léo Lam 98f62a3ecd
Merge pull request #6530 from spycrab/qt_hires_icon
Various icon improvements
2018-03-27 18:08:46 +02:00
spycrab 4f63d7f204 Qt: Fix low-resolution icon 2018-03-27 17:32:45 +02:00
spycrab 3f1430587c Qt/RenderWidget: Draw background on pause 2018-03-25 01:26:50 +01:00
Léo Lam 305b3dc835
Merge pull request #6497 from spycrab/qt_file
Qt: Implement missing "File" menu items
2018-03-24 09:10:49 +01:00
spycrab cb71b06afc Qt: Show shader generation window 2018-03-24 03:02:47 +01:00
spycrab 95a5a51e55 Qt: Implement missing "File" menu items 2018-03-23 10:58:54 +01:00
spycrab cc3d5a9921 Qt: Fix fullscreen quitting 2018-03-22 15:29:08 +01:00
Anthony 30ccaa3fd5
Merge pull request #6481 from spycrab/qt_fix_fs
Qt: Fix fullscreen
2018-03-21 16:44:54 -07:00
spycrab 8ead5be9f2 Qt: Fix fullscreen 2018-03-21 22:57:16 +01:00
spycrab 809dd665c7 Qt/MainWindow: Remove obnoxious border 2018-03-21 22:48:17 +01:00
spycrab 3292abb41d Qt: Implement search 2018-03-21 20:04:13 +01:00
Anthony 1c3cc26d19
Merge pull request #6386 from spycrab/qt_dbg_code
Qt/Debugger: Implement "Code" widget
2018-03-15 11:35:26 -07:00
JosJuice 1f1dae367d Unify ISOFile (wx) with GameFile (Qt) and put it in UICommon
The original reason I wanted to do this was so that we can replace
the Android-specific code with this in the future, but of course,
just deduplicating between DolphinWX and DolphinQt2 is nice too.

Fixes:

- DolphinQt2 showing the wrong size for split WBFS disc images.

- DolphinQt2 being case sensitive when checking if a file is a DOL/ELF.

- DolphinQt2 not detecting when a Wii banner has become available
after the game list cache was created.

Removes:

- DolphinWX's ability to load PNGs as custom banners. But it was
already rather broken (see https://bugs.dolphin-emu.org/issues/10365
and https://bugs.dolphin-emu.org/issues/10366). The reason I removed
this was because PNG decoding relied on wx code and we don't have any
good non-wx/Qt code for loading PNG files right now (let's not use
SOIL), but we should be able to use libpng directly to implement PNG
loading in the future.

- DolphinQt2's ability to ignore a cached game if the last modified
time differs. We currently don't have a non-wx/Qt way to get the time.
2018-03-09 13:08:38 +01:00
spycrab 0a5f0efe18 Qt/Debugger: Implement "Code" widget 2018-02-28 19:47:56 +01:00
Rukai a8d482d8e1 IR widget is now a rectangle 2018-02-13 07:17:16 +11:00
Rukai d07e212cef Qt: Implement Wii TAS input window 2018-02-13 07:15:54 +11:00
Rukai 3f1ffbad0d Qt: Implement GC TAS input window 2018-02-13 07:15:53 +11:00
Rukai 4b5373b25b Remove hardcoded esc hotkey, make pause/stop hotkey actually toggle rather than just pausing, fix frame advance hotkey 2018-02-10 23:30:59 +11:00
spycrab 7c5e464584 Qt: Work around broken drivers that don't allow backend switching 2018-02-03 14:19:12 +01:00
spycrab 21db1e9504 Qt: Implement GameCube memory manager 2018-01-29 01:01:25 +01:00
spycrab aae5c950f0 Qt: Implement "Connect Wii Remotes" menu 2018-01-24 19:47:47 +01:00
Léo Lam 1f89d91deb
Merge pull request #6280 from spycrab/qt_screensaver
Qt: Toggle Screensaver
2018-01-03 13:13:18 +01:00
spycrab adada16603 Qt: Toggle Screensaver 2018-01-03 12:38:34 +01:00
spycrab b63ec57c1e Qt: Connect debugging widgets 2017-12-28 19:08:38 +01:00
spycrab 8795b342d1 Qt/Debugger: Implement "Breakpoints" window 2017-12-28 19:08:38 +01:00
spycrab 08716be43b Qt/Debugger: Implement "Watch" window 2017-12-28 19:07:56 +01:00
spycrab ec37ce093f Qt/Debugger: Implement "Registers" window 2017-12-28 19:07:18 +01:00
JosJuice 9dd88d76dd Redesign the ability to load state at boot
BootParameters can now contain the path of a savestate to load at boot.
Movie has been made to use this instead of poking at Core.cpp's state.
2017-12-26 20:39:03 +01:00
JosJuice ac18cffcab DolphinQt2: Don't crash when trying to play without a game selected 2017-12-25 18:41:53 +01:00
JosJuice c4db59e7b6 Clarify the "Select the OTP/SEEPROM dump" message
Most users don't know what OTP/SEEPROM means.
2017-12-02 18:23:38 +01:00
spycrab 474b1c2d5c Qt: Implement FIFO Player 2017-11-19 22:06:32 +01:00
Michael M 27e1577da9 Qt MappingWindow: move controller type into constructor 2017-11-05 08:04:16 -08:00
JosJuice d454e041b0 Make GUI strings more consistent
Most of the changes I've made here were because of small
differences between DolphinWX and DolphinQt2.
2017-11-02 14:32:16 +01:00
Léo Lam 96d7c39891 NANDImporter: Add support for dumps that don't include keys
This adds support for NAND images that only include the NAND
(i.e. without the OTP/SEEPROM dump appended at the end of the file).
2017-10-28 21:27:18 +02:00
Léo Lam 4b4a9a6486 UI: Implement a command line option to boot NAND title 2017-10-24 11:41:55 +02:00
Léo Lam 60ba382799 Boot: Add support for booting NAND titles with just the ID 2017-10-24 11:41:54 +02:00
Leo Lam 743568f9d4 Merge pull request #5984 from spycrab/qt_gecko
Qt/GameList: Implement "Gecko codes" Tab
2017-09-27 20:50:28 +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 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
spycrab f90e81b9db Qt/Properties: Implement "Gecko codes" tab 2017-09-15 19:45:46 +02:00
Michael M 1e27e87d93 QueueOnObject: accept pointers to member functions 2017-09-15 10:36:32 -07:00
Leo Lam 0d07821935 Merge pull request #6024 from ligfx/coreonstatechangedcallback
Qt: use Settings::EmulationStateChanged
2017-09-15 18:45:17 +02: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
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
spycrab 0e7ed3514f Qt: Implement "Movie" menu 2017-09-03 02:57:44 +02:00
spycrab fcdd247f93 Qt: Fix building on <= 5.7.x 2017-09-02 03:20:20 +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
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
Michael M fdb5828d62 Qt MainWindow: clean up Netplay settings logic 2017-08-13 18:50:52 -07:00
Michael M 3c002f0213 GameList: make GetSelectedGame a pointer to GameFile 2017-08-10 13:22:35 -07:00
spycrab 13fac93a29 Qt: Implement NetPlay 2017-08-10 06:49:57 +02:00
JosJuice fa4723ffb4 DolphinQt2: Rename "Table"/"List" to "List View"/"Grid View"
Sentret_C posted this comment on Transifex recently:

"What Dolphin refers to as "Table View" and "List View" are
similar to "List View" and "Grid View" in Steam, and I think
the Steam names describe them better."

I agree with that, so here's a commit that changes the names.
2017-08-06 11:35:45 +02:00
spycrab 84b44fa467 Qt: Implement logging widget (+ configuration) 2017-08-01 01:36:08 +02:00
Leo Lam be8324380d Merge pull request #5786 from grimpunch/qt_viewoptions
Qt: Implement Show Platforms / Show Regions
2017-07-26 12:02:14 +08:00
Christian Murphy df35a26628 Qt: Implement Show Platforms / Show Regions
Porting the View config logic from WX to Qt.
Adds to the View Menu
2017-07-24 14:36:09 +01:00
Leo Lam 3cbf56a9ad Merge pull request #5797 from ligfx/qtoptionsmenu
Qt: implement remainder of 'Options' menu
2017-07-23 14:46:48 +08:00
Michael Maltese e1554c04a1 Qt: implement remainder of 'Options' menu 2017-07-16 18:23:59 -07:00
spycrab e3cf1e4f37 Qt: Fix missing window border after exiting fullscreen under Windows 2017-07-16 01:09:36 +02:00
Leo Lam 1de9bf2cca Merge pull request #5743 from spycrab/qt_fix_shutdown
Qt: Fix multiple emulation shutdown bugs
2017-07-11 09:13:07 +02:00
spycrab ebe169a218 Qt: Fix multiple emulation shutdown bugs 2017-07-10 08:16:51 +02:00
spycrab adf2cd4252 Qt: Fix "Install WAD" being enabled while emulation is running 2017-07-09 16:09:30 +02:00
spycrab 2cf0228ada Qt: Implement sysmenu booting 2017-07-06 21:27:31 +02:00
Leo Lam aa1d750f30 Merge pull request #5664 from ligfx/removesettings
DolphinQt2: replace Settings with SConfig where possible
2017-07-04 13:45:21 +02:00
Starsam80 3eac4b6c9d
Qt: Don't force a minimum size for the main window 2017-07-02 16:20:37 -06:00
Michael Maltese d0fdb9f149 DolphinQt2: replace Settings with SConfig where possible
Changes:
- `ShowDevelopmentWarning` is now under the '[Interface]' group in
  Dolphin.ini, with other interface-related settings. So, whoever uses
  DolphinQt will have to edit that manually again. Sorry!
- Game search paths and the last file are now shared properly with
  DolphinWX
- Qt-only preferences like "Preferred View: list/table" are now
  stored using the platform's native settings storage, rather than in
  UI.ini
2017-06-29 17:17:32 -07:00
spycrab 908e1e9aba Qt: Implement graphics window and controls 2017-06-28 20:14:38 +02:00
Léo Lam 1a6b5ca36a Qt: Add menu item to perform online update 2017-06-28 11:23:08 +02:00
shuffle2 f1425a0c60 Merge pull request #5652 from spycrab/qt_audio
Qt/Settings: Implement Audio tab
2017-06-27 11:46:14 -07:00
shuffle2 9e1977e129 Merge pull request #5685 from spycrab/qt_dragndrop
Qt: Implement gamelist drag and drop
2017-06-27 11:44:06 -07:00
spycrab ba3df3db05 Qt/Settings: Implement audio pane 2017-06-27 20:25:38 +02:00
spycrab feb67a3953 Qt: Fix emulation not returning to its original state when aborting shutdown 2017-06-27 18:06:27 +02:00
spycrab 2a1d18444f Qt: Implement gamelist drag and drop 2017-06-27 10:18:15 +02:00
spycrab 6688e66c60 Qt: Implement safe shutdown 2017-06-26 21:47:32 +02:00
Leo Lam 3fe8e102fc Merge pull request #5648 from leoetlino/qt-shutdown
Qt: Fix emulation stopped signal
2017-06-20 21:14:13 +02:00
Anthony b584d2797f Merge pull request #5508 from ligfx/qtresizerenderwidget
DolphinQt2: allow resizing RenderWidget/fix fullscreen
2017-06-19 12:26:18 -07:00
Léo Lam fb135c99e3 Qt: Fix emulation stopped signal
Same old bug as in WX. The core is not shut down until the on stopped
callback is invoked.
2017-06-19 21:24:32 +02:00
Michael Maltese 5b3b6b7f3d DolphinQt2: FocusEventFilter -> WindowActivationEventFilter 2017-06-15 16:12:05 -07:00
shuffle2 03c1a1e392 Merge pull request #5510 from spycrab/qt_hotkeys
Qt: Implement hotkeys
2017-06-06 16:12:52 -07:00
Léo Lam 22992ae41e Boot: Clean up the boot code
* Move out boot parameters to a separate struct, which is not part
  of SConfig/ConfigManager because there is no reason for it to
  be there.

* Move out file name parsing and constructing the appropriate params
  from paths to a separate function that does that, and only that.

* For every different boot type we support, add a proper struct with
  only the required parameters, with descriptive names and use
  std::variant to only store what we need.

* Clean up the bHLE_BS2 stuff which made no sense sometimes. Now
  instead of using bHLE_BS2 for two different things, both for storing
  the user config setting and as a runtime boot parameter,
  we simply replace the Disc boot params with BootParameters::IPL.

* Const correctness so it's clear what can or cannot update the config.

* Drop unused parameters and unneeded checks.

* Make a few checks a lot more concise. (Looking at you, extension
  checks for disc images.)

* Remove a mildly terrible workaround where we needed to pass an empty
  string in order to boot the GC IPL without any game inserted.
  (Not required anymore thanks to std::variant and std::optional.)

The motivation for this are multiple: cleaning up and being able to add
support for booting an installed NAND title. Without this change, it'd
be pretty much impossible to implement that.

Also, using std::visit with std::variant makes the compiler do
additional type checks: now we're guaranteed that the boot code will
handle all boot types and no invalid boot type will be possible.
2017-06-06 16:27:52 +02:00
spycrab 151ae38a56 Qt: Implement hotkeys (+ configuration) 2017-06-06 13:49:49 +02:00
shuffle2 bc8024ed21 Merge pull request #5549 from Starsam80/qt-title
Qt: Add the version to the window title
2017-06-05 18:49:50 -07:00
Michael Maltese 688f5ed267 DolphinQt2: move Path from toolbar to a pane 2017-06-05 16:46:10 -07:00
Michael Maltese 47e8cb97b4 DolphinQt2: move path signals from PathDialog to Settings 2017-06-05 16:46:10 -07:00
Michael Maltese 548522877a DolphinQt2: make Settings a singleton
With this, we can get signals when properties change.
2017-06-05 16:46:10 -07:00
Starsam80 e04480e5f5
Qt: Add the version to the window title 2017-06-05 12:36:30 -06:00
Starsam80 e1ea6805a7
Qt: Remove booting from the last path 2017-06-04 14:43:41 -06:00
Michael Maltese 040bddafa6 MainWindow: shutdown different input interfaces
`MainWindow` initializes a number of input interfaces but never shuts
them down. This was causing a crash-after-exit on macOS where the
ControllerInterface backend stores a `std::thread` object in a static
variable and only stops it when ControllerInterface::Shutdown is called.
2017-05-31 21:14:55 -07:00
Michael Maltese 8bbe4a0743 DolphinQt2: allow resizing RenderWidget/fix fullscreen 2017-05-31 21:14:41 -07:00
Leo Lam f4190ab1c4 Merge pull request #5465 from sepalani/gc-bios
Tools: Load GameCube BIOS added
2017-05-26 10:23:03 +02:00
spycrab d65006b91b Qt: Fix games crashing on start 2017-05-23 22:12:01 +02:00
Sepalani 95ea721f06 Tools: Load GameCube BIOS added 2017-05-22 22:44:21 +01:00