16Database *Database::m_instance =
nullptr;
19Database::~Database() {
24Database::Database(QObject *parent) : QObject(parent) {
25 if (m_instance ==
nullptr) {
30 m_dbplugin =
nullptr;;
31 setObjectName(QString(
"Database %1").arg((quint64)QThread::currentThread()));
37bool Database::open() {
38 QString plugin = MSETTINGS->dbPlugin();
44 if (m_dbplugin !=
nullptr) {
45 m_dbplugin->deleteLater();
48 if (plugin ==
"fotomon") {
52 if (plugin ==
"postgres") {
56 if (m_dbplugin ==
nullptr) {
57 PDEBUG <<
"m_dbplugin == nullptr";
62 m_dbplugin->setDatabaseName ( MSETTINGS->dbName() );
63 m_dbplugin->setHostname ( MSETTINGS->dbServer() );
64 m_dbplugin->setPort ( MSETTINGS->dbPort() );
65 m_dbplugin->setUserName ( MSETTINGS->dbUser() );
66 m_dbplugin->setPassword ( MSETTINGS->dbPassword() );
67 bool rc = m_dbplugin->open();
74Database *Database::instance(QObject *parent) {
75 if (m_instance ==
nullptr) {
76 Q_ASSERT(parent !=
nullptr);
85Database *Database::create(QObject *parent) {
93 db->m_dbplugin->setAuthenticatedUser(user);
98void Database::close() {
99 if (m_dbplugin !=
nullptr) {
106QString Database::connectionName()
const {
107 return m_dbplugin->connectionName();
111void Database::begin() {
112 return m_dbplugin->begin();
116void Database::commit() {
117 return m_dbplugin->commit();
121void Database::changePassword(
const QString& login,
const QString& oldpassword,
const QString& newpassword) {
122 m_dbplugin->changePassword(login, oldpassword, newpassword);
126QList<Dbt::Users> Database::authenticate(
const QString& user,
const QString& password) {
127 return m_dbplugin->authenticate(user,password);
131QList<Dbt::Users> Database::users(
int id){
132 return m_dbplugin->users(
id);
136QList<Dbt::UsersCategories> Database::usersCategories(
int id,
int user,
const QString& category){
137 return m_dbplugin->usersCategories(
id, user, category);
141QList<Dbt::Categories> Database::categories(
const QString&
id) {
142 return m_dbplugin->categories(
id);
146QList<Dbt::Categories> Database::subcategories(
const QString&
id) {
147 return m_dbplugin->subcategories(
id);
151QList<Dbt::Categories> Database::siblingcategories(
const QString&
id) {
152 return m_dbplugin->siblingcategories(
id);
156QList<Dbt::Categories> Database::categoriesToRoot(
const QString&
id) {
157 return m_dbplugin->categoriesToRoot(
id);
161QList<Dbt::Statuses> Database::statuses(
const QString&
id) {
162 return m_dbplugin->statuses(
id);
166QList<Dbt::Statuses> Database::statuses(
const QString& category,
const QString& prevStatus) {
167 return m_dbplugin->statuses(category, prevStatus);
171QList<Dbt::Statuses> Database::statuses(
const QString& category,
const QStringList& prevStatuses) {
172 return m_dbplugin->statuses(category, prevStatuses);
176QList<Dbt::StatusTemplates> Database::statusTemplates(
int id) {
177 return m_dbplugin->statusTemplates(
id);
181QList<Dbt::StatusOrder> Database::statusOrder(
const QString&
id) {
182 return m_dbplugin->statusOrder(
id);
186QList<Dbt::Tickets> Database::tickets(
int ticket,
bool all) {
187 return m_dbplugin->tickets(ticket, all);
191QList<Dbt::Tickets> Database::tickets(
bool all) {
192 return m_dbplugin->tickets(all);
196QList<Dbt::Tickets> Database::tickets(
const Dbt::Categories& category,
bool all) {
197 return m_dbplugin->tickets(category, all);
201QList<Dbt::TicketsVw> Database::ticketsVw(
int ticket,
bool all) {
202 return m_dbplugin->ticketsVw(ticket, all);
206QList<Dbt::TicketsVw> Database::ticketsVw(
bool all) {
207 return m_dbplugin->ticketsVw(all);
211QList<Dbt::TicketsVw> Database::ticketsVw(
const Dbt::Categories& category,
bool all) {
212 return m_dbplugin->ticketsVw(category, all);
216QList<Dbt::TicketStatus> Database::ticketStatus(
int ticket,
bool all) {
217 return m_dbplugin->ticketStatus(ticket, all);
221QList<Dbt::TicketStatus> Database::ticketStatus(
int id) {
222 return m_dbplugin->ticketStatus(
id);
226QList<Dbt::TicketStatus> Database::ticketStatus(
bool all) {
227 return m_dbplugin->ticketStatus(all);
231QList<Dbt::TicketValues> Database::ticketValues(
int id) {
232 return m_dbplugin->ticketValues(
id);
236QList<Dbt::TicketValues> Database::ticketValues(
bool all) {
237 return m_dbplugin->ticketValues(all);
241QList<Dbt::TicketValues> Database::ticketValues(
int ticket,
bool all) {
242 return m_dbplugin->ticketValues(ticket, all);
246QList<Dbt::TicketFiles> Database::ticketFiles(
int id) {
247 return m_dbplugin->ticketFiles(
id);
251QList<Dbt::TicketFiles> Database::ticketFiles(
bool all) {
252 return m_dbplugin->ticketFiles(all);
256QList<Dbt::TicketFiles> Database::ticketFiles(
int ticket,
bool all) {
257 return m_dbplugin->ticketFiles(ticket, all);
261QList<Dbt::TicketTimesheets> Database::ticketTimesheets(
int id) {
262 return m_dbplugin->ticketTimesheets(
id);
266QList<Dbt::TicketTimesheets> Database::ticketTimesheets(
bool all) {
267 return m_dbplugin->ticketTimesheets(all);
271QList<Dbt::TicketTimesheets> Database::ticketTimesheets(
int ticket,
bool all) {
272 return m_dbplugin->ticketTimesheets(ticket, all);
276QList<Dbt::TicketTimesheets> Database::runningTimesheets(
int ticket) {
277 return m_dbplugin->runningTimesheets(ticket);
281QList<Dbt::TicketTimesheets> Database::startTimesheet(
int ticket) {
282 return m_dbplugin->startTimesheet(ticket);
286QList<Dbt::TicketTimesheets> Database::stopTimesheet(
int ticket) {
287 return m_dbplugin->stopTimesheet(ticket);
291QList<Dbt::TicketTimesheets> Database::toggleTimesheet(
int ticket) {
292 return m_dbplugin->toggleTimesheet(ticket);
296QList<Dbt::ClientSettings> Database::clientSettings() {
297 return m_dbplugin->clientSettings();
301QList<Dbt::ServerInfo> Database::serverInfo() {
302 return m_dbplugin->serverInfo();
306QList<Dbt::Overview> Database::overview(
const QString& category,
const QStringList& statuses) {
307 return m_dbplugin->overview(category, statuses);
311QList<Dbt::Overview> Database::overview(
const QString& overviewId) {
312 return m_dbplugin->overview(overviewId);
316QList<Dbt::OverviewList> Database::overviewList() {
317 return m_dbplugin->overviewList();
321QList<Dbt::CategoriesOverview> Database::categoriesOverview(
const QStringList& statuses) {
322 return m_dbplugin->categoriesOverview(statuses);