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