Example #1
0
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?";
}
Example #2
0
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 = "";
}
Example #3
0
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("");
    }
}