void MainWindow::setupConnections() { // connect signals for menu actions connect(ui->actionSave, SIGNAL(triggered()), this, SLOT(saveClicked())); connect(ui->actionLoad, SIGNAL(triggered()), this, SLOT(loadClicked())); connect(ui->actionExit, SIGNAL(triggered()), this, SLOT(close())); connect(ui->actionShowTable, SIGNAL(triggered()), _pointsWidget, SLOT(show())); // connect signals to control calculation process (start, stop, pause, processed, ...) connect(this, SIGNAL(startProcessing()), _plotBuilder, SLOT(start())); connect(ui->stopButton, SIGNAL(clicked()), _plotBuilder, SLOT(stop())); connect(this, SIGNAL(pauseProcessing()), _plotBuilder, SLOT(pause())); connect(this, SIGNAL(resumeProcessing()), _plotBuilder, SLOT(resume())); // connect signals to intercept and display calculation results connect(_plotBuilder, SIGNAL(finished()), this, SLOT(processingFinished())); connect(_plotBuilder, SIGNAL(processed(double, double, double)), this, SLOT(valueProcessed(double, double, double))); // connect signals to populate or clear points collection connect(_plotBuilder, SIGNAL(processed(double, double, double)), _points, SLOT(addPoint(double, double))); connect(_plotBuilder, SIGNAL(started()), _points, SLOT(clear())); // connect signals to update widget that displays points collection connect(this, SIGNAL(startProcessing()), _pointsWidget, SLOT(updatePage())); connect(this, SIGNAL(pauseProcessing()), _pointsWidget, SLOT(updatePage())); connect(_plotBuilder, SIGNAL(finished()), _pointsWidget, SLOT(updatePage())); }
/* * Initialize */ void MovieSequenceForm::init() { setAttribute(Qt::WA_DeleteOnClose); setAttribute(Qt::WA_AlwaysShowToolTips); mSegments = mvMovieSegmentArray(); connect(doneButton, SIGNAL(clicked()), this, SLOT(close())); connect(addAfterButton, SIGNAL(clicked()), this, SLOT(addAfterClicked())); connect(addBeforeButton, SIGNAL(clicked()), this, SLOT(addBeforeClicked())); connect(replaceButton, SIGNAL(clicked()), this, SLOT(replaceClicked())); connect(deleteButton, SIGNAL(clicked()), this, SLOT(deleteClicked())); connect(setMovieButton, SIGNAL(clicked()), this, SLOT(setMovieClicked())); connect(setStartButton, SIGNAL(clicked()), this, SLOT(setStartClicked())); connect(setEndButton, SIGNAL(clicked()), this, SLOT(setEndClicked())); connect(runAllButton, SIGNAL(clicked()), this, SLOT(runAllClicked())); connect(saveButton, SIGNAL(clicked()), this, SLOT(saveClicked())); connect(loadButton, SIGNAL(clicked()), this, SLOT(loadClicked())); connect(helpButton, SIGNAL(clicked()), this, SLOT(helpClicked())); connect(table, SIGNAL(cellChanged(int, int)), this, SLOT(entryChanged(int,int))); setFontDependentWidths(); mModified = false; // Change window size to give 4 rows plus header imod_info_input(); adjustSize(); QSize winSize = sizeHint(); QSize tableSize = table->sizeHint(); int desired = 5.6 * (table->fontMetrics().height() + 3); resize(winSize.width(), winSize.height() + (desired - tableSize.height())); }
void LoadablePartWidget::showEvent(QShowEvent *event) { QStackedWidget::showEvent(event); if (m_loadOnShow) { m_loadOnShow = false; loadClicked(); } }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); // QObject::connect(ui->QLoad,SIGNAL(clicked()), this, SLOT(loadClicked())); QObject::connect(ui->QSave,SIGNAL(clicked()), this, SLOT(saveClicked())); }
TableView3D::TableView3D(QWidget *parent) { Q_UNUSED(parent) m_isFlashOnly = false; m_tableMap=0; ui.setupUi(this); tableData=0; m_tracingEnabled = false; connect(ui.savePushButton,SIGNAL(clicked()),this,SLOT(saveClicked())); connect(ui.loadFlashPushButton,SIGNAL(clicked()),this,SLOT(loadClicked())); connect(ui.loadRamPushButton,SIGNAL(clicked()),this,SLOT(loadRamClicked())); connect(ui.exportPushButton,SIGNAL(clicked()),this,SLOT(exportClicked())); connect(ui.importPushButton,SIGNAL(clicked()),this,SLOT(importClicked())); connect(ui.tableWidget,SIGNAL(hotKeyPressed(int,Qt::KeyboardModifier)),this,SLOT(hotKeyPressed(int,Qt::KeyboardModifier))); connect(ui.tracingCheckBox,SIGNAL(stateChanged(int)),this,SLOT(tracingCheckBoxStateChanged(int))); ui.tableWidget->addHotkey(Qt::Key_Plus,Qt::ShiftModifier); ui.tableWidget->addHotkey(Qt::Key_Minus,Qt::NoModifier); ui.tableWidget->addHotkey(Qt::Key_Underscore,Qt::ShiftModifier); ui.tableWidget->addHotkey(Qt::Key_Equal,Qt::NoModifier); connect(ui.tableWidget,SIGNAL(itemChangeRequest(int,int,int,int,QString)),this,SLOT(itemChangeRequest(int,int,int,int,QString))); //ui.tableWidget->setItemDelegate(new TableWidgetDelegate()); setContextMenuPolicy(Qt::DefaultContextMenu); //QAction* fooAction = new QAction("foo",this); //QAction* barAction = new QAction("bar",this); //connect(fooAction, SIGNAL(triggered()), this, SLOT(doSomethingFoo())); //connect(barAction, SIGNAL(triggered()), this, SLOT(doSomethingBar())); //addAction(fooAction); //addAction(barAction); metaDataValid = true; /*if (!isram) { //Is only flash ui.loadRamPushButton->setVisible(false); } else if (!isflash) { //Is only ram ui.savePushButton->setVisible(false); ui.loadFlashPushButton->setVisible(false); } else { //Is both ram and flash }*/ //ui.importPushButton->setVisible(false); //ui.tracingCheckBox->setVisible(false); //ui.tracingCheckBox->setEnabled(false); connect(ui.showMapPushButton,SIGNAL(clicked()),this,SLOT(showMapClicked())); m_inputTimer = new QTimer(this); connect(m_inputTimer,SIGNAL(timeout()),this,SLOT(inputTimerTimeout())); }
WorkLoader::WorkLoader(const QSqlDatabase & db, MixerPanelModel * model, MixerPanelView * mixerView) : QObject(model), mFileQuery("", db), mWorkInfoQuery("",db) { mWork = -1; mMixerPanelView = mixerView; mMixerPanelModel = model; mNumMixers = model->mixerChannels()->size(); if(!cTypesRegistered){ qRegisterMetaType<DataJockey::AudioBufferPtr>("DataJockey::AudioBufferPtr"); qRegisterMetaType<DataJockey::BeatBufferPtr>("DataJockey::BeatBufferPtr"); cTypesRegistered = true; } //we need a signal mapper to map the load() to a mixer id QSignalMapper * mixerToIdMapper = new QSignalMapper(this); //create our thread pool and connect up our view's "load()" signal to us for(unsigned int i = 0; i < mNumMixers; i++){ BufferLoaderThread * newThread = new BufferLoaderThread(this); mLoaderThreads.push_back(newThread); //connect it up to us QObject::connect(newThread, SIGNAL(buffersLoaded(unsigned int, int, DataJockey::AudioBufferPtr, DataJockey::BeatBufferPtr)), this, SLOT(setWork(unsigned int, int, DataJockey::AudioBufferPtr, DataJockey::BeatBufferPtr)), Qt::QueuedConnection); QObject::connect(newThread, SIGNAL(outOfMemory(unsigned int, int, QString, QString)), this, SLOT(outOfMemory(unsigned int, int, QString, QString)), Qt::QueuedConnection); QObject::connect(newThread, SIGNAL(cannotLoad(unsigned int, int, QString, QString, QString)), this, SLOT(cannotLoad(unsigned int, int, QString, QString, QString)), Qt::QueuedConnection); //set up our mapper [object -> id] mixerToIdMapper->setMapping(mixerView->mixerChannels()->at(i)->control(), (int)i); //connect the loadClicked signal -> the mapper for this object QObject::connect( mixerView->mixerChannels()->at(i)->control(), SIGNAL(loadClicked()), mixerToIdMapper, SLOT(map())); } //connect the mapped signal to our protected mixerLoadWork slot QObject::connect( mixerToIdMapper, SIGNAL(mapped(int)), this, SLOT(mixerLoadWork(int))); }
LoadablePartWidget::LoadablePartWidget(QWidget *parent, Imap::Network::MsgPartNetAccessManager *manager, const QModelIndex &part, MessageView *messageView, const LoadingTriggerMode mode): QStackedWidget(parent), manager(manager), partIndex(part), m_messageView(messageView), realPart(0), loadButton(0), m_loadOnShow(mode == LOAD_ON_SHOW) { Q_ASSERT(partIndex.isValid()); if (mode == LOAD_ON_CLICK) { loadButton = new QPushButton(tr("Load %1 (%2)").arg(partIndex.data(Imap::Mailbox::RolePartMimeType).toString(), Imap::Mailbox::PrettySize::prettySize(partIndex.data(Imap::Mailbox::RolePartOctets).toUInt())), this); connect(loadButton, SIGNAL(clicked()), this, SLOT(loadClicked())); addWidget(loadButton); } }
LoadablePartWidget::LoadablePartWidget(QWidget *parent, Imap::Network::MsgPartNetAccessManager *manager, const QModelIndex &part, MessageView *messageView, PartWidgetFactory *factory, int recursionDepth, const PartWidgetFactory::PartLoadingOptions loadingMode): QStackedWidget(parent), manager(manager), partIndex(part), m_messageView(messageView), m_factory(factory), m_recursionDepth(recursionDepth), m_loadingMode(loadingMode), realPart(0), loadButton(0), m_loadOnShow(false) { Q_ASSERT(partIndex.isValid()); QString mimeType = partIndex.data(Imap::Mailbox::RolePartMimeType).toString().toLower(); if ((loadingMode & PartWidgetFactory::PART_IS_HIDDEN) || (loadingMode & PartWidgetFactory::PART_IGNORE_CLICKTHROUGH) || partIndex.data(Imap::Mailbox::RoleIsFetched).toBool()) { m_loadOnShow = true; } else { loadButton = new QPushButton(tr("Load %1 (%2)").arg(partIndex.data(Imap::Mailbox::RolePartMimeType).toString(), Imap::Mailbox::PrettySize::prettySize(partIndex.data(Imap::Mailbox::RolePartOctets).toUInt())), this); connect(loadButton, SIGNAL(clicked()), this, SLOT(loadClicked())); addWidget(loadButton); } }
WatsynView::WatsynView( Instrument * _instrument, QWidget * _parent ) : InstrumentView( _instrument, _parent ) { setAutoFillBackground( true ); QPalette pal; pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); setPalette( pal ); // knobs... lots of em makeknob( a1_volKnob, 130, A1ROW, tr( "Volume" ), "%", "aKnob" ) makeknob( a2_volKnob, 130, A2ROW, tr( "Volume" ), "%", "aKnob" ) makeknob( b1_volKnob, 130, B1ROW, tr( "Volume" ), "%", "bKnob" ) makeknob( b2_volKnob, 130, B2ROW, tr( "Volume" ), "%", "bKnob" ) makeknob( a1_panKnob, 154, A1ROW, tr( "Panning" ), "", "aKnob" ) makeknob( a2_panKnob, 154, A2ROW, tr( "Panning" ), "", "aKnob" ) makeknob( b1_panKnob, 154, B1ROW, tr( "Panning" ), "", "bKnob" ) makeknob( b2_panKnob, 154, B2ROW, tr( "Panning" ), "", "bKnob" ) makeknob( a1_multKnob, 178, A1ROW, tr( "Freq. multiplier" ), "/8", "aKnob" ) makeknob( a2_multKnob, 178, A2ROW, tr( "Freq. multiplier" ), "/8", "aKnob" ) makeknob( b1_multKnob, 178, B1ROW, tr( "Freq. multiplier" ), "/8", "bKnob" ) makeknob( b2_multKnob, 178, B2ROW, tr( "Freq. multiplier" ), "/8", "bKnob" ) makeknob( a1_ltuneKnob, 202, A1ROW, tr( "Left detune" ), tr( " cents" ), "aKnob" ) makeknob( a2_ltuneKnob, 202, A2ROW, tr( "Left detune" ), tr( " cents" ), "aKnob" ) makeknob( b1_ltuneKnob, 202, B1ROW, tr( "Left detune" ), tr( " cents" ), "bKnob" ) makeknob( b2_ltuneKnob, 202, B2ROW, tr( "Left detune" ), tr( " cents" ), "bKnob" ) makeknob( a1_rtuneKnob, 226, A1ROW, tr( "Right detune" ), tr( " cents" ), "aKnob" ) makeknob( a2_rtuneKnob, 226, A2ROW, tr( "Right detune" ), tr( " cents" ), "aKnob" ) makeknob( b1_rtuneKnob, 226, B1ROW, tr( "Right detune" ), tr( " cents" ), "bKnob" ) makeknob( b2_rtuneKnob, 226, B2ROW, tr( "Right detune" ), tr( " cents" ), "bKnob" ) makeknob( m_abmixKnob, 4, 3, tr( "A-B Mix" ), "", "mixKnob" ) makeknob( m_envAmtKnob, 88, 3, tr( "Mix envelope amount" ), "", "mixenvKnob" ) maketsknob( m_envAttKnob, 88, A1ROW, tr( "Mix envelope attack" ), " ms", "mixenvKnob" ) maketsknob( m_envHoldKnob, 88, A2ROW, tr( "Mix envelope hold" ), " ms", "mixenvKnob" ) maketsknob( m_envDecKnob, 88, B1ROW, tr( "Mix envelope decay" ), " ms", "mixenvKnob" ) makeknob( m_xtalkKnob, 88, B2ROW, tr( "Crosstalk" ), "", "xtalkKnob" ) // let's set volume knobs a1_volKnob -> setVolumeKnob( true ); a2_volKnob -> setVolumeKnob( true ); b1_volKnob -> setVolumeKnob( true ); b2_volKnob -> setVolumeKnob( true ); m_abmixKnob -> setFixedSize( 31, 31 ); // button groups next. // graph select buttons PixmapButton * a1_selectButton = new PixmapButton( this, NULL ); a1_selectButton -> move( 4, 121 ); a1_selectButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "a1_active" ) ); a1_selectButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "a1_inactive" ) ); ToolTip::add( a1_selectButton, tr( "Select oscillator A1") ); PixmapButton * a2_selectButton = new PixmapButton( this, NULL ); a2_selectButton -> move( 44, 121 ); a2_selectButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "a2_active" ) ); a2_selectButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "a2_inactive" ) ); ToolTip::add( a2_selectButton, tr( "Select oscillator A2") ); PixmapButton * b1_selectButton = new PixmapButton( this, NULL ); b1_selectButton -> move( 84, 121 ); b1_selectButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "b1_active" ) ); b1_selectButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "b1_inactive" ) ); ToolTip::add( b1_selectButton, tr( "Select oscillator B1") ); PixmapButton * b2_selectButton = new PixmapButton( this, NULL ); b2_selectButton -> move( 124, 121 ); b2_selectButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "b2_active" ) ); b2_selectButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "b2_inactive" ) ); ToolTip::add( b2_selectButton, tr( "Select oscillator B2") ); m_selectedGraphGroup = new automatableButtonGroup( this ); m_selectedGraphGroup -> addButton( a1_selectButton ); m_selectedGraphGroup -> addButton( a2_selectButton ); m_selectedGraphGroup -> addButton( b1_selectButton ); m_selectedGraphGroup -> addButton( b2_selectButton ); WatsynInstrument * w = castModel<WatsynInstrument>(); m_selectedGraphGroup -> setModel( &w -> m_selectedGraph); // A-modulation button group PixmapButton * amod_mixButton = new PixmapButton( this, NULL ); amod_mixButton -> move( 4, 50 ); amod_mixButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "amix_active" ) ); amod_mixButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "amix_inactive" ) ); ToolTip::add( amod_mixButton, tr( "Mix output of A2 to A1" ) ); PixmapButton * amod_amButton = new PixmapButton( this, NULL ); amod_amButton -> move( 4, 66 ); amod_amButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "aam_active" ) ); amod_amButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "aam_inactive" ) ); ToolTip::add( amod_amButton, tr( "Modulate amplitude of A1 with output of A2" ) ); PixmapButton * amod_rmButton = new PixmapButton( this, NULL ); amod_rmButton -> move( 4, 82 ); amod_rmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "arm_active" ) ); amod_rmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "arm_inactive" ) ); ToolTip::add( amod_rmButton, tr( "Ring-modulate A1 and A2" ) ); PixmapButton * amod_pmButton = new PixmapButton( this, NULL ); amod_pmButton -> move( 4, 98 ); amod_pmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "apm_active" ) ); amod_pmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "apm_inactive" ) ); ToolTip::add( amod_pmButton, tr( "Modulate phase of A1 with output of A2" ) ); m_aModGroup = new automatableButtonGroup( this ); m_aModGroup -> addButton( amod_mixButton ); m_aModGroup -> addButton( amod_amButton ); m_aModGroup -> addButton( amod_rmButton ); m_aModGroup -> addButton( amod_pmButton ); // B-modulation button group PixmapButton * bmod_mixButton = new PixmapButton( this, NULL ); bmod_mixButton -> move( 44, 50 ); bmod_mixButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "bmix_active" ) ); bmod_mixButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "bmix_inactive" ) ); ToolTip::add( bmod_mixButton, tr( "Mix output of B2 to B1" ) ); PixmapButton * bmod_amButton = new PixmapButton( this, NULL ); bmod_amButton -> move( 44, 66 ); bmod_amButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "bam_active" ) ); bmod_amButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "bam_inactive" ) ); ToolTip::add( bmod_amButton, tr( "Modulate amplitude of B1 with output of B2" ) ); PixmapButton * bmod_rmButton = new PixmapButton( this, NULL ); bmod_rmButton -> move( 44, 82 ); bmod_rmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "brm_active" ) ); bmod_rmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "brm_inactive" ) ); ToolTip::add( bmod_rmButton, tr( "Ring-modulate B1 and B2" ) ); PixmapButton * bmod_pmButton = new PixmapButton( this, NULL ); bmod_pmButton -> move( 44, 98 ); bmod_pmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "bpm_active" ) ); bmod_pmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "bpm_inactive" ) ); ToolTip::add( bmod_pmButton, tr( "Modulate phase of B1 with output of B2" ) ); m_bModGroup = new automatableButtonGroup( this ); m_bModGroup -> addButton( bmod_mixButton ); m_bModGroup -> addButton( bmod_amButton ); m_bModGroup -> addButton( bmod_rmButton ); m_bModGroup -> addButton( bmod_pmButton ); // graph widgets pal = QPalette(); pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap("wavegraph") ); // a1 graph a1_graph = new Graph( this, Graph::LinearStyle, 224, 105 ); a1_graph->move( 4, 141 ); a1_graph->setAutoFillBackground( true ); a1_graph->setGraphColor( QColor( 0x43, 0xb2, 0xff ) ); ToolTip::add( a1_graph, tr ( "Draw your own waveform here by dragging your mouse on this graph." ) ); a1_graph->setPalette( pal ); // a2 graph a2_graph = new Graph( this, Graph::LinearStyle, 224, 105 ); a2_graph->move( 4, 141 ); a2_graph->setAutoFillBackground( true ); a2_graph->setGraphColor( QColor( 0x43, 0xb2, 0xff ) ); ToolTip::add( a2_graph, tr ( "Draw your own waveform here by dragging your mouse on this graph." ) ); a2_graph->setPalette( pal ); // b1 graph b1_graph = new Graph( this, Graph::LinearStyle, 224, 105 ); b1_graph->move( 4, 141 ); b1_graph->setAutoFillBackground( true ); b1_graph->setGraphColor( QColor( 0xfc, 0x54, 0x31 ) ); ToolTip::add( b1_graph, tr ( "Draw your own waveform here by dragging your mouse on this graph." ) ); b1_graph->setPalette( pal ); // b2 graph b2_graph = new Graph( this, Graph::LinearStyle, 224, 105 ); b2_graph->move( 4, 141 ); b2_graph->setAutoFillBackground( true ); b2_graph->setGraphColor( QColor( 0xfc, 0x54, 0x31 ) ); ToolTip::add( b2_graph, tr ( "Draw your own waveform here by dragging your mouse on this graph." ) ); b2_graph->setPalette( pal ); // misc pushbuttons // waveform modifications m_loadButton = new PixmapButton( this, tr( "Load waveform" ) ); m_loadButton -> move ( 173, 121 ); m_loadButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "load_active" ) ); m_loadButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "load_inactive" ) ); ToolTip::add( m_loadButton, tr( "Click to load a waveform from a sample file" ) ); m_phaseLeftButton = new PixmapButton( this, tr( "Phase left" ) ); m_phaseLeftButton -> move ( 193, 121 ); m_phaseLeftButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "phl_active" ) ); m_phaseLeftButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "phl_inactive" ) ); ToolTip::add( m_phaseLeftButton, tr( "Click to shift phase by -15 degrees" ) ); m_phaseRightButton = new PixmapButton( this, tr( "Phase right" ) ); m_phaseRightButton -> move ( 210, 121 ); m_phaseRightButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "phr_active" ) ); m_phaseRightButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "phr_inactive" ) ); ToolTip::add( m_phaseRightButton, tr( "Click to shift phase by +15 degrees" ) ); m_normalizeButton = new PixmapButton( this, tr( "Normalize" ) ); m_normalizeButton -> move ( 230, 121 ); m_normalizeButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "norm_active" ) ); m_normalizeButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "norm_inactive" ) ); ToolTip::add( m_normalizeButton, tr( "Click to normalize" ) ); m_invertButton = new PixmapButton( this, tr( "Invert" ) ); m_invertButton -> move ( 230, 138 ); m_invertButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "inv_active" ) ); m_invertButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "inv_inactive" ) ); ToolTip::add( m_invertButton, tr( "Click to invert" ) ); m_smoothButton = new PixmapButton( this, tr( "Smooth" ) ); m_smoothButton -> move ( 230, 155 ); m_smoothButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "smooth_active" ) ); m_smoothButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "smooth_inactive" ) ); ToolTip::add( m_smoothButton, tr( "Click to smooth" ) ); // waveforms m_sinWaveButton = new PixmapButton( this, tr( "Sine wave" ) ); m_sinWaveButton -> move ( 230, 176 ); m_sinWaveButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "sin_active" ) ); m_sinWaveButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "sin_inactive" ) ); ToolTip::add( m_sinWaveButton, tr( "Click for sine wave" ) ); m_triWaveButton = new PixmapButton( this, tr( "Triangle wave" ) ); m_triWaveButton -> move ( 230, 194 ); m_triWaveButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "tri_active" ) ); m_triWaveButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "tri_inactive" ) ); ToolTip::add( m_triWaveButton, tr( "Click for triangle wave" ) ); m_sawWaveButton = new PixmapButton( this, tr( "Triangle wave" ) ); m_sawWaveButton -> move ( 230, 212 ); m_sawWaveButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "saw_active" ) ); m_sawWaveButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "saw_inactive" ) ); ToolTip::add( m_sawWaveButton, tr( "Click for saw wave" ) ); m_sqrWaveButton = new PixmapButton( this, tr( "Square wave" ) ); m_sqrWaveButton -> move ( 230, 230 ); m_sqrWaveButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "sqr_active" ) ); m_sqrWaveButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "sqr_inactive" ) ); ToolTip::add( m_sqrWaveButton, tr( "Click for square wave" ) ); connect( m_sinWaveButton, SIGNAL( clicked() ), this, SLOT( sinWaveClicked() ) ); connect( m_triWaveButton, SIGNAL( clicked() ), this, SLOT( triWaveClicked() ) ); connect( m_sawWaveButton, SIGNAL( clicked() ), this, SLOT( sawWaveClicked() ) ); connect( m_sqrWaveButton, SIGNAL( clicked() ), this, SLOT( sqrWaveClicked() ) ); connect( m_normalizeButton, SIGNAL( clicked() ), this, SLOT( normalizeClicked() ) ); connect( m_invertButton, SIGNAL( clicked() ), this, SLOT( invertClicked() ) ); connect( m_smoothButton, SIGNAL( clicked() ), this, SLOT( smoothClicked() ) ); connect( m_phaseLeftButton, SIGNAL( clicked() ), this, SLOT( phaseLeftClicked() ) ); connect( m_phaseRightButton, SIGNAL( clicked() ), this, SLOT( phaseRightClicked() ) ); connect( m_loadButton, SIGNAL( clicked() ), this, SLOT( loadClicked() ) ); connect( a1_selectButton, SIGNAL( clicked() ), this, SLOT( updateLayout() ) ); connect( a2_selectButton, SIGNAL( clicked() ), this, SLOT( updateLayout() ) ); connect( b1_selectButton, SIGNAL( clicked() ), this, SLOT( updateLayout() ) ); connect( b2_selectButton, SIGNAL( clicked() ), this, SLOT( updateLayout() ) ); updateLayout(); }
//Setup the GUI NameList::NameList(QWidget *parent) : QWidget(parent) { //Main layout QVBoxLayout *mainLayout = new QVBoxLayout(this); //Horizontal layout for the title and button QHBoxLayout *hLayout = new QHBoxLayout(); hLayout->setStretch(0,1); mainLayout->addLayout(hLayout); //Title (empty) _title = new QLabel(); hLayout->addWidget(_title); //Spacer QSpacerItem *spacer = new QSpacerItem(0,0); hLayout->addSpacerItem(spacer); hLayout->setStretch(1,1); //Buttons b_load = new QToolButton(); b_load->setIcon(QIcon(":/images/open.png")); b_load->setToolTip(QString("Load existing")); b_up = new QToolButton(); b_up->setIcon(QIcon::fromTheme("go-up",QIcon(":images/up.png"))); b_down = new QToolButton(); b_down->setIcon(QIcon::fromTheme("go-down",QIcon(":images/down.png"))); b_add = new QToolButton(); b_add->setIcon(QIcon::fromTheme("list-add",QIcon(":images/add.png"))); b_add->setToolTip(QString("Add new")); b_remove = new QToolButton(); b_remove->setIcon(QIcon::fromTheme("list-remove",QIcon(":images/delete.png"))); b_remove->setToolTip(QString("Remove")); hLayout->addWidget(b_up); hLayout->addWidget(b_down); hLayout->addWidget(b_load); hLayout->addWidget(b_add); hLayout->addWidget(b_remove); //The list and its model _table = new QTableWidget(); _table->setColumnCount(1); _table->horizontalHeader()->setSectionResizeMode(0,QHeaderView::Stretch); _table->horizontalHeader()->hide(); _table->verticalHeader()->hide(); _table->setSelectionBehavior(QAbstractItemView::SelectRows); _table->setMinimumHeight(100); mainLayout->addWidget(_table); //Connect the buttons CONNECT(b_up, SIGNAL(clicked()), this, SLOT(up())); CONNECT(b_down, SIGNAL(clicked()), this, SLOT(down())); CONNECT(b_load, SIGNAL(clicked()), this, SIGNAL(loadClicked())); CONNECT(b_add, SIGNAL(clicked()), this, SIGNAL(addClicked())); CONNECT(b_remove, SIGNAL(clicked()), this, SLOT(removeCurrent())); //Enable/disables the buttons CONNECT(this, SIGNAL(appened(void*)), this, SLOT(checkSize())); CONNECT(this, SIGNAL(removed(void*)), this, SLOT(checkSize())); CONNECT(this, SIGNAL(appened(void*)), this, SLOT(checkUpDown())); CONNECT(this, SIGNAL(removed(void*)), this, SLOT(checkUpDown())); CONNECT(_table, SIGNAL(clicked(QModelIndex)), this, SLOT(checkUpDown())); CONNECT(_table->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(checkUpDown())); //Redirect list signals CONNECT(_table, SIGNAL(activated(QModelIndex)), this, SLOT(activateIndex(QModelIndex))); CONNECT(_table, SIGNAL(clicked(QModelIndex)), this, SLOT(selectIndex(QModelIndex))); //By default, do not show all buttons hideUpDown(true); // hideLoad(true); hideAdd(true); //And they are disabled b_up->setEnabled(false); b_down->setEnabled(false); //The remove button too b_remove->setEnabled(false); //Lower our minimal height and change our vertical policy this->setMinimumHeight(100); this->setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Expanding); }
LTWindow::LTWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::LTWindow), eventData(EventData::getInstance()) { ui->setupUi(this); currDriver = -1; streamReader = new DataStreamReader(this); prefs = new PreferencesDialog(this); settings = new QSettings(F1LTCore::iniFile(), QSettings::IniFormat, this); loginDialog = new LoginDialog(this); ltFilesManagerDialog = new LTFilesManagerDialog(this); trackRecordsDialog = new TrackRecordsDialog(this); saw = new SessionAnalysisWidget(); stw = new SessionTimesWidget(); driverTrackerWidget = new DriverTrackerWidget(); aboutDialog = new AboutDialog(this); updatesCheckerDialog = new UpdatesCheckerDialog(this); // ui->trackStatusWidget->setupItems(); connect(streamReader, SIGNAL(tryAuthorize()), this, SLOT(tryAuthorize())); connect(streamReader, SIGNAL(authorized(QString)), this, SLOT(authorized(QString))); connect(streamReader, SIGNAL(eventDataChanged(const DataUpdates&)), this, SLOT(eventDataChanged(const DataUpdates&))); connect(streamReader, SIGNAL(driverDataChanged(int, const DataUpdates&)), this, SLOT(driverDataChanged(int, const DataUpdates&))); connect(streamReader, SIGNAL(dataChanged(const DataUpdates&)), this, SLOT(dataChanged(const DataUpdates&))); connect(streamReader, SIGNAL(sessionStarted()), this, SLOT(sessionStarted())); connect(streamReader, SIGNAL(authorizationError()), this, SLOT(authorizationError())); connect(streamReader, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(error(QAbstractSocket::SocketError))); connect(streamReader, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(error(QNetworkReply::NetworkError))); connect(streamReader, SIGNAL(noLiveSession(bool, QString)), this, SLOT(showNoSessionBoard(bool, QString))); connect(updatesCheckerDialog, SIGNAL(newVersionAvailable()), this, SLOT(onNewVersionAvailable())); sessionTimer = new SessionTimer(this); connect(sessionTimer, SIGNAL(updateWeather()), this, SLOT(updateWeather())); connect(&SeasonData::getInstance(), SIGNAL(seasonDataChanged()), &ImagesFactory::getInstance(), SLOT(reloadGraphics())); connect(&SeasonData::getInstance(), SIGNAL(seasonDataChanged()), &ColorsManager::getInstance(), SLOT(calculateDefaultDriverColors())); connect(&SeasonData::getInstance(), SIGNAL(seasonDataChanged()), saw, SLOT(setupColors())); connect(prefs, SIGNAL(driversColorsChanged()), saw, SLOT(setupColors())); eventRecorder = new EventRecorder(sessionTimer, this); eventPlayer = new EventPlayer(this); delayWidget = new DelayWidget(this); connect(delayWidget, SIGNAL(delayChanged(int, int)), streamReader, SLOT(setDelay(int, int))); connect(delayWidget, SIGNAL(delayChanged(int, int)), sessionTimer, SLOT(setDelay(int, int))); connect(sessionTimer, SIGNAL(synchronizingTimer(bool)), delayWidget, SLOT(synchronizingTimer(bool))); connect(sessionTimer, SIGNAL(synchronizingTimer(bool)), driverTrackerWidget, SLOT(pauseTimer(bool))); connect(ui->messageBoardWidget, SIGNAL(connectClicked()), this, SLOT(on_actionConnect_triggered())); connect(ui->messageBoardWidget, SIGNAL(playClicked()), this, SLOT(on_actionOpen_triggered())); connect(ui->messageBoardWidget, SIGNAL(loadClicked()), this, SLOT(on_actionLT_files_data_base_triggered())); loadSettings(); ColorsManager::getInstance().calculateDefaultDriverColors(); saw->setupColors(); delayWidgetAction = ui->mainToolBar->addWidget(delayWidget); delayWidgetAction->setVisible(true); eventPlayerAction = ui->mainToolBar->addWidget(eventPlayer); eventPlayerAction->setVisible(false); recording = false; playing = false; connectionProgress = new QProgressDialog(this); connect(sessionTimer, SIGNAL(timeout()), this, SLOT(timeout())); connect(eventRecorder, SIGNAL(recordingStopped()), this, SLOT(autoStopRecording())); connect(eventPlayer, SIGNAL(playClicked(int)), this, SLOT(eventPlayerPlayClicked(int))); connect(eventPlayer, SIGNAL(pauseClicked()), this, SLOT(eventPlayerPauseClicked())); connect(eventPlayer, SIGNAL(rewindToStartClicked()), this, SLOT(eventPlayerRewindToStartClicked())); connect(eventPlayer, SIGNAL(forwardToEndClicked()), this, SLOT(eventPlayerForwardToEndClicked())); connect(eventPlayer, SIGNAL(rewindClicked()), this, SLOT(eventPlayerRewindClicked())); connect(eventPlayer, SIGNAL(stopClicked()), this, SLOT(eventPlayerStopClicked())); connect(eventPlayer, SIGNAL(nextPackets(QVector<Packet>)), streamReader, SLOT(parsePackets(QVector<Packet>))); connect(ui->ltWidget, SIGNAL(driverSelected(int)), ui->driverDataWidget, SLOT(printDriverData(int))); connect(ui->ltWidget, SIGNAL(driverDoubleClicked(int)), this, SLOT(ltWidgetDriverSelected(int))); ui->messageBoardWidget->setVisible(false); QStringList args = qApp->arguments(); if (args.size() > 1) { if (eventPlayer->loadFromFile(args.at(1)) == false) { QMessageBox::critical(this, "Error opening file!", "Could not open specified file, or the file is corrupted."); connectToServer(); return; } setWindowTitle("FILT - " + args.at(1)); ui->actionRecord->setVisible(false); ui->actionStop_recording->setVisible(false); eventPlayerAction->setVisible(true); delayWidgetAction->setVisible(false); playing = true; eventPlayer->startPlaying(); } else { if (settings->value("ui/auto_connect").toBool()) connectToServer(); else { ui->messageBoardWidget->showStartupBoard(); showSessionBoard(true); } } }
VolumeListingDialog::VolumeListingDialog(QWidget* parent) : QWidget(parent) , reader_(0) { setWindowFlags(Qt::Dialog); setWindowModality(Qt::WindowModal); setWindowTitle(tr("Volume Selection")); // table configuration table_ = new QTableWidget(); table_->setSelectionBehavior(QAbstractItemView::SelectRows); table_->setSortingEnabled(true); table_->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); // top label QVBoxLayout* mainLayout = new QVBoxLayout(); titleLabel_ = new QLabel(tr("The selected file contains multiple volumes. Please select the volumes to load:")); QFont labelFont = titleLabel_->font(); labelFont.setPointSize(titleLabel_->font().pointSize()+1); labelFont.setBold(true); titleLabel_->setFont(labelFont); mainLayout->addWidget(titleLabel_); // filter bar QHBoxLayout* searchLayout = new QHBoxLayout(); filterLabel_ = new QLabel(tr("Filter: ")); searchLayout->addWidget(filterLabel_); filterTextBox_ = new QLineEdit(); searchLayout->addWidget(filterTextBox_); comboBoxFilterAttribute_ = new QComboBox(); comboBoxFilterAttribute_->setMinimumWidth(100); searchLayout->addWidget(comboBoxFilterAttribute_); mainLayout->addLayout(searchLayout); // table mainLayout->addWidget(table_); // buttons QHBoxLayout* buttonLayout = new QHBoxLayout(); buttonLayout->addStretch(); cancelButton_ = new QPushButton(tr("Cancel")); cancelButton_->setFixedWidth(100); buttonLayout->addWidget(cancelButton_); selectAllButton_ = new QPushButton(tr("Select All")); selectAllButton_->setFixedWidth(100); buttonLayout->addWidget(selectAllButton_); loadButton_ = new QPushButton(tr("Load")); loadButton_->setFixedWidth(100); QFont loadFont(loadButton_->font()); loadFont.setBold(true); loadButton_->setFont(loadFont); buttonLayout->addWidget(loadButton_); mainLayout->addLayout(buttonLayout); setLayout(mainLayout); connect(table_, SIGNAL(itemSelectionChanged()), this, SLOT(updateGuiState())); connect(table_, SIGNAL(cellDoubleClicked(int, int)), this, SLOT(cellDoubleClicked())); connect(filterTextBox_, SIGNAL(textChanged(const QString&)), this, SLOT(updateTableRows())); connect(filterTextBox_, SIGNAL(editingFinished()), this, SLOT(updateTableRows())); connect(comboBoxFilterAttribute_, SIGNAL(currentIndexChanged(int)), this, SLOT(updateTableRows())); connect(loadButton_, SIGNAL(clicked()), this, SLOT(loadClicked())); connect(selectAllButton_, SIGNAL(clicked()), this, SLOT(selectAllClicked())); connect(cancelButton_, SIGNAL(clicked()), this, SLOT(cancelClicked())); resize(600, 300); updateGuiState(); }
void VolumeListingDialog::cellDoubleClicked() { if (!table_->selectedItems().empty()) loadClicked(); }
FluidSynthGui::FluidSynthGui() : MessGui() { setWindowIcon(QIcon(":/fluidsynth0.png")); setupUi(this); channelListView->setRowCount(FS_MAX_NR_OF_CHANNELS); channelListView->setSelectionMode(QAbstractItemView::SingleSelection); QLabel *fluidLabel = new QLabel; fluidLabel->setPixmap(QIcon(":/fluidsynth1.png").pixmap(124, 45)); FluidGrid->addWidget(fluidLabel, 2, 1, Qt::AlignHCenter); ChorusType->setItemIcon(0, QIcon(*sineIcon)); ChorusType->setItemIcon(1, QIcon(*sawIcon)); //Connect socketnotifier to fifo QSocketNotifier* s = new QSocketNotifier(readFd, QSocketNotifier::Read); connect(s, SIGNAL(activated(int)), SLOT(readMessage(int))); connect (Push, SIGNAL (clicked()), SLOT(loadClicked())); lastdir = ""; ReverbFrame->setEnabled(true); ChorusFrame->setEnabled(true); if (!FS_DEBUG) dumpInfoButton->hide(); //Init reverb sliders: /*ReverbRoomSize->setValue((int)(16383*FS_PREDEF_REVERB_ROOMSIZE)); ReverbDamping->setValue((int)(16383*FS_PREDEF_REVERB_DAMPING)); ReverbWidth->setValue((int)(16383*FS_PREDEF_REVERB_WIDTH));*/ connect(Gain, SIGNAL(valueChanged(int)), SLOT(changeGain(int))); connect(dumpInfoButton , SIGNAL(clicked()), SLOT(dumpInfo())); connect(channelListView, SIGNAL(itemClicked(QTableWidgetItem*)), this, SLOT(channelItemClicked(QTableWidgetItem*))); connect(Reverb, SIGNAL (toggled(bool)), SLOT(toggleReverb(bool))); connect(ReverbLevel, SIGNAL (valueChanged (int)), SLOT(changeReverbLevel(int))); connect(ReverbRoomSize, SIGNAL (valueChanged (int)), SLOT(changeReverbRoomSize(int))); connect(ReverbDamping, SIGNAL (valueChanged (int)), SLOT(changeReverbDamping(int))); connect(ReverbWidth, SIGNAL (valueChanged (int)), SLOT(changeReverbWidth(int))); connect (Pop, SIGNAL (clicked()), SLOT(popClicked())); connect(sfListView, SIGNAL(itemClicked(QTreeWidgetItem*, int)), this, SLOT(sfItemClicked(QTreeWidgetItem*, int))); connect(Chorus, SIGNAL (toggled (bool)), SLOT(toggleChorus (bool))); connect(ChorusNumber, SIGNAL (valueChanged (int)), SLOT(changeChorusNumber (int))); connect(ChorusType, SIGNAL (activated (int)), SLOT(changeChorusType (int))); connect(ChorusSpeed, SIGNAL (valueChanged (int)), SLOT(changeChorusSpeed (int))); connect(ChorusDepth, SIGNAL (valueChanged (int)), SLOT(changeChorusDepth (int))); connect(ChorusLevel, SIGNAL (valueChanged (int)), SLOT(changeChorusLevel (int))); /* _notifier = new QSocketNotifier(0, QSocketNotifier::Read); connect(_notifier, SIGNAL(activated(int)), SLOT(readData(int))); //Setup the ListView sfListView->setColumnWidthMode(MUSE_FLUID_ID_COL,QListView::Maximum); sfListView->setColumnWidthMode(MUSE_FLUID_SFNAME_COL,QListView::Maximum); sfListView->setColumnAlignment(MUSE_FLUID_ID_COL,AlignHCenter); sfListView->setSorting(MUSE_FLUID_ID_COL,true); channelListView->setColumnAlignment(MUSE_FLUID_CHANNEL_COL,AlignHCenter); _currentlySelectedFont = -1; //No selected font to start with // The GUI-process is killed every time the window is shut, // need to get all parameters from the synth requestAllParameters(); */ //Clear channels for (int i=0; i<FS_MAX_NR_OF_CHANNELS; i++) channels[i] = FS_UNSPECIFIED_ID; // work around for probable QT/WM interaction bug. // for certain window managers, e.g xfce, this window is // is displayed although not specifically set to show(); // bug: 2811156 Softsynth GUI unclosable with XFCE4 (and a few others) show(); hide(); }