ktexteditor_wakatime v1.5.1
Kate plugin to interface with WakaTime.
Loading...
Searching...
No Matches
wakatimeconfig.h
1// SPDX-License-Identifier: MIT
2#pragma once
3
4#include <QtCore/QDir>
5#include <QtCore/QLoggingCategory>
6#include <QtCore/QObject>
7#include <QtCore/QSettings>
8#include <QtWidgets/QDialog>
9
10#include <KLocalizedString>
11
12#include "ui_configdialog.h"
13
14Q_DECLARE_LOGGING_CATEGORY(gLogWakaTimeConfig)
15
16const auto kSettingsKeyApiKey = QStringLiteral("settings/api_key");
17const auto kSettingsKeyApiUrl = QStringLiteral("settings/api_url");
18const auto kSettingsKeyHideFilenames = QStringLiteral("settings/hidefilenames");
19
24class WakaTimeConfig : public QObject {
25 Q_OBJECT
26#ifdef TESTING
27 friend class WakaTimeConfigTest;
28#endif
29
30public:
31 explicit WakaTimeConfig(QObject *parent = nullptr) {
32 Q_UNUSED(parent);
33 config_ =
34 new QSettings(QDir::homePath() + QDir::separator() + QStringLiteral(".wakatime.cfg"),
35 QSettings::IniFormat,
36 this);
37 };
38 ~WakaTimeConfig() override {
39 delete config_;
40 delete dialog_;
41 };
45 QString apiKey() const {
46 return config_->value(kSettingsKeyApiKey).toString();
47 };
53 void setApiKey(const QString &key) {
54 config_->setValue(kSettingsKeyApiKey, key);
55 };
61 QString apiUrl() const {
62 return config_->value(kSettingsKeyApiUrl, QStringLiteral("https://wakatime.com/api/v1/"))
63 .toString();
64 };
70 void setApiUrl(const QString &url) {
71 config_->setValue(kSettingsKeyApiUrl, url);
72 };
78 bool hideFilenames() const {
79 return config_->value(kSettingsKeyHideFilenames, false).toBool();
80 };
86 void setHideFilenames(bool hide) {
87 config_->setValue(kSettingsKeyHideFilenames, hide);
88 };
90 void save() const {
91 config_->sync();
92 };
99 void configureDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags());
101 void showDialog();
102
103private:
104 QSettings *config_ = nullptr;
105 QDialog *dialog_ = nullptr;
106 Ui::ConfigureWakaTimeDialog ui_;
107};
void setApiKey(const QString &key)
QString apiUrl() const
void setApiUrl(const QString &url)
QString apiKey() const
void setHideFilenames(bool hide)
bool hideFilenames() const
void configureDialog(QWidget *parent=nullptr, Qt::WindowFlags flags=Qt::WindowFlags())
void save() const