Commit Graph
394 Commits
Author SHA1 Message Date
BLooperZ b67b88e6d9 GUI: Support unicode and BiDi in editable widget 2022-08-02 22:04:54 +02:00
Thierry Crozat b248add106 GUI: Improve thread-safety for icons set access
The previous commit was not sufficient as getIconsSet() returns a
reference to the SearchSet and it could then be used after the
mutex had been unlocked and while it was being modified in
initIconsSet() called in another thread.
2022-07-02 21:46:14 +02:00
antoniou79 d7dcce6901 GUI: Fix mouse wheel on grid item tray
When using the mouse wheel (scroll up/down) in the Grid view, item tray for a selected game, ScummVM would exit

I didn't notice any side-effects from the fix, but someone more familiar with the code should confirm.
2022-07-02 12:03:05 +02:00
antoniou79 dc69bd4d67 GUI: Fix infinite loop with mouse wheel over tab
Reported as regression in #13106

Comment link:  https://bugs.scummvm.org/ticket/13106#comment:4
2022-06-29 15:54:06 +03:00
Thierry Crozat 715492b3ca GUI: Fix crash in GridWidget when adding game to grid launcher
The crash was not systematic but occured in the case where adding
the game did not change the indexes for the first and last visible
items. The issue was that in setEntryList() was called it did not
cleat the _visibleEntryList array that still contained dangling
pointers to the old items in the _dataEntryList. In most cases
the _visibleEntryList would be updated with pointers to the new
items when calcVisibleEntries() was called from reflowLayout(),
before being used in assignEntriesToItems() (also called from
reflowLayout()). But if the indexes of the first and last visible
items did not change, _visibleEntryList was not updated and we
got a crash in assignEntriesToItems() when trying to access freed
memory.
2022-06-21 00:33:24 +01:00
Thierry Crozat 5ea034391b GUI: Add slider for Grid Launcher icon size 2022-06-12 22:08:53 +01:00
Le Philousophe 6a3e97d863 GUI: Fix dangling pointer when _headerEntryList was reallocated
As we know the size of the array in advance we can preallocate it.
2022-06-10 07:52:46 +02:00
Eugene Sandulenko 84a17741b6 GUI: Fix grid list highlight after editing game. Bug #3960 2022-06-10 01:00:07 +02:00
Le Philousophe 507aaae0bd GUI: When resizing grid make sure selected entry is displayed
Without this, at startup, the grid is not scrolled on the selected game.
2022-06-10 00:52:14 +02:00
Le Philousophe b94ad4d8b8 GUI: Implement setSelected in Grid and use it in launcher 2022-06-10 00:52:14 +02:00
Le Philousophe d2f327921c GUI: Don't store GridItemInfo items twice 2022-06-10 00:52:14 +02:00
Le Philousophe ab87383f56 GUI: Apply filter even when changing sorting criteria 2022-06-10 00:52:14 +02:00
Eugene Sandulenko 29f3e570c3 GUI: Fix editing of colored string in List. Bug #13541 2022-06-09 19:16:36 +02:00
Torbjörn Andersson 8b94209d36 GUI: Fix caret position in list widget
Strip formatting from the list widget string before taking the length of
it to calculate the caret position. This can be seen e.g. in the save
dialog when not using the icon view.
2022-06-07 08:52:13 +02:00
Le Philousophe 293a08df76 GUI: Fix in vs int32 discrepancies 2022-06-02 22:44:11 +02:00
Thierry Crozat 7e69686855 GUI: Fix crash when clicking on item in grid widget
The tray position was not correctly computed and it was most of the
time trying to display it way outside the window (it was using X
instead of Y in one place for the vertical position).

