obs-studio/obs
Palana 3fc7453933 UI: Clear ListItem selection before deleting widgets
This works around a crash in the "widget->clear()" call in
ClearListItems under the following circumstances:
- Create at least two scenes
- Create at least one source in both scenes
- Have at least one source selected in both scenes
- Set the same "Switch to scene" hotkey on both scenes
- Use "Switch to scene" hotkey

Reduced stack trace on my machine:
    frame #0: 0x00000001004bac2d QtWidgets`QWidget::show() + 93
    frame #1: 0x00000001006d32a2 QtWidgets`QAbstractItemView::updateEditorGeometries() + 690
    frame #2: 0x00000001006d36d7 QtWidgets`QAbstractItemView::updateGeometries() + 23
    frame #3: 0x00000001006f1ae6 QtWidgets`QListView::updateGeometries() + 438
    frame #4: 0x00000001006ccdce QtWidgets`QAbstractItemView::doItemsLayout() + 46
    frame #5: 0x00000001006f1916 QtWidgets`QListView::doItemsLayout() + 214
    frame #6: 0x00000001006f9cf3 QtWidgets`QListViewPrivate::rectForIndex(QModelIndex const&) const + 611
    frame #7: 0x00000001006eb48d QtWidgets`QListView::visualRect(QModelIndex const&) const + 29
    frame #8: 0x00000001006f1567 QtWidgets`QListView::visualRegionForSelection(QItemSelection const&) const + 1863
    frame #9: 0x00000001006d7ba9 QtWidgets`QAbstractItemView::selectionChanged(QItemSelection const&, QItemSelection const&) + 73
    frame #10: 0x00000001006f97d2 QtWidgets`QListView::selectionChanged(QItemSelection const&, QItemSelection const&) + 674
    frame #11: 0x00000001006d9b9e QtWidgets`QAbstractItemView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) + 1246
    frame #12: 0x0000000102b10372 QtCore`QMetaObject::activate(QObject*, int, int, void**) + 2994
    frame #13: 0x0000000102aa001c QtCore`QItemSelectionModel::emitSelectionChanged(QItemSelection const&, QItemSelection const&) + 300
    frame #14: 0x0000000102a9fe6c QtCore`QItemSelectionModel::select(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) + 748
    frame #15: 0x0000000102aa048b QtCore`QItemSelectionModel::clear() + 75
    frame #16: 0x000000010072e9d8 QtWidgets`QListWidget::clear() + 24
    frame #17: 0x000000010015759d obs`ClearListItems(widget=0x000000010683afa0) + 141 at item-widget-helpers.cpp:43
    frame #18: 0x000000010003424b obs`OBSBasic::UpdateSources(this=0x0000000105f5bf50, scene=(val = obs_scene * = 0x0000000110679440)), &(obs_scene_release)>) + 75 at window-basic-main.cpp:1254
    frame #19: 0x0000000100036a96 obs`OBSBasic::UpdateSceneSelection(this=0x0000000105f5bf50, source=<unavailable>), &(obs_source_release)>) + 422 at window-basic-main.cpp:1473
    frame #20: 0x0000000100175c48 obs`OBSBasic::qt_static_metacall(_o=0x0000000105f5bf50, _c=InvokeMetaMethod, _id=17, _a=0x00007fff5fbfb640) + 776 at moc_window-basic-main.cpp:494

