BiblioteQ
biblioteq.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_H_
29 #define _BIBLIOTEQ_H_
30 
31 #define BIBLIOTEQ_GUEST_ACCOUNT "xbook_guest"
32 #define BIBLIOTEQ_VERSION "2024.03.25"
33 
34 #include "biblioteq_batch_activities.h"
35 #include "biblioteq_book.h"
36 #include "biblioteq_callnum_table_item.h"
37 #include "biblioteq_cd.h"
38 #include "biblioteq_dbenumerations.h"
39 #include "biblioteq_dvd.h"
40 #include "biblioteq_generic_thread.h"
41 #include "biblioteq_grey_literature.h"
42 #include "biblioteq_import.h"
43 #include "biblioteq_magazine.h"
44 #include "biblioteq_magic.h"
45 #include "biblioteq_misc_functions.h"
46 #include "biblioteq_myqstring.h"
47 #include "biblioteq_numeric_table_item.h"
48 #include "biblioteq_photographcollection.h"
49 #include "biblioteq_videogame.h"
50 #include "ui_biblioteq_adminsetup.h"
51 #include "ui_biblioteq_allinfo.h"
52 #include "ui_biblioteq_branch_s.h"
53 #include "ui_biblioteq_errordiag.h"
54 #include "ui_biblioteq_history.h"
55 #include "ui_biblioteq_mainwindow.h"
56 #include "ui_biblioteq_members_browser.h"
57 #include "ui_biblioteq_password.h"
58 #include "ui_biblioteq_userinfo.h"
59 
60 #include <QMessageBox>
61 #include <QTimer>
62 
64 class biblioteq_files;
68 class swifty;
69 
70 class userinfo_diag_class: public QDialog
71 {
72  Q_OBJECT
73 
74  public:
75  userinfo_diag_class(QMainWindow *parent):QDialog(parent)
76  {
77  m_userinfo.setupUi(this);
78  connect(m_userinfo.expirationdatefuture,
79  SIGNAL(clicked(void)),
80  m_userinfo.expirationdatefuture,
81  SLOT(showMenu(void)));
82  m_userinfo.expirationdatefuture->setMenu(new QMenu(this));
83  connect
84  (m_userinfo.expirationdatefuture->menu()->addAction(tr("Year's End")),
85  SIGNAL(triggered(void)),
86  this,
87  SLOT(slotExpirationDate(void)));
88  connect
89  (m_userinfo.expirationdatefuture->menu()->addAction(tr("Year's End + 1")),
90  SIGNAL(triggered(void)),
91  this,
92  SLOT(slotExpirationDate(void)));
93  connect
94  (m_userinfo.expirationdatefuture->menu()->addAction(tr("Year's End + 2")),
95  SIGNAL(triggered(void)),
96  this,
97  SLOT(slotExpirationDate(void)));
98  connect
99  (m_userinfo.expirationdatefuture->menu()->addAction(tr("Year's End + 3")),
100  SIGNAL(triggered(void)),
101  this,
102  SLOT(slotExpirationDate(void)));
103  connect
104  (m_userinfo.expirationdatefuture->menu()->addAction(tr("Year's End + 4")),
105  SIGNAL(triggered(void)),
106  this,
107  SLOT(slotExpirationDate(void)));
108  connect
109  (m_userinfo.expirationdatefuture->menu()->addAction(tr("Year's End + 5")),
110  SIGNAL(triggered(void)),
111  this,
112  SLOT(slotExpirationDate(void)));
113 
114  int i = 0;
115 
116  foreach(auto action, m_userinfo.expirationdatefuture->menu()->actions())
117  if(action)
118  action->setData(i++);
119  }
120 
122  {
123  }
124 
125  QHash<QString, QString> m_memberProperties;
126  Ui_UserInfo m_userinfo;
127 
128  bool haveMemberChanges(QString &str)
129  {
130  QStringList list;
131 
132  if(m_memberProperties.value("city") != m_userinfo.city->text().trimmed())
133  list << "city";
134 
135  if(m_memberProperties.value("comments") !=
136  m_userinfo.comments->toPlainText().
137  trimmed())
138  list << "comments";
139 
140  if(m_memberProperties.value("dob") !=
141  m_userinfo.dob->date().toString(Qt::ISODate))
142  list << "dob";
143 
144  if(m_memberProperties.value("email") != m_userinfo.email->text())
145  list << "email";
146 
147  if(m_memberProperties.value("expiration_date") !=
148  m_userinfo.expirationdate->date().toString(Qt::ISODate))
149  list << "expiration_date";
150 
151  if(m_memberProperties.value("first_name") != m_userinfo.firstName->text().
152  trimmed())
153  list << "first_name";
154 
155  if(m_memberProperties.value("general_registration_number") !=
156  m_userinfo.generalregistrationnumber->text().trimmed())
157  list << "general_registration_number";
158 
159  if(m_memberProperties.value("last_name") != m_userinfo.lastName->text().
160  trimmed())
161  list << "last_name";
162 
163  if(m_memberProperties.value("maximum_reserved_books") !=
164  m_userinfo.maximum_reserved_books->text())
165  list << "maximum_reserved_books";
166 
167  if(m_memberProperties.value("memberclass") !=
168  m_userinfo.memberclass->text().trimmed())
169  list << "memberclass";
170 
171  if(m_memberProperties.value("membership_fees") !=
172  m_userinfo.membershipfees->text())
173  list << "membership_fees";
174 
175  if(m_memberProperties.value("membersince") !=
176  m_userinfo.membersince->date().toString(Qt::ISODate))
177  list << "membersince";
178 
179  if(m_memberProperties.value("middle_init") != m_userinfo.middle->text().
180  trimmed())
181  list << "middle_init";
182 
183  if(m_memberProperties.value("overdue_fees") !=
184  m_userinfo.overduefees->text())
185  list << "overdue_fees";
186 
187  if(m_memberProperties.value("sex") != m_userinfo.sex->currentText())
188  list << "sex";
189 
190  if(m_memberProperties.value("state_abbr") !=
191  m_userinfo.state->currentText())
192  list << "state_abbr";
193 
194  if(m_memberProperties.value("street") !=
195  m_userinfo.street->text().trimmed())
196  list << "street";
197 
198  if(m_memberProperties.value("telephone_num") !=
199  m_userinfo.telephoneNumber->text())
200  list << "telephone_num";
201 
202  if(m_memberProperties.value("zip") != m_userinfo.zip->text())
203  list << "zip";
204 
205  std::sort(list.begin(), list.end());
206 
207  for(int i = 0; i < list.size(); i++)
208  str += list.at(i) + ", ";
209 
210  if(!str.isEmpty())
211  {
212  str.prepend("(");
213  str = str.mid(0, str.length() - 2);
214  str.append(")");
215  }
216 
217  return !str.isEmpty();
218  }
219 
220  private:
221  void changeEvent(QEvent *event)
222  {
223  if(event)
224  switch(event->type())
225  {
226  case QEvent::LanguageChange:
227  {
228  m_userinfo.retranslateUi(this);
229  break;
230  }
231  default:
232  {
233  break;
234  }
235  }
236 
237  QDialog::changeEvent(event);
238  }
239 
240  private slots:
241  void done(int result)
242  {
243  QString str("");
244 
245  if(haveMemberChanges(str))
246  if(QMessageBox::
247  question(this,
248  tr("BiblioteQ: Question"),
249  tr("Your changes have not been saved. Continue "
250  "closing?\n%1").arg(str),
251  QMessageBox::No | QMessageBox::Yes,
252  QMessageBox::No) == QMessageBox::No)
253  {
254  QApplication::processEvents();
255  return;
256  }
257 
258  QDialog::done(result);
259  }
260 
261  void slotExpirationDate(void)
262  {
263  auto action = qobject_cast<QAction *> (sender());
264 
265  if(!action)
266  return;
267 
268  auto date(QDate::currentDate());
269 
270  date.setDate(date.year(), 12, 31);
271  m_userinfo.expirationdate->setDate(date.addYears(action->data().toInt()));
272  }
273 };
274 
275 class biblioteq: public QMainWindow
276 {
277  Q_OBJECT
278 
279  public:
280  enum class Limits
281  {
282  FAVORITES_LENGTH = 1024,
283  QUANTITY = 1000 // Copies per item.
284  };
285 
286  static QString s_databaseDateFormat;
287  static QString s_locale;
288  static QString s_unknown;
289  static QTranslator *s_appTranslator;
290  static QTranslator *s_qtTranslator;
291  static const int CUSTOM_QUERY = 0;
292  static const int EDITABLE = 0;
293  static const int MAXIMUM_DEVICES_CONFIRMATION = 5;
294  static const int NEW_PAGE = 0;
295  static const int NEXT_PAGE = 1;
296  static const int POPULATE_ALL = 1;
297  static const int POPULATE_SEARCH = 2;
298  static const int POPULATE_SEARCH_BASIC = 3;
299  static const int PREVIOUS_PAGE = 2;
300  static const int VIEW_ONLY = 1;
301  biblioteq(void);
302  ~biblioteq();
303  QColor availabilityColor(const QString &itemType) const;
304  QColor itemMandatoryFieldColor(void) const;
305  QColor itemQueryResultColor(void) const;
306  QHash<QString, QString> getAmazonHash(void) const;
307  QHash<QString, QString> getOpenLibraryImagesHash(void) const;
308  QHash<QString, QString> getOpenLibraryItemsHash(void) const;
309  QHash<QString, QString> getSRUHash(const QString &name) const;
310  QHash<QString, QString> getZ3950Hash(const QString &name) const;
311  QHash<QString, QString> otherImagesHash(void) const;
312  QMainWindow *getMembersBrowser(void) const;
313  QMap<QString, QKeySequence> shortcuts(void) const;
314  QSqlDatabase getDB(void) const;
315  QString formattedISBN10(const QString &str) const;
316  QString formattedISBN13(const QString &str) const;
317  QString getAdminID(void) const;
318  QString getPreferredSRUSite(void) const;
319  QString getPreferredZ3950Site(void) const;
320  QString getRoles(void) const;
321  QString getTypeFilterString(void) const;
322  QString publicationDateFormat(const QString &itemType) const;
323  QString unaccent(void) const;
324  QStringList getSRUNames(void) const;
325  QStringList getZ3950Names(void) const;
326  QStringList selectedISBN10s(void) const;
327  QVariant setting(const QString &name) const;
328  QVector<QString> getBBColumnIndexes(void) const;
329  Ui_mainWindow getUI(void) const;
330  Ui_membersBrowser getBB(void) const;
331  bool availabilityColors(void) const;
332  bool canAccessDatabaseEnumerations(void) const;
333  bool isGuest(void) const;
334  bool isPatron(void) const;
335  bool showBookReadStatus(void) const;
336  bool showMainTableImages(void) const;
337  int pageLimit(void) const;
338  int populateTable(QSqlQuery *query,
339  const QString &typefilter,
340  const int pagingType,
341  const int searchType);
342  int populateTable(const int search_type_arg,
343  const QString &typefilter,
344  const QString &searchstrArg,
345  const int pagingType = NEW_PAGE);
346  static QString homePath(void);
347  static void quit(const char *msg, const char *file, const int line);
348  static void quit(void);
349  void addError(const QString &type,
350  const QString &summary,
351  const QString &error = "",
352  const char *file = "",
353  const int line = 0);
354  void bookSearch(const QString &field, const QString &value);
355  void cdSearch(const QString &field, const QString &value);
356  void dvdSearch(const QString &field, const QString &value);
357  void executeCustomQuery(QWidget *widget, const QString &text);
358  void greyLiteratureSearch(const QString &field, const QString &value);
359  void journSearch(const QString &field, const QString &value);
360  void magSearch(const QString &field, const QString &value);
361  void pcSearch(const QString &field, const QString &value);
362  void populateFavorites(void);
363  void prepareCustomQueryFavoriteShortcut(void);
364  void removeBook(biblioteq_book *book);
365  void removeCD(biblioteq_cd *cd);
366  void removeDVD(biblioteq_dvd *dvd);
367  void removeGreyLiterature(biblioteq_grey_literature *gl);
368  void removeJournal(biblioteq_journal *journal);
369  void removeMagazine(biblioteq_magazine *magazine);
370  void removePhotographCollection(biblioteq_photographcollection *pc);
371  void removeVideoGame(biblioteq_videogame *videogame);
372  void replaceBook(const QString &id, biblioteq_book *book);
373  void replaceCD(const QString &id, biblioteq_cd *cd);
374  void replaceDVD(const QString &id, biblioteq_dvd *dvd);
375  void replaceGreyLiterature(const QString &id, biblioteq_grey_literature *gl);
376  void replaceJournal(const QString &id, biblioteq_journal *journal);
377  void replaceMagazine(const QString &id, biblioteq_magazine *magazine);
378  void replacePhotographCollection(const QString &id,
379  biblioteq_photographcollection *photograph);
380  void replaceVideoGame(const QString &id, biblioteq_videogame *videogame);
381  void setGlobalFonts(const QFont &font);
382  void setSummaryImages(const QImage &back, const QImage &front);
383  void showMain(void);
384  void updateItemWindows(void);
385  void updateMembersBrowser(const QString &memberid);
386  void updateMembersBrowser(void);
387  void updateReservationHistoryBrowser(const QString &memberid,
388  const QString &ioid,
389  const QString &copyid,
390  const QString &itemType,
391  const QString &returnedDate);
392  void updateRows
393  (const QString &oid, const QTableWidgetItem *item, const QString &it);
394  void updateSceneItem(const QString &oid,
395  const QString &type,
396  const QImage &image);
397  void vgSearch(const QString &field, const QString &value);
398 
399  public slots:
400  void slotDisplaySummary(void);
401  void slotResizeColumns(void);
402 
403  private:
404  enum AdminSetupColumns
405  {
406  ADMINISTRATOR = 1,
407  CIRCULATION = 2,
408  ID = 0,
409  LIBRARIAN = 3,
410  MEMBERSHIP = 4
411  };
412 
413  enum ErrorDialogColumns
414  {
415  EVENT_TIME = 0,
416  EVENT_TYPE = 1,
417  FILE = 4,
418  FULL_DESCRIPTION = 3,
419  LINE_NUMBER = 5,
420  SUMMARY = 2
421  };
422 
423  enum GenericSearchTypes
424  {
425  ACCESSION_NUMBER_GENERIC_SEARCH_TYPE = 0,
426  CATEGORY_GENERIC_SEARCH_TYPE = 1,
427  ID_GENERIC_SEARCH_TYPE = 2,
428  KEYWORD_GENERIC_SEARCH_TYPE = 3,
429  TITLE_GENERIC_SEARCH_TYPE = 4
430  };
431 
432  enum HistoryColumns
433  {
434  BARCODE = 5,
435  DUE_DATE = 8,
436  FIRST_NAME = 1,
437  ID_NUMBER = 4,
438  LAST_NAME = 2,
439  LENDER = 10,
440  MEMBER_ID = 0,
441  MYOID = 11,
442  RESERVATION_DATE = 7,
443  RETURNED_DATE = 9,
444  TITLE = 3,
445  TYPE = 6
446  };
447 
448  enum RequestActionItems
449  {
450  CANCEL_REQUESTED = 0,
451  INACTIVE,
452  REQUEST_SELECTED,
453  RETURN_RESERVED
454  };
455 
456  QActionGroup *m_menuCategoryActionGroup;
457  QDialog *m_branch_diag;
458  QDialog *m_pass_diag;
459  QHash<QAction *, QPointer<biblioteq_documentationwindow> > m_documentation;
460  QHash<QAction *, QPointer<biblioteq_documentationwindow> > m_releaseNotes;
461  QHash<QString, QString> m_amazonImages;
462  QHash<QString, QString> m_openLibraryImages;
463  QHash<QString, QString> m_openLibraryItems;
464  QHash<QString, QString> m_otherImages;
465  QHash<QString, QString> m_selectedBranch;
466  QList<QTableWidgetItem *> m_findList;
467  QMainWindow *m_admin_diag;
468  QMainWindow *m_all_diag;
469  QMainWindow *m_error_diag;
470  QMainWindow *m_history_diag;
471  QMainWindow *m_members_diag;
472  QMap<QString, QHash<QString, QString> > m_branches;
473  QMap<QString, QHash<QString, QString> > m_sruMaps;
474  QMap<QString, char> m_specialExecutables;
475  QMessageBox *m_about;
476  QMultiMap<QString, QHash<QString, QString> > m_z3950Maps;
477  QPair<QColor, QColor> m_aboutColors;
478  QPointer<QLabel> m_connected_bar_label;
479  QPointer<QLabel> m_status_bar_label;
480  QPointer<QMenu> m_configToolMenu;
481  QPointer<QMenu> m_menu;
482  QPointer<QToolButton> m_error_bar_label;
483  QPointer<biblioteq_dbenumerations> db_enumerations;
484  QPointer<biblioteq_documentationwindow> m_contributors;
485  QPointer<biblioteq_query_history> m_queryHistory;
486  QPointer<biblioteq_sqlite_merge_databases> m_sqliteMergeDatabases;
487  QSqlDatabase m_db;
488  QSqlQuery *m_searchQuery;
489  QString m_engUserinfoTitle;
490  QString m_lastCategory;
491  QString m_lastSearchStr;
492  QString m_previousTypeFilter;
493  QString m_roles;
494  QString m_unaccent;
495  QStringList m_deletedAdmins;
496  QStringList m_specialExecutablesIcons;
497  QTextBrowser *m_printPreview;
498  QTimer m_aboutTimer;
499  QVector<QString> m_abColumnHeaderIndexes;
500  QVector<QString> m_bbColumnHeaderIndexes;
501  QVector<QString> m_historyColumnHeaderIndexes;
502  Ui_adminBrowser ab;
503  Ui_allDialog al;
504  Ui_branchSelect br;
505  Ui_errordialog er;
506  Ui_historyDialog history;
507  Ui_mainWindow ui;
508  Ui_membersBrowser bb;
509  Ui_passSelect pass;
510  biblioteq_batch_activities *m_batchActivities;
511  biblioteq_files *m_files;
512  biblioteq_import *m_import;
513  biblioteq_magic *m_magic;
514  biblioteq_otheroptions *m_otheroptions;
515  bool m_allSearchShown;
516  bool m_membersWasRefreshed;
517  int m_lastSearchType;
518  qint64 m_pages;
519  qint64 m_queryOffset;
520  quint64 m_idCt;
521  swifty *m_swifty;
522  userinfo_diag_class *userinfo_diag;
523  QString dbUserName(void) const;
524  QString reservationHistoryHtml(void) const;
525  QString viewHtml(void) const;
526  QWidget *widgetForAction(QAction *action) const;
527  bool emptyContainers(void);
528  bool isCurrentItemAPhotograph(void) const;
529  void addConfigOptions(const QString &typefilter);
530  void adminSetup(void);
531  void changeEvent(QEvent *event);
532  void cleanup(void);
533  void closeEvent(QCloseEvent *event);
534  void createConfigToolMenu(void);
535  void createSqliteMenuActions(void);
536  void deleteItem(const QString &oid, const QString &itemType);
537  void exportAsCSV(QTableWidget *table, QWidget *parent, const QString &title);
538  void initialUpdate(void);
539  void prepareContextMenus(void);
540  void prepareExternalApplicationsMenu(void);
541  void prepareFilter(void);
542  void prepareIcons(void);
543  void preparePhotographsPerPageMenu(void);
544  void prepareRequestToolButton(const QString &typefilter);
545  void prepareReservationHistoryMenu(void);
546  void prepareStatusBarIcons(void);
547  void prepareTearOffMenus(void);
548  void prepareUpgradeNotification(void);
549  void readConfigurationFile(void);
550  void readGlobalConfiguration(void);
551  void resetAdminBrowser(void);
552  void resetMembersBrowser(void);
553 
554  private slots:
555  void slotAbout(void);
556  void slotAddAdmin(void);
557  void slotAddBorrower(void);
558  void slotAdminCheckBoxClicked(int state);
559  void slotAdminContextMenu(const QPoint &point);
560  void slotAllGo(void);
561  void slotAllowAnyUserEmail(bool state);
562  void slotAnimateAbout(void);
563  void slotAutoPopOnFilter(QAction *action);
564  void slotBookSearch(void);
565  void slotBranchChanged(void);
566  void slotCDSearch(void);
567  void slotCancelAddUser(void);
568  void slotChangeView(bool checked);
569  void slotCheckout(void);
570  void slotClearSqliteMenu(bool state);
571  void slotCloseMembersBrowser(void);
572  void slotClosePasswordDialog(void);
573  void slotConnectDB(void);
574  void slotContextMenu(const QPoint &point);
575  void slotContributors(void);
576  void slotCopyError(void);
577  void slotCustomQuery(void);
578  void slotDVDSearch(void);
579  void slotDelete(void);
580  void slotDeleteAdmin(void);
581  void slotDisconnect(void);
582  void slotDisplayNewSqliteDialog(void);
583  void slotDuplicate(void);
584  void slotExecuteQuery(const QString &text);
585  void slotExit(void);
586  void slotExportAsCSV(void);
587  void slotExportAsPNG(void);
588  void slotExportMembersAsCSV(void);
589  void slotExportMembersHistoryAsCSV(void);
590  void slotGeneralSearchPublicationDateEnabled(bool state);
591  void slotGenerateAndCopyMemberLetter(void);
592  void slotGrantPrivileges(void);
593  void slotGraphicsSceneDeleteKeyPressed(void);
594  void slotGraphicsSceneEnterKeyPressed(void);
595  void slotGreyLiteratureSearch(void);
596  void slotInsertBook(void);
597  void slotInsertCD(void);
598  void slotInsertDVD(void);
599  void slotInsertGreyLiterature(void);
600  void slotInsertJourn(void);
601  void slotInsertMag(void);
602  void slotInsertPhotograph(void);
603  void slotInsertVideoGame(void);
604  void slotItemChanged(QTableWidgetItem *item);
605  void slotJournSearch(void);
606  void slotLanguageChanged(void);
607  void slotLastWindowClosed(void);
608  void slotLaunchEmailSoftware(void);
609  void slotListOverdueItems(void);
610  void slotListReservedItems(const QString &);
611  void slotListReservedItems(void);
612  void slotMagSearch(void);
613  void slotMainTableDeleteKeyPressed(void);
614  void slotMainTableEnterKeyPressed(void);
615  void slotMainWindowCanvasBackgroundColorChanged(const QColor &color);
616  void slotMembersContextMenu(const QPoint &point);
617  void slotMembersPagesChanged(int value);
618  void slotMergeSQLiteDatabases(void);
619  void slotModify(void);
620  void slotModifyBorrower(void);
621  void slotNextPage(void);
622  void slotOpenOnlineDocumentation(void);
623  void slotOpenPDFFiles(void);
624  void slotOtherOptionsSaved(void);
625  void slotPageClicked(const QString &link);
626  void slotPhotographSearch(void);
627  void slotPhotographsPerPageChanged(void);
628  void slotPopulateMembersBrowser(void);
629  void slotPreviewCanvasBackgroundColor(const QColor &color);
630  void slotPreviousPage(void);
631  void slotPrintIconsView(void);
632  void slotPrintPreview(QPrinter *printer);
633  void slotPrintReservationHistory(void);
634  void slotPrintReservationHistoryPreview(void);
635  void slotPrintReserved(void);
636  void slotPrintView(void);
637  void slotPrintViewPreview(void);
638  void slotRefresh(void);
639  void slotRefreshAdminList(void);
640  void slotReloadBiblioteqConf(void);
641  void slotRemoveMember(void);
642  void slotRequest(void);
643  void slotReserveCopy(void);
644  void slotReset(void);
645  void slotResetAllSearch(void);
646  void slotResetErrorLog(void);
647  void slotResetLoginDialog(void);
648  void slotResizeColumnsAfterSort(void);
649  void slotRoleChanged(int index);
650  void slotSaveAdministrators(void);
651  void slotSaveConfig(void);
652  void slotSaveDnt(bool state);
653  void slotSaveGeneralSearchCaseSensitivity(bool state);
654  void slotSavePassword(void);
655  void slotSaveUser(void);
656  void slotSceneSelectionChanged(void);
657  void slotSearch(void);
658  void slotSearchBasic(void);
659  void slotSectionResized(int logicalIndex, int oldSize, int newSize);
660  void slotSelectDatabaseFile(void);
661  void slotSetColumns(void);
662  void slotSetFonts(void);
663  void slotSetMembershipFees(void);
664  void slotShowAdminDialog(void);
665  void slotShowBatchActivitiesBrowser(void);
666  void slotShowChangePassword(void);
667  void slotShowConnectionDB(void);
668  void slotShowCustomQuery(void);
669  void slotShowDbEnumerations(void);
670  void slotShowDocumentation(void);
671  void slotShowErrorDialog(void);
672  void slotShowFiles(void);
673  void slotShowGrid(void);
674  void slotShowHistory(void);
675  void slotShowImport(void);
676  void slotShowMagic(void);
677  void slotShowMembersBrowser(void);
678  void slotShowMenu(void);
679  void slotShowNext(void);
680  void slotShowOtherOptions(void);
681  void slotShowPassword(bool state);
682  void slotShowPrev(void);
683  void slotShowQueryHistory(void);
684  void slotShowReleaseNotes(void);
685  void slotSpecialApplication(void);
686  void slotSqliteFileSelected(bool state);
687  void slotSwifty(void);
688  void slotTableFindNext(void);
689  void slotTableFindTextCleared(const QString &text);
690  void slotTearOffMenus(void);
691  void slotUpdateIndicesAfterSort(int column);
692  void slotUpgradeSqliteScheme(void);
693  void slotVacuum(void);
694  void slotVideoGameSearch(void);
695  void slotViewDetails(void);
696  void slotViewFullOrNormalScreen(void);
697 
698  signals:
699  void favoritesChanged(void);
700  void fontChanged(const QFont &font);
701  void newFavorite(void);
702  void otherOptionsSaved(void);
703  void queryCompleted(const QString &text);
704 };
705 
706 #endif
Definition: biblioteq_batch_activities.h:44
Definition: biblioteq_book.h:43
Definition: biblioteq_cd.h:36
Definition: biblioteq_documentationwindow.h:36
Definition: biblioteq_dvd.h:35
Definition: biblioteq_files.h:38
Definition: biblioteq_grey_literature.h:35
Definition: biblioteq_import.h:37
Definition: biblioteq_magazine.h:135
Definition: biblioteq_magazine.h:41
Definition: biblioteq_magic.h:36
Definition: biblioteq_otheroptions.h:233
Definition: biblioteq_photographcollection.h:39
Definition: biblioteq_query_history.h:38
Definition: biblioteq_sqlite_merge_databases.h:36
Definition: biblioteq_videogame.h:35
Definition: biblioteq.h:276
Definition: biblioteq_swifty.h:36
Definition: biblioteq.h:71