From e6523889f6f029675db67d64e7b09324d910e490 Mon Sep 17 00:00:00 2001 From: dmacvicar Date: Fri, 14 Dec 2007 15:07:46 +0000 Subject: [PATCH 1/1] - Don't create layouts with parent. Qt 4.x automatically reparents them when setting a layout for a widget or adding it to another layout. But creating a layout with the wrong parent causes problems git-svn-id: http://svn.opensuse.org/svn/yast/trunk/qt@43086 e0cc52ee-31ee-0310-8b87-e83c4596d67c --- src/QY2ComboTabWidget.cc | 4 ++-- src/pkg/YQPackageSelector.cc | 2 +- src/pkg/YQPackageSelectorBase.cc | 2 +- src/pkg/YQPatternSelector.cc | 3 ++- src/pkg/YQPkgChangesDialog.cc | 6 +++--- src/pkg/YQPkgConflictDialog.cc | 3 ++- src/pkg/YQPkgDescriptionDialog.cc | 8 +++++--- src/pkg/YQPkgDiskUsageWarningDialog.cc | 10 +++++----- src/pkg/YQPkgPatchFilterView.cc | 7 ++++--- src/pkg/YQPkgProductDialog.cc | 8 ++++---- src/pkg/YQPkgRepoFilterView.cc | 24 ++++++++++++++---------- src/pkg/YQPkgSearchFilterView.cc | 2 +- src/pkg/YQPkgStatusFilterView.cc | 2 +- src/pkg/YQPkgTextDialog.cc | 8 ++++---- 14 files changed, 49 insertions(+), 40 deletions(-) diff --git a/src/QY2ComboTabWidget.cc b/src/QY2ComboTabWidget.cc index 5afdeb7..eebe9f7 100644 --- a/src/QY2ComboTabWidget.cc +++ b/src/QY2ComboTabWidget.cc @@ -42,10 +42,10 @@ QY2ComboTabWidget::QY2ComboTabWidget( const QString & label, const char * name ) : QWidget(parent) { - QVBoxLayout *vbox = new QVBoxLayout(this); + QVBoxLayout *vbox = new QVBoxLayout(); setLayout(vbox); - QHBoxLayout *hbox = new QHBoxLayout(this); + QHBoxLayout *hbox = new QHBoxLayout(); Q_CHECK_PTR( hbox ); // hbox->setFrameStyle( QFrame::Panel | QFrame::Raised ); // hbox->setLineWidth(2); diff --git a/src/pkg/YQPackageSelector.cc b/src/pkg/YQPackageSelector.cc index af1ebf5..8312bab 100644 --- a/src/pkg/YQPackageSelector.cc +++ b/src/pkg/YQPackageSelector.cc @@ -216,7 +216,7 @@ YQPackageSelector::YQPackageSelector( YWidget * parent, void YQPackageSelector::basicLayout() { - QVBoxLayout *layout = new QVBoxLayout(this); + QVBoxLayout *layout = new QVBoxLayout(); setLayout(layout); layoutMenuBar(this); diff --git a/src/pkg/YQPackageSelectorBase.cc b/src/pkg/YQPackageSelectorBase.cc index ea89337..8f9c858 100644 --- a/src/pkg/YQPackageSelectorBase.cc +++ b/src/pkg/YQPackageSelectorBase.cc @@ -56,7 +56,7 @@ YQPackageSelectorBase::YQPackageSelectorBase( YWidget * parent, { setWidgetRep( this ); -// QHBoxLayout *layout = new QHBoxLayout(this); +// QHBoxLayout *layout = new QHBoxLayout(); // setLayout(layout); _showChangesDialog = false; diff --git a/src/pkg/YQPatternSelector.cc b/src/pkg/YQPatternSelector.cc index 7c0f1cc..6be0f4c 100644 --- a/src/pkg/YQPatternSelector.cc +++ b/src/pkg/YQPatternSelector.cc @@ -105,7 +105,8 @@ YQPatternSelector::findWizard() const void YQPatternSelector::basicLayout() { - QVBoxLayout *vbox = new QVBoxLayout( this ); + QVBoxLayout *vbox = new QVBoxLayout(); + setLayout(vbox); QSplitter * outer_splitter = new QSplitter( Qt::Horizontal, this ); Q_CHECK_PTR( outer_splitter ); diff --git a/src/pkg/YQPkgChangesDialog.cc b/src/pkg/YQPkgChangesDialog.cc index 45191fd..01a1f4b 100644 --- a/src/pkg/YQPkgChangesDialog.cc +++ b/src/pkg/YQPkgChangesDialog.cc @@ -64,7 +64,7 @@ YQPkgChangesDialog::YQPkgChangesDialog( QWidget * parent, // Layout for the dialog ( can't simply insert a QVBox ) - QVBoxLayout * layout = new QVBoxLayout( this ); + QVBoxLayout * layout = new QVBoxLayout(); Q_CHECK_PTR( layout ); layout->setMargin(MARGIN); layout->setSpacing(SPACING); @@ -72,7 +72,7 @@ YQPkgChangesDialog::YQPkgChangesDialog( QWidget * parent, // HBox for icon and message - QHBoxLayout * hbox = new QHBoxLayout( this ); + QHBoxLayout * hbox = new QHBoxLayout(); Q_CHECK_PTR( hbox ); layout->addLayout( hbox ); @@ -108,7 +108,7 @@ YQPkgChangesDialog::YQPkgChangesDialog( QWidget * parent, // Button box - hbox = new QHBoxLayout( this ); + hbox = new QHBoxLayout(); Q_CHECK_PTR( hbox ); hbox->setSpacing( SPACING ); hbox->setMargin ( MARGIN ); diff --git a/src/pkg/YQPkgConflictDialog.cc b/src/pkg/YQPkgConflictDialog.cc index 48ec35d..a8e7a60 100644 --- a/src/pkg/YQPkgConflictDialog.cc +++ b/src/pkg/YQPkgConflictDialog.cc @@ -79,7 +79,8 @@ YQPkgConflictDialog::YQPkgConflictDialog( QWidget * parent ) // Layout for the dialog (can't simply insert a QVbox) - QVBoxLayout * layout = new QVBoxLayout( this ); + QVBoxLayout * layout = new QVBoxLayout(); + setLayout(layout); layout->setMargin(MARGIN); layout->setSpacing(SPACING); diff --git a/src/pkg/YQPkgDescriptionDialog.cc b/src/pkg/YQPkgDescriptionDialog.cc index 780c201..7751195 100644 --- a/src/pkg/YQPkgDescriptionDialog.cc +++ b/src/pkg/YQPkgDescriptionDialog.cc @@ -54,10 +54,12 @@ YQPkgDescriptionDialog::YQPkgDescriptionDialog( QWidget * parent, const QString // Layout for the dialog (can't simply insert a QVBox) - QVBoxLayout * layout = new QVBoxLayout( this ); + QVBoxLayout * layout = new QVBoxLayout(); + Q_CHECK_PTR( layout ); + setLayout(layout); layout->setMargin(MARGIN); layout->setSpacing(SPACING); - Q_CHECK_PTR( layout ); + // VBox for splitter @@ -85,7 +87,7 @@ YQPkgDescriptionDialog::YQPkgDescriptionDialog( QWidget * parent, const QString // Button box (to center the single button) - QHBoxLayout * hbox = new QHBoxLayout( this ); + QHBoxLayout * hbox = new QHBoxLayout(); Q_CHECK_PTR( hbox ); hbox->setSpacing( SPACING ); hbox->setMargin ( MARGIN ); diff --git a/src/pkg/YQPkgDiskUsageWarningDialog.cc b/src/pkg/YQPkgDiskUsageWarningDialog.cc index bf7b7f3..0cdadba 100644 --- a/src/pkg/YQPkgDiskUsageWarningDialog.cc +++ b/src/pkg/YQPkgDiskUsageWarningDialog.cc @@ -54,14 +54,14 @@ YQPkgDiskUsageWarningDialog::YQPkgDiskUsageWarningDialog( QWidget * parent, // Layout for the dialog ( can't simply insert a QVBox ) - QVBoxLayout * layout = new QVBoxLayout( this ); + QVBoxLayout * layout = new QVBoxLayout(); + Q_CHECK_PTR( layout ); layout->setSpacing( SPACING ); layout->setMargin ( MARGIN ); - Q_CHECK_PTR( layout ); - + setLayout(layout); // HBox for icon and message - QHBoxLayout * hbox = new QHBoxLayout( this ); + QHBoxLayout * hbox = new QHBoxLayout(); Q_CHECK_PTR( hbox ); layout->addLayout( hbox ); @@ -95,7 +95,7 @@ YQPkgDiskUsageWarningDialog::YQPkgDiskUsageWarningDialog( QWidget * parent, // Button box - hbox = new QHBoxLayout( this ); + hbox = new QHBoxLayout(); Q_CHECK_PTR( hbox ); hbox->setSpacing( SPACING ); hbox->setMargin ( MARGIN ); diff --git a/src/pkg/YQPkgPatchFilterView.cc b/src/pkg/YQPkgPatchFilterView.cc index 8a433b5..312c844 100644 --- a/src/pkg/YQPkgPatchFilterView.cc +++ b/src/pkg/YQPkgPatchFilterView.cc @@ -53,7 +53,8 @@ using std::set; YQPkgPatchFilterView::YQPkgPatchFilterView( QWidget * parent ) : QWidget( parent ) { - QVBoxLayout *layout = new QVBoxLayout(this); + QVBoxLayout *layout = new QVBoxLayout(); + setLayout(layout); _splitter = new QSplitter( Qt::Vertical, this ); Q_CHECK_PTR( _splitter ); @@ -66,7 +67,7 @@ YQPkgPatchFilterView::YQPkgPatchFilterView( QWidget * parent ) //addVSpacing( vbox, 4 ); - QHBoxLayout * hbox = new QHBoxLayout( this ); Q_CHECK_PTR( hbox ); + QHBoxLayout * hbox = new QHBoxLayout(); Q_CHECK_PTR( hbox ); vbox->addLayout(hbox); hbox->setSpacing( SPACING ); @@ -104,7 +105,7 @@ YQPkgPatchFilterView::YQPkgPatchFilterView( QWidget * parent ) // HBox for total download size // - hbox = new QHBoxLayout( this ); Q_CHECK_PTR( hbox ); + hbox = new QHBoxLayout(); Q_CHECK_PTR( hbox ); vbox->addLayout(hbox); //addHStretch( hbox ); diff --git a/src/pkg/YQPkgProductDialog.cc b/src/pkg/YQPkgProductDialog.cc index fc3687b..89a91f4 100644 --- a/src/pkg/YQPkgProductDialog.cc +++ b/src/pkg/YQPkgProductDialog.cc @@ -56,11 +56,11 @@ YQPkgProductDialog::YQPkgProductDialog( QWidget * parent ) // Layout for the dialog (can't simply insert a QVBox) - QVBoxLayout * layout = new QVBoxLayout( this ); + QVBoxLayout * layout = new QVBoxLayout(); + Q_CHECK_PTR( layout ); + setLayout(layout); layout->setSpacing( SPACING ); layout->setMargin ( MARGIN ); - Q_CHECK_PTR( layout ); - // VBox for splitter @@ -100,7 +100,7 @@ YQPkgProductDialog::YQPkgProductDialog( QWidget * parent ) // Button box (to center the single button) - QHBoxLayout * hbox = new QHBoxLayout( this ); + QHBoxLayout * hbox = new QHBoxLayout(); Q_CHECK_PTR( hbox ); hbox->setSpacing( SPACING ); hbox->setMargin ( MARGIN ); diff --git a/src/pkg/YQPkgRepoFilterView.cc b/src/pkg/YQPkgRepoFilterView.cc index 4569859..76b2b49 100644 --- a/src/pkg/YQPkgRepoFilterView.cc +++ b/src/pkg/YQPkgRepoFilterView.cc @@ -44,11 +44,12 @@ YQPkgRepoFilterView::YQPkgRepoFilterView( QWidget * parent ) QSplitter * splitter = new QSplitter( Qt::Vertical, this ); Q_CHECK_PTR( splitter ); - QVBoxLayout * upper_vbox = new QVBoxLayout( splitter ); + //QVBoxLayout * upper_vbox = new QVBoxLayout( splitter ); _repoList = new YQPkgRepoList( this ); - upper_vbox->addWidget(_repoList); - + //upper_vbox->addWidget(_repoList); + splitter->addWidget(_repoList); + Q_CHECK_PTR( _repoList ); _repoList->setSizePolicy( QSizePolicy( QSizePolicy::Ignored, QSizePolicy::Expanding ) );// hor/vert @@ -94,10 +95,13 @@ YQPkgRepoFilterView::~YQPkgRepoFilterView() QWidget * YQPkgRepoFilterView::layoutSecondaryFilters( QWidget * parent ) { - - QVBoxLayout *vbox = new QVBoxLayout( parent ); + QWidget *vbox = new QWidget(parent); Q_CHECK_PTR( vbox ); - //addVSpacing( vbox, MARGIN ); + + QVBoxLayout *layout = new QVBoxLayout(); + vbox->setLayout(layout); + + layout->addSpacing( MARGIN ); // Translators: This is a combo box where the user can apply a secondary filter // in addition to the primary filter by repository - one of @@ -107,7 +111,7 @@ YQPkgRepoFilterView::layoutSecondaryFilters( QWidget * parent ) // few cases where a combo box label is left to the combo box rather than // above it. _secondaryFilters = new QY2ComboTabWidget( _( "&Secondary Filter:" )); - vbox->addWidget(_secondaryFilters); + layout->addWidget(_secondaryFilters); Q_CHECK_PTR( _secondaryFilters ); @@ -122,7 +126,7 @@ YQPkgRepoFilterView::layoutSecondaryFilters( QWidget * parent ) // _allPackages = new QWidget( this ); - vbox->addWidget(_allPackages); + layout->addWidget(_allPackages); Q_CHECK_PTR( _allPackages ); _secondaryFilters->addPage( _( "All Packages" ), _allPackages ); @@ -132,7 +136,7 @@ YQPkgRepoFilterView::layoutSecondaryFilters( QWidget * parent ) // _rpmGroupTagsFilterView = new YQPkgRpmGroupTagsFilterView( this ); - vbox->addWidget(_rpmGroupTagsFilterView); + layout->addWidget(_rpmGroupTagsFilterView); Q_CHECK_PTR( _rpmGroupTagsFilterView ); _secondaryFilters->addPage( _( "Package Groups" ), _rpmGroupTagsFilterView ); @@ -146,7 +150,7 @@ YQPkgRepoFilterView::layoutSecondaryFilters( QWidget * parent ) // _searchFilterView = new YQPkgSearchFilterView(this); - vbox->addWidget(_searchFilterView); + layout->addWidget(_searchFilterView); Q_CHECK_PTR( _searchFilterView ); _secondaryFilters->addPage( _( "Search" ), _searchFilterView ); diff --git a/src/pkg/YQPkgSearchFilterView.cc b/src/pkg/YQPkgSearchFilterView.cc index a9e0de1..ae87ce5 100644 --- a/src/pkg/YQPkgSearchFilterView.cc +++ b/src/pkg/YQPkgSearchFilterView.cc @@ -73,7 +73,7 @@ YQPkgSearchFilterView::YQPkgSearchFilterView( QWidget * parent ) // Box for search button - QHBoxLayout * hbox = new QHBoxLayout( this ); + QHBoxLayout * hbox = new QHBoxLayout(); Q_CHECK_PTR( hbox ); layout->addLayout(hbox); hbox->addStretch(); diff --git a/src/pkg/YQPkgStatusFilterView.cc b/src/pkg/YQPkgStatusFilterView.cc index e48445c..1fa314c 100644 --- a/src/pkg/YQPkgStatusFilterView.cc +++ b/src/pkg/YQPkgStatusFilterView.cc @@ -43,7 +43,7 @@ YQPkgStatusFilterView::YQPkgStatusFilterView( QWidget * parent ) : QWidget( parent ) { - QVBoxLayout *layout = new QVBoxLayout(this); + QVBoxLayout *layout = new QVBoxLayout(); setLayout(layout); layout->setMargin( MARGIN ); diff --git a/src/pkg/YQPkgTextDialog.cc b/src/pkg/YQPkgTextDialog.cc index 54d95cb..0c10ddb 100644 --- a/src/pkg/YQPkgTextDialog.cc +++ b/src/pkg/YQPkgTextDialog.cc @@ -79,11 +79,11 @@ void YQPkgTextDialog::buildDialog( const QString & text, // Layout for the dialog ( can't simply insert a QVBox ) - QVBoxLayout * layout = new QVBoxLayout( this ); + QVBoxLayout * layout = new QVBoxLayout(); + Q_CHECK_PTR( layout ); + setLayout(layout); layout->setMargin(MARGIN); layout->setSpacing(SPACING); - Q_CHECK_PTR( layout ); - // Text browser @@ -97,7 +97,7 @@ void YQPkgTextDialog::buildDialog( const QString & text, // Button box - QHBoxLayout * buttonBox = new QHBoxLayout( this ); + QHBoxLayout * buttonBox = new QHBoxLayout(); Q_CHECK_PTR( buttonBox ); buttonBox->setSpacing( SPACING ); buttonBox->setMargin ( MARGIN ); -- 2.39.2