QWidget *EventsWindow::createTimeline() { QWidget *container = new QWidget; QGridLayout *layout = new QGridLayout(container); m_timeline = new EventTimelineWidget; m_timeline->setContextMenuPolicy(Qt::CustomContextMenu); m_timeline->setModel(m_resultsView->eventsModel()); m_timelineZoom = new QSlider(Qt::Horizontal); m_timelineZoom->setRange(0, 100); m_timelineZoom->setValue(0); connect(m_timeline, SIGNAL(customContextMenuRequested(QPoint)), SLOT(eventContextMenu(QPoint))); connect(m_timeline, SIGNAL(doubleClicked(QModelIndex)), SLOT(showEvent(QModelIndex))); connect(m_timelineZoom, SIGNAL(valueChanged(int)), SLOT(timelineSliderChanged(int))); layout->addWidget(m_timeline, 0, 0, 1, 2); QLabel *label = new QLabel(tr("Zoom:")); layout->addWidget(label, 1, 0, 1, 1, Qt::AlignLeft | Qt::AlignVCenter); layout->addWidget(m_timelineZoom, 1, 1); return container; }
QWidget * EventsWindow::createResultsView() { m_resultsView = new EventsView; connect(m_eventsUpdater, SIGNAL(loadingStarted()), m_resultsView, SLOT(loadingStarted())); connect(m_eventsUpdater, SIGNAL(loadingFinished()), m_resultsView, SLOT(loadingFinished())); EventsModel *eventsModel = new EventsModel(m_serverRepository, this); m_resultsView->setModel(eventsModel, m_eventsUpdater->isUpdating()); connect(m_eventsUpdater, SIGNAL(serverEventsAvailable(DVRServer*,QList<EventData*>)), eventsModel, SLOT(setServerEvents(DVRServer*,QList<EventData*>))); m_resultsView->setFrameStyle(QFrame::NoFrame); m_resultsView->setContextMenuPolicy(Qt::CustomContextMenu); connect(m_resultsView, SIGNAL(customContextMenuRequested(QPoint)), SLOT(eventContextMenu(QPoint))); connect(m_resultsView, SIGNAL(doubleClicked(QModelIndex)), SLOT(showServerEvent(QModelIndex))); QSettings settings; m_resultsView->header()->restoreState(settings.value(QLatin1String("ui/events/viewHeader")).toByteArray()); m_resultsView->header()->setSortIndicatorShown(true); m_resultsView->header()->setSortIndicator(EventsModel::DateColumn, Qt::DescendingOrder); connect(m_resultsView->header(), SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)), m_resultsView, SLOT(sortEvents(int,Qt::SortOrder))); return m_resultsView; }
QWidget *EventsWindow::createResultsView() { m_resultsView = new EventsView; m_resultsView->setModel(new EventsModel(bcApp->serverRepository(), this)); m_resultsView->setFrameStyle(QFrame::NoFrame); m_resultsView->setContextMenuPolicy(Qt::CustomContextMenu); connect(m_resultsView, SIGNAL(customContextMenuRequested(QPoint)), SLOT(eventContextMenu(QPoint))); connect(m_resultsView, SIGNAL(doubleClicked(QModelIndex)), SLOT(showEvent(QModelIndex))); QSettings settings; m_resultsView->header()->restoreState(settings.value(QLatin1String("ui/events/viewHeader")).toByteArray()); m_resultsView->header()->setSortIndicatorShown(true); m_resultsView->header()->setSortIndicator(EventsModel::DateColumn, Qt::DescendingOrder); m_resultsView->setSortingEnabled(true); return m_resultsView; }