Initial commit

This commit is contained in:
Dmytro Bogovych 2018-09-25 22:55:14 +03:00
parent bf0521e91a
commit ac361789ae
157 changed files with 173287 additions and 0 deletions

BIN
Litt-osx-0.8.16.dmg Normal file

Binary file not shown.

BIN
Litt-osx-0.8.16.zip Normal file

Binary file not shown.

BIN
Litt-osx-0.8.17.dmg Normal file

Binary file not shown.

BIN
Litt-osx-0.8.17.zip Normal file

Binary file not shown.

36
client/.qmake.stash Normal file
View File

@ -0,0 +1,36 @@
QMAKE_XCODE_DEVELOPER_PATH = /Applications/Xcode.app/Contents/Developer
QMAKE_XCODE_VERSION = 7.0
QMAKE_MAC_SDK.macosx.path = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
QMAKE_MAC_SDK.macosx.platform_path = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform
QMAKE_MAC_SDK.macosx.version = 10.11
QMAKE_MAC_SDK.macx-clang.macosx.QMAKE_CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
QMAKE_MAC_SDK.macx-clang.macosx.QMAKE_CXX = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
QMAKE_MAC_SDK.macx-clang.macosx.QMAKE_FIX_RPATH = \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool \
-id
QMAKE_MAC_SDK.macx-clang.macosx.QMAKE_AR = \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar \
cq
QMAKE_MAC_SDK.macx-clang.macosx.QMAKE_RANLIB = \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib \
-s
QMAKE_MAC_SDK.macx-clang.macosx.QMAKE_LINK = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
QMAKE_MAC_SDK.macx-clang.macosx.QMAKE_LINK_SHLIB = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
QMAKE_MAC_SDK.macosx.platform_name = macosx
QMAKE_MAC_SDK.macosx10.12.path = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk
QMAKE_MAC_SDK.macosx10.12.platform_path = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform
QMAKE_MAC_SDK.macosx10.12.version = 10.12
QMAKE_MAC_SDK.macx-clang.macosx10.12.QMAKE_CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
QMAKE_MAC_SDK.macx-clang.macosx10.12.QMAKE_CXX = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
QMAKE_MAC_SDK.macx-clang.macosx10.12.QMAKE_FIX_RPATH = \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool \
-id
QMAKE_MAC_SDK.macx-clang.macosx10.12.QMAKE_AR = \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar \
cq
QMAKE_MAC_SDK.macx-clang.macosx10.12.QMAKE_RANLIB = \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib \
-s
QMAKE_MAC_SDK.macx-clang.macosx10.12.QMAKE_LINK = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
QMAKE_MAC_SDK.macx-clang.macosx10.12.QMAKE_LINK_SHLIB = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
QMAKE_MAC_SDK.macosx10.12.platform_name = macosx

20
client/Chooka.sln Normal file
View File

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "notetaker", "notetaker.vcxproj", "{665CBB2D-81AD-4E03-ADFA-40283D59A2AB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{665CBB2D-81AD-4E03-ADFA-40283D59A2AB}.Debug|Win32.ActiveCfg = Debug|Win32
{665CBB2D-81AD-4E03-ADFA-40283D59A2AB}.Debug|Win32.Build.0 = Debug|Win32
{665CBB2D-81AD-4E03-ADFA-40283D59A2AB}.Release|Win32.ActiveCfg = Release|Win32
{665CBB2D-81AD-4E03-ADFA-40283D59A2AB}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

111
client/moc_aboutdlg.cpp Normal file
View File

@ -0,0 +1,111 @@
/****************************************************************************
** Meta object code from reading C++ file 'aboutdlg.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "aboutdlg.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'aboutdlg.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_AboutDlg_t {
QByteArrayData data[3];
char stringdata0[22];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_AboutDlg_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_AboutDlg_t qt_meta_stringdata_AboutDlg = {
{
QT_MOC_LITERAL(0, 0, 8), // "AboutDlg"
QT_MOC_LITERAL(1, 9, 11), // "showLicense"
QT_MOC_LITERAL(2, 21, 0) // ""
},
"AboutDlg\0showLicense\0"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_AboutDlg[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 19, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void,
0 // eod
};
void AboutDlg::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
AboutDlg *_t = static_cast<AboutDlg *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->showLicense(); break;
default: ;
}
}
Q_UNUSED(_a);
}
const QMetaObject AboutDlg::staticMetaObject = {
{ &QDialog::staticMetaObject, qt_meta_stringdata_AboutDlg.data,
qt_meta_data_AboutDlg, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *AboutDlg::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *AboutDlg::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_AboutDlg.stringdata0))
return static_cast<void*>(const_cast< AboutDlg*>(this));
return QDialog::qt_metacast(_clname);
}
int AboutDlg::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
QT_END_MOC_NAMESPACE

View File

@ -0,0 +1,89 @@
/****************************************************************************
** Meta object code from reading C++ file 'attachmentsdialog.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "attachmentsdialog.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'attachmentsdialog.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_AttachmentsDialog_t {
QByteArrayData data[1];
char stringdata0[18];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_AttachmentsDialog_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_AttachmentsDialog_t qt_meta_stringdata_AttachmentsDialog = {
{
QT_MOC_LITERAL(0, 0, 17) // "AttachmentsDialog"
},
"AttachmentsDialog"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_AttachmentsDialog[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void AttachmentsDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
const QMetaObject AttachmentsDialog::staticMetaObject = {
{ &QDialog::staticMetaObject, qt_meta_stringdata_AttachmentsDialog.data,
qt_meta_data_AttachmentsDialog, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *AttachmentsDialog::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *AttachmentsDialog::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_AttachmentsDialog.stringdata0))
return static_cast<void*>(const_cast< AttachmentsDialog*>(this));
return QDialog::qt_metacast(_clname);
}
int AttachmentsDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
return _id;
}
QT_END_MOC_NAMESPACE

View File

@ -0,0 +1,197 @@
/****************************************************************************
** Meta object code from reading C++ file 'attachmentslist.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "attachmentslist.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'attachmentslist.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_AttachmentsListModel_t {
QByteArrayData data[1];
char stringdata0[21];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_AttachmentsListModel_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_AttachmentsListModel_t qt_meta_stringdata_AttachmentsListModel = {
{
QT_MOC_LITERAL(0, 0, 20) // "AttachmentsListModel"
},
"AttachmentsListModel"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_AttachmentsListModel[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void AttachmentsListModel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
const QMetaObject AttachmentsListModel::staticMetaObject = {
{ &QAbstractListModel::staticMetaObject, qt_meta_stringdata_AttachmentsListModel.data,
qt_meta_data_AttachmentsListModel, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *AttachmentsListModel::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *AttachmentsListModel::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_AttachmentsListModel.stringdata0))
return static_cast<void*>(const_cast< AttachmentsListModel*>(this));
return QAbstractListModel::qt_metacast(_clname);
}
int AttachmentsListModel::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QAbstractListModel::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
return _id;
}
struct qt_meta_stringdata_AttachmentsList_t {
QByteArrayData data[8];
char stringdata0[82];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_AttachmentsList_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_AttachmentsList_t qt_meta_stringdata_AttachmentsList = {
{
QT_MOC_LITERAL(0, 0, 15), // "AttachmentsList"
QT_MOC_LITERAL(1, 16, 14), // "contextualMenu"
QT_MOC_LITERAL(2, 31, 0), // ""
QT_MOC_LITERAL(3, 32, 5), // "point"
QT_MOC_LITERAL(4, 38, 10), // "importFile"
QT_MOC_LITERAL(5, 49, 10), // "exportFile"
QT_MOC_LITERAL(6, 60, 10), // "deleteFile"
QT_MOC_LITERAL(7, 71, 10) // "renameFile"
},
"AttachmentsList\0contextualMenu\0\0point\0"
"importFile\0exportFile\0deleteFile\0"
"renameFile"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_AttachmentsList[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
5, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 1, 39, 2, 0x0a /* Public */,
4, 0, 42, 2, 0x0a /* Public */,
5, 0, 43, 2, 0x0a /* Public */,
6, 0, 44, 2, 0x0a /* Public */,
7, 0, 45, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void, QMetaType::QPoint, 3,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void AttachmentsList::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
AttachmentsList *_t = static_cast<AttachmentsList *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->contextualMenu((*reinterpret_cast< const QPoint(*)>(_a[1]))); break;
case 1: _t->importFile(); break;
case 2: _t->exportFile(); break;
case 3: _t->deleteFile(); break;
case 4: _t->renameFile(); break;
default: ;
}
}
}
const QMetaObject AttachmentsList::staticMetaObject = {
{ &QWidget::staticMetaObject, qt_meta_stringdata_AttachmentsList.data,
qt_meta_data_AttachmentsList, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *AttachmentsList::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *AttachmentsList::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_AttachmentsList.stringdata0))
return static_cast<void*>(const_cast< AttachmentsList*>(this));
return QWidget::qt_metacast(_clname);
}
int AttachmentsList::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWidget::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 5)
qt_static_metacall(this, _c, _id, _a);
_id -= 5;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 5)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 5;
}
return _id;
}
QT_END_MOC_NAMESPACE

138
client/moc_finddialog.cpp Normal file
View File

@ -0,0 +1,138 @@
/****************************************************************************
** Meta object code from reading C++ file 'finddialog.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "finddialog.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'finddialog.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_FindInTasksDialog_t {
QByteArrayData data[9];
char stringdata0[99];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_FindInTasksDialog_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_FindInTasksDialog_t qt_meta_stringdata_FindInTasksDialog = {
{
QT_MOC_LITERAL(0, 0, 17), // "FindInTasksDialog"
QT_MOC_LITERAL(1, 18, 11), // "startSearch"
QT_MOC_LITERAL(2, 30, 0), // ""
QT_MOC_LITERAL(3, 31, 14), // "resultSelected"
QT_MOC_LITERAL(4, 46, 5), // "index"
QT_MOC_LITERAL(5, 52, 14), // "searchComplete"
QT_MOC_LITERAL(6, 67, 11), // "onNewResult"
QT_MOC_LITERAL(7, 79, 14), // "FindResultItem"
QT_MOC_LITERAL(8, 94, 4) // "item"
},
"FindInTasksDialog\0startSearch\0\0"
"resultSelected\0index\0searchComplete\0"
"onNewResult\0FindResultItem\0item"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_FindInTasksDialog[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
4, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 34, 2, 0x0a /* Public */,
3, 1, 35, 2, 0x0a /* Public */,
5, 0, 38, 2, 0x0a /* Public */,
6, 1, 39, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void,
QMetaType::Void, QMetaType::QModelIndex, 4,
QMetaType::Void,
QMetaType::Void, 0x80000000 | 7, 8,
0 // eod
};
void FindInTasksDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
FindInTasksDialog *_t = static_cast<FindInTasksDialog *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->startSearch(); break;
case 1: _t->resultSelected((*reinterpret_cast< const QModelIndex(*)>(_a[1]))); break;
case 2: _t->searchComplete(); break;
case 3: _t->onNewResult((*reinterpret_cast< const FindResultItem(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
switch (_id) {
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
case 3:
switch (*reinterpret_cast<int*>(_a[1])) {
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
case 0:
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< FindResultItem >(); break;
}
break;
}
}
}
const QMetaObject FindInTasksDialog::staticMetaObject = {
{ &QDialog::staticMetaObject, qt_meta_stringdata_FindInTasksDialog.data,
qt_meta_data_FindInTasksDialog, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *FindInTasksDialog::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *FindInTasksDialog::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_FindInTasksDialog.stringdata0))
return static_cast<void*>(const_cast< FindInTasksDialog*>(this));
return QDialog::qt_metacast(_clname);
}
int FindInTasksDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 4)
qt_static_metacall(this, _c, _id, _a);
_id -= 4;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 4)
qt_static_metacall(this, _c, _id, _a);
_id -= 4;
}
return _id;
}
QT_END_MOC_NAMESPACE

261
client/moc_findsupport.cpp Normal file
View File

@ -0,0 +1,261 @@
/****************************************************************************
** Meta object code from reading C++ file 'findsupport.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "findsupport.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'findsupport.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_FindResultsModel_t {
QByteArrayData data[5];
char stringdata0[46];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_FindResultsModel_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_FindResultsModel_t qt_meta_stringdata_FindResultsModel = {
{
QT_MOC_LITERAL(0, 0, 16), // "FindResultsModel"
QT_MOC_LITERAL(1, 17, 7), // "addItem"
QT_MOC_LITERAL(2, 25, 0), // ""
QT_MOC_LITERAL(3, 26, 14), // "FindResultItem"
QT_MOC_LITERAL(4, 41, 4) // "item"
},
"FindResultsModel\0addItem\0\0FindResultItem\0"
"item"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_FindResultsModel[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 1, 19, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void, 0x80000000 | 3, 4,
0 // eod
};
void FindResultsModel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
FindResultsModel *_t = static_cast<FindResultsModel *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->addItem((*reinterpret_cast< const FindResultItem(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
switch (_id) {
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
case 0:
switch (*reinterpret_cast<int*>(_a[1])) {
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
case 0:
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< FindResultItem >(); break;
}
break;
}
}
}
const QMetaObject FindResultsModel::staticMetaObject = {
{ &QAbstractTableModel::staticMetaObject, qt_meta_stringdata_FindResultsModel.data,
qt_meta_data_FindResultsModel, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *FindResultsModel::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *FindResultsModel::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_FindResultsModel.stringdata0))
return static_cast<void*>(const_cast< FindResultsModel*>(this));
return QAbstractTableModel::qt_metacast(_clname);
}
int FindResultsModel::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QAbstractTableModel::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
}
return _id;
}
struct qt_meta_stringdata_TaskSearch_t {
QByteArrayData data[6];
char stringdata0[66];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_TaskSearch_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_TaskSearch_t qt_meta_stringdata_TaskSearch = {
{
QT_MOC_LITERAL(0, 0, 10), // "TaskSearch"
QT_MOC_LITERAL(1, 11, 18), // "newResultAvailable"
QT_MOC_LITERAL(2, 30, 0), // ""
QT_MOC_LITERAL(3, 31, 14), // "FindResultItem"
QT_MOC_LITERAL(4, 46, 4), // "item"
QT_MOC_LITERAL(5, 51, 14) // "searchComplete"
},
"TaskSearch\0newResultAvailable\0\0"
"FindResultItem\0item\0searchComplete"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_TaskSearch[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
2, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
2, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 24, 2, 0x06 /* Public */,
5, 0, 27, 2, 0x06 /* Public */,
// signals: parameters
QMetaType::Void, 0x80000000 | 3, 4,
QMetaType::Void,
0 // eod
};
void TaskSearch::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
TaskSearch *_t = static_cast<TaskSearch *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->newResultAvailable((*reinterpret_cast< const FindResultItem(*)>(_a[1]))); break;
case 1: _t->searchComplete(); break;
default: ;
}
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
switch (_id) {
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
case 0:
switch (*reinterpret_cast<int*>(_a[1])) {
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
case 0:
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< FindResultItem >(); break;
}
break;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
void **func = reinterpret_cast<void **>(_a[1]);
{
typedef void (TaskSearch::*_t)(const FindResultItem & );
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&TaskSearch::newResultAvailable)) {
*result = 0;
return;
}
}
{
typedef void (TaskSearch::*_t)();
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&TaskSearch::searchComplete)) {
*result = 1;
return;
}
}
}
}
const QMetaObject TaskSearch::staticMetaObject = {
{ &QThread::staticMetaObject, qt_meta_stringdata_TaskSearch.data,
qt_meta_data_TaskSearch, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *TaskSearch::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *TaskSearch::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_TaskSearch.stringdata0))
return static_cast<void*>(const_cast< TaskSearch*>(this));
return QThread::qt_metacast(_clname);
}
int TaskSearch::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QThread::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 2)
qt_static_metacall(this, _c, _id, _a);
_id -= 2;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 2)
qt_static_metacall(this, _c, _id, _a);
_id -= 2;
}
return _id;
}
// SIGNAL 0
void TaskSearch::newResultAvailable(const FindResultItem & _t1)
{
void *_a[] = { Q_NULLPTR, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
void TaskSearch::searchComplete()
{
QMetaObject::activate(this, &staticMetaObject, 1, Q_NULLPTR);
}
QT_END_MOC_NAMESPACE

View File

@ -0,0 +1,89 @@
/****************************************************************************
** Meta object code from reading C++ file 'fvavailableupdate.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "fervor/fvavailableupdate.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'fvavailableupdate.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_FvAvailableUpdate_t {
QByteArrayData data[1];
char stringdata0[18];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_FvAvailableUpdate_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_FvAvailableUpdate_t qt_meta_stringdata_FvAvailableUpdate = {
{
QT_MOC_LITERAL(0, 0, 17) // "FvAvailableUpdate"
},
"FvAvailableUpdate"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_FvAvailableUpdate[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void FvAvailableUpdate::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
const QMetaObject FvAvailableUpdate::staticMetaObject = {
{ &QObject::staticMetaObject, qt_meta_stringdata_FvAvailableUpdate.data,
qt_meta_data_FvAvailableUpdate, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *FvAvailableUpdate::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *FvAvailableUpdate::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_FvAvailableUpdate.stringdata0))
return static_cast<void*>(const_cast< FvAvailableUpdate*>(this));
return QObject::qt_metacast(_clname);
}
int FvAvailableUpdate::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
return _id;
}
QT_END_MOC_NAMESPACE

View File

@ -0,0 +1,89 @@
/****************************************************************************
** Meta object code from reading C++ file 'fvignoredversions.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "fervor/fvignoredversions.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'fvignoredversions.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_FVIgnoredVersions_t {
QByteArrayData data[1];
char stringdata0[18];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_FVIgnoredVersions_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_FVIgnoredVersions_t qt_meta_stringdata_FVIgnoredVersions = {
{
QT_MOC_LITERAL(0, 0, 17) // "FVIgnoredVersions"
},
"FVIgnoredVersions"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_FVIgnoredVersions[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void FVIgnoredVersions::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
const QMetaObject FVIgnoredVersions::staticMetaObject = {
{ &QObject::staticMetaObject, qt_meta_stringdata_FVIgnoredVersions.data,
qt_meta_data_FVIgnoredVersions, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *FVIgnoredVersions::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *FVIgnoredVersions::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_FVIgnoredVersions.stringdata0))
return static_cast<void*>(const_cast< FVIgnoredVersions*>(this));
return QObject::qt_metacast(_clname);
}
int FVIgnoredVersions::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
return _id;
}
QT_END_MOC_NAMESPACE

89
client/moc_fvplatform.cpp Normal file
View File

@ -0,0 +1,89 @@
/****************************************************************************
** Meta object code from reading C++ file 'fvplatform.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "fervor/fvplatform.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'fvplatform.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_FvPlatform_t {
QByteArrayData data[1];
char stringdata0[11];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_FvPlatform_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_FvPlatform_t qt_meta_stringdata_FvPlatform = {
{
QT_MOC_LITERAL(0, 0, 10) // "FvPlatform"
},
"FvPlatform"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_FvPlatform[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void FvPlatform::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
const QMetaObject FvPlatform::staticMetaObject = {
{ &QObject::staticMetaObject, qt_meta_stringdata_FvPlatform.data,
qt_meta_data_FvPlatform, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *FvPlatform::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *FvPlatform::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_FvPlatform.stringdata0))
return static_cast<void*>(const_cast< FvPlatform*>(this));
return QObject::qt_metacast(_clname);
}
int FvPlatform::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
return _id;
}
QT_END_MOC_NAMESPACE

View File

@ -0,0 +1,89 @@
/****************************************************************************
** Meta object code from reading C++ file 'fvupdateconfirmdialog.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "fervor/fvupdateconfirmdialog.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'fvupdateconfirmdialog.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_FvUpdateConfirmDialog_t {
QByteArrayData data[1];
char stringdata0[22];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_FvUpdateConfirmDialog_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_FvUpdateConfirmDialog_t qt_meta_stringdata_FvUpdateConfirmDialog = {
{
QT_MOC_LITERAL(0, 0, 21) // "FvUpdateConfirmDialog"
},
"FvUpdateConfirmDialog"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_FvUpdateConfirmDialog[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void FvUpdateConfirmDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
const QMetaObject FvUpdateConfirmDialog::staticMetaObject = {
{ &QDialog::staticMetaObject, qt_meta_stringdata_FvUpdateConfirmDialog.data,
qt_meta_data_FvUpdateConfirmDialog, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *FvUpdateConfirmDialog::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *FvUpdateConfirmDialog::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_FvUpdateConfirmDialog.stringdata0))
return static_cast<void*>(const_cast< FvUpdateConfirmDialog*>(this));
return QDialog::qt_metacast(_clname);
}
int FvUpdateConfirmDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
return _id;
}
QT_END_MOC_NAMESPACE

167
client/moc_fvupdater.cpp Normal file
View File

@ -0,0 +1,167 @@
/****************************************************************************
** Meta object code from reading C++ file 'fvupdater.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "fervor/fvupdater.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'fvupdater.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_FvUpdater_t {
QByteArrayData data[16];
char stringdata0[292];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_FvUpdater_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_FvUpdater_t qt_meta_stringdata_FvUpdater = {
{
QT_MOC_LITERAL(0, 0, 9), // "FvUpdater"
QT_MOC_LITERAL(1, 10, 15), // "CheckForUpdates"
QT_MOC_LITERAL(2, 26, 0), // ""
QT_MOC_LITERAL(3, 27, 24), // "silentAsMuchAsItCouldGet"
QT_MOC_LITERAL(4, 52, 21), // "CheckForUpdatesSilent"
QT_MOC_LITERAL(5, 74, 24), // "CheckForUpdatesNotSilent"
QT_MOC_LITERAL(6, 99, 13), // "InstallUpdate"
QT_MOC_LITERAL(7, 113, 10), // "SkipUpdate"
QT_MOC_LITERAL(8, 124, 13), // "RemindMeLater"
QT_MOC_LITERAL(9, 138, 27), // "UpdateInstallationConfirmed"
QT_MOC_LITERAL(10, 166, 30), // "UpdateInstallationNotConfirmed"
QT_MOC_LITERAL(11, 197, 17), // "httpFeedReadyRead"
QT_MOC_LITERAL(12, 215, 30), // "httpFeedUpdateDataReadProgress"
QT_MOC_LITERAL(13, 246, 9), // "bytesRead"
QT_MOC_LITERAL(14, 256, 10), // "totalBytes"
QT_MOC_LITERAL(15, 267, 24) // "httpFeedDownloadFinished"
},
"FvUpdater\0CheckForUpdates\0\0"
"silentAsMuchAsItCouldGet\0CheckForUpdatesSilent\0"
"CheckForUpdatesNotSilent\0InstallUpdate\0"
"SkipUpdate\0RemindMeLater\0"
"UpdateInstallationConfirmed\0"
"UpdateInstallationNotConfirmed\0"
"httpFeedReadyRead\0httpFeedUpdateDataReadProgress\0"
"bytesRead\0totalBytes\0httpFeedDownloadFinished"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_FvUpdater[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
12, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 1, 74, 2, 0x0a /* Public */,
1, 0, 77, 2, 0x2a /* Public | MethodCloned */,
4, 0, 78, 2, 0x0a /* Public */,
5, 0, 79, 2, 0x0a /* Public */,
6, 0, 80, 2, 0x09 /* Protected */,
7, 0, 81, 2, 0x09 /* Protected */,
8, 0, 82, 2, 0x09 /* Protected */,
9, 0, 83, 2, 0x09 /* Protected */,
10, 0, 84, 2, 0x09 /* Protected */,
11, 0, 85, 2, 0x08 /* Private */,
12, 2, 86, 2, 0x08 /* Private */,
15, 0, 91, 2, 0x08 /* Private */,
// slots: parameters
QMetaType::Bool, QMetaType::Bool, 3,
QMetaType::Bool,
QMetaType::Bool,
QMetaType::Bool,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::LongLong, QMetaType::LongLong, 13, 14,
QMetaType::Void,
0 // eod
};
void FvUpdater::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
FvUpdater *_t = static_cast<FvUpdater *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: { bool _r = _t->CheckForUpdates((*reinterpret_cast< bool(*)>(_a[1])));
if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break;
case 1: { bool _r = _t->CheckForUpdates();
if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break;
case 2: { bool _r = _t->CheckForUpdatesSilent();
if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break;
case 3: { bool _r = _t->CheckForUpdatesNotSilent();
if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break;
case 4: _t->InstallUpdate(); break;
case 5: _t->SkipUpdate(); break;
case 6: _t->RemindMeLater(); break;
case 7: _t->UpdateInstallationConfirmed(); break;
case 8: _t->UpdateInstallationNotConfirmed(); break;
case 9: _t->httpFeedReadyRead(); break;
case 10: _t->httpFeedUpdateDataReadProgress((*reinterpret_cast< qint64(*)>(_a[1])),(*reinterpret_cast< qint64(*)>(_a[2]))); break;
case 11: _t->httpFeedDownloadFinished(); break;
default: ;
}
}
}
const QMetaObject FvUpdater::staticMetaObject = {
{ &QObject::staticMetaObject, qt_meta_stringdata_FvUpdater.data,
qt_meta_data_FvUpdater, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *FvUpdater::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *FvUpdater::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_FvUpdater.stringdata0))
return static_cast<void*>(const_cast< FvUpdater*>(this));
return QObject::qt_metacast(_clname);
}
int FvUpdater::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 12)
qt_static_metacall(this, _c, _id, _a);
_id -= 12;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 12)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 12;
}
return _id;
}
QT_END_MOC_NAMESPACE

View File

@ -0,0 +1,113 @@
/****************************************************************************
** Meta object code from reading C++ file 'fvupdatewindow.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "fervor/fvupdatewindow.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'fvupdatewindow.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_FvUpdateWindow_t {
QByteArrayData data[5];
char stringdata0[54];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_FvUpdateWindow_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_FvUpdateWindow_t qt_meta_stringdata_FvUpdateWindow = {
{
QT_MOC_LITERAL(0, 0, 14), // "FvUpdateWindow"
QT_MOC_LITERAL(1, 15, 16), // "downloadFinished"
QT_MOC_LITERAL(2, 32, 0), // ""
QT_MOC_LITERAL(3, 33, 14), // "QNetworkReply*"
QT_MOC_LITERAL(4, 48, 5) // "reply"
},
"FvUpdateWindow\0downloadFinished\0\0"
"QNetworkReply*\0reply"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_FvUpdateWindow[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 1, 19, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void, 0x80000000 | 3, 4,
0 // eod
};
void FvUpdateWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
FvUpdateWindow *_t = static_cast<FvUpdateWindow *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->downloadFinished((*reinterpret_cast< QNetworkReply*(*)>(_a[1]))); break;
default: ;
}
}
}
const QMetaObject FvUpdateWindow::staticMetaObject = {
{ &QWidget::staticMetaObject, qt_meta_stringdata_FvUpdateWindow.data,
qt_meta_data_FvUpdateWindow, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *FvUpdateWindow::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *FvUpdateWindow::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_FvUpdateWindow.stringdata0))
return static_cast<void*>(const_cast< FvUpdateWindow*>(this));
return QWidget::qt_metacast(_clname);
}
int FvUpdateWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWidget::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
QT_END_MOC_NAMESPACE

129
client/moc_helper.cpp Normal file
View File

@ -0,0 +1,129 @@
/****************************************************************************
** Meta object code from reading C++ file 'helper.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "helper.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'helper.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_EscapeKeyEventFilter_t {
QByteArrayData data[4];
char stringdata0[40];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_EscapeKeyEventFilter_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_EscapeKeyEventFilter_t qt_meta_stringdata_EscapeKeyEventFilter = {
{
QT_MOC_LITERAL(0, 0, 20), // "EscapeKeyEventFilter"
QT_MOC_LITERAL(1, 21, 13), // "escapePressed"
QT_MOC_LITERAL(2, 35, 0), // ""
QT_MOC_LITERAL(3, 36, 3) // "obj"
},
"EscapeKeyEventFilter\0escapePressed\0\0"
"obj"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_EscapeKeyEventFilter[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 19, 2, 0x06 /* Public */,
// signals: parameters
QMetaType::Void, QMetaType::QObjectStar, 3,
0 // eod
};
void EscapeKeyEventFilter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
EscapeKeyEventFilter *_t = static_cast<EscapeKeyEventFilter *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->escapePressed((*reinterpret_cast< QObject*(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
void **func = reinterpret_cast<void **>(_a[1]);
{
typedef void (EscapeKeyEventFilter::*_t)(QObject * );
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&EscapeKeyEventFilter::escapePressed)) {
*result = 0;
return;
}
}
}
}
const QMetaObject EscapeKeyEventFilter::staticMetaObject = {
{ &QObject::staticMetaObject, qt_meta_stringdata_EscapeKeyEventFilter.data,
qt_meta_data_EscapeKeyEventFilter, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *EscapeKeyEventFilter::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *EscapeKeyEventFilter::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_EscapeKeyEventFilter.stringdata0))
return static_cast<void*>(const_cast< EscapeKeyEventFilter*>(this));
return QObject::qt_metacast(_clname);
}
int EscapeKeyEventFilter::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
// SIGNAL 0
void EscapeKeyEventFilter::escapePressed(QObject * _t1)
{
void *_a[] = { Q_NULLPTR, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
QT_END_MOC_NAMESPACE

153
client/moc_hidtracker.cpp Normal file
View File

@ -0,0 +1,153 @@
/****************************************************************************
** Meta object code from reading C++ file 'hidtracker.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "platforms/hidtracker.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'hidtracker.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_HIDActivityTracker_t {
QByteArrayData data[5];
char stringdata0[61];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_HIDActivityTracker_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_HIDActivityTracker_t qt_meta_stringdata_HIDActivityTracker = {
{
QT_MOC_LITERAL(0, 0, 18), // "HIDActivityTracker"
QT_MOC_LITERAL(1, 19, 12), // "idleDetected"
QT_MOC_LITERAL(2, 32, 0), // ""
QT_MOC_LITERAL(3, 33, 16), // "activityDetected"
QT_MOC_LITERAL(4, 50, 10) // "checkState"
},
"HIDActivityTracker\0idleDetected\0\0"
"activityDetected\0checkState"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_HIDActivityTracker[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
3, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
2, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 29, 2, 0x06 /* Public */,
3, 0, 30, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
4, 0, 31, 2, 0x09 /* Protected */,
// signals: parameters
QMetaType::Void,
QMetaType::Void,
// slots: parameters
QMetaType::Void,
0 // eod
};
void HIDActivityTracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
HIDActivityTracker *_t = static_cast<HIDActivityTracker *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->idleDetected(); break;
case 1: _t->activityDetected(); break;
case 2: _t->checkState(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
void **func = reinterpret_cast<void **>(_a[1]);
{
typedef void (HIDActivityTracker::*_t)();
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&HIDActivityTracker::idleDetected)) {
*result = 0;
return;
}
}
{
typedef void (HIDActivityTracker::*_t)();
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&HIDActivityTracker::activityDetected)) {
*result = 1;
return;
}
}
}
Q_UNUSED(_a);
}
const QMetaObject HIDActivityTracker::staticMetaObject = {
{ &QObject::staticMetaObject, qt_meta_stringdata_HIDActivityTracker.data,
qt_meta_data_HIDActivityTracker, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *HIDActivityTracker::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *HIDActivityTracker::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_HIDActivityTracker.stringdata0))
return static_cast<void*>(const_cast< HIDActivityTracker*>(this));
return QObject::qt_metacast(_clname);
}
int HIDActivityTracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 3)
qt_static_metacall(this, _c, _id, _a);
_id -= 3;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 3)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 3;
}
return _id;
}
// SIGNAL 0
void HIDActivityTracker::idleDetected()
{
QMetaObject::activate(this, &staticMetaObject, 0, Q_NULLPTR);
}
// SIGNAL 1
void HIDActivityTracker::activityDetected()
{
QMetaObject::activate(this, &staticMetaObject, 1, Q_NULLPTR);
}
QT_END_MOC_NAMESPACE

89
client/moc_logger.cpp Normal file
View File

