diff options
| author | 2016-06-13 18:42:57 -0400 | |
|---|---|---|
| committer | 2016-06-13 18:42:57 -0400 | |
| commit | 65d5f68cc6dc81799c5a5d90400a2c1f0dd02547 (patch) | |
| tree | 6f245ba901b87ef42fed69965aea22f5eea6b590 /SQLiteStudio3/guiSQLiteStudio/common | |
| parent | aeb6bad01630d325a4e768e798a7a6d44e18fdaf (diff) | |
| parent | 5d9314f134ddd3dc4c853e398ac90ba247fb2e4f (diff) | |
Merge tag 'upstream/3.1.0'
Upstream version 3.1.0
# gpg: Signature made Mon 13 Jun 2016 06:42:54 PM EDT using RSA key ID EBE9BD91
# gpg: Good signature from "Unit 193 <unit193@gmail.com>"
# gpg: aka "Unit 193 <unit193@ninthfloor.org>"
# gpg: aka "Unit 193 <unit193@ubuntu.com>"
# gpg: aka "Unit 193 <unit193@ninthfloor.com>"
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) |
