TimerWidget::TimerWidget(QWidget *parent) : QWidget(parent), ui(new Ui::TimerWidget), timer(new QTimer(this)), duration(0), timeEntryAutocompleteNeedsUpdate(false) { ui->setupUi(this); connect(TogglApi::instance, SIGNAL(displayStoppedTimerState()), this, SLOT(displayStoppedTimerState())); connect(TogglApi::instance, SIGNAL(displayRunningTimerState(TimeEntryView*)), // NOLINT this, SLOT(displayRunningTimerState(TimeEntryView*))); // NOLINT connect(TogglApi::instance, SIGNAL(displayMinitimerAutocomplete(QVector<AutocompleteView*>)), // NOLINT this, SLOT(displayMinitimerAutocomplete(QVector<AutocompleteView*>))); // NOLINT connect(qApp, SIGNAL(focusChanged(QWidget*, QWidget*)), this, SLOT(focusChanged(QWidget*, QWidget*))); connect(timer, SIGNAL(timeout()), this, SLOT(timeout())); connect(ui->description->lineEdit(), SIGNAL(returnPressed()), this, SLOT(descriptionReturnPressed())); ui->description->completer()->setCaseSensitivity(Qt::CaseInsensitive); ui->description->completer()->setCompletionMode( QCompleter::PopupCompletion); ui->description->completer()->setMaxVisibleItems(20); descriptionPlaceholder = "What are you doing?"; }
TimerWidget::TimerWidget(QWidget *parent) : QFrame(parent), ui(new Ui::TimerWidget), timer(new QTimer(this)), duration(0), project(""), tagsHolder(""), timeEntryAutocompleteNeedsUpdate(false), descriptionModel(new AutocompleteListModel(this)), timeEntry(nullptr), selectedTaskId(0), selectedProjectId(0) { ui->setupUi(this); ui->start->installEventFilter(this); connect(TogglApi::instance, SIGNAL(displayStoppedTimerState()), this, SLOT(displayStoppedTimerState())); connect(TogglApi::instance, SIGNAL(displayRunningTimerState(TimeEntryView*)), // NOLINT this, SLOT(displayRunningTimerState(TimeEntryView*))); // NOLINT connect(TogglApi::instance, SIGNAL(displayMinitimerAutocomplete(QVector<AutocompleteView*>)), // NOLINT this, SLOT(displayMinitimerAutocomplete(QVector<AutocompleteView*>))); // NOLINT connect(qApp, SIGNAL(focusChanged(QWidget*, QWidget*)), this, SLOT(focusChanged(QWidget*, QWidget*))); connect(timer, SIGNAL(timeout()), this, SLOT(timeout())); connect(ui->description, SIGNAL(returnPressed()), this, SLOT(descriptionReturnPressed())); connect(ui->description, SIGNAL(projectSelected(QString,uint64_t,QString,QString,uint64_t)), this, SLOT(descriptionProjectSelected(QString,uint64_t,QString,QString,uint64_t))); connect(ui->description, SIGNAL(billableChanged(bool)), this, SLOT(descriptionBillableChanged(bool))); connect(ui->description, SIGNAL(tagsChanged(QString)), this, SLOT(descriptionTagsChanged(QString))); connect(ui->description, &QComboBox::editTextChanged, this, &TimerWidget::updateCoverLabel); connect(ui->deleteProject, &QPushButton::clicked, this, &TimerWidget::clearProject); connect(ui->deleteTask, &QPushButton::clicked, this, &TimerWidget::clearTask); ui->description->setModel(descriptionModel); ui->taskFrame->setVisible(false); ui->projectFrame->setVisible(false); ui->billable->setVisible(false); ui->tags->setVisible(false); descriptionPlaceholder = "What are you doing?"; tagsHolder = ""; }
void TimerWidget::focusChanged(QWidget *old, QWidget *now) { if (old == ui->description) { if (ui->description->currentText().length() == 0) { ui->description->setEditText(descriptionPlaceholder); } if (timeEntryAutocompleteNeedsUpdate) { displayMinitimerAutocomplete(timeEntryAutocompleteUpdate); } } if (now == ui->description && ui->description->currentText() == descriptionPlaceholder) { ui->description->setEditText(""); } }