aboutsummaryrefslogtreecommitdiff
path: root/gui/launcher.cpp
AgeCommit message (Collapse)Author
2020-01-04GUI: Introduce dynamic layoutsBastien Bouclet
Prior to this change, a GUI layout was only affected by the screen size. Now, a layout can additionally be influenced by the GUI dialog and widgets that uses it. This capability is leveraged to implement the following features: * Layout elements that are not bound to a GUI widget do not take space. This means that dialogs where the widgets shown depend on for example a feature being enabled at configure time no longer have blank spaces. * Widgets can define a minimal required size for their contents not to be cut. For now this is only used for buttons so their width is always sufficient for their caption not to be cut. This mechanism could be applied to other widget types in the future.
2020-01-01ENGINES: Copy the data referenced by QualifiedGameDescriptorBastien Bouclet
The engineId, gameId and description come from static data in the game engines. When the game engines are compiled as dynamic plugins, the QGD structure may outlive the engine plugin. Making a copy ensures the data remains available. Fixes #11292.
2019-12-04GUI: Fix translations for the mass add buttonBastien Bouclet
2019-11-24GUI: Add DropdownButtonWidget and use it in the launcher for mass addBastien Bouclet
DropdownButtonWidget is a button split in two parts vertically. Clicking the left part triggers a default action. Clicking the right part shows a list of other actions the user can choose from. Using this widget on the launcher lets 'Mass add' be a secondary action of the 'Add' button, removing the necessity of pressing the shift key to access the feature.
2019-11-03BASE: Change the command line interface to use engine-qualified game namesBastien Bouclet
Qualified game names have the following form: engineId:gameId. Unqualified game names are still supported as long as they are not ambiguous. However they are considered deprecated and are no longer displayed by the --list-games command.
2019-11-03ENGINES: Automatically upgrade the targets on launch to add an engine IDBastien Bouclet
2019-11-03ENGINES: Change targets to have an 'engine ID'Bastien Bouclet
The engine ID identifies which engine should be used to launch the target. Also remove the 'single ID' system. Different games from engines that used that system now have different game IDs. Also-By: Matthew Hoops <clone2727@gmail.com>
2019-10-03GUI: Add Missing Switch Default CasesD G Turner
These are flagged by GCC if -Wswitch-default is enabled.
2019-05-12GUI: Better integration for the unknown game dialog when adding gamesBastien Bouclet
* The list of candidates now includes unknown variants. When an unknown variant is selected, the unknown game dialog is shown. * On the unknown game dialog, users are given the choice to add the game when that is possible, or to cancel. The goal of those changes is to make the unknown game dialog less confusing for users, especially when both known and unknown games variants are found.
2019-04-30GUI: Support adding games via Drag and DropCameron Cawley
2018-06-27GUI: Grey out unlaunchable games in launcherAdrian Frühwirth
2018-05-28GUI: Move UnknownGameDialog to guiThierry Crozat
2018-05-10ENGINES: Merge GameDescriptor and DetectedGameBastien Bouclet
2018-05-10ENGINES: Factor adding games to ConfManBastien Bouclet
2018-05-10ENGINES: Turn GameDescriptor into a simple structBastien Bouclet
2018-05-10ENGINES: Change MetaEngine::findGame to return a plain game descriptorBastien Bouclet
2018-05-10ENGINES: Add unknown game variants to the game detector resultsBastien Bouclet
2018-04-29ENGINES: Show the unknown Game dialog only when the detector is launched by ↵Lothar Serra Mari
the Add Game feature
2018-01-27GUI: Remove Dialog::markAsDirty to expose full GUI redrawsBastien Bouclet
2018-01-27GUI: Implement dirty-checking for widget redrawsBastien Bouclet
2017-12-03BASE: Remove bad casts between incompatible Plugin typesColin Snover
Previously, a C-style cast was used to convert a Common::Array<Plugin *>, populated with pointers to StaticPlugin and DynamicPlugin instances, to a Common::Array<PluginSubclass<T> *>, but PluginSubclass<T> is a *sibling* class to StaticPlugin/DynamicPlugin, so this cast was invalid and the results undefined. The methods for retrieving subclasses of plugins can't be easily changed to just generate an array of temporary wrapper objects that expose an identical API which dereferences to the preferred PluginObject subclass because pointers to these objects are retained by other parts of ScummVM, so the wrappers would needed to be persisted or they would need to just re-expose the underlying Plugin object again. This indicated that a way to solve this problem is to have the callers receive Plugin objects and get the PluginObject from the Plugin by explicitly stating their desired type, in a similar manner to std::get(std::variant), so that the pattern used by this patch to solve the problem. Closes gh-1051.
2017-06-13GUI: Focus the first 'focusable' widget when rebuilding dialogsBastien Bouclet
Fixes Trac#9838.
2017-03-10GUI: Delay deletion of child widgets when rebuilding launcher and options dialogThierry Crozat
This is to avoid writing in deleted memory in the ButtonWidget::sendCommand when the sent command results in the parent dialog being rebuilt.
2016-10-30GUI: Add possibility to rebuild the launcher dialogThierry Crozat
2016-10-17ALL: Fix compilation with disabled cloud but enabled libcurlEugene Sandulenko
2016-08-24GUI: Fix warningsEugene Sandulenko
2016-08-24GUI: Fix DownloadDialog detectionAlexander Tkachev
Now it calls Launcher directly, so it updates games list on success.
2016-08-24CLOUD: Add auto-detect for downloaded gameAlexander Tkachev
If that's the game, that is. Method is copy-pasted from Launcher, but fixed not to ask the directory and thus doesn't contain the loop.
2016-08-24CLOUD: Replace USE_CLOUD with USE_LIBCURLAlexander Tkachev
In most cases that's the right one to check. USE_CLOUD is defined when either USE_LIBCURL or USE_SDL_NET are, which means if there is no curl, USE_CLOUD still could be defined and linking errors would appear.
2016-08-24GUI: Forbid using download directory in "Add Game"Alexander Tkachev
2016-08-24GUI: Add warning message for game's savepathAlexander Tkachev
2016-06-01GUI: Initialize pointers to NULL, not falseTorbjörn Andersson
2016-06-01GUI: More object initialization cleanupEugene Sandulenko
2015-11-11GUI: Do not show splash when ran from launcherEugene Sandulenko
2015-06-25GUI: Mark "Mass Add..." and "Record..." for translation.Thierry Crozat
2014-09-03Merge pull request #492 from BenCastricum/miscJohannes Schickel
GUI: replace "savegame" by "saved game".
2014-08-22GUI: s/savegame/saved game/Ben Castricum
Makes it consistant throughout the GUI
2014-08-22GUI: Fix description of game specific extraPathBen Castricum
2014-02-18GUI: Make GPL headers consistent in themselves.Johannes Schickel
2013-05-17RECORDER: Implement Events RecorderEugene Sandulenko
2013-02-03GUI: Fix text alignment for the version in the launcher.Johannes Schickel
Formerly in LauncherDialog::reflowLayout an incorrect way to query the acutal text alignment was used for the static text widget used for the ScummVM version.
2012-09-26JANITORIAL: Remove trailing whitespaces.Johannes Schickel
Powered by: git ls-files "*.cpp" "*.h" "*.m" "*.mm" | xargs sed -i -e 's/[ \t]*$//'
2012-06-10GUI: Get rid of SaveLoadChooser::setSaveMode.Johannes Schickel
We already pass the title and process button name to the constructor of SaveLoadChooser and then do not offer any way of changing it, thus changing the edit mode of the chooser is kind of pointless and was never actually used. Instead we pass the mode on SaveLoadChooser construction now.
2012-05-03GUI: Implemented pressed state for buttonsOleksiy Kurochko
2012-03-25GUI: Remove leftover code for the global dithering checkboxFilippos Karapetis
2012-03-19GUI: Add per-engine and per-game optionsFilippos Karapetis
2012-02-26COMMON: Move RenderMode and GUIOptions functionality into separate filesMax Horn
2012-02-21Merge pull request #182 from fingolfin/forbid-ctypeWillem Jan Palenstijn
ALL: Avoid using is* macros from ctype.h
2012-02-20COMMON: Move isFoo functions to namespace Common, add doxygen commentsMax Horn
2012-02-15JANITORIAL: Fix missing whitespace in pointer castTarek Soliman
find -name '*.h' -or -name '*.cpp' | xargs sed -r -i 's@\(([A-Za-z0-9]+)\*\)@(\1 *)@g' This seems to have caught some params as well which is not undesirable IMO. It also caught some strings containing this which is undesirable so I excluded them manually. (engines/sci/engine/kernel_tables.h)