@ -0,0 +1,89 @@
/****************************************************************************
** Meta object code from reading C++ file 'logger.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "logger.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'logger.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_Logger_t {
QByteArrayData data[1];
char stringdata0[7];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_Logger_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_Logger_t qt_meta_stringdata_Logger = {
{
QT_MOC_LITERAL(0, 0, 6) // "Logger"
},
"Logger"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_Logger[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void Logger::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
const QMetaObject Logger::staticMetaObject = {
{ &QObject::staticMetaObject, qt_meta_stringdata_Logger.data,
qt_meta_data_Logger, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *Logger::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *Logger::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_Logger.stringdata0))
return static_cast<void*>(const_cast< Logger*>(this));
return QObject::qt_metacast(_clname);
}
int Logger::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
return _id;
}
QT_END_MOC_NAMESPACE

446
client/moc_mainwindow.cpp Normal file
View File

@ -0,0 +1,446 @@
/****************************************************************************
** Meta object code from reading C++ file 'mainwindow.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "mainwindow.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'mainwindow.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_MainWindow_t {
QByteArrayData data[82];
char stringdata0[1077];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_MainWindow_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_MainWindow_t qt_meta_stringdata_MainWindow = {
{
QT_MOC_LITERAL(0, 0, 10), // "MainWindow"
QT_MOC_LITERAL(1, 11, 19), // "onTimeFormatChanged"
QT_MOC_LITERAL(2, 31, 0), // ""
QT_MOC_LITERAL(3, 32, 13), // "onTimeChanged"
QT_MOC_LITERAL(4, 46, 4), // "save"
QT_MOC_LITERAL(5, 51, 4), // "sync"
QT_MOC_LITERAL(6, 56, 5), // "about"
QT_MOC_LITERAL(7, 62, 11), // "preferences"
QT_MOC_LITERAL(8, 74, 5), // "print"
QT_MOC_LITERAL(9, 80, 4), // "quit"
QT_MOC_LITERAL(10, 85, 11), // "newRootTask"
QT_MOC_LITERAL(11, 97, 7), // "newTask"
QT_MOC_LITERAL(12, 105, 10), // "newSibling"
QT_MOC_LITERAL(13, 116, 6), // "moveUp"
QT_MOC_LITERAL(14, 123, 8), // "moveDown"
QT_MOC_LITERAL(15, 132, 10), // "renameTask"
QT_MOC_LITERAL(16, 143, 10), // "deleteTask"
QT_MOC_LITERAL(17, 154, 22), // "taskTreeContextualMenu"
QT_MOC_LITERAL(18, 177, 5), // "point"
QT_MOC_LITERAL(19, 183, 16), // "taskIndexChanged"
QT_MOC_LITERAL(20, 200, 12), // "idleDetected"
QT_MOC_LITERAL(21, 213, 16), // "activityDetected"
QT_MOC_LITERAL(22, 230, 19), // "startOrStopTracking"
QT_MOC_LITERAL(23, 250, 13), // "startTracking"
QT_MOC_LITERAL(24, 264, 19), // "startTrackingRecent"
QT_MOC_LITERAL(25, 284, 12), // "stopTracking"
QT_MOC_LITERAL(26, 297, 18), // "TrackingStopReason"
QT_MOC_LITERAL(27, 316, 6), // "reason"
QT_MOC_LITERAL(28, 323, 10), // "currentUtc"
QT_MOC_LITERAL(29, 334, 10), // "updateData"
QT_MOC_LITERAL(30, 345, 9), // "add10Mins"
QT_MOC_LITERAL(31, 355, 20), // "editSelectionChanged"
QT_MOC_LITERAL(32, 376, 19), // "editPositionChanged"
QT_MOC_LITERAL(33, 396, 17), // "editFormatChanged"
QT_MOC_LITERAL(34, 414, 15), // "QTextCharFormat"
QT_MOC_LITERAL(35, 430, 3), // "fmt"
QT_MOC_LITERAL(36, 434, 8), // "editUndo"
QT_MOC_LITERAL(37, 443, 8), // "editRedo"
QT_MOC_LITERAL(38, 452, 7), // "editCut"
QT_MOC_LITERAL(39, 460, 8), // "editCopy"
QT_MOC_LITERAL(40, 469, 9), // "editPaste"
QT_MOC_LITERAL(41, 479, 10), // "editDelete"
QT_MOC_LITERAL(42, 490, 13), // "editSelectAll"
QT_MOC_LITERAL(43, 504, 13), // "iconActivated"
QT_MOC_LITERAL(44, 518, 33), // "QSystemTrayIcon::ActivationRe..."
QT_MOC_LITERAL(45, 552, 17), // "timeFormatChanged"
QT_MOC_LITERAL(46, 570, 12), // "showTimeline"
QT_MOC_LITERAL(47, 583, 14), // "showTimeReport"
QT_MOC_LITERAL(48, 598, 25), // "newPasswordDialogFinished"
QT_MOC_LITERAL(49, 624, 6), // "status"
QT_MOC_LITERAL(50, 631, 22), // "passwordDialogFinished"
QT_MOC_LITERAL(51, 654, 21), // "criticalAlertFinished"
QT_MOC_LITERAL(52, 676, 17), // "openAlertFinished"
QT_MOC_LITERAL(53, 694, 20), // "warningAlertFinished"
QT_MOC_LITERAL(54, 715, 24), // "toolbarVisibilityChanged"
QT_MOC_LITERAL(55, 740, 7), // "visible"
QT_MOC_LITERAL(56, 748, 15), // "showHideToolbar"
QT_MOC_LITERAL(57, 764, 15), // "showAttachments"
QT_MOC_LITERAL(58, 780, 15), // "checkForUpdates"
QT_MOC_LITERAL(59, 796, 11), // "systemSleep"
QT_MOC_LITERAL(60, 808, 12), // "systemResume"
QT_MOC_LITERAL(61, 821, 23), // "changeTimeTrackableFlag"
QT_MOC_LITERAL(62, 845, 9), // "trackable"
QT_MOC_LITERAL(63, 855, 4), // "find"
QT_MOC_LITERAL(64, 860, 11), // "findInTasks"
QT_MOC_LITERAL(65, 872, 13), // "findRequested"
QT_MOC_LITERAL(66, 886, 12), // "findRejected"
QT_MOC_LITERAL(67, 899, 3), // "obj"
QT_MOC_LITERAL(68, 903, 15), // "taskTextChanged"
QT_MOC_LITERAL(69, 919, 9), // "taskMoved"
QT_MOC_LITERAL(70, 929, 5), // "PTask"
QT_MOC_LITERAL(71, 935, 4), // "task"
QT_MOC_LITERAL(72, 940, 13), // "focusTaskTree"
QT_MOC_LITERAL(73, 954, 13), // "focusTaskText"
QT_MOC_LITERAL(74, 968, 14), // "showMainWindow"
QT_MOC_LITERAL(75, 983, 14), // "continueOnIdle"
QT_MOC_LITERAL(76, 998, 11), // "breakOnIdle"
QT_MOC_LITERAL(77, 1010, 8), // "stopTime"
QT_MOC_LITERAL(78, 1019, 15), // "startOnActivity"
QT_MOC_LITERAL(79, 1035, 14), // "stopOnActivity"
QT_MOC_LITERAL(80, 1050, 19), // "trayWindowDestroyed"
QT_MOC_LITERAL(81, 1070, 6) // "object"
},
"MainWindow\0onTimeFormatChanged\0\0"
"onTimeChanged\0save\0sync\0about\0preferences\0"
"print\0quit\0newRootTask\0newTask\0"
"newSibling\0moveUp\0moveDown\0renameTask\0"
"deleteTask\0taskTreeContextualMenu\0"
"point\0taskIndexChanged\0idleDetected\0"
"activityDetected\0startOrStopTracking\0"
"startTracking\0startTrackingRecent\0"
"stopTracking\0TrackingStopReason\0reason\0"
"currentUtc\0updateData\0add10Mins\0"
"editSelectionChanged\0editPositionChanged\0"
"editFormatChanged\0QTextCharFormat\0fmt\0"
"editUndo\0editRedo\0editCut\0editCopy\0"
"editPaste\0editDelete\0editSelectAll\0"
"iconActivated\0QSystemTrayIcon::ActivationReason\0"
"timeFormatChanged\0showTimeline\0"
"showTimeReport\0newPasswordDialogFinished\0"
"status\0passwordDialogFinished\0"
"criticalAlertFinished\0openAlertFinished\0"
"warningAlertFinished\0toolbarVisibilityChanged\0"
"visible\0showHideToolbar\0showAttachments\0"
"checkForUpdates\0systemSleep\0systemResume\0"
"changeTimeTrackableFlag\0trackable\0"
"find\0findInTasks\0findRequested\0"
"findRejected\0obj\0taskTextChanged\0"
"taskMoved\0PTask\0task\0focusTaskTree\0"
"focusTaskText\0showMainWindow\0"
"continueOnIdle\0breakOnIdle\0stopTime\0"
"startOnActivity\0stopOnActivity\0"
"trayWindowDestroyed\0object"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_MainWindow[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
66, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
2, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 344, 2, 0x06 /* Public */,
3, 0, 345, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
4, 0, 346, 2, 0x0a /* Public */,
5, 0, 347, 2, 0x0a /* Public */,
6, 0, 348, 2, 0x0a /* Public */,
7, 0, 349, 2, 0x0a /* Public */,
8, 0, 350, 2, 0x0a /* Public */,
9, 0, 351, 2, 0x0a /* Public */,
10, 0, 352, 2, 0x0a /* Public */,
11, 0, 353, 2, 0x0a /* Public */,
12, 0, 354, 2, 0x0a /* Public */,
13, 0, 355, 2, 0x0a /* Public */,
14, 0, 356, 2, 0x0a /* Public */,
15, 0, 357, 2, 0x0a /* Public */,
16, 0, 358, 2, 0x0a /* Public */,
17, 1, 359, 2, 0x0a /* Public */,
19, 2, 362, 2, 0x0a /* Public */,
20, 0, 367, 2, 0x0a /* Public */,
21, 0, 368, 2, 0x0a /* Public */,
22, 0, 369, 2, 0x0a /* Public */,
23, 0, 370, 2, 0x0a /* Public */,
24, 0, 371, 2, 0x0a /* Public */,
25, 2, 372, 2, 0x0a /* Public */,
25, 1, 377, 2, 0x2a /* Public | MethodCloned */,
29, 0, 380, 2, 0x0a /* Public */,
30, 0, 381, 2, 0x0a /* Public */,
31, 0, 382, 2, 0x0a /* Public */,
32, 0, 383, 2, 0x0a /* Public */,
33, 1, 384, 2, 0x0a /* Public */,
36, 0, 387, 2, 0x0a /* Public */,
37, 0, 388, 2, 0x0a /* Public */,
38, 0, 389, 2, 0x0a /* Public */,
39, 0, 390, 2, 0x0a /* Public */,
40, 0, 391, 2, 0x0a /* Public */,
41, 0, 392, 2, 0x0a /* Public */,
42, 0, 393, 2, 0x0a /* Public */,
43, 1, 394, 2, 0x0a /* Public */,
45, 0, 397, 2, 0x0a /* Public */,
46, 0, 398, 2, 0x0a /* Public */,
47, 0, 399, 2, 0x0a /* Public */,
48, 1, 400, 2, 0x0a /* Public */,
50, 1, 403, 2, 0x0a /* Public */,
51, 1, 406, 2, 0x0a /* Public */,
52, 1, 409, 2, 0x0a /* Public */,
53, 1, 412, 2, 0x0a /* Public */,
54, 1, 415, 2, 0x0a /* Public */,
56, 0, 418, 2, 0x0a /* Public */,
57, 0, 419, 2, 0x0a /* Public */,
58, 0, 420, 2, 0x0a /* Public */,
59, 0, 421, 2, 0x0a /* Public */,
60, 0, 422, 2, 0x0a /* Public */,
61, 1, 423, 2, 0x0a /* Public */,
63, 0, 426, 2, 0x0a /* Public */,
64, 0, 427, 2, 0x0a /* Public */,
65, 0, 428, 2, 0x0a /* Public */,
66, 1, 429, 2, 0x0a /* Public */,
68, 0, 432, 2, 0x0a /* Public */,
69, 1, 433, 2, 0x0a /* Public */,
72, 0, 436, 2, 0x0a /* Public */,
73, 0, 437, 2, 0x0a /* Public */,
74, 0, 438, 2, 0x0a /* Public */,
75, 0, 439, 2, 0x0a /* Public */,
76, 1, 440, 2, 0x0a /* Public */,
78, 0, 443, 2, 0x0a /* Public */,
79, 0, 444, 2, 0x0a /* Public */,
80, 1, 445, 2, 0x0a /* Public */,
// signals: parameters
QMetaType::Void,
QMetaType::Void,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::QPoint, 18,
QMetaType::Void, QMetaType::QModelIndex, QMetaType::QModelIndex, 2, 2,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, 0x80000000 | 26, QMetaType::QDateTime, 27, 28,
QMetaType::Void, 0x80000000 | 26, 27,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, 0x80000000 | 34, 35,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, 0x80000000 | 44, 27,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::Int, 49,
QMetaType::Void, QMetaType::Int, 49,
QMetaType::Void, QMetaType::Int, 49,
QMetaType::Void, QMetaType::Int, 49,
QMetaType::Void, QMetaType::Int, 49,
QMetaType::Void, QMetaType::Bool, 55,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::Bool, 62,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::QObjectStar, 67,
QMetaType::Void,
QMetaType::Void, 0x80000000 | 70, 71,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::QDateTime, 77,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::QObjectStar, 81,
0 // eod
};
void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
MainWindow *_t = static_cast<MainWindow *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->onTimeFormatChanged(); break;
case 1: _t->onTimeChanged(); break;
case 2: _t->save(); break;
case 3: _t->sync(); break;
case 4: _t->about(); break;
case 5: _t->preferences(); break;
case 6: _t->print(); break;
case 7: _t->quit(); break;
case 8: _t->newRootTask(); break;
case 9: _t->newTask(); break;
case 10: _t->newSibling(); break;
case 11: _t->moveUp(); break;
case 12: _t->moveDown(); break;
case 13: _t->renameTask(); break;
case 14: _t->deleteTask(); break;
case 15: _t->taskTreeContextualMenu((*reinterpret_cast< const QPoint(*)>(_a[1]))); break;
case 16: _t->taskIndexChanged((*reinterpret_cast< const QModelIndex(*)>(_a[1])),(*reinterpret_cast< const QModelIndex(*)>(_a[2]))); break;
case 17: _t->idleDetected(); break;
case 18: _t->activityDetected(); break;
case 19: _t->startOrStopTracking(); break;
case 20: _t->startTracking(); break;
case 21: _t->startTrackingRecent(); break;
case 22: _t->stopTracking((*reinterpret_cast< TrackingStopReason(*)>(_a[1])),(*reinterpret_cast< const QDateTime(*)>(_a[2]))); break;
case 23: _t->stopTracking((*reinterpret_cast< TrackingStopReason(*)>(_a[1]))); break;
case 24: _t->updateData(); break;
case 25: _t->add10Mins(); break;
case 26: _t->editSelectionChanged(); break;
case 27: _t->editPositionChanged(); break;
case 28: _t->editFormatChanged((*reinterpret_cast< const QTextCharFormat(*)>(_a[1]))); break;
case 29: _t->editUndo(); break;
case 30: _t->editRedo(); break;
case 31: _t->editCut(); break;
case 32: _t->editCopy(); break;
case 33: _t->editPaste(); break;
case 34: _t->editDelete(); break;
case 35: _t->editSelectAll(); break;
case 36: _t->iconActivated((*reinterpret_cast< QSystemTrayIcon::ActivationReason(*)>(_a[1]))); break;
case 37: _t->timeFormatChanged(); break;
case 38: _t->showTimeline(); break;
case 39: _t->showTimeReport(); break;
case 40: _t->newPasswordDialogFinished((*reinterpret_cast< int(*)>(_a[1]))); break;
case 41: _t->passwordDialogFinished((*reinterpret_cast< int(*)>(_a[1]))); break;
case 42: _t->criticalAlertFinished((*reinterpret_cast< int(*)>(_a[1]))); break;
case 43: _t->openAlertFinished((*reinterpret_cast< int(*)>(_a[1]))); break;
case 44: _t->warningAlertFinished((*reinterpret_cast< int(*)>(_a[1]))); break;
case 45: _t->toolbarVisibilityChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 46: _t->showHideToolbar(); break;
case 47: _t->showAttachments(); break;
case 48: _t->checkForUpdates(); break;
case 49: _t->systemSleep(); break;
case 50: _t->systemResume(); break;
case 51: _t->changeTimeTrackableFlag((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 52: _t->find(); break;
case 53: _t->findInTasks(); break;
case 54: _t->findRequested(); break;
case 55: _t->findRejected((*reinterpret_cast< QObject*(*)>(_a[1]))); break;
case 56: _t->taskTextChanged(); break;
case 57: _t->taskMoved((*reinterpret_cast< PTask(*)>(_a[1]))); break;
case 58: _t->focusTaskTree(); break;
case 59: _t->focusTaskText(); break;
case 60: _t->showMainWindow(); break;
case 61: _t->continueOnIdle(); break;
case 62: _t->breakOnIdle((*reinterpret_cast< const QDateTime(*)>(_a[1]))); break;
case 63: _t->startOnActivity(); break;
case 64: _t->stopOnActivity(); break;
case 65: _t->trayWindowDestroyed((*reinterpret_cast< QObject*(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
void **func = reinterpret_cast<void **>(_a[1]);
{
typedef void (MainWindow::*_t)();
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&MainWindow::onTimeFormatChanged)) {
*result = 0;
return;
}
}
{
typedef void (MainWindow::*_t)();
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&MainWindow::onTimeChanged)) {
*result = 1;
return;
}
}
}
}
const QMetaObject MainWindow::staticMetaObject = {
{ &QMainWindow::staticMetaObject, qt_meta_stringdata_MainWindow.data,
qt_meta_data_MainWindow, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *MainWindow::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *MainWindow::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_MainWindow.stringdata0))
return static_cast<void*>(const_cast< MainWindow*>(this));
return QMainWindow::qt_metacast(_clname);
}
int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QMainWindow::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 66)
qt_static_metacall(this, _c, _id, _a);
_id -= 66;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 66)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 66;
}
return _id;
}
// SIGNAL 0
void MainWindow::onTimeFormatChanged()
{
QMetaObject::activate(this, &staticMetaObject, 0, Q_NULLPTR);
}
// SIGNAL 1
void MainWindow::onTimeChanged()
{
QMetaObject::activate(this, &staticMetaObject, 1, Q_NULLPTR);
}
QT_END_MOC_NAMESPACE

View File

@ -0,0 +1,111 @@
/****************************************************************************
** Meta object code from reading C++ file 'newpassworddlg.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "newpassworddlg.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'newpassworddlg.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_NewPasswordDlg_t {
QByteArrayData data[3];
char stringdata0[26];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_NewPasswordDlg_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_NewPasswordDlg_t qt_meta_stringdata_NewPasswordDlg = {
{
QT_MOC_LITERAL(0, 0, 14), // "NewPasswordDlg"
QT_MOC_LITERAL(1, 15, 9), // "tryAccept"
QT_MOC_LITERAL(2, 25, 0) // ""
},
"NewPasswordDlg\0tryAccept\0"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_NewPasswordDlg[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 19, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void,
0 // eod
};
void NewPasswordDlg::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
NewPasswordDlg *_t = static_cast<NewPasswordDlg *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->tryAccept(); break;
default: ;
}
}
Q_UNUSED(_a);
}
const QMetaObject NewPasswordDlg::staticMetaObject = {
{ &QDialog::staticMetaObject, qt_meta_stringdata_NewPasswordDlg.data,
qt_meta_data_NewPasswordDlg, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *NewPasswordDlg::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *NewPasswordDlg::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_NewPasswordDlg.stringdata0))
return static_cast<void*>(const_cast< NewPasswordDlg*>(this));
return QDialog::qt_metacast(_clname);
}
int NewPasswordDlg::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
QT_END_MOC_NAMESPACE

View File

@ -0,0 +1,89 @@
/****************************************************************************
** Meta object code from reading C++ file 'passworddlg.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "passworddlg.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'passworddlg.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_PasswordDlg_t {
QByteArrayData data[1];
char stringdata0[12];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_PasswordDlg_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_PasswordDlg_t qt_meta_stringdata_PasswordDlg = {
{
QT_MOC_LITERAL(0, 0, 11) // "PasswordDlg"
},
"PasswordDlg"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_PasswordDlg[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void PasswordDlg::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
const QMetaObject PasswordDlg::staticMetaObject = {
{ &QDialog::staticMetaObject, qt_meta_stringdata_PasswordDlg.data,
qt_meta_data_PasswordDlg, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *PasswordDlg::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *PasswordDlg::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_PasswordDlg.stringdata0))
return static_cast<void*>(const_cast< PasswordDlg*>(this));
return QDialog::qt_metacast(_clname);
}
int PasswordDlg::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
return _id;
}
QT_END_MOC_NAMESPACE

View File

@ -0,0 +1,134 @@
/****************************************************************************
** Meta object code from reading C++ file 'preferencesdlg.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "preferencesdlg.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'preferencesdlg.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_PreferencesDlg_t {
QByteArrayData data[9];
char stringdata0[139];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_PreferencesDlg_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_PreferencesDlg_t qt_meta_stringdata_PreferencesDlg = {
{
QT_MOC_LITERAL(0, 0, 14), // "PreferencesDlg"
QT_MOC_LITERAL(1, 15, 14), // "selectDatabase"
QT_MOC_LITERAL(2, 30, 0), // ""
QT_MOC_LITERAL(3, 31, 8), // "accepted"
QT_MOC_LITERAL(4, 40, 23), // "smartStopSettingChanged"
QT_MOC_LITERAL(5, 64, 1), // "v"
QT_MOC_LITERAL(6, 66, 24), // "smartStartSettingChanged"
QT_MOC_LITERAL(7, 91, 19), // "smartStopWayChanged"
QT_MOC_LITERAL(8, 111, 27) // "allowStartAfterIdleControls"
},
"PreferencesDlg\0selectDatabase\0\0accepted\0"
"smartStopSettingChanged\0v\0"
"smartStartSettingChanged\0smartStopWayChanged\0"
"allowStartAfterIdleControls"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_PreferencesDlg[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
6, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 44, 2, 0x08 /* Private */,
3, 0, 45, 2, 0x08 /* Private */,
4, 1, 46, 2, 0x08 /* Private */,
6, 1, 49, 2, 0x08 /* Private */,
7, 0, 52, 2, 0x08 /* Private */,
8, 0, 53, 2, 0x08 /* Private */,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::Bool, 5,
QMetaType::Void, QMetaType::Bool, 2,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void PreferencesDlg::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
PreferencesDlg *_t = static_cast<PreferencesDlg *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->selectDatabase(); break;
case 1: _t->accepted(); break;
case 2: _t->smartStopSettingChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 3: _t->smartStartSettingChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 4: _t->smartStopWayChanged(); break;
case 5: _t->allowStartAfterIdleControls(); break;
default: ;
}
}
}
const QMetaObject PreferencesDlg::staticMetaObject = {
{ &QDialog::staticMetaObject, qt_meta_stringdata_PreferencesDlg.data,
qt_meta_data_PreferencesDlg, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *PreferencesDlg::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *PreferencesDlg::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_PreferencesDlg.stringdata0))
return static_cast<void*>(const_cast< PreferencesDlg*>(this));
return QDialog::qt_metacast(_clname);
}
int PreferencesDlg::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 6)
qt_static_metacall(this, _c, _id, _a);
_id -= 6;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 6)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 6;
}
return _id;
}
QT_END_MOC_NAMESPACE

View File

@ -0,0 +1,144 @@
/****************************************************************************
** Meta object code from reading C++ file 'sleeptracker_osx.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "platforms/osx/sleeptracker_osx.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'sleeptracker_osx.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_SleepTracker_t {
QByteArrayData data[4];
char stringdata0[43];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_SleepTracker_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_SleepTracker_t qt_meta_stringdata_SleepTracker = {
{
QT_MOC_LITERAL(0, 0, 12), // "SleepTracker"
QT_MOC_LITERAL(1, 13, 13), // "onSystemSleep"
QT_MOC_LITERAL(2, 27, 0), // ""
QT_MOC_LITERAL(3, 28, 14) // "onSystemResume"
},
"SleepTracker\0onSystemSleep\0\0onSystemResume"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_SleepTracker[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
2, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
2, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 24, 2, 0x06 /* Public */,
3, 0, 25, 2, 0x06 /* Public */,
// signals: parameters
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void SleepTracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
SleepTracker *_t = static_cast<SleepTracker *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->onSystemSleep(); break;
case 1: _t->onSystemResume(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
void **func = reinterpret_cast<void **>(_a[1]);
{
typedef void (SleepTracker::*_t)();
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&SleepTracker::onSystemSleep)) {
*result = 0;
return;
}
}
{
typedef void (SleepTracker::*_t)();
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&SleepTracker::onSystemResume)) {
*result = 1;
return;
}
}
}
Q_UNUSED(_a);
}
const QMetaObject SleepTracker::staticMetaObject = {
{ &QObject::staticMetaObject, qt_meta_stringdata_SleepTracker.data,
qt_meta_data_SleepTracker, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *SleepTracker::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *SleepTracker::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_SleepTracker.stringdata0))
return static_cast<void*>(const_cast< SleepTracker*>(this));
return QObject::qt_metacast(_clname);
}
int SleepTracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 2)
qt_static_metacall(this, _c, _id, _a);
_id -= 2;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 2)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 2;
}
return _id;
}
// SIGNAL 0
void SleepTracker::onSystemSleep()
{
QMetaObject::activate(this, &staticMetaObject, 0, Q_NULLPTR);
}
// SIGNAL 1
void SleepTracker::onSystemResume()
{
QMetaObject::activate(this, &staticMetaObject, 1, Q_NULLPTR);
}
QT_END_MOC_NAMESPACE

View File

@ -0,0 +1,162 @@
/****************************************************************************
** Meta object code from reading C++ file 'startworkdialog.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "startworkdialog.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'startworkdialog.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_StartWorkDialog_t {
QByteArrayData data[7];
char stringdata0[112];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_StartWorkDialog_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_StartWorkDialog_t qt_meta_stringdata_StartWorkDialog = {
{
QT_MOC_LITERAL(0, 0, 15), // "StartWorkDialog"
QT_MOC_LITERAL(1, 16, 16), // "continueTracking"
QT_MOC_LITERAL(2, 33, 0), // ""
QT_MOC_LITERAL(3, 34, 13), // "breakTracking"
QT_MOC_LITERAL(4, 48, 20), // "onYesButtonTriggered"
QT_MOC_LITERAL(5, 69, 19), // "onNoButtonTriggered"
QT_MOC_LITERAL(6, 89, 22) // "onFinishTimerTriggered"
},
"StartWorkDialog\0continueTracking\0\0"
"breakTracking\0onYesButtonTriggered\0"
"onNoButtonTriggered\0onFinishTimerTriggered"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_StartWorkDialog[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
5, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
2, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 39, 2, 0x06 /* Public */,
3, 0, 40, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
4, 0, 41, 2, 0x08 /* Private */,
5, 0, 42, 2, 0x08 /* Private */,
6, 0, 43, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void,
QMetaType::Void,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void StartWorkDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
StartWorkDialog *_t = static_cast<StartWorkDialog *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->continueTracking(); break;
case 1: _t->breakTracking(); break;
case 2: _t->onYesButtonTriggered(); break;
case 3: _t->onNoButtonTriggered(); break;
case 4: _t->onFinishTimerTriggered(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
void **func = reinterpret_cast<void **>(_a[1]);
{
typedef void (StartWorkDialog::*_t)();
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&StartWorkDialog::continueTracking)) {
*result = 0;
return;
}
}
{
typedef void (StartWorkDialog::*_t)();
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&StartWorkDialog::breakTracking)) {
*result = 1;
return;
}
}
}
Q_UNUSED(_a);
}
const QMetaObject StartWorkDialog::staticMetaObject = {
{ &QDialog::staticMetaObject, qt_meta_stringdata_StartWorkDialog.data,
qt_meta_data_StartWorkDialog, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *StartWorkDialog::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *StartWorkDialog::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_StartWorkDialog.stringdata0))
return static_cast<void*>(const_cast< StartWorkDialog*>(this));
return QDialog::qt_metacast(_clname);
}
int StartWorkDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 5)
qt_static_metacall(this, _c, _id, _a);
_id -= 5;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 5)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 5;
}
return _id;
}
// SIGNAL 0
void StartWorkDialog::continueTracking()
{
QMetaObject::activate(this, &staticMetaObject, 0, Q_NULLPTR);
}
// SIGNAL 1
void StartWorkDialog::breakTracking()
{
QMetaObject::activate(this, &staticMetaObject, 1, Q_NULLPTR);
}
QT_END_MOC_NAMESPACE

View File

@ -0,0 +1,163 @@
/****************************************************************************
** Meta object code from reading C++ file 'stopworkdialog.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "stopworkdialog.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'stopworkdialog.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_StopWorkDialog_t {
QByteArrayData data[8];
char stringdata0[120];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_StopWorkDialog_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_StopWorkDialog_t qt_meta_stringdata_StopWorkDialog = {
{
QT_MOC_LITERAL(0, 0, 14), // "StopWorkDialog"
QT_MOC_LITERAL(1, 15, 16), // "continueTracking"
QT_MOC_LITERAL(2, 32, 0), // ""
QT_MOC_LITERAL(3, 33, 13), // "breakTracking"
QT_MOC_LITERAL(4, 47, 8), // "stopTime"
QT_MOC_LITERAL(5, 56, 20), // "onYesButtonTriggered"
QT_MOC_LITERAL(6, 77, 19), // "onNoButtonTriggered"
QT_MOC_LITERAL(7, 97, 22) // "onFinishTimerTriggered"
},
"StopWorkDialog\0continueTracking\0\0"
"breakTracking\0stopTime\0onYesButtonTriggered\0"
"onNoButtonTriggered\0onFinishTimerTriggered"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_StopWorkDialog[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
5, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
2, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 39, 2, 0x06 /* Public */,
3, 1, 40, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
5, 0, 43, 2, 0x08 /* Private */,
6, 0, 44, 2, 0x08 /* Private */,
7, 0, 45, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void,
QMetaType::Void, QMetaType::QDateTime, 4,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void StopWorkDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
StopWorkDialog *_t = static_cast<StopWorkDialog *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->continueTracking(); break;
case 1: _t->breakTracking((*reinterpret_cast< const QDateTime(*)>(_a[1]))); break;
case 2: _t->onYesButtonTriggered(); break;
case 3: _t->onNoButtonTriggered(); break;
case 4: _t->onFinishTimerTriggered(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
void **func = reinterpret_cast<void **>(_a[1]);
{
typedef void (StopWorkDialog::*_t)();
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&StopWorkDialog::continueTracking)) {
*result = 0;
return;
}
}
{
typedef void (StopWorkDialog::*_t)(const QDateTime & );
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&StopWorkDialog::breakTracking)) {
*result = 1;
return;
}
}
}
}
const QMetaObject StopWorkDialog::staticMetaObject = {
{ &QDialog::staticMetaObject, qt_meta_stringdata_StopWorkDialog.data,
qt_meta_data_StopWorkDialog, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *StopWorkDialog::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *StopWorkDialog::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_StopWorkDialog.stringdata0))
return static_cast<void*>(const_cast< StopWorkDialog*>(this));
return QDialog::qt_metacast(_clname);
}
int StopWorkDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 5)
qt_static_metacall(this, _c, _id, _a);
_id -= 5;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 5)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 5;
}
return _id;
}
// SIGNAL 0
void StopWorkDialog::continueTracking()
{
QMetaObject::activate(this, &staticMetaObject, 0, Q_NULLPTR);
}
// SIGNAL 1
void StopWorkDialog::breakTracking(const QDateTime & _t1)
{
void *_a[] = { Q_NULLPTR, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 1, _a);
}
QT_END_MOC_NAMESPACE

89
client/moc_task.cpp Normal file
View File

@ -0,0 +1,89 @@
/****************************************************************************
** Meta object code from reading C++ file 'task.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "task.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'task.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_Task_t {
QByteArrayData data[1];
char stringdata0[5];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_Task_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_Task_t qt_meta_stringdata_Task = {
{
QT_MOC_LITERAL(0, 0, 4) // "Task"
},
"Task"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_Task[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void Task::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
const QMetaObject Task::staticMetaObject = {
{ &QObject::staticMetaObject, qt_meta_stringdata_Task.data,
qt_meta_data_Task, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *Task::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *Task::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_Task.stringdata0))
return static_cast<void*>(const_cast< Task*>(this));
return QObject::qt_metacast(_clname);
}
int Task::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
return _id;
}
QT_END_MOC_NAMESPACE

View File

@ -0,0 +1,197 @@
/****************************************************************************
** Meta object code from reading C++ file 'tasktreemodel.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "tasktreemodel.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'tasktreemodel.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_TaskTreeModel_t {
QByteArrayData data[5];
char stringdata0[35];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_TaskTreeModel_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_TaskTreeModel_t qt_meta_stringdata_TaskTreeModel = {
{
QT_MOC_LITERAL(0, 0, 13), // "TaskTreeModel"
QT_MOC_LITERAL(1, 14, 11), // "onTaskMoved"
QT_MOC_LITERAL(2, 26, 0), // ""
QT_MOC_LITERAL(3, 27, 5), // "PTask"
QT_MOC_LITERAL(4, 33, 1) // "t"
},
"TaskTreeModel\0onTaskMoved\0\0PTask\0t"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_TaskTreeModel[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 19, 2, 0x06 /* Public */,
// signals: parameters
QMetaType::Void, 0x80000000 | 3, 4,
0 // eod
};
void TaskTreeModel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
TaskTreeModel *_t = static_cast<TaskTreeModel *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->onTaskMoved((*reinterpret_cast< PTask(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
void **func = reinterpret_cast<void **>(_a[1]);
{
typedef void (TaskTreeModel::*_t)(PTask );
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&TaskTreeModel::onTaskMoved)) {
*result = 0;
return;
}
}
}
}
const QMetaObject TaskTreeModel::staticMetaObject = {
{ &QAbstractItemModel::staticMetaObject, qt_meta_stringdata_TaskTreeModel.data,
qt_meta_data_TaskTreeModel, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *TaskTreeModel::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *TaskTreeModel::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_TaskTreeModel.stringdata0))
return static_cast<void*>(const_cast< TaskTreeModel*>(this));
return QAbstractItemModel::qt_metacast(_clname);
}
int TaskTreeModel::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QAbstractItemModel::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
// SIGNAL 0
void TaskTreeModel::onTaskMoved(PTask _t1)
{
void *_a[] = { Q_NULLPTR, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
struct qt_meta_stringdata_TaskItemDelegate_t {
QByteArrayData data[1];
char stringdata0[17];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_TaskItemDelegate_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_TaskItemDelegate_t qt_meta_stringdata_TaskItemDelegate = {
{
QT_MOC_LITERAL(0, 0, 16) // "TaskItemDelegate"
},
"TaskItemDelegate"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_TaskItemDelegate[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void TaskItemDelegate::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
const QMetaObject TaskItemDelegate::staticMetaObject = {
{ &QItemDelegate::staticMetaObject, qt_meta_stringdata_TaskItemDelegate.data,
qt_meta_data_TaskItemDelegate, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *TaskItemDelegate::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *TaskItemDelegate::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_TaskItemDelegate.stringdata0))
return static_cast<void*>(const_cast< TaskItemDelegate*>(this));
return QItemDelegate::qt_metacast(_clname);
}
int TaskItemDelegate::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QItemDelegate::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
return _id;
}
QT_END_MOC_NAMESPACE

View File

@ -0,0 +1,111 @@
/****************************************************************************
** Meta object code from reading C++ file 'timeintervaldlg.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "timeintervaldlg.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'timeintervaldlg.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_TimeIntervalDlg_t {
QByteArrayData data[4];
char stringdata0[37];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_TimeIntervalDlg_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_TimeIntervalDlg_t qt_meta_stringdata_TimeIntervalDlg = {
{
QT_MOC_LITERAL(0, 0, 15), // "TimeIntervalDlg"
QT_MOC_LITERAL(1, 16, 11), // "dataChanged"
QT_MOC_LITERAL(2, 28, 0), // ""
QT_MOC_LITERAL(3, 29, 7) // "changed"
},
"TimeIntervalDlg\0dataChanged\0\0changed"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_TimeIntervalDlg[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 1, 19, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void, QMetaType::QDateTime, 3,
0 // eod
};
void TimeIntervalDlg::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
TimeIntervalDlg *_t = static_cast<TimeIntervalDlg *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->dataChanged((*reinterpret_cast< const QDateTime(*)>(_a[1]))); break;
default: ;
}
}
}
const QMetaObject TimeIntervalDlg::staticMetaObject = {
{ &QDialog::staticMetaObject, qt_meta_stringdata_TimeIntervalDlg.data,
qt_meta_data_TimeIntervalDlg, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *TimeIntervalDlg::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *TimeIntervalDlg::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_TimeIntervalDlg.stringdata0))
return static_cast<void*>(const_cast< TimeIntervalDlg*>(this));
return QDialog::qt_metacast(_clname);
}
int TimeIntervalDlg::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
QT_END_MOC_NAMESPACE

View File

@ -0,0 +1,432 @@
/****************************************************************************
** Meta object code from reading C++ file 'timereportwizard.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "timereportwizard.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'timereportwizard.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_TaskTreePage_t {
QByteArrayData data[3];
char stringdata0[23];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_TaskTreePage_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_TaskTreePage_t qt_meta_stringdata_TaskTreePage = {
{
QT_MOC_LITERAL(0, 0, 12), // "TaskTreePage"
QT_MOC_LITERAL(1, 13, 8), // "accepted"
QT_MOC_LITERAL(2, 22, 0) // ""
},
"TaskTreePage\0accepted\0"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_TaskTreePage[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 19, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void,
0 // eod
};
void TaskTreePage::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
TaskTreePage *_t = static_cast<TaskTreePage *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->accepted(); break;
default: ;
}
}
Q_UNUSED(_a);
}
const QMetaObject TaskTreePage::staticMetaObject = {
{ &QWizardPage::staticMetaObject, qt_meta_stringdata_TaskTreePage.data,
qt_meta_data_TaskTreePage, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *TaskTreePage::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *TaskTreePage::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_TaskTreePage.stringdata0))
return static_cast<void*>(const_cast< TaskTreePage*>(this));
return QWizardPage::qt_metacast(_clname);
}
int TaskTreePage::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWizardPage::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
struct qt_meta_stringdata_CumulativeOptionPage_t {
QByteArrayData data[4];
char stringdata0[38];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_CumulativeOptionPage_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_CumulativeOptionPage_t qt_meta_stringdata_CumulativeOptionPage = {
{
QT_MOC_LITERAL(0, 0, 20), // "CumulativeOptionPage"
QT_MOC_LITERAL(1, 21, 9), // "onChanged"
QT_MOC_LITERAL(2, 31, 0), // ""
QT_MOC_LITERAL(3, 32, 5) // "value"
},
"CumulativeOptionPage\0onChanged\0\0value"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_CumulativeOptionPage[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 1, 19, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void, QMetaType::Bool, 3,
0 // eod
};
void CumulativeOptionPage::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
CumulativeOptionPage *_t = static_cast<CumulativeOptionPage *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->onChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
default: ;
}
}
}
const QMetaObject CumulativeOptionPage::staticMetaObject = {
{ &QWizardPage::staticMetaObject, qt_meta_stringdata_CumulativeOptionPage.data,
qt_meta_data_CumulativeOptionPage, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *CumulativeOptionPage::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *CumulativeOptionPage::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_CumulativeOptionPage.stringdata0))
return static_cast<void*>(const_cast< CumulativeOptionPage*>(this));
return QWizardPage::qt_metacast(_clname);
}
int CumulativeOptionPage::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWizardPage::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
struct qt_meta_stringdata_DateIntervalPage_t {
QByteArrayData data[1];
char stringdata0[17];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_DateIntervalPage_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_DateIntervalPage_t qt_meta_stringdata_DateIntervalPage = {
{
QT_MOC_LITERAL(0, 0, 16) // "DateIntervalPage"
},
"DateIntervalPage"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_DateIntervalPage[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void DateIntervalPage::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
const QMetaObject DateIntervalPage::staticMetaObject = {
{ &QWizardPage::staticMetaObject, qt_meta_stringdata_DateIntervalPage.data,
qt_meta_data_DateIntervalPage, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *DateIntervalPage::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *DateIntervalPage::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_DateIntervalPage.stringdata0))
return static_cast<void*>(const_cast< DateIntervalPage*>(this));
return QWizardPage::qt_metacast(_clname);
}
int DateIntervalPage::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWizardPage::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
return _id;
}
struct qt_meta_stringdata_ReportViewPage_t {
QByteArrayData data[1];
char stringdata0[15];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_ReportViewPage_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_ReportViewPage_t qt_meta_stringdata_ReportViewPage = {
{
QT_MOC_LITERAL(0, 0, 14) // "ReportViewPage"
},
"ReportViewPage"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_ReportViewPage[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void ReportViewPage::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
const QMetaObject ReportViewPage::staticMetaObject = {
{ &QWizardPage::staticMetaObject, qt_meta_stringdata_ReportViewPage.data,
qt_meta_data_ReportViewPage, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *ReportViewPage::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *ReportViewPage::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_ReportViewPage.stringdata0))
return static_cast<void*>(const_cast< ReportViewPage*>(this));
return QWizardPage::qt_metacast(_clname);
}
int ReportViewPage::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWizardPage::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
return _id;
}
struct qt_meta_stringdata_TimeReportWizard_t {
QByteArrayData data[5];
char stringdata0[58];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_TimeReportWizard_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_TimeReportWizard_t qt_meta_stringdata_TimeReportWizard = {
{
QT_MOC_LITERAL(0, 0, 16), // "TimeReportWizard"
QT_MOC_LITERAL(1, 17, 14), // "wizardFinished"
QT_MOC_LITERAL(2, 32, 0), // ""
QT_MOC_LITERAL(3, 33, 17), // "wizardPageChanged"
QT_MOC_LITERAL(4, 51, 6) // "pageId"
},
"TimeReportWizard\0wizardFinished\0\0"
"wizardPageChanged\0pageId"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_TimeReportWizard[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
2, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 24, 2, 0x0a /* Public */,
3, 1, 25, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void,
QMetaType::Void, QMetaType::Int, 4,
0 // eod
};
void TimeReportWizard::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
TimeReportWizard *_t = static_cast<TimeReportWizard *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->wizardFinished(); break;
case 1: _t->wizardPageChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
default: ;
}
}
}
const QMetaObject TimeReportWizard::staticMetaObject = {
{ &QWizard::staticMetaObject, qt_meta_stringdata_TimeReportWizard.data,
qt_meta_data_TimeReportWizard, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *TimeReportWizard::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *TimeReportWizard::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_TimeReportWizard.stringdata0))
return static_cast<void*>(const_cast< TimeReportWizard*>(this));
return QWizard::qt_metacast(_clname);
}
int TimeReportWizard::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWizard::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 2)
qt_static_metacall(this, _c, _id, _a);
_id -= 2;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 2)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 2;
}
return _id;
}
QT_END_MOC_NAMESPACE

