Beispiel #1
0
	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);
}
Beispiel #3
0
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);
}