┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/CMakeLists.txt1
-rw-r--r--src/columnviewsettingspage.cpp20
-rw-r--r--src/columnviewsettingspage.h4
-rw-r--r--src/detailsviewsettingspage.cpp34
-rw-r--r--src/detailsviewsettingspage.h4
-rw-r--r--src/dolphin_columnmodesettings.kcfg4
-rw-r--r--src/dolphin_detailsmodesettings.kcfg4
-rw-r--r--src/dolphin_iconsmodesettings.kcfg4
-rw-r--r--src/dolphinfontrequester.cpp107
-rw-r--r--src/dolphinfontrequester.h75
-rw-r--r--src/iconsviewsettingspage.cpp20
-rw-r--r--src/iconsviewsettingspage.h4
12 files changed, 247 insertions, 34 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index f5a6c3ed9..4cbadd238 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -85,6 +85,7 @@ set(dolphin_SRCS
columnviewsettingspage.cpp
detailsviewsettingspage.cpp
dolphinapplication.cpp
+ dolphinfontrequester.cpp
dolphinmainwindow.cpp
dolphinnewmenu.cpp
dolphinviewcontainer.cpp
diff --git a/src/columnviewsettingspage.cpp b/src/columnviewsettingspage.cpp
index 57d246fa2..f5e2319bf 100644
--- a/src/columnviewsettingspage.cpp
+++ b/src/columnviewsettingspage.cpp
@@ -19,11 +19,11 @@
#include "columnviewsettingspage.h"
+#include "dolphinfontrequester.h"
#include "dolphinsettings.h"
#include "dolphin_columnmodesettings.h"
#include <kdialog.h>
-#include <kfontrequester.h>
#include <klocale.h>
#include <QButtonGroup>
@@ -92,7 +92,7 @@ ColumnViewSettingsPage::ColumnViewSettingsPage(DolphinMainWindow* mainWindow,
textBox->setSizePolicy(sizePolicy);
QLabel* fontLabel = new QLabel(i18nc("@label:listbox", "Font:"), textBox);
- m_fontRequester = new KFontRequester(textBox);
+ m_fontRequester = new DolphinFontRequester(textBox);
QHBoxLayout* textLayout = new QHBoxLayout(textBox);
textLayout->addWidget(fontLabel);
@@ -123,6 +123,7 @@ void ColumnViewSettingsPage::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());
@@ -157,11 +158,16 @@ void ColumnViewSettingsPage::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.setBold(settings->boldFont());
+ m_fontRequester->setMode(DolphinFontRequester::CustomFont);
+ m_fontRequester->setCustomFont(font);
+ }
m_columnWidthSlider->setValue((settings->columnWidth() - 150) / 50);
}
diff --git a/src/columnviewsettingspage.h b/src/columnviewsettingspage.h
index e5780d989..acf92e744 100644
--- a/src/columnviewsettingspage.h
+++ b/src/columnviewsettingspage.h
@@ -23,7 +23,7 @@
#include <kvbox.h>
class DolphinMainWindow;
-class KFontRequester;
+class DolphinFontRequester;
class QSlider;
class QRadioButton;
@@ -57,7 +57,7 @@ private:
QRadioButton* m_smallIconSize;
QRadioButton* m_mediumIconSize;
QRadioButton* m_largeIconSize;
- KFontRequester* m_fontRequester;
+ DolphinFontRequester* m_fontRequester;
QSlider* m_columnWidthSlider;
};
diff --git a/src/detailsviewsettingspage.cpp b/src/detailsviewsettingspage.cpp
index ea45c9688..50f2bac8a 100644
--- a/src/detailsviewsettingspage.cpp
+++ b/src/detailsviewsettingspage.cpp
@@ -23,16 +23,16 @@
#include "dolphin_detailsmodesettings.h"
#include <kdialog.h>
-#include <kfontrequester.h>
+#include <dolphinfontrequester.h>
#include <klocale.h>
-#include <QtGui/QButtonGroup>
-#include <QtGui/QCheckBox>
-#include <QtGui/QComboBox>
-#include <QtGui/QGroupBox>
-#include <QtGui/QGridLayout>
-#include <QtGui/QLabel>
-#include <QtGui/QRadioButton>
+#include <QButtonGroup>
+#include <QCheckBox>
+#include <QComboBox>
+#include <QGroupBox>
+#include <QGridLayout>
+#include <QLabel>
+#include <QRadioButton>
#include <QtGui/QSpinBox>
DetailsViewSettingsPage::DetailsViewSettingsPage(DolphinMainWindow* mainWindow,
@@ -74,7 +74,7 @@ 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);
QHBoxLayout* textLayout = new QHBoxLayout(textBox);
textLayout->addWidget(fontLabel);
@@ -105,6 +105,7 @@ 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());
@@ -136,11 +137,16 @@ 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.setBold(settings->boldFont());
+ m_fontRequester->setMode(DolphinFontRequester::CustomFont);
+ m_fontRequester->setCustomFont(font);
+ }
}
#include "detailsviewsettingspage.moc"
diff --git a/src/detailsviewsettingspage.h b/src/detailsviewsettingspage.h
index 79986f1ba..d06b814cf 100644
--- a/src/detailsviewsettingspage.h
+++ b/src/detailsviewsettingspage.h
@@ -23,7 +23,7 @@
#include <kvbox.h>
class DolphinMainWindow;
-class KFontRequester;
+class DolphinFontRequester;
class QCheckBox;
class QRadioButton;
@@ -57,7 +57,7 @@ private:
QRadioButton* m_smallIconSize;
QRadioButton* m_mediumIconSize;
QRadioButton* m_largeIconSize;
- KFontRequester* m_fontRequester;
+ DolphinFontRequester* m_fontRequester;
};
#endif
diff --git a/src/dolphin_columnmodesettings.kcfg b/src/dolphin_columnmodesettings.kcfg
index c57db4073..54887d9e9 100644
--- a/src/dolphin_columnmodesettings.kcfg
+++ b/src/dolphin_columnmodesettings.kcfg
@@ -9,6 +9,10 @@
<label context="@label">Font family</label>
<default code="true">KGlobalSettings::generalFont().family()</default>
</entry>
+ <entry name="UseSystemFont" type="Bool">
+ <label context="@label">Use system font</label>
+ <default>true</default>
+ </entry>
<entry name="FontSize" type="Int">
<label context="@label">Font size</label>
<default code="true">KGlobalSettings::generalFont().pointSize()</default>
diff --git a/src/dolphin_detailsmodesettings.kcfg b/src/dolphin_detailsmodesettings.kcfg
index 869409e37..ce16a551c 100644
--- a/src/dolphin_detailsmodesettings.kcfg
+++ b/src/dolphin_detailsmodesettings.kcfg
@@ -9,6 +9,10 @@
<label context="@label">Font family</label>
<default code="true">KGlobalSettings::generalFont().family()</default>
</entry>
+ <entry name="UseSystemFont" type="Bool">
+ <label context="@label">Use system font</label>
+ <default>true</default>
+ </entry>
<entry name="FontSize" type="Int">
<label context="@label">Font size</label>
<default code="true">KGlobalSettings::generalFont().pointSize()</default>
diff --git a/src/dolphin_iconsmodesettings.kcfg b/src/dolphin_iconsmodesettings.kcfg
index 22871dcf9..ef1ec456f 100644
--- a/src/dolphin_iconsmodesettings.kcfg
+++ b/src/dolphin_iconsmodesettings.kcfg
@@ -10,6 +10,10 @@
<label context="@label">Arrangement</label>
<default code="true">QListView::TopToBottom</default>
</entry>
+ <entry name="UseSystemFont" type="Bool">
+ <label context="@label">Use system font</label>
+ <default>true</default>
+ </entry>
<entry name="FontFamily" type="String">
<label context="@label">Font family</label>
<default code="true">KGlobalSettings::generalFont().family()</default>
diff --git a/src/dolphinfontrequester.cpp b/src/dolphinfontrequester.cpp
new file mode 100644
index 000000000..5295ed939
--- /dev/null
+++ b/src/dolphinfontrequester.cpp
@@ -0,0 +1,107 @@
+/***************************************************************************
+ * Copyright (C) 2008 by Peter Penz <[email protected]> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
+ ***************************************************************************/
+
+#include "dolphinfontrequester.h"
+
+#include <kfontdialog.h>
+#include <kglobalsettings.h>
+#include <klocale.h>
+
+#include <QComboBox>
+#include <QEvent>
+#include <QPushButton>
+
+DolphinFontRequester::DolphinFontRequester(QWidget* parent) :
+ KHBox(parent),
+ m_modeCombo(0),
+ m_chooseFontButton(0),
+ m_mode(SystemFont),
+ m_customFont()
+{
+ m_modeCombo = new QComboBox(this);
+ m_modeCombo->addItem(i18nc("@item:inlistbox Font", "System Font"));
+ m_modeCombo->addItem(i18nc("@item:inlistbox Font", "Custom Font"));
+ connect(m_modeCombo, SIGNAL(activated(int)),
+ this, SLOT(changeMode(int)));
+
+ m_chooseFontButton = new QPushButton(i18n("Choose..."), this);
+ connect(m_chooseFontButton, SIGNAL(clicked()),
+ this, SLOT(openFontDialog()));
+
+ changeMode(m_modeCombo->currentIndex());
+}
+
+DolphinFontRequester::~DolphinFontRequester()
+{
+}
+
+void DolphinFontRequester::setMode(Mode mode)
+{
+ m_mode = mode;
+ m_modeCombo->setCurrentIndex(m_mode);
+ m_modeCombo->setFont(font());
+ m_chooseFontButton->setEnabled(m_mode == CustomFont);
+}
+
+DolphinFontRequester::Mode DolphinFontRequester::mode() const
+{
+ return m_mode;
+}
+
+QFont DolphinFontRequester::font() const
+{
+ return (m_mode == CustomFont) ? m_customFont : KGlobalSettings::generalFont();
+}
+
+void DolphinFontRequester::setCustomFont(const QFont& font)
+{
+ m_customFont = font;
+}
+
+QFont DolphinFontRequester::customFont() const
+{
+ return m_customFont;
+}
+
+bool DolphinFontRequester::event(QEvent* event)
+{
+ if (event->type() == QEvent::Polish) {
+ m_modeCombo->setFont(font());
+ }
+ return KHBox::event(event);
+}
+
+void DolphinFontRequester::openFontDialog()
+{
+ QFont font;
+ const int result = KFontDialog::getFont(font,
+ KFontChooser::NoDisplayFlags,
+ this);
+ if (result == KFontDialog::Accepted) {
+ m_customFont = font;
+ m_modeCombo->setFont(m_customFont);
+ }
+}
+
+void DolphinFontRequester::changeMode(int index)
+{
+ setMode((index == CustomFont) ? CustomFont : SystemFont);
+}
+
+#include "dolphinfontrequester.moc"
diff --git a/src/dolphinfontrequester.h b/src/dolphinfontrequester.h
new file mode 100644
index 000000000..83a478a30
--- /dev/null
+++ b/src/dolphinfontrequester.h
@@ -0,0 +1,75 @@
+/***************************************************************************
+ * Copyright (C) 2008 by Peter Penz <[email protected]> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
+ ***************************************************************************/
+
+#ifndef DOLPHINFONTREQUESTER_H
+#define DOLPHINFONTREQUESTER_H
+
+#include <khbox.h>
+
+#include <QFont>
+
+class QComboBox;
+class QPushButton;
+
+/**
+ * @brief Allows to select between using the system font or a custom font.
+ */
+class DolphinFontRequester : public KHBox
+{
+ Q_OBJECT
+
+public:
+ enum Mode
+ {
+ SystemFont = 0,
+ CustomFont = 1
+ };
+
+ DolphinFontRequester(QWidget* parent);
+ virtual ~DolphinFontRequester();
+
+ void setMode(Mode mode);
+ Mode mode() const;
+
+ /**
+ * Returns the custom font (see DolphinFontRequester::customFont()),
+ * if the mode is \a CustomFont, otherwise the system font is
+ * returned.
+ */
+ QFont font() const;
+
+ void setCustomFont(const QFont& font);
+ QFont customFont() const;
+
+protected:
+ bool event(QEvent* event);
+
+private slots:
+ void openFontDialog();
+ void changeMode(int index);
+
+private:
+ QComboBox* m_modeCombo;
+ QPushButton* m_chooseFontButton;
+
+ Mode m_mode;
+ QFont m_customFont;
+};
+
+#endif
diff --git a/src/iconsviewsettingspage.cpp b/src/iconsviewsettingspage.cpp
index 6bcc78ae8..970b7202d 100644
--- a/src/iconsviewsettingspage.cpp
+++ b/src/iconsviewsettingspage.cpp
@@ -19,13 +19,13 @@
#include "iconsviewsettingspage.h"
+#include "dolphinfontrequester.h"
#include "dolphinsettings.h"
#include "iconsizedialog.h"
#include "dolphin_iconsmodesettings.h"
#include <kdialog.h>
-#include <kfontrequester.h>
#include <kiconloader.h>
#include <kglobalsettings.h>
#include <klocale.h>
@@ -70,7 +70,7 @@ IconsViewSettingsPage::IconsViewSettingsPage(DolphinMainWindow* mainWindow,
textGroup->setSizePolicy(sizePolicy);
QLabel* fontLabel = new QLabel(i18nc("@label:listbox", "Font:"), textGroup);
- m_fontRequester = new KFontRequester(textGroup);
+ m_fontRequester = new DolphinFontRequester(textGroup);
QLabel* textlinesCountLabel = new QLabel(i18nc("@label:textbox", "Number of lines:"), textGroup);
m_textlinesCountBox = new QSpinBox(textGroup);
@@ -155,6 +155,7 @@ void IconsViewSettingsPage::applySettings()
settings->setItemWidth(itemWidth);
settings->setItemHeight(itemHeight);
+ settings->setUseSystemFont(m_fontRequester->mode() == DolphinFontRequester::SystemFont);
settings->setFontFamily(font.family());
settings->setFontSize(font.pointSize());
settings->setItalicFont(font.italic());
@@ -189,11 +190,16 @@ void IconsViewSettingsPage::loadSettings()
m_iconSize = settings->iconSize();
m_previewSize = settings->previewSize();
- 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.setBold(settings->boldFont());
+ m_fontRequester->setMode(DolphinFontRequester::CustomFont);
+ m_fontRequester->setCustomFont(font);
+ }
m_textlinesCountBox->setValue(settings->numberOfTextlines());
diff --git a/src/iconsviewsettingspage.h b/src/iconsviewsettingspage.h
index f45a14fd6..1aa1c74bb 100644
--- a/src/iconsviewsettingspage.h
+++ b/src/iconsviewsettingspage.h
@@ -24,7 +24,7 @@
#include <kvbox.h>
class DolphinMainWindow;
-class KFontRequester;
+class DolphinFontRequester;
class QCheckBox;
class QComboBox;
class QPushButton;
@@ -86,7 +86,7 @@ private:
QPushButton* m_iconSizeButton;
QComboBox* m_textWidthBox;
- KFontRequester* m_fontRequester;
+ DolphinFontRequester* m_fontRequester;
QSpinBox* m_textlinesCountBox;
QComboBox* m_arrangementBox;