124
client/moc_timetreedlg.cpp Normal file
View File

@ -0,0 +1,124 @@
/****************************************************************************
** Meta object code from reading C++ file 'timetreedlg.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "timetreedlg.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'timetreedlg.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_TimeTreeDlg_t {
QByteArrayData data[6];
char stringdata0[77];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_TimeTreeDlg_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_TimeTreeDlg_t qt_meta_stringdata_TimeTreeDlg = {
{
QT_MOC_LITERAL(0, 0, 11), // "TimeTreeDlg"
QT_MOC_LITERAL(1, 12, 11), // "addInterval"
QT_MOC_LITERAL(2, 24, 0), // ""
QT_MOC_LITERAL(3, 25, 14), // "removeInterval"
QT_MOC_LITERAL(4, 40, 14), // "changeInterval"
QT_MOC_LITERAL(5, 55, 21) // "onNewIntervalAccepted"
},
"TimeTreeDlg\0addInterval\0\0removeInterval\0"
"changeInterval\0onNewIntervalAccepted"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_TimeTreeDlg[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
4, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 34, 2, 0x0a /* Public */,
3, 0, 35, 2, 0x0a /* Public */,
4, 0, 36, 2, 0x0a /* Public */,
5, 0, 37, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void TimeTreeDlg::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
TimeTreeDlg *_t = static_cast<TimeTreeDlg *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->addInterval(); break;
case 1: _t->removeInterval(); break;
case 2: _t->changeInterval(); break;
case 3: _t->onNewIntervalAccepted(); break;
default: ;
}
}
Q_UNUSED(_a);
}
const QMetaObject TimeTreeDlg::staticMetaObject = {
{ &QDialog::staticMetaObject, qt_meta_stringdata_TimeTreeDlg.data,
qt_meta_data_TimeTreeDlg, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *TimeTreeDlg::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *TimeTreeDlg::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_TimeTreeDlg.stringdata0))
return static_cast<void*>(const_cast< TimeTreeDlg*>(this));
return QDialog::qt_metacast(_clname);
}
int TimeTreeDlg::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 4)
qt_static_metacall(this, _c, _id, _a);
_id -= 4;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 4)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 4;
}
return _id;
}
QT_END_MOC_NAMESPACE

30
client/newpassworddlg.cpp Normal file
View File

@ -0,0 +1,30 @@
#include "newpassworddlg.h"
#include "ui_newpassworddlg.h"
#include <QMessageBox>
NewPasswordDlg::NewPasswordDlg(QWidget *parent) :
QDialog(parent, Qt::Sheet),
ui(new Ui::NewPasswordDlg)
{
ui->setupUi(this);
}
NewPasswordDlg::~NewPasswordDlg()
{
delete ui;
}
QString NewPasswordDlg::password()
{
return ui->mNewPasswordEdit1->text();
}
void NewPasswordDlg::tryAccept()
{
if (ui->mNewPasswordEdit1->text() != ui->mNewPasswordEdit2->text())
{
QMessageBox::warning(this, tr("Error"), tr("Passwords do not match"), "Ok");
return;
}
accept();
}

26
client/newpassworddlg.h Normal file
View File

@ -0,0 +1,26 @@
#ifndef NEWPASSWORDDLG_H
#define NEWPASSWORDDLG_H
#include <QDialog>
namespace Ui {
class NewPasswordDlg;
}
class NewPasswordDlg : public QDialog
{
Q_OBJECT
public:
explicit NewPasswordDlg(QWidget *parent = 0);
~NewPasswordDlg();
QString password();
private:
Ui::NewPasswordDlg *ui;
public slots:
void tryAccept();
};
#endif // NEWPASSWORDDLG_H

105
client/newpassworddlg.ui Normal file
View File

@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>NewPasswordDlg</class>
<widget class="QDialog" name="NewPasswordDlg">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>416</width>
<height>200</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>400</width>
<height>188</height>
</size>
</property>
<property name="windowTitle">
<string>Password for new database</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="mNewPasswordLabel1">
<property name="text">
<string>Password:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="mNewPasswordEdit1">
<property name="inputMethodHints">
<set>Qt::ImhHiddenText|Qt::ImhNoAutoUppercase|Qt::ImhNoPredictiveText|Qt::ImhSensitiveData</set>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="mNewPasswordLabel2">
<property name="text">
<string>Repeat password:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="mNewPasswordEdit2">
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="mPasswordHintLabel">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Please enter new password twice to complete database creation.&lt;/p&gt; &lt;p&gt;Please be aware - there is no way to recover lost password.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="mDialogButtonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Ok</set>
</property>
<property name="centerButtons">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>mDialogButtonBox</sender>
<signal>accepted()</signal>
<receiver>NewPasswordDlg</receiver>
<slot>tryAccept()</slot>
<hints>
<hint type="sourcelabel">
<x>199</x>
<y>167</y>
</hint>
<hint type="destinationlabel">
<x>199</x>
<y>93</y>
</hint>
</hints>
</connection>
</connections>
<slots>
<slot>tryAccept()</slot>
</slots>
</ui>

BIN
client/notetaker.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

260
client/notetaker.pro.user Normal file
View File

@ -0,0 +1,260 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 3.0.0, 2014-01-31T10:20:04. -->
<qtcreator>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap"/>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{38656c16-34c9-47bc-96ed-d224641af0f5}</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/anand/works/notetaker</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
<value type="QString">-w</value>
<value type="QString">-r</value>
</valuelist>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
<value type="QString">-w</value>
<value type="QString">-r</value>
</valuelist>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/anand/works/notetaker</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
<value type="QString">-w</value>
<value type="QString">-r</value>
</valuelist>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
<value type="QString">-w</value>
<value type="QString">-r</value>
</valuelist>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">notetaker</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/Users/anand/works/Chooka/client/notetaker.pro</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">notetaker.pro</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
<value type="QByteArray">{8e5b48d6-58e5-4e6a-bb0f-2eea2250266f}</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">15</value>
</data>
</qtcreator>

2
client/notetaker.rc Normal file
View File

@ -0,0 +1,2 @@
IDI_ICON1 ICON DISCARDABLE "notetaker.ico"

153
client/notetaker.vcxproj Normal file
View File

@ -0,0 +1,153 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{665CBB2D-81AD-4E03-ADFA-40283D59A2AB}</ProjectGuid>
<Keyword>Qt4VSv1.0</Keyword>
<ProjectName>Chooka</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PreprocessorDefinitions>UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_SQL_LIB;QT_WIDGETS_LIB;QT_PRINTSUPPORT_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSql;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtPrintSupport;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Disabled</Optimization>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
<AdditionalLibraryDirectories>$(QTDIR)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>qtmaind.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Networkd.lib;Qt5Sqld.lib;Qt5Widgetsd.lib;Qt5PrintSupportd.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PreprocessorDefinitions>UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_SQL_LIB;QT_WIDGETS_LIB;QT_PRINTSUPPORT_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSql;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtPrintSupport;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>
</DebugInformationFormat>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
<AdditionalLibraryDirectories>$(QTDIR)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<AdditionalDependencies>qtmain.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Network.lib;Qt5Sql.lib;Qt5Widgets.lib;Qt5PrintSupport.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="GeneratedFiles\Debug\moc_mainwindow.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\qrc_mainwindow.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</PrecompiledHeader>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_mainwindow.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="helper.cpp" />
<ClCompile Include="main.cpp" />
<ClCompile Include="mainwindow.cpp" />
<ClCompile Include="storage.cpp" />
<ClCompile Include="task.cpp" />
<ClCompile Include="tasktreemodel.cpp" />
<ClCompile Include="timetreemodel.cpp" />
</ItemGroup>
<ItemGroup>
<CustomBuild Include="mainwindow.h">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing mainwindow.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_SQL_LIB -DQT_WIDGETS_LIB -DQT_PRINTSUPPORT_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtNetwork" "-I$(QTDIR)\include\QtSql" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtPrintSupport"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing mainwindow.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_SQL_LIB -DQT_WIDGETS_LIB -DQT_PRINTSUPPORT_LIB "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtNetwork" "-I$(QTDIR)\include\QtSql" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtPrintSupport"</Command>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="mainwindow.ui">
<FileType>Document</FileType>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ClInclude Include="config.h" />
<ClInclude Include="GeneratedFiles\ui_mainwindow.h" />
<ClInclude Include="helper.h" />
<ClInclude Include="storage.h" />
<ClInclude Include="task.h" />
<ClInclude Include="tasktreemodel.h" />
<ClInclude Include="timetreemodel.h" />
</ItemGroup>
<ItemGroup>
<CustomBuild Include="mainwindow.qrc">
<FileType>Document</FileType>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(FullPath);%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Rcc%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\qrc_%(Filename).cpp;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(FullPath);%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Rcc%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\qrc_%(Filename).cpp;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp</Command>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="notetaker.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<ProjectExtensions>
<VisualStudio>
<UserProperties UicDir=".\GeneratedFiles" MocDir=".\GeneratedFiles\$(ConfigurationName)" MocOptions="" RccDir=".\GeneratedFiles" lupdateOnBuild="0" lupdateOptions="" lreleaseOptions="" Qt5Version_x0020_Win32="msvc2010" />
</VisualStudio>
</ProjectExtensions>
</Project>

View File

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="storage.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="task.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="tasktreemodel.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_mainwindow.cpp">
<Filter>Moc%27ed files</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_mainwindow.cpp">
<Filter>Moc%27ed files</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\qrc_mainwindow.cpp">
<Filter>Moc%27ed files</Filter>
</ClCompile>
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="mainwindow.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="timetreemodel.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="helper.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="storage.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="task.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="tasktreemodel.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="GeneratedFiles\ui_mainwindow.h">
<Filter>Moc%27ed files</Filter>
</ClInclude>
<ClInclude Include="timetreemodel.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="helper.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="config.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="notetaker.rc" />
</ItemGroup>
<ItemGroup>
<CustomBuild Include="mainwindow.qrc" />
<CustomBuild Include="mainwindow.h">
<Filter>Header Files</Filter>
</CustomBuild>
<CustomBuild Include="mainwindow.ui">
<Filter>Forms</Filter>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;cxx;c;def</Extensions>
<ParseFiles>true</ParseFiles>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h</Extensions>
<ParseFiles>true</ParseFiles>
</Filter>
<Filter Include="Moc%27ed files">
<UniqueIdentifier>{13c77239-ed83-483f-a231-fa21fde8083d}</UniqueIdentifier>
</Filter>
<Filter Include="Forms">
<UniqueIdentifier>{7cec1d61-6bfc-4dd5-920d-0dda014a4548}</UniqueIdentifier>
</Filter>
</ItemGroup>
</Project>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<QTDIR>C:\Qt\Qt5.2.0\5.2.0\msvc2010</QTDIR>
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<QTDIR>C:\Qt\Qt5.2.0\5.2.0\msvc2010</QTDIR>
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
</PropertyGroup>
</Project>

27
client/passworddlg.cpp Normal file
View File

@ -0,0 +1,27 @@
#include "passworddlg.h"
#include "ui_passworddlg.h"
PasswordDlg::PasswordDlg(QWidget *parent) :
QDialog(parent, Qt::Sheet),
ui(new Ui::PasswordDlg)
{
ui->setupUi(this);
// TODO
/*
myLabel->setText("<a href=\"http://example.com/\">Click Here!</a>");
myLabel->setTextFormat(Qt::RichText);
myLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
myLabel->setOpenExternalLinks(true);
*/
}
PasswordDlg::~PasswordDlg()
{
delete ui;
}
QString PasswordDlg::password()
{
return ui->mPasswordEdit->text();
}

23
client/passworddlg.h Normal file
View File

@ -0,0 +1,23 @@
#ifndef PASSWORDDLG_H
#define PASSWORDDLG_H
#include <QDialog>
namespace Ui {
class PasswordDlg;
}
class PasswordDlg : public QDialog
{
Q_OBJECT
public:
explicit PasswordDlg(QWidget *parent = 0);
~PasswordDlg();
QString password();
private:
Ui::PasswordDlg *ui;
};
#endif // PASSWORDDLG_H

93
client/passworddlg.ui Normal file
View File

@ -0,0 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>PasswordDlg</class>
<widget class="QDialog" name="PasswordDlg">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>285</width>
<height>113</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>285</width>
<height>113</height>
</size>
</property>
<property name="windowTitle">
<string>Password required</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="topMargin">
<number>24</number>
</property>
<property name="bottomMargin">
<number>12</number>
</property>
<item>
<layout class="QFormLayout" name="mPasswordFormLayout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::FieldsStayAtSizeHint</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="mPasswordLabel">
<property name="text">
<string>Password:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="mPasswordEdit">
<property name="inputMethodHints">
<set>Qt::ImhHiddenText|Qt::ImhNoAutoUppercase|Qt::ImhNoPredictiveText|Qt::ImhSensitiveData</set>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QDialogButtonBox" name="mButtonBox">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>50</height>
</size>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Ok</set>
</property>
<property name="centerButtons">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>mButtonBox</sender>
<signal>accepted()</signal>
<receiver>PasswordDlg</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>137</x>
<y>92</y>
</hint>
<hint type="destinationlabel">
<x>137</x>
<y>56</y>
</hint>
</hints>
</connection>
</connections>
</ui>

116
client/preferencesdlg.cpp Normal file
View File

@ -0,0 +1,116 @@
#include "preferencesdlg.h"
#include "ui_preferencesdlg.h"
#include "settings.h"
#include "helper.h"
#include "platforms/hidtracker.h"
#include <QFileDialog>
#include <QMessageBox>
#include <QSysInfo>
#define GET_BOOL(KEY) settings.data().value(KEY).toBool()
PreferencesDlg::PreferencesDlg(QWidget *parent, Settings& settings) :
QDialog(parent, Qt::Sheet),
ui(new Ui::PreferencesDlg),
mSettings(settings)
{
ui->setupUi(this);
connect(ui->mSelectDatabaseButton, SIGNAL(clicked()), this, SLOT(selectDatabase()));
connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(accepted()));
connect(ui->mSmartStopTracking, SIGNAL(toggled(bool)), this, SLOT(smartStopSettingChanged(bool)));
connect(ui->mSmartStartTracking, SIGNAL(toggled(bool)), this, SLOT(smartStartSettingChanged(bool)));
// Autosave password
ui->mAutosavePasswordCheckbox->setChecked(settings.data().value(KEY_AUTOSAVE_PASSWORD).toBool());
// Show seconds or not?
ui->mShowSecondsCheckbox->setChecked(settings.data().value(KEY_SHOW_SECONDS).toBool());
// Use custom database path ?
ui->mCustomDatabaseFileCheckbox->setChecked(settings.data().value(KEY_DB_FILENAME_SPECIFIED).toBool());
if (settings.data().value(KEY_DB_FILENAME_SPECIFIED).toBool())
ui->mDatabaseLocation->setText(settings.data().value(KEY_DB_FILENAME).toString());
else
ui->mDatabaseLocation->setText(PathHelper::pathToDatabase());
// Use stop on idle ?
ui->mSmartStopTracking->setChecked(GET_BOOL(KEY_SMART_STOP));
ui->mSmartStopIntervalInMinutes->setText(settings.data().value(KEY_SMART_STOP_MINUTES).toString());
ui->mAskQuestionOnStopRadiobutton->setChecked(GET_BOOL(KEY_ASK_STOP));
ui->mAutomaticallyOnStopRadiobutton->setChecked(!GET_BOOL(KEY_ASK_STOP));
// Use start after idle ?
ui->mSmartStartTracking->setChecked(GET_BOOL(KEY_SMART_START));
//ui->mAskQuestionOnStartRadiobutton->setChecked(GET_BOOL(KEY_ASK_START));
//ui->mAutomaticallyOnStartRadiobutton->setChecked(!GET_BOOL(KEY_ASK_START));
allowStartAfterIdleControls();
ui->mShowTrayIconCheckbox->setChecked(GET_BOOL(KEY_SHOW_TRAY_ICON));
}
PreferencesDlg::~PreferencesDlg()
{
delete ui;
}
void PreferencesDlg::selectDatabase()
{
QFileDialog dlg(this, tr("Select database to use"), PathHelper::pathToDesktop());
dlg.setAcceptMode(QFileDialog::AcceptSave);
dlg.setFileMode(QFileDialog::AnyFile);
if (dlg.exec() == QDialog::Accepted)
{
QString filename = dlg.selectedFiles().front();
ui->mDatabaseLocation->setText(filename);
}
}
void PreferencesDlg::accepted()
{
mSettings.data()[KEY_AUTOSAVE_PASSWORD] = ui->mAutosavePasswordCheckbox->isChecked();
mSettings.data()[KEY_SHOW_SECONDS] = ui->mShowSecondsCheckbox->isChecked();
mSettings.data()[KEY_DB_FILENAME_SPECIFIED] = ui->mCustomDatabaseFileCheckbox->isChecked();
mSettings.data()[KEY_DB_FILENAME] = ui->mDatabaseLocation->text();
mSettings.data()[KEY_SMART_STOP] = ui->mSmartStopTracking->isChecked();
mSettings.data()[KEY_SMART_STOP_MINUTES] = ui->mSmartStopIntervalInMinutes->text().toInt();
mSettings.data()[KEY_SMART_START] = ui->mSmartStartTracking->isChecked();
mSettings.data()[KEY_SHOW_TRAY_ICON] = ui->mShowTrayIconCheckbox->isChecked();
//mSettings.data()[KEY_ASK_START] = ui->mAskQuestionOnStartRadiobutton->isChecked();
mSettings.data()[KEY_ASK_STOP] = ui->mAskQuestionOnStopRadiobutton->isChecked();
}
void PreferencesDlg::smartStopSettingChanged(bool v)
{
if (v)
{
if (!ActivityTrackerHelper::ensureSmartTrackingIsPossible())
ui->mSmartStopTracking->setChecked(false);
}
allowStartAfterIdleControls();
}
void PreferencesDlg::smartStartSettingChanged(bool/* v */)
{
allowStartAfterIdleControls();
}
void PreferencesDlg::smartStopWayChanged()
{
allowStartAfterIdleControls();
}
void PreferencesDlg::allowStartAfterIdleControls()
{
bool stopEnabled = ui->mSmartStopTracking->isChecked() && ui->mSmartStopIntervalInMinutes->text().toInt() > 0;
bool startEnabled = ui->mSmartStartTracking->isChecked();
bool automaticStopEnabled = ui->mAutomaticallyOnStopRadiobutton->isChecked();
//ui->mAskQuestionOnStartRadiobutton->setEnabled(stopEnabled && startEnabled);
//ui->mAutomaticallyOnStartRadiobutton->setEnabled(stopEnabled && startEnabled);
if (!stopEnabled || !automaticStopEnabled)
ui->mSmartStartTracking->setChecked(false);
ui->mSmartStartTracking->setEnabled(stopEnabled && automaticStopEnabled);
ui->mAskQuestionOnStopRadiobutton->setEnabled(stopEnabled);
ui->mAutomaticallyOnStopRadiobutton->setEnabled(stopEnabled);
}

33
client/preferencesdlg.h Normal file
View File

@ -0,0 +1,33 @@
#ifndef PREFERENCESDLG_H
#define PREFERENCESDLG_H
#include <QDialog>
#include "settings.h"
namespace Ui {
class PreferencesDlg;
}
class PreferencesDlg : public QDialog
{
Q_OBJECT
public:
explicit PreferencesDlg(QWidget *parent, Settings& settings);
~PreferencesDlg();
private:
Ui::PreferencesDlg *ui;
Settings& mSettings;
private slots:
void selectDatabase();
void accepted();
void smartStopSettingChanged(bool v);
void smartStartSettingChanged(bool);
void smartStopWayChanged();
void allowStartAfterIdleControls();
};
#endif // PREFERENCESDLG_H

270
client/preferencesdlg.ui Normal file
View File

@ -0,0 +1,270 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>PreferencesDlg</class>
<widget class="QDialog" name="PreferencesDlg">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>444</width>
<height>353</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QCheckBox" name="mShowSecondsCheckbox">
<property name="text">
<string>Show seconds</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="mAutosavePasswordCheckbox">
<property name="text">
<string>Autosave password (requires app restart)</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="mShowTrayIconCheckbox">
<property name="text">
<string>Show tray icon</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="mCustomDatabaseFileCheckbox">
<property name="text">
<string>Use database at custom location (requires app restart)</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="mSelectDatabaseButton">
<property name="text">
<string>Select file...</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="mDatabaseLocation">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Location of used database</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="stopTrackingRuleLayout">
<property name="spacing">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>0</number>
</property>
<item>
<widget class="QCheckBox" name="mSmartStopTracking">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>20</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>240</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Stop tracking if idle detected for</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="mSmartStopIntervalInMinutes">
<property name="maximumSize">
<size>
<width>50</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>minutes</string>
</property>
<property name="margin">
<number>3</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>10</number>
</property>
<item>
<widget class="QRadioButton" name="mAskQuestionOnStopRadiobutton">
<property name="text">
<string>Ask question</string>
</property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget>
</item>
<item>
<widget class="QRadioButton" name="mAutomaticallyOnStopRadiobutton">
<property name="text">
<string>Automatically</string>
</property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="startTrackingRuleLayout">
<property name="spacing">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QCheckBox" name="mSmartStartTracking">
<property name="text">
<string>Start tracking after stop on idle when user activity detected.
This option requires enabled automatic stop tracking on idle.</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
<property name="centerButtons">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>PreferencesDlg</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>254</x>
<y>372</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>PreferencesDlg</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>322</x>
<y>372</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonGroup</sender>
<signal>buttonClicked(int)</signal>
<receiver>PreferencesDlg</receiver>
<slot>smartStopWayChanged()</slot>
<hints>
<hint type="sourcelabel">
<x>-1</x>
<y>-1</y>
</hint>
<hint type="destinationlabel">
<x>215</x>
<y>162</y>
</hint>
</hints>
</connection>
</connections>
<slots>
<slot>smartStopWayChanged()</slot>
</slots>
<buttongroups>
<buttongroup name="buttonGroup"/>
<buttongroup name="buttonGroup_2"/>
</buttongroups>
</ui>

5742
client/qrc_mainwindow.cpp Normal file

File diff suppressed because it is too large Load Diff

55
client/settings.cpp Normal file
View File

@ -0,0 +1,55 @@
#include "settings.h"
#include "helper.h"
#include <QSettings>
#include <QStringList>
Settings::Settings()
{
load();
}
Settings::~Settings()
{
save();
}
QVariantMap& Settings::data()
{
return mData;
}
void Settings::save()
{
QSettings settings(PathHelper::pathToSettings(), QSettings::IniFormat);
settings.clear();
for (const QString& e: data().keys())
{
settings.setValue(e, data().value(e));
}
}
void Settings::load()
{
QSettings settings(PathHelper::pathToSettings(), QSettings::IniFormat);
mData.clear();
const QStringList keys = settings.allKeys();
for (const QString& k: keys)
{
mData[k] = settings.value(k);
}
// Show seconds is on by default
if (mData.find(KEY_SHOW_SECONDS) == mData.end())
mData[KEY_SHOW_SECONDS] = true;
}
static Settings* GInstance = nullptr;
Settings& Settings::instance()
{
if (!GInstance)
{
GInstance = new Settings();
GInstance->load();
}
return *GInstance;
}

60
client/settings.h Normal file
View File

@ -0,0 +1,60 @@
#ifndef SETTINGS_H
#define SETTINGS_H
#include "config.h"
#include <QString>
#include <QMap>
#include <QVariant>
#define KEY_AUTOSAVE_PASSWORD "AutosavePassword"
#define KEY_PASSWORD "Password"
#define KEY_SHOW_SECONDS "ShowSeconds"
#define KEY_DB_FILENAME "DbFilename"
#define KEY_DB_FILENAME_SPECIFIED "DbFilenameSpecified"
#define KEY_TIMECOUNTER_TYPE "TimecounterType"
#define KEY_LEFT "Left"
#define KEY_TOP "Top"
#define KEY_WIDTH "Width"
#define KEY_HEIGHT "Height"
#define KEY_MAXIMIZED "Maximized"
#define KEY_SPLITTEROFFSET1 "SplitterOffset1"
#define KEY_SPLITTEROFFSET2 "SplitterOffset2"
#define KEY_TIMESPLITTER_OFFSET1 "TimeSplitterOffset1"
#define KEY_TIMESPLITTER_OFFSET2 "TimeSplitterOffset2"
#define VALUE_TIMECOUNTER_THISDAY "ThisDay"
#define VALUE_TIMECOUNTER_THISSESSION "ThisSession"
#define VALUE_TIMECOUNTER_ALLTIME "AllTime"
#define KEY_SMART_START "SmartStart"
#define KEY_SMART_STOP "SmartStop"
#define KEY_SMART_STOP_MINUTES "SmartStopIntervalInMinutes"
#define KEY_ASK_START "AskStart"
#define KEY_ASK_STOP "AskStop"
#define KEY_SHOW_TRAY_ICON "ShowTrayIcon"
#define KEY_CUMULATIVE_REPORT "CumulativeReport"
#define KEY_SELECTED_TASKS "SelectedTasks"
#define KEY_EXPANDED_TASKS "ExpandedTasks"
#define KEY_RECENT_TASKS "RecentTasks"
class Settings
{
public:
Settings();
~Settings();
void load();
void save();
QVariantMap& data();
static Settings& instance();
protected:
QVariantMap mData;
};
#endif // SETTINGS_H

144183
client/sqlite3.c Normal file

File diff suppressed because it is too large Load Diff

7297
client/sqlite3.h Normal file

File diff suppressed because it is too large Load Diff

487
client/sqlite3ext.h Normal file
View File

