diff --git a/src/widgets/kpropertiesdialog.cpp b/src/widgets/kpropertiesdialog.cpp --- a/src/widgets/kpropertiesdialog.cpp +++ b/src/widgets/kpropertiesdialog.cpp @@ -466,6 +466,14 @@ d->m_pageList.append(plugin); } +void KPropertiesDialog::insertPluginAt(KPropertiesDialogPlugin *plugin, int index) +{ + connect(plugin, &KPropertiesDialogPlugin::changed, + plugin, QOverload<>::of(&KPropertiesDialogPlugin::setDirty)); + + d->m_pageList.insert(index, plugin); +} + QUrl KPropertiesDialog::url() const { return d->m_singleUrl; @@ -575,30 +583,6 @@ q->insertPlugin(p); } - if (KFilePermissionsPropsPlugin::supports(m_items)) { - KPropertiesDialogPlugin *p = new KFilePermissionsPropsPlugin(q); - q->insertPlugin(p); - } - - if (KChecksumsPlugin::supports(m_items)) { - KPropertiesDialogPlugin *p = new KChecksumsPlugin(q); - q->insertPlugin(p); - } - - if (KDesktopPropsPlugin::supports(m_items)) { - KPropertiesDialogPlugin *p = new KDesktopPropsPlugin(q); - q->insertPlugin(p); - } - - if (KUrlPropsPlugin::supports(m_items)) { - KPropertiesDialogPlugin *p = new KUrlPropsPlugin(q); - q->insertPlugin(p); - } - - if (KDevicePropsPlugin::supports(m_items)) { - KPropertiesDialogPlugin *p = new KDevicePropsPlugin(q); - q->insertPlugin(p); - } // if ( KPreviewPropsPlugin::supports( m_items ) ) { // KPropertiesDialogPlugin *p = new KPreviewPropsPlugin(q); @@ -631,8 +615,35 @@ } plugin->setObjectName(ptr->name()); - q->insertPlugin(plugin); + q->insertPluginAt(plugin,1); + } + + if (KFilePermissionsPropsPlugin::supports(m_items)) { + KPropertiesDialogPlugin *p = new KFilePermissionsPropsPlugin(q); + q->insertPlugin(p); + } + + if (KChecksumsPlugin::supports(m_items)) { + KPropertiesDialogPlugin *p = new KChecksumsPlugin(q); + q->insertPlugin(p); + } + + if (KDesktopPropsPlugin::supports(m_items)) { + KPropertiesDialogPlugin *p = new KDesktopPropsPlugin(q); + q->insertPlugin(p); + } + + if (KUrlPropsPlugin::supports(m_items)) { + KPropertiesDialogPlugin *p = new KUrlPropsPlugin(q); + q->insertPlugin(p); + } + + if (KDevicePropsPlugin::supports(m_items)) { + KPropertiesDialogPlugin *p = new KDevicePropsPlugin(q); + q->insertPlugin(p); } + + } void KPropertiesDialog::updateUrl(const QUrl &_newUrl)