ktexteditor_wakatime v1.5.1
Kate plugin to interface with WakaTime.
Loading...
Searching...
No Matches
wakatimeplugin.h
1// SPDX-License-Identifier: MIT
2#pragma once
3
4#include <KTextEditor/Plugin>
5#include <KTextEditor/View>
6
7#include <QtCore/QDateTime>
8#include <QtCore/QLoggingCategory>
9#include <QtCore/QSettings>
10
11#include "wakatime.h"
12#include "wakatimeconfig.h"
13
14Q_DECLARE_LOGGING_CATEGORY(gLogWakaTimePlugin)
15
16namespace KTextEditor {
17 class Document;
18 class MainWindow;
19 class View;
20} // namespace KTextEditor
21
22class WakaTimeView;
23
25class WakaTimePlugin : public KTextEditor::Plugin {
26public:
28 explicit WakaTimePlugin(QObject *parent = nullptr, const QList<QVariant> & = QList<QVariant>());
30 virtual ~WakaTimePlugin();
31 QObject *createView(KTextEditor::MainWindow *mainWindow) override;
32
33private:
34 QList<WakaTimeView *> m_views;
35};
36
38class WakaTimeView : public QObject, public KXMLGUIClient {
39 Q_OBJECT
40
41public:
43 WakaTimeView(KTextEditor::MainWindow *);
44 ~WakaTimeView() override;
45
46private Q_SLOTS:
47 void slotConfigureWakaTime();
48 void slotDocumentModifiedChanged(KTextEditor::Document *);
49 void slotDocumentWrittenToDisk(KTextEditor::Document *);
50 void viewCreated(KTextEditor::View *);
51 void viewDestroyed(QObject *);
52
53private:
54 void connectDocumentSignals(KTextEditor::Document *);
55 void disconnectDocumentSignals(KTextEditor::Document *);
56 void sendAction(KTextEditor::Document *, bool);
57
58private:
59 KTextEditor::MainWindow *m_mainWindow;
60 WakaTime client;
61 WakaTimeConfig config;
62 // Initialised in constructor definition.
63 QList<KTextEditor::Document *> connectedDocuments;
64};
virtual ~WakaTimePlugin()
WakaTimePlugin(QObject *parent=nullptr, const QList< QVariant > &=QList< QVariant >())