BiblioteQ
biblioteq_misc_functions.h
1 /*
2 ** Copyright (c) 2006 - present, Alexis Megas.
3 ** All rights reserved.
4 **
5 ** Redistribution and use in source and binary forms, with or without
6 ** modification, are permitted provided that the following conditions
7 ** are met:
8 ** 1. Redistributions of source code must retain the above copyright
9 ** notice, this list of conditions and the following disclaimer.
10 ** 2. Redistributions in binary form must reproduce the above copyright
11 ** notice, this list of conditions and the following disclaimer in the
12 ** documentation and/or other materials provided with the distribution.
13 ** 3. The name of the author may not be used to endorse or promote products
14 ** derived from BiblioteQ without specific prior written permission.
15 **
16 ** BIBLIOTEQ IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17 ** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18 ** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19 ** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20 ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21 ** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 ** BIBLIOTEQ, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27 
28 #ifndef _BIBLIOTEQ_MISC_FUNCTIONS_H_
29 #define _BIBLIOTEQ_MISC_FUNCTIONS_H_
30 
31 #include <QGraphicsItem>
32 #include <QSqlDatabase>
33 #include <QSqlError>
34 #include <QSqlQuery>
35 #include <QTableWidget>
36 
37 class QComboBox;
38 class QMainWindow;
39 class biblioteq;
40 
42 {
43  public:
44  static const int CREATE_USER = 100;
45  static const int DELETE_USER = 200;
46  static const int UPDATE_USER = 300;
47  static QImage getImage(const QString &,
48  const QString &,
49  const QString &,
50  const QSqlDatabase &);
51  static QList<QPair<QString, QString> > getLocations(const QSqlDatabase &,
52  QString &);
53  static QList<int> selectedRows(QTableWidget *);
54  static QMap<QString, qint64> getItemsReservedCounts(const QSqlDatabase &,
55  const QString &,
56  QString &);
57  static QString accessionNumberAsSpecialText(const qint64 integer);
58  static QString categories(QHash<QString, QString> &hash,
59  const QSqlDatabase &db,
60  const QString &id);
61  static QString getAbstractInfo(const QString &,
62  const QString &,
63  const QSqlDatabase &);
64  static QString getAvailability(const QString &,
65  const QSqlDatabase &,
66  const QString &,
67  QString &);
68  static QString getColumnString(const QTableWidget *,
69  const int,
70  const QString &);
71  static QString getColumnString(const QTableWidget *, const int, const int);
72  static QString getMemberName(const QSqlDatabase &,
73  const QString &,
74  QString &);
75  static QString getNextCopy(QString &field,
76  bool &ok,
77  const QSqlDatabase &db,
78  const QString &id,
79  const QString &type);
80  static QString getOID(const QString &,
81  const QString &,
82  const QSqlDatabase &,
83  QString &);
84  static QString getRoles(const QSqlDatabase &, const QString &, QString &);
85  static QString getTotalReserved(const QSqlDatabase &,
86  const QString &,
87  const QString &);
88  static QString imageFormatGuess(const QByteArray &bytes);
89  static QString isbn10to13(const QString &text);
90  static QString isbn13to10(const QString &text);
91  static QString linearizeString(const QString &text);
92  static QString queryString(QSqlQuery *query);
93  static QStringList getBookBindingTypes(const QSqlDatabase &, QString &);
94  static QStringList getBookConditions(const QSqlDatabase &, QString &);
95  static QStringList getBookOriginality(const QSqlDatabase &, QString &);
96  static QStringList getBookTargetAudiences(const QSqlDatabase &, QString &);
97  static QStringList getCDFormats(const QSqlDatabase &, QString &);
98  static QStringList getDVDAspectRatios(const QSqlDatabase &, QString &);
99  static QStringList getDVDRatings(const QSqlDatabase &, QString &);
100  static QStringList getDVDRegions(const QSqlDatabase &, QString &);
101  static QStringList getGreyLiteratureTypes(const QSqlDatabase &db,
102  QString &errorstr);
103  static QStringList getLanguages(const QSqlDatabase &, QString &);
104  static QStringList getLocations(const QSqlDatabase &,
105  const QString &,
106  QString &);
107  static QStringList getMinimumDays(const QSqlDatabase &, QString &);
108  static QStringList getMonetaryUnits(const QSqlDatabase &, QString &);
109  static QStringList getReservedItems(const QString &,
110  const QSqlDatabase &,
111  QString &);
112  static QStringList getVideoGamePlatforms(const QSqlDatabase &, QString &);
113  static QStringList getVideoGameRatings(const QSqlDatabase &, QString &);
114  static bool dnt(const QSqlDatabase &, const QString &, QString &);
115  static bool getMemberMatch(const QString &,
116  const QString &,
117  const QSqlDatabase &,
118  QString &);
119  static bool hasMemberExpired(const QSqlDatabase &,
120  const QString &,
121  QString &);
122  static bool hasUnaccentExtension(const QSqlDatabase &);
123 
124  static bool isBookRead(const QSqlDatabase &db, const quint64 myoid)
125  {
126  if(db.driverName() != "QSQLITE")
127  return false;
128 
129  QSqlQuery query(db);
130 
131  query.setForwardOnly(true);
132  query.prepare("SELECT book_read FROM book WHERE myoid = ?");
133  query.addBindValue(myoid);
134 
135  if(query.exec() && query.next())
136  return query.value(0).toBool();
137 
138  return false;
139  }
140 
141  static bool isCheckedOut(const QSqlDatabase &,
142  const QString &,
143  const QString &,
144  QString &);
145  static bool isCopyAvailable(const QSqlDatabase &,
146  const QString &,
147  const QString &,
148  const QString &,
149  QString &);
150  static bool isCopyCheckedOut(const QSqlDatabase &,
151  const QString &,
152  const QString &,
153  const QString &,
154  QString &);
155  static bool isGnome(void);
156  static bool isItemAvailable
157  (QString &error,
158  const QSqlDatabase &db,
159  const QString &id,
160  const QString &copyId,
161  const QString &t,
162  const bool emptyCopyIdAllowed = false);
163  static bool isRequested(const QSqlDatabase &,
164  const QString &,
165  const QString &,
166  QString &);
167  static bool userExists(const QString &, const QSqlDatabase &, QString &);
168  static int getColumnNumber(const QTableWidget *, const QString &);
169  static int getCopyNumber(const QSqlDatabase &db,
170  const QString &copyId,
171  const QString &itemOid,
172  const QString &itemTypeArg,
173  QString &errorstr);
174  static int getMaxCopyNumber(const QSqlDatabase &,
175  const QString &,
176  const QString &,
177  QString &);
178  static int getMinimumDays(const QSqlDatabase &, const QString &, QString &);
179  static int maximumReserved(const QSqlDatabase &,
180  const QString &,
181  const QString &);
182  static int quantity
183  (const QSqlDatabase &db, const QString &oid, const QString &t);
184  static int sqliteQuerySize(const QString &,
185 #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
186  const QMap<QString, QVariant> &,
187 #else
188  const QVariantList &,
189 #endif
190  const QSqlDatabase &,
191  const char *,
192  const int,
193  biblioteq *);
194  static int sqliteQuerySize(const QString &,
195  const QSqlDatabase &,
196  const char *,
197  const int,
198  biblioteq *);
199  static qint64 bookAccessionNumber(const QSqlDatabase &);
200  static qint64 getSqliteUniqueId(const QSqlDatabase &, QString &);
201  static void DBAccount(const QString &,
202  const QSqlDatabase &,
203  const int,
204  QString &,
205  const QString & = "");
206  static void center(QWidget *, QMainWindow *);
207  static void createBookCopy(const QString &idArg,
208  const int copyNumber,
209  const QSqlDatabase &db,
210  QString &errorstr);
211  static void createInitialCopies(QString const &,
212  const int,
213  const QSqlDatabase &,
214  const QString &,
215  QString &);
216  static void exportPhotographs(const QSqlDatabase &,
217  const QString &,
218  const QString &,
219  const QList<QGraphicsItem *> &,
220  QWidget *);
221  static void exportPhotographs(const QSqlDatabase &,
222  const QString &,
223  const int,
224  const int,
225  const QString &,
226  QWidget *);
227  static void grantPrivs(const QString &,
228  const QString &,
229  const QSqlDatabase &,
230  QString &);
231  static void hideAdminFields(QMainWindow *, const QString &);
232  static void highlightWidget(QWidget *, const QColor &);
233  static void revokeAll(const QString &, const QSqlDatabase &, QString &);
234  static void savePassword(const QString &,
235  const QSqlDatabase &,
236  const QString &,
237  QString &);
238  static void saveQuantity(const QSqlDatabase &,
239  const QString &,
240  const int,
241  const QString &,
242  QString &);
243  static void setBookRead(const QSqlDatabase &, const bool, const quint64);
244  static void setRole(const QSqlDatabase &, QString &, const QString &);
245  static void sortCombinationBox(QComboBox *comboBox);
246  static void updateColumn(QTableWidget *,
247  const int,
248  const int,
249  const QString &);
250  static void updateColumnColor(QTableWidget *,
251  const int,
252  const int,
253  const QColor &);
254 
255  private:
258 };
259 
260 #endif
Definition: biblioteq_misc_functions.h:42
Definition: biblioteq.h:276