Skip to content
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

Compact GUI design, new features, combined widgets, editable text fields, movable docks, and more... #485

Open
wants to merge 85 commits into
base: master
Choose a base branch
from

Commits on Mar 23, 2023

  1. [Q_gui2] Make the gui compact and properly name XML elements

    Properly (re)name the gui's XML elements to suggest their meaning.
    
    Group the gui's bottom components together into the Navigation widget.
    This serves the purpose of making the interface more compact, and the
    mouse navigation easier.
    
    Shrinking the gui's window should not clutter or overlap elements.  A
    minimum size should be respected to allow displaying every widget.
    
    The bottom components are put into individual sets that can be hidden
    independently.
    
    Enable floating Navigation and Codec widgets, and allow to dock them
    up/down and left/right respectively.  Also allow the Toolbar to dock
    both up/down and left/right.
    
    Add a close button to the Navigation and Codec Options widgets, and
    enable context menus in the widgets main Menu, Toolbar, Navigation,
    and Codec Options.  The View->Toolbars->Navigation menu option will
    toggle the Navigation visibility, hiding all of its components.
    
    Allow to select and copy into the clipboard current time, total time,
    selection duration, marker A time, and marker B time by highlighting
    the content of their own element.
    
    Redesign current time, marker A time, and marker B time elements to
    combine action buttons and text fields.
    
    This design fixes the displaying of the selection duration's seconds,
    that were cut due to insufficient space for the label element.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    291e407 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    64a9b11 View commit details
    Browse the repository at this point in the history
  3. [Q_gui2] Fix possible typo volume Metre -> Meter

    Follow the convention dictated by T_vumeter.{cpp,h}.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    93efb98 View commit details
    Browse the repository at this point in the history
  4. [Q_gui2] Enable Navigation and Codec widgets docking features

    Docking features require the presence of the title bar.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    1fc3ac6 View commit details
    Browse the repository at this point in the history
  5. [Q_gui2] Remove residual dock widgets title bars

    Bottom dock widgets have been combined into the Navigation widget as
    frame elements.  Remove residual code about setting title bars.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    b90f20f View commit details
    Browse the repository at this point in the history
  6. [Q_gui2] Remove residual dock widgets visibility checks

    Bottom dock widgets have been combined into the Navigation widget as
    frame elements.  Remove residual code about checking heights.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    35eb0d4 View commit details
    Browse the repository at this point in the history
  7. [Q_gui2] New custom title bar for dock widgets

    Buttons float/dock and close to the left, add a title if set.  Use the
    title's mnemonic & to switch to float/dock state.
    
    This solves the problem of Light and Dark themes that do not read dock
    widgets mnemonic correctly, putting a & into the widget's title.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    a915833 View commit details
    Browse the repository at this point in the history
  8. [Q_gui2] Darken Light theme background FIXME

    Slightly darkening the Light theme windows' background helps to spot
    the dock widgets' resize handle, otherwise not visible enough.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    9c251d1 View commit details
    Browse the repository at this point in the history
  9. [Q_gui2] Update Toolbars menu items

    Add new hideable items and resort Toolbars order, bottom dock widgets
    have been combined into the Navigation widget as frame elements.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    101fd3f View commit details
    Browse the repository at this point in the history
  10. [Q_gui2] Update widgets visibility

    Initialize new hideable items visibility, the Navigation dock widget
    contains new frame elements.  Sort top to botton following the gui.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    e23adfb View commit details
    Browse the repository at this point in the history
  11. [Q_gui2] Allow to hide the status bar

    Use the status bar as a XML widget.  The status bar can be hidden via
    'View->Toolbars->Status Bar'.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    9ba232b View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    a700fba View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    3ae84d6 View commit details
    Browse the repository at this point in the history
  14. [T_vumeter] Increase volume meter height

    The gui interface has space for a taller volume meter.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    0c5ceef View commit details
    Browse the repository at this point in the history
  15. [ADM_gui] Add Append icons

    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    17e5619 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    f2ddafe View commit details
    Browse the repository at this point in the history
  17. [ADM_gui] Add 'Run Script' icons

    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    ba3d3e2 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    23e4608 View commit details
    Browse the repository at this point in the history
  19. [ADM_gui] Add Undo icons

    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    2639450 View commit details
    Browse the repository at this point in the history
  20. [ADM_gui] Add Redo icons

    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    af17b6c View commit details
    Browse the repository at this point in the history
  21. [ADM_gui] Add Cut icons

    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    811cc27 View commit details
    Browse the repository at this point in the history
  22. [ADM_gui] Add Copy icons

    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    e1f69f6 View commit details
    Browse the repository at this point in the history
  23. [ADM_gui] Add Paste icons

    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    db37fda View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    2d5bfce View commit details
    Browse the repository at this point in the history
  25. [ADM_gui] Add 'Go to Time' icons

    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    7925ba5 View commit details
    Browse the repository at this point in the history
  26. [ADM_gui] Put A on the left of the arrow in goMarkA icons

    Reading left-to-right, the segment A to B has the former letter before
    the latter.  It makes sense to express this positioning in the goMarkA
    icons (A< vs >A, where goMarkB is >B, to represent the segment A<->B).
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    823ac20 View commit details
    Browse the repository at this point in the history
  27. [ADM_gui] Align the letter B in goMarkB icons

    Visually center the letter B in its box.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    6b8d336 View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    3b303eb View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    4cf2ab8 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    9ffeec7 View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    6102cc2 View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    8b12f1a View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    6665f55 View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    2ce7f98 View commit details
    Browse the repository at this point in the history
  35. Configuration menu
    Copy the full SHA
    bf638bf View commit details
    Browse the repository at this point in the history
  36. Configuration menu
    Copy the full SHA
    564a277 View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    87dc001 View commit details
    Browse the repository at this point in the history
  38. Configuration menu
    Copy the full SHA
    c0e47d5 View commit details
    Browse the repository at this point in the history
  39. Configuration menu
    Copy the full SHA
    8815e7d View commit details
    Browse the repository at this point in the history
  40. Configuration menu
    Copy the full SHA
    fde3022 View commit details
    Browse the repository at this point in the history
  41. [Q_gui2] Set 'Total Time' field style and tooltip

    The 'Total Time' has been converted into a text field, its content can
    be highlighted and copied to the clipboard, there's no longer the need
    to prefix the content with ' / ' label, update the code accordingly.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    18f0d82 View commit details
    Browse the repository at this point in the history
  42. [Q_gui2] Set 'Selection Duration' field style and tooltip

    The 'Selection Duration' has been converted into a text field, its
    content can be highlighted and copied to the clipboard, update the
    code accordingly, there's no longer the need to prefix the content
    with 'Selection:' label.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    74df790 View commit details
    Browse the repository at this point in the history
  43. [Q_gui2] Set 'Marker A/B' fields style and tooltips

    The 'Jump to Marker A/B' buttons has been converted into text fields,
    update the code accordingly.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    62c8de0 View commit details
    Browse the repository at this point in the history
  44. [Q_gui2] Keep 'Selection Duration' field always enabled

    Do not disable the selection duration field when there's no media
    loaded.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    aa1b41a View commit details
    Browse the repository at this point in the history
  45. Configuration menu
    Copy the full SHA
    68de737 View commit details
    Browse the repository at this point in the history
  46. [Q_gui2] Fix 'Current Time' too short field

    There sould be no need to set a fixed width, it interferes with the
    element due to presence of the combined action button.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    2f925ed View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    f13e4a5 View commit details
    Browse the repository at this point in the history
  48. Configuration menu
    Copy the full SHA
    2e22602 View commit details
    Browse the repository at this point in the history
  49. Configuration menu
    Copy the full SHA
    bbbef5c View commit details
    Browse the repository at this point in the history
  50. Configuration menu
    Copy the full SHA
    605e45a View commit details
    Browse the repository at this point in the history
  51. Configuration menu
    Copy the full SHA
    a11a104 View commit details
    Browse the repository at this point in the history
  52. Configuration menu
    Copy the full SHA
    6510edc View commit details
    Browse the repository at this point in the history
  53. Configuration menu
    Copy the full SHA
    cdea0f8 View commit details
    Browse the repository at this point in the history
  54. Configuration menu
    Copy the full SHA
    549ef7d View commit details
    Browse the repository at this point in the history
  55. [Q_gui2] New 'Go to Time' feature for Marker A/B

    This allows to edit marker A/B time via the existing 'Go to Time'
    dialog (already used to edit the current time).
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    a6a63e1 View commit details
    Browse the repository at this point in the history
  56. [Q_gui2] Allow to set the 'Go to Time' dialog title

    When setting a Marker A/B time directly, it may be useful to have a
    dialog title describing the action.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    73e9297 View commit details
    Browse the repository at this point in the history
  57. Configuration menu
    Copy the full SHA
    2fcd988 View commit details
    Browse the repository at this point in the history
  58. [Q_gui2] Add 'Go to Marker A/B' button to 'Marker A/B' fields

    The 'Jump to Marker A/B' buttons has been converted into text fields,
    update the code accordingly.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    bb3202e View commit details
    Browse the repository at this point in the history
  59. [Q_gui2] Add 'Reset Marker A/B' buttons to 'Marker A/B' fields

    With being unable to seek beyond the last frame, the reset marker B
    button is useful to put the marker B at total time position (beyond
    the last frame).
    
    To put the marker B at total time position (beyond the last frame),
    set the marker A, then reset the marker B.
    
    The reset marker A button resets to position 0, the B button to the
    position just after the last frame (aka infinite).
    
    The presence of the reset marker A/B buttons also give a hint about
    when the markers are unset, that is when a button is grayed out.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    154dca9 View commit details
    Browse the repository at this point in the history
  60. Configuration menu
    Copy the full SHA
    29bc17f View commit details
    Browse the repository at this point in the history
  61. [Q_gui2] Build 'Edit Marker A/B' menu items preferences

    $ cd avidemux_core/ADM_coreUtils/src
    $ nano prefs2.conf
    $ chmod +x update_prefs.sh
    $ ./update_prefs.sh
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    b34407e View commit details
    Browse the repository at this point in the history
  62. Configuration menu
    Copy the full SHA
    3c3efe2 View commit details
    Browse the repository at this point in the history
  63. Configuration menu
    Copy the full SHA
    7f6b257 View commit details
    Browse the repository at this point in the history
  64. [Q_gui2] New feature to edit 'Selection Duration' field directly

    Modifying the selection duration will shift the marker B.
    
    i.e. marker B = marker A + selection duration
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    2507fad View commit details
    Browse the repository at this point in the history
  65. [Q_gui2] New feature to edit 'Total Time' field directly

    Modifying the total time will set the marker A to the new duration and
    reset the marker B, selecting the last part of the video that once cut
    will give the new total duration.
    
    i.e. marker A = new total duration, marker B = old total duration
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    fefb4a6 View commit details
    Browse the repository at this point in the history
  66. [Q_gui2] Remember visibility state of each widget set

    Save the visibility state of each widget set as preferences.
    
    Individual sets in the Navigation dock can be hidden or not,
    then after a restart the previous state is restored.
    
    The Navigation dock can be hidden without changing the state
    of its children.  The previous condition will be remembered.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    910f45d View commit details
    Browse the repository at this point in the history
  67. [Q_gui2] Build widgets sets preferences

    $ cd avidemux_core/ADM_coreUtils/src
    $ nano prefs2.conf
    $ chmod +x update_prefs.sh
    $ ./update_prefs.sh
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    78555ea View commit details
    Browse the repository at this point in the history
  68. [Q_gui2] Workaround to update dock widgets toolbar checkbox

    When a dock widget visibility is toggled via a method, like context
    menu, which is not its toolbar checkbox, use a workaround to update
    the state of the toolbar checkbox.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    d5bf7f2 View commit details
    Browse the repository at this point in the history
  69. [Q_gui2] Use Views->Toolbars as default context menu

    Override the application default context menu.  Right clicking on the
    menu bar, tool bar, or dock widgets will open Views->Toolbars menu.
    mehw committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    d574640 View commit details
    Browse the repository at this point in the history

