The inline URL building in GameSelector's copy-link action moves into a
shared helper so every invite/copy site produces the same link format.
The helper embeds the game description as an extra "game" query item
(percent-encoded); links without it stay valid — the receiving parser
ignores unknown query items.
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [UserList] Unify friends/online/ignored list with section dividers and add search bar.
Took 31 minutes
Took 7 seconds
* [UserList] Add a light mode theme
Took 12 minutes
Took 11 seconds
Took 5 minutes
Took 2 minutes
* [UserList] Re-sort when a user's online state changes
setUserOnline() flipped the online flag but never re-sorted, so a buddy
who went offline kept the position they had while online and stayed at
the top of the list. Re-sort (and re-apply the filter) whenever the flag
actually changes, mirroring processUserInfo().
Took 10 minutes
* [UserList] Show users in every section they belong to
The sectioned list used one row per user with a priority rule
(ignored > buddy > online), so an online buddy only appeared under
"Buddies" and never in the "Online" list. Sections are now pure
membership views: a user gets one row per section they belong to, so an
online buddy appears under both "Online" and "Buddies".
- Track rows per (section, user) in sectionUsers instead of reparenting
a single row; the name->primary-row map is kept for external lookups.
- Rebuild, presence and buddy/ignore mutations create/drop rows per
section instead of moving a single row between sections.
- Dropping one membership no longer removes the user from the other
sections.
* [UserList] Keyboard navigation for section dividers, popup on selection
Section dividers were not selectable, so arrow-key navigation skipped
them entirely, and the user popup only appeared on hover or click. Now:
- Dividers are selectable, so Up/Down navigation lands on them; they act
as collapsible headers once focused (Enter/Space toggle, Left/Right
collapse/expand per tree convention), with a focus indicator drawn by
the existing delegate.
- The popup follows keyboard selection via currentItemChanged, exactly
like mouse hover, and closes when the selection moves to a divider or
leaves the list.
- The popup anchors on the hovered/selected row instead of a user-name
lookup, so with duplicate rows (online + buddy) it stays attached to
the row under the mouse/cursor.
- Left-arrow now actually collapses an expanded section divider: the
collapse branch hardcoded the target expansion state to 'expanded',
making the key a no-op.
- The user popup no longer flashes through a fade when hopping between
users (hover or arrow-key navigation): a content swap keeps it opaque,
and pending show/hide timers are cancelled so an armed hover timer
cannot override a keyboard-selected row or a pending hide kill the
newly shown popup.
- Bulk rebuild defers per-row divider-count updates to endBulkLoad(),
removing the quadratic recount during large online-list loads.
- handleOnlineChangeLeft/handleListRemove skip the sort+filter+repaint
when nothing actually changed.
* [UserList] Tune the role row gradient colors (dark parity, light mode)
Dark mode is byte-for-byte the pre-branch painter profile, with the
original saturated-left to navy-right fade restored verbatim. Light mode
uses the same language at high tint strength: role rows get colored
fades (0.75/0.65 left to 0.18/0.10 right), and regular users get flat
warm paper cards (AlternateBase) instead of the grey slate.
* [UserList] Deselect the list and close the popup on outside clicks
Clicking anywhere outside the tree, the popup or an open menu now clears
the selection and hides the popup, so a pinned popup does not stay open
when the list loses focus.
- The application-wide event filter watches every mouse press and treats
a press as inside the list UI only when its target is the tree, the
popup or an open menu (parent-chain walk), so a click on another list,
a tab or the window background deselects.
- A hover popup now also closes when the cursor leaves the hovered row.
The hide timer previously checked whether the cursor was over the
tree, which is always true over empty list space and section dividers,
so the popup stayed open after moving off the user.
- Deselection keeps the current item so keyboard navigation is not
disturbed, and the pinned flag is dropped before hiding so the
selection-changed handler does not hide twice.
Took 15 minutes
* [UserList] Use an enum for the list sections
The section identifiers were stringly-typed: eleven hardcoded
QStringLiteral comparisons scattered through user_list_widget.cpp, and
the display path (sectionTitle) maps every id through tr() anyway, so
the raw strings were never shown. A typo compiled fine and silently
broke a section.
- enum class Section { Buddy, Online, Ignore } replaces the section
strings across the sectioned-list API (setSectioned, getSectionIds,
setSectionExpanded, the sectionExpanded signal and all membership
helpers), giving compile-time checks at every call site.
- sectionTitle becomes a switch over the enum and the dead raw-string
fallback is gone.
- The expanded-section state persists the same stable keys via the
panel widget boundary, so existing settings files survive unchanged.
- The divider reverse lookup in handleSectionExpansion no longer relies
on an empty-string sentinel from QMap::key; it scans the three
dividers and bails when the item is not one of them.
Took 12 minutes
# Commit time for manual adjustment:
# Took 2 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [Tabs] Add a setting to define startup tab on application launch.
Took 29 minutes
* Naming and sizing
Took 4 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* Add card completion popups to chats and search fields
Completes @mention and [[card]] in chat, and card names in the deck
editor, EDHREC, Archidekt, card art rules, and user card settings
searches. Pops up a styled list with mana pips and a card image
preview, flipping the list order when the popup opens above the text
field.
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [DeckEditor] Use CommanderSpellbook.com to estimate bracket if format is 'commander'
Took 2 minutes
Took 16 minutes
* Convert json data holder to structs, rename variables, extract widget
- Extract bracket estimation UI from DeckEditorDeckDockWidget into a
new CommanderBracketWidget
- Move CommanderSpellbook integration settings from CardsDisplaySettings
to DeckEditorSettings (matching the settings refactor on master)
- Rename CommanderSpellbook integration variables to drop the redundant
'DeckEditor' prefix
Took 4 minutes
# Commit time for manual adjustment:
# Took 6 minutes
# Commit time for manual adjustment:
# Took 8 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [Settings] Implement search
Took 38 minutes
Took 8 seconds
Took 9 minutes
Took 5 seconds
Took 44 seconds
Took 25 seconds
* Comments
Took 23 minutes
Took 15 seconds
* Comments
Took 1 hour 14 minutes
* Minor fixes to search
Took 13 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [CI] Remove Qt5
Took 10 minutes
Took 9 minutes
* Revert CI failure and fix up comments
Took 4 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [Application] Add single instance guard and mime types.
Took 2 hours 39 minutes
Took 18 minutes
Took 5 minutes
Took 12 seconds
Took 11 seconds
* Rework
Took 30 minutes
Took 50 seconds
* Only enforce single instance if launched with arguments.
Took 5 minutes
* Prototype intents
Took 53 minutes
Took 6 seconds
* Connect/disconnect and join game/room intents.
Took 3 hours 14 minutes
Took 2 seconds
Took 15 seconds
* Fix include.
Took 1 minute
Took 23 seconds
Took 2 seconds
* Mac handling.
Took 10 minutes
Took 12 seconds
Took 3 minutes
* Lint.
Took 3 minutes
* Rebase.
Took 3 minutes
Took 17 seconds
* Implement UrlSchemeEventFilter
Took 10 minutes
Took 7 seconds
* Qt Moc
Took 3 minutes
* Modern PList.
Took 21 minutes
Took 1 minute
* Debug output.
Took 6 minutes
Took 19 minutes
* Watch file:// prefix.
Took 15 minutes
Took 7 seconds
* Better handler.
Took 6 minutes
* Don't store reference in member
Took 5 minutes
* Move impl to cpp, fix lifetime issues.
Took 11 minutes
Took 2 minutes
* Better single-instance handoff, url intent harded
copy game link context-menu
Polish for installers
Took 35 minutes
Took 8 seconds
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [Game] Refactor subtype tally code to be more generic
* remove default case
* consolidate empty check
* fix include guard
* backwards compatibility with qt5
* Add subtype breakdown counter for card selection
Display a categorized count of creature subtypes (and other card type
subtypes) when multiple cards are selected. The breakdown appears above
the total selection counter in the bottom-right corner.
Subtypes are grouped by main card type and sorted by frequency, with
the most common subtypes positioned adjacent to the total count for
quick reference. The feature can be toggled via a new checkbox in
Settings > User Interface.
* Alignment fix
* Computation logic moved to helper funtction in separate file
* Rename SubtypeCounter to SubtypeTally
* Fix subtype tally alignment by using grid layout instead of character padding
* Rename count to tally in the subtype breakdown feature
* partial rename
* list position fixed
* Clean up code and documentation
* Rename subtypeCountLabelStyle to subtypeTallyLabelStyle and fix include ordering
* Fix include path for selection_subtype_tally.h after file relocation
* fixed count to tally rename inconsistencies
* [Room] Additionally show a tab for friends and ignored users instead of just all online users.
Took 21 minutes
Took 12 minutes
* [Room][UserList] Introduce style delegate for user list
- Allow users to set a card name and parameters as their background banner
- Allow mods to white/blacklist cards
- Allow toggling back to the old display style
Took 7 minutes
Took 28 seconds
Took 2 minutes
Took 2 minutes
* Right checkstate.
Took 14 minutes
Took 2 minutes
* Utility for test.
Took 9 minutes
Took 8 seconds
Took 2 seconds
* Lint.
Took 10 minutes
* Algorithm for sql schema migration
Took 13 minutes
* Use {prefix}, bound card name, return errors.
Took 27 seconds
* Convert queue to while loop.
Took 19 seconds
* Hover popup.
Took 36 minutes
Took 1 minute
* More granular signals, popup for user info.
Took 25 minutes
Took 8 seconds
Took 16 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [Game][Player] Pull out graphics_items out of player_logic
Took 25 seconds
Took 9 minutes
* [Game] Move graphics files into game_graphics
Took 1 minute
Took 2 minutes
Took 23 seconds
Took 1 minute
Took 2 seconds
* Include.
Took 4 minutes
Took 3 minutes
Took 4 minutes
Took 1 minute
Took 3 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [Game][Player] Split Player into PlayerLogic/PlayerGraphicsItem
Took 4 minutes
Took 48 seconds
Took 2 minutes
* Drop early return.
Took 1 hour 13 minutes
Took 2 minutes
Took 1 minute
Took 24 seconds
* [Game][Player] Split Player into PlayerLogic/PlayerGraphicsItem
Took 4 minutes
Took 58 seconds
* [Game][Menus] Make Menus accept PlayerGraphicsItem instead of PlayerLogic
Took 7 minutes
Took 4 minutes
Took 9 seconds
Took 2 minutes
Took 5 minutes
Took 58 seconds
* [Game][Player] Split Player into PlayerLogic/PlayerGraphicsItem
Took 4 minutes
Took 2 minutes
* [Game][Menus] Make Menus accept PlayerGraphicsItem instead of PlayerLogic
Took 7 minutes
Took 1 minute
Took 57 seconds
* [Game][Player] Move dialog creation out of player_actions and into player_dialogs
Took 3 minutes
Took 1 second
* Fix typo.
Took 5 minutes
* Addressed comments.
Took 16 minutes
Took 11 seconds
* Reintroduce clearCardsToDelete check.
Took 3 minutes
* Capture cards before semaphore.
Took 1 minute
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [Game] [Arrows] Track creatorId, use arrowData in arrowItem, use registry, generate unique arrow id's on server side and delete-on-exist inserts.
Took 2 minutes
Took 1 minute
* Fix emitting slot instead of signal.
Took 15 minutes
* Clear arrows locally in special circumstances i.e. teardown.
Took 28 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* rename method
* [TabDeckEditor] Refactor card database view into own class
* fix include guard
* directly get key signals for eventFilter
* fix includes
* [Game][Arrows] Split Arrows into ArrowData and ArrowItem
Took 13 minutes
Took 5 seconds
Took 1 minute
Took 26 seconds
* Address comments.
Took 17 minutes
Took 9 seconds
Took 1 minute
* Change check.
Took 3 minutes
* Pass by const reference.
Took 10 minutes
* Remove extra method
Took 2 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [Counters] Split counters into graphics and logic states
Took 22 minutes
* Don't have widget hold pointer to state -> Copy what we need and subscribe to changes.
Took 12 minutes
Took 5 seconds
* Sync value too.
Took 3 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [Game] Move state fields out of CardItem
Took 1 hour 2 minutes
* Move stuff into .cpp
Took 14 minutes
* Signals pass changed values as params
Took 2 minutes
* Comments.
Took 23 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [Game/Zones] Simple move refactor to differentiate between logic and graphics for zones
Took 21 minutes
* Clean up game/zones/logic folder.
Took 6 minutes
* Adjust tests.
Took 3 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [App/Theme] Palette Editor
Took 1 minute
Took 1 hour 47 minutes
Took 6 seconds
Took 3 minutes
Took 5 minutes
Took 3 minutes
* Add oracle, add palette files and configs.
Took 10 minutes
* Fix a stupid include mistake, thanks IDE
Took 3 minutes
Took 20 seconds
* Includes.
Took 4 minutes
* Fix ampersand not displaying correctly.
Took 14 minutes
* Longer variable names.
Took 10 minutes
Took 5 seconds
* Change ampersand everywhere
Took 23 seconds
* Doxygen properly.
Took 1 minute
* Remove namespace, fold I/O into structs.
Took 12 minutes
* Remove namespace, fold I/O into structs.
Took 33 seconds
* Alphabetize.
Took 35 seconds
* Lint.
Took 49 seconds
* Add a combo box to quick switch settings.
Took 19 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [VDD] Fix minimum size by adding a compact mode to quickSettingsButtons
Took 17 minutes
Took 5 seconds
* Fix and use FlowWidget/FlowLayout
Took 35 minutes
Took 4 seconds
* Set spacings.
Took 12 minutes
* Make VDE tools flow
Took 1 hour 23 minutes
Took 5 seconds
* Squeeze and flow even more.
Took 11 minutes
* Make pushbutton compact.
Took 54 minutes
Took 7 seconds
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* Pull client networking out of window_main and into remote_connection_controller
Took 2 minutes
* Things.
Took 13 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* Properly reset default theme.
Took 9 minutes
* Descend in preference on windows.
Took 9 minutes
* Also reset style for custom themes.
Took 3 minutes
* Try things
Took 9 minutes
* Add modern windows style.
Took 8 minutes
* Update theme_manager.cpp
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* Add local game options dialog. Introduces LocalGameOptions struct and DlgLocalGameOptions dialog to replace the previous QInputDialog for starting local games. Encapsulates game configuration with a simple interface that prevents parameter explosion as options are added. The dialog provides UI with settings persistence via SettingsCache
* integrate local game options into main window. Replaces QInputDialog with DlgLocalGameOptions in actSinglePlayer(). The startLocalGame() function now accepts LocalGameOptions, enabling configuration of starting life total and spectator visibility in addition to player count. Also adds user documentation for the local game options flow.
* Removed superfluous documentation file
* removed spectator option and moved structure definition
* Now remember settings separately and & shortcuts removed
* re-run checks
* [VDE] A stab at things
Took 14 minutes
Took 10 minutes
Took 5 minutes
Took 4 minutes
Took 41 seconds
Took 10 minutes
Took 3 minutes
* [VDE] Use placeholder image for deck view if deck is empty.
Took 15 minutes
Took 9 seconds
Took 5 seconds
* Sort CMakeList correctly.
Took 35 seconds
Took 23 seconds
* Visibility updates got lost in the rebase.
Took 7 minutes
* Same treatment for printing selector.
Took 42 minutes
* Actually add file.
Took 4 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [VDD] Reorder quick filters
Took 1 hour 10 minutes
Took 5 seconds
Took 49 seconds
* [VDD] Use Font Awesome Icons
Took 49 minutes
Took 5 seconds
* [VDD] Shuffle some widgets around, label things.
Took 31 minutes
Took 5 seconds
* Change buttons to be push rather than toggle.
Took 17 minutes
Took 9 seconds
* Reduce margins, retranslate button texts.
Took 15 minutes
Took 9 seconds
* Actually do it, don't commit the commented out testing version lol
Took 3 minutes
* Start sets in include, correct subtype include/exact match logic.
Took 12 minutes
* Block sync.
Took 16 minutes
Took 8 seconds
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [VDE] Deck Analytics Widgets overhaul
Took 2 minutes
Took 3 minutes
Took 3 minutes
* Qt5 version guards.
Took 33 minutes
Took 3 seconds
* Include QtMath
Took 3 minutes
Took 8 seconds
* Use getCards()
Took 4 minutes
* Non pointer stuff
Took 52 seconds
* Add a newline to the tooltip
Took 2 minutes
Took 27 seconds
* Fix build failure on macOS 15
* Rename some things.
Took 17 minutes
Took 11 seconds
Took 18 seconds
* Address overloads, fix default configuration.
Took 1 hour 9 minutes
Took 8 seconds
* Fix mana curve default config.
Took 4 minutes
* Namespace to Qt libs
Took 5 minutes
* Selection overlay is transparent for mouse events.
Took 2 minutes
* Brace initialize.
Took 8 minutes
* Debian 11.
Took 5 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
Co-authored-by: RickyRister <ricky.rister.wang@gmail.com>
* Stuff
Took 22 minutes
* New layout for commander details.
Took 1 hour 18 minutes
* Update plate to encompass everything, update font sizes.
Took 10 minutes
* Include map.
Took 2 minutes
* Include QSet
Took 5 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [TabArchidekt] Set game format when importing
Took 5 minutes
* Move formats to file.
Took 9 minutes
Took 4 seconds
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* Deck legality checker.
Took 51 seconds
Took 1 minute
Took 1 minute
Took 5 minutes
Took 3 minutes
* Adjust format parsing.
Took 8 minutes
Took 3 seconds
* toString() the xmlName
Took 4 minutes
* more toStrings()
Took 5 minutes
* Comments
Took 3 minutes
* Layout
Took 2 minutes
* Layout part 2: Electric boogaloo
Took 59 seconds
* Update cockatrice/src/interface/widgets/visual_database_display/visual_database_display_format_legality_filter_widget.cpp
Co-authored-by: RickyRister <42636155+RickyRister@users.noreply.github.com>
* Move layout.
Took 4 minutes
Took 10 seconds
* Emit deckModified
Took 6 minutes
* Fix qOverloads
Took 4 minutes
* Fix qOverloads
Took 12 seconds
* Consider text and name in a special way.
Took 11 minutes
* Adjust "Any number of" oracle text
Took 5 minutes
* Store allowedCounts by format
Took 15 minutes
Took 6 seconds
* Only restrict vintage.
Took 2 minutes
* Adjust for DBConverter.
Took 6 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
Co-authored-by: RickyRister <42636155+RickyRister@users.noreply.github.com>
* [VDE] Consolidate statistical analysis into a separate object so multiple widgets can re-use calculations and calculation is only performed once on data change.
* [VDE] Lint.
* [VDE] Move struct up to not confuse compiler.
* [VDE] NoDiscards
* [VDE] Move variables
* [VDE] Lint.
* TabArchidekt and Archidekt API integration.
Took 37 seconds
Took 4 minutes
Took 40 seconds
Took 4 minutes
* Lint.
* Lont.
* Search bar, fancier display, resolve providerId
* Delegate click to base.
* Be explicit for pedantic compilers.
* Liiint.
* Leave them default I guess
* Leave them default I guess
* Small fixes.
* New utility display widgets.
* New style for deck listing.
* Lint.
* Lont.
* Scale things.
* Delegate paint to base.
* Use default Archidekt preview image for decks without featured.
* Consistent sizes.
* Increase font size, qt version guard.
* More version guards.
* Clean up filter layout, use mana symbols.
* Set content margins.
* Refresh on filter change.
* Lint.
* Better elision.
* Query actual new endpoints, new query parameters.
* Doxygen, reorder fields in constructor, readability.
* Update page size doc to min size.
* Update initial min deck size value.
* Add label to page selection.
* Okay, so, people upload a lot of 1 card decks frequently.
* Whoops.
* Add a selection combobox for sorting logic.
* Debounce and limit searches.
* Include.
* Lint.
* Don't imply that Archidekt supports multiple cards/commander names.
* Let's not lambda it and slot it instead.
* Overload.
* Add button to home tab.
Took 8 minutes
* Adjust to selection model change.
Took 5 minutes
* Cleanup auto-generated comments.
Took 8 minutes
* Remember card sizes.
Took 1 minute
* Initialize with correct size.
Took 3 minutes
* Use correct placeholders.
Took 2 minutes
* Style lint.
Took 16 minutes
* Parse double-faced cards correctly.
* Parse double-faced cards correctly.
* Allow TabArchidekt to use VDE group/sort/display buttons
* Lint.
* Indicate that things are clickable.
* Min treshold for nicer display.
* Lint.
* We have good labels at home.
* We do a little linting.
* Qt version guards.
* Qt5 is the devil.
* Update comments.
* Lint comments.
* More doxys.
* One more doxy.
* Lint.
* Update.
* Small fixes.
Took 7 minutes
Took 13 seconds
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [DeckEditor] Deck List History Manager.
Took 23 minutes
Took 17 minutes
* Add icons.
Took 2 minutes
Took 3 seconds
* Small fixes.
Took 12 minutes
* Style lint.
Took 48 seconds
* tr() things.
Took 5 minutes
* Add tooltips for buttons.
Took 3 minutes
* Add explanation label to history.
Took 3 minutes
* Refactor to .cpp, delegate undo/redo to manager, don't return memento
Took 8 minutes
* Clear history when setting deck.
Took 6 minutes
* Move to value based stacks.
Took 52 seconds
* Default constructor.
Took 31 seconds
Took 3 minutes
Took 4 minutes
Took 2 minutes
* Have it listen to deck editor additions.
Took 18 minutes
* Don't connect buttons *and* actions.
Took 2 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* [Refactor] Move AbstractGraphicsItem and GraphicsItemType to game_graphics/board folder.
Took 3 minutes
* Update CMakeLists.txt
Took 12 minutes
* Update CMakeLists.txt
Took 12 minutes
Took 2 minutes
Took 16 seconds
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* Add button to join game as judge as well as convenience filters.
Took 1 hour 11 minutes
* Change button to filter to games created by buddies, set default filter settings to be very permissive.
Took 45 minutes
* Remove debug.
Took 3 minutes
* Update game_selector.cpp
* Add spacers, rearrange.
Took 20 minutes
Took 20 seconds
* Add explanation tooltip.
Took 39 seconds
* Try layouting.
Took 14 minutes
* Set min size, set spacing for mac os
Took 3 minutes
* Try without the labels.
Took 3 minutes
* Don't use labels.
Took 5 minutes
* Fine-tune.
Took 2 minutes
* AsJudge
Took 4 minutes
* Clear up comment.
Took 37 seconds
* Remove shift hotkey.
Took 4 minutes
* Spectate as judge.
Took 8 minutes
* Add checkBox to create game as judge.
Took 7 minutes
* Fix crash.
Took 12 minutes
* Rename, fix returns.
Took 19 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>