Warning, file /network/krdc/factorwidget.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2021 RafaĆ Lalik <rafallalik@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "factorwidget.h" 0008 0009 #include "mainwindow.h" 0010 0011 #include <QSlider> 0012 #include <QToolBar> 0013 0014 #include <cstdio> 0015 0016 FactorWidget::FactorWidget(QWidget *parent) : QWidgetAction(parent) 0017 { 0018 } 0019 0020 FactorWidget::FactorWidget(const QString& text, MainWindow * receiver, QObject* parent) 0021 : QWidgetAction(parent) 0022 , m_receiver(receiver) 0023 { 0024 setText(text); 0025 } 0026 0027 FactorWidget::~FactorWidget() 0028 { 0029 } 0030 0031 /** 0032 * Each time action is add, the new QSlider widget is created and retun. As 0033 * the toolbar takes ownership of the widget, here we must take care of 0034 * conecting signals and slots to the MainWindow methods. 0035 * 0036 * The widget has by default 100 steps, and width of 100. 0037 */ 0038 QWidget * FactorWidget::createWidget(QWidget * parent) 0039 { 0040 QToolBar *_parent = qobject_cast<QToolBar *>(parent); 0041 if (!_parent) { 0042 return QWidgetAction::createWidget(parent); 0043 } 0044 0045 QSlider * s = new QSlider(Qt::Horizontal, _parent); 0046 s->setRange(100, 200); 0047 s->setMaximumWidth(100); 0048 0049 connect(s, &QSlider::valueChanged, m_receiver, &MainWindow::setFactor); 0050 connect(m_receiver, &MainWindow::factorUpdated, s, &QSlider::setValue); 0051 connect(m_receiver, &MainWindow::scaleUpdated, s, &QSlider::setEnabled); 0052 0053 return s; 0054 } 0055 0056 void FactorWidget::deleteWidget(QWidget* widget) 0057 { 0058 disconnect(widget); 0059 QWidgetAction::deleteWidget(widget); 0060 }