X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/f11c699fa203dd2cde0e85c63a6d186e3fa6a3de..13b2fc55704fbc734cd4f9cbae56cfc2ef3ec0ce:/src/detailsviewsettingspage.cpp diff --git a/src/detailsviewsettingspage.cpp b/src/detailsviewsettingspage.cpp index ea45c9688..a51e121e9 100644 --- a/src/detailsviewsettingspage.cpp +++ b/src/detailsviewsettingspage.cpp @@ -23,26 +23,25 @@ #include "dolphin_detailsmodesettings.h" #include -#include +#include #include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include -DetailsViewSettingsPage::DetailsViewSettingsPage(DolphinMainWindow* mainWindow, - QWidget* parent) : - KVBox(parent), - m_mainWindow(mainWindow), +DetailsViewSettingsPage::DetailsViewSettingsPage(QWidget* parent) : + ViewSettingsPageBase(parent), m_smallIconSize(0), m_mediumIconSize(0), m_largeIconSize(0), - m_fontRequester(0) + m_fontRequester(0), + m_expandableFolders(0) { const int spacing = KDialog::spacingHint(); const int margin = KDialog::marginHint(); @@ -58,6 +57,9 @@ DetailsViewSettingsPage::DetailsViewSettingsPage(DolphinMainWindow* mainWindow, m_smallIconSize = new QRadioButton(i18nc("@option:radio Icon Size", "Small"), this); m_mediumIconSize = new QRadioButton(i18nc("@option:radio Icon Size", "Medium"), this); m_largeIconSize = new QRadioButton(i18nc("@option:radio Icon Size", "Large"), this); + connect(m_smallIconSize, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + connect(m_mediumIconSize, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + connect(m_largeIconSize, SIGNAL(toggled(bool)), this, SIGNAL(changed())); QButtonGroup* iconSizeGroup = new QButtonGroup(this); iconSizeGroup->addButton(m_smallIconSize); @@ -74,12 +76,17 @@ DetailsViewSettingsPage::DetailsViewSettingsPage(DolphinMainWindow* mainWindow, textBox->setSizePolicy(sizePolicy); QLabel* fontLabel = new QLabel(i18nc("@label:listbox", "Font:"), textBox); - m_fontRequester = new KFontRequester(textBox); + m_fontRequester = new DolphinFontRequester(textBox); + connect(m_fontRequester, SIGNAL(changed()), this, SIGNAL(changed())); QHBoxLayout* textLayout = new QHBoxLayout(textBox); textLayout->addWidget(fontLabel); textLayout->addWidget(m_fontRequester); + // create "Expandable Folders" checkbox + m_expandableFolders = new QCheckBox(i18nc("@option:check", "Expandable Folders"), this); + connect(m_expandableFolders, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + // Add a dummy widget with no restriction regarding // a vertical resizing. This assures that the dialog layout // is not stretched vertically. @@ -105,10 +112,13 @@ void DetailsViewSettingsPage::applySettings() settings->setIconSize(iconSize); const QFont font = m_fontRequester->font(); + settings->setUseSystemFont(m_fontRequester->mode() == DolphinFontRequester::SystemFont); settings->setFontFamily(font.family()); settings->setFontSize(font.pointSize()); settings->setItalicFont(font.italic()); - settings->setBoldFont(font.bold()); + settings->setFontWeight(font.weight()); + + settings->setExpandableFolders(m_expandableFolders->isChecked()); } void DetailsViewSettingsPage::restoreDefaults() @@ -136,11 +146,18 @@ void DetailsViewSettingsPage::loadSettings() m_smallIconSize->setChecked(true); } - QFont font(settings->fontFamily(), - settings->fontSize()); - font.setItalic(settings->italicFont()); - font.setBold(settings->boldFont()); - m_fontRequester->setFont(font); + if (settings->useSystemFont()) { + m_fontRequester->setMode(DolphinFontRequester::SystemFont); + } else { + QFont font(settings->fontFamily(), + settings->fontSize()); + font.setItalic(settings->italicFont()); + font.setWeight(settings->fontWeight()); + m_fontRequester->setMode(DolphinFontRequester::CustomFont); + m_fontRequester->setCustomFont(font); + } + + m_expandableFolders->setChecked(settings->expandableFolders()); } #include "detailsviewsettingspage.moc"