Commits on Mar 25, 2023

  1. Configuration menu
    Copy the full SHA
    65d08ea View commit details
    Browse the repository at this point in the history
  2. [Q_gui2] Fix math formulas to calculate time in microseconds

    A uint64_t type cast gives the right precision to uint32_t values when
    converting to a hh:mm:ss.mm,us time expressed in microseconds.
    mehw committed Mar 25, 2023
    Configuration menu
    Copy the full SHA
    9598eb1 View commit details
    Browse the repository at this point in the history
  3. [Q_gui2] Add microsecond precision property to time fields

    New ADM_QLineEditPTS class to add precision to time fields.  GUI text
    elements now store time at microsecond precisions.  This prevents the
    jittering bug when switching focus out from a time field.
    
    Jittering bug: Time fields signal editingFinished after switching the
    focus or pressing Enter.  Fields signaled as edited are compared with
    the previous real time to confirm that they have been truly modified.
    A field time is converted from milli to the micro seconds of the real
    time.  The equality fails when the real time microseconds part is not
    all zero.  The jitter is when the field time, differing from the real
    time, is replaced with the closest frame real time (usually the frame
    before).
    
    Thanks to szlldm for spotting the jittering bug.
    
    Thanks to eumagga0x2a for fixing obsolete regexp code.
    mehw committed Mar 25, 2023
    Configuration menu
    Copy the full SHA
    2d15802 View commit details
    Browse the repository at this point in the history
  4. [Q_gui2] Fix markers A/B time fields with obsolete text

    Editing the markers A/B fields directly, by changing the text, may
    result in a computed frame real position not diffrent from before.
    
    Different timings may resolve to the same frame.  When an A/B text
    refresh is not performed anyway, the edited value may be obsolete.
    
    Editing A/B directly is more flexible than the 'Go to Time' dialog
    but, as said before, the difference is that the former changes the
    field text before the frame computation is done, the latter intead
    changes the text after, and only if the computed time differs from
    the currently one set.
    mehw committed Mar 25, 2023
    Configuration menu
    Copy the full SHA
    37c549f View commit details
    Browse the repository at this point in the history
  5. [Q_gui2] Fix total time field with obsolete text

    Confirming the total time edit should be followed by a refresh.
    
    The total time field can be edited to prepare a cut selection from the
    marker A to B starting from the end of the video.  This feature can be
    used to set a cut to reduce the video length of a specific amount.
    
    After refreshing the total time field, the video length specified will
    be indicated by the marker A time.
    mehw committed Mar 25, 2023
    Configuration menu
    Copy the full SHA
    61f0bab View commit details
    Browse the repository at this point in the history
  6. [Q_gui2] Show tooltips with precision timings over time fields

    Time fields will show microsecond precision timings when hovered,
    i.e. 99:59:59.999,999.  Tooltips will be updated when a field has
    been programmatically changed, or a user's edit is confirmed.
    
    This could also be used for debugging purposes.
    mehw committed Mar 25, 2023
    Configuration menu
    Copy the full SHA
    e08e77a View commit details
    Browse the repository at this point in the history
  7. [Q_gui2] Add preference to toggle timing tooltips

    $ cd avidemux_core/ADM_coreUtils/src
    $ nano prefs2.conf
    $ chmod +x update_prefs.sh
    $ ./update_prefs.sh
    mehw committed Mar 25, 2023
    Configuration menu
    Copy the full SHA
    a9e96e7 View commit details
    Browse the repository at this point in the history
  8. [Q_gui2] Fix to manage signals when time fields are readonly

    This is a workaround about editingFinished events.  Even when time
    fields are set to readonly, the signal triggers just one time when
    the field is clicked and then the focus is changed, with Tab or by
    clicking another element.
    
    This could be a better solution than disabling the time fields, if
    there are action buttons that should be kept enabled in a field.
    mehw committed Mar 25, 2023
    Configuration menu
    Copy the full SHA
    227ef91 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    e160dba View commit details
    Browse the repository at this point in the history

Commits on Mar 26, 2023

  1. Configuration menu
    Copy the full SHA
    cc17305 View commit details
    Browse the repository at this point in the history
  2. [Q_gui2] Add preference to show extra buttons on time fields

    Add preference to show only the default action button on time fields
    or all the buttons.
    mehw committed Mar 26, 2023
    Configuration menu
    Copy the full SHA
    b21b8f3 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    015faa7 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    fa7acef View commit details
    Browse the repository at this point in the history
  5. [Q_gui2] Fix typo convert code line tab into spaces

    Fixes typo in 'Start making use of microseconds precision' commit.
    mehw committed Mar 26, 2023
    Configuration menu
    Copy the full SHA
    7b16e67 View commit details
    Browse the repository at this point in the history
  6. [Q_gui2] Add preference to enable time fields keyboard editing

    Each time field has a preference option to enable direct keyboard
    editing of the field.
    mehw committed Mar 26, 2023
    Configuration menu
    Copy the full SHA
    1d14f9e View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    7fe08b1 View commit details
    Browse the repository at this point in the history