Commit Graph

185 Commits

Author SHA1 Message Date
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
JosJuice
b2af07a7b7 DiscIO: Remove C/I/S prefixes from class names
These prefixes were inconsistent with the rest of Dolphin.

I'm also renaming VolumeWiiCrypted to VolumeWii because of 1113b13.
2017-06-06 12:31:59 +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
shuffle2
497afbffab Merge pull request #5488 from ligfx/qtreordercolumns
DolphinQt2: reorder list columns to match DolphinWX
2017-06-05 17:17:08 -07:00
shuffle2
10e54c8a8e Merge pull request #5490 from ligfx/qtcontrollergridlayout
DolphinQt2: use GridLayout for ControllersWindow
2017-06-05 17:16:27 -07:00
shuffle2
b8f2e24dd5 Merge pull request #5546 from ligfx/qtdynamicthemes
DolphinQt2: live updates to UI theme
2017-06-05 17:15:17 -07:00
Michael Maltese
6b084e21dc SettingsWindow: update icons when theme changes 2017-06-05 17:04:29 -07:00
Michael Maltese
d6db515165 SettingsWindow: cleanup includes 2017-06-05 17:04:29 -07:00
Michael Maltese
4be07b4eb2 ToolBar: update icons when theme changes 2017-06-05 17:04:29 -07:00
Michael Maltese
9bdbd02efc GameListModel: update icons when theme changes 2017-06-05 17:04:29 -07:00
Michael Maltese
5a4ee87d6a DolphinQt2: Settings: emit ThemeChanged signal 2017-06-05 17:04:29 -07:00
Michael Maltese
328333dfb6 RenderWidget: hide cursor 2017-06-05 16:49:28 -07:00
Michael Maltese
833e38ed56 Settings: emit HideCursorChanged() 2017-06-05 16:49:28 -07:00
Michael Maltese
14da8232f6 ConfigManager: remove bAutoHideCursor
It's not used, and sounds like the same thing as `HideCursor`?
2017-06-05 16:49:28 -07:00
Michael Maltese
688f5ed267 DolphinQt2: move Path from toolbar to a pane 2017-06-05 16:46:10 -07:00
Michael Maltese
b296393644 GameList: when list is empty, double-click to add path
Simpler than opening the Paths window, and how DolphinWX does it.
2017-06-05 16:46:10 -07:00
Michael Maltese
20f54fd9ed DolphinQt2: add DoubleClickEventFilter
This is an easy way to get a `doubleClicked` signal for any type
of widget without creating custom classes for each one.
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
JosJuice
c3fa0d6edf DiscIO: Use std::optional in Volume and Blob 2017-06-05 13:26:51 +02:00
Léo Lam
d9fd056803 Fix minor formatting issues
These were not caught by the lint script while it was broken.
2017-06-05 02:32:19 +02:00
Starsam80
e1ea6805a7
Qt: Remove booting from the last path 2017-06-04 14:43:41 -06:00
Leo Lam
a33d48dd0d Merge pull request #5526 from ligfx/fixqtc++17
CMake: make Qt work when using a manual "-std=c++##" flag
2017-06-04 10:10:54 +02:00
JosJuice
703858e217 Merge pull request #5522 from leoetlino/simpler-gettitleid
DiscIO: Use std::optional for GetTitleID instead of pointer
2017-06-04 08:57:36 +02:00
Shawn Hoffman
43dbb635d5 msbuild: remove more meaningless stuff 2017-06-03 18:20:41 -07:00
Shawn Hoffman
09367c8c10 msbuild: remove more duplicate code 2017-06-03 18:20:41 -07:00
Shawn Hoffman
397720a9fe might as well update yet some more pointless version numbers.. 2017-06-03 18:20:40 -07:00
Shawn Hoffman
c251311b02 DolphinQt: remove I_AM_BUILDACUS as the buildbot doesn't use it anymore 2017-06-03 18:20:40 -07:00
Shawn Hoffman
b116e05abe [windows] Do not copy cpack_package_description.txt to output dir 2017-06-03 18:20:39 -07:00
Michael Maltese
c520a53b07 CMake: make Qt work when using a manual "-std=c++##" flag
Based on approach in https://gitlab.kitware.com/cmake/cmake/issues/16468
2017-06-03 17:02:54 -07:00
Léo Lam
1a17c02d6f DiscIO: Use std::optional for GetTitleID instead of pointer
This makes the interface slightly cleaner and a bit more consistent
with the other getters. Still not fully the same, since the others
don't really handle failures with std::optional; but at least the
value is returned by value now, as opposed to having the function
take a pointer to a u64.
2017-06-03 21:56:33 +02:00
Leo Lam
ccccb8463d Merge pull request #5503 from ligfx/qtelidedbutton
DolphinQt2: add ElidedButton for controller mapping buttons
2017-06-03 12:47:18 +02:00
Leo Lam
1a983bd357 Merge pull request #5500 from ligfx/qtfixsorting
Qt: fixes to GameList sorting
2017-06-03 12:46:17 +02:00
shuffle2
3443454ba2 Merge pull request #5271 from JosJuice/allow-aslr
Allow (but don't force) ASLR
2017-06-02 21:53:02 -07: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
87a74ca3ae MappingButton: remove unused includes 2017-05-31 01:17:33 -07:00
Michael Maltese
046c6f468f MappingButton: derive from ElidedButton 2017-05-31 01:17:33 -07:00
Michael Maltese
b378ffb4ec MappingButton: don't set text twice in constructor 2017-05-31 01:17:33 -07:00
Michael Maltese
07c90bed08 DolphinQt2: add QtUtils/ElidedButton 2017-05-31 01:17:33 -07:00
spycrab
118e90ec6e Qt: Use new, themed rating stars 2017-05-31 05:50:37 +02:00
Anthony
25f24d32ff Merge pull request #5463 from spycrab/qt_hidpi
Qt: Fix HiDPI icon scaling
2017-05-30 14:57:05 -07:00
spycrab
1737e81b16 Qt: Fix HiDPI icon scaling 2017-05-30 22:42:21 +02:00
Michael Maltese
1a7210aa74 GameListModel: provide Qt::InitialSortOrderRole for sorting
Fixes regression where pixmap columns can't be sorted by default.
2017-05-29 17:32:40 -07:00
Michael Maltese
8bbc31e0a2 GameList: sort case-insensitively 2017-05-29 17:32:40 -07:00
Michael Maltese
051cbf1962 GameListModel: invert role-column choice tree 2017-05-29 17:32:40 -07:00
Michael Maltese
0cc88342d6 DolphinQt2: add indentation back to ControllerWindow 2017-05-29 17:29:04 -07:00
Michael Maltese
cb235cf142 DolphinQt2: use GridLayout for ControllersWindow
FormLayout is not intended for this sort of dialog:

> QFormLayout is a convenience layout class that lays out its children
> in a two-column form. The left column consists of labels and the right
> column consists of "field" widgets (line editors, spin boxes, etc.).
2017-05-29 17:29:03 -07:00
Leo Lam
c76335eaf1 Merge pull request #5484 from BhaaLseN/permissive
Windows: Enable MSVC Standards Conformance (/permissive-)
2017-05-29 22:29:44 +02:00
Leo Lam
5d7f4cb9c8 Merge pull request #5496 from spycrab/qt_fixtheme
Qt: Fix GetThemeDir()
2017-05-29 18:33:56 +02:00