diff --git a/src/panels/information/filemetadataconfigurationdialog.h b/src/panels/information/filemetadataconfigurationdialog.h --- a/src/panels/information/filemetadataconfigurationdialog.h +++ b/src/panels/information/filemetadataconfigurationdialog.h @@ -68,6 +68,13 @@ protected slots: void slotAccepted(); + +private slots: + void slotConfigWidgetUpdatedGeometry(); + +signals: + void updateGeometry(); + private: QLabel* m_descriptionLabel; Baloo::FileMetaDataConfigWidget* m_configWidget; diff --git a/src/panels/information/filemetadataconfigurationdialog.cpp b/src/panels/information/filemetadataconfigurationdialog.cpp --- a/src/panels/information/filemetadataconfigurationdialog.cpp +++ b/src/panels/information/filemetadataconfigurationdialog.cpp @@ -60,11 +60,15 @@ topLayout->addWidget(m_configWidget); mainLayout->addWidget(mainWidget); mainLayout->addWidget(buttonBox); +} +void FileMetaDataConfigurationDialog::slotConfigWidgetUpdatedGeometry() { const KConfigGroup dialogConfig(KSharedConfig::openConfig(QStringLiteral("dolphinrc")), "FileMetaDataConfigurationDialog"); KWindowConfig::restoreWindowSize(windowHandle(), dialogConfig); + + emit updateGeometry(); } FileMetaDataConfigurationDialog::~FileMetaDataConfigurationDialog() @@ -77,6 +81,9 @@ void FileMetaDataConfigurationDialog::setItems(const KFileItemList& items) { m_configWidget->setItems(items); + + // must be shown after the metadata has been loaded in FileMetaDataConfigWidget::loadMetadata + connect(m_configWidget, &Baloo::FileMetaDataConfigWidget::updateGeometry, this, &FileMetaDataConfigurationDialog::slotConfigWidgetUpdatedGeometry); } KFileItemList FileMetaDataConfigurationDialog::items() const diff --git a/src/panels/information/informationpanelcontent.cpp b/src/panels/information/informationpanelcontent.cpp --- a/src/panels/information/informationpanelcontent.cpp +++ b/src/panels/information/informationpanelcontent.cpp @@ -303,8 +303,9 @@ "Select which data should be shown in the information panel:")); dialog->setItems(m_metaDataWidget->items()); dialog->setAttribute(Qt::WA_DeleteOnClose); - dialog->show(); connect(dialog, &FileMetaDataConfigurationDialog::destroyed, this, &InformationPanelContent::refreshMetaData); + // Show the dialog once it is ready + connect(dialog, &FileMetaDataConfigurationDialog::updateGeometry, this, [dialog] () { dialog->show(); }); } if (action == dateformatAction) { int dateFormat = static_cast(isChecked ? Baloo::DateFormats::ShortFormat : Baloo::DateFormats::LongFormat);