Mercurial > hg > svgui
comparison widgets/TransformFinder.cpp @ 423:5a55d0683ee5
* More twiddling with TransformFinder
author | Chris Cannam |
---|---|
date | Mon, 29 Sep 2008 11:11:42 +0000 |
parents | ea9e41027b93 |
children | 374b72f5b4bb |
comparison
equal
deleted
inserted
replaced
422:ea9e41027b93 | 423:5a55d0683ee5 |
---|---|
23 #include <QLabel> | 23 #include <QLabel> |
24 //#include <SelectableLabel> | 24 //#include <SelectableLabel> |
25 #include <QDialogButtonBox> | 25 #include <QDialogButtonBox> |
26 #include <QScrollArea> | 26 #include <QScrollArea> |
27 #include <QApplication> | 27 #include <QApplication> |
28 | 28 #include <QDesktopWidget> |
29 SelectableLabel::SelectableLabel(QWidget *parent) : | 29 |
30 QLabel(parent), | 30 SelectableLabel::SelectableLabel(QWidget *p) : |
31 QLabel(p), | |
31 m_selected(false) | 32 m_selected(false) |
32 { | 33 { |
33 setStyleSheet("QLabel:hover { background: #e0e0e0; text: black; } QLabel:!hover { background: white; text: black } QLabel { padding: 4px }"); | |
34 | |
35 setTextFormat(Qt::RichText); | 34 setTextFormat(Qt::RichText); |
36 setLineWidth(2); | 35 // setLineWidth(2); |
37 setFixedWidth(420); | 36 // setFixedWidth(480); |
37 setupStyle(); | |
38 } | 38 } |
39 | 39 |
40 void | 40 void |
41 SelectableLabel::setUnselectedText(QString text) | 41 SelectableLabel::setUnselectedText(QString text) |
42 { | 42 { |
56 resize(sizeHint()); | 56 resize(sizeHint()); |
57 } | 57 } |
58 } | 58 } |
59 | 59 |
60 void | 60 void |
61 SelectableLabel::setupStyle() | |
62 { | |
63 if (m_selected) { | |
64 setWordWrap(true); | |
65 setStyleSheet("QLabel:hover { background: #e0e0e0; color: black; } QLabel:!hover { background: #f0f0f0; color: black } QLabel { padding: 7px }"); | |
66 | |
67 // setFrameStyle(QFrame::Box | QFrame::Plain); | |
68 } else { | |
69 setWordWrap(false); | |
70 setStyleSheet("QLabel:hover { background: #e0e0e0; color: black; } QLabel:!hover { background: white; color: black } QLabel { padding: 7px }"); | |
71 | |
72 // setFrameStyle(QFrame::NoFrame); | |
73 } | |
74 } | |
75 | |
76 void | |
61 SelectableLabel::setSelected(bool s) | 77 SelectableLabel::setSelected(bool s) |
62 { | 78 { |
63 if (m_selected == s) return; | 79 if (m_selected == s) return; |
64 m_selected = s; | 80 m_selected = s; |
65 if (m_selected) { | 81 if (m_selected) { |
66 setText(m_selectedText); | 82 setText(m_selectedText); |
67 setWordWrap(true); | |
68 // setFrameStyle(QFrame::Box | QFrame::Plain); | |
69 } else { | 83 } else { |
70 setText(m_unselectedText); | 84 setText(m_unselectedText); |
71 setWordWrap(false); | 85 } |
72 // setFrameStyle(QFrame::NoFrame); | 86 setupStyle(); |
73 } | |
74 // resize(sizeHint()); | |
75 parentWidget()->resize(parentWidget()->sizeHint()); | 87 parentWidget()->resize(parentWidget()->sizeHint()); |
76 } | 88 } |
77 | 89 |
78 void | 90 void |
79 SelectableLabel::toggle() | 91 SelectableLabel::toggle() |
82 } | 94 } |
83 | 95 |
84 void | 96 void |
85 SelectableLabel::mousePressEvent(QMouseEvent *e) | 97 SelectableLabel::mousePressEvent(QMouseEvent *e) |
86 { | 98 { |
87 toggle(); | 99 setSelected(true); |
88 emit selectionChanged(); | 100 emit selectionChanged(); |
89 } | 101 } |
90 | 102 |
91 void | 103 void |
92 SelectableLabel::mouseDoubleClickEvent(QMouseEvent *e) | 104 SelectableLabel::mouseDoubleClickEvent(QMouseEvent *e) |
149 palette.setColor(QPalette::Window, palette.color(QPalette::Base)); | 161 palette.setColor(QPalette::Window, palette.color(QPalette::Base)); |
150 m_resultsFrame->setPalette(palette); | 162 m_resultsFrame->setPalette(palette); |
151 m_resultsScroll->setPalette(palette); | 163 m_resultsScroll->setPalette(palette); |
152 // resultsFrame->setFrameStyle(QFrame::Sunken | QFrame::Box); | 164 // resultsFrame->setFrameStyle(QFrame::Sunken | QFrame::Box); |
153 m_resultsLayout = new QVBoxLayout; | 165 m_resultsLayout = new QVBoxLayout; |
166 m_resultsLayout->setSpacing(0); | |
167 m_resultsLayout->setContentsMargins(0, 0, 0, 0); | |
154 m_resultsFrame->setLayout(m_resultsLayout); | 168 m_resultsFrame->setLayout(m_resultsLayout); |
155 m_resultsScroll->setWidget(m_resultsFrame); | 169 m_resultsScroll->setWidget(m_resultsFrame); |
156 m_resultsFrame->show(); | 170 m_resultsFrame->show(); |
157 } | 171 } |
158 | 172 |
159 resize(500, 400); //!!! | 173 QDesktopWidget *desktop = QApplication::desktop(); |
160 m_resultsFrame->resize(480, 380); | 174 QRect available = desktop->availableGeometry(); |
175 | |
176 int width = available.width() / 2; | |
177 int height = available.height() / 2; | |
178 if (height < 450) { | |
179 if (available.height() > 500) height = 450; | |
180 } | |
181 if (width < 600) { | |
182 if (available.width() > 650) width = 600; | |
183 } | |
184 | |
185 resize(width, height); | |
186 raise(); | |
161 } | 187 } |
162 | 188 |
163 TransformFinder::~TransformFinder() | 189 TransformFinder::~TransformFinder() |
164 { | 190 { |
165 } | 191 } |
248 label->setPalette(palette); | 274 label->setPalette(palette); |
249 m_labels.push_back(label); | 275 m_labels.push_back(label); |
250 } | 276 } |
251 | 277 |
252 m_labels[i]->setObjectName(desc.identifier); | 278 m_labels[i]->setObjectName(desc.identifier); |
253 m_selectedTransform = desc.identifier; | 279 m_labels[i]->setFixedWidth(this->width() - 40); |
254 m_labels[i]->setUnselectedText(labelText); | 280 m_labels[i]->setUnselectedText(labelText); |
255 m_labels[i]->setSelectedText(selectedText); | 281 m_labels[i]->setSelectedText(selectedText); |
282 | |
283 /* | |
284 m_labels[i]->setSelected(false); | |
285 m_selectedTransform = ""; | |
286 */ | |
287 | |
256 m_labels[i]->setSelected(i == 0); | 288 m_labels[i]->setSelected(i == 0); |
289 if (i == 0) { | |
290 m_selectedTransform = desc.identifier; | |
291 } | |
257 | 292 |
258 /* | 293 /* |
259 QSize sh = m_labels[i]->sizeHint(); | 294 QSize sh = m_labels[i]->sizeHint(); |
260 std::cerr << "size hint for text \"" << labelText.toStdString() << "\" has height " << sh.height() << std::endl; | 295 std::cerr << "size hint for text \"" << labelText.toStdString() << "\" has height " << sh.height() << std::endl; |
261 height += sh.height(); | 296 height += sh.height(); |