summaryrefslogtreecommitdiffstats
path: root/examples/client
diff options
context:
space:
mode:
Diffstat (limited to 'examples/client')
-rw-r--r--examples/client/CMakeLists.txt2
-rw-r--r--examples/client/console.cpp76
-rw-r--r--examples/client/console.h42
-rw-r--r--examples/client/main.cpp6
4 files changed, 122 insertions, 4 deletions
diff --git a/examples/client/CMakeLists.txt b/examples/client/CMakeLists.txt
index 3555b3e..97b5ad2 100644
--- a/examples/client/CMakeLists.txt
+++ b/examples/client/CMakeLists.txt
@@ -2,7 +2,7 @@ project(akonadi2_client)
2 2
3include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) 3include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
4 4
5add_executable(${PROJECT_NAME} main.cpp) 5add_executable(${PROJECT_NAME} main.cpp console.cpp)
6target_link_libraries(${PROJECT_NAME} akonadi2common) 6target_link_libraries(${PROJECT_NAME} akonadi2common)
7qt5_use_modules(${PROJECT_NAME} Widgets Network) 7qt5_use_modules(${PROJECT_NAME} Widgets Network)
8install(TARGETS ${PROJECT_NAME} ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) 8install(TARGETS ${PROJECT_NAME} ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
diff --git a/examples/client/console.cpp b/examples/client/console.cpp
new file mode 100644
index 0000000..8b4f1a5
--- /dev/null
+++ b/examples/client/console.cpp
@@ -0,0 +1,76 @@
1/*
2 * Copyright (C) 2014 Aaron Seigo <aseigo@kde.org>
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) version 3, or any
8 * later version accepted by the membership of KDE e.V. (or its
9 * successor approved by the membership of KDE e.V.), which shall
10 * act as a proxy defined in Section 6 of version 3 of the license.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21#include "console.h"
22
23#include <QFontDatabase>
24#include <QLabel>
25#include <QTextBrowser>
26#include <QVBoxLayout>
27
28static Console *s_console = 0;
29
30Console *Console::main()
31{
32 if (!s_console) {
33 s_console = new Console(QString());
34 }
35 return s_console;
36}
37
38Console::Console(const QString &title)
39 : QWidget(0)
40{
41 if (!s_console) {
42 s_console = this;
43 }
44
45 resize(1000, 1500);
46
47 QVBoxLayout *topLayout = new QVBoxLayout(this);
48
49 QLabel *titleLabel = new QLabel(this);
50 titleLabel->setText(title);
51 QFont font = titleLabel->font();
52 font.setWeight(QFont::Bold);
53 titleLabel->setFont(font);
54 titleLabel->setAlignment(Qt::AlignCenter);
55
56 QFont consoleFont = QFontDatabase::systemFont(QFontDatabase::FixedFont);
57 consoleFont.setPointSize(7);
58 m_textDisplay = new QTextBrowser(this);
59 m_textDisplay->document()->setDefaultFont(consoleFont);
60 topLayout->addWidget(titleLabel);
61 topLayout->addWidget(m_textDisplay, 10);
62
63 show();
64 m_timestamper.start();
65}
66
67Console::~Console()
68{
69
70}
71
72void Console::log(const QString &message)
73{
74 m_textDisplay->append(QString::number(m_timestamper.elapsed()).rightJustified(6) + ": " + message);
75}
76
diff --git a/examples/client/console.h b/examples/client/console.h
new file mode 100644
index 0000000..a6fef01
--- /dev/null
+++ b/examples/client/console.h
@@ -0,0 +1,42 @@
1/*
2 * Copyright (C) 2014 Aaron Seigo <aseigo@kde.org>
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) version 3, or any
8 * later version accepted by the membership of KDE e.V. (or its
9 * successor approved by the membership of KDE e.V.), which shall
10 * act as a proxy defined in Section 6 of version 3 of the license.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21#pragma once
22
23#include <QTime>
24#include <QWidget>
25
26class QTextBrowser;
27
28class Console : public QWidget
29{
30 Q_OBJECT
31public:
32 static Console *main();
33 Console(const QString &title);
34 ~Console();
35
36 void log(const QString &message);
37
38private:
39 QTextBrowser *m_textDisplay;
40 QTime m_timestamper;
41 static Console *s_output;
42};
diff --git a/examples/client/main.cpp b/examples/client/main.cpp
index b4cb081..5cd6141 100644
--- a/examples/client/main.cpp
+++ b/examples/client/main.cpp
@@ -21,15 +21,15 @@
21#include <QCommandLineParser> 21#include <QCommandLineParser>
22 22
23#include "common/commands.h" 23#include "common/commands.h"
24#include "common/console.h"
25#include "common/resourceaccess.h" 24#include "common/resourceaccess.h"
25#include "console.h"
26 26
27int main(int argc, char *argv[]) 27int main(int argc, char *argv[])
28{ 28{
29 QApplication app(argc, argv); 29 QApplication app(argc, argv);
30 30
31 new Akonadi2::Console("Akonadi2 Client"); 31 new Console("Akonadi2 Client");
32 Akonadi2::Console::main()->log(QString("PID: %1").arg(QCoreApplication::applicationPid())); 32 Console::main()->log(QString("PID: %1").arg(QCoreApplication::applicationPid()));
33 33
34 QCommandLineParser cliOptions; 34 QCommandLineParser cliOptions;
35 cliOptions.addPositionalArgument(QObject::tr("[resource]"), 35 cliOptions.addPositionalArgument(QObject::tr("[resource]"),