@ -0,0 +1,487 @@
/*
** 2006 June 7
**
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** This header file defines the SQLite interface for use by
** shared libraries that want to be imported as extensions into
** an SQLite instance. Shared libraries that intend to be loaded
** as extensions by SQLite should #include this file instead of
** sqlite3.h.
*/
#ifndef _SQLITE3EXT_H_
#define _SQLITE3EXT_H_
#include "sqlite3.h"
typedef struct sqlite3_api_routines sqlite3_api_routines;
/*
** The following structure holds pointers to all of the SQLite API
** routines.
**
** WARNING: In order to maintain backwards compatibility, add new
** interfaces to the end of this structure only. If you insert new
** interfaces in the middle of this structure, then older different
** versions of SQLite will not be able to load each others' shared
** libraries!
*/
struct sqlite3_api_routines {
void * (*aggregate_context)(sqlite3_context*,int nBytes);
int (*aggregate_count)(sqlite3_context*);
int (*bind_blob)(sqlite3_stmt*,int,const void*,int n,void(*)(void*));
int (*bind_double)(sqlite3_stmt*,int,double);
int (*bind_int)(sqlite3_stmt*,int,int);
int (*bind_int64)(sqlite3_stmt*,int,sqlite_int64);
int (*bind_null)(sqlite3_stmt*,int);
int (*bind_parameter_count)(sqlite3_stmt*);
int (*bind_parameter_index)(sqlite3_stmt*,const char*zName);
const char * (*bind_parameter_name)(sqlite3_stmt*,int);
int (*bind_text)(sqlite3_stmt*,int,const char*,int n,void(*)(void*));
int (*bind_text16)(sqlite3_stmt*,int,const void*,int,void(*)(void*));
int (*bind_value)(sqlite3_stmt*,int,const sqlite3_value*);
int (*busy_handler)(sqlite3*,int(*)(void*,int),void*);
int (*busy_timeout)(sqlite3*,int ms);
int (*changes)(sqlite3*);
int (*close)(sqlite3*);
int (*collation_needed)(sqlite3*,void*,void(*)(void*,sqlite3*,
int eTextRep,const char*));
int (*collation_needed16)(sqlite3*,void*,void(*)(void*,sqlite3*,
int eTextRep,const void*));
const void * (*column_blob)(sqlite3_stmt*,int iCol);
int (*column_bytes)(sqlite3_stmt*,int iCol);
int (*column_bytes16)(sqlite3_stmt*,int iCol);
int (*column_count)(sqlite3_stmt*pStmt);
const char * (*column_database_name)(sqlite3_stmt*,int);
const void * (*column_database_name16)(sqlite3_stmt*,int);
const char * (*column_decltype)(sqlite3_stmt*,int i);
const void * (*column_decltype16)(sqlite3_stmt*,int);
double (*column_double)(sqlite3_stmt*,int iCol);
int (*column_int)(sqlite3_stmt*,int iCol);
sqlite_int64 (*column_int64)(sqlite3_stmt*,int iCol);
const char * (*column_name)(sqlite3_stmt*,int);
const void * (*column_name16)(sqlite3_stmt*,int);
const char * (*column_origin_name)(sqlite3_stmt*,int);
const void * (*column_origin_name16)(sqlite3_stmt*,int);
const char * (*column_table_name)(sqlite3_stmt*,int);
const void * (*column_table_name16)(sqlite3_stmt*,int);
const unsigned char * (*column_text)(sqlite3_stmt*,int iCol);
const void * (*column_text16)(sqlite3_stmt*,int iCol);
int (*column_type)(sqlite3_stmt*,int iCol);
sqlite3_value* (*column_value)(sqlite3_stmt*,int iCol);
void * (*commit_hook)(sqlite3*,int(*)(void*),void*);
int (*complete)(const char*sql);
int (*complete16)(const void*sql);
int (*create_collation)(sqlite3*,const char*,int,void*,
int(*)(void*,int,const void*,int,const void*));
int (*create_collation16)(sqlite3*,const void*,int,void*,
int(*)(void*,int,const void*,int,const void*));
int (*create_function)(sqlite3*,const char*,int,int,void*,
void (*xFunc)(sqlite3_context*,int,sqlite3_value**),
void (*xStep)(sqlite3_context*,int,sqlite3_value**),
void (*xFinal)(sqlite3_context*));
int (*create_function16)(sqlite3*,const void*,int,int,void*,
void (*xFunc)(sqlite3_context*,int,sqlite3_value**),
void (*xStep)(sqlite3_context*,int,sqlite3_value**),
void (*xFinal)(sqlite3_context*));
int (*create_module)(sqlite3*,const char*,const sqlite3_module*,void*);
int (*data_count)(sqlite3_stmt*pStmt);
sqlite3 * (*db_handle)(sqlite3_stmt*);
int (*declare_vtab)(sqlite3*,const char*);
int (*enable_shared_cache)(int);
int (*errcode)(sqlite3*db);
const char * (*errmsg)(sqlite3*);
const void * (*errmsg16)(sqlite3*);
int (*exec)(sqlite3*,const char*,sqlite3_callback,void*,char**);
int (*expired)(sqlite3_stmt*);
int (*finalize)(sqlite3_stmt*pStmt);
void (*free)(void*);
void (*free_table)(char**result);
int (*get_autocommit)(sqlite3*);
void * (*get_auxdata)(sqlite3_context*,int);
int (*get_table)(sqlite3*,const char*,char***,int*,int*,char**);
int (*global_recover)(void);
void (*interruptx)(sqlite3*);
sqlite_int64 (*last_insert_rowid)(sqlite3*);
const char * (*libversion)(void);
int (*libversion_number)(void);
void *(*malloc)(int);
char * (*mprintf)(const char*,...);
int (*open)(const char*,sqlite3**);
int (*open16)(const void*,sqlite3**);
int (*prepare)(sqlite3*,const char*,int,sqlite3_stmt**,const char**);
int (*prepare16)(sqlite3*,const void*,int,sqlite3_stmt**,const void**);
void * (*profile)(sqlite3*,void(*)(void*,const char*,sqlite_uint64),void*);
void (*progress_handler)(sqlite3*,int,int(*)(void*),void*);
void *(*realloc)(void*,int);
int (*reset)(sqlite3_stmt*pStmt);
void (*result_blob)(sqlite3_context*,const void*,int,void(*)(void*));
void (*result_double)(sqlite3_context*,double);
void (*result_error)(sqlite3_context*,const char*,int);
void (*result_error16)(sqlite3_context*,const void*,int);
void (*result_int)(sqlite3_context*,int);
void (*result_int64)(sqlite3_context*,sqlite_int64);
void (*result_null)(sqlite3_context*);
void (*result_text)(sqlite3_context*,const char*,int,void(*)(void*));
void (*result_text16)(sqlite3_context*,const void*,int,void(*)(void*));
void (*result_text16be)(sqlite3_context*,const void*,int,void(*)(void*));
void (*result_text16le)(sqlite3_context*,const void*,int,void(*)(void*));
void (*result_value)(sqlite3_context*,sqlite3_value*);
void * (*rollback_hook)(sqlite3*,void(*)(void*),void*);
int (*set_authorizer)(sqlite3*,int(*)(void*,int,const char*,const char*,
const char*,const char*),void*);
void (*set_auxdata)(sqlite3_context*,int,void*,void (*)(void*));
char * (*snprintf)(int,char*,const char*,...);
int (*step)(sqlite3_stmt*);
int (*table_column_metadata)(sqlite3*,const char*,const char*,const char*,
char const**,char const**,int*,int*,int*);
void (*thread_cleanup)(void);
int (*total_changes)(sqlite3*);
void * (*trace)(sqlite3*,void(*xTrace)(void*,const char*),void*);
int (*transfer_bindings)(sqlite3_stmt*,sqlite3_stmt*);
void * (*update_hook)(sqlite3*,void(*)(void*,int ,char const*,char const*,
sqlite_int64),void*);
void * (*user_data)(sqlite3_context*);
const void * (*value_blob)(sqlite3_value*);
int (*value_bytes)(sqlite3_value*);
int (*value_bytes16)(sqlite3_value*);
double (*value_double)(sqlite3_value*);
int (*value_int)(sqlite3_value*);
sqlite_int64 (*value_int64)(sqlite3_value*);
int (*value_numeric_type)(sqlite3_value*);
const unsigned char * (*value_text)(sqlite3_value*);
const void * (*value_text16)(sqlite3_value*);
const void * (*value_text16be)(sqlite3_value*);
const void * (*value_text16le)(sqlite3_value*);
int (*value_type)(sqlite3_value*);
char *(*vmprintf)(const char*,va_list);
/* Added ??? */
int (*overload_function)(sqlite3*, const char *zFuncName, int nArg);
/* Added by 3.3.13 */
int (*prepare_v2)(sqlite3*,const char*,int,sqlite3_stmt**,const char**);
int (*prepare16_v2)(sqlite3*,const void*,int,sqlite3_stmt**,const void**);
int (*clear_bindings)(sqlite3_stmt*);
/* Added by 3.4.1 */
int (*create_module_v2)(sqlite3*,const char*,const sqlite3_module*,void*,
void (*xDestroy)(void *));
/* Added by 3.5.0 */
int (*bind_zeroblob)(sqlite3_stmt*,int,int);
int (*blob_bytes)(sqlite3_blob*);
int (*blob_close)(sqlite3_blob*);
int (*blob_open)(sqlite3*,const char*,const char*,const char*,sqlite3_int64,
int,sqlite3_blob**);
int (*blob_read)(sqlite3_blob*,void*,int,int);
int (*blob_write)(sqlite3_blob*,const void*,int,int);
int (*create_collation_v2)(sqlite3*,const char*,int,void*,
int(*)(void*,int,const void*,int,const void*),
void(*)(void*));
int (*file_control)(sqlite3*,const char*,int,void*);
sqlite3_int64 (*memory_highwater)(int);
sqlite3_int64 (*memory_used)(void);
sqlite3_mutex *(*mutex_alloc)(int);
void (*mutex_enter)(sqlite3_mutex*);
void (*mutex_free)(sqlite3_mutex*);
void (*mutex_leave)(sqlite3_mutex*);
int (*mutex_try)(sqlite3_mutex*);
int (*open_v2)(const char*,sqlite3**,int,const char*);
int (*release_memory)(int);
void (*result_error_nomem)(sqlite3_context*);
void (*result_error_toobig)(sqlite3_context*);
int (*sleep)(int);
void (*soft_heap_limit)(int);
sqlite3_vfs *(*vfs_find)(const char*);
int (*vfs_register)(sqlite3_vfs*,int);
int (*vfs_unregister)(sqlite3_vfs*);
int (*xthreadsafe)(void);
void (*result_zeroblob)(sqlite3_context*,int);
void (*result_error_code)(sqlite3_context*,int);
int (*test_control)(int, ...);
void (*randomness)(int,void*);
sqlite3 *(*context_db_handle)(sqlite3_context*);
int (*extended_result_codes)(sqlite3*,int);
int (*limit)(sqlite3*,int,int);
sqlite3_stmt *(*next_stmt)(sqlite3*,sqlite3_stmt*);
const char *(*sql)(sqlite3_stmt*);
int (*status)(int,int*,int*,int);
int (*backup_finish)(sqlite3_backup*);
sqlite3_backup *(*backup_init)(sqlite3*,const char*,sqlite3*,const char*);
int (*backup_pagecount)(sqlite3_backup*);
int (*backup_remaining)(sqlite3_backup*);
int (*backup_step)(sqlite3_backup*,int);
const char *(*compileoption_get)(int);
int (*compileoption_used)(const char*);
int (*create_function_v2)(sqlite3*,const char*,int,int,void*,
void (*xFunc)(sqlite3_context*,int,sqlite3_value**),
void (*xStep)(sqlite3_context*,int,sqlite3_value**),
void (*xFinal)(sqlite3_context*),
void(*xDestroy)(void*));
int (*db_config)(sqlite3*,int,...);
sqlite3_mutex *(*db_mutex)(sqlite3*);
int (*db_status)(sqlite3*,int,int*,int*,int);
int (*extended_errcode)(sqlite3*);
void (*log)(int,const char*,...);
sqlite3_int64 (*soft_heap_limit64)(sqlite3_int64);
const char *(*sourceid)(void);
int (*stmt_status)(sqlite3_stmt*,int,int);
int (*strnicmp)(const char*,const char*,int);
int (*unlock_notify)(sqlite3*,void(*)(void**,int),void*);
int (*wal_autocheckpoint)(sqlite3*,int);
int (*wal_checkpoint)(sqlite3*,const char*);
void *(*wal_hook)(sqlite3*,int(*)(void*,sqlite3*,const char*,int),void*);
int (*blob_reopen)(sqlite3_blob*,sqlite3_int64);
int (*vtab_config)(sqlite3*,int op,...);
int (*vtab_on_conflict)(sqlite3*);
/* Version 3.7.16 and later */
int (*close_v2)(sqlite3*);
const char *(*db_filename)(sqlite3*,const char*);
int (*db_readonly)(sqlite3*,const char*);
int (*db_release_memory)(sqlite3*);
const char *(*errstr)(int);
int (*stmt_busy)(sqlite3_stmt*);
int (*stmt_readonly)(sqlite3_stmt*);
int (*stricmp)(const char*,const char*);
int (*uri_boolean)(const char*,const char*,int);
sqlite3_int64 (*uri_int64)(const char*,const char*,sqlite3_int64);
const char *(*uri_parameter)(const char*,const char*);
char *(*vsnprintf)(int,char*,const char*,va_list);
int (*wal_checkpoint_v2)(sqlite3*,const char*,int,int*,int*);
};
/*
** The following macros redefine the API routines so that they are
** redirected throught the global sqlite3_api structure.
**
** This header file is also used by the loadext.c source file
** (part of the main SQLite library - not an extension) so that
** it can get access to the sqlite3_api_routines structure
** definition. But the main library does not want to redefine
** the API. So the redefinition macros are only valid if the
** SQLITE_CORE macros is undefined.
*/
#ifndef SQLITE_CORE
#define sqlite3_aggregate_context sqlite3_api->aggregate_context
#ifndef SQLITE_OMIT_DEPRECATED
#define sqlite3_aggregate_count sqlite3_api->aggregate_count
#endif
#define sqlite3_bind_blob sqlite3_api->bind_blob
#define sqlite3_bind_double sqlite3_api->bind_double
#define sqlite3_bind_int sqlite3_api->bind_int
#define sqlite3_bind_int64 sqlite3_api->bind_int64
#define sqlite3_bind_null sqlite3_api->bind_null
#define sqlite3_bind_parameter_count sqlite3_api->bind_parameter_count
#define sqlite3_bind_parameter_index sqlite3_api->bind_parameter_index
#define sqlite3_bind_parameter_name sqlite3_api->bind_parameter_name
#define sqlite3_bind_text sqlite3_api->bind_text
#define sqlite3_bind_text16 sqlite3_api->bind_text16
#define sqlite3_bind_value sqlite3_api->bind_value
#define sqlite3_busy_handler sqlite3_api->busy_handler
#define sqlite3_busy_timeout sqlite3_api->busy_timeout
#define sqlite3_changes sqlite3_api->changes
#define sqlite3_close sqlite3_api->close
#define sqlite3_collation_needed sqlite3_api->collation_needed
#define sqlite3_collation_needed16 sqlite3_api->collation_needed16
#define sqlite3_column_blob sqlite3_api->column_blob
#define sqlite3_column_bytes sqlite3_api->column_bytes
#define sqlite3_column_bytes16 sqlite3_api->column_bytes16
#define sqlite3_column_count sqlite3_api->column_count
#define sqlite3_column_database_name sqlite3_api->column_database_name
#define sqlite3_column_database_name16 sqlite3_api->column_database_name16
#define sqlite3_column_decltype sqlite3_api->column_decltype
#define sqlite3_column_decltype16 sqlite3_api->column_decltype16
#define sqlite3_column_double sqlite3_api->column_double
#define sqlite3_column_int sqlite3_api->column_int
#define sqlite3_column_int64 sqlite3_api->column_int64
#define sqlite3_column_name sqlite3_api->column_name
#define sqlite3_column_name16 sqlite3_api->column_name16
#define sqlite3_column_origin_name sqlite3_api->column_origin_name
#define sqlite3_column_origin_name16 sqlite3_api->column_origin_name16
#define sqlite3_column_table_name sqlite3_api->column_table_name
#define sqlite3_column_table_name16 sqlite3_api->column_table_name16
#define sqlite3_column_text sqlite3_api->column_text
#define sqlite3_column_text16 sqlite3_api->column_text16
#define sqlite3_column_type sqlite3_api->column_type
#define sqlite3_column_value sqlite3_api->column_value
#define sqlite3_commit_hook sqlite3_api->commit_hook
#define sqlite3_complete sqlite3_api->complete
#define sqlite3_complete16 sqlite3_api->complete16
#define sqlite3_create_collation sqlite3_api->create_collation
#define sqlite3_create_collation16 sqlite3_api->create_collation16
#define sqlite3_create_function sqlite3_api->create_function
#define sqlite3_create_function16 sqlite3_api->create_function16
#define sqlite3_create_module sqlite3_api->create_module
#define sqlite3_create_module_v2 sqlite3_api->create_module_v2
#define sqlite3_data_count sqlite3_api->data_count
#define sqlite3_db_handle sqlite3_api->db_handle
#define sqlite3_declare_vtab sqlite3_api->declare_vtab
#define sqlite3_enable_shared_cache sqlite3_api->enable_shared_cache
#define sqlite3_errcode sqlite3_api->errcode
#define sqlite3_errmsg sqlite3_api->errmsg
#define sqlite3_errmsg16 sqlite3_api->errmsg16
#define sqlite3_exec sqlite3_api->exec
#ifndef SQLITE_OMIT_DEPRECATED
#define sqlite3_expired sqlite3_api->expired
#endif
#define sqlite3_finalize sqlite3_api->finalize
#define sqlite3_free sqlite3_api->free
#define sqlite3_free_table sqlite3_api->free_table
#define sqlite3_get_autocommit sqlite3_api->get_autocommit
#define sqlite3_get_auxdata sqlite3_api->get_auxdata
#define sqlite3_get_table sqlite3_api->get_table
#ifndef SQLITE_OMIT_DEPRECATED
#define sqlite3_global_recover sqlite3_api->global_recover
#endif
#define sqlite3_interrupt sqlite3_api->interruptx
#define sqlite3_last_insert_rowid sqlite3_api->last_insert_rowid
#define sqlite3_libversion sqlite3_api->libversion
#define sqlite3_libversion_number sqlite3_api->libversion_number
#define sqlite3_malloc sqlite3_api->malloc
#define sqlite3_mprintf sqlite3_api->mprintf
#define sqlite3_open sqlite3_api->open
#define sqlite3_open16 sqlite3_api->open16
#define sqlite3_prepare sqlite3_api->prepare
#define sqlite3_prepare16 sqlite3_api->prepare16
#define sqlite3_prepare_v2 sqlite3_api->prepare_v2
#define sqlite3_prepare16_v2 sqlite3_api->prepare16_v2
#define sqlite3_profile sqlite3_api->profile
#define sqlite3_progress_handler sqlite3_api->progress_handler
#define sqlite3_realloc sqlite3_api->realloc
#define sqlite3_reset sqlite3_api->reset
#define sqlite3_result_blob sqlite3_api->result_blob
#define sqlite3_result_double sqlite3_api->result_double
#define sqlite3_result_error sqlite3_api->result_error
#define sqlite3_result_error16 sqlite3_api->result_error16
#define sqlite3_result_int sqlite3_api->result_int
#define sqlite3_result_int64 sqlite3_api->result_int64
#define sqlite3_result_null sqlite3_api->result_null
#define sqlite3_result_text sqlite3_api->result_text
#define sqlite3_result_text16 sqlite3_api->result_text16
#define sqlite3_result_text16be sqlite3_api->result_text16be
#define sqlite3_result_text16le sqlite3_api->result_text16le
#define sqlite3_result_value sqlite3_api->result_value
#define sqlite3_rollback_hook sqlite3_api->rollback_hook
#define sqlite3_set_authorizer sqlite3_api->set_authorizer
#define sqlite3_set_auxdata sqlite3_api->set_auxdata
#define sqlite3_snprintf sqlite3_api->snprintf
#define sqlite3_step sqlite3_api->step
#define sqlite3_table_column_metadata sqlite3_api->table_column_metadata
#define sqlite3_thread_cleanup sqlite3_api->thread_cleanup
#define sqlite3_total_changes sqlite3_api->total_changes
#define sqlite3_trace sqlite3_api->trace
#ifndef SQLITE_OMIT_DEPRECATED
#define sqlite3_transfer_bindings sqlite3_api->transfer_bindings
#endif
#define sqlite3_update_hook sqlite3_api->update_hook
#define sqlite3_user_data sqlite3_api->user_data
#define sqlite3_value_blob sqlite3_api->value_blob
#define sqlite3_value_bytes sqlite3_api->value_bytes
#define sqlite3_value_bytes16 sqlite3_api->value_bytes16
#define sqlite3_value_double sqlite3_api->value_double
#define sqlite3_value_int sqlite3_api->value_int
#define sqlite3_value_int64 sqlite3_api->value_int64
#define sqlite3_value_numeric_type sqlite3_api->value_numeric_type
#define sqlite3_value_text sqlite3_api->value_text
#define sqlite3_value_text16 sqlite3_api->value_text16
#define sqlite3_value_text16be sqlite3_api->value_text16be
#define sqlite3_value_text16le sqlite3_api->value_text16le
#define sqlite3_value_type sqlite3_api->value_type
#define sqlite3_vmprintf sqlite3_api->vmprintf
#define sqlite3_overload_function sqlite3_api->overload_function
#define sqlite3_prepare_v2 sqlite3_api->prepare_v2
#define sqlite3_prepare16_v2 sqlite3_api->prepare16_v2
#define sqlite3_clear_bindings sqlite3_api->clear_bindings
#define sqlite3_bind_zeroblob sqlite3_api->bind_zeroblob
#define sqlite3_blob_bytes sqlite3_api->blob_bytes
#define sqlite3_blob_close sqlite3_api->blob_close
#define sqlite3_blob_open sqlite3_api->blob_open
#define sqlite3_blob_read sqlite3_api->blob_read
#define sqlite3_blob_write sqlite3_api->blob_write
#define sqlite3_create_collation_v2 sqlite3_api->create_collation_v2
#define sqlite3_file_control sqlite3_api->file_control
#define sqlite3_memory_highwater sqlite3_api->memory_highwater
#define sqlite3_memory_used sqlite3_api->memory_used
#define sqlite3_mutex_alloc sqlite3_api->mutex_alloc
#define sqlite3_mutex_enter sqlite3_api->mutex_enter
#define sqlite3_mutex_free sqlite3_api->mutex_free
#define sqlite3_mutex_leave sqlite3_api->mutex_leave
#define sqlite3_mutex_try sqlite3_api->mutex_try
#define sqlite3_open_v2 sqlite3_api->open_v2
#define sqlite3_release_memory sqlite3_api->release_memory
#define sqlite3_result_error_nomem sqlite3_api->result_error_nomem
#define sqlite3_result_error_toobig sqlite3_api->result_error_toobig
#define sqlite3_sleep sqlite3_api->sleep
#define sqlite3_soft_heap_limit sqlite3_api->soft_heap_limit
#define sqlite3_vfs_find sqlite3_api->vfs_find
#define sqlite3_vfs_register sqlite3_api->vfs_register
#define sqlite3_vfs_unregister sqlite3_api->vfs_unregister
#define sqlite3_threadsafe sqlite3_api->xthreadsafe
#define sqlite3_result_zeroblob sqlite3_api->result_zeroblob
#define sqlite3_result_error_code sqlite3_api->result_error_code
#define sqlite3_test_control sqlite3_api->test_control
#define sqlite3_randomness sqlite3_api->randomness
#define sqlite3_context_db_handle sqlite3_api->context_db_handle
#define sqlite3_extended_result_codes sqlite3_api->extended_result_codes
#define sqlite3_limit sqlite3_api->limit
#define sqlite3_next_stmt sqlite3_api->next_stmt
#define sqlite3_sql sqlite3_api->sql
#define sqlite3_status sqlite3_api->status
#define sqlite3_backup_finish sqlite3_api->backup_finish
#define sqlite3_backup_init sqlite3_api->backup_init
#define sqlite3_backup_pagecount sqlite3_api->backup_pagecount
#define sqlite3_backup_remaining sqlite3_api->backup_remaining
#define sqlite3_backup_step sqlite3_api->backup_step
#define sqlite3_compileoption_get sqlite3_api->compileoption_get
#define sqlite3_compileoption_used sqlite3_api->compileoption_used
#define sqlite3_create_function_v2 sqlite3_api->create_function_v2
#define sqlite3_db_config sqlite3_api->db_config
#define sqlite3_db_mutex sqlite3_api->db_mutex
#define sqlite3_db_status sqlite3_api->db_status
#define sqlite3_extended_errcode sqlite3_api->extended_errcode
#define sqlite3_log sqlite3_api->log
#define sqlite3_soft_heap_limit64 sqlite3_api->soft_heap_limit64
#define sqlite3_sourceid sqlite3_api->sourceid
#define sqlite3_stmt_status sqlite3_api->stmt_status
#define sqlite3_strnicmp sqlite3_api->strnicmp
#define sqlite3_unlock_notify sqlite3_api->unlock_notify
#define sqlite3_wal_autocheckpoint sqlite3_api->wal_autocheckpoint
#define sqlite3_wal_checkpoint sqlite3_api->wal_checkpoint
#define sqlite3_wal_hook sqlite3_api->wal_hook
#define sqlite3_blob_reopen sqlite3_api->blob_reopen
#define sqlite3_vtab_config sqlite3_api->vtab_config
#define sqlite3_vtab_on_conflict sqlite3_api->vtab_on_conflict
/* Version 3.7.16 and later */
#define sqlite3_close_v2 sqlite3_api->close_v2
#define sqlite3_db_filename sqlite3_api->db_filename
#define sqlite3_db_readonly sqlite3_api->db_readonly
#define sqlite3_db_release_memory sqlite3_api->db_release_memory
#define sqlite3_errstr sqlite3_api->errstr
#define sqlite3_stmt_busy sqlite3_api->stmt_busy
#define sqlite3_stmt_readonly sqlite3_api->stmt_readonly
#define sqlite3_stricmp sqlite3_api->stricmp
#define sqlite3_uri_boolean sqlite3_api->uri_boolean
#define sqlite3_uri_int64 sqlite3_api->uri_int64
#define sqlite3_uri_parameter sqlite3_api->uri_parameter
#define sqlite3_uri_vsnprintf sqlite3_api->vsnprintf
#define sqlite3_wal_checkpoint_v2 sqlite3_api->wal_checkpoint_v2
#endif /* SQLITE_CORE */
#ifndef SQLITE_CORE
/* This case when the file really is being compiled as a loadable
** extension */
# define SQLITE_EXTENSION_INIT1 const sqlite3_api_routines *sqlite3_api=0;
# define SQLITE_EXTENSION_INIT2(v) sqlite3_api=v;
# define SQLITE_EXTENSION_INIT3 \
extern const sqlite3_api_routines *sqlite3_api;
#else
/* This case when the file is being statically linked into the
** application */
# define SQLITE_EXTENSION_INIT1 /*no-op*/
# define SQLITE_EXTENSION_INIT2(v) (void)v; /* unused parameter */
# define SQLITE_EXTENSION_INIT3 /*no-op*/
#endif
#endif /* _SQLITE3EXT_H_ */

View File

@ -0,0 +1,35 @@
#include "startworkdialog.h"
#include "ui_startworkdialog.h"
StartWorkDialog::StartWorkDialog(PTask task, QWidget *parent) :
QDialog(parent),
ui(new Ui::StartWorkDialog)
{
ui->setupUi(this);
setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
if (task)
ui->mInfoLabel->setText(ui->mInfoLabel->text().replace("%TASK%", task->title()));
}
StartWorkDialog::~StartWorkDialog()
{
delete ui;
}
void StartWorkDialog::onYesButtonTriggered()
{
emit continueTracking();
done(ContinueTracking);
}
void StartWorkDialog::onNoButtonTriggered()
{
emit breakTracking();
done(BreakTracking);
}
void StartWorkDialog::onFinishTimerTriggered()
{
emit breakTracking();
done(BreakTracking);
}

39
client/startworkdialog.h Normal file
View File

@ -0,0 +1,39 @@
#ifndef STARTWORKDIALOG_H
#define STARTWORKDIALOG_H
#include <QDialog>
#include "task.h"
namespace Ui {
class StartWorkDialog;
}
class StartWorkDialog : public QDialog
{
Q_OBJECT
public:
enum Result
{
ContinueTracking,
BreakTracking
};
explicit StartWorkDialog(PTask task, QWidget *parent = 0);
~StartWorkDialog();
signals:
void continueTracking();
void breakTracking();
private:
Ui::StartWorkDialog *ui;
QTimer* mFinishTimer;
private slots:
void onYesButtonTriggered();
void onNoButtonTriggered();
void onFinishTimerTriggered();
};
#endif // STARTWORKDIALOG_H

147
client/startworkdialog.ui Normal file
View File

@ -0,0 +1,147 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>StartWorkDialog</class>
<widget class="QDialog" name="StartWorkDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>394</width>
<height>61</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<property name="sizeGripEnabled">
<bool>false</bool>
</property>
<widget class="QLabel" name="mInfoLabel">
<property name="geometry">
<rect>
<x>2</x>
<y>2</y>
<width>276</width>
<height>51</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Litt discovered user activity after idle interval.
Should Litt start tracking on %TASK%?</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="margin">
<number>4</number>
</property>
</widget>
<widget class="QToolButton" name="mYesButton">
<property name="geometry">
<rect>
<x>280</x>
<y>4</y>
<width>111</width>
<height>25</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Yes</string>
</property>
<property name="popupMode">
<enum>QToolButton::DelayedPopup</enum>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextOnly</enum>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
<widget class="QToolButton" name="mNoButton">
<property name="geometry">
<rect>
<x>280</x>
<y>34</y>
<width>111</width>
<height>25</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>No</string>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextOnly</enum>
</property>
</widget>
</widget>
<resources/>
<connections>
<connection>
<sender>mYesButton</sender>
<signal>clicked()</signal>
<receiver>StartWorkDialog</receiver>
<slot>onYesButtonTriggered()</slot>
<hints>
<hint type="sourcelabel">
<x>335</x>
<y>16</y>
</hint>
<hint type="destinationlabel">
<x>196</x>
<y>30</y>
</hint>
</hints>
</connection>
<connection>
<sender>mNoButton</sender>
<signal>clicked()</signal>
<receiver>StartWorkDialog</receiver>
<slot>onNoButtonTriggered()</slot>
<hints>
<hint type="sourcelabel">
<x>335</x>
<y>46</y>
</hint>
<hint type="destinationlabel">
<x>196</x>
<y>30</y>
</hint>
</hints>
</connection>
</connections>
<slots>
<slot>onYesButtonTriggered()</slot>
<slot>onNoButtonTriggered()</slot>
</slots>
</ui>

50
client/stopworkdialog.cpp Normal file
View File

@ -0,0 +1,50 @@
#include "stopworkdialog.h"
#include "ui_stopworkdialog.h"
StopWorkDialog::StopWorkDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::StopWorkDialog),
mFinishTimer(nullptr)
{
ui->setupUi(this);
setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
mStopTimeUtc = QDateTime::currentDateTimeUtc();
mStopTime = QDateTime::currentDateTime();
// Put stop time to text
QString newText = ui->mInfoLabel->text().replace("%TIME%", mStopTime.time().toString());
ui->mInfoLabel->setText(newText);
/*mFinishTimer = new QTimer(this);
mFinishTimer->setSingleShot(true);
mFinishTimer->setInterval(30000);
connect(mFinishTimer, SIGNAL(timeout()), this, SLOT(onFinishTimerTriggered()));
mFinishTimer->start();
QTimer::singleShot(30000, this, SLOT(onFinishTimerTriggered()));
*/
}
StopWorkDialog::~StopWorkDialog()
{
delete ui;
}
void StopWorkDialog::onYesButtonTriggered()
{
emit continueTracking();
done(ContinueTracking);
}
void StopWorkDialog::onNoButtonTriggered()
{
emit breakTracking(mStopTimeUtc);
done(BreakTracking);
}
void StopWorkDialog::onFinishTimerTriggered()
{
emit breakTracking(mStopTimeUtc);
done(BreakTracking);
}

41
client/stopworkdialog.h Normal file
View File

@ -0,0 +1,41 @@
#ifndef STOPWORKDIALOG_H
#define STOPWORKDIALOG_H
#include <QDialog>
#include <QTimer>
#include <QDateTime>
namespace Ui {
class StopWorkDialog;
}
class StopWorkDialog : public QDialog
{
Q_OBJECT
public:
enum Result
{
ContinueTracking,
BreakTracking
};
explicit StopWorkDialog(QWidget *parent = 0);
~StopWorkDialog();
signals:
void continueTracking();
void breakTracking(const QDateTime& stopTime);
private:
Ui::StopWorkDialog *ui;
QTimer* mFinishTimer;
QDateTime mStopTimeUtc, mStopTime;
private slots:
void onYesButtonTriggered();
void onNoButtonTriggered();
void onFinishTimerTriggered();
};
#endif // STOPWORKDIALOG_H

118
client/stopworkdialog.ui Normal file
View File

@ -0,0 +1,118 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>StopWorkDialog</class>
<widget class="QDialog" name="StopWorkDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>386</width>
<height>59</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QLabel" name="mInfoLabel">
<property name="geometry">
<rect>
<x>7</x>
<y>3</y>
<width>241</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Litt discovered idle interval at %TIME%.
Should app to continue work tracking?</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
<widget class="QToolButton" name="mYesButton">
<property name="geometry">
<rect>
<x>270</x>
<y>3</y>
<width>111</width>
<height>25</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Yes</string>
</property>
</widget>
<widget class="QToolButton" name="mNoButton">
<property name="geometry">
<rect>
<x>270</x>
<y>32</y>
<width>111</width>
<height>25</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>No</string>
</property>
</widget>
</widget>
<resources/>
<connections>
<connection>
<sender>mYesButton</sender>
<signal>clicked()</signal>
<receiver>StopWorkDialog</receiver>
<slot>onYesButtonTriggered()</slot>
<hints>
<hint type="sourcelabel">
<x>307</x>
<y>15</y>
</hint>
<hint type="destinationlabel">
<x>182</x>
<y>29</y>
</hint>
</hints>
</connection>
<connection>
<sender>mNoButton</sender>
<signal>clicked()</signal>
<receiver>StopWorkDialog</receiver>
<slot>onNoButtonTriggered()</slot>
<hints>
<hint type="sourcelabel">
<x>307</x>
<y>44</y>
</hint>
<hint type="destinationlabel">
<x>182</x>
<y>29</y>
</hint>
</hints>
</connection>
</connections>
<slots>
<slot>onYesButtonTriggered()</slot>
<slot>onNoButtonTriggered()</slot>
<slot>onFinishTimerTriggered()</slot>
</slots>
</ui>

654
client/storage.cpp Normal file
View File

@ -0,0 +1,654 @@
#include "storage.h"
#include <QVariant>
#include <assert.h>
#include <encryption.h>
#ifdef TARGET_WIN
# include <WinSock2.h>
#endif
enum class DbProperty
{
Version = 1,
InternalCipher = 2
};
#define CURRENT_DBVERSION "0"
// Function to make encryption. Input is raw content blob, output is blob with IV, original length and encrypted data.
static void EncryptBlob(const QByteArray& input, QByteArray& output)
{
TwofishCipher cipher;
// Generate 16 bytes IV
QByteArray iv(16, 0);
IV::Generate(iv);
cipher.setIV(iv);
// Make padding
int padded = (input.length() % cipher.blocksize()) ? (cipher.blocksize() - input.length() % cipher.blocksize()) : 0;
// Prepare output buffer
output.resize(iv.length() + 4 + input.length() + padded);
// Copy IV
memcpy(output.data(), iv.data(), iv.length());
// Copy original length in network byte order
uint32_t lengthNbo = htonl(input.length());
memcpy(output.data() + iv.length(), &lengthNbo, 4);
// Encrypt
cipher.encrypt(input, 0, output, iv.length() + 4);
}
static void DecryptBlob(const QByteArray& input, QByteArray& output)
{
TwofishCipher cipher;
assert(input.length() >= cipher.blocksize() + 4);
// Read IV
QByteArray iv(input.data(), cipher.blocksize());
// Read original length
uint32_t lengthNbo;
memcpy(&lengthNbo, input.data() + iv.length(), 4);
// Prepare output buffer
output.resize(input.length() - iv.length() - 4);
// Set IV
cipher.setIV(iv);
// Decrypt data
cipher.decrypt(input, iv.length() + 4, output, 0);
// Truncate to original size
output.truncate(ntohl(lengthNbo));
}
Storage::Storage()
{
}
Storage::~Storage()
{
close();
}
QString Storage::path()
{
return mPath;
}
void Storage::setPath(const QString &path)
{
mPath = path;
}
QString Storage::key()
{
return mKey;
}
void Storage::setKey(const QString &key)
{
mKey = key;
}
SQLite::Database& Storage::database()
{
return *mDatabase;
}
bool Storage::create()
{
assert(!mPath.isEmpty());
try
{
mDatabase = QSharedPointer<SQLite::Database>(new SQLite::Database(mPath.toStdString().c_str(), SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE ));
}
catch(std::exception& e)
{
return false;
}
#ifdef USE_ENCRYPTED_DB
try
{
std::string keyQuery = "pragma key='" + mKey.toStdString() + "'";
mDatabase->exec(keyQuery.c_str());
mDatabase->exec("pragma locking_mode=EXCLUSIVE");
mDatabase->exec("pragma journal_mode=MEMORY");
mDatabase->exec("pragma temp_store=MEMORY");
}
catch(std::exception& e)
{
return false;
}
#endif
try
{
// Timeline
mDatabase->exec("CREATE TABLE timeline (id INTEGER PRIMARY KEY, removed INTEGER, taskid INTEGER, starttime TEXT, endtime TEXT, synctime TEXT)");
mDatabase->exec("CREATE INDEX timeline_taskid_index ON timeline(taskid ASC)");
// Tasks tree
mDatabase->exec("CREATE TABLE task (type INTEGER, removed INTEGER, modifytime TEXT, id INTEGER PRIMARY KEY, parentid INTEGER, orderid INTEGER, title TEXT, html TEXT, flags INTEGER, synctime1 TEXT, synctime2 TEXT)");
mDatabase->exec("CREATE INDEX task_parentid_index ON task(parentid ASC)");
// Attachments
mDatabase->exec("CREATE TABLE file (id INTEGER PRIMARY KEY, removed INTEGER, taskid INTEGER, filename TEXT, content BLOB, orderid INTEGER, synctime TEXT)");
mDatabase->exec("CREATE INDEX file_taskid_index ON file(taskid ASC)");
// Sync status
mDatabase->exec("CREATE TABLE syncs (datetime TEXT, status TEXT)");
}
catch(std::exception& e)
{
return false;
}
return true;
}
bool Storage::open()
{
assert(!mPath.isEmpty());
try
{
mDatabase = QSharedPointer<SQLite::Database>(new SQLite::Database(mPath.toStdString().c_str(), SQLITE_OPEN_READWRITE));
mDatabase->exec("pragma key='" + mKey.toStdString() + "'");
SQLite::Statement q(*mDatabase, "select count(*) from sqlite_master");
if (!q.executeStep())
return false;
mDatabase->exec("pragma locking_mode=EXCLUSIVE");
mDatabase->exec("pragma journal_mode=MEMORY");
mDatabase->exec("pragma temp_store=MEMORY");
}
catch(std::exception& e)
{
return false;
}
loadTaskTree();
return true;
}
void Storage::close()
{
if (mDatabase)
{
mDatabase.clear();
}
}
bool Storage::hasTable(const QString& tablename)
{
SQLite::Statement tableQuery(*mDatabase, "SELECT name FROM sqlite_master WHERE type='table' AND name=:tablename");
tableQuery.bind(":tablename", tablename.toStdString());
return tableQuery.executeStep();
}
bool Storage::upgrade()
{
int currentVersion = 0;
// Check if properties table is here
if (!mDatabase)
return false;
if (!hasTable("properties"))
{
// If not - create it and consider database version 0
SQLite::Statement createQuery(*mDatabase, "create table properties(type INTEGER, value TEXT)");
if (!createQuery.exec())
return false;
// Insert version 0
SQLite::Statement insertVersionQuery(*mDatabase, "insert into properties(type, value) values(:proptype, :proptext)");
insertVersionQuery.bind(":proptype", (int)DbProperty::Version);
insertVersionQuery.bind(":proptext", "0");
}
else
{
// If yes - get database version from 'dbversion' key
SQLite::Statement versionQuery(*mDatabase, "select value from properties where type=:proptype");
versionQuery.bind(":proptype", (int)DbProperty::Version);
if (!versionQuery.executeStep())
return false;
QString dbVersionText = versionQuery.getColumn(0).getText("");
if (dbVersionText.isEmpty())
return false;
bool ok = false;
currentVersion = dbVersionText.toInt(&ok);
if (!ok)
return false;
}
// Depending on obtained version upgrade database
switch (currentVersion)
{
case 0:
if (!upgradeFromVersion0())
return false;
break;
}
// Update version number after upgrade
SQLite::Statement updateVersion(*mDatabase, "update table properties set value=:proptext where type=:proptype");
updateVersion.bind(":proptext", CURRENT_DBVERSION);
updateVersion.bind(":proptype", (int)DbProperty::Version);
updateVersion.exec();
return true;
}
bool Storage::upgradeFromVersion0()
{
/*
// Upgrade tasks table
SQLite::Statement addEncryptedTitle(*mDatabase, "alter table task add column title_encrypted BLOB");
if (!addEncryptedTitle.exec())
return false;
SQLite::Statement addEncryptedContent(*mDatabase, "alter table task add column content_encrypted BLOB");
if (!addEncryptedContent.exec())
return false;
SQLite::Statement addEncryptedAttachments(*mDatabase, "alter table attachment add column content_encrypted BLOB");
if (!addEncryptedAttachments.exec())
return false;
// Database scheme is upgraded here, convert the data
SQLite::Statement tasks(*mDatabase, "select id, title, html from task");
while (tasks.executeStep())
{
// TODO
}
// Iterate all notes and attachments and make them Twofish encrypted
mTaskToUpgrade.resize(topOfTaskTree().size());
std::copy(topOfTaskTree().begin(), topOfTaskTree().end(), mTaskToUpgrade);
for (PTask task: mTaskToUpgrade)
{
encryptTaskContent(task);
//encryptTaskAttachment(task);
// Add children to list
int tl = mTaskToUpgrade.length();
mTaskToUpgrade.resize(mTaskToUpgrade.size() + task->children().size());
std::copy(task->children().begin(), task->children().end(), mTaskToUpgrade.begin() + tl);
}
*/
return true;
}
bool Storage::encryptTask(PTask task)
{
return false;
}
bool Storage::encryptTaskContent(PTask task)
{
}
bool Storage::encryptTaskAttachment(PAttachment attachment)
{
return false;
}
PTask Storage::createTask(int index)
{
if (!mDatabase)
return PTask();
SQLite::Statement insertQuery(*mDatabase, "insert into task(id, title, html, parentid, orderid, type, flags) values(NULL, :title, :html, NULL, :orderid, 0, 0)");
insertQuery.bind(":title", "");
insertQuery.bind(":html", "");
insertQuery.bind(":orderid", index);
if (insertQuery.exec())
{
PTask result(new Task());
result->setId(database().getLastInsertRowid());
result->setIndex(index);
mTaskModelIdMap[result->modelId()] = result;
mTaskIdMap[result->id()] = result;
if (index > mTopTasks.size())
mTopTasks.push_back(result);
else
{
mTopTasks.insert(mTopTasks.begin() + index, result);
// Assign new indexes for top tasks
for (int i=0; i<mTopTasks.size(); i++)
{
mTopTasks[i]->setIndex(i);
mTopTasks[i]->save();
}
}
return result;
}
else
return PTask();
}
PTask Storage::createTask(PTask parent, int index)
{
if (!parent)
return createTask(index);
if (!mDatabase)
return PTask();
SQLite::Statement insertQuery(database(), "insert into task(id, title, html, parentid, orderid, type, flags) values(NULL, :title, :html, :parentid, :orderid, 0, 0)");
insertQuery.bind(":title", "");
insertQuery.bind(":html", "");
insertQuery.bind(":parentid", (sqlite3_int64)parent->id());
insertQuery.bind(":orderid", index);
if (insertQuery.exec())
{
PTask result(new Task());
result->setId(database().getLastInsertRowid());
result->setIndex(index);
result->setParent(parent);
if (index > parent->children().size())
parent->children().push_back(result);
else
{
parent->children().insert(parent->children().begin() + index, result);
for (int i=0; i<parent->children().size(); i++)
{
parent->children()[i]->setIndex(i);
parent->children()[i]->save();
}
}
mTaskModelIdMap[result->modelId()] = result;
mTaskIdMap[result->id()] = result;
return result;
}
return PTask();
}
/*
PTask Storage::loadTask(Task::Id id, PTask parent)
{
PTask result(new Task());
result->setId(id);
result->load();
result->setParent(parent);
mTaskIdMap[result->modelId()] = result;
return result;
}
*/
void Storage::saveTask(PTask task, Depth depth)
{
if (depth == depthSingleTask)
saveSingleTask(task);
else
{
saveSingleTask(task);
TaskArray& children = task->children();
foreach(PTask child, children)
saveTask(child, depthRecursive);
}
}
bool Storage::moveTask(PTask task, PTask newParent, int indexToInsert)
{
bool result = false;
task->setParent(newParent);
if (newParent)
{
SQLite::Statement updateParent(database(), "update task set parentid=:parentid where id=:id");
updateParent.bind(":parentid", (sqlite3_int64)newParent->id());
updateParent.bind(":id", (sqlite3_int64)task->id());
result = updateParent.exec();
// Insert into children list
TaskArray& children = newParent->children();
if (indexToInsert >= children.size())
children.push_back(task);
else
children.insert(indexToInsert, task);
for (int i=0; i<children.size(); i++)
{
children[i]->setIndex(i);
children[i]->save();
}
}
else
{
SQLite::Statement updateToRoot(database(), "update task set parentid = NULL where id=:id");
updateToRoot.bind(":id", (sqlite3_int64)task->id());
result = updateToRoot.exec();
if (result)
task->setParentId(0);
// Insert into root list
if (topOfTaskTree().size() > indexToInsert)
topOfTaskTree().insert(indexToInsert, task);
else
topOfTaskTree().push_back(task);
for (int i=0; i<topOfTaskTree().size(); i++)
{
topOfTaskTree()[i]->setIndex(i);
topOfTaskTree()[i]->save();
}
}
if (result)
{
task->save();
}
return result;
}
bool Storage::isOpened()
{
return mDatabase != nullptr;
}
void Storage::save()
{
foreach (PTask task, mTopTasks)
saveTask(task, depthRecursive);
database().exec("delete from task where removed = 1");
database().exec("delete from timeline where removed = 1");
database().exec("delete from file where removed = 1");
//database().exec("delete from change where removed = 1");
}
void Storage::saveSingleTask(PTask task)
{
task->save();
}
void Storage::loadTaskTree()
{
mTopTasks.clear();
SQLite::Statement q(database(), "select id, title, orderid, flags, (select count(*) from file where (file.taskid = task.id) and ((file.removed is null) or (file.removed = 0))) from task where (parentid is null) and ((removed != 1) or (removed is null)) order by orderid");
int currentIndex = 0;
while(q.executeStep())
{
PTask t(new Task());
t->load(q);
t->setIndex(currentIndex++);
mTaskModelIdMap[t->modelId()] = t;
mTaskIdMap[t->id()] = t;
mTopTasks.push_back(t);
}
foreach (PTask task, mTopTasks)
loadTaskChildren(task);
}
void Storage::loadTaskChildren(PTask task)
{
SQLite::Statement q(database(), "select id, title, orderid, flags, (select count(*) from file where (file.taskid = task.id) and ((file.removed is null) or (file.removed = 0))) from task where (task.parentid = :parentid) and ((task.removed != 1) or (task.removed is null)) order by task.orderid");
q.bind(":parentid", (sqlite3_int64)task->id());
int currentIndex = 0;
while (q.executeStep())
{
PTask t(new Task());
t->load(q);
t->setIndex(currentIndex++);
t->setParent(task, false);
loadTaskChildren(t);
mTaskModelIdMap[t->modelId()] = t;
mTaskIdMap[t->id()] = t;
task->children().push_back(t);
}
}
PTask Storage::findTaskByModelId(Task::ModelId id)
{
auto taskIter = mTaskModelIdMap.find(id);
if (taskIter != mTaskModelIdMap.end())
return *taskIter;
else
return PTask();
}
PTask Storage::findTaskById(Task::Id id)
{
auto taskIter = mTaskIdMap.find(id);
if (taskIter != mTaskIdMap.end())
return *taskIter;
else
return PTask();
}
int Storage::findTaskIndexInParent(PTask task)
{
if (task->parent())
return task->parent()->children().indexOf(task);
else
return topOfTaskTree().indexOf(task);
}
TaskArray& Storage::topOfTaskTree()
{
return mTopTasks;
}
void Storage::loadAttachments(PTask task, AttachmentArray& output)
{
SQLite::Statement q(database(), "select id, filename, orderid from file where (taskid = :taskid) and ((removed != 1) or (removed is null)) order by orderid");
q.bind(":taskid", (sqlite3_int64)task->id());
while (q.executeStep())
{
PAttachment att(new Attachment());
att->setId(q.getColumn(0).getInt64());
att->setFilename(q.getColumn(1).getText());
att->setTaskId(task->id());
att->setIndex(q.getColumn(2).getInt());
output.push_back(att);
}
}
void Storage::deleteAttachment(PAttachment att)
{
SQLite::Statement q(database(), "update file set removed=1 where id=:id");
q.bind(":id", (sqlite3_int64)att->id());
q.exec();
}
void Storage::undeleteAttachment(PAttachment att)
{
SQLite::Statement q(database(), "update file set removed=0 where id=:id");
q.bind(":id", (sqlite3_int64)att->id());
q.exec();
}
Storage& Storage::instance()
{
static Storage _instance;
return _instance;
}
void Storage::deleteTask(PTask task, DeleteOption option)
{
if (option != DeleteOption_FromParent)
{
// Remove from hash
removeTask(task);
}
TaskArray& siblings = task->parent() ? task->parent()->children() : mTopTasks;
siblings.removeOne(task);
// Remove from database
if (option == DeleteOption_Total)
{
SQLite::Statement q(database(), "update task set removed = 1 where id = :id");
q.bind(":id", (sqlite3_int64)task->id());
q.exec();
}
#if 0
int taskIndex = -1;
// Update indexes
for (int i=0; i<siblings.size(); i++)
{
if (siblings[i] == task)
taskIndex = i;
Task& t = *siblings[i];
if (t.index() > task->index())
{
t.setIndex(t.index() - 1);
t.save();
}
}
// Remove from tree
if (taskIndex >= 0)
siblings.remove(taskIndex);
#endif
}
void Storage::undeleteTask(PTask task)
{
SQLite::Statement q(database(), "update task set removed = 0 where id = :id");
q.bind(":id", (sqlite3_int64)task->id());
q.exec();
// Find place where to insert task
TaskArray& siblings = task->parent() ? task->parent()->children() : mTopTasks;
TaskArray::iterator taskIter = std::lower_bound(siblings.begin(), siblings.end(), task->index(), [] (const PTask& t, int index) { return t->index() < index;});
if (taskIter != siblings.end())
siblings.insert(taskIter, task);
else
siblings.append(task);
mTaskModelIdMap[task->modelId()] = task;
mTaskIdMap[task->id()] = task;
}
void Storage::removeTask(PTask task)
{
auto taskModelIter = mTaskModelIdMap.find(task->modelId());
if (taskModelIter != mTaskModelIdMap.end())
mTaskModelIdMap.erase(taskModelIter);
auto taskIter = mTaskIdMap.find(task->id());
if (taskIter != mTaskIdMap.end())
mTaskIdMap.erase(taskIter);
}

