[vlc-commits] [Git][videolan/vlc][master] 2 commits: qt: fix crash when Modal dialog is created with null parameters
Hugo Beauzée-Luyssen (@chouquette)
gitlab at videolan.org
Fri Feb 4 10:32:29 UTC 2022
Hugo Beauzée-Luyssen pushed to branch master at VideoLAN / VLC
Commits:
f9cb4c0e by Pierre Lamot at 2022-02-04T10:07:46+00:00
qt: fix crash when Modal dialog is created with null parameters
- - - - -
499303f9 by Pierre Lamot at 2022-02-04T10:07:46+00:00
qt: fix window parenting of nested modal dialogs
windowHandle() may return null if the current widget is not the window widget
fix: #26578
- - - - -
5 changed files:
- modules/gui/qt/dialogs/open/open.cpp
- modules/gui/qt/dialogs/plugins/plugins.cpp
- modules/gui/qt/dialogs/sout/profile_selector.cpp
- modules/gui/qt/dialogs/vlm/vlm.cpp
- modules/gui/qt/widgets/native/qvlcframe.cpp
Changes:
=====================================
modules/gui/qt/dialogs/open/open.cpp
=====================================
@@ -277,7 +277,9 @@ void OpenDialog::toggleAdvancedPanel()
void OpenDialog::browseInputSlave()
{
- OpenDialog *od = new OpenDialog( windowHandle(), p_intf, true, SELECT );
+ QWidget* windowWidget = window();
+ QWindow* parentWindow = windowWidget ? windowWidget->windowHandle() : nullptr;
+ OpenDialog *od = new OpenDialog( parentWindow, p_intf, true, SELECT );
od->exec();
ui.slaveText->setText( od->getMRL( false ) );
delete od;
@@ -408,7 +410,9 @@ void OpenDialog::stream( bool b_transcode_only )
{
msg_Dbg( p_intf, "MRL(s) passed to the Sout: %s", qtu( soutMRLS[i] ) );
}
- THEDP->streamingDialog( windowHandle(), soutMRLS, b_transcode_only,
+ QWidget* windowWidget = window();
+ QWindow* parentWindow = windowWidget ? windowWidget->windowHandle() : nullptr;
+ THEDP->streamingDialog( parentWindow, soutMRLS, b_transcode_only,
getOptions().split( " :" ) );
}
=====================================
modules/gui/qt/dialogs/plugins/plugins.cpp
=====================================
@@ -297,7 +297,9 @@ void ExtensionTab::moreInformation()
if( !index.isValid() )
return;
- ExtensionInfoDialog dlg( index, p_intf, windowHandle() );
+ QWidget* windowWidget = window();
+ QWindow* parentWindow = windowWidget ? windowWidget->windowHandle() : nullptr;
+ ExtensionInfoDialog dlg( index, p_intf, parentWindow );
dlg.exec();
}
@@ -592,7 +594,9 @@ void AddonsTab::moreInformation()
{
QModelIndex index = addonsView->selectionModel()->selectedIndexes().first();
if( !index.isValid() ) return;
- AddonInfoDialog dlg( index, p_intf, windowHandle() );
+ QWidget* windowWidget = window();
+ QWindow* parentWindow = windowWidget ? windowWidget->windowHandle() : nullptr;
+ AddonInfoDialog dlg( index, p_intf, parentWindow );
dlg.exec();
}
=====================================
modules/gui/qt/dialogs/sout/profile_selector.cpp
=====================================
@@ -142,7 +142,9 @@ void VLCProfileSelector::editProfile()
void VLCProfileSelector::editProfile( const QString& qs, const QString& value )
{
/* Create the Profile Editor */
- VLCProfileEditor *editor = new VLCProfileEditor( qs, value, windowHandle() );
+ QWidget* windowWidget = window();
+ QWindow* parentWindow = windowWidget ? windowWidget->windowHandle() : nullptr;
+ VLCProfileEditor *editor = new VLCProfileEditor( qs, value, parentWindow );
/* Show it */
if( QDialog::Accepted == editor->exec() )
=====================================
modules/gui/qt/dialogs/vlm/vlm.cpp
=====================================
@@ -356,7 +356,9 @@ void VLMDialog::selectInput()
void VLMDialog::selectOutput()
{
- SoutDialog *s = new SoutDialog( windowHandle(), p_intf );
+ QWidget* windowWidget = window();
+ QWindow* parentWindow = windowWidget ? windowWidget->windowHandle() : nullptr;
+ SoutDialog *s = new SoutDialog( parentWindow, p_intf );
if( s->exec() == QDialog::Accepted )
{
int i = s->getChain().indexOf( " " );
=====================================
modules/gui/qt/widgets/native/qvlcframe.cpp
=====================================
@@ -221,7 +221,7 @@ void QVLCDialog::keyPressEvent(QKeyEvent *keyEvent)
void QVLCDialog::setWindowTransientParent(QWidget* widget, QWindow* parent, qt_intf_t* p_intf)
{
- if (!parent)
+ if (!parent && p_intf)
parent = p_intf->p_compositor->interfaceMainWindow();
if (!parent)
return;
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/15ec6fd302b7a713206b644832878f99b0572414...499303f97f3cfd2b339fc9207c341a8d76c7bac2
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/15ec6fd302b7a713206b644832878f99b0572414...499303f97f3cfd2b339fc9207c341a8d76c7bac2
You're receiving this email because of your account on code.videolan.org.
More information about the vlc-commits
mailing list