BiblioteQ: Source/biblioteq.h Source File

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.12.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_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
62 class biblioteq_documentationwindow;
63 class biblioteq_files;
64 class biblioteq_otheroptions;
65 class biblioteq_sqlite_merge_databases;
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
119 ~userinfo_diag_class()
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 readConfigurationFile(void);
542 void readGlobalConfiguration(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
biblioteq_batch_activities
Definition: biblioteq_batch_activities.h:44
biblioteq_book
Definition: biblioteq_book.h:43
biblioteq_cd
Definition: biblioteq_cd.h:36
biblioteq_documentationwindow
Definition: biblioteq_documentationwindow.h:36
biblioteq_dvd
Definition: biblioteq_dvd.h:35
biblioteq_files
Definition: biblioteq_files.h:38
biblioteq_grey_literature
Definition: biblioteq_grey_literature.h:35
biblioteq_import
Definition: biblioteq_import.h:37
biblioteq_journal
Definition: biblioteq_magazine.h:133
biblioteq_magazine
Definition: biblioteq_magazine.h:41
biblioteq_otheroptions
Definition: biblioteq_otheroptions.h:233
biblioteq_photographcollection
Definition: biblioteq_photographcollection.h:38
biblioteq_sqlite_merge_databases
Definition: biblioteq_sqlite_merge_databases.h:36
biblioteq_videogame
Definition: biblioteq_videogame.h:35
biblioteq
Definition: biblioteq.h:274
swifty
Definition: biblioteq_swifty.h:36
userinfo_diag_class
Definition: biblioteq.h:69