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,10 @@ protected slots: void slotAccepted(); + +private slots: + void slotShowDialog(); + 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,14 @@ topLayout->addWidget(m_configWidget); mainLayout->addWidget(mainWidget); mainLayout->addWidget(buttonBox); +} +void FileMetaDataConfigurationDialog::slotShowDialog() { const KConfigGroup dialogConfig(KSharedConfig::openConfig(QStringLiteral("dolphinrc")), "FileMetaDataConfigurationDialog"); KWindowConfig::restoreWindowSize(windowHandle(), dialogConfig); + show(); } FileMetaDataConfigurationDialog::~FileMetaDataConfigurationDialog() @@ -77,6 +80,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, SIGNAL(metadataLoaded()), this, SLOT(slotShowDialog())); } 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,7 +303,7 @@ "Select which data should be shown in the information panel:")); dialog->setItems(m_metaDataWidget->items()); dialog->setAttribute(Qt::WA_DeleteOnClose); - dialog->show(); + // the dialog displays itself on its own once the metadata are loaded connect(dialog, &FileMetaDataConfigurationDialog::destroyed, this, &InformationPanelContent::refreshMetaData); } if (action == dateformatAction) {