Mercurial > hg > svgui
comparison widgets/ColourNameDialog.cpp @ 285:9dd432665059
* Add a colour database, and Add New Colour function to the colour combo
in property box. The colour property is only correctly handled in the
waveform layer so far.
* Add en_GB translation, to translate those annoying Color texts in the
Qt colour picker dialog.
author | Chris Cannam |
---|---|
date | Wed, 11 Jul 2007 17:21:37 +0000 |
parents | |
children | a34a2a25907c |
comparison
equal
deleted
inserted
replaced
284:1284955856ab | 285:9dd432665059 |
---|---|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ | |
2 | |
3 /* | |
4 Sonic Visualiser | |
5 An audio file viewer and annotation editor. | |
6 Centre for Digital Music, Queen Mary, University of London. | |
7 This file copyright 2007 QMUL. | |
8 | |
9 This program is free software; you can redistribute it and/or | |
10 modify it under the terms of the GNU General Public License as | |
11 published by the Free Software Foundation; either version 2 of the | |
12 License, or (at your option) any later version. See the file | |
13 COPYING included with this distribution for more information. | |
14 */ | |
15 | |
16 #include "ColourNameDialog.h" | |
17 | |
18 #include <QGridLayout> | |
19 #include <QLabel> | |
20 #include <QDialogButtonBox> | |
21 #include <QLineEdit> | |
22 #include <QIcon> | |
23 #include <QCheckBox> | |
24 #include <QPainter> | |
25 #include <QPushButton> | |
26 | |
27 ColourNameDialog::ColourNameDialog(QString title, QString message, | |
28 QColor colour, QString defaultName, | |
29 QWidget *parent) : | |
30 QDialog(parent), | |
31 m_colour(colour) | |
32 { | |
33 setWindowTitle(title); | |
34 | |
35 QGridLayout *layout = new QGridLayout(this); | |
36 | |
37 QLabel *label = new QLabel(message, this); | |
38 layout->addWidget(label, 0, 0, 1, 2); | |
39 | |
40 m_colourLabel = new QLabel(this); | |
41 layout->addWidget(m_colourLabel, 1, 1); | |
42 | |
43 m_textField = new QLineEdit(defaultName, this); | |
44 layout->addWidget(m_textField, 1, 0); | |
45 | |
46 connect(m_textField, SIGNAL(textChanged(const QString &)), | |
47 this, SLOT(textChanged(const QString &))); | |
48 | |
49 m_darkBackground = new QCheckBox(this); | |
50 layout->addWidget(m_darkBackground, 2, 0); | |
51 m_darkBackground->setChecked | |
52 (colour.red() + colour.green() + colour.blue() > 384); | |
53 fillColourLabel(); | |
54 | |
55 connect(m_darkBackground, SIGNAL(stateChanged(int)), | |
56 this, SLOT(darkBackgroundChanged(int))); | |
57 | |
58 QDialogButtonBox *bb = new QDialogButtonBox(QDialogButtonBox::Ok | | |
59 QDialogButtonBox::Cancel); | |
60 layout->addWidget(bb, 3, 0, 1, 2); | |
61 connect(bb, SIGNAL(accepted()), this, SLOT(accept())); | |
62 connect(bb, SIGNAL(rejected()), this, SLOT(reject())); | |
63 m_okButton = bb->button(QDialogButtonBox::Ok); | |
64 m_okButton->setEnabled(defaultName != ""); | |
65 } | |
66 | |
67 void | |
68 ColourNameDialog::showDarkBackgroundCheckbox(QString text) | |
69 { | |
70 m_darkBackground->setText(text); | |
71 m_darkBackground->show(); | |
72 } | |
73 | |
74 bool | |
75 ColourNameDialog::isDarkBackgroundChecked() const | |
76 { | |
77 return m_darkBackground->isChecked(); | |
78 } | |
79 | |
80 void | |
81 ColourNameDialog::darkBackgroundChanged(int) | |
82 { | |
83 fillColourLabel(); | |
84 } | |
85 | |
86 void | |
87 ColourNameDialog::textChanged(const QString &text) | |
88 { | |
89 m_okButton->setEnabled(text != ""); | |
90 } | |
91 | |
92 void | |
93 ColourNameDialog::fillColourLabel() | |
94 { | |
95 QPixmap pmap(20, 20); | |
96 pmap.fill(m_darkBackground->isChecked() ? Qt::black : Qt::white); | |
97 QPainter paint(&pmap); | |
98 paint.setPen(m_colour); | |
99 paint.setBrush(m_colour); | |
100 paint.drawRect(2, 2, 15, 15); | |
101 m_colourLabel->setPixmap(pmap); | |
102 } | |
103 | |
104 QString | |
105 ColourNameDialog::getColourName() const | |
106 { | |
107 return m_textField->text(); | |
108 } |