This was a recent regression from a6bc1d587 (GUI: Fixed grid view
for long games list).
2022-06-02 20:49:06 +01:00
Thierry Crozat d3ae365f18 GUI: Fix grid items being twice as small on HiDPI screens with OpenGL mode 2022-06-02 20:34:27 +01:00
Eugene Sandulenko a6bc1d5876 GUI: Fixed grid view for long games list
We used Common::Rect which uses in16 for its members. Lomger lists
exceeded 32,768 in heights, thus, leading to negative numbers. As a result,
scrollbar was not showing up.
2022-06-02 17:40:42 +02:00
Eugene Sandulenko df0c373120 GUI: Fix game name jumping shortcut. Fixes bug #13525 2022-05-29 22:14:52 +02:00
Eugene Sandulenko 4bd1053236 GUI: Properly reload flags/platforms when resolution is changed 2022-05-29 16:39:35 +02:00
Eugene Sandulenko d26ced00c9 GUI: Regenerate attribute list in GridList on list replacement. Fixes bug #13413 2022-05-29 01:11:53 +02:00
Eugene Sandulenko 829c600a02 GUI: Remove remains of the old color lists in *ListWidget 2022-05-29 00:39:35 +02:00
D G Turner c99f548212 GUI: Fix Set But Unused Variable Compiler Warnings in List Widgets 2022-05-28 16:33:00 +01:00
Eugene Sandulenko 828192db59 GUI: Reduced code duplication in GroupedListWidget 2022-05-28 10:46:37 +02:00
Eugene Sandulenko 1edab21c6e GUI: Use color information from the strings in *ListWidget 2022-05-28 10:46:34 +02:00
Eugene Sandulenko 3727b3e16e GUI: Initial code for embedding formatting info into *ListWidget strings 2022-05-26 10:31:45 +02:00
SupSuper 22711c9d0d GUI: Show full game description in grid view tooltip 2022-04-02 05:52:06 +01:00
SupSuper 95f8fc1218 GUI: Handle grid fallback icons more gracefully
Always use the full ID as thumbPath
2022-04-01 08:11:03 +01:00
SupSuper 284c3936ed GUI: Fix grid game icons only showing once 2022-03-31 01:06:49 +01:00
SupSuper 10b085ee5f GUI: Render grid thumbnails correctly in different pixel formats 2022-03-29 05:29:13 +01:00
SupSuper dd4d8fc859 GUI: Add engine icon fallbacks to GridWidget thumbnails 2022-03-29 05:29:11 +01:00
antoniou79 8fcfb7e585 GUI: Fix bad EditTextWidget rect at low window widths
Fix bug https://bugs.scummvm.org/ticket/13339

Solution is taken from our ListWidget (gui/widgets/list.cpp) which performs a similar check in its ListWidget::getEditRect()
2022-03-06 09:01:50 +01:00
Thierry Crozat 24cec3cd1b GUI: Fix use after free of surface in GridWidget
This happened after calling scaleGfx if the original surface was
already at the correct size. In such a case scaleGfx returns the
original surface, so it should not be freed.
2022-02-27 20:11:02 +00:00
SupSuper 57d0df273e GUI: Scale grid widget icons with filtering 2022-02-22 17:46:21 +00:00
Thunderforge fd129ebc0c JANITORIAL: "Mac OS X" and "OS X" to "macOS" in comments
Apple's desktop operating system was formerly called "Mac OS X" and "OS X", but since 2016 it has been called "macOS" (starting with version 10.12).

Changing across all comments and documentation to use this current terminology, except in cases where the historical versions are explicitly referenced. No code changes are made; we should consider changing those in future PRs.
2022-01-29 14:15:05 +01:00
Eugene Sandulenko 43d16746c0 GUI: Add override keywords 2022-01-25 22:16:11 +01:00
Die4Ever 626b86fcce GUI: fix removeTab not writing back _firstWidget 2022-01-23 20:28:55 +02:00
Die4Ever 42a27fda40 GUI: tabs with scrollbars for more pages 2022-01-23 20:28:55 +02:00
Die4Ever 4ef38a9255 GUI: tabs with scrollbars 2022-01-23 20:28:55 +02:00
Die4Ever 30a8d927a1 GUI: tabs with scrollbars 2022-01-23 20:28:55 +02:00
Le Philousophe 0802db2a4e GUI: Initialize language and platform even if unused 2022-01-06 19:39:05 +02:00
Le Philousophe 1b3ac06f69 GUI: Fix various memory leaks related to grid widget 2022-01-06 19:36:23 +02:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Torbjörn Andersson 934567a87c GUI: Fix grid memory leaks
Clearing a HashMap doesn't delete the objects stored inside it, so do
that explicitly.
2021-11-16 13:34:17 +01:00
Torbjörn Andersson c420983634 GUI: Don't leak tray dialogs
Since the dialog isn't used outside of the function, I've also made the
variables local.
2021-11-15 09:46:01 +01:00
Eugene Sandulenko ed5f0c1924 GUI: Properly initialize GridWidget 2021-11-13 22:06:35 +01:00
D G Turner 2a5429f947 GUI: Fix GCC Fall Through Warning 2021-11-13 05:56:51 +00:00
Eugene Sandulenko 04a43695e7 GUI: Use filtered search in GroupedList 2021-11-12 15:38:21 +01:00
Eugene Sandulenko 6f773e2d01 GUI: Draw Grouped List with bold font 2021-11-12 14:46:34 +01:00
Eugene Sandulenko 1661fa1ba6 GUI: Read icons and metadata from gui-icons.dat 2021-11-12 14:46:34 +01:00