diff options
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/common')
9 files changed, 126 insertions, 1 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/common/centerediconitemdelegate.cpp b/SQLiteStudio3/guiSQLiteStudio/common/centerediconitemdelegate.cpp new file mode 100644 index 0000000..83d8cc3 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/common/centerediconitemdelegate.cpp @@ -0,0 +1,35 @@ +#include "centerediconitemdelegate.h" +#include <QApplication> +#include <QPainter> + +CenteredIconItemDelegate::CenteredIconItemDelegate(QObject* parent) : + QStyledItemDelegate(parent) +{ +} + +void CenteredIconItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const +{ + if (!index.isValid()) + return; + + QStyleOptionViewItem opt = option; + initStyleOption(&opt, index); + + // disable default icon + opt.icon = QIcon(); + if (opt.features.testFlag(QStyleOptionViewItem::HasDecoration)) + opt.features ^= QStyleOptionViewItem::HasDecoration; + + // draw default item + QApplication::style()->drawControl(QStyle::CE_ItemViewItem, &opt, painter, 0); + + const QRect r = option.rect; + + // get pixmap + QIcon icon = qvariant_cast<QIcon>(index.data(Qt::DecorationRole)); + QPixmap pix = icon.pixmap(r.size()); + + // draw pixmap at center of item + const QPoint p = QPoint((r.width() - pix.width()) / 2, (r.height() - pix.height()) / 2); + painter->drawPixmap(r.topLeft() + p, pix); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/common/centerediconitemdelegate.h b/SQLiteStudio3/guiSQLiteStudio/common/centerediconitemdelegate.h new file mode 100644 index 0000000..a1e0103 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/common/centerediconitemdelegate.h @@ -0,0 +1,14 @@ +#ifndef CENTEREDICONITEMDELEGATE_H +#define CENTEREDICONITEMDELEGATE_H + +#include <QStyledItemDelegate> + +class CenteredIconItemDelegate : public QStyledItemDelegate +{ + public: + explicit CenteredIconItemDelegate(QObject* parent = nullptr); + + void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const; +}; + +#endif // CENTEREDICONITEMDELEGATE_H diff --git a/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.cpp b/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.cpp index bd0bffa..ccbc586 100644 --- a/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.cpp @@ -55,10 +55,17 @@ void ExtLineEdit::setClearButtonEnabled(bool enable) qWarning() << "Could not find 'clear action' in QLineEdit, so 'valueErased()' signal won't be emitted from ExtLineEdit."; return; } - connect(clearAction, SIGNAL(triggered()), this, SIGNAL(valueErased())); + connect(clearAction, SIGNAL(triggered()), this, SLOT(checkForValueErased())); } } +void ExtLineEdit::checkForValueErased() +{ + if (text().isEmpty()) + return; + + emit valueErased(); +} bool ExtLineEdit::getExpanding() const { diff --git a/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.h b/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.h index b3bffbb..df2eaf6 100644 --- a/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.h +++ b/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.h @@ -37,6 +37,7 @@ class GUI_API_EXPORT ExtLineEdit : public QLineEdit private slots: void handleTextChanged(); + void checkForValueErased(); signals: void valueErased(); diff --git a/SQLiteStudio3/guiSQLiteStudio/common/exttableview.cpp b/SQLiteStudio3/guiSQLiteStudio/common/exttableview.cpp new file mode 100644 index 0000000..f12e557 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/common/exttableview.cpp @@ -0,0 +1,14 @@ +#include "exttableview.h" +#include <QMouseEvent> + +ExtTableView::ExtTableView(QWidget* parent) : + QTableView(parent) +{ + +} + +void ExtTableView::mouseDoubleClickEvent(QMouseEvent* e) +{ + QModelIndex index = indexAt(e->pos()); + emit doubleClicked(index); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/common/exttableview.h b/SQLiteStudio3/guiSQLiteStudio/common/exttableview.h new file mode 100644 index 0000000..06e597c --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/common/exttableview.h @@ -0,0 +1,15 @@ +#ifndef EXTTABLEVIEW_H +#define EXTTABLEVIEW_H + +#include <QTableView> + +class ExtTableView : public QTableView +{ + public: + explicit ExtTableView(QWidget* parent = nullptr); + + protected: + void mouseDoubleClickEvent(QMouseEvent* e); +}; + +#endif // EXTTABLEVIEW_H diff --git a/SQLiteStudio3/guiSQLiteStudio/common/exttablewidget.cpp b/SQLiteStudio3/guiSQLiteStudio/common/exttablewidget.cpp new file mode 100644 index 0000000..8bba429 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/common/exttablewidget.cpp @@ -0,0 +1,15 @@ +#include "exttablewidget.h" + +#include <QMouseEvent> + +ExtTableWidget::ExtTableWidget(QWidget* parent) : + QTableWidget(parent) +{ + +} + +void ExtTableWidget::mouseDoubleClickEvent(QMouseEvent* e) +{ + QModelIndex index = indexAt(e->pos()); + emit doubleClicked(index); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/common/exttablewidget.h b/SQLiteStudio3/guiSQLiteStudio/common/exttablewidget.h new file mode 100644 index 0000000..719e064 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/common/exttablewidget.h @@ -0,0 +1,15 @@ +#ifndef EXTTABLEWIDGET_H +#define EXTTABLEWIDGET_H + +#include <QTableWidget> + +class ExtTableWidget : public QTableWidget +{ + public: + explicit ExtTableWidget(QWidget* parent = nullptr); + + protected: + void mouseDoubleClickEvent(QMouseEvent* e); +}; + +#endif // EXTTABLEWIDGET_H diff --git a/SQLiteStudio3/guiSQLiteStudio/common/numericspinbox.cpp b/SQLiteStudio3/guiSQLiteStudio/common/numericspinbox.cpp index e1b6620..ff49cd2 100644 --- a/SQLiteStudio3/guiSQLiteStudio/common/numericspinbox.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/common/numericspinbox.cpp @@ -112,6 +112,15 @@ QAbstractSpinBox::StepEnabled NumericSpinBox::stepEnabled() const QVariant NumericSpinBox::getFixedVariant(const QVariant& value) { + if (allowEmpty) + { + if (value.userType() == QVariant::String && value.toString().isEmpty() && !value.isNull()) + return ""; + + if (value.isNull()) + return QString(); + } + bool ok; qint64 longVal = value.toLongLong(&ok); if (ok) |