94
client/storage.h Normal file
View File

@ -0,0 +1,94 @@
#ifndef STORAGE_H
#define STORAGE_H
#include <QString>
#include <QMap>
#include "task.h"
#include "SQLiteCpp/Database.h"
class Storage
{
public:
Storage();
~Storage();
QString path();
void setPath(const QString& path);
QString key();
void setKey(const QString& key);
SQLite::Database& database();
// New database. Returns true or false depending on success of call.
bool create();
// Open database, preload task tree. Returns true or false depending on success of operation.
bool open();
// Close database
void close();
// Ensure database is latest version
bool upgrade();
PTask createTask(int index);
PTask createTask(PTask parent, int index);
PTask loadTask(Task::Id id, PTask parent);
// Remove task from database
enum DeleteOption
{
DeleteOption_Total,
DeleteOption_FromParentAndHash,
DeleteOption_FromParent
};
void deleteTask(PTask task, DeleteOption option);
// Undelete task
void undeleteTask(PTask task);
// Remove task from internal dictionaries - it makes task unadressable by its id/model id
void removeTask(PTask task);
enum Depth
{
depthSingleTask,
depthRecursive
};
void saveTask(PTask task, Depth depth);
bool moveTask(PTask task, PTask newParent, int indexToInsert);
bool isOpened();
void save();
TaskArray& topOfTaskTree();
PTask findTaskByModelId(Task::ModelId id);
PTask findTaskById(Task::Id id);
int findTaskIndexInParent(PTask task);
void loadAttachments(PTask task, AttachmentArray& output);
void deleteAttachment(PAttachment att);
void undeleteAttachment(PAttachment att);
static Storage& instance();
protected:
QString mPath, mKey;
QSharedPointer<SQLite::Database> mDatabase;
TaskArray mTopTasks;
typedef QMap<Task::ModelId, PTask> TaskModelIdMap;
TaskModelIdMap mTaskModelIdMap;
typedef QMap<Task::Id, PTask> TaskIdMap;
TaskIdMap mTaskIdMap;
TaskArray mTaskToUpgrade;
bool hasTable(const QString& tablename);
void saveSingleTask(PTask task);
void loadTaskTree();
void loadTaskChildren(PTask task);
bool upgradeFromVersion0();
bool encryptTask(PTask task);
bool encryptTaskContent(PTask task);
bool encryptTaskAttachment(PAttachment attachment);
};
#endif // STORAGE_H

1175
client/task.cpp Normal file

File diff suppressed because it is too large Load Diff

292
client/task.h Normal file
View File

@ -0,0 +1,292 @@
#ifndef TASK_H
#define TASK_H
#include <QString>
#include <QDateTime>
#include <QSharedPointer>
#include <QVector>
#include <QTextDocument>
#include <QUuid>
#include <set>
#include <memory>
#include <map>
#include "SQLiteCpp/Database.h"
typedef qulonglong Id;
class WorldId
{
public:
WorldId();
WorldId(const WorldId& src);
WorldId(const QString& s);
~WorldId();
WorldId& operator = (const WorldId& src);
bool operator == (const WorldId& src);
bool operator < (const WorldId& src);
QString asString() const;
static WorldId create();
protected:
QUuid mId;
};
class TimeRecord
{
public:
TimeRecord();
TimeRecord(const QDateTime& startTime, const QDateTime& endTime, Id taskId);
~TimeRecord();
QDateTime startTime() const;
void setStartTime(const QDateTime& startTime);
QDateTime endTime() const;
void setEndTime(const QDateTime& endTime);
int length();
Id id() const;
void setId(Id id);
Id taskId() const;
void setTaskId(Id id);
WorldId worldId() const;
void setWorldId(const WorldId& id);
// Save record to DB. If record is new - id() property will be set after this call.
void save();
// Remove record from DB.
void deleteRecord();
protected:
Id mId, mTaskId;
WorldId mWorldId;
QDateTime mStartTime, mEndTime;
bool mSaved;
};
typedef QVector<TimeRecord> TimeArray;
typedef std::set<int> HoursSet;
typedef std::map<int, QSharedPointer<HoursSet> > DaysMap;
typedef std::map<int, QSharedPointer<DaysMap> > MonthesMap;
typedef std::map<int, QSharedPointer<MonthesMap> > YearsMap;
class TimeLine
{
public:
TimeLine();
~TimeLine();
TimeArray& data();
// Returns total time in seconds
int totalTime();
bool active();
void start();
void stop(bool updateTimeline = true);
void flush(bool saveToDb, const QDateTime& currentUtc);
void load();
void save();
Id taskId();
void setTaskId(Id id);
// These methods work with local time
void getYears(std::set<int>& result);
void getMonthes(int year, std::set<int>& result);
void getDays(int year, int month, std::set<int>& result);
int getTime(int year, int month, int day, std::vector<TimeRecord>* intervals);
int today();
int month();
int getSum(const QDate& start, const QDate& finish);
bool duplicateDetected() const;
// Checks if specified interval has intersection
bool hasIntersection(const TimeRecord& interval);
// Inserts new interval to timeline. Saves new interval to DB.
void insertInterval(const TimeRecord& interval);
// Attempts to find & remove from timeline specified interval. Returns true if succeeded. Removes interval from DB too.
// Search is made using start/finish time interval value - not id() value. Only whole TimeRecord can be deleted.
bool removeInterval(const TimeRecord& interval);
// Attempts to find & cut interval from timeline.
// It does not mean whole TimeRecord will be removed. Depending on interval bounds existing TimeRecord can be removed/modified/add new records even.
void cutInterval(const TimeRecord& interval);
// Searches time interval by its id. Can return NULL if search failed.
TimeRecord* findIntervalById(Id id);
// Adds 10 minutes interval starting from current time. For debug/test purposes.
void putDebugRecord();
protected:
TimeArray mData;
Id mTaskId;
bool mActive;
TimeRecord* mActiveTimeRecord;
int mTotalTime;
// Sums total time in timeline
int findTotalTime();
// Builds new time interval record with specified start/finish time
TimeRecord* makeNewRecord(const QDateTime& begin, const QDateTime& end);
// Looks for time record that includes specified time point
TimeRecord* hasTimePoint(const QDateTime& t);
// Sorts records in mData by startTime() value
void sortData();
};
typedef QSharedPointer<TimeLine> PTimeLine;
class Task;
typedef QSharedPointer<Task> PTask;
typedef QVector<PTask> TaskArray;
class Task: public QObject
{
Q_OBJECT
public:
typedef qulonglong Id;
typedef quint32 ModelId;
enum Flag
{
Flag_NoTimeTracking = 1
};
Task();
~Task();
void load(SQLite::Statement& q);
Id id() const;
void setId(Id id);
Id parentId() const;
void setParentId(Id id);
WorldId worldId() const;
void setWorldId(const WorldId& id);
ModelId modelId() const;
void setModelId(ModelId id);
int index() const;
void setIndex(int index, bool modified = true);
enum SaveOptions
{
Save_Automatic,
Save_Forced
};
void save(SaveOptions options = Save_Automatic);
QString html() const;
void setHtml(const QString& html);
QString title() const;
void setTitle(const QString& title, bool modified = true);
QString path() const;
PTask parent() const;
void setParent(PTask task, bool modified = true);
TaskArray& children();
// Loads html and timeline
void loadContent();
bool isContentLoaded() const;
// Unloads html and timeline
void unloadContent(bool includeTimeline = true);
PTimeLine timeline();
// Returns true if task has attachments
int getAttachmentCount();
void setAttachmentCount(int count);
int checkAttachments();
// Service properties used in time reporting
bool isChecked() const;
void setChecked(bool checked);
int getReportedTime() const;
void setReportedTime(int t);
int getChildrenReportedTime() const;
void setChildrenReportedTime(int t);
int flags() const;
void setFlags(int value);
int cursorPosition() const;
void setCursorPosition(int position);
/*
QUndoStack* getUndoStack() const;
void setUndoStack(QUndoStack* doc);
*/
protected:
QString mHtml, mTitle;
PTimeLine mTimeLine;
Id mId, mParentId;
WorldId mWorldId;
ModelId mModelId;
bool mTitleModified, mHtmlModified, mHtmlLoaded, mIndexModified, mParentModified;
PTask mParent;
TaskArray mChildren;
int mIndex;
bool mChecked;
int mReportedTime, mChildrenReportedTime;
int mAttachmentCount;
int mFlags;
QTextDocument* mDocument;
int mCursorPosition;
};
class Attachment
{
public:
Attachment();
~Attachment();
Task::Id id();
void setId(Task::Id id);
Task::Id taskId();
void setTaskId(Task::Id id);
WorldId worldId() const;
void setWorldId(const WorldId& id);
int index();
void setIndex(int index);
QByteArray loadContent();
void saveContent(const QByteArray& content);
void setFilename(const QString& filename);
QString filename();
void save();
void load();
protected:
Id mId, mTaskId;
WorldId mWorldId;
QString mFilename;
int mIndex;
};
typedef QSharedPointer<Attachment> PAttachment;
typedef QVector<PAttachment> AttachmentArray;
#endif // TASK_H

552
client/taskaction.cpp Normal file
View File

@ -0,0 +1,552 @@
#include "taskaction.h"
#include "storage.h"
#include "tasktreemodel.h"
#include "attachmentslist.h"
#include <QFile>
#include <QFileInfo>
#include <QByteArray>
TaskAction::TaskAction(PTask task)
:mTask(task)
{
}
TaskAction::~TaskAction()
{
}
PTask TaskAction::task() const
{
return mTask;
}
// ------------ History ------------------
ChangesHistory::ChangesHistory()
{
}
ChangesHistory::~ChangesHistory()
{
}
void ChangesHistory::setTaskTreeModel(TaskTreeModel* model)
{
mTaskModel = model;
}
void ChangesHistory::setAttachmentsModel(AttachmentsListModel* model)
{
mAttachmentsModel = model;
}
TaskTreeModel* ChangesHistory::taskTreeModel() const
{
return mTaskModel;
}
AttachmentsListModel* ChangesHistory::attachmentsModel() const
{
return mAttachmentsModel;
}
void ChangesHistory::add(PTaskAction action)
{
// See if there are "undo"ed actions in the list now
if (mRollbackCount > 0)
{
// Just delete from list - these changes are not in DB already
mActionList.erase(mActionList.begin() + mActionList.size() - mRollbackCount, mActionList.end());
mRollbackCount = 0;
}
// Apply change
if (action->commit(mTaskModel, mAttachmentsModel))
mActionList.push_back(action);
}
void ChangesHistory::undo()
{
// If there are actions that can be "undo"
if (mActionList.size() - mRollbackCount > 0)
{
mRollbackCount++;
PTaskAction& action = mActionList[mActionList.size() - mRollbackCount];
if (action->rollback(mTaskModel, mAttachmentsModel))
{
}
}
}
void ChangesHistory::redo()
{
if (mRollbackCount > 0)
{
PTaskAction& action = mActionList[mActionList.size() - mRollbackCount];
mRollbackCount--;
if (action->commit(mTaskModel, mAttachmentsModel))
{
}
}
}
bool ChangesHistory::canRedo() const
{
return mRollbackCount > 0;
}
bool ChangesHistory::canUndo() const
{
return mRollbackCount < mActionList.size();
}
static ChangesHistory HistoryStaticInstance;
ChangesHistory& ChangesHistory::instance()
{
return HistoryStaticInstance;
}
// ------------ ImportAttachmentAction ----
#define ImportAttachmentId int(1)
ImportAttachmentAction::ImportAttachmentAction(PTask task, const QString &path, int index)
:TaskAction(task), mPath(path), mIndex(index)
{}
ImportAttachmentAction::~ImportAttachmentAction()
{}
bool ImportAttachmentAction::commit(TaskTreeModel* taskModel, AttachmentsListModel* attModel)
{
QFile f(mPath);
f.open(QFile::ReadOnly);
if (!f.isOpen())
return false;
// Get data from file
QByteArray content = f.readAll();
// Compress them
QByteArray compressed = qCompress(content);
// Put it to Attachment instance
mAttachment = PAttachment(new Attachment());
mAttachment->setTaskId(mTask->id());
mAttachment->setIndex(mIndex);
QFileInfo fi(mPath);
mAttachment->setFilename(fi.fileName());
// Save everything
mAttachment->save();
mAttachment->saveContent(compressed);
return true;
}
bool ImportAttachmentAction::rollback(TaskTreeModel* taskModel, AttachmentsListModel* attModel)
{
Storage::instance().deleteAttachment(mAttachment);
return true;
}
PAttachment ImportAttachmentAction::attachment() const
{
return mAttachment;
}
// ------------ RenameAttachmentAction ---
#define RenameAttachmentId int(2)
RenameAttachmentAction::RenameAttachmentAction(PTask task, PAttachment attachment, const QString &newname)
:TaskAction(task), mAttachment(attachment), mNewName(newname)
{
mName = mAttachment->filename();
}
RenameAttachmentAction::~RenameAttachmentAction()
{
}
bool RenameAttachmentAction::commit(TaskTreeModel* taskModel, AttachmentsListModel* attModel)
{
mAttachment->setFilename(mNewName);
mAttachment->save();
if (attModel)
{
int row = attModel->findRow(mAttachment);
QModelIndex index = attModel->index(row, 0);
attModel->dataChanged(index, index);
}
return true;
}
bool RenameAttachmentAction::rollback(TaskTreeModel* taskModel, AttachmentsListModel* attModel)
{
mAttachment->setFilename(mName);
mAttachment->save();
return true;
}
// ------------ DeleteAttachmentAction ---
#define DeleteAttachmentId int(3)
DeleteAttachmentAction::DeleteAttachmentAction(PTask task, QModelIndexList& mil)
:TaskAction(task), mIndexList(mil)
{}
DeleteAttachmentAction::~DeleteAttachmentAction()
{}
bool DeleteAttachmentAction::commit(TaskTreeModel* taskModel, AttachmentsListModel* attModel)
{
if (!attModel)
return false;
mAttachments.clear();
foreach (const QModelIndex& index, mIndexList)
{
if (!index.isValid())
continue;
PAttachment att = attModel->itemAt(index.row());
// Remove from DB
Storage::instance().deleteAttachment(att);
// Remove from model
attModel->removeItem(index.row());
mAttachments.push_back(att);
}
// Iterate other items and decrease their DB table's orderid field
for (int row = 0; row < attModel->rowCount(); row++)
{
Attachment& att = *attModel->itemAt(row);
att.setIndex(row);
att.save();
}
return true;
}
bool DeleteAttachmentAction::rollback(TaskTreeModel* taskModel, AttachmentsListModel* attModel)
{
while (!mAttachments.isEmpty())
{
auto iter = std::min_element(mAttachments.begin(), mAttachments.end(), [] (const PAttachment& a, const PAttachment& b) { return a->index() < b->index();});
PAttachment attToUndelete = *iter;
// Restore attachment in database
Storage::instance().undeleteAttachment(attToUndelete);
attModel->addItem(attToUndelete);
}
//Storage::instance().undeleteAttachment(mAttachment);
return true;
}
// ------------ NewTaskAction ------------
#define NewTaskId int(4)
NewTaskAction::NewTaskAction(PTask parent, int index, const QString &title)
:TaskAction(PTask()), mParent(parent), mIndex(index), mTitle(title)
{}
NewTaskAction::~NewTaskAction()
{}
bool NewTaskAction::commit(TaskTreeModel* taskModel, AttachmentsListModel* /*attModel*/)
{
if (taskModel)
{
QModelIndex parentIndex = taskModel->getIndex(mParent);
taskModel->beginInsertRows(parentIndex, mIndex, mIndex);
//taskModel->rowCount(parentIndex), taskModel->rowCount(parentIndex));
}
if (!mTask)
{
mTask = Storage::instance().createTask(mParent, mIndex);
mTask->setTitle(mTitle);
mTask->save();
}
else
Storage::instance().undeleteTask(mTask);
if (taskModel)
taskModel->endInsertRows();
return true;
}
bool NewTaskAction::rollback(TaskTreeModel* taskModel, AttachmentsListModel* /*attModel*/)
{
if (taskModel)
{
// Get parent index
QModelIndex parentIndex = taskModel->getIndex(mTask->parent());
int row = Storage::instance().findTaskIndexInParent(mTask);
taskModel->beginRemoveRows(parentIndex, row, row);
}
Storage::instance().deleteTask(mTask, Storage::DeleteOption_Total);
if (taskModel)
{
taskModel->endRemoveRows();
}
return true;
}
// ------------ RenameTaskAction ---------
RenameTaskAction::RenameTaskAction(PTask task, const QString &newTitle)
:TaskAction(task), mNewTitle(newTitle)
{
mTitle = mTask->title();
}
RenameTaskAction::~RenameTaskAction()
{
}
bool RenameTaskAction::commit(TaskTreeModel* taskModel, AttachmentsListModel* /*attModel*/)
{
mTask->setTitle(mNewTitle);
mTask->save();
if (taskModel)
{
QModelIndex index = taskModel->getIndex(mTask);
if (index.isValid())
taskModel->dataChanged(index ,index);
}
return true;
}
bool RenameTaskAction::rollback(TaskTreeModel* taskModel, AttachmentsListModel* /*attModel*/)
{
mTask->setTitle(mTitle);
mTask->save();
if (taskModel)
{
QModelIndex index = taskModel->getIndex(mTask);
if (index.isValid())
taskModel->dataChanged(index, index);
}
return true;
}
// ------------ MoveTaskAction ------------
MoveTaskAction::MoveTaskAction(PTask task, PTask newParent, int newIndex)
:TaskAction(task), mNewIndex(newIndex), mNewParent(newParent)
{
mIndex = mTask->index();
mParent = mTask->parent();
}
MoveTaskAction::~MoveTaskAction()
{
}
bool MoveTaskAction::commit(TaskTreeModel* taskModel, AttachmentsListModel* /*attModel*/)
{
taskModel->layoutAboutToBeChanged();
// Detach it from old parent (if exists)
if (taskModel)
{
QModelIndex parentIndex = taskModel->getIndex(mTask->parent());
int row = Storage::instance().findTaskIndexInParent(mTask);
taskModel->beginRemoveRows(parentIndex, row, row);
}
// Remove task from memory structures only
Storage::instance().deleteTask(mTask, Storage::DeleteOption_FromParent);
if (taskModel)
taskModel->endRemoveRows();
// Move task
if (taskModel)
{
QModelIndex parentIndex = taskModel->getIndex(mNewParent);
taskModel->beginInsertRows(parentIndex, mNewIndex, mNewIndex);
}
Storage::instance().moveTask(mTask, mNewParent, mNewIndex);
if (taskModel)
taskModel->endInsertRows();
taskModel->layoutChanged();
return true;
}
bool MoveTaskAction::rollback(TaskTreeModel* taskModel, AttachmentsListModel* /*attModel*/)
{
if (taskModel)
{
QModelIndex parentIndex = taskModel->getIndex(mNewParent);
// Tell about removing of row
taskModel->beginRemoveRows(parentIndex, mNewIndex, mNewIndex);
}
// Delete from parent
Storage::instance().deleteTask(mTask, Storage::DeleteOption_FromParent);
if (taskModel)
taskModel->endRemoveRows();
// Reload task if needed
mTask->loadContent();
if (taskModel)
{
QModelIndex parentIndex = taskModel->getIndex(mParent);
taskModel->beginInsertRows(parentIndex, mIndex, mIndex);
}
// Move task back
Storage::instance().moveTask(mTask, mParent, mIndex);
if (taskModel)
taskModel->endInsertRows();
return true;
}
// ------- IncreaseLevelAction -----------
IncreaseLevelAction::IncreaseLevelAction(PTask task)
:TaskAction(task)
{
mOldParent = task->parent();
mOldIndex = task->index();
}
IncreaseLevelAction::~IncreaseLevelAction()
{
}
bool IncreaseLevelAction::commit(TaskTreeModel* taskModel, AttachmentsListModel* /*attModel*/)
{
/* if (taskModel)
{
QModelIndex parentIndex = taskModel->getIndex(mTask->parent());
int row = Storage::instance().findTaskIndexInParent(mTask);
taskModel->beginRemoveRows(parentIndex, row, row);
}
Storage::instance().deleteTask(mTask, Storage::DeleteOption_Total);
if (taskModel)
taskModel->endRemoveRows();
*/
return true;
}
bool IncreaseLevelAction::rollback(TaskTreeModel* taskModel, AttachmentsListModel* /*attModel*/)
{
/*
if (taskModel)
{
QModelIndex parentIndex = taskModel->getIndex(mTask->parent());
taskModel->beginInsertRows(parentIndex, mIndex, mIndex);
}
Storage::instance().undeleteTask(mTask);
if (taskModel)
taskModel->endInsertRows();
*/
return true;
}
// ------- DecreaseLevelAction -----------
DecreaseLevelAction::DecreaseLevelAction(PTask task)
:TaskAction(task)
{
}
DecreaseLevelAction::~DecreaseLevelAction()
{
}
bool DecreaseLevelAction::commit(TaskTreeModel* taskModel, AttachmentsListModel* /*attModel*/)
{
/* if (taskModel)
{
QModelIndex parentIndex = taskModel->getIndex(mTask->parent());
int row = Storage::instance().findTaskIndexInParent(mTask);
taskModel->beginRemoveRows(parentIndex, row, row);
}
Storage::instance().deleteTask(mTask, Storage::DeleteOption_Total);
if (taskModel)
taskModel->endRemoveRows();
*/
return true;
}
bool DecreaseLevelAction::rollback(TaskTreeModel* taskModel, AttachmentsListModel* /*attModel*/)
{
/*
if (taskModel)
{
QModelIndex parentIndex = taskModel->getIndex(mTask->parent());
taskModel->beginInsertRows(parentIndex, mIndex, mIndex);
}
Storage::instance().undeleteTask(mTask);
if (taskModel)
taskModel->endInsertRows();
*/
return true;
}
// ------- DeleteTaskAction ---------------
DeleteTaskAction::DeleteTaskAction(PTask task)
:TaskAction(task)
{
mIndex = Storage::instance().findTaskIndexInParent(mTask);
}
DeleteTaskAction::~DeleteTaskAction()
{
}
bool DeleteTaskAction::commit(TaskTreeModel* taskModel, AttachmentsListModel* /*attModel*/)
{
if (taskModel)
{
QModelIndex parentIndex = taskModel->getIndex(mTask->parent());
int row = Storage::instance().findTaskIndexInParent(mTask);
taskModel->beginRemoveRows(parentIndex, row, row);
}
Storage::instance().deleteTask(mTask, Storage::DeleteOption_Total);
if (taskModel)
taskModel->endRemoveRows();
return true;
}
bool DeleteTaskAction::rollback(TaskTreeModel* taskModel, AttachmentsListModel* /*attModel*/)
{
if (taskModel)
{
QModelIndex parentIndex = taskModel->getIndex(mTask->parent());
taskModel->beginInsertRows(parentIndex, mIndex, mIndex);
}
Storage::instance().undeleteTask(mTask);
if (taskModel)
taskModel->endInsertRows();
return true;
}

184
client/taskaction.h Normal file
View File

@ -0,0 +1,184 @@
#ifndef TASKACTION_H
#define TASKACTION_H
#include <task.h>
#include <QString>
#include <QDataStream>
#include <QModelIndexList>
class TaskTreeModel;
class AttachmentsListModel;
class TaskAction
{
friend class ChangesHistory;
public:
TaskAction(PTask task);
virtual ~TaskAction();
PTask task() const;
protected:
PTask mTask;
virtual bool commit(TaskTreeModel* taskModel, AttachmentsListModel* attModel) = 0;
virtual bool rollback(TaskTreeModel* taskModel, AttachmentsListModel* attModel) = 0;
};
typedef QSharedPointer<TaskAction> PTaskAction;
class ChangesHistory
{
public:
ChangesHistory();
~ChangesHistory();
void setTaskTreeModel(TaskTreeModel* model);
void setAttachmentsModel(AttachmentsListModel* model);
TaskTreeModel* taskTreeModel() const;
AttachmentsListModel* attachmentsModel() const;
void add(PTaskAction action);
void undo();
void redo();
bool canUndo() const;
bool canRedo() const;
static ChangesHistory& instance();
protected:
TaskTreeModel* mTaskModel;
AttachmentsListModel* mAttachmentsModel;
QVector<PTaskAction> mActionList;
int mRollbackCount;
};
#define MAKE_ACTION(X) ChangesHistory::instance().add(PTaskAction(X))
class ImportAttachmentAction: public TaskAction
{
public:
ImportAttachmentAction(PTask task, const QString& path, int index);
~ImportAttachmentAction();
PAttachment attachment() const;
protected:
QString mPath;
PAttachment mAttachment;
int mIndex;
bool commit(TaskTreeModel* taskModel, AttachmentsListModel* attModel);
bool rollback(TaskTreeModel* taskModel, AttachmentsListModel* attModel);
};
class RenameAttachmentAction: public TaskAction
{
public:
RenameAttachmentAction(PTask task, PAttachment attachment, const QString& newname);
~RenameAttachmentAction();
protected:
PAttachment mAttachment;
QString mNewName, mName;
bool commit(TaskTreeModel* taskModel, AttachmentsListModel* attModel);
bool rollback(TaskTreeModel* taskModel, AttachmentsListModel* attModel);
};
class DeleteAttachmentAction: public TaskAction
{
public:
DeleteAttachmentAction(PTask task, QModelIndexList& mil);
~DeleteAttachmentAction();
bool commit(TaskTreeModel* taskModel, AttachmentsListModel* attModel);
bool rollback(TaskTreeModel* taskModel, AttachmentsListModel* attModel);
protected:
QModelIndexList mIndexList;
QVector<PAttachment> mAttachments;
};
class NewTaskAction: public TaskAction
{
public:
NewTaskAction(PTask parent, int index, const QString& title);
~NewTaskAction();
protected:
PTask mParent;
int mIndex;
QString mTitle;
bool commit(TaskTreeModel* taskModel, AttachmentsListModel* attModel);
bool rollback(TaskTreeModel* taskModel, AttachmentsListModel* attModel);
bool save(QDataStream& output);
};
class RenameTaskAction: public TaskAction
{
public:
RenameTaskAction(PTask task, const QString& newTitle);
~RenameTaskAction();
protected:
QString mNewTitle, mTitle;
bool commit(TaskTreeModel* taskModel, AttachmentsListModel* attModel);
bool rollback(TaskTreeModel* taskModel, AttachmentsListModel* attModel);
bool save(QDataStream &output);
};
class MoveTaskAction: public TaskAction
{
public:
MoveTaskAction(PTask task, PTask newParent, int newIndex);
~MoveTaskAction();
protected:
int mIndex, mNewIndex;
PTask mParent, mNewParent;
bool commit(TaskTreeModel* taskModel, AttachmentsListModel* attModel);
bool rollback(TaskTreeModel* taskModel, AttachmentsListModel* attModel);
};
class IncreaseLevelAction: public TaskAction
{
public:
IncreaseLevelAction(PTask task);
~IncreaseLevelAction();
protected:
PTask mOldParent;
int mOldIndex;
bool commit(TaskTreeModel* taskModel, AttachmentsListModel* attModel);
bool rollback(TaskTreeModel* taskModel, AttachmentsListModel* attModel);
};
class DecreaseLevelAction: public TaskAction
{
public:
DecreaseLevelAction(PTask task);
~DecreaseLevelAction();
protected:
bool commit(TaskTreeModel *taskModel, AttachmentsListModel *attModel);
bool rollback(TaskTreeModel *taskModel, AttachmentsListModel *attModel);
};
class DeleteTaskAction: public TaskAction
{
public:
DeleteTaskAction(PTask task);
~DeleteTaskAction();
protected:
int mIndex;
bool commit(TaskTreeModel* taskModel, AttachmentsListModel* attModel);
bool rollback(TaskTreeModel* taskModel, AttachmentsListModel* attModel);
};
#endif // TASKACTION_H

651
client/tasktreemodel.cpp Normal file
View File

