1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
//=========================================================
// MusE
// Linux Music Editor
// $Id: lcombo.cpp,v 1.1.1.1.2.3 2009/07/01 22:14:56 spamatica Exp $
// (C) Copyright 2000 Werner Schweer (ws@seh.de)
//
// 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; 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 "lcombo.h"
#include <QHBoxLayout>
#include <QLabel>
namespace MusEGui {
//---------------------------------------------------------
// LabelCombo
//---------------------------------------------------------
LabelCombo::LabelCombo(const QString& txt, QWidget* parent,
const char* name) : QWidget(parent)
{
setObjectName(name);
QHBoxLayout* layout = new QHBoxLayout(this);
QLabel* label = new QLabel(txt, this);
//label->setContentsMargins(0,0,0,0); // REMOVE Tim. Or keep.
box = new QComboBox(this);
//box->setContentsMargins(0,0,0,0); //
// Ignored was only solution, others were too tall. The label takes priority then. //
//box->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Ignored); //
box->setEditable(false);
layout->addSpacing(5);
layout->addWidget(label);
layout->addSpacing(5);
layout->addWidget(box);
layout->addSpacing(5);
connect(box, SIGNAL(activated(int)), SIGNAL(activated(int)));
}
void LabelCombo::setCurrentIndex(int i)
{
int rc = box->model()->rowCount();
if(rc == 0)
return;
int r = i % rc;
int c = i / rc;
if(c >= box->model()->columnCount())
return;
if(box->modelColumn() != c)
box->setModelColumn(c);
if(box->currentIndex() != r)
box->setCurrentIndex(r);
}
} // namespace MusEGui
|