void MetaWindow::setupUi(){ dataStore = new DataStore(serverConnection, this); playbackWidget = new PlaybackWidget(dataStore, this); libraryModel = new LibraryModel(this, dataStore); libraryView = new LibraryView(libraryModel, this); eventWidget = new EventWidget(dataStore, this); activityList = new ActivityList(dataStore); contentStack = new QStackedWidget(this); contentStack->addWidget(libraryView); contentStack->addWidget(eventWidget); contentStack->setCurrentWidget(libraryView); QHBoxLayout *contentLayout = new QHBoxLayout; contentLayout->addWidget(activityList); contentLayout->addWidget(contentStack,6); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addLayout(contentLayout,6); mainLayout->addWidget(playbackWidget); QWidget* widget = new QWidget; widget->setLayout(mainLayout); setCentralWidget(widget); setWindowTitle("UDJ"); connect( activityList, SIGNAL(libraryClicked()), this, SLOT(displayLibrary())); connect( activityList, SIGNAL(eventClicked()), this, SLOT(displayEventWidget())); connect( activityList, SIGNAL(playlistClicked(playlist_id_t)), this, SLOT(displayPlaylist(playlist_id_t))); resize(800,600); }
// Figure out which event has been selected. // Relies on drawnEvents which is set by child classes. void TimelineVis::mouseDoubleClickEvent(QMouseEvent * event) { if (!visProcessed) return; int x = event->x(); int y = event->y(); for (QMap<Event *, QRect>::Iterator evt = drawnEvents.begin(); evt != drawnEvents.end(); ++evt) { if (evt.value().contains(x,y)) // We've found the event { if (evt.key() == selected_event) // We were in this event { if (options->showAggregateSteps) { // we're in the aggregate event if (x < evt.value().x() + evt.value().width() / 2) { if (selected_aggregate) { selected_event = NULL; selected_aggregate = false; } else { selected_aggregate = true; } } else // We're in the normal event { if (selected_aggregate) { selected_aggregate = false; } else { selected_event = NULL; } } } else selected_event = NULL; } else // This is a new event to us { // we're in the aggregate event if (options->showAggregateSteps && x < evt.value().x() + evt.value().width() / 2) { selected_aggregate = true; } else { selected_aggregate = false; } selected_event = evt.key(); } break; } } overdraw_selected = false; if (Qt::MetaModifier && event->modifiers() && selected_event && !selected_aggregate) { overdraw_selected = true; } changeSource = true; emit eventClicked(selected_event, selected_aggregate, overdraw_selected); repaint(); }
void CheckBox::clicked(sf::Event::MouseButtonEvent & args) { this->checked = !this->checked; this->box.setTextureRect(this->tileset.getTile(this->checked ? CHECKED : UNCHECKED)); eventClicked().invoke(*this, args); }