aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/common
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2021-12-17 07:06:30 -0500
committerLibravatarUnit 193 <unit193@unit193.net>2021-12-17 07:06:30 -0500
commit1fdc150116cad39aae5c5da407c3312b47a59e3a (patch)
tree123c79a4d7ad2d45781ba03ce939f7539fb428d8 /SQLiteStudio3/guiSQLiteStudio/common
parentfeda8a7db8d1d7c5439aa8f8feef7cc0dd2b59a0 (diff)
New upstream version 3.3.3+dfsg1.upstream/3.3.3+dfsg1
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/common')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/common/datawidgetmapper.cpp2
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/common/dbcombobox.cpp26
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/common/dbcombobox.h23
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.cpp9
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/common/extlineedit.cpp2
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/common/widgetstateindicator.cpp169
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/common/widgetstateindicator.h17
7 files changed, 153 insertions, 95 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/common/datawidgetmapper.cpp b/SQLiteStudio3/guiSQLiteStudio/common/datawidgetmapper.cpp
index 35e99c8..7e115ed 100644
--- a/SQLiteStudio3/guiSQLiteStudio/common/datawidgetmapper.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/common/datawidgetmapper.cpp
@@ -122,7 +122,7 @@ void DataWidgetMapper::submit()
idx = model->index(currentIndex, entry->columnIndex);
value = entry->widget->property(entry->propertyName.toLatin1().constData());
- qDebug() << "copying from form view for idx" << idx << "value:" << value;
+ //qDebug() << "copying from form view for idx" << idx << "value:" << value;
model->setData(idx, value, Qt::EditRole);
}
}
diff --git a/SQLiteStudio3/guiSQLiteStudio/common/dbcombobox.cpp b/SQLiteStudio3/guiSQLiteStudio/common/dbcombobox.cpp
new file mode 100644
index 0000000..303a37a
--- /dev/null
+++ b/SQLiteStudio3/guiSQLiteStudio/common/dbcombobox.cpp
@@ -0,0 +1,26 @@
+#include "dbcombobox.h"
+#include "dblistmodel.h"
+#include "db/db.h"
+
+DbComboBox::DbComboBox(QWidget* parent) : QComboBox(parent)
+{
+ dbComboModel = new DbListModel(this);
+ dbComboModel->setCombo(this);
+ setModel(dbComboModel);
+ setEditable(false);
+}
+
+DbListModel* DbComboBox::getModel() const
+{
+ return dbComboModel;
+}
+
+void DbComboBox::setCurrentDb(Db* db)
+{
+ setCurrentIndex(dbComboModel->getIndexForDb(db));
+}
+
+Db* DbComboBox::currentDb() const
+{
+ return dbComboModel->getDb(currentIndex());
+}
diff --git a/SQLiteStudio3/guiSQLiteStudio/common/dbcombobox.h b/SQLiteStudio3/guiSQLiteStudio/common/dbcombobox.h
new file mode 100644
index 0000000..39814a6
--- /dev/null
+++ b/SQLiteStudio3/guiSQLiteStudio/common/dbcombobox.h
@@ -0,0 +1,23 @@
+#ifndef DBCOMBOBOX_H
+#define DBCOMBOBOX_H
+
+#include <QComboBox>
+
+class QComboBox;
+class DbListModel;
+class Db;
+
+class DbComboBox : public QComboBox
+{
+ public:
+ explicit DbComboBox(QWidget* parent = nullptr);
+
+ DbListModel* getModel() const;
+ void setCurrentDb(Db* db);
+ Db* currentDb() const;
+
+ private:
+ DbListModel* dbComboModel = nullptr;
+};
+
+#endif // DBCOMBOBOX_H
diff --git a/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.cpp b/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.cpp
index c67cc73..1203582 100644
--- a/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.cpp
@@ -15,8 +15,13 @@ ExtActionContainer::ExtActionContainer()
{
actionIdMapper = new QSignalMapper();
- // We need to explicitly cast QSignalMapper::mapped to tell which overloaded version of function we want
- QObject::connect(actionIdMapper, static_cast<void (QSignalMapper::*)(int)>(&QSignalMapper::mapped),
+ QObject::connect(actionIdMapper,
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
+ &QSignalMapper::mappedInt,
+#else
+ // We need to explicitly cast QSignalMapper::mapped to tell which overloaded version of function we want
+ static_cast<void (QSignalMapper::*)(int)>(&QSignalMapper::mapped),
+#endif
[=](int action) {refreshShortcut(action);});
instances << this;
}
diff --git a/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.cpp b/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.cpp
index ccbc586..2ac6531 100644
--- a/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.cpp
@@ -99,7 +99,7 @@ void ExtLineEdit::handleTextChanged()
return;
// Text width
- int newWidth = fontMetrics().width(txt);
+ int newWidth = fontMetrics().horizontalAdvance(txt);
// Text margins
QMargins margins = textMargins();
diff --git a/SQLiteStudio3/guiSQLiteStudio/common/widgetstateindicator.cpp b/SQLiteStudio3/guiSQLiteStudio/common/widgetstateindicator.cpp
index c6823e4..b5b0264 100644
--- a/SQLiteStudio3/guiSQLiteStudio/common/widgetstateindicator.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/common/widgetstateindicator.cpp
@@ -9,10 +9,10 @@
#include <QEvent>
#include <QHBoxLayout>
#include <QGraphicsDropShadowEffect>
-#include <QSequentialAnimationGroup>
-#include <QPropertyAnimation>
#include <QDebug>
#include <QScrollArea>
+#include <QToolTip>
+#include <QEnterEvent>
QHash<QWidget*,WidgetStateIndicator*> WidgetStateIndicator::instances;
@@ -54,7 +54,6 @@ void WidgetStateIndicator::initEffects()
{
initGlowEffects();
initHighlightingEffects();
- initAnimations();
}
void WidgetStateIndicator::initGlowEffects()
@@ -73,27 +72,6 @@ void WidgetStateIndicator::initHighlightingEffects()
highlightingEffect->setEnabled(false);
}
-void WidgetStateIndicator::initAnimations()
-{
- animation = new QSequentialAnimationGroup(this);
- animation->setLoopCount(-1);
-
- // Animation of glow efect
- QPropertyAnimation* varAnim = new QPropertyAnimation(glowEffect, "blurRadius");
- varAnim->setStartValue(3.0);
- varAnim->setEndValue(14.0);
- varAnim->setEasingCurve(QEasingCurve::InOutCubic);
- varAnim->setDuration(300);
- animation->addAnimation(varAnim);
-
- varAnim = new QPropertyAnimation(glowEffect, "blurRadius");
- varAnim->setStartValue(14.0);
- varAnim->setEndValue(3.0);
- varAnim->setEasingCurve(QEasingCurve::InOutCubic);
- varAnim->setDuration(300);
- animation->addAnimation(varAnim);
-}
-
void WidgetStateIndicator::initPositionMode()
{
if (dynamic_cast<QGroupBox*>(widget))
@@ -106,8 +84,15 @@ void WidgetStateIndicator::initPositionMode()
void WidgetStateIndicator::finalInit()
{
- label->setFixedSize(label->pixmap()->size());
- labelParent->setFixedSize(label->pixmap()->size());
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
+ QPixmap pixmap = label->pixmap(Qt::ReturnByValue);
+ label->setFixedSize(pixmap.size());
+ labelParent->setFixedSize(pixmap.size());
+#else
+ const QPixmap* pixmap = label->pixmap();
+ label->setFixedSize(pixmap->size());
+ labelParent->setFixedSize(pixmap->size());
+#endif
widgetVisible = widget->isVisible();
labelParent->setVisible(false);
}
@@ -120,7 +105,6 @@ void WidgetStateIndicator::setMessage(const QString& msg)
else
message = paraTpl.arg(msg);
- label->setToolTip(message);
if (!msg.isNull())
label->setCursor(Qt::WhatsThisCursor);
else
@@ -129,7 +113,7 @@ void WidgetStateIndicator::setMessage(const QString& msg)
void WidgetStateIndicator::clearMessage()
{
- message = QString::null;
+ message = QString();
label->setToolTip(message);
label->unsetCursor();
}
@@ -151,13 +135,10 @@ void WidgetStateIndicator::setMode(WidgetStateIndicator::Mode mode)
updateMode();
}
-void WidgetStateIndicator::show(const QString& msg, bool animated)
+void WidgetStateIndicator::show(const QString& msg)
{
visibilityRequested = true;
setMessage(msg);
- if (animated && animation->state() != QAbstractAnimation::Running)
- animation->start();
-
updateVisibility();
}
@@ -165,9 +146,6 @@ void WidgetStateIndicator::hide()
{
visibilityRequested = false;
clearMessage();
- if (animation->state() == QAbstractAnimation::Running)
- animation->stop();
-
updateVisibility();
}
@@ -186,28 +164,28 @@ void WidgetStateIndicator::release()
deleteLater();
}
-void WidgetStateIndicator::info(const QString& msg, bool animated)
+void WidgetStateIndicator::info(const QString& msg)
{
setMode(Mode::INFO);
- show(msg, animated);
+ show(msg);
}
-void WidgetStateIndicator::warn(const QString& msg, bool animated)
+void WidgetStateIndicator::warn(const QString& msg)
{
setMode(Mode::WARNING);
- show(msg, animated);
+ show(msg);
}
-void WidgetStateIndicator::error(const QString& msg, bool animated)
+void WidgetStateIndicator::error(const QString& msg)
{
setMode(Mode::ERROR);
- show(msg, animated);
+ show(msg);
}
-void WidgetStateIndicator::hint(const QString& msg, bool animated)
+void WidgetStateIndicator::hint(const QString& msg)
{
setMode(Mode::HINT);
- show(msg, animated);
+ show(msg);
}
bool WidgetStateIndicator::exists(QWidget* widget)
@@ -226,47 +204,11 @@ WidgetStateIndicator* WidgetStateIndicator::getInstance(QWidget* widget)
bool WidgetStateIndicator::eventFilter(QObject* obj, QEvent* ev)
{
if (obj == widget)
- {
- switch (ev->type())
- {
- case QEvent::Move:
- case QEvent::Resize:
- case QEvent::Scroll:
- updatePosition();
- break;
- case QEvent::Show:
- widgetVisible = true;
- updateVisibility();
- break;
- case QEvent::Hide:
- widgetVisible = false;
- updateVisibility();
- break;
- case QEvent::EnabledChange:
- updateVisibility();
- break;
- default:
- break;
- }
- }
+ return eventFilterFromWidget(ev);
else if (obj == windowParent)
- {
- switch (ev->type())
- {
- case QEvent::ParentChange:
- detectWindowParent();
- break;
- default:
- break;
- }
- }
+ return eventFilterFromParentWidget(ev);
else if (obj == label)
- {
- if (ev->type() == QEvent::Enter)
- highlightingEffect->setEnabled(true);
- else if (ev->type() == QEvent::Leave)
- highlightingEffect->setEnabled(false);
- }
+ return eventFilterFromIndicatorLabel(ev);
return false;
}
@@ -328,7 +270,7 @@ void WidgetStateIndicator::updatePositionGroupBox()
QFont font = gb->font();
QFontMetrics fm(font);
QString txt = gb->title();
- QPoint diff(fm.width(txt), 2);
+ QPoint diff(fm.horizontalAdvance(txt), 2);
labelParent->move(xy + diff);
}
@@ -390,6 +332,67 @@ bool WidgetStateIndicator::shouldShow()
return true;
}
+
+bool WidgetStateIndicator::eventFilterFromWidget(QEvent* ev)
+{
+ switch (ev->type())
+ {
+ case QEvent::Move:
+ case QEvent::Resize:
+ case QEvent::Scroll:
+ updatePosition();
+ break;
+ case QEvent::Show:
+ widgetVisible = true;
+ updateVisibility();
+ break;
+ case QEvent::Hide:
+ widgetVisible = false;
+ updateVisibility();
+ break;
+ case QEvent::EnabledChange:
+ updateVisibility();
+ break;
+ default:
+ break;
+ }
+ return false;
+}
+
+bool WidgetStateIndicator::eventFilterFromParentWidget(QEvent* ev)
+{
+ switch (ev->type())
+ {
+ case QEvent::ParentChange:
+ detectWindowParent();
+ break;
+ default:
+ break;
+ }
+ return false;
+}
+
+bool WidgetStateIndicator::eventFilterFromIndicatorLabel(QEvent* ev)
+{
+ switch (ev->type())
+ {
+ case QEvent::Enter:
+ {
+ highlightingEffect->setEnabled(true);
+ QEnterEvent* e = dynamic_cast<QEnterEvent*>(ev);
+ QToolTip::showText(e->globalPos(), message);
+ break;
+ }
+ case QEvent::Leave:
+ highlightingEffect->setEnabled(false);
+ QToolTip::hideText();
+ break;
+ default:
+ break;
+ }
+ return false;
+}
+
WidgetStateIndicator::PositionMode WidgetStateIndicator::getPositionMode() const
{
return positionMode;
diff --git a/SQLiteStudio3/guiSQLiteStudio/common/widgetstateindicator.h b/SQLiteStudio3/guiSQLiteStudio/common/widgetstateindicator.h
index eee49d5..28c6e0b 100644
--- a/SQLiteStudio3/guiSQLiteStudio/common/widgetstateindicator.h
+++ b/SQLiteStudio3/guiSQLiteStudio/common/widgetstateindicator.h
@@ -7,7 +7,6 @@
class QLabel;
class QGraphicsDropShadowEffect;
class QGraphicsColorizeEffect;
-class QSequentialAnimationGroup;
class GUI_API_EXPORT WidgetStateIndicator : public QObject
{
@@ -32,14 +31,14 @@ class GUI_API_EXPORT WidgetStateIndicator : public QObject
~WidgetStateIndicator();
void setMode(Mode mode);
- void show(const QString& msg = QString(), bool animated = true);
+ void show(const QString& msg = QString());
void hide();
void setVisible(bool visible, const QString& msg = QString());
void release();
- void info(const QString& msg, bool animated = true);
- void warn(const QString& msg, bool animated = true);
- void error(const QString& msg, bool animated = true);
- void hint(const QString& msg, bool animated = true);
+ void info(const QString& msg);
+ void warn(const QString& msg);
+ void error(const QString& msg);
+ void hint(const QString& msg);
static bool exists(QWidget* widget);
static WidgetStateIndicator* getInstance(QWidget* widget);
@@ -57,7 +56,6 @@ class GUI_API_EXPORT WidgetStateIndicator : public QObject
void initEffects();
void initGlowEffects();
void initHighlightingEffects();
- void initAnimations();
void initPositionMode();
void finalInit();
void setMessage(const QString& msg);
@@ -66,15 +64,18 @@ class GUI_API_EXPORT WidgetStateIndicator : public QObject
QWidget* findParentWindow(QWidget* w);
bool shouldHide();
bool shouldShow();
+ bool eventFilterFromWidget(QEvent *ev);
+ bool eventFilterFromParentWidget(QEvent *ev);
+ bool eventFilterFromIndicatorLabel(QEvent *ev);
QWidget* labelParent = nullptr;
QLabel* label = nullptr;
Mode mode = Mode::ERROR;
QWidget* widget = nullptr;
QString message;
+ QString processedMessage;
QGraphicsColorizeEffect* highlightingEffect = nullptr;
QGraphicsDropShadowEffect* glowEffect = nullptr;
- QSequentialAnimationGroup* animation = nullptr;
bool widgetVisible = false;
bool visibilityRequested = false;
QWidget* windowParent = nullptr;