KProperty

KPropertyGenericSelectionEditor.cpp
1 /* This file is part of the KDE project
2  Copyright (C) 2016 Jarosław Staniek <[email protected]>
3 
4  This library is free software; you can redistribute it and/or
5  modify it under the terms of the GNU Library General Public
6  License as published by the Free Software Foundation; either
7  version 2 of the License, or (at your option) any later version.
8 
9  This library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  Library General Public License for more details.
13 
14  You should have received a copy of the GNU Library General Public License
15  along with this library; see the file COPYING.LIB. If not, write to
16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  * Boston, MA 02110-1301, USA.
18 */
19 
20 #include "KPropertyGenericSelectionEditor.h"
21 
22 #include <QHBoxLayout>
23 #include <QPushButton>
24 
25 class Q_DECL_HIDDEN KPropertyGenericSelectionEditor::Private
26 {
27 public:
28  Private() {
29  }
30  QHBoxLayout *lyr;
31  QPushButton *btn;
32 };
33 
34 KPropertyGenericSelectionEditor::KPropertyGenericSelectionEditor(QWidget *parent)
35  : QWidget(parent), d(new Private)
36 {
37  setAutoFillBackground(true);
38  d->lyr = new QHBoxLayout(this);
39  d->lyr->setContentsMargins(0, 0, 0, 0);
40  d->lyr->setSpacing(2);
41  d->btn = new QPushButton(tr("...", "... button"));
42  d->btn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
43  d->btn->setFixedWidth(d->btn->fontMetrics().width(d->btn->text() + QLatin1String(" ")));
44  d->btn->setFocusPolicy(Qt::NoFocus);
46  d->lyr->addWidget(d->btn);
47 }
48 
49 KPropertyGenericSelectionEditor::~KPropertyGenericSelectionEditor()
50 {
51 }
52 
53 void KPropertyGenericSelectionEditor::setMainWidget(QWidget *widget)
54 {
55  if (d->lyr->count() > 1) {
56  delete d->lyr->takeAt(0)->widget();
57  }
58  if (widget) {
59  d->lyr->insertWidget(0, widget);
61  setFocusProxy(widget);
62  }
63 }
64 
66 {
67  d->btn->setVisible(set);
68 }
69 
71 {
72 }
virtual void selectButtonClicked()
Reimplement to react on clicking the "..." select button.
void clicked(bool checked)
void setSizePolicy(QSizePolicy)
void setSelectionButtonVisible(bool set)
Sets the visibility of the "..." select button.
A base class for use by editors that have widget on the left and "..." select button on the right...
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Sun Aug 9 2020 23:10:57 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.