DiaryWindow::DiaryWindow(MainWindow *mainWindow) : GcWindow(mainWindow), mainWindow(mainWindow), active(false) { setInstanceName("Diary Window"); setControls(NULL); // get config fieldDefinitions = mainWindow->rideMetadata()->getFields(); QVBoxLayout *vlayout = new QVBoxLayout(this); // controls QHBoxLayout *controls = new QHBoxLayout; QFont bold; bold.setPointSize(14); bold.setWeight(QFont::Bold); title = new QLabel("", this); title->setAlignment(Qt::AlignCenter | Qt::AlignVCenter); title->setFont(bold); QIcon prevIcon(":images/toolbar/back_alt.png"); QIcon nextIcon(":images/toolbar/forward_alt.png"); next = new QPushButton(nextIcon, "", this); prev = new QPushButton(prevIcon, "", this); #ifdef Q_OS_MAC next->setFlat(true); prev->setFlat(true); #endif #if 0 // viewMode - monthly or weekly viewMode = new QComboBox; viewMode->addItem("View Month"); viewMode->addItem("View Week"); // we can add more later... viewMode->addItem("View Ride"); // we can add more later... viewMode->setFixedWidth(120); viewMode->setCurrentIndex(appsettings->cvalue(mainWindow->cyclist, GC_DIARY_VIEW, "1").toInt()); #endif controls->addWidget(prev); controls->addWidget(next); controls->addStretch(); controls->addWidget(title, Qt::AlignCenter | Qt::AlignVCenter); controls->addStretch(); #if 0 controls->addWidget(viewMode); #endif vlayout->addLayout(controls); // monthly view via QCalendarWidget calendarModel = new GcCalendarModel(this, &fieldDefinitions, mainWindow); calendarModel->setSourceModel(mainWindow->listView->sqlModel); monthlyView = new QTableView(this); monthlyView->setItemDelegate(new GcCalendarDelegate); monthlyView->setModel(calendarModel); monthlyView->horizontalHeader()->setResizeMode(QHeaderView::Stretch); monthlyView->verticalHeader()->setResizeMode(QHeaderView::Stretch); monthlyView->verticalHeader()->hide(); monthlyView->viewport()->installEventFilter(this); monthlyView->setGridStyle(Qt::DotLine); monthlyView->setFrameStyle(QFrame::NoFrame); // weekly view via QxtScheduleView weeklyView = new QxtScheduleView; weeklyViewProxy = new QxtScheduleViewProxy(this, &fieldDefinitions, mainWindow); weeklyViewProxy->setSourceModel(mainWindow->listView->sqlModel); weeklyView->setCurrentZoomDepth (30, Qxt::Minute); weeklyView->setDateRange(QDate(2010,9,2), QDate(2010,9,8)); weeklyView->setModel(weeklyViewProxy); RideSummaryWindow *rideSummary = new RideSummaryWindow(mainWindow); allViews = new QStackedWidget(this); allViews->addWidget(monthlyView); allViews->addWidget(weeklyView); allViews->addWidget(rideSummary); //allViews->setCurrentIndex(viewMode->currentIndex()); allViews->setCurrentIndex(0); vlayout->addWidget(allViews); //connect(viewMode, SIGNAL(currentIndexChanged(int)), allViews, SLOT(setCurrentIndex(int))); //connect(viewMode, SIGNAL(currentIndexChanged(int)), this, SLOT(setDefaultView(int))); //connect(viewMode, SIGNAL(currentIndexChanged(int)), this, SLOT(rideSelected())); connect(this, SIGNAL(rideItemChanged(RideItem*)), this, SLOT(rideSelected())); //connect(mainWindow, SIGNAL(rideSelected()), this, SLOT(rideSelected())); connect(mainWindow, SIGNAL(configChanged()), this, SLOT(configChanged())); connect(weeklyView, SIGNAL(indexSelected(QModelIndex)), this, SLOT(weeklySelected(QModelIndex))); connect(next, SIGNAL(clicked()), this, SLOT(nextClicked())); connect(prev, SIGNAL(clicked()), this, SLOT(prevClicked())); }
DiaryWindow::DiaryWindow(Context *context) : GcWindow(context), context(context), active(false) { setInstanceName("Diary Window"); setControls(NULL); // get config fieldDefinitions = context->athlete->rideMetadata()->getFields(); QVBoxLayout *vlayout = new QVBoxLayout(this); // controls QHBoxLayout *controls = new QHBoxLayout; QFont bold; bold.setPointSize(14); bold.setWeight(QFont::Bold); title = new QLabel("", this); title->setAlignment(Qt::AlignCenter | Qt::AlignVCenter); title->setFont(bold); QIcon prevIcon(":images/toolbar/back_alt.png"); QIcon nextIcon(":images/toolbar/forward_alt.png"); next = new QPushButton(nextIcon, "", this); prev = new QPushButton(prevIcon, "", this); #ifdef Q_OS_MAC next->setFlat(true); prev->setFlat(true); #endif controls->addWidget(prev); controls->addWidget(next); controls->addStretch(); controls->addWidget(title, Qt::AlignCenter | Qt::AlignVCenter); controls->addStretch(); vlayout->addLayout(controls); // monthly view via QCalendarWidget calendarModel = new GcCalendarModel(this, &fieldDefinitions, context); calendarModel->setSourceModel(context->athlete->sqlModel); monthlyView = new QTableView(this); monthlyView->setItemDelegate(new GcCalendarDelegate); monthlyView->setModel(calendarModel); monthlyView->horizontalHeader()->setResizeMode(QHeaderView::Stretch); monthlyView->verticalHeader()->setResizeMode(QHeaderView::Stretch); monthlyView->verticalHeader()->hide(); monthlyView->viewport()->installEventFilter(this); monthlyView->setGridStyle(Qt::DotLine); monthlyView->setFrameStyle(QFrame::NoFrame); allViews = new QStackedWidget(this); allViews->addWidget(monthlyView); allViews->setCurrentIndex(0); vlayout->addWidget(allViews); connect(this, SIGNAL(rideItemChanged(RideItem*)), this, SLOT(rideSelected())); connect(context, SIGNAL(filterChanged()), this, SLOT(rideSelected())); connect(context, SIGNAL(configChanged()), this, SLOT(configChanged())); connect(next, SIGNAL(clicked()), this, SLOT(nextClicked())); connect(prev, SIGNAL(clicked()), this, SLOT(prevClicked())); }