Krita Source Code Documentation
Loading...
Searching...
No Matches
KisDatabaseTransactionLock.cpp
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2025 Dmitry Kazakov <dimula73@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#include "
KisDatabaseTransactionLock.h
"
8
9
#include <QDebug>
10
#include <QSqlError>
11
12
#include <
kis_assert.h
>
13
14
15
namespace
detail
16
{
17
18
KisDatabaseTransactionLockAdapter::KisDatabaseTransactionLockAdapter
(QSqlDatabase database)
19
: m_database(database)
20
{
21
}
22
23
void
KisDatabaseTransactionLockAdapter::lock
()
24
{
25
KIS_SAFE_ASSERT_RECOVER_RETURN
(!
m_transactionStarted
);
26
if
(!
m_database
.transaction()) {
27
qWarning() <<
"WARNING: Failed to start a transaction:"
<<
m_database
.lastError().text();
28
}
else
{
29
m_transactionStarted
=
true
;
30
}
31
}
32
33
void
KisDatabaseTransactionLockAdapter::unlock
()
34
{
35
if
(!
m_transactionStarted
)
36
return
;
37
38
if
(!
m_database
.rollback()) {
39
qWarning() <<
"WARNING: Failed to rollback a transaction:"
<<
m_database
.lastError().text();
40
}
41
42
m_transactionStarted
=
false
;
43
}
44
45
void
KisDatabaseTransactionLockAdapter::commit
()
46
{
47
if
(!
m_transactionStarted
)
48
return
;
49
50
if
(!
m_database
.commit()) {
51
qWarning() <<
"WARNING: Failed to commit a transaction:"
<<
m_database
.lastError().text();
52
}
53
54
m_transactionStarted
=
false
;
55
}
56
57
}
// namespace detail
KisDatabaseTransactionLock.h
kis_assert.h
KIS_SAFE_ASSERT_RECOVER_RETURN
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
Definition
kis_assert.h:128
detail
Definition
kis_brush.cpp:105
detail::KisDatabaseTransactionLockAdapter::unlock
void unlock()
Definition
KisDatabaseTransactionLock.cpp:33
detail::KisDatabaseTransactionLockAdapter::m_transactionStarted
bool m_transactionStarted
Definition
KisDatabaseTransactionLock.h:29
detail::KisDatabaseTransactionLockAdapter::KisDatabaseTransactionLockAdapter
KisDatabaseTransactionLockAdapter(QSqlDatabase database)
Definition
KisDatabaseTransactionLock.cpp:18
detail::KisDatabaseTransactionLockAdapter::commit
void commit()
Definition
KisDatabaseTransactionLock.cpp:45
detail::KisDatabaseTransactionLockAdapter::m_database
QSqlDatabase m_database
Definition
KisDatabaseTransactionLock.h:28
detail::KisDatabaseTransactionLockAdapter::lock
void lock()
Definition
KisDatabaseTransactionLock.cpp:23
libs
resources
KisDatabaseTransactionLock.cpp
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52