28 #ifndef _BIBLIOTEQ_OTHEROPTIONS_H_
29 #define _BIBLIOTEQ_OTHEROPTIONS_H_
31 #include <QColorDialog>
34 #include <QStyledItemDelegate>
37 #include "ui_biblioteq_otheroptions.h"
49 void keyPressEvent(QKeyEvent *event)
51 QLineEdit::keyReleaseEvent(event);
55 auto key =
static_cast<Qt::Key
> (
event->key());
57 if(key == Qt::Key_Alt ||
58 key == Qt::Key_Control ||
59 key == Qt::Key_Meta ||
63 auto integer =
event->key();
64 auto modifiers =
event->modifiers();
66 if(modifiers & Qt::AltModifier)
69 if(modifiers & Qt::ControlModifier)
72 if(modifiers & Qt::MetaModifier)
75 if(modifiers & Qt::ShiftModifier)
78 setText(QKeySequence(integer).toString(QKeySequence::NativeText));
88 enum class ParentTypes
95 (
const ParentTypes type, QObject *parent):QStyledItemDelegate(parent)
100 QWidget *createEditor(QWidget *parent,
101 const QStyleOptionViewItem &option,
102 const QModelIndex &index)
const
106 case ParentTypes::Keywords:
108 switch(index.column())
112 auto pushButton =
new QPushButton(parent);
115 SIGNAL(clicked(
void)),
117 SLOT(slotSelectColor(
void))
119 , Qt::QueuedConnection
123 pushButton->setText(index.data().toString().trimmed());
134 case ParentTypes::Shortcuts:
136 switch(index.column())
143 lineEdit->setClearButtonEnabled(
true);
144 lineEdit->setPlaceholderText(tr(
"Shortcut"));
145 lineEdit->setText(index.data().toString().trimmed());
162 return QStyledItemDelegate::createEditor(parent, option, index);
166 void setModelData(QWidget *editor,
167 QAbstractItemModel *model,
168 const QModelIndex &index)
const
170 auto pushButton = qobject_cast<QPushButton *> (editor);
172 if(model && pushButton)
174 pushButton->setText(model->data(index).toString().trimmed());
178 QStyledItemDelegate::setModelData(editor, model, index);
179 QTimer::singleShot(1000,
this, SIGNAL(changed(
void)));
183 mutable QModelIndex m_index;
186 void slotSelectColor(
void)
188 auto pushButton = qobject_cast<QPushButton *> (sender());
193 QColorDialog dialog(pushButton);
195 dialog.setCurrentColor(QColor(pushButton->text().remove(
'&')));
197 if(dialog.exec() == QDialog::Accepted)
199 if(m_index.isValid() && m_index.model())
201 auto sortingEnabled =
false;
202 auto table = qobject_cast<QTableWidget *>
203 (m_index.model()->parent());
207 sortingEnabled = table->isSortingEnabled();
208 table->setSortingEnabled(
false);
211 const_cast<QAbstractItemModel *
> (m_index.model())->setData
212 (m_index, dialog.selectedColor(), Qt::DecorationRole);
213 const_cast<QAbstractItemModel *
> (m_index.model())->setData
214 (m_index, dialog.selectedColor().name());
217 table->setSortingEnabled(sortingEnabled);
220 pushButton->setText(dialog.selectedColor().name());
221 emit commitData(pushButton);
222 emit closeEditor(pushButton);
239 QColor availabilityColor(
const QString &it)
const;
240 QColor itemMandatoryFieldColor(
void)
const;
241 QColor itemQueryResultColor(
void)
const;
242 QMap<QString, QColor> customQueryColors(
void)
const;
244 QString isbn10DisplayFormat(
const QString &str)
const
246 if(QString(str).remove(
'-').length() != 10)
249 if(m_isbn10Format.isEmpty())
254 settings.value(
"otheroptions/isbn10_display_format_index").toInt(),
255 m_ui.isbn10_display_format->count() - 1);
257 m_isbn10Format = m_ui.isbn10_display_format->itemText(index);
260 return isbnDisplayFormat(m_isbn10Format, str);
263 QString isbn13DisplayFormat(
const QString &str)
const
265 if(QString(str).remove(
'-').length() != 13)
268 if(m_isbn13Format.isEmpty())
273 settings.value(
"otheroptions/isbn13_display_format_index").toInt(),
274 m_ui.isbn13_display_format->count() - 1);
276 m_isbn13Format = m_ui.isbn13_display_format->itemText(index);
279 return isbnDisplayFormat(m_isbn13Format, str);
282 QString publicationDateFormat(
const QString &it)
const;
283 bool isMembersColumnVisible(
const QString &text)
const;
284 bool showBookReadStatus(
void)
const;
285 bool showMainTableImages(
void)
const;
286 bool showMainTableProgressDialogs(
void)
const;
287 int booksAccessionNumberIndex(
void)
const;
288 int iconsViewColumnCount(
void)
const;
289 void prepareSettings(
void);
290 void prepareMembersVisibleColumns(QTableWidget *table);
295 AVAILABILITY_COLOR = 1,
297 PUBLICATION_DATE_FORMAT = 1
300 Ui_otheroptions m_ui;
304 mutable QString m_isbn10Format;
305 mutable QString m_isbn13Format;
307 QString isbnDisplayFormat(
const QString &format,
const QString &s)
const
309 auto str(QString(s).remove(
'-'));
311 if(!(str.length() == 10 || str.length() == 13))
315 auto list(format.split(
'-'));
317 for(
int i = 0, j = 0; i < list.size(); i++)
319 text.append(str.mid(j, list.at(i).length()));
321 if(i != list.size() - 1)
324 j += list.at(i).length();
330 void changeEvent(QEvent *event);
331 void keyPressEvent(QKeyEvent *event);
332 void prepareAvailability(
void);
333 void prepareIcons(
void);
334 void prepareSQLKeywords(
void);
335 void prepareShortcuts(
void);
338 void setGlobalFonts(
const QFont &font);
339 void slotClose(
void);
340 void slotMainWindowShortcutChanged(
void);
341 void slotPreviewCanvasBackgroundColor(
const QColor &color);
342 void slotResetCustomQueryColors(
void);
344 void slotSelectAvailabilityColor(
void);
345 void slotSelectColor(
void);
346 void slotSelectMainwindowCanvasBackgroundColor(
void);
349 void showNormal(
void);
352 void mainWindowCanvasBackgroundColorChanged(
const QColor &color);
353 void mainWindowCanvasBackgroundColorPreview(
const QColor &color);
Definition: biblioteq_otheroptions.h:84
Definition: biblioteq_otheroptions.h:40
Definition: biblioteq_otheroptions.h:233
Definition: biblioteq.h:276