Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
mobile Datovka
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
12
Issues
12
List
Boards
Labels
Service Desk
Milestones
Merge Requests
4
Merge Requests
4
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Datovka projects
mobile Datovka
Commits
ca960ebe
Commit
ca960ebe
authored
Feb 22, 2018
by
Karel Slaný
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Moved global database pointers into GlobInstcs.
parent
22976f7e
Changes
33
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
489 additions
and
398 deletions
+489
-398
src/accounts.cpp
src/accounts.cpp
+51
-31
src/datovka_shared/io/records_management_db.cpp
src/datovka_shared/io/records_management_db.cpp
+0
-2
src/datovka_shared/io/records_management_db.h
src/datovka_shared/io/records_management_db.h
+0
-5
src/files.cpp
src/files.cpp
+50
-38
src/global.cpp
src/global.cpp
+9
-3
src/global.h
src/global.h
+13
-2
src/locker.cpp
src/locker.cpp
+3
-3
src/main.cpp
src/main.cpp
+58
-54
src/messages.cpp
src/messages.cpp
+57
-42
src/models/accountmodel.cpp
src/models/accountmodel.cpp
+7
-9
src/models/messagemodel.cpp
src/models/messagemodel.cpp
+3
-2
src/net/db_wrapper.cpp
src/net/db_wrapper.cpp
+45
-21
src/net/isds_wrapper.cpp
src/net/isds_wrapper.cpp
+44
-41
src/records_management.cpp
src/records_management.cpp
+25
-19
src/settings.cpp
src/settings.cpp
+1
-1
src/setwrapper.cpp
src/setwrapper.cpp
+54
-56
src/sqlite/account_db.cpp
src/sqlite/account_db.cpp
+1
-3
src/sqlite/account_db.h
src/sqlite/account_db.h
+1
-6
src/sqlite/file_db_container.cpp
src/sqlite/file_db_container.cpp
+1
-3
src/sqlite/file_db_container.h
src/sqlite/file_db_container.h
+1
-6
src/sqlite/message_db.cpp
src/sqlite/message_db.cpp
+3
-2
src/sqlite/message_db_container.cpp
src/sqlite/message_db_container.cpp
+1
-3
src/sqlite/message_db_container.h
src/sqlite/message_db_container.h
+1
-6
src/sqlite/zfo_db.cpp
src/sqlite/zfo_db.cpp
+1
-3
src/sqlite/zfo_db.h
src/sqlite/zfo_db.h
+1
-6
src/worker/task_download_account_info.cpp
src/worker/task_download_account_info.cpp
+2
-2
src/worker/task_download_delivery_info.cpp
src/worker/task_download_delivery_info.cpp
+2
-2
src/worker/task_download_message.cpp
src/worker/task_download_message.cpp
+2
-2
src/worker/task_download_message_list.cpp
src/worker/task_download_message_list.cpp
+8
-3
src/worker/task_import_zfo.cpp
src/worker/task_import_zfo.cpp
+8
-3
src/worker/task_records_management_stored_messages.cpp
src/worker/task_records_management_stored_messages.cpp
+11
-11
src/worker/task_send_message.cpp
src/worker/task_send_message.cpp
+2
-2
src/zfo.cpp
src/zfo.cpp
+23
-6
No files found.
src/accounts.cpp
View file @
ca960ebe
...
...
@@ -40,12 +40,22 @@ Accounts::Accounts(QObject *parent)
QString
Accounts
::
boxId
(
const
QString
&
userName
)
{
return
globAccountDbPtr
->
dbId
(
userName
);
if
(
GlobInstcs
::
accountDbPtr
!=
Q_NULLPTR
)
{
return
GlobInstcs
::
accountDbPtr
->
dbId
(
userName
);
}
else
{
Q_ASSERT
(
0
);
return
QString
();
}
}
bool
Accounts
::
boxEffectiveOVM
(
const
QString
&
userName
)
{
return
globAccountDbPtr
->
boxEffectiveOVM
(
userName
);
if
(
GlobInstcs
::
accountDbPtr
!=
Q_NULLPTR
)
{
return
GlobInstcs
::
accountDbPtr
->
boxEffectiveOVM
(
userName
);
}
else
{
Q_ASSERT
(
0
);
return
false
;
}
}
void
Accounts
::
updateAccountCounters
(
const
QVariant
&
acntModelVariant
)
...
...
@@ -68,7 +78,8 @@ void Accounts::updateNewMessageCounter(const QVariant &acntModelVariant,
{
qDebug
(
"%s()"
,
__func__
);
if
(
Q_UNLIKELY
(
GlobalInstances
::
setPtr
==
Q_NULLPTR
))
{
if
(
Q_UNLIKELY
((
GlobInstcs
::
setPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
messageDbsPtr
==
Q_NULLPTR
)))
{
Q_ASSERT
(
0
);
return
;
}
...
...
@@ -81,8 +92,8 @@ void Accounts::updateNewMessageCounter(const QVariant &acntModelVariant,
return
;
}
MessageDb
*
msgDb
=
globM
essageDbsPtr
->
accessMessageDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
userName
,
MessageDb
*
msgDb
=
GlobInstcs
::
m
essageDbsPtr
->
accessMessageDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
AccountListModel
::
globAccounts
[
userName
].
storeToDisk
());
if
(
msgDb
==
Q_NULLPTR
)
{
qCritical
(
"%s"
,
"Cannot open message database."
);
...
...
@@ -98,7 +109,12 @@ QString Accounts::fillAccountInfo(const QString &userName)
{
qDebug
(
"%s()"
,
__func__
);
return
globAccountDbPtr
->
getAccountDetail
(
userName
);
if
(
GlobInstcs
::
accountDbPtr
!=
Q_NULLPTR
)
{
return
GlobInstcs
::
accountDbPtr
->
getAccountDetail
(
userName
);
}
else
{
Q_ASSERT
(
0
);
return
QString
();
}
}
void
Accounts
::
getAccountData
(
const
QString
&
userName
)
...
...
@@ -167,7 +183,9 @@ bool Accounts::updateAccount(const QVariant &acntModelVariant,
{
qDebug
(
"%s()"
,
__func__
);
if
(
Q_UNLIKELY
(
GlobalInstances
::
setPtr
==
Q_NULLPTR
))
{
if
(
Q_UNLIKELY
((
GlobInstcs
::
setPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
messageDbsPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
fileDbsPtr
==
Q_NULLPTR
)))
{
Q_ASSERT
(
0
);
return
false
;
}
...
...
@@ -204,30 +222,28 @@ bool Accounts::updateAccount(const QVariant &acntModelVariant,
bool
oldStoreToDisk
=
acntData
.
storeToDisk
();
/* Reopen database if storeToDisk changed. */
if
(
acntData
.
storeToDisk
()
!=
storeToDisk
)
{
MessageDb
*
mDb
=
globMessageDbsPtr
->
accessMessageDb
(
GlobalInstances
::
setPtr
->
dbsLocation
,
userName
,
oldStoreToDisk
);
MessageDb
*
mDb
=
GlobInstcs
::
messageDbsPtr
->
accessMessageDb
(
GlobInstcs
::
setPtr
->
dbsLocation
,
userName
,
oldStoreToDisk
);
if
(
mDb
!=
Q_NULLPTR
)
{
QString
mDbFileName
(
mDb
->
fileName
());
/* Reopen database. */
globM
essageDbsPtr
->
deleteDb
(
mDb
);
globM
essageDbsPtr
->
accessMessageDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
GlobInstcs
::
m
essageDbsPtr
->
deleteDb
(
mDb
);
GlobInstcs
::
m
essageDbsPtr
->
accessMessageDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
storeToDisk
);
if
(
oldStoreToDisk
)
{
/* Delete databases from storage. */
QFile
::
remove
(
mDbFileName
);
}
}
FileDb
*
fDb
=
globFileDbsPtr
->
accessFileDb
(
GlobalInstances
::
setPtr
->
dbsLocation
,
userName
,
oldStoreToDisk
);
FileDb
*
fDb
=
GlobInstcs
::
fileDbsPtr
->
accessFileDb
(
GlobInstcs
::
setPtr
->
dbsLocation
,
userName
,
oldStoreToDisk
);
if
(
fDb
!=
Q_NULLPTR
)
{
QString
fDbFileName
(
fDb
->
fileName
());
/* Reopen database. */
globF
ileDbsPtr
->
deleteDb
(
fDb
);
globF
ileDbsPtr
->
accessFileDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
GlobInstcs
::
f
ileDbsPtr
->
deleteDb
(
fDb
);
GlobInstcs
::
f
ileDbsPtr
->
accessFileDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
storeToDisk
);
if
(
oldStoreToDisk
)
{
/* Delete databases from storage. */
...
...
@@ -256,7 +272,10 @@ bool Accounts::removeAccount(const QVariant &acntModelVariant,
{
qDebug
(
"%s()"
,
__func__
);
if
(
Q_UNLIKELY
(
GlobalInstances
::
setPtr
==
Q_NULLPTR
))
{
if
(
Q_UNLIKELY
((
GlobInstcs
::
setPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
accountDbPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
messageDbsPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
fileDbsPtr
==
Q_NULLPTR
)))
{
Q_ASSERT
(
0
);
return
false
;
}
...
...
@@ -285,39 +304,39 @@ bool Accounts::removeAccount(const QVariant &acntModelVariant,
}
/* Delete file database */
FileDb
*
fDb
=
globF
ileDbsPtr
->
accessFileDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
userName
,
FileDb
*
fDb
=
GlobInstcs
::
f
ileDbsPtr
->
accessFileDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
AccountListModel
::
globAccounts
[
userName
].
storeToDisk
());
if
(
fDb
==
Q_NULLPTR
)
{
qCritical
(
"%s"
,
"Cannot open file database."
);
return
false
;
}
if
(
!
globF
ileDbsPtr
->
deleteDb
(
fDb
))
{
if
(
!
GlobInstcs
::
f
ileDbsPtr
->
deleteDb
(
fDb
))
{
qCritical
(
"%s"
,
"Could not delete file database."
);
return
false
;
}
/* Delete message database */
MessageDb
*
msgDb
=
globM
essageDbsPtr
->
accessMessageDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
userName
,
MessageDb
*
msgDb
=
GlobInstcs
::
m
essageDbsPtr
->
accessMessageDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
AccountListModel
::
globAccounts
[
userName
].
storeToDisk
());
if
(
msgDb
==
Q_NULLPTR
)
{
qCritical
(
"%s"
,
"Cannot open message database."
);
return
false
;
}
if
(
!
globM
essageDbsPtr
->
deleteDb
(
msgDb
))
{
if
(
!
GlobInstcs
::
m
essageDbsPtr
->
deleteDb
(
msgDb
))
{
qCritical
(
"%s"
,
"Could not delete message database."
);
return
false
;
}
/* Delete account info from account database */
if
(
!
globA
ccountDbPtr
->
deleteAccountInfoFromDb
(
userName
))
{
if
(
!
GlobInstcs
::
a
ccountDbPtr
->
deleteAccountInfoFromDb
(
userName
))
{
qCritical
(
"%s"
,
"Could not delete account info."
);
return
false
;
}
/* Delete user info from account database */
if
(
!
globA
ccountDbPtr
->
deleteUserInfoFromDb
(
userName
))
{
if
(
!
GlobInstcs
::
a
ccountDbPtr
->
deleteUserInfoFromDb
(
userName
))
{
qCritical
(
"%s"
,
"Could not delete user info."
);
return
false
;
}
...
...
@@ -335,7 +354,8 @@ void Accounts::loadModelCounters(AccountListModel *accountModel)
{
qDebug
(
"%s()"
,
__func__
);
if
(
Q_UNLIKELY
(
GlobalInstances
::
setPtr
==
Q_NULLPTR
))
{
if
(
Q_UNLIKELY
((
GlobInstcs
::
setPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
messageDbsPtr
==
Q_NULLPTR
)))
{
Q_ASSERT
(
0
);
return
;
}
...
...
@@ -354,8 +374,8 @@ void Accounts::loadModelCounters(AccountListModel *accountModel)
continue
;
}
MessageDb
*
msgDb
=
globM
essageDbsPtr
->
accessMessageDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
userName
,
MessageDb
*
msgDb
=
GlobInstcs
::
m
essageDbsPtr
->
accessMessageDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
AccountListModel
::
globAccounts
[
userName
].
storeToDisk
());
if
(
msgDb
==
Q_NULLPTR
)
{
qWarning
(
"Cannot open message database for '%s'."
,
...
...
src/datovka_shared/io/records_management_db.cpp
View file @
ca960ebe
...
...
@@ -287,5 +287,3 @@ QList<class SQLiteTbl *> RecordsManagementDb::listOfTables(void) const
tables
.
append
(
&
strdFlsMsgsTbl
);
return
tables
;
}
RecordsManagementDb
*
globRecordsManagementDbPtr
=
Q_NULLPTR
;
src/datovka_shared/io/records_management_db.h
View file @
ca960ebe
...
...
@@ -135,8 +135,3 @@ protected:
virtual
QList
<
class
SQLiteTbl
*>
listOfTables
(
void
)
const
Q_DECL_OVERRIDE
;
};
/*!
* @brief Global records management database.
*/
extern
RecordsManagementDb
*
globRecordsManagementDbPtr
;
src/files.cpp
View file @
ca960ebe
/*
* Copyright (C) 2014-201
7
CZ.NIC
* Copyright (C) 2014-201
8
CZ.NIC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
...
...
@@ -70,7 +70,9 @@ void Files::deleteExpiredFilesFromDbs(int days)
{
qDebug
(
"%s()"
,
__func__
);
if
(
Q_UNLIKELY
(
GlobalInstances
::
setPtr
==
Q_NULLPTR
))
{
if
(
Q_UNLIKELY
((
GlobInstcs
::
setPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
messageDbsPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
fileDbsPtr
==
Q_NULLPTR
)))
{
Q_ASSERT
(
0
);
return
;
}
...
...
@@ -78,8 +80,8 @@ void Files::deleteExpiredFilesFromDbs(int days)
QStringList
msgIDList
;
QStringList
userNameList
=
AccountListModel
::
globAccounts
.
keys
();
foreach
(
const
QString
&
userName
,
userNameList
)
{
FileDb
*
fDb
=
globF
ileDbsPtr
->
accessFileDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
userName
,
FileDb
*
fDb
=
GlobInstcs
::
f
ileDbsPtr
->
accessFileDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
AccountListModel
::
globAccounts
[
userName
].
storeToDisk
());
if
(
fDb
==
Q_NULLPTR
)
{
qCritical
()
<<
"ERROR: File database cannot open!"
...
...
@@ -91,8 +93,8 @@ void Files::deleteExpiredFilesFromDbs(int days)
continue
;
}
MessageDb
*
msgDb
=
globM
essageDbsPtr
->
accessMessageDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
userName
,
MessageDb
*
msgDb
=
GlobInstcs
::
m
essageDbsPtr
->
accessMessageDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
AccountListModel
::
globAccounts
[
userName
].
storeToDisk
());
if
(
msgDb
==
Q_NULLPTR
)
{
qCritical
()
<<
"ERROR: Message database cannot open!"
;
...
...
@@ -122,13 +124,14 @@ QByteArray Files::getFileRawContentFromDb(const QString &userName, int fileId)
{
qDebug
(
"%s()"
,
__func__
);
if
(
Q_UNLIKELY
(
GlobalInstances
::
setPtr
==
Q_NULLPTR
))
{
if
(
Q_UNLIKELY
((
GlobInstcs
::
setPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
fileDbsPtr
==
Q_NULLPTR
)))
{
Q_ASSERT
(
0
);
return
QByteArray
();
}
FileDb
*
fDb
=
globF
ileDbsPtr
->
accessFileDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
userName
,
FileDb
*
fDb
=
GlobInstcs
::
f
ileDbsPtr
->
accessFileDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
AccountListModel
::
globAccounts
[
userName
].
storeToDisk
());
if
(
fDb
==
Q_NULLPTR
)
{
...
...
@@ -145,13 +148,14 @@ void Files::openAttachmentFromDb(const QString &userName, int fileId)
{
qDebug
(
"%s()"
,
__func__
);
if
(
Q_UNLIKELY
(
GlobalInstances
::
setPtr
==
Q_NULLPTR
))
{
if
(
Q_UNLIKELY
((
GlobInstcs
::
setPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
fileDbsPtr
==
Q_NULLPTR
)))
{
Q_ASSERT
(
0
);
return
;
}
FileDb
*
fDb
=
globF
ileDbsPtr
->
accessFileDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
userName
,
FileDb
*
fDb
=
GlobInstcs
::
f
ileDbsPtr
->
accessFileDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
AccountListModel
::
globAccounts
[
userName
].
storeToDisk
());
if
(
fDb
==
Q_NULLPTR
)
{
...
...
@@ -166,7 +170,6 @@ void Files::openAttachmentFromDb(const QString &userName, int fileId)
void
Files
::
openAttachment
(
const
QString
&
fileName
,
const
QByteArray
&
base64Data
)
{
Q_ASSERT
(
!
fileName
.
isEmpty
());
Q_ASSERT
(
!
base64Data
.
isEmpty
());
...
...
@@ -233,7 +236,9 @@ void Files::sendAttachmentsWithEmail(const QString &userName, qint64 msgId)
{
qDebug
(
"%s()"
,
__func__
);
if
(
Q_UNLIKELY
(
GlobalInstances
::
setPtr
==
Q_NULLPTR
))
{
if
(
Q_UNLIKELY
((
GlobInstcs
::
setPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
messageDbsPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
fileDbsPtr
==
Q_NULLPTR
)))
{
Q_ASSERT
(
0
);
return
;
}
...
...
@@ -246,8 +251,8 @@ void Files::sendAttachmentsWithEmail(const QString &userName, qint64 msgId)
QString
subject
;
QStringList
fileList
;
MessageDb
*
msgDb
=
globM
essageDbsPtr
->
accessMessageDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
userName
,
MessageDb
*
msgDb
=
GlobInstcs
::
m
essageDbsPtr
->
accessMessageDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
AccountListModel
::
globAccounts
[
userName
].
storeToDisk
());
if
(
msgDb
==
Q_NULLPTR
)
{
qCritical
()
<<
"ERROR: Message database cannot open!"
;
...
...
@@ -258,8 +263,8 @@ void Files::sendAttachmentsWithEmail(const QString &userName, qint64 msgId)
return
;
}
FileDb
*
fDb
=
globF
ileDbsPtr
->
accessFileDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
userName
,
FileDb
*
fDb
=
GlobInstcs
::
f
ileDbsPtr
->
accessFileDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
AccountListModel
::
globAccounts
[
userName
].
storeToDisk
());
if
(
fDb
==
Q_NULLPTR
)
{
qCritical
()
<<
"ERROR: File database cannot open!"
;
...
...
@@ -300,7 +305,9 @@ void Files::deleteFileDb(const QString &userName)
{
qDebug
(
"%s()"
,
__func__
);
if
(
Q_UNLIKELY
(
GlobalInstances
::
setPtr
==
Q_NULLPTR
))
{
if
(
Q_UNLIKELY
((
GlobInstcs
::
setPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
messageDbsPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
fileDbsPtr
==
Q_NULLPTR
)))
{
Q_ASSERT
(
0
);
return
;
}
...
...
@@ -314,20 +321,20 @@ void Files::deleteFileDb(const QString &userName)
return
;
}
FileDb
*
fDb
=
globF
ileDbsPtr
->
accessFileDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
userName
,
FileDb
*
fDb
=
GlobInstcs
::
f
ileDbsPtr
->
accessFileDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
AccountListModel
::
globAccounts
[
userName
].
storeToDisk
());
if
(
fDb
==
Q_NULLPTR
)
{
qCritical
()
<<
"ERROR: File database open error!"
;
return
;
}
if
(
!
globF
ileDbsPtr
->
deleteDb
(
fDb
))
{
if
(
!
GlobInstcs
::
f
ileDbsPtr
->
deleteDb
(
fDb
))
{
qCritical
()
<<
"ERROR: File database could not delete!"
;
return
;
}
MessageDb
*
msgDb
=
globM
essageDbsPtr
->
accessMessageDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
userName
,
MessageDb
*
msgDb
=
GlobInstcs
::
m
essageDbsPtr
->
accessMessageDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
AccountListModel
::
globAccounts
[
userName
].
storeToDisk
());
if
(
msgDb
==
Q_NULLPTR
)
{
qCritical
()
<<
"ERROR: Message database cannot open!"
;
...
...
@@ -343,7 +350,8 @@ void Files::vacuumFileDbs(void)
{
qDebug
(
"%s()"
,
__func__
);
if
(
Q_UNLIKELY
(
GlobalInstances
::
setPtr
==
Q_NULLPTR
))
{
if
(
Q_UNLIKELY
((
GlobInstcs
::
setPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
fileDbsPtr
==
Q_NULLPTR
)))
{
Q_ASSERT
(
0
);
return
;
}
...
...
@@ -352,8 +360,8 @@ void Files::vacuumFileDbs(void)
QStringList
userNameList
=
AccountListModel
::
globAccounts
.
keys
();
foreach
(
const
QString
&
userName
,
userNameList
)
{
FileDb
*
fDb
=
globF
ileDbsPtr
->
accessFileDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
userName
,
FileDb
*
fDb
=
GlobInstcs
::
f
ileDbsPtr
->
accessFileDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
AccountListModel
::
globAccounts
[
userName
].
storeToDisk
());
if
(
fDb
==
Q_NULLPTR
)
{
qCritical
()
<<
"ERROR: File database cannot open!"
...
...
@@ -370,13 +378,15 @@ bool Files::deleteAttachmentsFromDb(const QString &userName, qint64 msgId)
{
qDebug
(
"%s()"
,
__func__
);
if
(
Q_UNLIKELY
(
GlobalInstances
::
setPtr
==
Q_NULLPTR
))
{
if
(
Q_UNLIKELY
((
GlobInstcs
::
setPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
messageDbsPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
fileDbsPtr
==
Q_NULLPTR
)))
{
Q_ASSERT
(
0
);
return
false
;
}
FileDb
*
fDb
=
globF
ileDbsPtr
->
accessFileDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
userName
,
FileDb
*
fDb
=
GlobInstcs
::
f
ileDbsPtr
->
accessFileDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
AccountListModel
::
globAccounts
[
userName
].
storeToDisk
());
if
(
fDb
==
Q_NULLPTR
)
{
qCritical
()
<<
"ERROR: File database cannot open!"
<<
userName
;
...
...
@@ -384,8 +394,8 @@ bool Files::deleteAttachmentsFromDb(const QString &userName, qint64 msgId)
}
if
(
fDb
->
deleteFilesFromDb
(
msgId
))
{
MessageDb
*
msgDb
=
globM
essageDbsPtr
->
accessMessageDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
userName
,
MessageDb
*
msgDb
=
GlobInstcs
::
m
essageDbsPtr
->
accessMessageDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
AccountListModel
::
globAccounts
[
userName
].
storeToDisk
());
if
(
msgDb
==
Q_NULLPTR
)
{
qCritical
()
<<
"ERROR: Message database cannot open!"
;
...
...
@@ -465,13 +475,14 @@ bool Files::setAttachmentModel(FileListModel &attachModel,
{
qDebug
(
"%s()"
,
__func__
);
if
(
Q_UNLIKELY
(
GlobalInstances
::
setPtr
==
Q_NULLPTR
))
{
if
(
Q_UNLIKELY
((
GlobInstcs
::
setPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
fileDbsPtr
==
Q_NULLPTR
)))
{
Q_ASSERT
(
0
);
return
false
;
}
FileDb
*
fDb
=
globF
ileDbsPtr
->
accessFileDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
userName
,
FileDb
*
fDb
=
GlobInstcs
::
f
ileDbsPtr
->
accessFileDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
AccountListModel
::
globAccounts
[
userName
].
storeToDisk
());
if
(
fDb
==
Q_NULLPTR
)
{
...
...
@@ -537,7 +548,8 @@ void Files::saveAttachmentsToDiskDb(const QString &userName,
{
qDebug
(
"%s()"
,
__func__
);
if
(
Q_UNLIKELY
(
GlobalInstances
::
setPtr
==
Q_NULLPTR
))
{
if
(
Q_UNLIKELY
((
GlobInstcs
::
setPtr
==
Q_NULLPTR
)
||
(
GlobInstcs
::
fileDbsPtr
==
Q_NULLPTR
)))
{
Q_ASSERT
(
0
);
return
;
}
...
...
@@ -555,8 +567,8 @@ void Files::saveAttachmentsToDiskDb(const QString &userName,
return
;
}
FileDb
*
fDb
=
globF
ileDbsPtr
->
accessFileDb
(
Glob
alInstance
s
::
setPtr
->
dbsLocation
,
userName
,
FileDb
*
fDb
=
GlobInstcs
::
f
ileDbsPtr
->
accessFileDb
(
Glob
Instc
s
::
setPtr
->
dbsLocation
,
userName
,
AccountListModel
::
globAccounts
[
userName
].
storeToDisk
());
if
(
fDb
==
Q_NULLPTR
)
{
...
...
src/global.cpp
View file @
ca960ebe
...
...
@@ -25,7 +25,13 @@
#include "src/global.h"
class
MessageProcessingEmitter
*
Glob
alInstance
s
::
msgProcEmitterPtr
=
Q_NULLPTR
;
class
WorkerPool
*
Glob
alInstance
s
::
workPoolPtr
=
Q_NULLPTR
;
class
MessageProcessingEmitter
*
Glob
Instc
s
::
msgProcEmitterPtr
=
Q_NULLPTR
;
class
WorkerPool
*
Glob
Instc
s
::
workPoolPtr
=
Q_NULLPTR
;
class
Settings
*
GlobalInstances
::
setPtr
=
Q_NULLPTR
;
class
Settings
*
GlobInstcs
::
setPtr
=
Q_NULLPTR
;
class
AccountDb
*
GlobInstcs
::
accountDbPtr
=
Q_NULLPTR
;
class
MsgDbContainer
*
GlobInstcs
::
messageDbsPtr
=
Q_NULLPTR
;
class
FileDbContainer
*
GlobInstcs
::
fileDbsPtr
=
Q_NULLPTR
;
class
ZfoDb
*
GlobInstcs
::
zfoDbPtr
=
Q_NULLPTR
;
class
RecordsManagementDb
*
GlobInstcs
::
recMgmtDbPtr
=
Q_NULLPTR
;
src/global.h
View file @
ca960ebe
...
...
@@ -26,7 +26,7 @@
/*!
* @brief The class holds pointers to all globally accessible structures.
*/
class
Glob
alInstance
s
{
class
Glob
Instc
s
{
public:
static
...
...
@@ -37,9 +37,20 @@ public:
static
class
Settings
*
setPtr
;
/*!< Settings. */
static
class
AccountDb
*
accountDbPtr
;
/*!< Account database. */
static
class
MsgDbContainer
*
messageDbsPtr
;
/*!< Message database container. */
static
class
FileDbContainer
*
fileDbsPtr
;
/*!< File database container. */
static
class
ZfoDb
*
zfoDbPtr
;
/*!< ZFO files database. */
static
class
RecordsManagementDb
*
recMgmtDbPtr
;
/*!< Records management database. */
private:
/*!
* @brief Private constructor.
*/
Glob
alInstance
s
(
void
);
Glob
Instc
s
(
void
);
};
src/locker.cpp
View file @
ca960ebe
/*
* Copyright (C) 2014-201
7
CZ.NIC
* Copyright (C) 2014-201
8
CZ.NIC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
...
...
@@ -96,13 +96,13 @@ void Locker::processNewState(Qt::ApplicationState state)
void
Locker
::
inactivityTimeOut
(
void
)
{
if
(
Q_UNLIKELY
(
Glob
alInstance
s
::
setPtr
==
Q_NULLPTR
))
{
if
(
Q_UNLIKELY
(
Glob
Instc
s
::
setPtr
==
Q_NULLPTR
))
{
Q_ASSERT
(
0
);
return
;
}
/* Inactivity timer timed out and PIN value is set and recovered. */
if
(
!
Glob
alInstance
s
::
setPtr
->
_pinVal
.
isEmpty
())
{
if
(
!
Glob
Instc
s
::
setPtr
->
_pinVal
.
isEmpty
())
{
emit
lockApp
();
}
}
...
...
src/main.cpp
View file @
ca960ebe
...
...
@@ -258,9 +258,9 @@ int main(int argc, char *argv[])
/* Create globally accessible objects. */
{
Glob
alInstance
s
::
msgProcEmitterPtr
=
Glob
Instc
s
::
msgProcEmitterPtr
=
new
(
std
::
nothrow
)
MessageProcessingEmitter
;
if
(
Glob
alInstance
s
::
msgProcEmitterPtr
==
Q_NULLPTR
)
{
if
(
Glob
Instc
s
::
msgProcEmitterPtr
==
Q_NULLPTR
)
{
qCritical
(
"Cannot create status message emitter."
);
return
EXIT_FAILURE
;
}
...
...
@@ -271,14 +271,14 @@ int main(int argc, char *argv[])
* be implemented. Also, per-context queueing
* ought to be implemented to avoid unnecessary waiting.
*/
Glob
alInstance
s
::
workPoolPtr
=
new
(
std
::
nothrow
)
WorkerPool
(
1
);
if
(
Glob
alInstance
s
::
workPoolPtr
==
Q_NULLPTR
)
{
Glob
Instc
s
::
workPoolPtr
=
new
(
std
::
nothrow
)
WorkerPool
(
1
);
if
(
Glob
Instc
s
::
workPoolPtr
==
Q_NULLPTR
)
{
qCritical
(
"Cannot create worker pool."
);
return
EXIT_FAILURE
;
}
Glob
alInstance
s
::
setPtr
=
new
(
std
::
nothrow
)
Settings
;
if
(
Glob
alInstance
s
::
setPtr
==
Q_NULLPTR
)
{
Glob
Instc
s
::
setPtr
=
new
(
std
::
nothrow
)
Settings
;
if
(
Glob
Instc
s
::
setPtr
==
Q_NULLPTR
)
{
qCritical
(
"cannot create settings."
);
return
EXIT_FAILURE
;
}
...
...
@@ -295,21 +295,21 @@ int main(int argc, char *argv[])
{
QSettings
settings
(
Settings
::
settingsPath
(),
QSettings
::
IniFormat
);
Glob
alInstance
s
::
setPtr
->
loadFromSettings
(
settings
);
Glob
Instc
s
::
setPtr
->
loadFromSettings
(
settings
);
}
/* set font family and font size from settings */
QFont
font
;
font
.
setFamily
(
DEFAULT_FONT_FAMILY
);
font
.
setPointSize
(
Glob
alInstance
s
::
setPtr
->
fontSize
);
font
.
setPointSize
(
Glob
Instc
s
::
setPtr
->
fontSize
);
app
.
setFont
(
font
);
/* load datovka localization and qtbase localization */
QTranslator
datovkaTrans
;
QTranslator
qtbaseTrans
;
QString
lang
(
Localisation
::
shortLangName
(
Glob
alInstance
s
::
setPtr
->
language
));
Localisation
::
setProgramLocale
(
Glob
alInstance
s
::
setPtr
->
language
);
Localisation
::
shortLangName
(
Glob
Instc
s
::
setPtr
->
language
));
Localisation
::
setProgramLocale
(
Glob
Instc
s
::
setPtr
->
language
);
if
(
!
datovkaTrans
.
load
(
"datovka_"
+
lang
,
":/locale/"
))
{
qDebug
()
<<
"Could not load datovka localisation file..."
;
}
...
...
@@ -320,7 +320,7 @@ int main(int argc, char *argv[])
app
.
installTranslator
(
&
qtbaseTrans
);
/* Start worker threads. */
Glob
alInstance
s
::
workPoolPtr
->
start
();
Glob
Instc
s
::
workPoolPtr
->
start
();
logInfoNL
(
"%s"
,
"Worker pool started."
);
/* Init and use these class - we need register it to QML */
...
...
@@ -417,9 +417,25 @@ int main(int argc, char *argv[])
evntsTbl
.
reloadLocalisedDescription
();
msgZfoTbl
.
reloadLocalisedDescription
();
/* init and open account database */
AccountDb
globAccountDb
(
"ACCOUNTS"
,
false
);
globAccountDbPtr
=
&
globAccountDb
;
/* Init and open account database. */
AccountDb
accountDb
(
"ACCOUNTS"
,
false
);
MsgDbContainer
messageDbs
(
"MESSAGES"
);
FileDbContainer
fileDbs
(
"FILES"
);
ZfoDb
zfoDb
(
"ZFOS"
,
false
);
{
GlobInstcs
::
accountDbPtr
=
&
accountDb
;
GlobInstcs
::
messageDbsPtr
=
&
messageDbs
;
GlobInstcs
::
fileDbsPtr
=
&
fileDbs
;
GlobInstcs
::
zfoDbPtr
=
&
zfoDb
;
GlobInstcs
::
recMgmtDbPtr
=
new
(
std
::
nothrow
)
RecordsManagementDb
(
"recordsManagementDb"
,
false
);
if
(
GlobInstcs
::
recMgmtDbPtr
==
Q_NULLPTR
)
{
logErrorNL
(
"%s"
,
"Cannot allocate records management db."
);
return
EXIT_FAILURE
;
}
}
QString
dirName
(
existingWritableLocation
(
QStandardPaths
::
AppDataLocation
));
...
...
@@ -431,33 +447,15 @@ int main(int argc, char *argv[])
}
QString
dbPath
(
dirName
+
QDir
::
separator
()
+
ACNT_DB_NAME
);
if
(
!
globAccountDbPtr
->
openDb
(
dbPath
,
SQLiteDb
::
CREATE_MISSING
))
{
if
(
!
GlobInstcs
::
accountDbPtr
->
openDb
(
dbPath
,
SQLiteDb
::
CREATE_MISSING
))
{
logErrorNL
(
"%s"
,
"Account database not found!"
);
return
EXIT_FAILURE
;
}
/* init message db container */
MsgDbContainer
globMessageDb
(
"MESSAGES"
);
globMessageDbsPtr
=
&
globMessageDb
;
/* init file db container */
FileDbContainer
globFileDb
(
"FILES"
);
globFileDbsPtr
=
&
globFileDb
;
/* init zfo db database */
ZfoDb
globZfoDb
(
"ZFOS"
,
false
);
globZfoDbPtr
=
&
globZfoDb
;
/* init and open records management database */
globRecordsManagementDbPtr
=
new
(
std
::
nothrow
)
RecordsManagementDb
(
"recordsManagementDb"
,
false
);
if
(
Q_NULLPTR
==
globRecordsManagementDbPtr
)
{
logErrorNL
(
"%s"
,
"Cannot allocate records management db."
);
return
EXIT_FAILURE
;
}
/* Open records management database. */
QString
rmDbPath
(
dirName
+
QDir
::
separator
()
+
RECORDS_MANAGEMENT_DB_FILE
);
if
(
!
globRecordsManagemen
tDbPtr
->
openDb
(
if
(
!
GlobInstcs
::
recMgm
tDbPtr
->
openDb
(
rmDbPath
,
SQLiteDb
::
CREATE_MISSING
))
{