┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphinfontrequester.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2008-02-15 22:51:23 +0000
committerPeter Penz <[email protected]>2008-02-15 22:51:23 +0000
commitd38de66f4b97a6d9cd30f3fc69e66b343ca312dc (patch)
treecc59063d8371ea9ab6cdb084bb7c6b5e54454480 /src/dolphinfontrequester.cpp
parent8f975fec469798b75a6aa11f3d97ac51ee23ae8c (diff)
Currently when the general font of KDE has been changed, the used fonts for the view in Dolphin have not been changed.
This has been fixed by differing between a "Use system font" setting (= default) or a "Use custom font" setting. TODO: if the general font of KDE is changed during Dolphin is open, no update is done yet CCMAIL: [email protected] svn path=/trunk/KDE/kdebase/apps/; revision=775487
Diffstat (limited to 'src/dolphinfontrequester.cpp')
-rw-r--r--src/dolphinfontrequester.cpp107
1 files changed, 107 insertions, 0 deletions
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"