- Mar 11, 2022
-
-
Lyndon Brown authored
-
Lyndon Brown authored
Having been untangled from `ConfigControl` it is now free to be moved. I took the opportunity to rename it from `KeySelectorControl` to `HotkeyEditor`.
-
Lyndon Brown authored
Now that the hotkey editor has been untangled from `ConfigControl`, there is now no longer any case where the config item pointer is null, so the `getType()` method can confidently just dereference it and return the type without having to specially return a `-1` for the hotkey editor case. (In 98b04191 I had added this special case specifically due to the hotkey editor).
-
Lyndon Brown authored
The only reason that the hotkey editor derived from `ConfigControl` was due to it being dynamically placed within the advanced preferences interface in exactly the same way as controls for individual options. Now that this is no longer the case, we can untangle it. Doing so helps support later work. Note that setting uniform row height had to be disabled, otherwise the table appeared empty. I've encountered this issue before with other preference interface tables. I think it's a Qt bug.
-
Lyndon Brown authored
I intend for it to be moved per point 2 below, but in any case showing it in advanced view has always been problematic, per point 1. 1. Whilst the hotkey editor works well within the simple interface, it has never worked so well within the advanced interface, being much too small within the default size of the dialog. I expect that most users of the hotkey editor only use it from the simple view for this reason in addition to it perhaps being a little quicker to locate. Furthermore it is entirely absent from the recently introduced expert interface. Given that it only exists in two of these three views and only works well in just one of them, it makes sense for it to be separated from them, or at least for the problematic use within advanced view to be dropped. (Note, if just dropping it from the advanced view was the only plan, it would not be the only thing exclusive to simple view). 2. I'm working on a redesign for the preferences interface, the most significant feature of which is introduction of a sidebar. I intend to replace the simple/advanced/expert view selector control with buttons in that sidebar. Additionally I intend to move access to the hotkey editor and media library manager out of those views to separate buttons within the sidebar. I am very hopeful that the sidebar will be liked and accepted given how much cleaner it makes things and how it resolves the issue of major functionality - hotkey editor and ML manager - not being available (and usable) in all three general preference interfaces. Getting this change here done early makes subsequent significant work preparing the hotkey editor for the redesign much easier. For instance the presence of it within advanced view is intricately connected to it being derived from `ConfigControl`, which was never perfect and needs to be untangled. Whilst I could in theory implement hacks to keep it present within advanced view until implementation of the redesign, I'd rather not spend time doing that if I don't have to.
-
Lyndon Brown authored
-
Lyndon Brown authored
-
- Mar 10, 2022
-
-
If anyone has a pthread with a different Windows SDK it should work. It will also avoid bogus pthread.h missing reports when mingw-w64 is not detected properly. HAVE_WINPTHREAD is not checked and assumed to be available.
-
this way it mirrors the behaviour with GridViews
-
-
-
-
This fixes the bad option default for this value. The default being `VPX_DL_GOOD_QUALITY`, which is defined as `1000000` not `0` as seemed to be the author's assumption, did not map to the specified range of 0-2 and thus was getting clamped to 2, corresponding to 'best' quality rather than 'good' quality. It was requested in review to map the option values to match the vpx defines rather than simply change the default value to `0`. This necessitates removal of the range.
-
-
-
-
Unspecified order was: add-button, ban-add-button, ban-list, list.
-
One widget missing from ordering.
-
This was placed into the same grid row+column as a spinbox and thus achieved absolutely nothing. Presumably it was intended for the adjacent column, however since it achieves nothing either way let's just drop it.
-
Makes no difference at all to have this.
-
Viewing the ui files in Qt creator revealed excess empty space at the bottom of some, a huge amount in the case of media-library. This ultimately has no impact upon the final result, but I thought I'd fix it for neatness. Note that these numbers were the product of simply dragging the canvas size until it snapped into place.
-
Such that the effect is thus visible in Qt Creator/Designer. The compatibility note is obviously obsolete now, but presumably we still want this style anyway since its read-only.
-
Regression from 46d15dba. It seems that margins applied to a `QStackLayout` are ignored and must instead be applied to the `QStackWidget` directly.
-
I.e. if compiled without skins2, hide the skinning bits.
-
Rather than have a grid covering the entire contents of the look-n-feel groupbox, which creates unnecessary complexity, use a sub-widget to group together and layout the radio controls and the line underneath, letting the parent layout thus just be a simple vertical-box. Using a widget rather than just a sub-layout is necessary if we are to be able to do things like hide the new selection sub-widget when not applicable. The difference is almost identical, the radio controls are just spaced a few pixels further apart. This puts us in a position to hide the selection control and preview image if skinning is not available (the previous layout did not work for this).
-
Identified by a different invocation of ASAN than I'd previously used. wrt. the second fix it seems `clear()` alone does not destroy these items. ``` Direct leak of 64560 byte(s) in 1345 object(s) allocated from: #0 0x7f1f87268f37 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:99 #1 0x7f1f71099981 in ExpertPrefsTableModel::ExpertPrefsTableModel(module_t**, unsigned long, QWidget*) ../../modules/gui/qt/dialogs/preferences/expert_model.cpp:260 #2 0x7f1f710a32fa in PrefsDialog::setExpert() ../../modules/gui/qt/dialogs/preferences/preferences.cpp:106 #3 0x7f1f710a8851 in PrefsDialog::PrefsDialog(QWindow*, qt_intf_t*) ../../modules/gui/qt/dialogs/preferences/preferences.cpp:74 #4 0x7f1f70ee43e2 in DialogsProvider::prefsDialog() ../../modules/gui/qt/dialogs/dialogs_provider.cpp:253 #5 0x7f1f714f6f97 in DialogsProvider::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) gui/qt/dialogs/dialogs_provider.moc.cpp:268 #6 0x7f1f714f7c11 in DialogsProvider::qt_metacall(QMetaObject::Call, int, void**) gui/qt/dialogs/dialogs_provider.moc.cpp:388 #7 0x7f1f70568f1c (/lib/x86_64-linux-gnu/libQt5Qml.so.5+0x2c4f1c) ... Direct leak of 1112 byte(s) in 122 object(s) allocated from: #0 0x7f1f872127a7 in __interceptor_strdup ../../../../src/libsanitizer/asan/asan_interceptors.cpp:454 #1 0x7f1f710950f0 in ExpertPrefsTableItem::ExpertPrefsTableItem(module_config_t*, QString const&, QString const&, bool) ../../modules/gui/qt/dialogs/preferences/expert_model.cpp:61 #2 0x7f1f710999ac in ExpertPrefsTableModel::ExpertPrefsTableModel(module_t**, unsigned long, QWidget*) ../../modules/gui/qt/dialogs/preferences/expert_model.cpp:260 #3 0x7f1f710a32fa in PrefsDialog::setExpert() ../../modules/gui/qt/dialogs/preferences/preferences.cpp:106 #4 0x7f1f710a8851 in PrefsDialog::PrefsDialog(QWindow*, qt_intf_t*) ../../modules/gui/qt/dialogs/preferences/preferences.cpp:74 #5 0x7f1f70ee43e2 in DialogsProvider::prefsDialog() ../../modules/gui/qt/dialogs/dialogs_provider.cpp:253 #6 0x7f1f714f6f97 in DialogsProvider::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) gui/qt/dialogs/dialogs_provider.moc.cpp:268 #7 0x7f1f714f7c11 in DialogsProvider::qt_metacall(QMetaObject::Call, int, void**) gui/qt/dialogs/dialogs_provider.moc.cpp:388 #8 0x7f1f70568f1c (/lib/x86_64-linux-gnu/libQt5Qml.so.5+0x2c4f1c) ... Direct leak of 33 byte(s) in 33 object(s) allocated from: #0 0x7f1f872677cf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145 #1 0x7f1f86eac342 in vlc_alloc ../../include/vlc_common.h:1149 #2 0x7f1f86eac342 in module_config_get ../../src/modules/modules.c:346 #3 0x7f1f710995f5 in ExpertPrefsTableModel::ExpertPrefsTableModel(module_t**, unsigned long, QWidget*) ../../modules/gui/qt/dialogs/preferences/expert_model.cpp:230 #4 0x7f1f710a32fa in PrefsDialog::setExpert() ../../modules/gui/qt/dialogs/preferences/preferences.cpp:106 #5 0x7f1f710a8851 in PrefsDialog::PrefsDialog(QWindow*, qt_intf_t*) ../../modules/gui/qt/dialogs/preferences/preferences.cpp:74 #6 0x7f1f70ee43e2 in DialogsProvider::prefsDialog() ../../modules/gui/qt/dialogs/dialogs_provider.cpp:253 #7 0x7f1f714f6f97 in DialogsProvider::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) gui/qt/dialogs/dialogs_provider.moc.cpp:268 #8 0x7f1f714f7c11 in DialogsProvider::qt_metacall(QMetaObject::Call, int, void**) gui/qt/dialogs/dialogs_provider.moc.cpp:388 #9 0x7f1f70568f1c (/lib/x86_64-linux-gnu/libQt5Qml.so.5+0x2c4f1c) ```
-
-
-
-
The groupbox had a name that misleadingly suggested that it only contained "instance" related controls when actually it contains both instance and playlist controls. If dbus is not available it is only the instance ones that should be hidden not the entire groupbox.
-
-
The `CONFIG_GENERIC_NO_BOOL` macro dates from a time when some config control types took an extra boolean flag in addition to input and label widget pointers, and some did not, and thus two different macros were needed. This has been obsolete since 259f2753 which removed the relevant bool param. Note that this macro never gained logic for disabling options that were unavailable, unlike `CONFIG_GENERIC`, so one side benefit of switching these items over to `CONFIG_GENERIC` is that they will correctly be disabled when unavailable now. Note that a tweak to `CONFIG_GENERIC` was necessary to fix a compilation error due to there now being use cases where the label param is null.
-
The audio-file output option for instance should be disabled if the `audiofile` module is unavailable.
-
Fixes #26492.
-
- Mar 09, 2022
-
-
...unless we are running out and have no other option left. This provides zero-copy video capture in most cases. Note though that the rawvideo decoder will still copy frames to adjust pitches and transfer from capture buffers to picture buffers (even if the pitches do not need adjustments).
-
-
This is so that blocks can be released from outside the demuxer.
-
This tracks which buffers have been dequeued and not yet requeued. When the capture ends, only buffers which were still queued will be freed. The pool is freed whence all buffers have been freed. This also automatically requeues a buffer when it is freed as long as the capture has not been terminated.
-
This will be used later on. Note that the FD is still stored in demux_sys_t for the cases where the pool is not created, i.e. user pointer and read-write capture modes.
-
-