noo/client/timetreedlg.cpp

82 lines
2.5 KiB
C++
Raw Permalink Normal View History

2018-09-24 22:25:14 +03:00
#include "timetreedlg.h"
#include "ui_timetreedlg.h"
#include "timetreemodel.h"
TimeTreeDlg::TimeTreeDlg(QWidget *parent, PTimeLine timeline, Settings& settings) :
2018-10-05 18:20:40 +03:00
QDialog(parent),
ui(new Ui::TimeTreeDlg),
mTimeline(timeline), mSettings(settings),
mTimeIntervalDlg(nullptr)
2018-09-24 22:25:14 +03:00
{
2018-10-05 18:20:40 +03:00
ui->setupUi(this);
mModel = new TimeTreeModel(mTimeline, mSettings);
ui->mTimeTree->setModel(mModel);
connect(ui->mAddIntervalButton, SIGNAL(clicked()), this, SLOT(addInterval()));
connect(ui->mRemoveIntervalButton, SIGNAL(clicked()), this, SLOT(removeInterval()));
2018-09-24 22:25:14 +03:00
}
TimeTreeDlg::~TimeTreeDlg()
{
2018-10-05 18:20:40 +03:00
delete ui;
2018-09-24 22:25:14 +03:00
}
void TimeTreeDlg::addInterval()
{
2018-10-05 18:20:40 +03:00
//QModelIndex index = ui->mTimeTree->currentIndex();
if (mTimeIntervalDlg)
{
mTimeIntervalDlg->show();
mTimeIntervalDlg->setFocus();
}
else
{
QDateTime current = QDateTime::currentDateTime();
//time_t t = current.toTime_t();
//helper::time time_of_day = helper::time::fromTimestamp(t, helper::date::To_LocalTime);
2018-09-24 22:25:14 +03:00
2018-10-05 18:20:40 +03:00
mTimeIntervalDlg = new TimeIntervalDlg(this, mModel, mTimeline, TimeIntervalDlg::Type::New, TimeRecord());
connect(mTimeIntervalDlg, SIGNAL(accepted()), this, SLOT(onNewIntervalAccepted()));
2018-09-24 22:25:14 +03:00
2018-10-05 18:20:40 +03:00
mTimeIntervalDlg->setStartDate(current.addSecs(-600));
mTimeIntervalDlg->setFinishDate(current);
//mTimeIntervalDlg->setModal(false);
mTimeIntervalDlg->show();
mTimeIntervalDlg = nullptr;
2018-10-05 18:20:40 +03:00
}
2018-09-24 22:25:14 +03:00
}
void TimeTreeDlg::removeInterval()
{
2018-10-05 18:20:40 +03:00
QModelIndex index = ui->mTimeTree->currentIndex();
if (!index.isValid())
return;
2018-09-24 22:25:14 +03:00
2018-10-05 18:20:40 +03:00
mModel->cutInterval(index);
// Find interval in timeline by id
// Compare if return from findInterval() is whole interval or part of existing
// Depending on check result - delete or update existing interval
2018-09-24 22:25:14 +03:00
}
void TimeTreeDlg::changeInterval()
{
2018-10-05 18:20:40 +03:00
QModelIndex index = ui->mTimeTree->currentIndex();
if (!index.isValid())
return;
2018-09-24 22:25:14 +03:00
2018-10-05 18:20:40 +03:00
QDateTime current = QDateTime::currentDateTime();
2018-09-24 22:25:14 +03:00
2018-10-05 18:20:40 +03:00
mTimeIntervalDlg = new TimeIntervalDlg(this, mModel, mTimeline, TimeIntervalDlg::Type::Change, TimeRecord());
connect(mTimeIntervalDlg, SIGNAL(accepted()), this, SLOT(onNewIntervalAccepted()));
2018-09-24 22:25:14 +03:00
2018-10-05 18:20:40 +03:00
mTimeIntervalDlg->setStartDate(current.addSecs(-600));
mTimeIntervalDlg->setFinishDate(current);
mTimeIntervalDlg->setModal(false);
mTimeIntervalDlg->show();
2018-09-24 22:25:14 +03:00
}
void TimeTreeDlg::onNewIntervalAccepted()
{
2018-10-05 18:20:40 +03:00
delete mModel;
ui->mTimeTree->setModel(mModel = new TimeTreeModel(mTimeline, mSettings));
2018-09-24 22:25:14 +03:00
}