diff options
| author | 2014-12-06 17:33:25 -0500 | |
|---|---|---|
| committer | 2014-12-06 17:33:25 -0500 | |
| commit | 7167ce41b61d2ba2cdb526777a4233eb84a3b66a (patch) | |
| tree | a35c14143716e1f2c98f808c81f89426045a946f /SQLiteStudio3/guiSQLiteStudio/uiutils.cpp | |
Imported Upstream version 2.99.6upstream/2.99.6
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/uiutils.cpp')
| -rw-r--r-- | SQLiteStudio3/guiSQLiteStudio/uiutils.cpp | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/uiutils.cpp b/SQLiteStudio3/guiSQLiteStudio/uiutils.cpp new file mode 100644 index 0000000..182cdb2 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/uiutils.cpp @@ -0,0 +1,123 @@ +#include "uiutils.h" +#include "services/config.h" +#include "common/widgetstateindicator.h" +#include "common/utils.h" +#include <QObject> +#include <QCheckBox> +#include <QSpinBox> +#include <QLineEdit> +#include <QDateTimeEdit> +#include <QFileDialog> +#include <QStringList> +#include <QSet> +#include <QDebug> +#include <QPainter> +#include <QDesktopWidget> +#include <QApplication> + +const QStringList pageSizes = { + "A4", "B5", "Letter", "Legal", "Executive", "A0", "A1", "A2", "A3", "A5", "A6", "A7", "A8", "A9", "B0", "B1", + "B10", "B2", "B3", "B4", "B6", "B7", "B8", "B9", "C5E", "Comm10E", "DLE", "Folio", "Ledger", "Tabloid", "Custom" +}; + +const QStringList pageSizesWithDimensions; + +QString getDbPath(const QString &startWith) +{ + QString dir = startWith; + if (dir.isNull()) + dir = CFG->get("dialogCache", "lastDbDir").toString(); + + QStringList filters; + filters += QObject::tr("All SQLite databases")+" (*.db *.sdb *.sqlite *.db3 *.s3db *.sqlite3 *.sl3 *.db2 *.s2db *.sqlite2 *.sl2)"; + filters += "SQLite3 (*.db3 *.s3db *.sqlite3 *.sl3)"; + filters += "SQLite2 (*.db2 *.s2db *.sqlite2 *.sl2)"; + filters += QObject::tr("All files")+" (*)"; + QString filter = filters.join(";;"); + + QString path = QFileDialog::getSaveFileName(0, QObject::tr("Database file"), dir, filter, &filters[0], QFileDialog::DontConfirmOverwrite); + return path; +} + +void setValidState(QWidget *widget, bool valid, const QString& message) +{ + INDICATOR(widget)->setMode(WidgetStateIndicator::Mode::ERROR); + INDICATOR(widget)->setVisible(!valid, valid ? QString() : message); +} + +void setValidStateWihtTooltip(QWidget* widget, const QString& tooltip, bool valid, const QString& message) +{ + if (!valid) + { + INDICATOR(widget)->setMode(WidgetStateIndicator::Mode::ERROR); + INDICATOR(widget)->setVisible(true, message); + } + else + { + INDICATOR(widget)->setMode(WidgetStateIndicator::Mode::HINT); + INDICATOR(widget)->setVisible(widget->isEnabled(), tooltip); + } +} + +void setValidStateWarning(QWidget* widget, const QString& warning) +{ + INDICATOR(widget)->setMode(WidgetStateIndicator::Mode::WARNING); + INDICATOR(widget)->setVisible(widget->isEnabled(), warning); +} + +void setValidStateInfo(QWidget* widget, const QString& info) +{ + INDICATOR(widget)->setMode(WidgetStateIndicator::Mode::INFO); + INDICATOR(widget)->setVisible(widget->isEnabled(), info); +} + +void setValidStateTooltip(QWidget* widget, const QString& tip) +{ + INDICATOR(widget)->setMode(WidgetStateIndicator::Mode::HINT); + INDICATOR(widget)->setVisible(widget->isEnabled(), tip); +} + +QString convertPageSize(QPagedPaintDevice::PageSize size) +{ + const int pageSizesSize = pageSizes.size(); + + int idx = static_cast<int>(size); + if (idx < 0 || idx >= pageSizesSize) + { + qDebug() << "Asked to convertPageSize() with page side enum value out of range:" << idx; + return QString::null; + } + + return pageSizes[idx]; +} + +QPagedPaintDevice::PageSize convertPageSize(const QString& size) +{ + return static_cast<QPagedPaintDevice::PageSize>(indexOf(pageSizes, size, Qt::CaseInsensitive)); +} + +const QStringList& getAllPageSizes() +{ + return pageSizes; +} + +QPixmap addOpacity(const QPixmap& input, float opacity) +{ + QPixmap output(input.size()); + output.fill(Qt::transparent); + QPainter p(&output); + p.setOpacity(opacity); + p.drawPixmap(0, 0, input); + p.end(); + return output; +} + +void limitDialogWidth(QDialog* dialog) +{ + dialog->setMaximumWidth(QApplication::desktop()->availableGeometry().width()); +} + +void fixTextCursorSelectedText(QString& text) +{ + text.replace("\u2029", "\n"); +} |
