void IconManager::loadTheme(const IconTheme &iconTheme) { loadDefaults(); QHashIterator<QString, QString> it(iconTheme.icons()); while(it.hasNext()) { it.next(); m_icons.insert(it.key(), QPixmap(it.value())); } emit themeLoaded(); }
SpectralMeterView::SpectralMeterView(SpectralMeterWidget* widget) : MeterView(widget) { m_config = 0; m_meter = new SpectralMeter(); m_meter->init(); load_configuration(); upper_freq_log = log10(upper_freq); lower_freq_log = log10(lower_freq); sample_rate = audiodevice().get_sample_rate(); show_average = false; update_average = true; sample_weight = 1; QFontMetrics fm(themer()->get_font("FFTMeter:fontscale:label")); margin_l = 5; margin_r = fm.width("-XX") + 5; margin_t = fm.ascent()/2 + 5; margin_b = fm.ascent() + fm.descent() + 10; for (int i = 0; i < 4; ++i) { m_freq_labels.push_back(10.0f * pow(10.0,i)); m_freq_labels.push_back(20.0f * pow(10.0,i)); m_freq_labels.push_back(30.0f * pow(10.0,i)); m_freq_labels.push_back(40.0f * pow(10.0,i)); m_freq_labels.push_back(50.0f * pow(10.0,i)); m_freq_labels.push_back(60.0f * pow(10.0,i)); m_freq_labels.push_back(70.0f * pow(10.0,i)); m_freq_labels.push_back(80.0f * pow(10.0,i)); m_freq_labels.push_back(90.0f * pow(10.0,i)); } connect(themer(), SIGNAL(themeLoaded()), this, SLOT(load_theme_data()), Qt::QueuedConnection); }
VUMeter::VUMeter(QWidget* parent, AudioBus* bus) : QWidget(parent) { setMaximumWidth(MAXIMUM_WIDTH); m_minSpace = 0; mainlayout = new QVBoxLayout; load_theme_data(); QWidget* levelLedLayoutwidget = new QWidget(this); levelLedLayout = new QHBoxLayout(levelLedLayoutwidget); levelLedLayout->setSpacing(0); levelLedLayout->setMargin(0); levelLedLayout->addSpacing(m_vulayoutspacing); levelLedLayoutwidget->setLayout(levelLedLayout); m_minSpace += levelLedLayout->spacing(); for (int i = 0; i < bus->get_channel_count(); ++i) { QWidget* widget = new QWidget(this); QVBoxLayout* levellayout = new QVBoxLayout(widget); levellayout->setMargin(0); levellayout->setSpacing(0); VUMeterOverLed* led = new VUMeterOverLed(levelLedLayoutwidget); VUMeterLevel* level = new VUMeterLevel(levelLedLayoutwidget, bus->get_channel(i)); m_levels.append(level); connect(level, SIGNAL(activate_over_led(bool)), led, SLOT(set_active(bool))); levellayout->addWidget(led); levellayout->addWidget(level, 5); m_minSpace += level->minimumWidth(); levelLedLayout->addWidget(widget); if (i < bus->get_channel_count() - 1) { levelLedLayout->addSpacing(m_vulevelspacing); m_minSpace += m_vulevelspacing; } } // add a ruler with tickmarks and labels ruler = new VUMeterRuler(this); levelLedLayout->addWidget(ruler); m_minSpace += ruler->maximumWidth(); levelLedLayout->addSpacing(m_vulayoutspacing); m_minSpace += m_vulayoutspacing; // add a tooltip showing the channel name m_name = bus->get_name(); m_channels = bus->get_channel_count(); setToolTip(m_name); // initialize some stuff isActive = false; setAutoFillBackground(false); setAttribute(Qt::WA_OpaquePaintEvent); channelNameLabel = new QLabel(this); channelNameLabel->setFont(m_chanNameFont); channelNameLabel->setAlignment(Qt::AlignHCenter); mainlayout->addSpacing(5); mainlayout->addWidget(levelLedLayoutwidget, 5); mainlayout->addWidget(channelNameLabel); mainlayout->setMargin(m_mainlayoutmargin); mainlayout->setSpacing(m_mainlayoutspacing); m_minSpace += mainlayout->spacing(); setLayout(mainlayout); connect(themer(), SIGNAL(themeLoaded()), this, SLOT(load_theme_data()), Qt::QueuedConnection); }