This crash was reported at
https://obsproject.com/mantis/view.php?id=364
2015-11-06 11:36:51 +01:00
..
data UI: Add checkbox for visibility of new scene items 2015-10-11 11:42:40 -07:00
dist Add .desktop file for obs on linux 2014-08-05 21:15:31 +02:00
forms UI: Add checkbox for visibility of new scene items 2015-10-11 11:42:40 -07:00
CMakeLists.txt UI: Refactor OBSQTDisplay for windowless context 2015-08-05 01:07:11 -07:00
adv-audio-control.cpp UI: Fix rounding issues for advanced audio 2015-02-17 21:44:32 +01:00
adv-audio-control.hpp UI: Use grid layout for advanced audio properties 2015-02-11 08:02:56 -08:00
audio-encoders.cpp UI: If audio bitrate not available, use closest 2015-09-21 18:49:07 -07:00
audio-encoders.hpp UI: If audio bitrate not available, use closest 2015-09-21 18:49:07 -07:00
crash-report.cpp UI: Add crash report dialog 2015-01-03 02:37:21 -08:00
crash-report.hpp UI: Add crash report dialog 2015-01-03 02:37:21 -08:00
display-helpers.hpp Ensure sizes passed to OBS are actual pixel sizes 2014-04-16 22:39:05 +02:00
double-slider.cpp UI: Fix DoubleSlider behavior for OBS_NUMBER_SLIDER properties 2015-07-01 08:22:04 +02:00
double-slider.hpp UI: Add #pragma once to double slider widget 2015-03-25 14:14:40 -07:00
focus-list.cpp UI: Add QListWidget subclass to emit focus change 2015-03-25 14:11:59 -07:00
focus-list.hpp UI: Add QListWidget subclass to emit focus change 2015-03-25 14:11:59 -07:00
hotkey-edit.cpp UI: Handle empty key combos from QEvents in hotkey dialog 2015-05-15 17:08:25 +02:00
hotkey-edit.hpp UI: Add OBSHotkey{Edit,Label,Widget} 2015-05-11 20:45:27 +02:00
item-widget-helpers.cpp UI: Clear ListItem selection before deleting widgets 2015-11-06 11:36:51 +01:00
item-widget-helpers.hpp UI: Add item widget helper functions 2015-07-02 17:56:03 -07:00
mute-checkbox.hpp UI: Add 'mute' checkbox style hint 2015-03-25 10:03:24 -07:00
obs-app.cpp UI: Move reconnect options to advanced settings 2015-09-10 21:54:11 -07:00
obs-app.hpp UI: Add basic profiler integration 2015-08-12 15:30:28 +02:00
obs.rc UI: Add windows exe icon 2015-04-10 07:27:37 -07:00
platform-osx.mm Move config values from the commandline to obsconfig.h 2014-07-26 14:07:14 +02:00
platform-windows.cpp UI: Use get_win_ver (not GetVersionEx) 2015-08-01 14:51:23 -07:00
platform-x11.cpp UI: Fix bug with xinerama on linux 2014-12-22 01:12:58 +01:00
platform.hpp UI: Add funcs to get windows ver. and disable aero 2015-06-02 17:02:54 -07:00
properties-view.cpp UI: Toggle password "Show" button text when clicked 2015-07-06 13:38:57 +02:00
properties-view.hpp UI: Add editable list property to properties view 2015-06-02 17:01:39 -07:00
qt-display.cpp UI: Refactor OBSQTDisplay for windowless context 2015-08-05 01:07:11 -07:00
qt-display.hpp UI: Refactor OBSQTDisplay for windowless context 2015-08-05 01:07:11 -07:00
qt-wrappers.cpp UI: Enable drag&drop reordering for scenes 2015-06-28 05:09:45 +02:00
qt-wrappers.hpp UI: Enable drag&drop reordering for scenes 2015-06-28 05:09:45 +02:00
remote-text.cpp UI: Add RemoteTextThread class 2015-05-24 16:20:12 -07:00
remote-text.hpp UI: Add RemoteTextThread class 2015-05-24 16:20:12 -07:00
slider-absoluteset-style.cpp UI: Add SliderAbsoluteSetStyle class 2015-04-11 07:13:30 -07:00
slider-absoluteset-style.hpp UI: Add SliderAbsoluteSetStyle class 2015-04-11 07:13:30 -07:00
source-label.cpp UI: Add OBSSourceLabel 2015-05-11 20:45:27 +02:00
source-label.hpp UI: Add OBSSourceLabel 2015-05-11 20:45:27 +02:00
source-list-widget.cpp UI: Add drag&drop reordering for the sources list 2015-06-28 05:09:45 +02:00
source-list-widget.hpp UI: Add drag&drop reordering for the sources list 2015-06-28 05:09:45 +02:00
sparkle-updater.mm sparkle-updater: Enable delta update failure fallback 2014-11-01 03:06:26 +01:00
vertical-scroll-area.cpp UI: Fix property scroll area widget not resizing 2015-01-03 07:31:51 -08:00
vertical-scroll-area.hpp UI: Always hide VScrollArea horizontal scroll bar 2015-01-03 07:32:04 -08:00
visibility-checkbox.cpp UI: Add 'visibility' checkbox 2015-03-25 10:03:23 -07:00
visibility-checkbox.hpp UI: Add 'visibility' checkbox 2015-03-25 10:03:23 -07:00
visibility-item-widget.cpp UI: Fix vis. item widget appearance on linux 2015-05-01 03:55:21 -07:00
visibility-item-widget.hpp UI: Add list item widget w/ visibility checkbox 2015-03-25 14:11:58 -07:00
volume-control.cpp UI: Add optional config button to volume controls 2015-06-25 15:55:29 -07:00
volume-control.hpp UI: Add optional config button to volume controls 2015-06-25 15:55:29 -07:00
window-basic-adv-audio.cpp UI: Save project only on new changes 2015-07-02 18:08:55 -07:00
window-basic-adv-audio.hpp UI: Fix crash in advanced audio settings 2015-02-13 13:11:15 +01:00
window-basic-filters.cpp UI: Prune obs_display code from secondary windows 2015-08-05 01:07:13 -07:00
window-basic-filters.hpp UI: Prune obs_display code from secondary windows 2015-08-05 01:07:13 -07:00
window-basic-interaction.cpp UI: Prune obs_display code from secondary windows 2015-08-05 01:07:13 -07:00
window-basic-interaction.hpp UI: Prune obs_display code from secondary windows 2015-08-05 01:07:13 -07:00
window-basic-main-outputs.cpp UI: If audio bitrate not available, use closest 2015-09-21 18:49:07 -07:00
window-basic-main-outputs.hpp UI: Implement stream delay 2015-09-10 12:13:40 -07:00
window-basic-main-profiles.cpp UI: Use saving functions for profiles/scenes 2015-08-21 18:22:25 -07:00
window-basic-main-scene-collections.cpp UI: Use empty scene for new scene collection 2015-09-11 21:51:09 -07:00
window-basic-main.cpp UI: Move properties window creation for new sources 2015-10-30 10:15:42 +01:00
window-basic-main.hpp Revert "UI: Always create a display capture on first run" 2015-09-23 08:53:41 -07:00
window-basic-preview.cpp (API Change) libobs: Use single func for base effects 2015-10-19 00:52:45 -07:00
window-basic-preview.hpp (API Change) Remove pointers from all typedefs 2014-09-25 21:48:11 -07:00
window-basic-properties.cpp UI: Use a default size for the properties window 2015-09-07 18:40:06 -07:00
window-basic-properties.hpp UI: Prune obs_display code from secondary windows 2015-08-05 01:07:13 -07:00
window-basic-settings.cpp UI: Prevent calling of obs functions with NULL params 2015-10-21 06:30:33 -07:00
window-basic-settings.hpp UI: Add recording presets to simple output 2015-09-19 17:04:22 -07:00
window-basic-source-select.cpp UI: Move properties window creation for new sources 2015-10-30 10:15:42 +01:00
window-basic-source-select.hpp UI: Move properties window creation for new sources 2015-10-30 10:15:42 +01:00
window-basic-status-bar.cpp UI: Clear reconnect timeout if reconnect canceled 2015-09-11 08:23:03 -07:00
window-basic-status-bar.hpp UI: Implement stream delay 2015-09-10 12:13:40 -07:00
window-basic-transform.cpp UI: Add basic hotkey integration 2015-05-11 20:45:26 +02:00
window-basic-transform.hpp (API Change) Remove pointers from all typedefs 2014-09-25 21:48:11 -07:00
window-license-agreement.cpp Add license agreement dialog 2014-07-13 11:40:47 -07:00
window-license-agreement.hpp Add license agreement dialog 2014-07-13 11:40:47 -07:00
window-log-reply.cpp UI: Add basic hotkey integration 2015-05-11 20:45:26 +02:00
window-log-reply.hpp Add help menu with log file uploading 2014-05-18 17:44:10 -07:00
window-main.hpp UI: Add Profiles 2015-07-03 18:35:30 -07:00
window-namedialog.cpp UI: Remove whitespace when asking for a name 2015-07-02 17:18:45 -07:00
window-namedialog.hpp Auto suggest scene and source names. 2014-05-12 15:01:51 -04:00
window-projector.cpp UI: Prune obs_display code from secondary windows 2015-08-05 01:07:13 -07:00
window-projector.hpp UI: Prune obs_display code from secondary windows 2015-08-05 01:07:13 -07:00
window-remux.cpp UI: Add basic hotkey integration 2015-05-11 20:45:26 +02:00
window-remux.hpp Add UI for remuxing recordings via FFmpeg 2014-10-12 19:56:52 +02:00