Initial commit
This commit is contained in:
parent
bf0521e91a
commit
ac361789ae
BIN
Litt-osx-0.8.16.dmg
Normal file
BIN
Litt-osx-0.8.16.dmg
Normal file
Binary file not shown.
BIN
Litt-osx-0.8.16.zip
Normal file
BIN
Litt-osx-0.8.16.zip
Normal file
Binary file not shown.
BIN
Litt-osx-0.8.17.dmg
Normal file
BIN
Litt-osx-0.8.17.dmg
Normal file
Binary file not shown.
BIN
Litt-osx-0.8.17.zip
Normal file
BIN
Litt-osx-0.8.17.zip
Normal file
Binary file not shown.
36
client/.qmake.stash
Normal file
36
client/.qmake.stash
Normal 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
20
client/Chooka.sln
Normal 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
111
client/moc_aboutdlg.cpp
Normal 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
|
||||||
89
client/moc_attachmentsdialog.cpp
Normal file
89
client/moc_attachmentsdialog.cpp
Normal 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
|
||||||
197
client/moc_attachmentslist.cpp
Normal file
197
client/moc_attachmentslist.cpp
Normal 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
138
client/moc_finddialog.cpp
Normal 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
261
client/moc_findsupport.cpp
Normal 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
|
||||||
89
client/moc_fvavailableupdate.cpp
Normal file
89
client/moc_fvavailableupdate.cpp
Normal 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
|
||||||
89
client/moc_fvignoredversions.cpp
Normal file
89
client/moc_fvignoredversions.cpp
Normal 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
89
client/moc_fvplatform.cpp
Normal 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
|
||||||
89
client/moc_fvupdateconfirmdialog.cpp
Normal file
89
client/moc_fvupdateconfirmdialog.cpp
Normal 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
167
client/moc_fvupdater.cpp
Normal 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
|
||||||
113
client/moc_fvupdatewindow.cpp
Normal file
113
client/moc_fvupdatewindow.cpp
Normal 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
129
client/moc_helper.cpp
Normal 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
153
client/moc_hidtracker.cpp
Normal 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
89
client/moc_logger.cpp
Normal 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
446
client/moc_mainwindow.cpp
Normal 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
|
||||||
111
client/moc_newpassworddlg.cpp
Normal file
111
client/moc_newpassworddlg.cpp
Normal 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
|
||||||
89
client/moc_passworddlg.cpp
Normal file
89
client/moc_passworddlg.cpp
Normal 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
|
||||||
134
client/moc_preferencesdlg.cpp
Normal file
134
client/moc_preferencesdlg.cpp
Normal 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
|
||||||
144
client/moc_sleeptracker_osx.cpp
Normal file
144
client/moc_sleeptracker_osx.cpp
Normal 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
|
||||||
162
client/moc_startworkdialog.cpp
Normal file
162
client/moc_startworkdialog.cpp
Normal 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
|
||||||
163
client/moc_stopworkdialog.cpp
Normal file
163
client/moc_stopworkdialog.cpp
Normal 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
89
client/moc_task.cpp
Normal 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
|
||||||
197
client/moc_tasktreemodel.cpp
Normal file
197
client/moc_tasktreemodel.cpp
Normal 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
|
||||||
111
client/moc_timeintervaldlg.cpp
Normal file
111
client/moc_timeintervaldlg.cpp
Normal 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
|
||||||
432
client/moc_timereportwizard.cpp
Normal file
432
client/moc_timereportwizard.cpp
Normal 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
124
client/moc_timetreedlg.cpp
Normal 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
30
client/newpassworddlg.cpp
Normal 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
26
client/newpassworddlg.h
Normal 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
105
client/newpassworddlg.ui
Normal 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><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></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
BIN
client/notetaker.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
260
client/notetaker.pro.user
Normal file
260
client/notetaker.pro.user
Normal 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
2
client/notetaker.rc
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
IDI_ICON1 ICON DISCARDABLE "notetaker.ico"
|
||||||
|
|
||||||
153
client/notetaker.vcxproj
Normal file
153
client/notetaker.vcxproj
Normal 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>
|
||||||
88
client/notetaker.vcxproj.filters
Normal file
88
client/notetaker.vcxproj.filters
Normal 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>
|
||||||
11
client/notetaker.vcxproj.user
Normal file
11
client/notetaker.vcxproj.user
Normal 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
27
client/passworddlg.cpp
Normal 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
23
client/passworddlg.h
Normal 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
93
client/passworddlg.ui
Normal 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
116
client/preferencesdlg.cpp
Normal 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
33
client/preferencesdlg.h
Normal 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
270
client/preferencesdlg.ui
Normal 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
5742
client/qrc_mainwindow.cpp
Normal file
File diff suppressed because it is too large
Load Diff
55
client/settings.cpp
Normal file
55
client/settings.cpp
Normal 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
60
client/settings.h
Normal 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
144183
client/sqlite3.c
Normal file
File diff suppressed because it is too large
Load Diff
7297
client/sqlite3.h
Normal file
7297
client/sqlite3.h
Normal file
File diff suppressed because it is too large
Load Diff
487
client/sqlite3ext.h
Normal file
487
client/sqlite3ext.h
Normal 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_ */
|
||||||
35
client/startworkdialog.cpp
Normal file
35
client/startworkdialog.cpp
Normal 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
39
client/startworkdialog.h
Normal 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
147
client/startworkdialog.ui
Normal 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
50
client/stopworkdialog.cpp
Normal 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
41
client/stopworkdialog.h
Normal 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
118
client/stopworkdialog.ui
Normal 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
654
client/storage.cpp
Normal 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
94
client/storage.h
Normal 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
1175
client/task.cpp
Normal file
File diff suppressed because it is too large
Load Diff
292
client/task.h
Normal file
292
client/task.h
Normal 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
552
client/taskaction.cpp
Normal 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
184
client/taskaction.h
Normal 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
651
client/tasktreemodel.cpp
Normal 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
95
client/tasktreemodel.h
Normal 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
85
client/ui_aboutdlg.h
Normal 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
|
||||||
84
client/ui_attachmentsdialog.h
Normal file
84
client/ui_attachmentsdialog.h
Normal 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
|
||||||
93
client/ui_attachmentslist.h
Normal file
93
client/ui_attachmentslist.h
Normal 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
98
client/ui_finddialog.h
Normal 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
|
||||||
93
client/ui_fvupdateconfirmdialog.h
Normal file
93
client/ui_fvupdateconfirmdialog.h
Normal 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
136
client/ui_fvupdatewindow.h
Normal 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
591
client/ui_mainwindow.h
Normal 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
111
client/ui_newpassworddlg.h
Normal 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
92
client/ui_passworddlg.h
Normal 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
233
client/ui_preferencesdlg.h
Normal 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
|
||||||
89
client/ui_startworkdialog.h
Normal file
89
client/ui_startworkdialog.h
Normal 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
|
||||||
76
client/ui_stopworkdialog.h
Normal file
76
client/ui_stopworkdialog.h
Normal 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
104
client/ui_timeintervaldlg.h
Normal 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
107
client/ui_timetreedlg.h
Normal 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
|
||||||
BIN
temp/Litt.app/Contents/Frameworks/QtCore.framework/QtCore
Executable file
BIN
temp/Litt.app/Contents/Frameworks/QtCore.framework/QtCore
Executable file
Binary file not shown.
@ -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>
|
||||||
BIN
temp/Litt.app/Contents/Frameworks/QtCore.framework/Versions/5/QtCore
Executable file
BIN
temp/Litt.app/Contents/Frameworks/QtCore.framework/Versions/5/QtCore
Executable file
Binary file not shown.
@ -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>
|
||||||
@ -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>
|
||||||
BIN
temp/Litt.app/Contents/Frameworks/QtCore.framework/Versions/Current/QtCore
Executable file
BIN
temp/Litt.app/Contents/Frameworks/QtCore.framework/Versions/Current/QtCore
Executable file
Binary file not shown.
@ -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>
|
||||||
@ -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>
|
||||||
BIN
temp/Litt.app/Contents/Frameworks/QtGui.framework/QtGui
Executable file
BIN
temp/Litt.app/Contents/Frameworks/QtGui.framework/QtGui
Executable file
Binary file not shown.
@ -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>
|
||||||
BIN
temp/Litt.app/Contents/Frameworks/QtGui.framework/Versions/5/QtGui
Executable file
BIN
temp/Litt.app/Contents/Frameworks/QtGui.framework/Versions/5/QtGui
Executable file
Binary file not shown.
@ -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>
|
||||||
@ -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>
|
||||||
BIN
temp/Litt.app/Contents/Frameworks/QtGui.framework/Versions/Current/QtGui
Executable file
BIN
temp/Litt.app/Contents/Frameworks/QtGui.framework/Versions/Current/QtGui
Executable file
Binary file not shown.
@ -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>
|
||||||
@ -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>
|
||||||
BIN
temp/Litt.app/Contents/Frameworks/QtNetwork.framework/QtNetwork
Executable file
BIN
temp/Litt.app/Contents/Frameworks/QtNetwork.framework/QtNetwork
Executable file
Binary file not shown.
@ -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>
|
||||||
BIN
temp/Litt.app/Contents/Frameworks/QtNetwork.framework/Versions/5/QtNetwork
Executable file
BIN
temp/Litt.app/Contents/Frameworks/QtNetwork.framework/Versions/5/QtNetwork
Executable file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user