summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2009-10-10 16:52:36 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2009-10-10 16:52:36 +0000
commitef9dfb89b823ad1470fb56f33f8628143012e797 (patch)
tree40bce29ec3f1c971064c0953216a813e6d944b64
parent6be1d8b8a8d966d3c4669ce6ba0b535a9b3e6a1c (diff)
downloadrockbox-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.cpp43
-rw-r--r--rbutil/rbutilqt/encttscfggui.h2
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
85QLayout* EncTtsCfgGui::createWidgets(EncTtsSetting* setting) 99QWidget* 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
174QWidget* EncTtsCfgGui::createButton(EncTtsSetting* setting) 179QWidget* 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