diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2009-10-10 16:52:36 +0000 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2009-10-10 16:52:36 +0000 |
commit | ef9dfb89b823ad1470fb56f33f8628143012e797 (patch) | |
tree | 40bce29ec3f1c971064c0953216a813e6d944b64 | |
parent | 6be1d8b8a8d966d3c4669ce6ba0b535a9b3e6a1c (diff) | |
download | rockbox-ef9dfb89b823ad1470fb56f33f8628143012e797.tar.gz rockbox-ef9dfb89b823ad1470fb56f33f8628143012e797.zip |
Rework configuration dialog for TTS / Encoder values.
The generated dialogs for encoder and TTS configuration didn't scale well and were missing icons. Use a grid layout so buttons are aligned properly now, remove the fixed width for buttongs (which breaks immediately if a label text is getting too long, especially when using a translation).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23075 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | rbutil/rbutilqt/encttscfggui.cpp | 43 | ||||
-rw-r--r-- | rbutil/rbutilqt/encttscfggui.h | 2 |
2 files changed, 25 insertions, 20 deletions
diff --git a/rbutil/rbutilqt/encttscfggui.cpp b/rbutil/rbutilqt/encttscfggui.cpp index 57e5896148..2ff1e93003 100644 --- a/rbutil/rbutilqt/encttscfggui.cpp +++ b/rbutil/rbutilqt/encttscfggui.cpp | |||
@@ -46,18 +46,32 @@ void EncTtsCfgGui::setUpWindow() | |||
46 | { | 46 | { |
47 | m_settingsList = m_settingInterface->getSettings(); | 47 | m_settingsList = m_settingInterface->getSettings(); |
48 | 48 | ||
49 | //layout | 49 | // layout |
50 | QVBoxLayout *mainLayout = new QVBoxLayout; | 50 | QVBoxLayout *mainLayout = new QVBoxLayout; |
51 | 51 | ||
52 | // groupbox | 52 | // groupbox |
53 | QGroupBox *groupBox = new QGroupBox(this); | 53 | QGroupBox *groupBox = new QGroupBox(this); |
54 | QFormLayout *formlayout = new QFormLayout; | 54 | QGridLayout *gridLayout = new QGridLayout(groupBox); |
55 | // setting widgets | 55 | // setting widgets |
56 | for(int i = 0; i < m_settingsList.size(); i++) | 56 | for(int i = 0; i < m_settingsList.size(); i++) |
57 | { | 57 | { |
58 | formlayout->addRow(m_settingsList.at(i)->name(),createWidgets(m_settingsList.at(i))); | 58 | QLabel *label = new QLabel(m_settingsList.at(i)->name()); |
59 | gridLayout->addWidget(label, i, 0); | ||
60 | QWidget *widget = createWidgets(m_settingsList.at(i)); | ||
61 | gridLayout->addWidget(widget, i, 1); | ||
62 | QWidget *btn = createButton(m_settingsList.at(i)); | ||
63 | if(btn != NULL) | ||
64 | { | ||
65 | gridLayout->addWidget(btn, i, 2); | ||
66 | } | ||
59 | } | 67 | } |
60 | groupBox->setLayout(formlayout); | 68 | // add hidden spacers to make the dialog scale properly |
69 | QSpacerItem* spacer = new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding); | ||
70 | gridLayout->addItem(spacer, m_settingsList.size(), 0); | ||
71 | spacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum); | ||
72 | gridLayout->addItem(spacer, m_settingsList.size(), 1); | ||
73 | |||
74 | groupBox->setLayout(gridLayout); | ||
61 | mainLayout->addWidget(groupBox); | 75 | mainLayout->addWidget(groupBox); |
62 | 76 | ||
63 | // connect browse btn | 77 | // connect browse btn |
@@ -82,7 +96,7 @@ void EncTtsCfgGui::setUpWindow() | |||
82 | this->setLayout(mainLayout); | 96 | this->setLayout(mainLayout); |
83 | } | 97 | } |
84 | 98 | ||
85 | QLayout* EncTtsCfgGui::createWidgets(EncTtsSetting* setting) | 99 | QWidget* EncTtsCfgGui::createWidgets(EncTtsSetting* setting) |
86 | { | 100 | { |
87 | // value display | 101 | // value display |
88 | QWidget* value = NULL; | 102 | QWidget* value = NULL; |
@@ -152,23 +166,14 @@ QLayout* EncTtsCfgGui::createWidgets(EncTtsSetting* setting) | |||
152 | } | 166 | } |
153 | } | 167 | } |
154 | 168 | ||
155 | // remeber widget | 169 | // remember widget |
156 | if(value != NULL) | 170 | if(value != NULL) |
157 | { | 171 | { |
158 | m_settingsWidgetsMap.insert(setting,value); | 172 | m_settingsWidgetsMap.insert(setting,value); |
159 | connect(setting,SIGNAL(updateGui()),this,SLOT(updateWidget())); | 173 | connect(setting,SIGNAL(updateGui()),this,SLOT(updateWidget())); |
160 | } | 174 | } |
161 | 175 | ||
162 | // buttons ? | 176 | return value; |
163 | QWidget* btn = createButton(setting); | ||
164 | |||
165 | // add to layout | ||
166 | QHBoxLayout *hbox = new QHBoxLayout; | ||
167 | if(value != NULL)hbox->addWidget(value); | ||
168 | if(btn != NULL) hbox->addWidget(btn); | ||
169 | |||
170 | return hbox; | ||
171 | |||
172 | } | 177 | } |
173 | 178 | ||
174 | QWidget* EncTtsCfgGui::createButton(EncTtsSetting* setting) | 179 | QWidget* EncTtsCfgGui::createButton(EncTtsSetting* setting) |
@@ -176,7 +181,7 @@ QWidget* EncTtsCfgGui::createButton(EncTtsSetting* setting) | |||
176 | if(setting->button() == EncTtsSetting::eBROWSEBTN) | 181 | if(setting->button() == EncTtsSetting::eBROWSEBTN) |
177 | { | 182 | { |
178 | QPushButton* browsebtn = new QPushButton(tr("Browse"),this); | 183 | QPushButton* browsebtn = new QPushButton(tr("Browse"),this); |
179 | browsebtn->setFixedWidth(50); //all buttons the same size, or it looks ugly | 184 | browsebtn->setIcon(QIcon(":/icons/system-search.png")); |
180 | m_browseBtnMap.setMapping(browsebtn,setting); | 185 | m_browseBtnMap.setMapping(browsebtn,setting); |
181 | connect(browsebtn,SIGNAL(clicked()),&m_browseBtnMap,SLOT(map())); | 186 | connect(browsebtn,SIGNAL(clicked()),&m_browseBtnMap,SLOT(map())); |
182 | return browsebtn; | 187 | return browsebtn; |
@@ -184,7 +189,7 @@ QWidget* EncTtsCfgGui::createButton(EncTtsSetting* setting) | |||
184 | else if(setting->button() == EncTtsSetting::eREFRESHBTN) | 189 | else if(setting->button() == EncTtsSetting::eREFRESHBTN) |
185 | { | 190 | { |
186 | QPushButton* refreshbtn = new QPushButton(tr("Refresh"),this); | 191 | QPushButton* refreshbtn = new QPushButton(tr("Refresh"),this); |
187 | refreshbtn->setFixedWidth(50); //all buttons the same size, or it looks ugly | 192 | refreshbtn->setIcon(QIcon(":/icons/view-refresh.png")); |
188 | connect(refreshbtn,SIGNAL(clicked()),setting,SIGNAL(refresh())); | 193 | connect(refreshbtn,SIGNAL(clicked()),setting,SIGNAL(refresh())); |
189 | return refreshbtn; | 194 | return refreshbtn; |
190 | } | 195 | } |
diff --git a/rbutil/rbutilqt/encttscfggui.h b/rbutil/rbutilqt/encttscfggui.h index c0f5119a81..dd1cfb8f02 100644 --- a/rbutil/rbutilqt/encttscfggui.h +++ b/rbutil/rbutilqt/encttscfggui.h | |||
@@ -54,7 +54,7 @@ private: | |||
54 | //! creates all dynamic window content | 54 | //! creates all dynamic window content |
55 | void setUpWindow(); | 55 | void setUpWindow(); |
56 | //! creates the Widgets needed for one setting. returns a Layout with the widgets | 56 | //! creates the Widgets needed for one setting. returns a Layout with the widgets |
57 | QLayout* createWidgets(EncTtsSetting* setting); | 57 | QWidget* createWidgets(EncTtsSetting* setting); |
58 | //! creates a button when needed by the setting. | 58 | //! creates a button when needed by the setting. |
59 | QWidget* createButton(EncTtsSetting* setting); | 59 | QWidget* createButton(EncTtsSetting* setting); |
60 | //! name of the Encoder or TTS for which this UI is | 60 | //! name of the Encoder or TTS for which this UI is |