]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/settings/viewmodes/dolphinfontrequester.cpp
DolphinStatusbar: Fix background and margins for non-Breeze styles
[dolphin.git] / src / settings / viewmodes / dolphinfontrequester.cpp
index 4e23b2d471f2d6ecc5d246e1f47fd61c5dd5b7d0..609c368c0681f290235b3a23aef93a1d7b43d735 100644 (file)
@@ -1,52 +1,41 @@
-/***************************************************************************
- *   Copyright (C) 2008 by Peter Penz <peter.penz@gmx.at>                  *
- *                                                                         *
- *   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            *
- ***************************************************************************/
+/*
+ * SPDX-FileCopyrightText: 2008 Peter Penz <peter.penz19@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
 
 #include "dolphinfontrequester.h"
 
-#include <kfontdialog.h>
-#include <KGlobalSettings>
-#include <KLocale>
-#include <KComboBox>
+#include <KLocalizedString>
 
-#include <QEvent>
+#include <QComboBox>
+#include <QFontDatabase>
+#include <QFontDialog>
+#include <QHBoxLayout>
 #include <QPushButton>
 
-DolphinFontRequester::DolphinFontRequester(QWidget* parent) :
-    KHBox(parent),
-    m_modeCombo(0),
-    m_chooseFontButton(0),
-    m_mode(SystemFont),
-    m_customFont()
+DolphinFontRequester::DolphinFontRequester(QWidget *parent)
+    : QWidget(parent)
+    , m_modeCombo(nullptr)
+    , m_chooseFontButton(nullptr)
+    , m_mode(SystemFont)
+    m_customFont()
 {
-    setSpacing(KDialog::spacingHint());
+    QHBoxLayout *topLayout = new QHBoxLayout(this);
+    topLayout->setContentsMargins(0, 0, 0, 0);
 
-    m_modeCombo = new KComboBox(this);
+    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)));
+    connect(m_modeCombo, &QComboBox::activated, this, &DolphinFontRequester::changeMode);
 
-    m_chooseFontButton = new QPushButton(i18nc("@action:button Choose font", "Choose..."), this);
-    connect(m_chooseFontButton, SIGNAL(clicked()),
-            this, SLOT(openFontDialog()));
+    m_chooseFontButton = new QPushButton(i18nc("@action:button Choose font", "Choose…"), this);
+    connect(m_chooseFontButton, &QPushButton::clicked, this, &DolphinFontRequester::openFontDialog);
 
     changeMode(m_modeCombo->currentIndex());
+
+    topLayout->addWidget(m_modeCombo);
+    topLayout->addWidget(m_chooseFontButton);
 }
 
 DolphinFontRequester::~DolphinFontRequester()
@@ -57,7 +46,6 @@ void DolphinFontRequester::setMode(Mode mode)
 {
     m_mode = mode;
     m_modeCombo->setCurrentIndex(m_mode);
-    m_modeCombo->setFont(font());
     m_chooseFontButton->setEnabled(m_mode == CustomFont);
 }
 
@@ -66,12 +54,12 @@ DolphinFontRequester::Mode DolphinFontRequester::mode() const
     return m_mode;
 }
 
-QFont DolphinFontRequester::font() const
+QFont DolphinFontRequester::currentFont() const
 {
-    return (m_mode == CustomFont) ? m_customFont : KGlobalSettings::generalFont();
+    return (m_mode == CustomFont) ? m_customFont : QFontDatabase::systemFont(QFontDatabase::GeneralFont);
 }
 
-void DolphinFontRequester::setCustomFont(const QFontfont)
+void DolphinFontRequester::setCustomFont(const QFont &font)
 {
     m_customFont = font;
 }
@@ -81,31 +69,21 @@ 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 = m_customFont;
-    const int result = KFontDialog::getFont(font,
-                                            KFontChooser::NoDisplayFlags,
-                                            this);
-    if (result == KFontDialog::Accepted) {
+    bool ok = false;
+    const QFont font = QFontDialog::getFont(&ok, this);
+    if (ok) {
         m_customFont = font;
         m_modeCombo->setFont(m_customFont);
-        emit changed();
+        Q_EMIT changed();
     }
 }
 
 void DolphinFontRequester::changeMode(int index)
 {
     setMode((index == CustomFont) ? CustomFont : SystemFont);
-    emit changed();
+    Q_EMIT changed();
 }
 
-#include "dolphinfontrequester.moc"
+#include "moc_dolphinfontrequester.cpp"