Skip to content

UI: Add Manage Scene Collections dialog #8446

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 23 commits into
base: master
Choose a base branch
from

Conversation

gxalpha
Copy link
Member

@gxalpha gxalpha commented Mar 11, 2023

Description

Adds a Scene Collection Manager dialog and moves the scene collection menu to the scenes dock.

Screenshots as of: September 8th, 2023

Bildschirmfoto 2023-09-08 um 14 06 12 Bildschirmfoto 2023-09-08 um 14 06 18

image image

This solves three major UX problems with current scene collection management:

  • The place where you'd manage scene collections was visually disconnected from the scene tree
  • All actions were in a context menu, making them a bit cumbersome
  • You could only act on the collection you're currently on. You couldn't rename, export, delete, or duplicate any other collection without switching to it first.

The new dialog solves these issues. Scene collection that aren't active can now be renamed, duplicated, exported, or deleted. However, the currently active scene collection can no longer be deleted as that would then require switching to some other collection, which can be a bit unpredictable to the user.

It also adds the ability to perform bulk actions on scene collections. This means that it's possible to duplicate, export, or delete multiple scene collections at once.
The collections shown in the menu is now capped at the 10 most recent ones to avoid unreasonably large context menus, other collections can still be switched to by double-clicking them in the dialog.

Driven by a design first approach, based on this mockup. Thanks to @GeorgesStavracas for creating the mockup and to @Warchamp7 for his assistance.

This PR utilizes new widgets by @derrod. It will stay draft until #8447 is merged. However, reviews are still very much desired.

Motivation and Context

See the problems mentioned above.

How Has This Been Tested?

macOS 13.2.1

Tested all new features. This includes:

  • Opening the importer and importing
  • Creating a new collection
  • Renaming a collection (both current and not-current)
  • Duplicating a collection (both current and not-current)
  • Exporting a collection (both current and not-current) and making sure it's still sorted and pretty-printed (see UI: Sort and pretty-print exported collections #8407)
  • Deleting a not-current collection
  • Making sure the "Delete" field is greyed out and that the collection doesn't get deleted even if it isn't (by temporarily changing other code)
  • Exporting multiple collections and making sure potential existing collections in the target folder aren't deleted
  • Duplicating multiple collections
  • Deleting multiple collections
  • Switching scene collections via the menu in the scenes dock
  • Switching scene collections by double-clicking a scene collection in the dialog
  • Sorting works both by last used and alphabetically by name, and is remembered even after the dialog or OBS altogether is closed

Types of changes

  • New feature (non-breaking change which adds functionality)

Checklist:

  • My code has been run through clang-format.
  • I have read the contributing document.
  • My code is not on the master branch.
  • The code has been tested.
  • All commit messages are properly formatted and commits squashed where appropriate.
  • I have included updates to all appropriate documentation.

@gxalpha gxalpha added New Feature New feature or plugin UI/UX Anything to do with changes or additions to UI/UX elements. labels Mar 11, 2023
@gxalpha gxalpha force-pushed the scenes-dock branch 6 times, most recently from 9b8c66e to 9d3f32d Compare March 11, 2023 03:50
@derrod derrod mentioned this pull request Mar 11, 2023
8 tasks
@gxalpha gxalpha force-pushed the scenes-dock branch 2 times, most recently from 446d291 to d88dba5 Compare March 11, 2023 13:22
@gxalpha gxalpha force-pushed the scenes-dock branch 3 times, most recently from c10e2dd to 6f5235b Compare March 12, 2023 01:52
@gxalpha gxalpha added the Seeking Testers Build artifacts on CI label Mar 30, 2023
@gxalpha
Copy link
Member Author

gxalpha commented Mar 30, 2023

Added Seeking Testers and re-triggered CI to get downloadable artifacts for easier testing.
Edit: This will need rebasing before artifacts actually get generated.

@gxalpha
Copy link
Member Author

gxalpha commented Apr 8, 2023

Rebased on the updated #8447.

New screenshot:
image

With the updated base branch, this should now actually have downloadable build artifacts once CI finishes.

@gxalpha gxalpha force-pushed the scenes-dock branch 2 times, most recently from 70af53f to 011ab97 Compare April 10, 2023 11:06
@gxalpha gxalpha force-pushed the scenes-dock branch 2 times, most recently from 31086e3 to 35b77fe Compare July 11, 2023 09:41
@gxalpha
Copy link
Member Author

gxalpha commented Aug 13, 2024

Rebased on latest Idian branch. There are a few TODOs still left which I will fix later, plus a conflict to current master but that would require me to rebase the Idian branch as well.

A filter that emits a doubleClicked signal when the object on which it
is installed is double clicked on.
Meant to replace the internal functions inherently coupled to the main
window and loaded collection.
Some functions are written completely from scratch (e.g. creating a new
collection, as before that consisted just of clearing the current scene
data and then resaving which meant one would *have* to switch to the new
collection) mostly related to actions on scene collections that are not
the currently active ones), others partially or largely copied from
window-basic-main-scene-collections.
This prevents the menu from getting unreasonably large. Access to older
scene collections is preserved through the Manage Scene Collections
dialog.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
New Feature New feature or plugin Seeking Testers Build artifacts on CI UI/UX Anything to do with changes or additions to UI/UX elements.
Projects
Status: In progress
Development

Successfully merging this pull request may close these issues.

4 participants