@ -0,0 +1,651 @@
#include "config.h"
#include "tasktreemodel.h"
#include "taskaction.h"
#include <QIcon>
#include <QMimeData>
#include <QDebug>
#include <QDragEnterEvent>
#include <QDragMoveEvent>
#include <QDragLeaveEvent>
#include <deque>
TaskTreeView::TaskTreeView(QWidget *widget)
:QTreeView(widget)
{
}
void TaskTreeView::dragMoveEvent(QDragMoveEvent* event)
{
QTreeView::dragMoveEvent(event);
event->acceptProposedAction();
event->accept();
}
void TaskTreeView::dragEnterEvent(QDragEnterEvent *event)
{
QTreeView::dragEnterEvent(event);
event->acceptProposedAction();
event->accept();
}
void TaskTreeView::dragLeaveEvent(QDragLeaveEvent *event)
{
QTreeView::dragLeaveEvent(event);
event->accept();
}
void TaskTreeView::dropEvent(QDropEvent *event)
{
QTreeView::dropEvent(event);
event->acceptProposedAction();
event->accept();
//this->setCurrentIndex(this->indexAt(event->pos()));
}
TaskTreeModel::TaskTreeModel(bool allowCheckboxes)
:mAllowCheckboxes(allowCheckboxes)
{
}
TaskTreeModel::~TaskTreeModel()
{}
QModelIndex TaskTreeModel::index(int row, int column, const QModelIndex &parent) const
{
if (!hasIndex(row, column, parent))
return QModelIndex();
// Find task from parent index
if (parent.isValid())
{
PTask parentTask = Storage::instance().findTaskByModelId(parent.internalId());
PTask task = parentTask->children()[row];
return createIndex(row, column, task->modelId());
}
else
{
if (row >= 0 && row < Storage::instance().topOfTaskTree().count())
{
PTask task = Storage::instance().topOfTaskTree()[row];
return createIndex(row, column, task->modelId());
}
else
return QModelIndex();
}
}
QModelIndex TaskTreeModel::parent(const QModelIndex &child) const
{
if (!child.isValid())
return QModelIndex();
PTask task = Storage::instance().findTaskByModelId(child.internalId());
if (task)
{
PTask parentTask = task->parent();
if (parentTask)
{
if (parentTask->parent())
{
int row = parentTask->parent()->children().indexOf(parentTask);
return createIndex(row, 0, parentTask->modelId());
}
else
{
int row = Storage::instance().topOfTaskTree().indexOf(parentTask);
return createIndex(row, 0, parentTask->modelId());
}
}
else
return QModelIndex();
}
return QModelIndex();
}
int TaskTreeModel::rowCount(const QModelIndex &parent) const
{
if (parent.isValid())
{
PTask parentTask = Storage::instance().findTaskByModelId(parent.internalId());
if (parentTask)
return parentTask->children().count();
}
else
return Storage::instance().topOfTaskTree().count();
return 0;
}
int TaskTreeModel::columnCount(const QModelIndex& /*parent*/) const
{
return 1;
}
QVariant TaskTreeModel::data(const QModelIndex &index, int role) const
{
PTask task = Storage::instance().findTaskByModelId(index.internalId());
if (!task)
return QVariant();
switch (role)
{
case Qt::DisplayRole:
case Qt::EditRole:
return task->title();
case Qt::DecorationRole:
return QIcon(":/icons/icons/text-x-generic.png");
case Qt::CheckStateRole:
if (mAllowCheckboxes)
return task->isChecked() ? Qt::Checked : Qt::Unchecked;
break;
}
return QVariant();
}
bool TaskTreeModel::setData(const QModelIndex &index, const QVariant &value, int role /* = Qt::EditRole */)
{
PTask task = getTask(index);
if (task)
{
switch (role)
{
case Qt::DisplayRole:
case Qt::EditRole:
// Save new title
MAKE_ACTION(new RenameTaskAction(task, value.toString()));
break;
case Qt::CheckStateRole:
QModelIndex br = makeTaskChecked(index, value.toInt() == Qt::Checked);
dataChanged(index, br, QVector<int>(1, Qt::CheckStateRole));
break;
}
}
return true;
}
QModelIndex TaskTreeModel::makeTaskChecked(QModelIndex index, bool checked)
{
QModelIndex result;
std::deque<PTask> q;
PTask t = getTask(index);
q.push_back(t);
while (!q.empty())
{
PTask current = q.front(); q.pop_front();
if (current)
{
current->setChecked(checked);
for (PTask child: current->children())
q.push_back(child);
result = getIndex(current);
}
}
return result;
}
PTask TaskTreeModel::addTask(const QModelIndex& parent, int index)
{
// Find parent task
PTask parentTask = getTask(parent);
// Run new task action
PTaskAction action(new NewTaskAction(parentTask, index, tr("New task")));
ChangesHistory::instance().add(action);
// Get result
PTask childTask = action->task();
return childTask;
}
QModelIndex TaskTreeModel::getIndex(const PTask& task, bool includeModelId)
{
if (!task)
return QModelIndex();
int row = 0;
if (task->parent())
row = task->parent()->children().indexOf(task);
else
row = Storage::instance().topOfTaskTree().indexOf(task);
if (includeModelId)
return createIndex(row, 0, task->modelId());
else
return createIndex(row, 0);
}
void TaskTreeModel::deleteTask(const QModelIndex& index)
{
// Check if there is task
PTask task = getTask(index);
if (!task)
return;
// Run delete task action
MAKE_ACTION(new DeleteTaskAction(task));
}
void TaskTreeModel::moveTask(const PTask& task, int offset)
{
if (!task)
return;
MAKE_ACTION(new MoveTaskAction(task, task->parent(), task->index() + offset));
}
void TaskTreeModel::setTitle(const QModelIndex& index, const QString& title)
{
setData(index, QVariant(title), Qt::DisplayRole);
}
Qt::ItemFlags TaskTreeModel::flags(const QModelIndex &index) const
{
Qt::ItemFlags result = Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsDropEnabled;
if (index.isValid())
result |= Qt::ItemIsDragEnabled;
if (mAllowCheckboxes)
result |= Qt::ItemIsUserCheckable;
return result;
}
PTask TaskTreeModel::getTask(const QModelIndex& index) const
{
if (!index.isValid())
return PTask();
return Storage::instance().findTaskByModelId(index.internalId());
}
QVariant TaskTreeModel::headerData(int /*section*/, Qt::Orientation /*orientation*/, int /*role = Qt::DisplayRole */) const
{
return "";
/*if (orientation != Qt::Horizontal)
return QVariant();
switch (role)
{
case Qt::DisplayRole:
return QString(tr("Tasks"));
}
return QVariant();*/
}
Qt::DropActions TaskTreeModel::supportedDropActions() const
{
return Qt::MoveAction;
}
Qt::DropActions TaskTreeModel::supportedDragActions() const
{
return Qt::MoveAction;
}
QStringList TaskTreeModel::mimeTypes() const
{
QStringList result;
result << NODE_MIME_TYPE;
return result;
}
QMimeData *TaskTreeModel::mimeData(const QModelIndexList &indexes) const
{
//qDebug() << "Mime data requested for indexes list size " << indexes.size();
QMimeData *mimeData = new QMimeData();
QByteArray encodedData;
QDataStream stream(&encodedData, QIODevice::WriteOnly);
foreach (const QModelIndex &index, indexes)
{
if (index.isValid())
{
PTask task = getTask(index);
stream << task->modelId();
}
}
mimeData->setData(NODE_MIME_TYPE, encodedData);
return mimeData;
}
bool TaskTreeModel::dropMimeData(const QMimeData *mimeData, Qt::DropAction action, int row, int column, const QModelIndex &parent)
{
qDebug() << "TaskTreeModel::dropMimeData";
if (action == Qt::IgnoreAction)
return true;
if (!mimeData->hasFormat(NODE_MIME_TYPE))
return false;
if (column > 0)
return false;
// Find task
QByteArray encodedData = mimeData->data(NODE_MIME_TYPE);
QDataStream stream(&encodedData, QIODevice::ReadOnly);
QStringList newItems;
int rows = 0;
PTask lastMovedTask;
while (!stream.atEnd())
{
Task::ModelId modelId;
stream >> modelId;
++rows;
// Bring task instance
PTask t = Storage::instance().findTaskByModelId(modelId);
PTask parentTask = getTask(parent);
int currentRow = 0;
if (parentTask)
currentRow = (row == -1) ? parentTask->children().size() : (row + rows - 1);
else
currentRow = Storage::instance().topOfTaskTree().size();
lastMovedTask = t;
PTaskAction action(new MoveTaskAction(t, parentTask, currentRow));
ChangesHistory::instance().add(action);
/* // Detach it from old parent (if exists)
if (t->parent())
{
int index = t->parent()->children().indexOf(t);
beginRemoveRows(getIndex(t->parent()), index, index);
t->parent()->children().remove(index);
endRemoveRows();
}
else
{
int index = Storage::instance().topOfTaskTree().indexOf(t);
beginRemoveRows(QModelIndex(), index, index);
Storage::instance().topOfTaskTree().remove(index);
endRemoveRows();
}
// Load dragged task again because beginRemoveRows() will cause indexChanged() and it will cause Task::unloadContent()
t->loadContent();
// Attach to new parent
if (parent.isValid())
{
PTask parentTask = getTask(parent);
if (parentTask)
{
// Make task as child
int currentRow = (row == -1) ? parentTask->children().size() : (row + rows - 1);
beginInsertRows(parent, currentRow, currentRow);
// Update hierarchy in memory - no need as Storage::moveTask() does it
// parentTask->children().insert(currentRow, t);
// Update hierarchy in file & memory
if (!Storage::instance().moveTask(t, parentTask, currentRow))
qDebug("failed to move task");
endInsertRows();
}
}
else
{
// Make it root item
int currentRow = (row == -1) ? Storage::instance().topOfTaskTree().size() : (row + rows - 1);
beginInsertRows(QModelIndex(), currentRow, currentRow);
// Update hierarchy in file & memory
if (!Storage::instance().moveTask(t, PTask(), currentRow))
qDebug("failed to move task");
endInsertRows();
}*/
}
if (lastMovedTask)
emit onTaskMoved(lastMovedTask);
return true;
}
bool TaskTreeModel::canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const
{
//qDebug() << "TaskTreeModel::canDropMimeData() called";
return true;
}
bool TaskTreeModel::removeRows(int row, int count, const QModelIndex &parent)
{
beginRemoveRows(parent, row, row+count-1);
endRemoveRows();
return true;
// Called during drag and drop
if (parent.isValid())
{
PTask parentTask = getTask(parent);
for (int i=0; i<count; i++)
{
TaskArray& children = parentTask->children();
if (children.size() > row)
{
beginRemoveRows(parent, row, row);
children.erase(children.begin() + row);
endRemoveRows();
}
}
}
else
{
TaskArray& top = Storage::instance().topOfTaskTree();
for (int i=0; i<count; i++)
{
if (top.size() > row)
{
beginRemoveRows(parent, row, row);
top.erase(top.begin() + row);
endRemoveRows();
}
}
}
return true;
}
bool TaskTreeModel::insertRows(int /*row*/, int /*count*/, const QModelIndex& /*parent*/)
{
qDebug("insertRows called");
return false;
}
QString TaskTreeModel::getExpandedState(QTreeView& view) const
{
// Iterate all indexes
QStringList sl;
foreach (QModelIndex index, this->persistentIndexList())
{
if (view.isExpanded(index))
{
PTask t = getTask(index);
if (t)
sl << QString::number(t->id());
}
}
return sl.join(";");
}
void TaskTreeModel::setExpandedState(const QString& savedState, QTreeView& view)
{
QStringList sl = savedState.split(";");
foreach (QString item, sl)
{
qulonglong id = item.toLongLong();
PTask task = Storage::instance().findTaskById((Task::Id)id);
if (task)
{
QModelIndex index = this->getIndex(task);
if (index.isValid())
view.setExpanded(index, true);
}
}
}
QString TaskTreeModel::getSelected(QTreeView& view) const
{
QModelIndex index = view.currentIndex();
if (index.isValid())
{
PTask t = getTask(index);
if (t)
return QString::number((qulonglong)t->id());
}
return QString();
}
void TaskTreeModel::setSelected(const QString& savedState, QTreeView& view)
{
qulonglong id = savedState.toULongLong();
PTask t = Storage::instance().findTaskById(id);
if (t)
{
QModelIndex index = getIndex(t);
if (index.isValid())
view.setCurrentIndex(index);
}
}
/*
QMenu* TaskTreeModel::buildMenuTree(bool trackableOnly)
{
QMenu* topMenu = new QMenu();
internalBuildMenuTree(topMenu, Storage::instance().topOfTaskTree(), trackableOnly);
}
void TaskTreeModel::internalBuildMenuTree(QMenu* menu, TaskArray& children, bool trackableOnly)
{
for (PTask t: children)
{
if (t->flags() & Task::Flag_NoTimeTracking)
continue;
QAction* action = menu->addAction(t->title());
action->setData(t->id());
}
}
*/
// ----------------- TaskItemDelegate ----------------------
TaskItemDelegate::TaskItemDelegate(QObject *parent)
: QItemDelegate(parent)
{
}
void TaskItemDelegate::paint( QPainter * painter,
const QStyleOptionViewItem & option,
const QModelIndex & index ) const
{
TaskTreeModel* model = (TaskTreeModel*)index.model();
PTask task = model->getTask(index);
if (!task)
return;
if (task->getAttachmentCount())
{
QIcon attachmentIcon = QIcon(":/icons/icons/mail-attachment.png");
QPixmap attachmentPixmap = attachmentIcon.pixmap(option.decorationSize);
QRect r = option.rect;
QRect titleRect = r; titleRect.setWidth(r.width() - 24);
QRect iconRect = r; iconRect.setLeft(r.right() - 24 );
drawBackground(painter, option, index);
drawDisplay(painter, option, titleRect, task->title());
drawDecoration(painter, option, iconRect, attachmentPixmap);
drawFocus(painter, option, r);
}
else
{
drawBackground(painter, option, index);
drawDisplay(painter, option, option.rect, task->title());
drawFocus(painter, option, option.rect);
}
}
/*QSize TaskItemDelegate::sizeHint ( const QStyleOptionViewItem& option, const QModelIndex & index ) const
{
return option.rect.size();
}*/
void TaskItemDelegate::updateEditorGeometry ( QWidget * editor, const QStyleOptionViewItem & option, const QModelIndex& /*index*/ ) const
{
editor->setGeometry(option.rect);
}
QRect TaskItemDelegate::calcDecorationRect(QRect mainRect, int horizontalAlignment, int verticalAlignment) const
{
QRect rect;
if(horizontalAlignment == Qt::AlignLeft)
{
if(verticalAlignment == Qt::AlignTop)
{
rect.setX(mainRect.x()+2);
rect.setY(mainRect.y()+2);
rect.setWidth(mainRect.width()/8);
rect.setHeight((mainRect.height()/3)*2);
}
// else if(verticalAlignment == Qt::AlignBottom)
// {
// rect.setX(mainRect.x()+ 2);
// rect.setY(mainRect.y()+ (mainRect.height()/3)*2 - 2);
// rect.setWidth(mainRect.width()/8);
// rect.setHeight(mainRect.height()/3);
// }
}
if(horizontalAlignment == Qt::AlignRight)
{
if(verticalAlignment == Qt::AlignTop)
{
rect.setX(mainRect.x() + (mainRect.width()/8)*7 - 2);
rect.setY(mainRect.y() + 2);
rect.setWidth(mainRect.width()/8);
rect.setHeight(mainRect.height()/3);
}
else if(verticalAlignment == Qt::AlignBottom)
{
rect.setX(mainRect.x() + (mainRect.width()/8)*7 - 2);
rect.setY(mainRect.y()+ (mainRect.height()/3)*2 - 2);
rect.setWidth(mainRect.width()/8);
rect.setHeight(mainRect.height()/3);
}
}
return rect;
}
QRect TaskItemDelegate::calcDisplayRect(QRect mainRect, int verticalAlignment) const
{
QRect rect;
if(verticalAlignment == Qt::AlignTop)
{
rect.setX(mainRect.x() + mainRect.width()/8 + 3 );
rect.setY(mainRect.y() + 2);
rect.setHeight(mainRect.height()/2 - 2);
rect.setWidth(mainRect.width() - 2*(mainRect.width()/8));
}
else if(verticalAlignment == Qt::AlignBottom)
{
rect.setX(mainRect.x() + mainRect.width()/8 + 3 );
rect.setY(mainRect.y() + 2 + mainRect.height()/2);
rect.setHeight(mainRect.height()/2 - 2);
rect.setWidth(mainRect.width() - 2*(mainRect.width()/8));
}
return rect;
}

95
client/tasktreemodel.h Normal file
View File

@ -0,0 +1,95 @@
#ifndef TASKTREEMODEL_H
#define TASKTREEMODEL_H
#include <QAbstractItemModel>
#include <QStyleOptionViewItem>
#include <QItemDelegate>
#include <QTreeView>
#include <QMenu>
#include "storage.h"
class TaskTreeView: public QTreeView
{
public:
TaskTreeView(QWidget* widget = nullptr);
void dragMoveEvent(QDragMoveEvent* event);
void dragEnterEvent(QDragEnterEvent *event);
void dragLeaveEvent(QDragLeaveEvent* event);
void dropEvent(QDropEvent* event);
};
class TaskTreeModel: public QAbstractItemModel
{
Q_OBJECT
friend class TaskAction;
friend class NewTaskAction;
friend class DeleteTaskAction;
friend class RenameTaskAction;
friend class MoveTaskAction;
public:
TaskTreeModel(bool allowCheckboxes);
~TaskTreeModel();
QModelIndex index(int row, int column, const QModelIndex &parent) const;
QModelIndex parent(const QModelIndex &child) const;
int rowCount(const QModelIndex &parent = QModelIndex()) const;
int columnCount(const QModelIndex &parent = QModelIndex()) const;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
bool setData(const QModelIndex &index, const QVariant &value, int role /* = Qt::EditRole */);
Qt::ItemFlags flags(const QModelIndex &index) const;
QVariant headerData(int section, Qt::Orientation orientation, int role /* = Qt::DisplayRole */) const;
Qt::DropActions supportedDropActions() const;
Qt::DropActions supportedDragActions() const;
QStringList mimeTypes() const;
QMimeData* mimeData(const QModelIndexList &indexes) const;
bool dropMimeData(const QMimeData *mimeData, Qt::DropAction action, int row, int column, const QModelIndex &parent);
bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const;
bool removeRows(int row, int count, const QModelIndex &parent);
bool insertRows(int row, int count, const QModelIndex &parent);
QModelIndex getIndex(const PTask& task, bool includeModelId = true);
PTask addTask(const QModelIndex& parent, int index);
void deleteTask(const QModelIndex& index);
void moveTask(const PTask& task, int offset);
PTask getTask(const QModelIndex& index) const;
void setTitle(const QModelIndex& index, const QString& title);
QString getExpandedState(QTreeView& view) const;
void setExpandedState(const QString& savedState, QTreeView& view);
QString getSelected(QTreeView& view) const;
void setSelected(const QString& savedState, QTreeView& view);
//QMenu* buildMenuTree(bool trackableOnly = true);
signals:
void onTaskMoved(PTask t);
protected:
bool mAllowCheckboxes;
// Returns bottom right index
QModelIndex makeTaskChecked(QModelIndex index, bool checked);
};
class TaskItemDelegate : public QItemDelegate
{
Q_OBJECT
public:
TaskItemDelegate(QObject *parent = 0);
void paint( QPainter * painter,
const QStyleOptionViewItem & option,
const QModelIndex & index ) const;
// QSize sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const;
void updateEditorGeometry ( QWidget * editor, const QStyleOptionViewItem & option, const QModelIndex & index ) const;
QRect calcDecorationRect(QRect rect, int horizontalAlignment, int verticalAlignment ) const;
QRect calcDisplayRect(QRect rect, int horizontalAlignment) const;
};
#endif // TASKTREEMODEL_H

85
client/ui_aboutdlg.h Normal file
View File

