192
193
switch (meterType) {
193
194
case Meter::BarMeterHorizontal:
194
meter->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
195
meter->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
196
197
case Meter::BarMeterVertical:
197
meter->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
198
meter->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding);
199
200
case Meter::AnalogMeter:
201
202
meter->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
205
meter->setPreferredSize(image->size());
207
//set a sane preferredSize. We can't just use the svg's native size, since that way
208
//letters get cut off if the user uses a font larger then usual. Check how many rows of
209
//labels we have, add 1 (the progress bar), and multiply by the font height to get a
210
//somewhat sane size height. This is not perfect but work well enough for 4.2. I suggest
211
//we look into alternatives for 4.3.
215
QString labelName = "label0";
216
while (image->hasElement(labelName)) {
217
if (image->elementRect(labelName).y() > prevY) {
218
prevY = image->elementRect(labelName).y();
222
labelName = QString("label%0").arg(i);
225
Plasma::Theme *theme = Plasma::Theme::defaultTheme();
226
QFont font = theme->font(Plasma::Theme::DefaultFont);
227
QFontMetrics fm(font);
229
meter->setPreferredHeight((rows + 1) * fm.height());
207
231
meter->setPreferredSize(QSizeF(30, 30));