X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/59d01e8accbfb7f31fb5ea5ef4c94e57d427994a..dfbaf21218c7a96dd7b7d1c4275820cd94c920f5:/src/settings/additionalinfodialog.cpp diff --git a/src/settings/additionalinfodialog.cpp b/src/settings/additionalinfodialog.cpp index db9258ae8..4589b5d44 100644 --- a/src/settings/additionalinfodialog.cpp +++ b/src/settings/additionalinfodialog.cpp @@ -21,33 +21,39 @@ #include -#include +#include +#include #include "kitemviews/kfileitemmodel.h" +#include +#include + #include #include #include +#include +#include #ifdef HAVE_BALOO - #include + #include #endif AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent, const QList& visibleRoles) : - KDialog(parent), + QDialog(parent), m_visibleRoles(visibleRoles), m_listWidget(0) { - setCaption(i18nc("@title:window", "Additional Information")); - setButtons(Ok | Cancel); - setDefaultButton(Ok); + setWindowTitle(i18nc("@title:window", "Additional Information")); + setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum); - QWidget* mainWidget = new QWidget(this); - mainWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum); + auto layout = new QVBoxLayout(this); + setLayout(layout); // Add header - QLabel* header = new QLabel(mainWidget); + auto header = new QLabel(this); header->setText(i18nc("@label", "Select which additional information should be shown:")); header->setWordWrap(true); + layout->addWidget(header); // Add checkboxes bool indexingEnabled = false; @@ -56,38 +62,40 @@ AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent, indexingEnabled = config.fileIndexingEnabled(); #endif - m_listWidget = new QListWidget(mainWidget); + m_listWidget = new QListWidget(this); m_listWidget->setSelectionMode(QAbstractItemView::NoSelection); const QList rolesInfo = KFileItemModel::rolesInformation(); foreach (const KFileItemModel::RoleInfo& info, rolesInfo) { QListWidgetItem* item = new QListWidgetItem(info.translation, m_listWidget); item->setCheckState(visibleRoles.contains(info.role) ? Qt::Checked : Qt::Unchecked); - const bool enable = (!info.requiresBaloo && !info.requiresIndexer) || + const bool enable = ((!info.requiresBaloo && !info.requiresIndexer) || (info.requiresBaloo) || - (info.requiresIndexer && indexingEnabled); + (info.requiresIndexer && indexingEnabled)) && info.role != "text"; if (!enable) { item->setFlags(item->flags() & ~Qt::ItemIsEnabled); } } - - QVBoxLayout* layout = new QVBoxLayout(mainWidget); - layout->addWidget(header); layout->addWidget(m_listWidget); - setMainWidget(mainWidget); + auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); + connect(buttonBox, &QDialogButtonBox::accepted, this, &AdditionalInfoDialog::accept); + connect(buttonBox, &QDialogButtonBox::rejected, this, &AdditionalInfoDialog::reject); + layout->addWidget(buttonBox); - const KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "AdditionalInfoDialog"); - restoreDialogSize(dialogConfig); + auto okButton = buttonBox->button(QDialogButtonBox::Ok); + okButton->setShortcut(Qt::CTRL | Qt::Key_Return); + okButton->setDefault(true); - connect(this, &AdditionalInfoDialog::okClicked, this, &AdditionalInfoDialog::slotOk); + const KConfigGroup dialogConfig(KSharedConfig::openConfig(QStringLiteral("dolphinrc")), "AdditionalInfoDialog"); + KWindowConfig::restoreWindowSize(windowHandle(), dialogConfig); } AdditionalInfoDialog::~AdditionalInfoDialog() { - KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "AdditionalInfoDialog"); - saveDialogSize(dialogConfig, KConfigBase::Persistent); + KConfigGroup dialogConfig(KSharedConfig::openConfig(QStringLiteral("dolphinrc")), "AdditionalInfoDialog"); + KWindowConfig::saveWindowSize(windowHandle(), dialogConfig); } QList AdditionalInfoDialog::visibleRoles() const @@ -95,7 +103,7 @@ QList AdditionalInfoDialog::visibleRoles() const return m_visibleRoles; } -void AdditionalInfoDialog::slotOk() +void AdditionalInfoDialog::accept() { m_visibleRoles.clear(); @@ -108,6 +116,6 @@ void AdditionalInfoDialog::slotOk() } ++index; } -} -#include "additionalinfodialog.moc" + QDialog::accept(); +}