@ -0,0 +1,85 @@
/********************************************************************************
** Form generated from reading UI file 'aboutdlg.ui'
**
** Created by: Qt User Interface Compiler version 5.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_ABOUTDLG_H
#define UI_ABOUTDLG_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QDialog>
#include <QtWidgets/QDialogButtonBox>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_AboutDlg
{
public:
QVBoxLayout *verticalLayout;
QLabel *mTextLabel;
QLabel *mLicenseLabel;
QDialogButtonBox *mButtonBox;
void setupUi(QDialog *AboutDlg)
{
if (AboutDlg->objectName().isEmpty())
AboutDlg->setObjectName(QStringLiteral("AboutDlg"));
AboutDlg->resize(323, 170);
verticalLayout = new QVBoxLayout(AboutDlg);
verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
mTextLabel = new QLabel(AboutDlg);
mTextLabel->setObjectName(QStringLiteral("mTextLabel"));
mTextLabel->setAlignment(Qt::AlignCenter);
verticalLayout->addWidget(mTextLabel);
mLicenseLabel = new QLabel(AboutDlg);
mLicenseLabel->setObjectName(QStringLiteral("mLicenseLabel"));
mLicenseLabel->setMaximumSize(QSize(16777215, 40));
mLicenseLabel->setAlignment(Qt::AlignCenter);
verticalLayout->addWidget(mLicenseLabel);
mButtonBox = new QDialogButtonBox(AboutDlg);
mButtonBox->setObjectName(QStringLiteral("mButtonBox"));
mButtonBox->setOrientation(Qt::Horizontal);
mButtonBox->setStandardButtons(QDialogButtonBox::Ok);
mButtonBox->setCenterButtons(true);
verticalLayout->addWidget(mButtonBox);
retranslateUi(AboutDlg);
QObject::connect(mButtonBox, SIGNAL(accepted()), AboutDlg, SLOT(accept()));
QObject::connect(mButtonBox, SIGNAL(rejected()), AboutDlg, SLOT(reject()));
QMetaObject::connectSlotsByName(AboutDlg);
} // setupUi
void retranslateUi(QDialog *AboutDlg)
{
AboutDlg->setWindowTitle(QApplication::translate("AboutDlg", "Dialog", 0));
mTextLabel->setText(QApplication::translate("AboutDlg", "werwre\n"
"werwer\n"
"", 0));
mLicenseLabel->setText(QApplication::translate("AboutDlg", "TextLabel", 0));
} // retranslateUi
};
namespace Ui {
class AboutDlg: public Ui_AboutDlg {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_ABOUTDLG_H

View File

@ -0,0 +1,84 @@
/********************************************************************************
** Form generated from reading UI file 'attachmentsdialog.ui'
**
** Created by: Qt User Interface Compiler version 5.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_ATTACHMENTSDIALOG_H
#define UI_ATTACHMENTSDIALOG_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QDialog>
#include <QtWidgets/QDialogButtonBox>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QVBoxLayout>
#include "attachmentslist.h"
QT_BEGIN_NAMESPACE
class Ui_AttachmentsDialog
{
public:
QVBoxLayout *verticalLayout;
AttachmentsList *widget;
QLabel *label;
QDialogButtonBox *buttonBox;
void setupUi(QDialog *AttachmentsDialog)
{
if (AttachmentsDialog->objectName().isEmpty())
AttachmentsDialog->setObjectName(QStringLiteral("AttachmentsDialog"));
AttachmentsDialog->resize(600, 300);
AttachmentsDialog->setSizeGripEnabled(true);
verticalLayout = new QVBoxLayout(AttachmentsDialog);
verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
widget = new AttachmentsList(AttachmentsDialog);
widget->setObjectName(QStringLiteral("widget"));
verticalLayout->addWidget(widget);
label = new QLabel(AttachmentsDialog);
label->setObjectName(QStringLiteral("label"));
label->setMaximumSize(QSize(16777215, 30));
label->setAlignment(Qt::AlignCenter);
label->setWordWrap(true);
verticalLayout->addWidget(label);
buttonBox = new QDialogButtonBox(AttachmentsDialog);
buttonBox->setObjectName(QStringLiteral("buttonBox"));
buttonBox->setOrientation(Qt::Horizontal);
buttonBox->setStandardButtons(QDialogButtonBox::Ok);
buttonBox->setCenterButtons(true);
verticalLayout->addWidget(buttonBox);
retranslateUi(AttachmentsDialog);
QObject::connect(buttonBox, SIGNAL(accepted()), AttachmentsDialog, SLOT(accept()));
QObject::connect(buttonBox, SIGNAL(rejected()), AttachmentsDialog, SLOT(reject()));
QMetaObject::connectSlotsByName(AttachmentsDialog);
} // setupUi
void retranslateUi(QDialog *AttachmentsDialog)
{
AttachmentsDialog->setWindowTitle(QApplication::translate("AttachmentsDialog", "Dialog", 0));
label->setText(QApplication::translate("AttachmentsDialog", "There is list of attachments in document. Use context menu or drag-and-drop to manage it.", 0));
} // retranslateUi
};
namespace Ui {
class AttachmentsDialog: public Ui_AttachmentsDialog {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_ATTACHMENTSDIALOG_H

View File

@ -0,0 +1,93 @@
/********************************************************************************
** Form generated from reading UI file 'attachmentslist.ui'
**
** Created by: Qt User Interface Compiler version 5.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_ATTACHMENTSLIST_H
#define UI_ATTACHMENTSLIST_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QListView>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_AttachmentsList
{
public:
QAction *mRenameAction;
QAction *mDeleteAction;
QAction *mExportAction;
QAction *mImportAction;
QHBoxLayout *horizontalLayout;
QListView *mListView;
void setupUi(QWidget *AttachmentsList)
{
if (AttachmentsList->objectName().isEmpty())
AttachmentsList->setObjectName(QStringLiteral("AttachmentsList"));
AttachmentsList->resize(425, 300);
mRenameAction = new QAction(AttachmentsList);
mRenameAction->setObjectName(QStringLiteral("mRenameAction"));
mDeleteAction = new QAction(AttachmentsList);
mDeleteAction->setObjectName(QStringLiteral("mDeleteAction"));
mExportAction = new QAction(AttachmentsList);
mExportAction->setObjectName(QStringLiteral("mExportAction"));
mImportAction = new QAction(AttachmentsList);
mImportAction->setObjectName(QStringLiteral("mImportAction"));
horizontalLayout = new QHBoxLayout(AttachmentsList);
horizontalLayout->setObjectName(QStringLiteral("horizontalLayout"));
horizontalLayout->setContentsMargins(4, 4, 4, 4);
mListView = new QListView(AttachmentsList);
mListView->setObjectName(QStringLiteral("mListView"));
mListView->setContextMenuPolicy(Qt::CustomContextMenu);
mListView->setViewMode(QListView::IconMode);
horizontalLayout->addWidget(mListView);
retranslateUi(AttachmentsList);
QObject::connect(mListView, SIGNAL(customContextMenuRequested(QPoint)), AttachmentsList, SLOT(contextualMenu(QPoint)));
QObject::connect(mImportAction, SIGNAL(triggered()), AttachmentsList, SLOT(importFile()));
QObject::connect(mExportAction, SIGNAL(triggered()), AttachmentsList, SLOT(exportFile()));
QObject::connect(mDeleteAction, SIGNAL(triggered()), AttachmentsList, SLOT(deleteFile()));
QObject::connect(mRenameAction, SIGNAL(triggered()), AttachmentsList, SLOT(renameFile()));
QMetaObject::connectSlotsByName(AttachmentsList);
} // setupUi
void retranslateUi(QWidget *AttachmentsList)
{
AttachmentsList->setWindowTitle(QApplication::translate("AttachmentsList", "Form", 0));
mRenameAction->setText(QApplication::translate("AttachmentsList", "Rename", 0));
#ifndef QT_NO_TOOLTIP
mRenameAction->setToolTip(QApplication::translate("AttachmentsList", "Rename", 0));
#endif // QT_NO_TOOLTIP
mDeleteAction->setText(QApplication::translate("AttachmentsList", "Delete", 0));
mExportAction->setText(QApplication::translate("AttachmentsList", "Export...", 0));
#ifndef QT_NO_TOOLTIP
mExportAction->setToolTip(QApplication::translate("AttachmentsList", "Export", 0));
#endif // QT_NO_TOOLTIP
mImportAction->setText(QApplication::translate("AttachmentsList", "Import new...", 0));
#ifndef QT_NO_TOOLTIP
mImportAction->setToolTip(QApplication::translate("AttachmentsList", "Import", 0));
#endif // QT_NO_TOOLTIP
} // retranslateUi
};
namespace Ui {
class AttachmentsList: public Ui_AttachmentsList {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_ATTACHMENTSLIST_H

98
client/ui_finddialog.h Normal file
View File

@ -0,0 +1,98 @@
/********************************************************************************
** Form generated from reading UI file 'finddialog.ui'
**
** Created by: Qt User Interface Compiler version 5.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_FINDDIALOG_H
#define UI_FINDDIALOG_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QDialog>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QTableView>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_FindDialog
{
public:
QVBoxLayout *verticalLayout;
QHBoxLayout *horizontalLayout;
QLabel *label;
QLineEdit *mQueryText;
QPushButton *mSearchButton;
QTableView *mResultList;
void setupUi(QDialog *FindDialog)
{
if (FindDialog->objectName().isEmpty())
FindDialog->setObjectName(QStringLiteral("FindDialog"));
FindDialog->resize(611, 392);
verticalLayout = new QVBoxLayout(FindDialog);
verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
horizontalLayout = new QHBoxLayout();
horizontalLayout->setObjectName(QStringLiteral("horizontalLayout"));
label = new QLabel(FindDialog);
label->setObjectName(QStringLiteral("label"));
horizontalLayout->addWidget(label);
mQueryText = new QLineEdit(FindDialog);
mQueryText->setObjectName(QStringLiteral("mQueryText"));
horizontalLayout->addWidget(mQueryText);
mSearchButton = new QPushButton(FindDialog);
mSearchButton->setObjectName(QStringLiteral("mSearchButton"));
mSearchButton->setAutoDefault(false);
horizontalLayout->addWidget(mSearchButton);
verticalLayout->addLayout(horizontalLayout);
mResultList = new QTableView(FindDialog);
mResultList->setObjectName(QStringLiteral("mResultList"));
mResultList->setSelectionBehavior(QAbstractItemView::SelectRows);
mResultList->setShowGrid(false);
mResultList->horizontalHeader()->setDefaultSectionSize(293);
mResultList->verticalHeader()->setVisible(false);
verticalLayout->addWidget(mResultList);
retranslateUi(FindDialog);
mSearchButton->setDefault(false);
QMetaObject::connectSlotsByName(FindDialog);
} // setupUi
void retranslateUi(QDialog *FindDialog)
{
FindDialog->setWindowTitle(QApplication::translate("FindDialog", "Dialog", 0));
label->setText(QApplication::translate("FindDialog", "Text to search:", 0));
mSearchButton->setText(QApplication::translate("FindDialog", "Search", 0));
} // retranslateUi
};
namespace Ui {
class FindDialog: public Ui_FindDialog {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_FINDDIALOG_H

View File

@ -0,0 +1,93 @@
/********************************************************************************
** Form generated from reading UI file 'fvupdateconfirmdialog.ui'
**
** Created by: Qt User Interface Compiler version 5.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_FVUPDATECONFIRMDIALOG_H
#define UI_FVUPDATECONFIRMDIALOG_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QDialog>
#include <QtWidgets/QDialogButtonBox>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_FvUpdateConfirmDialog
{
public:
QVBoxLayout *verticalLayout;
QLabel *updateFileIsLocatedLabel;
QLabel *updateFileLinkLabel;
QLabel *downloadThisUpdateLabel;
QLabel *whenYouClickOkLabel;
QDialogButtonBox *confirmButtonBox;
void setupUi(QDialog *FvUpdateConfirmDialog)
{
if (FvUpdateConfirmDialog->objectName().isEmpty())
FvUpdateConfirmDialog->setObjectName(QStringLiteral("FvUpdateConfirmDialog"));
FvUpdateConfirmDialog->resize(480, 160);
verticalLayout = new QVBoxLayout(FvUpdateConfirmDialog);
verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
updateFileIsLocatedLabel = new QLabel(FvUpdateConfirmDialog);
updateFileIsLocatedLabel->setObjectName(QStringLiteral("updateFileIsLocatedLabel"));
verticalLayout->addWidget(updateFileIsLocatedLabel);
updateFileLinkLabel = new QLabel(FvUpdateConfirmDialog);
updateFileLinkLabel->setObjectName(QStringLiteral("updateFileLinkLabel"));
updateFileLinkLabel->setOpenExternalLinks(true);
updateFileLinkLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
verticalLayout->addWidget(updateFileLinkLabel);
downloadThisUpdateLabel = new QLabel(FvUpdateConfirmDialog);
downloadThisUpdateLabel->setObjectName(QStringLiteral("downloadThisUpdateLabel"));
verticalLayout->addWidget(downloadThisUpdateLabel);
whenYouClickOkLabel = new QLabel(FvUpdateConfirmDialog);
whenYouClickOkLabel->setObjectName(QStringLiteral("whenYouClickOkLabel"));
verticalLayout->addWidget(whenYouClickOkLabel);
confirmButtonBox = new QDialogButtonBox(FvUpdateConfirmDialog);
confirmButtonBox->setObjectName(QStringLiteral("confirmButtonBox"));
confirmButtonBox->setOrientation(Qt::Horizontal);
confirmButtonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);
verticalLayout->addWidget(confirmButtonBox);
retranslateUi(FvUpdateConfirmDialog);
QMetaObject::connectSlotsByName(FvUpdateConfirmDialog);
} // setupUi
void retranslateUi(QDialog *FvUpdateConfirmDialog)
{
FvUpdateConfirmDialog->setWindowTitle(QApplication::translate("FvUpdateConfirmDialog", "Software Update", 0));
updateFileIsLocatedLabel->setText(QApplication::translate("FvUpdateConfirmDialog", "The update file is located at:", 0));
updateFileLinkLabel->setText(QApplication::translate("FvUpdateConfirmDialog", "<a href=\"%1\">%1</a>", 0));
downloadThisUpdateLabel->setText(QApplication::translate("FvUpdateConfirmDialog", "Download this update, close \"%1\", install it, and then reopen \"%1\".", 0));
whenYouClickOkLabel->setText(QApplication::translate("FvUpdateConfirmDialog", "When you click \"OK\", this link will be opened in your browser.", 0));
} // retranslateUi
};
namespace Ui {
class FvUpdateConfirmDialog: public Ui_FvUpdateConfirmDialog {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_FVUPDATECONFIRMDIALOG_H

136
client/ui_fvupdatewindow.h Normal file
View File

@ -0,0 +1,136 @@
/********************************************************************************
** Form generated from reading UI file 'fvupdatewindow.ui'
**
** Created by: Qt User Interface Compiler version 5.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_FVUPDATEWINDOW_H
#define UI_FVUPDATEWINDOW_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QTextBrowser>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_FvUpdateWindow
{
public:
QHBoxLayout *horizontalLayout_6;
QVBoxLayout *verticalLayout;
QLabel *newVersionIsAvailableLabel;
QLabel *wouldYouLikeToDownloadLabel;
QGroupBox *groupBox;
QHBoxLayout *horizontalLayout_7;
QTextBrowser *releaseNotes;
QHBoxLayout *horizontalLayout_3;
QPushButton *skipThisVersionButton;
QSpacerItem *horizontalSpacer;
QPushButton *remindMeLaterButton;
QPushButton *installUpdateButton;
void setupUi(QWidget *FvUpdateWindow)
{
if (FvUpdateWindow->objectName().isEmpty())
FvUpdateWindow->setObjectName(QStringLiteral("FvUpdateWindow"));
FvUpdateWindow->resize(640, 480);
horizontalLayout_6 = new QHBoxLayout(FvUpdateWindow);
horizontalLayout_6->setObjectName(QStringLiteral("horizontalLayout_6"));
verticalLayout = new QVBoxLayout();
verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
newVersionIsAvailableLabel = new QLabel(FvUpdateWindow);
newVersionIsAvailableLabel->setObjectName(QStringLiteral("newVersionIsAvailableLabel"));
QFont font;
font.setBold(true);
font.setWeight(75);
newVersionIsAvailableLabel->setFont(font);
verticalLayout->addWidget(newVersionIsAvailableLabel);
wouldYouLikeToDownloadLabel = new QLabel(FvUpdateWindow);
wouldYouLikeToDownloadLabel->setObjectName(QStringLiteral("wouldYouLikeToDownloadLabel"));
verticalLayout->addWidget(wouldYouLikeToDownloadLabel);
groupBox = new QGroupBox(FvUpdateWindow);
groupBox->setObjectName(QStringLiteral("groupBox"));
groupBox->setFont(font);
horizontalLayout_7 = new QHBoxLayout(groupBox);
horizontalLayout_7->setObjectName(QStringLiteral("horizontalLayout_7"));
releaseNotes = new QTextBrowser(groupBox);
releaseNotes->setObjectName(QStringLiteral("releaseNotes"));
horizontalLayout_7->addWidget(releaseNotes);
verticalLayout->addWidget(groupBox);
horizontalLayout_3 = new QHBoxLayout();
horizontalLayout_3->setObjectName(QStringLiteral("horizontalLayout_3"));
skipThisVersionButton = new QPushButton(FvUpdateWindow);
skipThisVersionButton->setObjectName(QStringLiteral("skipThisVersionButton"));
horizontalLayout_3->addWidget(skipThisVersionButton);
horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
horizontalLayout_3->addItem(horizontalSpacer);
remindMeLaterButton = new QPushButton(FvUpdateWindow);
remindMeLaterButton->setObjectName(QStringLiteral("remindMeLaterButton"));
horizontalLayout_3->addWidget(remindMeLaterButton);
installUpdateButton = new QPushButton(FvUpdateWindow);
installUpdateButton->setObjectName(QStringLiteral("installUpdateButton"));
installUpdateButton->setAutoDefault(true);
horizontalLayout_3->addWidget(installUpdateButton);
verticalLayout->addLayout(horizontalLayout_3);
horizontalLayout_6->addLayout(verticalLayout);
retranslateUi(FvUpdateWindow);
installUpdateButton->setDefault(true);
QMetaObject::connectSlotsByName(FvUpdateWindow);
} // setupUi
void retranslateUi(QWidget *FvUpdateWindow)
{
FvUpdateWindow->setWindowTitle(QApplication::translate("FvUpdateWindow", "Software Update", 0));
newVersionIsAvailableLabel->setText(QApplication::translate("FvUpdateWindow", "A new version of %1 is available!", 0));
wouldYouLikeToDownloadLabel->setText(QApplication::translate("FvUpdateWindow", "%1 %2 is now available - you have %3. Would you like to download it now?", 0));
groupBox->setTitle(QApplication::translate("FvUpdateWindow", "Release Notes:", 0));
skipThisVersionButton->setText(QApplication::translate("FvUpdateWindow", "Skip This Version", 0));
remindMeLaterButton->setText(QApplication::translate("FvUpdateWindow", "Remind Me Later", 0));
installUpdateButton->setText(QApplication::translate("FvUpdateWindow", "Install Update", 0));
} // retranslateUi
};
namespace Ui {
class FvUpdateWindow: public Ui_FvUpdateWindow {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_FVUPDATEWINDOW_H

591
client/ui_mainwindow.h Normal file
View File

@ -0,0 +1,591 @@
/********************************************************************************
** Form generated from reading UI file 'mainwindow.ui'
**
** Created by: Qt User Interface Compiler version 5.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QFormLayout>
#include <QtWidgets/QFrame>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenu>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QPlainTextEdit>
#include <QtWidgets/QSplitter>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QToolBar>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
#include "tasktreemodel.h"
QT_BEGIN_NAMESPACE
class Ui_MainWindow
{
public:
QAction *mSyncAction;
QAction *mPrintAction;
QAction *mExitAction;
QAction *mPreferencesAction;
QAction *mSaveAction;
QAction *mDeleteTaskAction;
QAction *mRenameTaskAction;
QAction *mNewTaskAction;
QAction *mNewRootTaskAction;
QAction *mStartOrStopTrackingAction;
QAction *mUndoEditAction;
QAction *mRedoEditAction;
QAction *mCutEditAction;
QAction *mCopyEditAction;
QAction *mPasteEditAction;
QAction *mDeleteEditAction;
QAction *mSelectAllEditAction;
QAction *mAboutAction;
QAction *mTimelineAction;
QAction *mTimeReportAction;
QAction *mShowToolbarAction;
QAction *mAttachmentsAction;
QAction *mCheckForUpdatesAction;
QAction *mTimeTrackableAction;
QAction *mActionSearchInTasks;
QAction *mActionSearch;
QAction *mShowLittAction;
QAction *mFocusTaskTreeAction;
QAction *mFocusTaskTextAction;
QAction *mAddSiblingAction;
QAction *mDecreaseLevelAction;
QAction *mIncreaseLevelAction;
QAction *mMoveUpAction;
QAction *mMoveDownAction;
QWidget *centralWidget;
QHBoxLayout *horizontalLayout;
QSplitter *mSplitter;
TaskTreeView *mTaskTree;
QFrame *frame;
QGridLayout *gridLayout;
QSplitter *mTimeSplitter;
QFrame *mEditFrame;
QVBoxLayout *verticalLayout;
QPlainTextEdit *mNoteEdit;
QFrame *mFindFrame;
QHBoxLayout *mFindFrameLayout;
QLabel *label;
QLineEdit *mFindEdit;
QFrame *mTimeFrame;
QFormLayout *formLayout;
QLabel *mTodayTextLabel;
QLabel *mTodaySpentTimeLabel;
QLabel *mThisMonthTextLabel;
QLabel *mThisMonthSpentTimeLabel;
QMenuBar *mMainMenu;
QMenu *mFileMenu;
QMenu *mEditMenu;
QMenu *mToolsMenu;
QMenu *mStartRecentTaskMenu;
QMenu *mViewMenu;
QToolBar *mMainToolbar;
QStatusBar *mStatusBar;
void setupUi(QMainWindow *MainWindow)
{
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName(QStringLiteral("MainWindow"));
MainWindow->resize(647, 508);
QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(MainWindow->sizePolicy().hasHeightForWidth());
MainWindow->setSizePolicy(sizePolicy);
MainWindow->setWindowTitle(QStringLiteral("Litt"));
mSyncAction = new QAction(MainWindow);
mSyncAction->setObjectName(QStringLiteral("mSyncAction"));
mSyncAction->setEnabled(false);
QIcon icon;
icon.addFile(QStringLiteral(":/icons/icons/network-receive.png"), QSize(), QIcon::Normal, QIcon::Off);
mSyncAction->setIcon(icon);
mSyncAction->setVisible(false);
mPrintAction = new QAction(MainWindow);
mPrintAction->setObjectName(QStringLiteral("mPrintAction"));
QIcon icon1;
icon1.addFile(QStringLiteral(":/icons/icons/document-print.png"), QSize(), QIcon::Normal, QIcon::Off);
mPrintAction->setIcon(icon1);
mExitAction = new QAction(MainWindow);
mExitAction->setObjectName(QStringLiteral("mExitAction"));
mPreferencesAction = new QAction(MainWindow);
mPreferencesAction->setObjectName(QStringLiteral("mPreferencesAction"));
mSaveAction = new QAction(MainWindow);
mSaveAction->setObjectName(QStringLiteral("mSaveAction"));
QIcon icon2;
icon2.addFile(QStringLiteral(":/icons/icons/document-save.png"), QSize(), QIcon::Normal, QIcon::Off);
mSaveAction->setIcon(icon2);
mDeleteTaskAction = new QAction(MainWindow);
mDeleteTaskAction->setObjectName(QStringLiteral("mDeleteTaskAction"));
QIcon icon3;
icon3.addFile(QStringLiteral(":/icons/icons/list-remove.png"), QSize(), QIcon::Normal, QIcon::Off);
mDeleteTaskAction->setIcon(icon3);
mRenameTaskAction = new QAction(MainWindow);
mRenameTaskAction->setObjectName(QStringLiteral("mRenameTaskAction"));
QIcon icon4;
icon4.addFile(QStringLiteral(":/icons/icons/empty.png"), QSize(), QIcon::Normal, QIcon::Off);
mRenameTaskAction->setIcon(icon4);
mNewTaskAction = new QAction(MainWindow);
mNewTaskAction->setObjectName(QStringLiteral("mNewTaskAction"));
QIcon icon5;
icon5.addFile(QStringLiteral(":/icons/icons/tree-add-child-small.png"), QSize(), QIcon::Normal, QIcon::Off);
mNewTaskAction->setIcon(icon5);
mNewRootTaskAction = new QAction(MainWindow);
mNewRootTaskAction->setObjectName(QStringLiteral("mNewRootTaskAction"));
QIcon icon6;
icon6.addFile(QStringLiteral(":/icons/icons/tree-add-root-small.png"), QSize(), QIcon::Normal, QIcon::Off);
mNewRootTaskAction->setIcon(icon6);
mStartOrStopTrackingAction = new QAction(MainWindow);
mStartOrStopTrackingAction->setObjectName(QStringLiteral("mStartOrStopTrackingAction"));
QIcon icon7;
icon7.addFile(QStringLiteral(":/icons/icons/clock-32x32.png"), QSize(), QIcon::Normal, QIcon::Off);
mStartOrStopTrackingAction->setIcon(icon7);
mUndoEditAction = new QAction(MainWindow);
mUndoEditAction->setObjectName(QStringLiteral("mUndoEditAction"));
QIcon icon8;
icon8.addFile(QStringLiteral(":/icons/icons/edit-undo.png"), QSize(), QIcon::Normal, QIcon::Off);
mUndoEditAction->setIcon(icon8);
mRedoEditAction = new QAction(MainWindow);
mRedoEditAction->setObjectName(QStringLiteral("mRedoEditAction"));
QIcon icon9;
icon9.addFile(QStringLiteral(":/icons/icons/edit-redo.png"), QSize(), QIcon::Normal, QIcon::Off);
mRedoEditAction->setIcon(icon9);
mCutEditAction = new QAction(MainWindow);
mCutEditAction->setObjectName(QStringLiteral("mCutEditAction"));
QIcon icon10;
icon10.addFile(QStringLiteral(":/icons/icons/edit-cut.png"), QSize(), QIcon::Normal, QIcon::Off);
mCutEditAction->setIcon(icon10);
mCopyEditAction = new QAction(MainWindow);
mCopyEditAction->setObjectName(QStringLiteral("mCopyEditAction"));
QIcon icon11;
icon11.addFile(QStringLiteral(":/icons/icons/edit-copy.png"), QSize(), QIcon::Normal, QIcon::Off);
mCopyEditAction->setIcon(icon11);
mPasteEditAction = new QAction(MainWindow);
mPasteEditAction->setObjectName(QStringLiteral("mPasteEditAction"));
QIcon icon12;
icon12.addFile(QStringLiteral(":/icons/icons/edit-paste.png"), QSize(), QIcon::Normal, QIcon::Off);
mPasteEditAction->setIcon(icon12);
mDeleteEditAction = new QAction(MainWindow);
mDeleteEditAction->setObjectName(QStringLiteral("mDeleteEditAction"));
QIcon icon13;
icon13.addFile(QStringLiteral(":/icons/icons/edit-clear.png"), QSize(), QIcon::Normal, QIcon::Off);
mDeleteEditAction->setIcon(icon13);
mSelectAllEditAction = new QAction(MainWindow);
mSelectAllEditAction->setObjectName(QStringLiteral("mSelectAllEditAction"));
QIcon icon14;
icon14.addFile(QStringLiteral(":/icons/icons/edit-select-all.png"), QSize(), QIcon::Normal, QIcon::Off);
mSelectAllEditAction->setIcon(icon14);
mAboutAction = new QAction(MainWindow);
mAboutAction->setObjectName(QStringLiteral("mAboutAction"));
mTimelineAction = new QAction(MainWindow);
mTimelineAction->setObjectName(QStringLiteral("mTimelineAction"));
QIcon icon15;
icon15.addFile(QStringLiteral(":/icons/icons/office-calendar.png"), QSize(), QIcon::Normal, QIcon::Off);
mTimelineAction->setIcon(icon15);
mTimeReportAction = new QAction(MainWindow);
mTimeReportAction->setObjectName(QStringLiteral("mTimeReportAction"));
QIcon icon16;
icon16.addFile(QStringLiteral(":/icons/icons/appointment-new.png"), QSize(), QIcon::Normal, QIcon::Off);
mTimeReportAction->setIcon(icon16);
mShowToolbarAction = new QAction(MainWindow);
mShowToolbarAction->setObjectName(QStringLiteral("mShowToolbarAction"));
mShowToolbarAction->setCheckable(true);
mShowToolbarAction->setChecked(true);
mShowToolbarAction->setIcon(icon4);
mAttachmentsAction = new QAction(MainWindow);
mAttachmentsAction->setObjectName(QStringLiteral("mAttachmentsAction"));
mAttachmentsAction->setIcon(icon4);
mCheckForUpdatesAction = new QAction(MainWindow);
mCheckForUpdatesAction->setObjectName(QStringLiteral("mCheckForUpdatesAction"));
mTimeTrackableAction = new QAction(MainWindow);
mTimeTrackableAction->setObjectName(QStringLiteral("mTimeTrackableAction"));
mTimeTrackableAction->setCheckable(true);
QIcon icon17;
icon17.addFile(QStringLiteral(":/icons/icons/accessories-calculator.png"), QSize(), QIcon::Normal, QIcon::Off);
mTimeTrackableAction->setIcon(icon17);
mActionSearchInTasks = new QAction(MainWindow);
mActionSearchInTasks->setObjectName(QStringLiteral("mActionSearchInTasks"));
QIcon icon18;
icon18.addFile(QStringLiteral(":/icons/icons/folder-saved-search.png"), QSize(), QIcon::Normal, QIcon::Off);
mActionSearchInTasks->setIcon(icon18);
mActionSearch = new QAction(MainWindow);
mActionSearch->setObjectName(QStringLiteral("mActionSearch"));
QIcon icon19;
icon19.addFile(QStringLiteral(":/icons/icons/edit-find.png"), QSize(), QIcon::Normal, QIcon::Off);
mActionSearch->setIcon(icon19);
mShowLittAction = new QAction(MainWindow);
mShowLittAction->setObjectName(QStringLiteral("mShowLittAction"));
QIcon icon20;
icon20.addFile(QStringLiteral(":/icons/icons/format-justify-fill.png"), QSize(), QIcon::Normal, QIcon::Off);
mShowLittAction->setIcon(icon20);
mFocusTaskTreeAction = new QAction(MainWindow);
mFocusTaskTreeAction->setObjectName(QStringLiteral("mFocusTaskTreeAction"));
mFocusTaskTreeAction->setIcon(icon4);
mFocusTaskTextAction = new QAction(MainWindow);
mFocusTaskTextAction->setObjectName(QStringLiteral("mFocusTaskTextAction"));
mFocusTaskTextAction->setIcon(icon4);
mAddSiblingAction = new QAction(MainWindow);
mAddSiblingAction->setObjectName(QStringLiteral("mAddSiblingAction"));
QIcon icon21;
icon21.addFile(QStringLiteral(":/icons/icons/tree-add-sibling-small.png"), QSize(), QIcon::Normal, QIcon::Off);
mAddSiblingAction->setIcon(icon21);
mDecreaseLevelAction = new QAction(MainWindow);
mDecreaseLevelAction->setObjectName(QStringLiteral("mDecreaseLevelAction"));
mDecreaseLevelAction->setIcon(icon4);
mIncreaseLevelAction = new QAction(MainWindow);
mIncreaseLevelAction->setObjectName(QStringLiteral("mIncreaseLevelAction"));
mIncreaseLevelAction->setIcon(icon4);
mMoveUpAction = new QAction(MainWindow);
mMoveUpAction->setObjectName(QStringLiteral("mMoveUpAction"));
mMoveUpAction->setIcon(icon4);
mMoveDownAction = new QAction(MainWindow);
mMoveDownAction->setObjectName(QStringLiteral("mMoveDownAction"));
mMoveDownAction->setIcon(icon4);
centralWidget = new QWidget(MainWindow);
centralWidget->setObjectName(QStringLiteral("centralWidget"));
QSizePolicy sizePolicy1(QSizePolicy::Maximum, QSizePolicy::Maximum);
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(centralWidget->sizePolicy().hasHeightForWidth());
centralWidget->setSizePolicy(sizePolicy1);
horizontalLayout = new QHBoxLayout(centralWidget);
horizontalLayout->setSpacing(6);
horizontalLayout->setContentsMargins(11, 11, 11, 11);
horizontalLayout->setObjectName(QStringLiteral("horizontalLayout"));
horizontalLayout->setSizeConstraint(QLayout::SetMaximumSize);
horizontalLayout->setContentsMargins(2, 2, 2, 2);
mSplitter = new QSplitter(centralWidget);
mSplitter->setObjectName(QStringLiteral("mSplitter"));
sizePolicy.setHeightForWidth(mSplitter->sizePolicy().hasHeightForWidth());
mSplitter->setSizePolicy(sizePolicy);
mSplitter->setMinimumSize(QSize(600, 200));
mSplitter->setOrientation(Qt::Horizontal);
mTaskTree = new TaskTreeView(mSplitter);
mTaskTree->setObjectName(QStringLiteral("mTaskTree"));
mTaskTree->setContextMenuPolicy(Qt::CustomContextMenu);
mTaskTree->setDragEnabled(true);
mTaskTree->setDragDropMode(QAbstractItemView::InternalMove);
mTaskTree->setDefaultDropAction(Qt::MoveAction);
mSplitter->addWidget(mTaskTree);
frame = new QFrame(mSplitter);
frame->setObjectName(QStringLiteral("frame"));
frame->setFrameShape(QFrame::NoFrame);
frame->setFrameShadow(QFrame::Raised);
gridLayout = new QGridLayout(frame);
gridLayout->setSpacing(6);
gridLayout->setContentsMargins(11, 11, 11, 11);
gridLayout->setObjectName(QStringLiteral("gridLayout"));
gridLayout->setContentsMargins(0, 0, 0, 0);
mTimeSplitter = new QSplitter(frame);
mTimeSplitter->setObjectName(QStringLiteral("mTimeSplitter"));
mTimeSplitter->setMinimumSize(QSize(0, 0));
mTimeSplitter->setLineWidth(0);
mTimeSplitter->setOrientation(Qt::Vertical);
mEditFrame = new QFrame(mTimeSplitter);
mEditFrame->setObjectName(QStringLiteral("mEditFrame"));
mEditFrame->setFrameShape(QFrame::StyledPanel);
mEditFrame->setFrameShadow(QFrame::Plain);
mEditFrame->setLineWidth(0);
verticalLayout = new QVBoxLayout(mEditFrame);
verticalLayout->setSpacing(0);
verticalLayout->setContentsMargins(11, 11, 11, 11);
verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
verticalLayout->setContentsMargins(0, 0, 0, 0);
mNoteEdit = new QPlainTextEdit(mEditFrame);
mNoteEdit->setObjectName(QStringLiteral("mNoteEdit"));
sizePolicy.setHeightForWidth(mNoteEdit->sizePolicy().hasHeightForWidth());
mNoteEdit->setSizePolicy(sizePolicy);
mNoteEdit->setFrameShape(QFrame::NoFrame);
mNoteEdit->setFrameShadow(QFrame::Plain);
verticalLayout->addWidget(mNoteEdit);
mFindFrame = new QFrame(mEditFrame);
mFindFrame->setObjectName(QStringLiteral("mFindFrame"));
mFindFrame->setAutoFillBackground(false);
mFindFrame->setStyleSheet(QStringLiteral("background-color:white;"));
mFindFrame->setFrameShape(QFrame::NoFrame);
mFindFrame->setFrameShadow(QFrame::Raised);
mFindFrame->setLineWidth(0);
mFindFrameLayout = new QHBoxLayout(mFindFrame);
mFindFrameLayout->setSpacing(5);
mFindFrameLayout->setContentsMargins(11, 11, 11, 11);
mFindFrameLayout->setObjectName(QStringLiteral("mFindFrameLayout"));
mFindFrameLayout->setContentsMargins(0, 0, 0, 0);
label = new QLabel(mFindFrame);
label->setObjectName(QStringLiteral("label"));
mFindFrameLayout->addWidget(label);
mFindEdit = new QLineEdit(mFindFrame);
mFindEdit->setObjectName(QStringLiteral("mFindEdit"));
mFindFrameLayout->addWidget(mFindEdit);
verticalLayout->addWidget(mFindFrame);
mTimeSplitter->addWidget(mEditFrame);
mTimeFrame = new QFrame(mTimeSplitter);
mTimeFrame->setObjectName(QStringLiteral("mTimeFrame"));
mTimeFrame->setMaximumSize(QSize(16777215, 70));
mTimeFrame->setFrameShape(QFrame::StyledPanel);
formLayout = new QFormLayout(mTimeFrame);
formLayout->setSpacing(6);
formLayout->setContentsMargins(11, 11, 11, 11);
formLayout->setObjectName(QStringLiteral("formLayout"));
mTodayTextLabel = new QLabel(mTimeFrame);
mTodayTextLabel->setObjectName(QStringLiteral("mTodayTextLabel"));
formLayout->setWidget(0, QFormLayout::LabelRole, mTodayTextLabel);
mTodaySpentTimeLabel = new QLabel(mTimeFrame);
mTodaySpentTimeLabel->setObjectName(QStringLiteral("mTodaySpentTimeLabel"));
formLayout->setWidget(0, QFormLayout::FieldRole, mTodaySpentTimeLabel);
mThisMonthTextLabel = new QLabel(mTimeFrame);
mThisMonthTextLabel->setObjectName(QStringLiteral("mThisMonthTextLabel"));
formLayout->setWidget(1, QFormLayout::LabelRole, mThisMonthTextLabel);
mThisMonthSpentTimeLabel = new QLabel(mTimeFrame);
mThisMonthSpentTimeLabel->setObjectName(QStringLiteral("mThisMonthSpentTimeLabel"));
formLayout->setWidget(1, QFormLayout::FieldRole, mThisMonthSpentTimeLabel);
mTimeSplitter->addWidget(mTimeFrame);
gridLayout->addWidget(mTimeSplitter, 0, 0, 1, 1);
mSplitter->addWidget(frame);
horizontalLayout->addWidget(mSplitter);
MainWindow->setCentralWidget(centralWidget);
mMainMenu = new QMenuBar(MainWindow);
mMainMenu->setObjectName(QStringLiteral("mMainMenu"));
mMainMenu->setGeometry(QRect(0, 0, 647, 22));
mFileMenu = new QMenu(mMainMenu);
mFileMenu->setObjectName(QStringLiteral("mFileMenu"));
mEditMenu = new QMenu(mMainMenu);
mEditMenu->setObjectName(QStringLiteral("mEditMenu"));
mToolsMenu = new QMenu(mMainMenu);
mToolsMenu->setObjectName(QStringLiteral("mToolsMenu"));
mStartRecentTaskMenu = new QMenu(mToolsMenu);
mStartRecentTaskMenu->setObjectName(QStringLiteral("mStartRecentTaskMenu"));
mStartRecentTaskMenu->setIcon(icon4);
mViewMenu = new QMenu(mMainMenu);
mViewMenu->setObjectName(QStringLiteral("mViewMenu"));
MainWindow->setMenuBar(mMainMenu);
mMainToolbar = new QToolBar(MainWindow);
mMainToolbar->setObjectName(QStringLiteral("mMainToolbar"));
mMainToolbar->setContextMenuPolicy(Qt::NoContextMenu);
mMainToolbar->setMovable(false);
mMainToolbar->setFloatable(false);
MainWindow->addToolBar(Qt::TopToolBarArea, mMainToolbar);
mStatusBar = new QStatusBar(MainWindow);
mStatusBar->setObjectName(QStringLiteral("mStatusBar"));
MainWindow->setStatusBar(mStatusBar);
mMainMenu->addAction(mFileMenu->menuAction());
mMainMenu->addAction(mEditMenu->menuAction());
mMainMenu->addAction(mToolsMenu->menuAction());
mMainMenu->addAction(mViewMenu->menuAction());
mFileMenu->addAction(mAboutAction);
mFileMenu->addAction(mCheckForUpdatesAction);
mFileMenu->addAction(mSaveAction);
mFileMenu->addAction(mSyncAction);
mFileMenu->addSeparator();
mFileMenu->addAction(mPreferencesAction);
mFileMenu->addAction(mPrintAction);
mFileMenu->addAction(mExitAction);
mEditMenu->addAction(mNewRootTaskAction);
mEditMenu->addAction(mNewTaskAction);
mEditMenu->addAction(mAddSiblingAction);
mEditMenu->addAction(mDeleteTaskAction);
mEditMenu->addAction(mRenameTaskAction);
mEditMenu->addAction(mMoveUpAction);
mEditMenu->addAction(mMoveDownAction);
mEditMenu->addSeparator();
mEditMenu->addAction(mUndoEditAction);
mEditMenu->addAction(mRedoEditAction);
mEditMenu->addAction(mCutEditAction);
mEditMenu->addAction(mCopyEditAction);
mEditMenu->addAction(mPasteEditAction);
mEditMenu->addAction(mDeleteEditAction);
mEditMenu->addAction(mSelectAllEditAction);
mEditMenu->addSeparator();
mEditMenu->addAction(mActionSearch);
mEditMenu->addAction(mActionSearchInTasks);
mToolsMenu->addAction(mActionSearchInTasks);
mToolsMenu->addAction(mTimeReportAction);
mToolsMenu->addAction(mStartOrStopTrackingAction);
mToolsMenu->addAction(mStartRecentTaskMenu->menuAction());
mToolsMenu->addSeparator();
mToolsMenu->addAction(mFocusTaskTreeAction);
mToolsMenu->addAction(mFocusTaskTextAction);
mViewMenu->addAction(mShowToolbarAction);
mMainToolbar->addAction(mNewRootTaskAction);
mMainToolbar->addAction(mNewTaskAction);
mMainToolbar->addAction(mAddSiblingAction);
mMainToolbar->addAction(mDeleteTaskAction);
mMainToolbar->addAction(mStartOrStopTrackingAction);
retranslateUi(MainWindow);
QObject::connect(mExitAction, SIGNAL(triggered()), MainWindow, SLOT(quit()));
QObject::connect(mSaveAction, SIGNAL(triggered()), MainWindow, SLOT(save()));
QObject::connect(mSyncAction, SIGNAL(triggered()), MainWindow, SLOT(sync()));
QObject::connect(mTaskTree, SIGNAL(customContextMenuRequested(QPoint)), MainWindow, SLOT(taskTreeContextualMenu(QPoint)));
QObject::connect(mNewTaskAction, SIGNAL(triggered()), MainWindow, SLOT(newTask()));
QObject::connect(mRenameTaskAction, SIGNAL(triggered()), MainWindow, SLOT(renameTask()));
QObject::connect(mDeleteTaskAction, SIGNAL(triggered()), MainWindow, SLOT(deleteTask()));
QObject::connect(mNewRootTaskAction, SIGNAL(triggered()), MainWindow, SLOT(newRootTask()));
QObject::connect(mStartOrStopTrackingAction, SIGNAL(triggered()), MainWindow, SLOT(startOrStopTracking()));
QObject::connect(mPrintAction, SIGNAL(triggered()), MainWindow, SLOT(print()));
QObject::connect(mCopyEditAction, SIGNAL(triggered()), MainWindow, SLOT(editCopy()));
QObject::connect(mCutEditAction, SIGNAL(triggered()), MainWindow, SLOT(editCut()));
QObject::connect(mDeleteEditAction, SIGNAL(triggered()), MainWindow, SLOT(editDelete()));
QObject::connect(mPasteEditAction, SIGNAL(triggered()), MainWindow, SLOT(editPaste()));
QObject::connect(mRedoEditAction, SIGNAL(triggered()), MainWindow, SLOT(editRedo()));
QObject::connect(mUndoEditAction, SIGNAL(triggered()), MainWindow, SLOT(editUndo()));
QObject::connect(mSelectAllEditAction, SIGNAL(triggered()), MainWindow, SLOT(editSelectAll()));
QObject::connect(mTimelineAction, SIGNAL(triggered()), MainWindow, SLOT(showTimeline()));
QObject::connect(mTimeReportAction, SIGNAL(triggered()), MainWindow, SLOT(showTimeReport()));
QObject::connect(mShowToolbarAction, SIGNAL(changed()), MainWindow, SLOT(showHideToolbar()));
QObject::connect(mAttachmentsAction, SIGNAL(triggered()), MainWindow, SLOT(showAttachments()));
QObject::connect(mCheckForUpdatesAction, SIGNAL(triggered()), MainWindow, SLOT(checkForUpdates()));
QObject::connect(mTimeTrackableAction, SIGNAL(toggled(bool)), MainWindow, SLOT(changeTimeTrackableFlag(bool)));
QObject::connect(mActionSearch, SIGNAL(triggered()), MainWindow, SLOT(find()));
QObject::connect(mActionSearchInTasks, SIGNAL(triggered()), MainWindow, SLOT(findInTasks()));
QObject::connect(mFindEdit, SIGNAL(returnPressed()), MainWindow, SLOT(findRequested()));
QObject::connect(mShowLittAction, SIGNAL(triggered()), MainWindow, SLOT(showMainWindow()));
QObject::connect(mFocusTaskTreeAction, SIGNAL(triggered()), MainWindow, SLOT(focusTaskTree()));
QObject::connect(mFocusTaskTextAction, SIGNAL(triggered()), MainWindow, SLOT(focusTaskText()));
QObject::connect(mNoteEdit, SIGNAL(textChanged()), MainWindow, SLOT(taskTextChanged()));
QObject::connect(mAddSiblingAction, SIGNAL(triggered()), MainWindow, SLOT(newSibling()));
QObject::connect(mMoveDownAction, SIGNAL(triggered()), MainWindow, SLOT(moveDown()));
QObject::connect(mMoveUpAction, SIGNAL(triggered()), MainWindow, SLOT(moveUp()));
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
mSyncAction->setText(QApplication::translate("MainWindow", "S&ync...", 0));
mPrintAction->setText(QApplication::translate("MainWindow", "&Print...", 0));
mExitAction->setText(QApplication::translate("MainWindow", "E&xit", 0));
mPreferencesAction->setText(QApplication::translate("MainWindow", "Pre&ferences...", 0));
mSaveAction->setText(QApplication::translate("MainWindow", "&Save", 0));
mSaveAction->setShortcut(QApplication::translate("MainWindow", "Ctrl+S", 0));
mDeleteTaskAction->setText(QApplication::translate("MainWindow", "Delete task", 0));
#ifndef QT_NO_TOOLTIP
mDeleteTaskAction->setToolTip(QApplication::translate("MainWindow", "Delete task", 0));
#endif // QT_NO_TOOLTIP
mRenameTaskAction->setText(QApplication::translate("MainWindow", "Rename task", 0));
mNewTaskAction->setText(QApplication::translate("MainWindow", "New child task", 0));
mNewTaskAction->setIconText(QApplication::translate("MainWindow", "New child task", 0));
#ifndef QT_NO_TOOLTIP
mNewTaskAction->setToolTip(QApplication::translate("MainWindow", "New child task", 0));
#endif // QT_NO_TOOLTIP
mNewTaskAction->setShortcut(QApplication::translate("MainWindow", "Ctrl+Shift+N", 0));
mNewRootTaskAction->setText(QApplication::translate("MainWindow", "New root task", 0));
mNewRootTaskAction->setShortcut(QApplication::translate("MainWindow", "Ctrl+N", 0));
mStartOrStopTrackingAction->setText(QApplication::translate("MainWindow", "Start tracking", 0));
mStartOrStopTrackingAction->setShortcut(QApplication::translate("MainWindow", "Ctrl+T", 0));
mUndoEditAction->setText(QApplication::translate("MainWindow", "Undo", 0));
mUndoEditAction->setShortcut(QApplication::translate("MainWindow", "Ctrl+Z", 0));
mRedoEditAction->setText(QApplication::translate("MainWindow", "Redo", 0));
mRedoEditAction->setShortcut(QApplication::translate("MainWindow", "Ctrl+Shift+Z", 0));
mCutEditAction->setText(QApplication::translate("MainWindow", "Cut", 0));
mCutEditAction->setShortcut(QApplication::translate("MainWindow", "Ctrl+X", 0));
mCopyEditAction->setText(QApplication::translate("MainWindow", "Copy", 0));
mCopyEditAction->setShortcut(QApplication::translate("MainWindow", "Ctrl+C", 0));
mPasteEditAction->setText(QApplication::translate("MainWindow", "Paste", 0));
mPasteEditAction->setShortcut(QApplication::translate("MainWindow", "Ctrl+V", 0));
mDeleteEditAction->setText(QApplication::translate("MainWindow", "Delete", 0));
mSelectAllEditAction->setText(QApplication::translate("MainWindow", "Select all note", 0));
mSelectAllEditAction->setShortcut(QApplication::translate("MainWindow", "Ctrl+A", 0));
mAboutAction->setText(QApplication::translate("MainWindow", "About...", 0));
mTimelineAction->setText(QApplication::translate("MainWindow", "Timeline...", 0));
mTimeReportAction->setText(QApplication::translate("MainWindow", "Time report...", 0));
mShowToolbarAction->setText(QApplication::translate("MainWindow", "Show toolbar", 0));
mAttachmentsAction->setText(QApplication::translate("MainWindow", "Attachments", 0));
#ifndef QT_NO_TOOLTIP
mAttachmentsAction->setToolTip(QApplication::translate("MainWindow", "View&edit attachments", 0));
#endif // QT_NO_TOOLTIP
mCheckForUpdatesAction->setText(QApplication::translate("MainWindow", "Check for updates...", 0));
mTimeTrackableAction->setText(QApplication::translate("MainWindow", "Time trackable", 0));
mActionSearchInTasks->setText(QApplication::translate("MainWindow", "Find in tasks...", 0));
mActionSearchInTasks->setShortcut(QApplication::translate("MainWindow", "Ctrl+Shift+F", 0));
mActionSearch->setText(QApplication::translate("MainWindow", "Find...", 0));
mActionSearch->setShortcut(QApplication::translate("MainWindow", "Ctrl+F", 0));
mShowLittAction->setText(QApplication::translate("MainWindow", "Show Litt window", 0));
#ifndef QT_NO_TOOLTIP
mShowLittAction->setToolTip(QApplication::translate("MainWindow", "Bring Litt window to foreground", 0));
#endif // QT_NO_TOOLTIP
mFocusTaskTreeAction->setText(QApplication::translate("MainWindow", "Switch to task tree", 0));
mFocusTaskTreeAction->setShortcut(QApplication::translate("MainWindow", "Ctrl+1", 0));
mFocusTaskTextAction->setText(QApplication::translate("MainWindow", "Switch to task text", 0));
mFocusTaskTextAction->setShortcut(QApplication::translate("MainWindow", "Ctrl+2", 0));
mAddSiblingAction->setText(QApplication::translate("MainWindow", "Add sibling", 0));
#ifndef QT_NO_TOOLTIP
mAddSiblingAction->setToolTip(QApplication::translate("MainWindow", "Add sibling document", 0));
#endif // QT_NO_TOOLTIP
mDecreaseLevelAction->setText(QApplication::translate("MainWindow", "Decrease level", 0));
#ifndef QT_NO_TOOLTIP
mDecreaseLevelAction->setToolTip(QApplication::translate("MainWindow", "Decrease document level", 0));
#endif // QT_NO_TOOLTIP
mIncreaseLevelAction->setText(QApplication::translate("MainWindow", "Increase level", 0));
#ifndef QT_NO_TOOLTIP
mIncreaseLevelAction->setToolTip(QApplication::translate("MainWindow", "Increase document level", 0));
#endif // QT_NO_TOOLTIP
mMoveUpAction->setText(QApplication::translate("MainWindow", "Move up", 0));
#ifndef QT_NO_TOOLTIP
mMoveUpAction->setToolTip(QApplication::translate("MainWindow", "Move document up", 0));
#endif // QT_NO_TOOLTIP
mMoveUpAction->setShortcut(QApplication::translate("MainWindow", "Ctrl+Shift+Up", 0));
mMoveDownAction->setText(QApplication::translate("MainWindow", "Move down", 0));
#ifndef QT_NO_TOOLTIP
mMoveDownAction->setToolTip(QApplication::translate("MainWindow", "Move document down", 0));
#endif // QT_NO_TOOLTIP
mMoveDownAction->setShortcut(QApplication::translate("MainWindow", "Ctrl+Shift+Down", 0));
label->setText(QApplication::translate("MainWindow", "Find:", 0));
mTodayTextLabel->setText(QApplication::translate("MainWindow", "Today:", 0));
mTodaySpentTimeLabel->setText(QApplication::translate("MainWindow", "0 hours 0 minutes", 0));
mThisMonthTextLabel->setText(QApplication::translate("MainWindow", "This month:", 0));
mThisMonthSpentTimeLabel->setText(QApplication::translate("MainWindow", "0 hours 0 minutes", 0));
mFileMenu->setTitle(QApplication::translate("MainWindow", "&File", 0));
mEditMenu->setTitle(QApplication::translate("MainWindow", "Edit", 0));
mToolsMenu->setTitle(QApplication::translate("MainWindow", "&Tools", 0));
mStartRecentTaskMenu->setTitle(QApplication::translate("MainWindow", "Track recent task", 0));
mViewMenu->setTitle(QApplication::translate("MainWindow", "View", 0));
mMainToolbar->setWindowTitle(QApplication::translate("MainWindow", "Toolbar", 0));
Q_UNUSED(MainWindow);
} // retranslateUi
};
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAINWINDOW_H

111
client/ui_newpassworddlg.h Normal file
View File

@ -0,0 +1,111 @@
/********************************************************************************
** Form generated from reading UI file 'newpassworddlg.ui'
**
** Created by: Qt User Interface Compiler version 5.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_NEWPASSWORDDLG_H
#define UI_NEWPASSWORDDLG_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QDialog>
#include <QtWidgets/QDialogButtonBox>
#include <QtWidgets/QFormLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_NewPasswordDlg
{
public:
QVBoxLayout *verticalLayout;
QFormLayout *formLayout;
QLabel *mNewPasswordLabel1;
QLineEdit *mNewPasswordEdit1;
QLabel *mNewPasswordLabel2;
QLineEdit *mNewPasswordEdit2;
QLabel *mPasswordHintLabel;
QDialogButtonBox *mDialogButtonBox;
void setupUi(QDialog *NewPasswordDlg)
{
if (NewPasswordDlg->objectName().isEmpty())
NewPasswordDlg->setObjectName(QStringLiteral("NewPasswordDlg"));
NewPasswordDlg->resize(416, 200);
NewPasswordDlg->setMinimumSize(QSize(400, 188));
verticalLayout = new QVBoxLayout(NewPasswordDlg);
verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
formLayout = new QFormLayout();
formLayout->setObjectName(QStringLiteral("formLayout"));
mNewPasswordLabel1 = new QLabel(NewPasswordDlg);
mNewPasswordLabel1->setObjectName(QStringLiteral("mNewPasswordLabel1"));
formLayout->setWidget(0, QFormLayout::LabelRole, mNewPasswordLabel1);
mNewPasswordEdit1 = new QLineEdit(NewPasswordDlg);
mNewPasswordEdit1->setObjectName(QStringLiteral("mNewPasswordEdit1"));
mNewPasswordEdit1->setInputMethodHints(Qt::ImhHiddenText|Qt::ImhNoAutoUppercase|Qt::ImhNoPredictiveText|Qt::ImhSensitiveData);
mNewPasswordEdit1->setEchoMode(QLineEdit::Password);
formLayout->setWidget(0, QFormLayout::FieldRole, mNewPasswordEdit1);
mNewPasswordLabel2 = new QLabel(NewPasswordDlg);
mNewPasswordLabel2->setObjectName(QStringLiteral("mNewPasswordLabel2"));
formLayout->setWidget(1, QFormLayout::LabelRole, mNewPasswordLabel2);
mNewPasswordEdit2 = new QLineEdit(NewPasswordDlg);
mNewPasswordEdit2->setObjectName(QStringLiteral("mNewPasswordEdit2"));
mNewPasswordEdit2->setEchoMode(QLineEdit::Password);
formLayout->setWidget(1, QFormLayout::FieldRole, mNewPasswordEdit2);
verticalLayout->addLayout(formLayout);
mPasswordHintLabel = new QLabel(NewPasswordDlg);
mPasswordHintLabel->setObjectName(QStringLiteral("mPasswordHintLabel"));
mPasswordHintLabel->setWordWrap(true);
verticalLayout->addWidget(mPasswordHintLabel);
mDialogButtonBox = new QDialogButtonBox(NewPasswordDlg);
mDialogButtonBox->setObjectName(QStringLiteral("mDialogButtonBox"));
mDialogButtonBox->setOrientation(Qt::Horizontal);
mDialogButtonBox->setStandardButtons(QDialogButtonBox::Ok);
mDialogButtonBox->setCenterButtons(true);
verticalLayout->addWidget(mDialogButtonBox);
retranslateUi(NewPasswordDlg);
QObject::connect(mDialogButtonBox, SIGNAL(accepted()), NewPasswordDlg, SLOT(tryAccept()));
QMetaObject::connectSlotsByName(NewPasswordDlg);
} // setupUi
void retranslateUi(QDialog *NewPasswordDlg)
{
NewPasswordDlg->setWindowTitle(QApplication::translate("NewPasswordDlg", "Password for new database", 0));
mNewPasswordLabel1->setText(QApplication::translate("NewPasswordDlg", "Password:", 0));
mNewPasswordLabel2->setText(QApplication::translate("NewPasswordDlg", "Repeat password:", 0));
mPasswordHintLabel->setText(QApplication::translate("NewPasswordDlg", "<html><head/><body><p>Please enter new password twice to complete database creation.</p> <p>Please be aware - there is no way to recover lost password.</p></body></html>", 0));
} // retranslateUi
};
namespace Ui {
class NewPasswordDlg: public Ui_NewPasswordDlg {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_NEWPASSWORDDLG_H

92
client/ui_passworddlg.h Normal file
View File

@ -0,0 +1,92 @@
/********************************************************************************
** Form generated from reading UI file 'passworddlg.ui'
**
** Created by: Qt User Interface Compiler version 5.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_PASSWORDDLG_H
#define UI_PASSWORDDLG_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QDialog>
#include <QtWidgets/QDialogButtonBox>
#include <QtWidgets/QFormLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_PasswordDlg
{
public:
QVBoxLayout *verticalLayout;
QFormLayout *mPasswordFormLayout;
QLabel *mPasswordLabel;
QLineEdit *mPasswordEdit;
QDialogButtonBox *mButtonBox;
void setupUi(QDialog *PasswordDlg)
{
if (PasswordDlg->objectName().isEmpty())
PasswordDlg->setObjectName(QStringLiteral("PasswordDlg"));
PasswordDlg->resize(285, 113);
PasswordDlg->setMinimumSize(QSize(285, 113));
verticalLayout = new QVBoxLayout(PasswordDlg);
verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
verticalLayout->setContentsMargins(-1, 24, -1, 12);
mPasswordFormLayout = new QFormLayout();
mPasswordFormLayout->setObjectName(QStringLiteral("mPasswordFormLayout"));
mPasswordFormLayout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint);
mPasswordLabel = new QLabel(PasswordDlg);
mPasswordLabel->setObjectName(QStringLiteral("mPasswordLabel"));
mPasswordFormLayout->setWidget(0, QFormLayout::LabelRole, mPasswordLabel);
mPasswordEdit = new QLineEdit(PasswordDlg);
mPasswordEdit->setObjectName(QStringLiteral("mPasswordEdit"));
mPasswordEdit->setInputMethodHints(Qt::ImhHiddenText|Qt::ImhNoAutoUppercase|Qt::ImhNoPredictiveText|Qt::ImhSensitiveData);
mPasswordEdit->setEchoMode(QLineEdit::Password);
mPasswordFormLayout->setWidget(0, QFormLayout::FieldRole, mPasswordEdit);
verticalLayout->addLayout(mPasswordFormLayout);
mButtonBox = new QDialogButtonBox(PasswordDlg);
mButtonBox->setObjectName(QStringLiteral("mButtonBox"));
mButtonBox->setMaximumSize(QSize(16777215, 50));
mButtonBox->setOrientation(Qt::Horizontal);
mButtonBox->setStandardButtons(QDialogButtonBox::Ok);
mButtonBox->setCenterButtons(true);
verticalLayout->addWidget(mButtonBox);
retranslateUi(PasswordDlg);
QObject::connect(mButtonBox, SIGNAL(accepted()), PasswordDlg, SLOT(accept()));
QMetaObject::connectSlotsByName(PasswordDlg);
} // setupUi
void retranslateUi(QDialog *PasswordDlg)
{
PasswordDlg->setWindowTitle(QApplication::translate("PasswordDlg", "Password required", 0));
mPasswordLabel->setText(QApplication::translate("PasswordDlg", "Password:", 0));
} // retranslateUi
};
namespace Ui {
class PasswordDlg: public Ui_PasswordDlg {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_PASSWORDDLG_H

233
client/ui_preferencesdlg.h Normal file
View File

@ -0,0 +1,233 @@
/********************************************************************************
** Form generated from reading UI file 'preferencesdlg.ui'
**
** Created by: Qt User Interface Compiler version 5.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_PREFERENCESDLG_H
#define UI_PREFERENCESDLG_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QCheckBox>
#include <QtWidgets/QDialog>
#include <QtWidgets/QDialogButtonBox>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QRadioButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_PreferencesDlg
{
public:
QVBoxLayout *verticalLayout_3;
QCheckBox *mShowSecondsCheckbox;
QCheckBox *mAutosavePasswordCheckbox;
QCheckBox *mShowTrayIconCheckbox;
QCheckBox *mCustomDatabaseFileCheckbox;
QPushButton *mSelectDatabaseButton;
QLabel *mDatabaseLocation;
QVBoxLayout *stopTrackingRuleLayout;
QHBoxLayout *horizontalLayout;
QCheckBox *mSmartStopTracking;
QLineEdit *mSmartStopIntervalInMinutes;
QLabel *label;
QHBoxLayout *horizontalLayout_3;
QSpacerItem *horizontalSpacer_2;
QVBoxLayout *verticalLayout_2;
QRadioButton *mAskQuestionOnStopRadiobutton;
QRadioButton *mAutomaticallyOnStopRadiobutton;
QVBoxLayout *startTrackingRuleLayout;
QHBoxLayout *horizontalLayout_4;
QCheckBox *mSmartStartTracking;
QLabel *label_2;
QDialogButtonBox *buttonBox;
QButtonGroup *buttonGroup;
QButtonGroup *buttonGroup_2;
void setupUi(QDialog *PreferencesDlg)
{
if (PreferencesDlg->objectName().isEmpty())
PreferencesDlg->setObjectName(QStringLiteral("PreferencesDlg"));
PreferencesDlg->resize(444, 353);
QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(PreferencesDlg->sizePolicy().hasHeightForWidth());
PreferencesDlg->setSizePolicy(sizePolicy);
verticalLayout_3 = new QVBoxLayout(PreferencesDlg);
verticalLayout_3->setObjectName(QStringLiteral("verticalLayout_3"));
mShowSecondsCheckbox = new QCheckBox(PreferencesDlg);
mShowSecondsCheckbox->setObjectName(QStringLiteral("mShowSecondsCheckbox"));
verticalLayout_3->addWidget(mShowSecondsCheckbox);
mAutosavePasswordCheckbox = new QCheckBox(PreferencesDlg);
mAutosavePasswordCheckbox->setObjectName(QStringLiteral("mAutosavePasswordCheckbox"));
verticalLayout_3->addWidget(mAutosavePasswordCheckbox);
mShowTrayIconCheckbox = new QCheckBox(PreferencesDlg);
mShowTrayIconCheckbox->setObjectName(QStringLiteral("mShowTrayIconCheckbox"));
verticalLayout_3->addWidget(mShowTrayIconCheckbox);
mCustomDatabaseFileCheckbox = new QCheckBox(PreferencesDlg);
mCustomDatabaseFileCheckbox->setObjectName(QStringLiteral("mCustomDatabaseFileCheckbox"));
verticalLayout_3->addWidget(mCustomDatabaseFileCheckbox);
mSelectDatabaseButton = new QPushButton(PreferencesDlg);
mSelectDatabaseButton->setObjectName(QStringLiteral("mSelectDatabaseButton"));
verticalLayout_3->addWidget(mSelectDatabaseButton);
mDatabaseLocation = new QLabel(PreferencesDlg);
mDatabaseLocation->setObjectName(QStringLiteral("mDatabaseLocation"));
QSizePolicy sizePolicy1(QSizePolicy::Preferred, QSizePolicy::Fixed);
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(mDatabaseLocation->sizePolicy().hasHeightForWidth());
mDatabaseLocation->setSizePolicy(sizePolicy1);
verticalLayout_3->addWidget(mDatabaseLocation);
stopTrackingRuleLayout = new QVBoxLayout();
stopTrackingRuleLayout->setSpacing(0);
stopTrackingRuleLayout->setObjectName(QStringLiteral("stopTrackingRuleLayout"));
horizontalLayout = new QHBoxLayout();
horizontalLayout->setSpacing(0);
horizontalLayout->setObjectName(QStringLiteral("horizontalLayout"));
mSmartStopTracking = new QCheckBox(PreferencesDlg);
mSmartStopTracking->setObjectName(QStringLiteral("mSmartStopTracking"));
QSizePolicy sizePolicy2(QSizePolicy::Fixed, QSizePolicy::Fixed);
sizePolicy2.setHorizontalStretch(20);
sizePolicy2.setVerticalStretch(0);
sizePolicy2.setHeightForWidth(mSmartStopTracking->sizePolicy().hasHeightForWidth());
mSmartStopTracking->setSizePolicy(sizePolicy2);
mSmartStopTracking->setMinimumSize(QSize(240, 0));
horizontalLayout->addWidget(mSmartStopTracking);
mSmartStopIntervalInMinutes = new QLineEdit(PreferencesDlg);
mSmartStopIntervalInMinutes->setObjectName(QStringLiteral("mSmartStopIntervalInMinutes"));
mSmartStopIntervalInMinutes->setMaximumSize(QSize(50, 16777215));
horizontalLayout->addWidget(mSmartStopIntervalInMinutes);
label = new QLabel(PreferencesDlg);
label->setObjectName(QStringLiteral("label"));
label->setMargin(3);
horizontalLayout->addWidget(label);
stopTrackingRuleLayout->addLayout(horizontalLayout);
horizontalLayout_3 = new QHBoxLayout();
horizontalLayout_3->setObjectName(QStringLiteral("horizontalLayout_3"));
horizontalSpacer_2 = new QSpacerItem(20, 20, QSizePolicy::Fixed, QSizePolicy::Minimum);
horizontalLayout_3->addItem(horizontalSpacer_2);
verticalLayout_2 = new QVBoxLayout();
verticalLayout_2->setSpacing(10);
verticalLayout_2->setObjectName(QStringLiteral("verticalLayout_2"));
mAskQuestionOnStopRadiobutton = new QRadioButton(PreferencesDlg);
buttonGroup = new QButtonGroup(PreferencesDlg);
buttonGroup->setObjectName(QStringLiteral("buttonGroup"));
buttonGroup->addButton(mAskQuestionOnStopRadiobutton);
mAskQuestionOnStopRadiobutton->setObjectName(QStringLiteral("mAskQuestionOnStopRadiobutton"));
verticalLayout_2->addWidget(mAskQuestionOnStopRadiobutton);
mAutomaticallyOnStopRadiobutton = new QRadioButton(PreferencesDlg);
buttonGroup->addButton(mAutomaticallyOnStopRadiobutton);
mAutomaticallyOnStopRadiobutton->setObjectName(QStringLiteral("mAutomaticallyOnStopRadiobutton"));
verticalLayout_2->addWidget(mAutomaticallyOnStopRadiobutton);
horizontalLayout_3->addLayout(verticalLayout_2);
stopTrackingRuleLayout->addLayout(horizontalLayout_3);
verticalLayout_3->addLayout(stopTrackingRuleLayout);
startTrackingRuleLayout = new QVBoxLayout();
startTrackingRuleLayout->setSpacing(0);
startTrackingRuleLayout->setObjectName(QStringLiteral("startTrackingRuleLayout"));
horizontalLayout_4 = new QHBoxLayout();
horizontalLayout_4->setObjectName(QStringLiteral("horizontalLayout_4"));
mSmartStartTracking = new QCheckBox(PreferencesDlg);
mSmartStartTracking->setObjectName(QStringLiteral("mSmartStartTracking"));
horizontalLayout_4->addWidget(mSmartStartTracking);
label_2 = new QLabel(PreferencesDlg);
label_2->setObjectName(QStringLiteral("label_2"));
horizontalLayout_4->addWidget(label_2);
startTrackingRuleLayout->addLayout(horizontalLayout_4);
verticalLayout_3->addLayout(startTrackingRuleLayout);
buttonBox = new QDialogButtonBox(PreferencesDlg);
buttonBox->setObjectName(QStringLiteral("buttonBox"));
buttonBox->setOrientation(Qt::Horizontal);
buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);
buttonBox->setCenterButtons(true);
verticalLayout_3->addWidget(buttonBox);
retranslateUi(PreferencesDlg);
QObject::connect(buttonBox, SIGNAL(accepted()), PreferencesDlg, SLOT(accept()));
QObject::connect(buttonBox, SIGNAL(rejected()), PreferencesDlg, SLOT(reject()));
QObject::connect(buttonGroup, SIGNAL(buttonClicked(int)), PreferencesDlg, SLOT(smartStopWayChanged()));
QMetaObject::connectSlotsByName(PreferencesDlg);
} // setupUi
void retranslateUi(QDialog *PreferencesDlg)
{
PreferencesDlg->setWindowTitle(QApplication::translate("PreferencesDlg", "Dialog", 0));
mShowSecondsCheckbox->setText(QApplication::translate("PreferencesDlg", "Show seconds", 0));
mAutosavePasswordCheckbox->setText(QApplication::translate("PreferencesDlg", "Autosave password (requires app restart)", 0));
mShowTrayIconCheckbox->setText(QApplication::translate("PreferencesDlg", "Show tray icon", 0));
mCustomDatabaseFileCheckbox->setText(QApplication::translate("PreferencesDlg", "Use database at custom location (requires app restart)", 0));
mSelectDatabaseButton->setText(QApplication::translate("PreferencesDlg", "Select file...", 0));
mDatabaseLocation->setText(QApplication::translate("PreferencesDlg", "Location of used database", 0));
mSmartStopTracking->setText(QApplication::translate("PreferencesDlg", "Stop tracking if idle detected for", 0));
label->setText(QApplication::translate("PreferencesDlg", "minutes", 0));
mAskQuestionOnStopRadiobutton->setText(QApplication::translate("PreferencesDlg", "Ask question", 0));
mAutomaticallyOnStopRadiobutton->setText(QApplication::translate("PreferencesDlg", "Automatically", 0));
mSmartStartTracking->setText(QApplication::translate("PreferencesDlg", "Start tracking after stop on idle when user activity detected. \n"
"This option requires enabled automatic stop tracking on idle.", 0));
label_2->setText(QString());
} // retranslateUi
};
namespace Ui {
class PreferencesDlg: public Ui_PreferencesDlg {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_PREFERENCESDLG_H

View File

@ -0,0 +1,89 @@
/********************************************************************************
** Form generated from reading UI file 'startworkdialog.ui'
**
** Created by: Qt User Interface Compiler version 5.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_STARTWORKDIALOG_H
#define UI_STARTWORKDIALOG_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QDialog>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QToolButton>
QT_BEGIN_NAMESPACE
class Ui_StartWorkDialog
{
public:
QLabel *mInfoLabel;
QToolButton *mYesButton;
QToolButton *mNoButton;
void setupUi(QDialog *StartWorkDialog)
{
if (StartWorkDialog->objectName().isEmpty())
StartWorkDialog->setObjectName(QStringLiteral("StartWorkDialog"));
StartWorkDialog->resize(394, 61);
StartWorkDialog->setSizeGripEnabled(false);
mInfoLabel = new QLabel(StartWorkDialog);
mInfoLabel->setObjectName(QStringLiteral("mInfoLabel"));
mInfoLabel->setGeometry(QRect(2, 2, 276, 51));
QFont font;
font.setPointSize(12);
mInfoLabel->setFont(font);
mInfoLabel->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
mInfoLabel->setWordWrap(true);
mInfoLabel->setMargin(4);
mYesButton = new QToolButton(StartWorkDialog);
mYesButton->setObjectName(QStringLiteral("mYesButton"));
mYesButton->setGeometry(QRect(280, 4, 111, 25));
QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(mYesButton->sizePolicy().hasHeightForWidth());
mYesButton->setSizePolicy(sizePolicy);
mYesButton->setFont(font);
mYesButton->setPopupMode(QToolButton::DelayedPopup);
mYesButton->setToolButtonStyle(Qt::ToolButtonTextOnly);
mYesButton->setAutoRaise(true);
mNoButton = new QToolButton(StartWorkDialog);
mNoButton->setObjectName(QStringLiteral("mNoButton"));
mNoButton->setGeometry(QRect(280, 34, 111, 25));
sizePolicy.setHeightForWidth(mNoButton->sizePolicy().hasHeightForWidth());
mNoButton->setSizePolicy(sizePolicy);
mNoButton->setFont(font);
mNoButton->setToolButtonStyle(Qt::ToolButtonTextOnly);
retranslateUi(StartWorkDialog);
QObject::connect(mYesButton, SIGNAL(clicked()), StartWorkDialog, SLOT(onYesButtonTriggered()));
QObject::connect(mNoButton, SIGNAL(clicked()), StartWorkDialog, SLOT(onNoButtonTriggered()));
QMetaObject::connectSlotsByName(StartWorkDialog);
} // setupUi
void retranslateUi(QDialog *StartWorkDialog)
{
StartWorkDialog->setWindowTitle(QApplication::translate("StartWorkDialog", "Dialog", 0));
mInfoLabel->setText(QApplication::translate("StartWorkDialog", "Litt discovered user activity after idle interval. \n"
"Should Litt start tracking on %TASK%?", 0));
mYesButton->setText(QApplication::translate("StartWorkDialog", "Yes", 0));
mNoButton->setText(QApplication::translate("StartWorkDialog", "No", 0));
} // retranslateUi
};
namespace Ui {
class StartWorkDialog: public Ui_StartWorkDialog {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_STARTWORKDIALOG_H

View File

@ -0,0 +1,76 @@
/********************************************************************************
** Form generated from reading UI file 'stopworkdialog.ui'
**
** Created by: Qt User Interface Compiler version 5.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_STOPWORKDIALOG_H
#define UI_STOPWORKDIALOG_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QDialog>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QToolButton>
QT_BEGIN_NAMESPACE
class Ui_StopWorkDialog
{
public:
QLabel *mInfoLabel;
QToolButton *mYesButton;
QToolButton *mNoButton;
void setupUi(QDialog *StopWorkDialog)
{
if (StopWorkDialog->objectName().isEmpty())
StopWorkDialog->setObjectName(QStringLiteral("StopWorkDialog"));
StopWorkDialog->resize(386, 59);
mInfoLabel = new QLabel(StopWorkDialog);
mInfoLabel->setObjectName(QStringLiteral("mInfoLabel"));
mInfoLabel->setGeometry(QRect(7, 3, 241, 41));
QFont font;
font.setPointSize(12);
mInfoLabel->setFont(font);
mInfoLabel->setScaledContents(false);
mInfoLabel->setWordWrap(true);
mYesButton = new QToolButton(StopWorkDialog);
mYesButton->setObjectName(QStringLiteral("mYesButton"));
mYesButton->setGeometry(QRect(270, 3, 111, 25));
mYesButton->setFont(font);
mNoButton = new QToolButton(StopWorkDialog);
mNoButton->setObjectName(QStringLiteral("mNoButton"));
mNoButton->setGeometry(QRect(270, 32, 111, 25));
mNoButton->setFont(font);
retranslateUi(StopWorkDialog);
QObject::connect(mYesButton, SIGNAL(clicked()), StopWorkDialog, SLOT(onYesButtonTriggered()));
QObject::connect(mNoButton, SIGNAL(clicked()), StopWorkDialog, SLOT(onNoButtonTriggered()));
QMetaObject::connectSlotsByName(StopWorkDialog);
} // setupUi
void retranslateUi(QDialog *StopWorkDialog)
{
StopWorkDialog->setWindowTitle(QApplication::translate("StopWorkDialog", "Dialog", 0));
mInfoLabel->setText(QApplication::translate("StopWorkDialog", "Litt discovered idle interval at %TIME%.\n"
"Should app to continue work tracking?", 0));
mYesButton->setText(QApplication::translate("StopWorkDialog", "Yes", 0));
mNoButton->setText(QApplication::translate("StopWorkDialog", "No", 0));
} // retranslateUi
};
namespace Ui {
class StopWorkDialog: public Ui_StopWorkDialog {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_STOPWORKDIALOG_H

104
client/ui_timeintervaldlg.h Normal file
View File

@ -0,0 +1,104 @@
/********************************************************************************
** Form generated from reading UI file 'timeintervaldlg.ui'
**
** Created by: Qt User Interface Compiler version 5.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_TIMEINTERVALDLG_H
#define UI_TIMEINTERVALDLG_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QDateTimeEdit>
#include <QtWidgets/QDialog>
#include <QtWidgets/QDialogButtonBox>
#include <QtWidgets/QFormLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_TimeIntervalDlg
{
public:
QVBoxLayout *verticalLayout;
QFormLayout *formLayout;
QLabel *mStartTimeLabel;
QDateTimeEdit *mStartTimeEdit;
QLabel *mFinishTimeLabel;
QDateTimeEdit *mFinishTimeEdit;
QDialogButtonBox *buttonBox;
void setupUi(QDialog *TimeIntervalDlg)
{
if (TimeIntervalDlg->objectName().isEmpty())
TimeIntervalDlg->setObjectName(QStringLiteral("TimeIntervalDlg"));
TimeIntervalDlg->resize(400, 134);
TimeIntervalDlg->setModal(false);
verticalLayout = new QVBoxLayout(TimeIntervalDlg);
verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
formLayout = new QFormLayout();
formLayout->setObjectName(QStringLiteral("formLayout"));
mStartTimeLabel = new QLabel(TimeIntervalDlg);
mStartTimeLabel->setObjectName(QStringLiteral("mStartTimeLabel"));
formLayout->setWidget(0, QFormLayout::LabelRole, mStartTimeLabel);
mStartTimeEdit = new QDateTimeEdit(TimeIntervalDlg);
mStartTimeEdit->setObjectName(QStringLiteral("mStartTimeEdit"));
mStartTimeEdit->setTime(QTime(1, 0, 0));
mStartTimeEdit->setCalendarPopup(true);
formLayout->setWidget(0, QFormLayout::FieldRole, mStartTimeEdit);
mFinishTimeLabel = new QLabel(TimeIntervalDlg);
mFinishTimeLabel->setObjectName(QStringLiteral("mFinishTimeLabel"));
formLayout->setWidget(1, QFormLayout::LabelRole, mFinishTimeLabel);
mFinishTimeEdit = new QDateTimeEdit(TimeIntervalDlg);
mFinishTimeEdit->setObjectName(QStringLiteral("mFinishTimeEdit"));
mFinishTimeEdit->setCalendarPopup(true);
formLayout->setWidget(1, QFormLayout::FieldRole, mFinishTimeEdit);
verticalLayout->addLayout(formLayout);
buttonBox = new QDialogButtonBox(TimeIntervalDlg);
buttonBox->setObjectName(QStringLiteral("buttonBox"));
buttonBox->setOrientation(Qt::Horizontal);
buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);
buttonBox->setCenterButtons(true);
verticalLayout->addWidget(buttonBox);
retranslateUi(TimeIntervalDlg);
QObject::connect(buttonBox, SIGNAL(accepted()), TimeIntervalDlg, SLOT(accept()));
QObject::connect(buttonBox, SIGNAL(rejected()), TimeIntervalDlg, SLOT(reject()));
QMetaObject::connectSlotsByName(TimeIntervalDlg);
} // setupUi
void retranslateUi(QDialog *TimeIntervalDlg)
{
TimeIntervalDlg->setWindowTitle(QApplication::translate("TimeIntervalDlg", "Time interval", 0));
mStartTimeLabel->setText(QApplication::translate("TimeIntervalDlg", "Start time:", 0));
mFinishTimeLabel->setText(QApplication::translate("TimeIntervalDlg", "Finish time:", 0));
} // retranslateUi
};
namespace Ui {
class TimeIntervalDlg: public Ui_TimeIntervalDlg {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_TIMEINTERVALDLG_H

107
client/ui_timetreedlg.h Normal file
View File

@ -0,0 +1,107 @@
/********************************************************************************
** Form generated from reading UI file 'timetreedlg.ui'
**
** Created by: Qt User Interface Compiler version 5.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_TIMETREEDLG_H
#define UI_TIMETREEDLG_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QDialog>
#include <QtWidgets/QDialogButtonBox>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QTreeView>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_TimeTreeDlg
{
public:
QAction *mAddIntervalAction;
QAction *mRemoveIntervalAction;
QAction *mChangeIntervalAction;
QGridLayout *gridLayout;
QTreeView *mTimeTree;
QVBoxLayout *verticalLayout;
QPushButton *mAddIntervalButton;
QPushButton *mRemoveIntervalButton;
QDialogButtonBox *mButtonBox;
void setupUi(QDialog *TimeTreeDlg)
{
if (TimeTreeDlg->objectName().isEmpty())
TimeTreeDlg->setObjectName(QStringLiteral("TimeTreeDlg"));
TimeTreeDlg->resize(400, 300);
TimeTreeDlg->setModal(true);
mAddIntervalAction = new QAction(TimeTreeDlg);
mAddIntervalAction->setObjectName(QStringLiteral("mAddIntervalAction"));
mRemoveIntervalAction = new QAction(TimeTreeDlg);
mRemoveIntervalAction->setObjectName(QStringLiteral("mRemoveIntervalAction"));
mChangeIntervalAction = new QAction(TimeTreeDlg);
mChangeIntervalAction->setObjectName(QStringLiteral("mChangeIntervalAction"));
gridLayout = new QGridLayout(TimeTreeDlg);
gridLayout->setObjectName(QStringLiteral("gridLayout"));
mTimeTree = new QTreeView(TimeTreeDlg);
mTimeTree->setObjectName(QStringLiteral("mTimeTree"));
gridLayout->addWidget(mTimeTree, 0, 0, 1, 1);
verticalLayout = new QVBoxLayout();
verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
mAddIntervalButton = new QPushButton(TimeTreeDlg);
mAddIntervalButton->setObjectName(QStringLiteral("mAddIntervalButton"));
verticalLayout->addWidget(mAddIntervalButton);
mRemoveIntervalButton = new QPushButton(TimeTreeDlg);
mRemoveIntervalButton->setObjectName(QStringLiteral("mRemoveIntervalButton"));
verticalLayout->addWidget(mRemoveIntervalButton);
gridLayout->addLayout(verticalLayout, 0, 1, 1, 1);
mButtonBox = new QDialogButtonBox(TimeTreeDlg);
mButtonBox->setObjectName(QStringLiteral("mButtonBox"));
mButtonBox->setOrientation(Qt::Horizontal);
mButtonBox->setStandardButtons(QDialogButtonBox::Ok);
mButtonBox->setCenterButtons(true);
gridLayout->addWidget(mButtonBox, 1, 0, 1, 1);
retranslateUi(TimeTreeDlg);
QObject::connect(mButtonBox, SIGNAL(accepted()), TimeTreeDlg, SLOT(accept()));
QObject::connect(mButtonBox, SIGNAL(rejected()), TimeTreeDlg, SLOT(reject()));
QMetaObject::connectSlotsByName(TimeTreeDlg);
} // setupUi
void retranslateUi(QDialog *TimeTreeDlg)
{
TimeTreeDlg->setWindowTitle(QApplication::translate("TimeTreeDlg", "Timeline", 0));
mAddIntervalAction->setText(QApplication::translate("TimeTreeDlg", "Add...", 0));
mRemoveIntervalAction->setText(QApplication::translate("TimeTreeDlg", "Remove", 0));
mChangeIntervalAction->setText(QApplication::translate("TimeTreeDlg", "Change...", 0));
mAddIntervalButton->setText(QApplication::translate("TimeTreeDlg", "Add...", 0));
mRemoveIntervalButton->setText(QApplication::translate("TimeTreeDlg", "Remove", 0));
} // retranslateUi
};
namespace Ui {
class TimeTreeDlg: public Ui_TimeTreeDlg {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_TIMETREEDLG_H

Binary file not shown.

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>5.6</string>
<key>CFBundleVersion</key>
<string>5.6.2</string>
<key>CFBundleGetInfoString</key>
<string>Created by Qt/QMake</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>
<string>QtCore</string>
<key>CFBundleIdentifier</key>
<string>org.qt-project.QtCore</string>
<key>NOTE</key>
<string>Please, do NOT change this file -- It was generated by Qt/QMake.</string>
</dict>
</plist>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>5.6</string>
<key>CFBundleVersion</key>
<string>5.6.2</string>
<key>CFBundleGetInfoString</key>
<string>Created by Qt/QMake</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>
<string>QtCore</string>
<key>CFBundleIdentifier</key>
<string>org.qt-project.QtCore</string>
<key>NOTE</key>
<string>Please, do NOT change this file -- It was generated by Qt/QMake.</string>
</dict>
</plist>

View File

@ -0,0 +1,132 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Resources/Info.plist</key>
<data>
GAh9oHOumaWU3w8zSE5/HlEtazY=
</data>
</dict>
<key>files2</key>
<dict>
<key>Resources/Info.plist</key>
<dict>
<key>hash</key>
<data>
GAh9oHOumaWU3w8zSE5/HlEtazY=
</data>
<key>hash2</key>
<data>
MjUblzgvwnO3MtbauqLgwqwq7Dr7BOySrpFuqhKUO4Q=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>5.6</string>
<key>CFBundleVersion</key>
<string>5.6.2</string>
<key>CFBundleGetInfoString</key>
<string>Created by Qt/QMake</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>
<string>QtCore</string>
<key>CFBundleIdentifier</key>
<string>org.qt-project.QtCore</string>
<key>NOTE</key>
<string>Please, do NOT change this file -- It was generated by Qt/QMake.</string>
</dict>
</plist>

View File

@ -0,0 +1,132 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Resources/Info.plist</key>
<data>
GAh9oHOumaWU3w8zSE5/HlEtazY=
</data>
</dict>
<key>files2</key>
<dict>
<key>Resources/Info.plist</key>
<dict>
<key>hash</key>
<data>
GAh9oHOumaWU3w8zSE5/HlEtazY=
</data>
<key>hash2</key>
<data>
MjUblzgvwnO3MtbauqLgwqwq7Dr7BOySrpFuqhKUO4Q=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

Binary file not shown.

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>5.6</string>
<key>CFBundleVersion</key>
<string>5.6.2</string>
<key>CFBundleGetInfoString</key>
<string>Created by Qt/QMake</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>
<string>QtGui</string>
<key>CFBundleIdentifier</key>
<string>org.qt-project.QtGui</string>
<key>NOTE</key>
<string>Please, do NOT change this file -- It was generated by Qt/QMake.</string>
</dict>
</plist>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>5.6</string>
<key>CFBundleVersion</key>
<string>5.6.2</string>
<key>CFBundleGetInfoString</key>
<string>Created by Qt/QMake</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>
<string>QtGui</string>
<key>CFBundleIdentifier</key>
<string>org.qt-project.QtGui</string>
<key>NOTE</key>
<string>Please, do NOT change this file -- It was generated by Qt/QMake.</string>
</dict>
</plist>

View File

@ -0,0 +1,132 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Resources/Info.plist</key>
<data>
O5W1TF/oQSTPuAMwMhdFPZabs6U=
</data>
</dict>
<key>files2</key>
<dict>
<key>Resources/Info.plist</key>
<dict>
<key>hash</key>
<data>
O5W1TF/oQSTPuAMwMhdFPZabs6U=
</data>
<key>hash2</key>
<data>
2gObJPJYZkG0EKCwH3cTdgO9p3ilwkh7c8vrGJHFTeY=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>5.6</string>
<key>CFBundleVersion</key>
<string>5.6.2</string>
<key>CFBundleGetInfoString</key>
<string>Created by Qt/QMake</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>
<string>QtGui</string>
<key>CFBundleIdentifier</key>
<string>org.qt-project.QtGui</string>
<key>NOTE</key>
<string>Please, do NOT change this file -- It was generated by Qt/QMake.</string>
</dict>
</plist>

View File

@ -0,0 +1,132 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Resources/Info.plist</key>
<data>
O5W1TF/oQSTPuAMwMhdFPZabs6U=
</data>
</dict>
<key>files2</key>
<dict>
<key>Resources/Info.plist</key>
<dict>
<key>hash</key>
<data>
O5W1TF/oQSTPuAMwMhdFPZabs6U=
</data>
<key>hash2</key>
<data>
2gObJPJYZkG0EKCwH3cTdgO9p3ilwkh7c8vrGJHFTeY=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>5.6</string>
<key>CFBundleVersion</key>
<string>5.6.2</string>
<key>CFBundleGetInfoString</key>
<string>Created by Qt/QMake</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>
<string>QtNetwork</string>
<key>CFBundleIdentifier</key>
<string>org.qt-project.QtNetwork</string>
<key>NOTE</key>
<string>Please, do NOT change this file -- It was generated by Qt/QMake.</string>
</dict>
</plist>

Some files were not shown because too many files have changed in this diff Show More