Compare commits

..

No commits in common. "0ee8d40ade3ea6ecf7502888db31413ce4db0281" and "42c11a6b60df9af6fd53c788bca37d8bd05a4560" have entirely different histories.

33 changed files with 565 additions and 501 deletions

View File

@ -27,8 +27,8 @@
#include "qcronscheduler.h" #include "qcronscheduler.h"
AbstractExtItem::AbstractExtItem(QObject *_parent, const QString &_filePath) AbstractExtItem::AbstractExtItem(QWidget *_parent, const QString &_filePath)
: QObject(_parent) : QDialog(_parent)
, m_fileName(_filePath) , m_fileName(_filePath)
{ {
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
@ -97,13 +97,15 @@ void AbstractExtItem::startTimer()
QString AbstractExtItem::writtableConfig() const QString AbstractExtItem::writtableConfig() const
{ {
auto path = m_fileName; QString path = m_fileName;
auto name = QFileInfo(path).fileName(); QString name = QFileInfo(path).fileName();
path.remove(path.length() - name.length() - 1, name.length() + 1); path.remove(path.length() - name.length() - 1, name.length() + 1);
auto dir = QFileInfo(path).fileName(); QString dir = QFileInfo(path).fileName();
return QString("%1/awesomewidgets/%2/%3") return QString("%1/awesomewidgets/%2/%3")
.arg(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation), dir, name); .arg(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation))
.arg(dir)
.arg(name);
} }
@ -267,8 +269,8 @@ void AbstractExtItem::deinitSocket()
m_socket->close(); m_socket->close();
QLocalServer::removeServer(socket()); QLocalServer::removeServer(socket());
disconnect(m_socket, SIGNAL(newConnection()), this, SLOT(newConnectionReceived()));
delete m_socket; delete m_socket;
disconnect(m_socket, SIGNAL(newConnection()), this, SLOT(newConnectionReceived()));
} }

View File

@ -18,14 +18,14 @@
#ifndef ABSTRACTEXTITEM_H #ifndef ABSTRACTEXTITEM_H
#define ABSTRACTEXTITEM_H #define ABSTRACTEXTITEM_H
#include <QDialog>
#include <QVariant> #include <QVariant>
class QCronScheduler; class QCronScheduler;
class QLocalServer; class QLocalServer;
class QWidget;
class AbstractExtItem : public QObject class AbstractExtItem : public QDialog
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(bool active READ isActive WRITE setActive) Q_PROPERTY(bool active READ isActive WRITE setActive)
@ -40,7 +40,7 @@ class AbstractExtItem : public QObject
Q_PROPERTY(QString uniq READ uniq) Q_PROPERTY(QString uniq READ uniq)
public: public:
explicit AbstractExtItem(QObject *_parent = nullptr, const QString &_filePath = ""); explicit AbstractExtItem(QWidget *_parent = nullptr, const QString &_filePath = "");
~AbstractExtItem() override; ~AbstractExtItem() override;
virtual void bumpApi(int _newVer); virtual void bumpApi(int _newVer);
virtual AbstractExtItem *copy(const QString &_fileName, int _number) = 0; virtual AbstractExtItem *copy(const QString &_fileName, int _number) = 0;
@ -78,7 +78,7 @@ public slots:
virtual void initSocket(); virtual void initSocket();
virtual void readConfiguration(); virtual void readConfiguration();
virtual QVariantHash run() = 0; virtual QVariantHash run() = 0;
virtual int showConfiguration(QWidget *_parent, const QVariant &_args) = 0; virtual int showConfiguration(const QVariant &_args) = 0;
[[nodiscard]] virtual bool tryDelete() const; [[nodiscard]] virtual bool tryDelete() const;
virtual void writeConfiguration() const; virtual void writeConfiguration() const;
@ -89,8 +89,7 @@ private:
QCronScheduler *m_scheduler = nullptr; QCronScheduler *m_scheduler = nullptr;
QString m_fileName = "/dev/null"; QString m_fileName = "/dev/null";
int m_times = 0; int m_times = 0;
// FIXME find a better way to do it virtual void translate() = 0;
virtual void translate(void *_ui) = 0;
// properties // properties
int m_apiVersion = 0; int m_apiVersion = 0;
bool m_active = true; bool m_active = true;

View File

@ -26,16 +26,17 @@
#include <utility> #include <utility>
AbstractExtItemAggregator::AbstractExtItemAggregator(QObject *_parent, QString _type) AbstractExtItemAggregator::AbstractExtItemAggregator(QWidget *_parent, QString _type)
: QObject(_parent) : QDialog(_parent)
, ui(new Ui::AbstractExtItemAggregator) , ui(new Ui::AbstractExtItemAggregator)
, m_type(std::move(_type)) , m_type(std::move(_type))
{ {
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
// create directory at $HOME // create directory at $HOME
auto localDir = QString("%1/awesomewidgets/%2") QString localDir = QString("%1/awesomewidgets/%2")
.arg(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation), type()); .arg(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation))
.arg(type());
QDir localDirectory; QDir localDirectory;
if (localDirectory.mkpath(localDir)) if (localDirectory.mkpath(localDir))
qCInfo(LOG_LIB) << "Created directory" << localDir; qCInfo(LOG_LIB) << "Created directory" << localDir;
@ -61,19 +62,20 @@ AbstractExtItemAggregator::~AbstractExtItemAggregator()
void AbstractExtItemAggregator::copyItem() void AbstractExtItemAggregator::copyItem()
{ {
auto source = itemFromWidget(); AbstractExtItem *source = itemFromWidget();
auto fileName = getName(); QString fileName = getName();
auto number = uniqNumber(); int number = uniqNumber();
auto dir = QString("%1/awesomewidgets/%2") QString dir = QString("%1/awesomewidgets/%2")
.arg(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation), m_type); .arg(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation))
.arg(m_type);
if ((!source) || (fileName.isEmpty())) { if ((!source) || (fileName.isEmpty())) {
qCWarning(LOG_LIB) << "Nothing to copy"; qCWarning(LOG_LIB) << "Nothing to copy";
return; return;
} }
auto filePath = QString("%1/%2").arg(dir, fileName); QString filePath = QString("%1/%2").arg(dir).arg(fileName);
auto newItem = source->copy(filePath, number); AbstractExtItem *newItem = source->copy(filePath, number);
if (newItem->showConfiguration(this, configArgs()) == 1) { if (newItem->showConfiguration(configArgs()) == 1) {
initItems(); initItems();
repaintList(); repaintList();
} }
@ -82,7 +84,7 @@ void AbstractExtItemAggregator::copyItem()
void AbstractExtItemAggregator::deleteItem() void AbstractExtItemAggregator::deleteItem()
{ {
auto source = itemFromWidget(); AbstractExtItem *source = itemFromWidget();
if (!source) { if (!source) {
qCWarning(LOG_LIB) << "Nothing to delete"; qCWarning(LOG_LIB) << "Nothing to delete";
return; return;
@ -97,13 +99,13 @@ void AbstractExtItemAggregator::deleteItem()
void AbstractExtItemAggregator::editItem() void AbstractExtItemAggregator::editItem()
{ {
auto source = itemFromWidget(); AbstractExtItem *source = itemFromWidget();
if (!source) { if (!source) {
qCWarning(LOG_LIB) << "Nothing to edit"; qCWarning(LOG_LIB) << "Nothing to edit";
return; return;
} }
if (source->showConfiguration(this, configArgs()) == 1) { if (source->showConfiguration(configArgs()) == 1) {
initItems(); initItems();
repaintList(); repaintList();
} }
@ -113,7 +115,7 @@ void AbstractExtItemAggregator::editItem()
QString AbstractExtItemAggregator::getName() QString AbstractExtItemAggregator::getName()
{ {
bool ok; bool ok;
auto name = QInputDialog::getText(this, i18n("Enter file name"), i18n("File name"), QLineEdit::Normal, "", &ok); QString name = QInputDialog::getText(this, i18n("Enter file name"), i18n("File name"), QLineEdit::Normal, "", &ok);
if ((!ok) || (name.isEmpty())) if ((!ok) || (name.isEmpty()))
return ""; return "";
if (!name.endsWith(".desktop")) if (!name.endsWith(".desktop"))
@ -125,13 +127,13 @@ QString AbstractExtItemAggregator::getName()
AbstractExtItem *AbstractExtItemAggregator::itemFromWidget() const AbstractExtItem *AbstractExtItemAggregator::itemFromWidget() const
{ {
auto widgetItem = ui->listWidget->currentItem(); QListWidgetItem *widgetItem = ui->listWidget->currentItem();
if (!widgetItem) if (!widgetItem)
return nullptr; return nullptr;
AbstractExtItem *found = nullptr; AbstractExtItem *found = nullptr;
for (auto &item : items()) { for (auto &item : items()) {
auto fileName = QFileInfo(item->fileName()).fileName(); QString fileName = QFileInfo(item->fileName()).fileName();
if (fileName != widgetItem->text()) if (fileName != widgetItem->text())
continue; continue;
found = item; found = item;
@ -149,7 +151,7 @@ void AbstractExtItemAggregator::repaintList() const
ui->listWidget->clear(); ui->listWidget->clear();
for (auto &_item : items()) { for (auto &_item : items()) {
QString fileName = QFileInfo(_item->fileName()).fileName(); QString fileName = QFileInfo(_item->fileName()).fileName();
auto item = new QListWidgetItem(fileName, ui->listWidget); auto *item = new QListWidgetItem(fileName, ui->listWidget);
QStringList tooltip; QStringList tooltip;
tooltip.append(i18n("Name: %1", _item->name())); tooltip.append(i18n("Name: %1", _item->name()));
tooltip.append(i18n("Comment: %1", _item->comment())); tooltip.append(i18n("Comment: %1", _item->comment()));

View File

@ -18,6 +18,7 @@
#ifndef ABSTRACTEXTITEMAGGREGATOR_H #ifndef ABSTRACTEXTITEMAGGREGATOR_H
#define ABSTRACTEXTITEMAGGREGATOR_H #define ABSTRACTEXTITEMAGGREGATOR_H
#include <QDialog>
#include <QStandardPaths> #include <QStandardPaths>
#include "abstractextitem.h" #include "abstractextitem.h"
@ -26,32 +27,38 @@
class QAbstractButton; class QAbstractButton;
class QListWidgetItem; class QListWidgetItem;
namespace Ui
{
class AbstractExtItemAggregator;
}
class AbstractExtItemAggregator : public QObject class AbstractExtItemAggregator : public QDialog
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(QVariant configArgs READ configArgs WRITE setConfigArgs) Q_PROPERTY(QVariant configArgs READ configArgs WRITE setConfigArgs)
Q_PROPERTY(QVariant type READ type) Q_PROPERTY(QVariant type READ type)
public: public:
explicit AbstractExtItemAggregator(QObject *_parent, QString _type); explicit AbstractExtItemAggregator(QWidget *_parent, QString _type);
~AbstractExtItemAggregator() override;
// methods // methods
void copyItem(); void copyItem();
template <class T> void createItem() template <class T> void createItem()
{ {
auto fileName = getName(); QString fileName = getName();
int number = uniqNumber(); int number = uniqNumber();
auto dir = QString("%1/awesomewidgets/%2") QString dir = QString("%1/awesomewidgets/%2")
.arg(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation), m_type); .arg(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation))
.arg(m_type);
if (fileName.isEmpty()) { if (fileName.isEmpty()) {
qCWarning(LOG_LIB) << "Nothing to create"; qCWarning(LOG_LIB) << "Nothing to create";
return; return;
} }
auto filePath = QString("%1/%2").arg(dir, fileName); QString filePath = QString("%1/%2").arg(dir).arg(fileName);
T *newItem = new T(this, filePath); T *newItem = new T(this, filePath);
newItem->setNumber(number); newItem->setNumber(number);
if (newItem->showConfiguration(this, configArgs()) == 1) { if (newItem->showConfiguration(configArgs()) == 1) {
initItems(); initItems();
repaintList(); repaintList();
} }

View File

@ -22,13 +22,19 @@
#include "awdebug.h" #include "awdebug.h"
AWAbstractFormatter::AWAbstractFormatter(QObject *_parent, const QString &_filePath) AWAbstractFormatter::AWAbstractFormatter(QWidget *_parent, const QString &_filePath)
: AbstractExtItem(_parent, _filePath) : AbstractExtItem(_parent, _filePath)
{ {
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
} }
AWAbstractFormatter::~AWAbstractFormatter()
{
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
}
void AWAbstractFormatter::copyDefaults(AbstractExtItem *_other) const void AWAbstractFormatter::copyDefaults(AbstractExtItem *_other) const
{ {
AbstractExtItem::copyDefaults(_other); AbstractExtItem::copyDefaults(_other);
@ -39,7 +45,7 @@ void AWAbstractFormatter::copyDefaults(AbstractExtItem *_other) const
QString AWAbstractFormatter::uniq() const QString AWAbstractFormatter::uniq() const
{ {
return QString("%1(%2)").arg(name(), strType()); return QString("%1(%2)").arg(name()).arg(strType());
} }

View File

@ -32,8 +32,8 @@ class AWAbstractFormatter : public AbstractExtItem
public: public:
enum class FormatterClass { DateTime, Float, List, Script, String, NoFormat, Json }; enum class FormatterClass { DateTime, Float, List, Script, String, NoFormat, Json };
explicit AWAbstractFormatter(QObject *_parent = nullptr, const QString &_filePath = ""); explicit AWAbstractFormatter(QWidget *_parent = nullptr, const QString &_filePath = "");
~AWAbstractFormatter() override = default; ~AWAbstractFormatter() override;
[[nodiscard]] virtual QString convert(const QVariant &_value) const = 0; [[nodiscard]] virtual QString convert(const QVariant &_value) const = 0;
void copyDefaults(AbstractExtItem *_other) const override; void copyDefaults(AbstractExtItem *_other) const override;
[[nodiscard]] QString uniq() const override; [[nodiscard]] QString uniq() const override;

View File

@ -15,6 +15,7 @@
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ * * along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/ ***************************************************************************/
#include "awdatetimeformatter.h" #include "awdatetimeformatter.h"
#include "ui_awdatetimeformatter.h" #include "ui_awdatetimeformatter.h"
@ -26,13 +27,24 @@
#include "awdebug.h" #include "awdebug.h"
AWDateTimeFormatter::AWDateTimeFormatter(QObject *_parent, const QString &_filePath) AWDateTimeFormatter::AWDateTimeFormatter(QWidget *_parent, const QString &_filePath)
: AWAbstractFormatter(_parent, _filePath) : AWAbstractFormatter(_parent, _filePath)
, ui(new Ui::AWDateTimeFormatter)
{ {
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
if (!_filePath.isEmpty()) if (!_filePath.isEmpty())
AWDateTimeFormatter::readConfiguration(); AWDateTimeFormatter::readConfiguration();
ui->setupUi(this);
AWDateTimeFormatter::translate();
}
AWDateTimeFormatter::~AWDateTimeFormatter()
{
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
delete ui;
} }
@ -48,7 +60,7 @@ AWDateTimeFormatter *AWDateTimeFormatter::copy(const QString &_fileName, const i
{ {
qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number; qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number;
auto item = new AWDateTimeFormatter(parent(), _fileName); auto *item = new AWDateTimeFormatter(dynamic_cast<QWidget *>(parent()), _fileName);
AWAbstractFormatter::copyDefaults(item); AWAbstractFormatter::copyDefaults(item);
item->setFormat(format()); item->setFormat(format());
item->setTranslateString(translateString()); item->setTranslateString(translateString());
@ -102,36 +114,27 @@ void AWDateTimeFormatter::readConfiguration()
} }
int AWDateTimeFormatter::showConfiguration(QWidget *_parent, const QVariant &_args) int AWDateTimeFormatter::showConfiguration(const QVariant &_args)
{ {
Q_UNUSED(_args) Q_UNUSED(_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::AWDateTimeFormatter();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name()); ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment()); ui->lineEdit_comment->setText(comment());
ui->label_typeValue->setText("DateTime"); ui->label_typeValue->setText("DateTime");
ui->lineEdit_format->setText(format()); ui->lineEdit_format->setText(format());
ui->checkBox_translate->setCheckState(translateString() ? Qt::Checked : Qt::Unchecked); ui->checkBox_translate->setCheckState(translateString() ? Qt::Checked : Qt::Unchecked);
auto ret = dialog->exec(); int ret = exec();
if (ret == 1) { if (ret != 1)
setName(ui->lineEdit_name->text()); return ret;
setComment(ui->lineEdit_comment->text()); setName(ui->lineEdit_name->text());
setApiVersion(AW_FORMATTER_API); setComment(ui->lineEdit_comment->text());
setStrType(ui->label_typeValue->text()); setApiVersion(AW_FORMATTER_API);
setFormat(ui->lineEdit_format->text()); setStrType(ui->label_typeValue->text());
setTranslateString(ui->checkBox_translate->checkState() == Qt::Checked); setFormat(ui->lineEdit_format->text());
setTranslateString(ui->checkBox_translate->checkState() == Qt::Checked);
writeConfiguration();
}
dialog->deleteLater();
delete ui;
writeConfiguration();
return ret; return ret;
} }
@ -157,10 +160,9 @@ void AWDateTimeFormatter::initLocale()
m_locale = m_translate ? QLocale::system() : QLocale::c(); m_locale = m_translate ? QLocale::system() : QLocale::c();
} }
void AWDateTimeFormatter::translate(void *_ui)
{
auto ui = reinterpret_cast<Ui::AWDateTimeFormatter *>(_ui);
void AWDateTimeFormatter::translate()
{
ui->label_name->setText(i18n("Name")); ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment")); ui->label_comment->setText(i18n("Comment"));
ui->label_type->setText(i18n("Type")); ui->label_type->setText(i18n("Type"));

View File

@ -23,6 +23,11 @@
#include "awabstractformatter.h" #include "awabstractformatter.h"
namespace Ui
{
class AWDateTimeFormatter;
}
class AWDateTimeFormatter : public AWAbstractFormatter class AWDateTimeFormatter : public AWAbstractFormatter
{ {
Q_OBJECT Q_OBJECT
@ -30,7 +35,8 @@ class AWDateTimeFormatter : public AWAbstractFormatter
Q_PROPERTY(bool translateString READ translateString WRITE setTranslateString) Q_PROPERTY(bool translateString READ translateString WRITE setTranslateString)
public: public:
explicit AWDateTimeFormatter(QObject *_parent = nullptr, const QString &_filePath = ""); explicit AWDateTimeFormatter(QWidget *_parent = nullptr, const QString &_filePath = "");
~AWDateTimeFormatter() override;
[[nodiscard]] QString convert(const QVariant &_value) const override; [[nodiscard]] QString convert(const QVariant &_value) const override;
AWDateTimeFormatter *copy(const QString &_fileName, int _number) override; AWDateTimeFormatter *copy(const QString &_fileName, int _number) override;
// properties // properties
@ -41,12 +47,13 @@ public:
public slots: public slots:
void readConfiguration() override; void readConfiguration() override;
int showConfiguration(QWidget *_parent, const QVariant &_args) override; int showConfiguration(const QVariant &_args) override;
void writeConfiguration() const override; void writeConfiguration() const override;
private: private:
Ui::AWDateTimeFormatter *ui = nullptr;
void initLocale(); void initLocale();
void translate(void *_ui) override; void translate() override;
// properties // properties
QLocale m_locale; QLocale m_locale;
QString m_format = ""; QString m_format = "";

View File

@ -15,6 +15,7 @@
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ * * along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/ ***************************************************************************/
#include "awfloatformatter.h" #include "awfloatformatter.h"
#include "ui_awfloatformatter.h" #include "ui_awfloatformatter.h"
@ -25,13 +26,24 @@
#include "awdebug.h" #include "awdebug.h"
AWFloatFormatter::AWFloatFormatter(QObject *_parent, const QString &_filePath) AWFloatFormatter::AWFloatFormatter(QWidget *_parent, const QString &_filePath)
: AWAbstractFormatter(_parent, _filePath) : AWAbstractFormatter(_parent, _filePath)
, ui(new Ui::AWFloatFormatter)
{ {
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
if (!_filePath.isEmpty()) if (!_filePath.isEmpty())
AWFloatFormatter::readConfiguration(); AWFloatFormatter::readConfiguration();
ui->setupUi(this);
AWFloatFormatter::translate();
}
AWFloatFormatter::~AWFloatFormatter()
{
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
delete ui;
} }
@ -39,7 +51,7 @@ QString AWFloatFormatter::convert(const QVariant &_value) const
{ {
qCDebug(LOG_LIB) << "Convert value" << _value; qCDebug(LOG_LIB) << "Convert value" << _value;
auto output QString output
= QString("%1").arg(_value.toDouble() * multiplier() + summand(), count(), format(), precision(), fillChar()); = QString("%1").arg(_value.toDouble() * multiplier() + summand(), count(), format(), precision(), fillChar());
if (forceWidth()) if (forceWidth())
output = output.left(count()); output = output.left(count());
@ -52,7 +64,7 @@ AWFloatFormatter *AWFloatFormatter::copy(const QString &_fileName, const int _nu
{ {
qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number; qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number;
auto item = new AWFloatFormatter(parent(), _fileName); auto *item = new AWFloatFormatter(dynamic_cast<QWidget *>(parent()), _fileName);
AWAbstractFormatter::copyDefaults(item); AWAbstractFormatter::copyDefaults(item);
item->setCount(count()); item->setCount(count());
item->setFormat(format()); item->setFormat(format());
@ -190,15 +202,10 @@ void AWFloatFormatter::readConfiguration()
} }
int AWFloatFormatter::showConfiguration(QWidget *_parent, const QVariant &_args) int AWFloatFormatter::showConfiguration(const QVariant &_args)
{ {
Q_UNUSED(_args) Q_UNUSED(_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::AWFloatFormatter();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name()); ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment()); ui->lineEdit_comment->setText(comment());
ui->label_typeValue->setText("Float"); ui->label_typeValue->setText("Float");
@ -210,26 +217,22 @@ int AWFloatFormatter::showConfiguration(QWidget *_parent, const QVariant &_args)
ui->doubleSpinBox_multiplier->setValue(multiplier()); ui->doubleSpinBox_multiplier->setValue(multiplier());
ui->doubleSpinBox_summand->setValue(summand()); ui->doubleSpinBox_summand->setValue(summand());
auto ret = dialog->exec(); int ret = exec();
if (ret == 1) { if (ret != 1)
setName(ui->lineEdit_name->text()); return ret;
setComment(ui->lineEdit_comment->text()); setName(ui->lineEdit_name->text());
setApiVersion(AW_FORMATTER_API); setComment(ui->lineEdit_comment->text());
setStrType(ui->label_typeValue->text()); setApiVersion(AW_FORMATTER_API);
setFormat(ui->comboBox_format->currentText().at(0).toLatin1()); setStrType(ui->label_typeValue->text());
setPrecision(ui->spinBox_precision->value()); setFormat(ui->comboBox_format->currentText().at(0).toLatin1());
setCount(ui->spinBox_width->value()); setPrecision(ui->spinBox_precision->value());
setFillChar(ui->lineEdit_fill->text().at(0)); setCount(ui->spinBox_width->value());
setForceWidth(ui->checkBox_forceWidth->checkState() == Qt::Checked); setFillChar(ui->lineEdit_fill->text().at(0));
setMultiplier(ui->doubleSpinBox_multiplier->value()); setForceWidth(ui->checkBox_forceWidth->checkState() == Qt::Checked);
setSummand(ui->doubleSpinBox_summand->value()); setMultiplier(ui->doubleSpinBox_multiplier->value());
setSummand(ui->doubleSpinBox_summand->value());
writeConfiguration();
}
dialog->deleteLater();
delete ui;
writeConfiguration();
return ret; return ret;
} }
@ -255,10 +258,8 @@ void AWFloatFormatter::writeConfiguration() const
} }
void AWFloatFormatter::translate(void *_ui) void AWFloatFormatter::translate()
{ {
auto ui = reinterpret_cast<Ui::AWFloatFormatter *>(_ui);
ui->label_name->setText(i18n("Name")); ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment")); ui->label_comment->setText(i18n("Comment"));
ui->label_type->setText(i18n("Type")); ui->label_type->setText(i18n("Type"));
@ -270,4 +271,3 @@ void AWFloatFormatter::translate(void *_ui)
ui->label_multiplier->setText(i18n("Multiplier")); ui->label_multiplier->setText(i18n("Multiplier"));
ui->label_summand->setText(i18n("Summand")); ui->label_summand->setText(i18n("Summand"));
} }

View File

@ -21,6 +21,11 @@
#include "awabstractformatter.h" #include "awabstractformatter.h"
namespace Ui
{
class AWFloatFormatter;
}
class AWFloatFormatter : public AWAbstractFormatter class AWFloatFormatter : public AWAbstractFormatter
{ {
Q_OBJECT Q_OBJECT
@ -33,7 +38,8 @@ class AWFloatFormatter : public AWAbstractFormatter
Q_PROPERTY(double summand READ summand WRITE setSummand) Q_PROPERTY(double summand READ summand WRITE setSummand)
public: public:
explicit AWFloatFormatter(QObject *_parent = nullptr, const QString &_filePath = ""); explicit AWFloatFormatter(QWidget *_parent = nullptr, const QString &_filePath = "");
~AWFloatFormatter() override;
[[nodiscard]] QString convert(const QVariant &_value) const override; [[nodiscard]] QString convert(const QVariant &_value) const override;
AWFloatFormatter *copy(const QString &_fileName, int _number) override; AWFloatFormatter *copy(const QString &_fileName, int _number) override;
// properties // properties
@ -54,11 +60,12 @@ public:
public slots: public slots:
void readConfiguration() override; void readConfiguration() override;
int showConfiguration(QWidget *_parent, const QVariant &_args) override; int showConfiguration(const QVariant &_args) override;
void writeConfiguration() const override; void writeConfiguration() const override;
private: private:
void translate(void *_ui) override; Ui::AWFloatFormatter *ui = nullptr;
void translate() override;
// properties // properties
int m_count = 0; int m_count = 0;
QChar m_fillChar = QChar(); QChar m_fillChar = QChar();

View File

@ -15,6 +15,7 @@
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ * * along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/ ***************************************************************************/
#include "awjsonformatter.h" #include "awjsonformatter.h"
#include "ui_awjsonformatter.h" #include "ui_awjsonformatter.h"
@ -26,13 +27,24 @@
#include "awdebug.h" #include "awdebug.h"
AWJsonFormatter::AWJsonFormatter(QObject *_parent, const QString &_filePath) AWJsonFormatter::AWJsonFormatter(QWidget *_parent, const QString &_filePath)
: AWAbstractFormatter(_parent, _filePath) : AWAbstractFormatter(_parent, _filePath)
, ui(new Ui::AWJsonFormatter)
{ {
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
if (!_filePath.isEmpty()) if (!_filePath.isEmpty())
AWJsonFormatter::readConfiguration(); AWJsonFormatter::readConfiguration();
ui->setupUi(this);
AWJsonFormatter::translate();
}
AWJsonFormatter::~AWJsonFormatter()
{
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
delete ui;
} }
@ -55,7 +67,7 @@ AWJsonFormatter *AWJsonFormatter::copy(const QString &_fileName, const int _numb
{ {
qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number; qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number;
auto item = new AWJsonFormatter(parent(), _fileName); auto *item = new AWJsonFormatter(dynamic_cast<QWidget *>(parent()), _fileName);
AWAbstractFormatter::copyDefaults(item); AWAbstractFormatter::copyDefaults(item);
item->setNumber(_number); item->setNumber(_number);
item->setPath(path()); item->setPath(path());
@ -93,34 +105,25 @@ void AWJsonFormatter::readConfiguration()
} }
int AWJsonFormatter::showConfiguration(QWidget *_parent, const QVariant &args) int AWJsonFormatter::showConfiguration(const QVariant &args)
{ {
Q_UNUSED(args) Q_UNUSED(args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::AWJsonFormatter();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name()); ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment()); ui->lineEdit_comment->setText(comment());
ui->label_typeValue->setText("Json"); ui->label_typeValue->setText("Json");
ui->lineEdit_path->setText(path()); ui->lineEdit_path->setText(path());
auto ret = dialog->exec(); int ret = exec();
if (ret == 1) { if (ret != 1)
setName(ui->lineEdit_name->text()); return ret;
setComment(ui->lineEdit_comment->text()); setName(ui->lineEdit_name->text());
setApiVersion(AW_FORMATTER_API); setComment(ui->lineEdit_comment->text());
setStrType(ui->label_typeValue->text()); setApiVersion(AW_FORMATTER_API);
setPath(ui->lineEdit_path->text()); setStrType(ui->label_typeValue->text());
setPath(ui->lineEdit_path->text());
writeConfiguration();
}
dialog->deleteLater();
delete ui;
writeConfiguration();
return ret; return ret;
} }
@ -184,10 +187,8 @@ void AWJsonFormatter::initPath()
} }
void AWJsonFormatter::translate(void *_ui) void AWJsonFormatter::translate()
{ {
auto ui = reinterpret_cast<Ui::AWJsonFormatter *>(_ui);
ui->label_name->setText(i18n("Name")); ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment")); ui->label_comment->setText(i18n("Comment"));
ui->label_type->setText(i18n("Type")); ui->label_type->setText(i18n("Type"));

View File

@ -21,13 +21,19 @@
#include "awabstractformatter.h" #include "awabstractformatter.h"
namespace Ui
{
class AWJsonFormatter;
}
class AWJsonFormatter : public AWAbstractFormatter class AWJsonFormatter : public AWAbstractFormatter
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(QString path READ path WRITE setPath) Q_PROPERTY(QString path READ path WRITE setPath)
public: public:
explicit AWJsonFormatter(QObject *_parent = nullptr, const QString &_filePath = ""); explicit AWJsonFormatter(QWidget *_parent = nullptr, const QString &_filePath = "");
~AWJsonFormatter() override;
[[nodiscard]] QString convert(const QVariant &_value) const override; [[nodiscard]] QString convert(const QVariant &_value) const override;
AWJsonFormatter *copy(const QString &_fileName, int _number) override; AWJsonFormatter *copy(const QString &_fileName, int _number) override;
// properties // properties
@ -36,15 +42,16 @@ public:
public slots: public slots:
void readConfiguration() override; void readConfiguration() override;
int showConfiguration(QWidget *_parent, const QVariant &_args) override; int showConfiguration(const QVariant &_args) override;
void writeConfiguration() const override; void writeConfiguration() const override;
private: private:
Ui::AWJsonFormatter *ui = nullptr;
static QVariant getFromJson(const QVariant &_value, const QVariant &_element); static QVariant getFromJson(const QVariant &_value, const QVariant &_element);
static QVariant getFromList(const QVariant &_value, int _index); static QVariant getFromList(const QVariant &_value, int _index);
static QVariant getFromMap(const QVariant &_value, const QString &_key); static QVariant getFromMap(const QVariant &_value, const QString &_key);
void initPath(); void initPath();
void translate(void *_ui) override; void translate() override;
// properties // properties
QString m_path; QString m_path;
QVariantList m_splittedPath; QVariantList m_splittedPath;

View File

@ -15,6 +15,7 @@
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ * * along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/ ***************************************************************************/
#include "awlistformatter.h" #include "awlistformatter.h"
#include "ui_awlistformatter.h" #include "ui_awlistformatter.h"
@ -25,13 +26,24 @@
#include "awdebug.h" #include "awdebug.h"
AWListFormatter::AWListFormatter(QObject *_parent, const QString &_filePath) AWListFormatter::AWListFormatter(QWidget *_parent, const QString &_filePath)
: AWAbstractFormatter(_parent, _filePath) : AWAbstractFormatter(_parent, _filePath)
, ui(new Ui::AWListFormatter)
{ {
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
if (!_filePath.isEmpty()) if (!_filePath.isEmpty())
AWListFormatter::readConfiguration(); AWListFormatter::readConfiguration();
ui->setupUi(this);
AWListFormatter::translate();
}
AWListFormatter::~AWListFormatter()
{
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
delete ui;
} }
@ -39,7 +51,7 @@ QString AWListFormatter::convert(const QVariant &_value) const
{ {
qCDebug(LOG_LIB) << "Convert value" << _value; qCDebug(LOG_LIB) << "Convert value" << _value;
auto output = _value.toStringList(); QStringList output = _value.toStringList();
if (isSorted()) if (isSorted())
output.sort(); output.sort();
@ -51,7 +63,7 @@ AWListFormatter *AWListFormatter::copy(const QString &_fileName, const int _numb
{ {
qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number; qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number;
auto item = new AWListFormatter(parent(), _fileName); auto *item = new AWListFormatter(dynamic_cast<QWidget *>(parent()), _fileName);
AWAbstractFormatter::copyDefaults(item); AWAbstractFormatter::copyDefaults(item);
item->setFilter(filter()); item->setFilter(filter());
item->setSeparator(separator()); item->setSeparator(separator());
@ -121,15 +133,10 @@ void AWListFormatter::readConfiguration()
} }
int AWListFormatter::showConfiguration(QWidget *_parent, const QVariant &_args) int AWListFormatter::showConfiguration(const QVariant &_args)
{ {
Q_UNUSED(_args) Q_UNUSED(_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::AWListFormatter();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name()); ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment()); ui->lineEdit_comment->setText(comment());
ui->label_typeValue->setText("List"); ui->label_typeValue->setText("List");
@ -137,22 +144,18 @@ int AWListFormatter::showConfiguration(QWidget *_parent, const QVariant &_args)
ui->lineEdit_separator->setText(separator()); ui->lineEdit_separator->setText(separator());
ui->checkBox_sorted->setCheckState(isSorted() ? Qt::Checked : Qt::Unchecked); ui->checkBox_sorted->setCheckState(isSorted() ? Qt::Checked : Qt::Unchecked);
auto ret = dialog->exec(); int ret = exec();
if (ret == 1) { if (ret != 1)
setName(ui->lineEdit_name->text()); return ret;
setComment(ui->lineEdit_comment->text()); setName(ui->lineEdit_name->text());
setApiVersion(AW_FORMATTER_API); setComment(ui->lineEdit_comment->text());
setStrType(ui->label_typeValue->text()); setApiVersion(AW_FORMATTER_API);
setFilter(ui->lineEdit_filter->text()); setStrType(ui->label_typeValue->text());
setSeparator(ui->lineEdit_separator->text()); setFilter(ui->lineEdit_filter->text());
setSorted(ui->checkBox_sorted->checkState() == Qt::Checked); setSeparator(ui->lineEdit_separator->text());
setSorted(ui->checkBox_sorted->checkState() == Qt::Checked);
writeConfiguration();
}
dialog->deleteLater();
delete ui;
writeConfiguration();
return ret; return ret;
} }
@ -174,10 +177,8 @@ void AWListFormatter::writeConfiguration() const
} }
void AWListFormatter::translate(void *_ui) void AWListFormatter::translate()
{ {
auto ui = reinterpret_cast<Ui::AWListFormatter *>(_ui);
ui->label_name->setText(i18n("Name")); ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment")); ui->label_comment->setText(i18n("Comment"));
ui->label_type->setText(i18n("Type")); ui->label_type->setText(i18n("Type"));

View File

@ -21,6 +21,11 @@
#include "awabstractformatter.h" #include "awabstractformatter.h"
namespace Ui
{
class AWListFormatter;
}
class AWListFormatter : public AWAbstractFormatter class AWListFormatter : public AWAbstractFormatter
{ {
Q_OBJECT Q_OBJECT
@ -29,7 +34,8 @@ class AWListFormatter : public AWAbstractFormatter
Q_PROPERTY(bool sorted READ isSorted WRITE setSorted) Q_PROPERTY(bool sorted READ isSorted WRITE setSorted)
public: public:
explicit AWListFormatter(QObject *_parent = nullptr, const QString &_filePath = ""); explicit AWListFormatter(QWidget *_parent = nullptr, const QString &_filePath = "");
~AWListFormatter() override;
[[nodiscard]] QString convert(const QVariant &_value) const override; [[nodiscard]] QString convert(const QVariant &_value) const override;
AWListFormatter *copy(const QString &_fileName, int _number) override; AWListFormatter *copy(const QString &_fileName, int _number) override;
// properties // properties
@ -42,11 +48,12 @@ public:
public slots: public slots:
void readConfiguration() override; void readConfiguration() override;
int showConfiguration(QWidget *_parent, const QVariant &_args) override; int showConfiguration(const QVariant &_args) override;
void writeConfiguration() const override; void writeConfiguration() const override;
private: private:
void translate(void *_ui) override; Ui::AWListFormatter *ui = nullptr;
void translate() override;
// properties // properties
QString m_filter = ""; QString m_filter = "";
QString m_separator = ""; QString m_separator = "";

View File

@ -15,6 +15,7 @@
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ * * along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/ ***************************************************************************/
#include "awnoformatter.h" #include "awnoformatter.h"
#include "ui_awnoformatter.h" #include "ui_awnoformatter.h"
@ -23,13 +24,24 @@
#include "awdebug.h" #include "awdebug.h"
AWNoFormatter::AWNoFormatter(QObject *_parent, const QString &_filePath) AWNoFormatter::AWNoFormatter(QWidget *_parent, const QString &_filePath)
: AWAbstractFormatter(_parent, _filePath) : AWAbstractFormatter(_parent, _filePath)
, ui(new Ui::AWNoFormatter)
{ {
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
if (!_filePath.isEmpty()) if (!_filePath.isEmpty())
AWNoFormatter::readConfiguration(); AWNoFormatter::readConfiguration();
ui->setupUi(this);
AWNoFormatter::translate();
}
AWNoFormatter::~AWNoFormatter()
{
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
delete ui;
} }
@ -45,7 +57,7 @@ AWNoFormatter *AWNoFormatter::copy(const QString &_fileName, const int _number)
{ {
qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number; qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number;
auto item = new AWNoFormatter(parent(), _fileName); auto *item = new AWNoFormatter(dynamic_cast<QWidget *>(parent()), _fileName);
AWAbstractFormatter::copyDefaults(item); AWAbstractFormatter::copyDefaults(item);
item->setNumber(_number); item->setNumber(_number);
@ -53,42 +65,30 @@ AWNoFormatter *AWNoFormatter::copy(const QString &_fileName, const int _number)
} }
int AWNoFormatter::showConfiguration(QWidget *_parent, const QVariant &_args) int AWNoFormatter::showConfiguration(const QVariant &_args)
{ {
Q_UNUSED(_args) Q_UNUSED(_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::AWNoFormatter();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name()); ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment()); ui->lineEdit_comment->setText(comment());
ui->label_typeValue->setText("NoFormat"); ui->label_typeValue->setText("NoFormat");
auto ret = dialog->exec(); int ret = exec();
if (ret == 1) { if (ret != 1)
setName(ui->lineEdit_name->text()); return ret;
setComment(ui->lineEdit_comment->text()); setName(ui->lineEdit_name->text());
setApiVersion(AW_FORMATTER_API); setComment(ui->lineEdit_comment->text());
setStrType(ui->label_typeValue->text()); setApiVersion(AW_FORMATTER_API);
setStrType(ui->label_typeValue->text());
writeConfiguration();
}
dialog->deleteLater();
delete ui;
writeConfiguration();
return ret; return ret;
} }
void AWNoFormatter::translate(void *_ui) void AWNoFormatter::translate()
{ {
auto ui = reinterpret_cast<Ui::AWNoFormatter *>(_ui);
ui->label_name->setText(i18n("Name")); ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment")); ui->label_comment->setText(i18n("Comment"));
ui->label_type->setText(i18n("Type")); ui->label_type->setText(i18n("Type"));
} }

View File

@ -21,20 +21,27 @@
#include "awabstractformatter.h" #include "awabstractformatter.h"
namespace Ui
{
class AWNoFormatter;
}
class AWNoFormatter : public AWAbstractFormatter class AWNoFormatter : public AWAbstractFormatter
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit AWNoFormatter(QObject *_parent = nullptr, const QString &_filePath = ""); explicit AWNoFormatter(QWidget *_parent = nullptr, const QString &_filePath = "");
~AWNoFormatter() override;
[[nodiscard]] QString convert(const QVariant &_value) const override; [[nodiscard]] QString convert(const QVariant &_value) const override;
AWNoFormatter *copy(const QString &_fileName, int _number) override; AWNoFormatter *copy(const QString &_fileName, int _number) override;
public slots: public slots:
int showConfiguration(QWidget *_parent, const QVariant &_args) override; int showConfiguration(const QVariant &_args) override;
private: private:
void translate(void *_ui) override; Ui::AWNoFormatter *ui = nullptr;
void translate() override;
// properties // properties
}; };

View File

@ -15,6 +15,7 @@
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ * * along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/ ***************************************************************************/
#include "awscriptformatter.h" #include "awscriptformatter.h"
#include "ui_awscriptformatter.h" #include "ui_awscriptformatter.h"
@ -26,13 +27,24 @@
#include "awdebug.h" #include "awdebug.h"
AWScriptFormatter::AWScriptFormatter(QObject *_parent, const QString &_filePath) AWScriptFormatter::AWScriptFormatter(QWidget *_parent, const QString &_filePath)
: AWAbstractFormatter(_parent, _filePath) : AWAbstractFormatter(_parent, _filePath)
, ui(new Ui::AWScriptFormatter)
{ {
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
if (!_filePath.isEmpty()) if (!_filePath.isEmpty())
AWScriptFormatter::readConfiguration(); AWScriptFormatter::readConfiguration();
ui->setupUi(this);
AWScriptFormatter::translate();
}
AWScriptFormatter::~AWScriptFormatter()
{
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
delete ui;
} }
@ -42,8 +54,9 @@ QString AWScriptFormatter::convert(const QVariant &_value) const
// init engine // init engine
QJSEngine engine; QJSEngine engine;
auto fn = engine.evaluate(m_program); QJSValue fn = engine.evaluate(m_program);
auto result = fn.call({_value.toString()}); QJSValueList args = QJSValueList() << _value.toString();
QJSValue result = fn.call(args);
if (result.isError()) { if (result.isError()) {
qCWarning(LOG_LIB) << "Uncaught exception at line" << result.property("lineNumber").toInt() << ":" qCWarning(LOG_LIB) << "Uncaught exception at line" << result.property("lineNumber").toInt() << ":"
@ -59,7 +72,7 @@ AWScriptFormatter *AWScriptFormatter::copy(const QString &_fileName, const int _
{ {
qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number; qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number;
auto item = new AWScriptFormatter(parent(), _fileName); auto *item = new AWScriptFormatter(dynamic_cast<QWidget *>(parent()), _fileName);
AWAbstractFormatter::copyDefaults(item); AWAbstractFormatter::copyDefaults(item);
item->setAppendCode(appendCode()); item->setAppendCode(appendCode());
item->setCode(code()); item->setCode(code());
@ -137,15 +150,10 @@ void AWScriptFormatter::readConfiguration()
} }
int AWScriptFormatter::showConfiguration(QWidget *_parent, const QVariant &_args) int AWScriptFormatter::showConfiguration(const QVariant &_args)
{ {
Q_UNUSED(_args) Q_UNUSED(_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::AWScriptFormatter();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name()); ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment()); ui->lineEdit_comment->setText(comment());
ui->label_typeValue->setText("Script"); ui->label_typeValue->setText("Script");
@ -153,23 +161,19 @@ int AWScriptFormatter::showConfiguration(QWidget *_parent, const QVariant &_args
ui->checkBox_hasReturn->setCheckState(hasReturn() ? Qt::Checked : Qt::Unchecked); ui->checkBox_hasReturn->setCheckState(hasReturn() ? Qt::Checked : Qt::Unchecked);
ui->textEdit_code->setPlainText(code()); ui->textEdit_code->setPlainText(code());
int ret = dialog->exec(); int ret = exec();
if (ret == 1) { if (ret != 1)
setName(ui->lineEdit_name->text()); return ret;
setComment(ui->lineEdit_comment->text()); setName(ui->lineEdit_name->text());
setApiVersion(AW_FORMATTER_API); setComment(ui->lineEdit_comment->text());
setStrType(ui->label_typeValue->text()); setApiVersion(AW_FORMATTER_API);
setAppendCode(ui->checkBox_appendCode->checkState() == Qt::Checked); setStrType(ui->label_typeValue->text());
setHasReturn(ui->checkBox_hasReturn->checkState() == Qt::Checked); setAppendCode(ui->checkBox_appendCode->checkState() == Qt::Checked);
setCode(ui->textEdit_code->toPlainText()); setHasReturn(ui->checkBox_hasReturn->checkState() == Qt::Checked);
initProgram(); setCode(ui->textEdit_code->toPlainText());
initProgram();
writeConfiguration();
}
dialog->deleteLater();
delete ui;
writeConfiguration();
return ret; return ret;
} }
@ -195,7 +199,7 @@ void AWScriptFormatter::initProgram()
{ {
// init JS code // init JS code
if (appendCode()) if (appendCode())
m_program = QString("(function(value) { %1%2 })").arg(code(), hasReturn() ? "" : "; return output;"); m_program = QString("(function(value) { %1%2 })").arg(code()).arg(hasReturn() ? "" : "; return output;");
else else
m_program = code(); m_program = code();
@ -203,10 +207,8 @@ void AWScriptFormatter::initProgram()
} }
void AWScriptFormatter::translate(void *_ui) void AWScriptFormatter::translate()
{ {
auto ui = reinterpret_cast<Ui::AWScriptFormatter *>(_ui);
ui->label_name->setText(i18n("Name")); ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment")); ui->label_comment->setText(i18n("Comment"));
ui->label_type->setText(i18n("Type")); ui->label_type->setText(i18n("Type"));
@ -214,4 +216,3 @@ void AWScriptFormatter::translate(void *_ui)
ui->checkBox_hasReturn->setText(i18n("Has return")); ui->checkBox_hasReturn->setText(i18n("Has return"));
ui->label_code->setText(i18n("Code")); ui->label_code->setText(i18n("Code"));
} }

View File

@ -21,6 +21,11 @@
#include "awabstractformatter.h" #include "awabstractformatter.h"
namespace Ui
{
class AWScriptFormatter;
}
class AWScriptFormatter : public AWAbstractFormatter class AWScriptFormatter : public AWAbstractFormatter
{ {
Q_OBJECT Q_OBJECT
@ -30,7 +35,8 @@ class AWScriptFormatter : public AWAbstractFormatter
Q_PROPERTY(QString program READ program) Q_PROPERTY(QString program READ program)
public: public:
explicit AWScriptFormatter(QObject *_parent = nullptr, const QString &_filePath = ""); explicit AWScriptFormatter(QWidget *_parent = nullptr, const QString &_filePath = "");
~AWScriptFormatter() override;
[[nodiscard]] QString convert(const QVariant &_value) const override; [[nodiscard]] QString convert(const QVariant &_value) const override;
AWScriptFormatter *copy(const QString &_fileName, int _number) override; AWScriptFormatter *copy(const QString &_fileName, int _number) override;
// properties // properties
@ -44,12 +50,13 @@ public:
public slots: public slots:
void readConfiguration() override; void readConfiguration() override;
int showConfiguration(QWidget *_parent, const QVariant &_args) override; int showConfiguration(const QVariant &_args) override;
void writeConfiguration() const override; void writeConfiguration() const override;
private: private:
Ui::AWScriptFormatter *ui = nullptr;
void initProgram(); void initProgram();
void translate(void *_ui) override; void translate() override;
// properties // properties
bool m_appendCode = true; bool m_appendCode = true;
QString m_code = ""; QString m_code = "";

View File

@ -15,6 +15,7 @@
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ * * along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
***************************************************************************/ ***************************************************************************/
#include "awstringformatter.h" #include "awstringformatter.h"
#include "ui_awstringformatter.h" #include "ui_awstringformatter.h"
@ -25,13 +26,24 @@
#include "awdebug.h" #include "awdebug.h"
AWStringFormatter::AWStringFormatter(QObject *_parent, const QString &_filePath) AWStringFormatter::AWStringFormatter(QWidget *_parent, const QString &_filePath)
: AWAbstractFormatter(_parent, _filePath) : AWAbstractFormatter(_parent, _filePath)
, ui(new Ui::AWStringFormatter)
{ {
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
if (!_filePath.isEmpty()) if (!_filePath.isEmpty())
AWStringFormatter::readConfiguration(); AWStringFormatter::readConfiguration();
ui->setupUi(this);
AWStringFormatter::translate();
}
AWStringFormatter::~AWStringFormatter()
{
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
delete ui;
} }
@ -39,7 +51,7 @@ QString AWStringFormatter::convert(const QVariant &_value) const
{ {
qCDebug(LOG_LIB) << "Convert value" << _value; qCDebug(LOG_LIB) << "Convert value" << _value;
auto output = QString("%1").arg(_value.toString(), count(), fillChar()); QString output = QString("%1").arg(_value.toString(), count(), fillChar());
if (forceWidth()) if (forceWidth())
output = output.left(count()); output = output.left(count());
@ -51,7 +63,7 @@ AWStringFormatter *AWStringFormatter::copy(const QString &_fileName, const int _
{ {
qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number; qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number;
auto item = new AWStringFormatter(parent(), _fileName); auto *item = new AWStringFormatter(dynamic_cast<QWidget *>(parent()), _fileName);
AWAbstractFormatter::copyDefaults(item); AWAbstractFormatter::copyDefaults(item);
item->setCount(count()); item->setCount(count());
item->setFillChar(fillChar()); item->setFillChar(fillChar());
@ -120,15 +132,10 @@ void AWStringFormatter::readConfiguration()
} }
int AWStringFormatter::showConfiguration(QWidget *_parent, const QVariant &_args) int AWStringFormatter::showConfiguration(const QVariant &_args)
{ {
Q_UNUSED(_args) Q_UNUSED(_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::AWStringFormatter();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name()); ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment()); ui->lineEdit_comment->setText(comment());
ui->label_typeValue->setText("String"); ui->label_typeValue->setText("String");
@ -136,22 +143,18 @@ int AWStringFormatter::showConfiguration(QWidget *_parent, const QVariant &_args
ui->lineEdit_fill->setText(QString(fillChar())); ui->lineEdit_fill->setText(QString(fillChar()));
ui->checkBox_forceWidth->setCheckState(forceWidth() ? Qt::Checked : Qt::Unchecked); ui->checkBox_forceWidth->setCheckState(forceWidth() ? Qt::Checked : Qt::Unchecked);
auto ret = dialog->exec(); int ret = exec();
if (ret == 1) { if (ret != 1)
setName(ui->lineEdit_name->text()); return ret;
setComment(ui->lineEdit_comment->text()); setName(ui->lineEdit_name->text());
setApiVersion(AW_FORMATTER_API); setComment(ui->lineEdit_comment->text());
setStrType(ui->label_typeValue->text()); setApiVersion(AW_FORMATTER_API);
setCount(ui->spinBox_width->value()); setStrType(ui->label_typeValue->text());
setFillChar(ui->lineEdit_fill->text().at(0)); setCount(ui->spinBox_width->value());
setForceWidth(ui->checkBox_forceWidth->checkState() == Qt::Checked); setFillChar(ui->lineEdit_fill->text().at(0));
setForceWidth(ui->checkBox_forceWidth->checkState() == Qt::Checked);
writeConfiguration();
}
dialog->deleteLater();
delete ui;
writeConfiguration();
return ret; return ret;
} }
@ -173,10 +176,8 @@ void AWStringFormatter::writeConfiguration() const
} }
void AWStringFormatter::translate(void *_ui) void AWStringFormatter::translate()
{ {
auto ui = reinterpret_cast<Ui::AWStringFormatter *>(_ui);
ui->label_name->setText(i18n("Name")); ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment")); ui->label_comment->setText(i18n("Comment"));
ui->label_type->setText(i18n("Type")); ui->label_type->setText(i18n("Type"));

View File

@ -21,6 +21,11 @@
#include "awabstractformatter.h" #include "awabstractformatter.h"
namespace Ui
{
class AWStringFormatter;
}
class AWStringFormatter : public AWAbstractFormatter class AWStringFormatter : public AWAbstractFormatter
{ {
Q_OBJECT Q_OBJECT
@ -29,7 +34,8 @@ class AWStringFormatter : public AWAbstractFormatter
Q_PROPERTY(bool forceWidth READ forceWidth WRITE setForceWidth) Q_PROPERTY(bool forceWidth READ forceWidth WRITE setForceWidth)
public: public:
explicit AWStringFormatter(QObject *_parent = nullptr, const QString &_filePath = ""); explicit AWStringFormatter(QWidget *_parent = nullptr, const QString &_filePath = "");
~AWStringFormatter() override;
[[nodiscard]] QString convert(const QVariant &_value) const override; [[nodiscard]] QString convert(const QVariant &_value) const override;
AWStringFormatter *copy(const QString &_fileName, int _number) override; AWStringFormatter *copy(const QString &_fileName, int _number) override;
// properties // properties
@ -42,11 +48,12 @@ public:
public slots: public slots:
void readConfiguration() override; void readConfiguration() override;
int showConfiguration(QWidget *_parent, const QVariant &_args) override; int showConfiguration(const QVariant &_args) override;
void writeConfiguration() const override; void writeConfiguration() const override;
private: private:
void translate(void *_ui) override; Ui::AWStringFormatter *ui = nullptr;
void translate() override;
// properties // properties
int m_count = 0; int m_count = 0;
QChar m_fillChar = QChar(); QChar m_fillChar = QChar();

View File

@ -31,7 +31,7 @@
template <class T> class ExtItemAggregator : public AbstractExtItemAggregator template <class T> class ExtItemAggregator : public AbstractExtItemAggregator
{ {
public: public:
explicit ExtItemAggregator(QObject *_parent, const QString &_type) explicit ExtItemAggregator(QWidget *_parent, const QString &_type)
: AbstractExtItemAggregator(_parent, _type) : AbstractExtItemAggregator(_parent, _type)
{ {
qSetMessagePattern(AWDebug::LOG_FORMAT); qSetMessagePattern(AWDebug::LOG_FORMAT);
@ -57,7 +57,7 @@ public:
void editItems() void editItems()
{ {
repaintList(); repaintList();
auto ret = exec(); int ret = exec();
qCInfo(LOG_LIB) << "Dialog returns" << ret; qCInfo(LOG_LIB) << "Dialog returns" << ret;
}; };

View File

@ -27,13 +27,16 @@
#include "awdebug.h" #include "awdebug.h"
ExtNetworkRequest::ExtNetworkRequest(QObject *_parent, const QString &_filePath) ExtNetworkRequest::ExtNetworkRequest(QWidget *_parent, const QString &_filePath)
: AbstractExtItem(_parent, _filePath) : AbstractExtItem(_parent, _filePath)
, ui(new Ui::ExtNetworkRequest)
{ {
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
if (!_filePath.isEmpty()) if (!_filePath.isEmpty())
ExtNetworkRequest::readConfiguration(); ExtNetworkRequest::readConfiguration();
ui->setupUi(this);
ExtNetworkRequest::translate();
m_values[tag("response")] = ""; m_values[tag("response")] = "";
@ -54,6 +57,7 @@ ExtNetworkRequest::~ExtNetworkRequest()
disconnect(this, SIGNAL(requestDataUpdate()), this, SLOT(sendRequest())); disconnect(this, SIGNAL(requestDataUpdate()), this, SLOT(sendRequest()));
m_manager->deleteLater(); m_manager->deleteLater();
delete ui;
} }
@ -61,7 +65,7 @@ ExtNetworkRequest *ExtNetworkRequest::copy(const QString &_fileName, const int _
{ {
qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number; qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number;
auto item = new ExtNetworkRequest(parent(), _fileName); auto *item = new ExtNetworkRequest(dynamic_cast<QWidget *>(parent()), _fileName);
copyDefaults(item); copyDefaults(item);
item->setNumber(_number); item->setNumber(_number);
item->setStringUrl(stringUrl()); item->setStringUrl(stringUrl());
@ -115,15 +119,10 @@ QVariantHash ExtNetworkRequest::run()
} }
int ExtNetworkRequest::showConfiguration(QWidget *_parent, const QVariant &_args) int ExtNetworkRequest::showConfiguration(const QVariant &_args)
{ {
Q_UNUSED(_args) Q_UNUSED(_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::ExtNetworkRequest();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name()); ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment()); ui->lineEdit_comment->setText(comment());
ui->label_numberValue->setText(QString("%1").arg(number())); ui->label_numberValue->setText(QString("%1").arg(number()));
@ -133,24 +132,20 @@ int ExtNetworkRequest::showConfiguration(QWidget *_parent, const QVariant &_args
ui->lineEdit_socket->setText(socket()); ui->lineEdit_socket->setText(socket());
ui->spinBox_interval->setValue(interval()); ui->spinBox_interval->setValue(interval());
auto ret = dialog->exec(); int ret = exec();
if (ret == 1) { if (ret != 1)
setName(ui->lineEdit_name->text()); return ret;
setComment(ui->lineEdit_comment->text()); setName(ui->lineEdit_name->text());
setNumber(ui->label_numberValue->text().toInt()); setComment(ui->lineEdit_comment->text());
setApiVersion(AW_EXTNETREQUEST_API); setNumber(ui->label_numberValue->text().toInt());
setStringUrl(ui->lineEdit_url->text()); setApiVersion(AW_EXTNETREQUEST_API);
setActive(ui->checkBox_active->checkState() == Qt::Checked); setStringUrl(ui->lineEdit_url->text());
setCron(ui->lineEdit_schedule->text()); setActive(ui->checkBox_active->checkState() == Qt::Checked);
setSocket(ui->lineEdit_socket->text()); setCron(ui->lineEdit_schedule->text());
setInterval(ui->spinBox_interval->value()); setSocket(ui->lineEdit_socket->text());
setInterval(ui->spinBox_interval->value());
writeConfiguration();
}
dialog->deleteLater();
delete ui;
writeConfiguration();
return ret; return ret;
} }
@ -186,7 +181,7 @@ void ExtNetworkRequest::networkReplyReceived(QNetworkReply *_reply)
void ExtNetworkRequest::sendRequest() void ExtNetworkRequest::sendRequest()
{ {
m_isRunning = true; m_isRunning = true;
auto reply = m_manager->get(QNetworkRequest(m_url)); QNetworkReply *reply = m_manager->get(QNetworkRequest(m_url));
new QReplyTimeout(reply, REQUEST_TIMEOUT); new QReplyTimeout(reply, REQUEST_TIMEOUT);
} }
@ -197,10 +192,8 @@ void ExtNetworkRequest::initUrl()
} }
void ExtNetworkRequest::translate(void *_ui) void ExtNetworkRequest::translate()
{ {
auto ui = reinterpret_cast<Ui::ExtNetworkRequest *>(_ui);
ui->label_name->setText(i18n("Name")); ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment")); ui->label_comment->setText(i18n("Comment"));
ui->label_number->setText(i18n("Tag")); ui->label_number->setText(i18n("Tag"));

View File

@ -23,13 +23,18 @@
#include "abstractextitem.h" #include "abstractextitem.h"
namespace Ui
{
class ExtNetworkRequest;
}
class ExtNetworkRequest : public AbstractExtItem class ExtNetworkRequest : public AbstractExtItem
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(QString stringUrl READ stringUrl WRITE setStringUrl) Q_PROPERTY(QString stringUrl READ stringUrl WRITE setStringUrl)
public: public:
explicit ExtNetworkRequest(QObject *_parent = nullptr, const QString &_filePath = ""); explicit ExtNetworkRequest(QWidget *_parent = nullptr, const QString &_filePath = "");
~ExtNetworkRequest() override; ~ExtNetworkRequest() override;
ExtNetworkRequest *copy(const QString &_fileName, int _number) override; ExtNetworkRequest *copy(const QString &_fileName, int _number) override;
// get methods // get methods
@ -41,7 +46,7 @@ public:
public slots: public slots:
void readConfiguration() override; void readConfiguration() override;
QVariantHash run() override; QVariantHash run() override;
int showConfiguration(QWidget *_parent, const QVariant &_args) override; int showConfiguration(const QVariant &_args) override;
void writeConfiguration() const override; void writeConfiguration() const override;
private slots: private slots:
@ -52,8 +57,9 @@ private:
QNetworkAccessManager *m_manager = nullptr; QNetworkAccessManager *m_manager = nullptr;
QUrl m_url; QUrl m_url;
bool m_isRunning = false; bool m_isRunning = false;
Ui::ExtNetworkRequest *ui = nullptr;
void initUrl(); void initUrl();
void translate(void *_ui) override; void translate() override;
// properties // properties
QString m_stringUrl = "https://httpbin.org/get"; QString m_stringUrl = "https://httpbin.org/get";
// values // values

View File

@ -20,6 +20,7 @@
#include <KI18n/KLocalizedString> #include <KI18n/KLocalizedString>
#include <QDir>
#include <QSettings> #include <QSettings>
#include <qreplytimeout/qreplytimeout.h> #include <qreplytimeout/qreplytimeout.h>
@ -28,13 +29,16 @@
#include "stooqquotesprovider.h" #include "stooqquotesprovider.h"
ExtQuotes::ExtQuotes(QObject *_parent, const QString &_filePath) ExtQuotes::ExtQuotes(QWidget *_parent, const QString &_filePath)
: AbstractExtItem(_parent, _filePath) : AbstractExtItem(_parent, _filePath)
, ui(new Ui::ExtQuotes)
{ {
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
if (!_filePath.isEmpty()) if (!_filePath.isEmpty())
ExtQuotes::readConfiguration(); ExtQuotes::readConfiguration();
ui->setupUi(this);
ExtQuotes::translate();
m_values[tag("price")] = 0.0; m_values[tag("price")] = 0.0;
m_values[tag("pricechg")] = 0.0; m_values[tag("pricechg")] = 0.0;
@ -60,6 +64,7 @@ ExtQuotes::~ExtQuotes()
disconnect(this, SIGNAL(requestDataUpdate()), this, SLOT(sendRequest())); disconnect(this, SIGNAL(requestDataUpdate()), this, SLOT(sendRequest()));
m_manager->deleteLater(); m_manager->deleteLater();
delete ui;
} }
@ -67,7 +72,7 @@ ExtQuotes *ExtQuotes::copy(const QString &_fileName, const int _number)
{ {
qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number; qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number;
auto item = new ExtQuotes(parent(), _fileName); auto *item = new ExtQuotes(dynamic_cast<QWidget *>(parent()), _fileName);
copyDefaults(item); copyDefaults(item);
item->setNumber(_number); item->setNumber(_number);
item->setTicker(ticker()); item->setTicker(ticker());
@ -121,15 +126,10 @@ QVariantHash ExtQuotes::run()
} }
int ExtQuotes::showConfiguration(QWidget *_parent, const QVariant &_args) int ExtQuotes::showConfiguration(const QVariant &_args)
{ {
Q_UNUSED(_args) Q_UNUSED(_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::ExtQuotes();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name()); ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment()); ui->lineEdit_comment->setText(comment());
ui->label_numberValue->setText(QString("%1").arg(number())); ui->label_numberValue->setText(QString("%1").arg(number()));
@ -139,24 +139,20 @@ int ExtQuotes::showConfiguration(QWidget *_parent, const QVariant &_args)
ui->lineEdit_socket->setText(socket()); ui->lineEdit_socket->setText(socket());
ui->spinBox_interval->setValue(interval()); ui->spinBox_interval->setValue(interval());
auto ret = dialog->exec(); int ret = exec();
if (ret == 1) { if (ret != 1)
setName(ui->lineEdit_name->text()); return ret;
setComment(ui->lineEdit_comment->text()); setName(ui->lineEdit_name->text());
setNumber(ui->label_numberValue->text().toInt()); setComment(ui->lineEdit_comment->text());
setApiVersion(AW_EXTQUOTES_API); setNumber(ui->label_numberValue->text().toInt());
setTicker(ui->lineEdit_ticker->text()); setApiVersion(AW_EXTQUOTES_API);
setActive(ui->checkBox_active->checkState() == Qt::Checked); setTicker(ui->lineEdit_ticker->text());
setCron(ui->lineEdit_schedule->text()); setActive(ui->checkBox_active->checkState() == Qt::Checked);
setSocket(ui->lineEdit_socket->text()); setCron(ui->lineEdit_schedule->text());
setInterval(ui->spinBox_interval->value()); setSocket(ui->lineEdit_socket->text());
setInterval(ui->spinBox_interval->value());
writeConfiguration();
}
dialog->deleteLater();
delete ui;
writeConfiguration();
return ret; return ret;
} }
@ -186,7 +182,7 @@ void ExtQuotes::quotesReplyReceived(QNetworkReply *_reply)
auto text = _reply->readAll(); auto text = _reply->readAll();
_reply->deleteLater(); _reply->deleteLater();
auto data = m_providerObject->parse(text, m_values); QVariantHash data = m_providerObject->parse(text, m_values);
if (data.isEmpty()) if (data.isEmpty())
return; return;
m_values = data; m_values = data;
@ -198,7 +194,7 @@ void ExtQuotes::quotesReplyReceived(QNetworkReply *_reply)
void ExtQuotes::sendRequest() void ExtQuotes::sendRequest()
{ {
m_isRunning = true; m_isRunning = true;
auto reply = m_manager->get(QNetworkRequest(m_providerObject->url())); QNetworkReply *reply = m_manager->get(QNetworkRequest(m_providerObject->url()));
new QReplyTimeout(reply, REQUEST_TIMEOUT); new QReplyTimeout(reply, REQUEST_TIMEOUT);
} }
@ -214,10 +210,8 @@ void ExtQuotes::initProvider()
} }
void ExtQuotes::translate(void *_ui) void ExtQuotes::translate()
{ {
auto ui = reinterpret_cast<Ui::ExtQuotes *>(_ui);
ui->label_name->setText(i18n("Name")); ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment")); ui->label_comment->setText(i18n("Comment"));
ui->label_number->setText(i18n("Tag")); ui->label_number->setText(i18n("Tag"));

View File

@ -24,6 +24,10 @@
class AbstractQuotesProvider; class AbstractQuotesProvider;
namespace Ui
{
class ExtQuotes;
}
class ExtQuotes : public AbstractExtItem class ExtQuotes : public AbstractExtItem
{ {
@ -31,7 +35,7 @@ class ExtQuotes : public AbstractExtItem
Q_PROPERTY(QString ticker READ ticker WRITE setTicker) Q_PROPERTY(QString ticker READ ticker WRITE setTicker)
public: public:
explicit ExtQuotes(QObject *_parent = nullptr, const QString &_filePath = ""); explicit ExtQuotes(QWidget *_parent = nullptr, const QString &_filePath = "");
~ExtQuotes() override; ~ExtQuotes() override;
ExtQuotes *copy(const QString &_fileName, int _number) override; ExtQuotes *copy(const QString &_fileName, int _number) override;
// get methods // get methods
@ -43,7 +47,7 @@ public:
public slots: public slots:
void readConfiguration() override; void readConfiguration() override;
QVariantHash run() override; QVariantHash run() override;
int showConfiguration(QWidget *_parent, const QVariant &_args) override; int showConfiguration(const QVariant &_args) override;
void writeConfiguration() const override; void writeConfiguration() const override;
private slots: private slots:
@ -54,8 +58,9 @@ private:
AbstractQuotesProvider *m_providerObject = nullptr; AbstractQuotesProvider *m_providerObject = nullptr;
QNetworkAccessManager *m_manager = nullptr; QNetworkAccessManager *m_manager = nullptr;
bool m_isRunning = false; bool m_isRunning = false;
Ui::ExtQuotes *ui = nullptr;
void initProvider(); void initProvider();
void translate(void *_ui) override; void translate() override;
// properties // properties
QString m_ticker = "EURUSD=X"; QString m_ticker = "EURUSD=X";
// values // values

View File

@ -28,14 +28,17 @@
#include "awdebug.h" #include "awdebug.h"
ExtScript::ExtScript(QObject *_parent, const QString &_filePath) ExtScript::ExtScript(QWidget *_parent, const QString &_filePath)
: AbstractExtItem(_parent, _filePath) : AbstractExtItem(_parent, _filePath)
, ui(new Ui::ExtScript)
{ {
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
if (!_filePath.isEmpty()) if (!_filePath.isEmpty())
ExtScript::readConfiguration(); ExtScript::readConfiguration();
readJsonFilters(); readJsonFilters();
ui->setupUi(this);
ExtScript::translate();
m_values[tag("custom")] = ""; m_values[tag("custom")] = "";
@ -55,6 +58,7 @@ ExtScript::~ExtScript()
m_process->kill(); m_process->kill();
m_process->deleteLater(); m_process->deleteLater();
disconnect(this, SIGNAL(requestDataUpdate()), this, SLOT(startProcess())); disconnect(this, SIGNAL(requestDataUpdate()), this, SLOT(startProcess()));
delete ui;
} }
@ -62,7 +66,7 @@ ExtScript *ExtScript::copy(const QString &_fileName, const int _number)
{ {
qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number; qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number;
auto item = new ExtScript(parent(), _fileName); auto *item = new ExtScript(dynamic_cast<QWidget *>(parent()), _fileName);
copyDefaults(item); copyDefaults(item);
item->setExecutable(executable()); item->setExecutable(executable());
item->setNumber(_number); item->setNumber(_number);
@ -175,7 +179,7 @@ QString ExtScript::applyFilters(QString _value) const
for (auto &filt : filters()) { for (auto &filt : filters()) {
qCInfo(LOG_LIB) << "Found filter" << filt; qCInfo(LOG_LIB) << "Found filter" << filt;
auto filter = m_jsonFilters[filt].toMap(); QVariantMap filter = m_jsonFilters[filt].toMap();
if (filter.isEmpty()) { if (filter.isEmpty()) {
qCWarning(LOG_LIB) << "Could not find filter" << _value << "in the json"; qCWarning(LOG_LIB) << "Could not find filter" << _value << "in the json";
continue; continue;
@ -221,7 +225,7 @@ void ExtScript::readConfiguration()
void ExtScript::readJsonFilters() void ExtScript::readJsonFilters()
{ {
auto fileName = jsonFiltersFile(); QString fileName = jsonFiltersFile();
QFile jsonFile(fileName); QFile jsonFile(fileName);
if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) { if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
qCWarning(LOG_LIB) << "Could not open" << fileName; qCWarning(LOG_LIB) << "Could not open" << fileName;
@ -231,7 +235,7 @@ void ExtScript::readJsonFilters()
jsonFile.close(); jsonFile.close();
QJsonParseError error{}; QJsonParseError error{};
auto jsonDoc = QJsonDocument::fromJson(jsonText.toUtf8(), &error); QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonText.toUtf8(), &error);
if (error.error != QJsonParseError::NoError) { if (error.error != QJsonParseError::NoError) {
qCWarning(LOG_LIB) << "Parse error" << error.errorString(); qCWarning(LOG_LIB) << "Parse error" << error.errorString();
return; return;
@ -252,15 +256,10 @@ QVariantHash ExtScript::run()
} }
int ExtScript::showConfiguration(QWidget *_parent, const QVariant &_args) int ExtScript::showConfiguration(const QVariant &_args)
{ {
Q_UNUSED(_args) Q_UNUSED(_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::ExtScript();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name()); ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment()); ui->lineEdit_comment->setText(comment());
ui->label_numberValue->setText(QString("%1").arg(number())); ui->label_numberValue->setText(QString("%1").arg(number()));
@ -275,29 +274,25 @@ int ExtScript::showConfiguration(QWidget *_parent, const QVariant &_args)
ui->checkBox_linesFilter->setCheckState(filters().contains("newline") ? Qt::Checked : Qt::Unchecked); ui->checkBox_linesFilter->setCheckState(filters().contains("newline") ? Qt::Checked : Qt::Unchecked);
ui->checkBox_spaceFilter->setCheckState(filters().contains("space") ? Qt::Checked : Qt::Unchecked); ui->checkBox_spaceFilter->setCheckState(filters().contains("space") ? Qt::Checked : Qt::Unchecked);
int ret = dialog->exec(); int ret = exec();
if (ret == 1) { if (ret != 1)
setName(ui->lineEdit_name->text()); return ret;
setComment(ui->lineEdit_comment->text()); setName(ui->lineEdit_name->text());
setNumber(ui->label_numberValue->text().toInt()); setComment(ui->lineEdit_comment->text());
setApiVersion(AW_EXTSCRIPT_API); setNumber(ui->label_numberValue->text().toInt());
setExecutable(ui->lineEdit_command->text()); setApiVersion(AW_EXTSCRIPT_API);
setActive(ui->checkBox_active->checkState() == Qt::Checked); setExecutable(ui->lineEdit_command->text());
setRedirect(static_cast<Redirect>(ui->comboBox_redirect->currentIndex())); setActive(ui->checkBox_active->checkState() == Qt::Checked);
setCron(ui->lineEdit_schedule->text()); setRedirect(static_cast<Redirect>(ui->comboBox_redirect->currentIndex()));
setSocket(ui->lineEdit_socket->text()); setCron(ui->lineEdit_schedule->text());
setInterval(ui->spinBox_interval->value()); setSocket(ui->lineEdit_socket->text());
// filters setInterval(ui->spinBox_interval->value());
updateFilter("color", ui->checkBox_colorFilter->checkState() == Qt::Checked); // filters
updateFilter("newline", ui->checkBox_linesFilter->checkState() == Qt::Checked); updateFilter("color", ui->checkBox_colorFilter->checkState() == Qt::Checked);
updateFilter("space", ui->checkBox_spaceFilter->checkState() == Qt::Checked); updateFilter("newline", ui->checkBox_linesFilter->checkState() == Qt::Checked);
updateFilter("space", ui->checkBox_spaceFilter->checkState() == Qt::Checked);
writeConfiguration();
}
dialog->deleteLater();
delete ui;
writeConfiguration();
return ret; return ret;
} }
@ -329,9 +324,9 @@ void ExtScript::startProcess()
void ExtScript::updateValue() void ExtScript::updateValue()
{ {
qCInfo(LOG_LIB) << "Cmd returns" << m_process->exitCode(); qCInfo(LOG_LIB) << "Cmd returns" << m_process->exitCode();
auto qdebug = QString::fromUtf8(m_process->readAllStandardError()).trimmed(); QString qdebug = QString::fromUtf8(m_process->readAllStandardError()).trimmed();
qCInfo(LOG_LIB) << "Error" << qdebug; qCInfo(LOG_LIB) << "Error" << qdebug;
auto qoutput = QString::fromUtf8(m_process->readAllStandardOutput()).trimmed(); QString qoutput = QString::fromUtf8(m_process->readAllStandardOutput()).trimmed();
qCInfo(LOG_LIB) << "Output" << qoutput; qCInfo(LOG_LIB) << "Output" << qoutput;
QString strValue; QString strValue;
@ -355,10 +350,8 @@ void ExtScript::updateValue()
} }
void ExtScript::translate(void *_ui) void ExtScript::translate()
{ {
auto ui = reinterpret_cast<Ui::ExtScript *>(_ui);
ui->label_name->setText(i18n("Name")); ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment")); ui->label_comment->setText(i18n("Comment"));
ui->label_number->setText(i18n("Tag")); ui->label_number->setText(i18n("Tag"));

View File

@ -23,6 +23,11 @@
#include "abstractextitem.h" #include "abstractextitem.h"
namespace Ui
{
class ExtScript;
}
class ExtScript : public AbstractExtItem class ExtScript : public AbstractExtItem
{ {
Q_OBJECT Q_OBJECT
@ -33,7 +38,7 @@ class ExtScript : public AbstractExtItem
public: public:
enum class Redirect { stdout2stderr = 0, nothing = 1, stderr2stdout = 2, swap = 3 }; enum class Redirect { stdout2stderr = 0, nothing = 1, stderr2stdout = 2, swap = 3 };
explicit ExtScript(QObject *_parent = nullptr, const QString &_filePath = ""); explicit ExtScript(QWidget *_parent = nullptr, const QString &_filePath = "");
~ExtScript() override; ~ExtScript() override;
ExtScript *copy(const QString &_fileName, int _number) override; ExtScript *copy(const QString &_fileName, int _number) override;
static QString jsonFiltersFile(); static QString jsonFiltersFile();
@ -57,7 +62,7 @@ public slots:
void readConfiguration() override; void readConfiguration() override;
void readJsonFilters(); void readJsonFilters();
QVariantHash run() override; QVariantHash run() override;
int showConfiguration(QWidget *_parent, const QVariant &_args) override; int showConfiguration(const QVariant &_args) override;
void writeConfiguration() const override; void writeConfiguration() const override;
private slots: private slots:
@ -66,7 +71,8 @@ private slots:
private: private:
QProcess *m_process = nullptr; QProcess *m_process = nullptr;
void translate(void *_ui) override; Ui::ExtScript *ui = nullptr;
void translate() override;
// properties // properties
QString m_executable = "/usr/bin/true"; QString m_executable = "/usr/bin/true";
QStringList m_filters = QStringList(); QStringList m_filters = QStringList();

View File

@ -25,13 +25,16 @@
#include "awdebug.h" #include "awdebug.h"
ExtUpgrade::ExtUpgrade(QObject *_parent, const QString &_filePath) ExtUpgrade::ExtUpgrade(QWidget *_parent, const QString &_filePath)
: AbstractExtItem(_parent, _filePath) : AbstractExtItem(_parent, _filePath)
, ui(new Ui::ExtUpgrade)
{ {
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
if (!_filePath.isEmpty()) if (!_filePath.isEmpty())
ExtUpgrade::readConfiguration(); ExtUpgrade::readConfiguration();
ui->setupUi(this);
ExtUpgrade::translate();
m_values[tag("pkgcount")] = 0; m_values[tag("pkgcount")] = 0;
@ -50,6 +53,7 @@ ExtUpgrade::~ExtUpgrade()
m_process->kill(); m_process->kill();
m_process->deleteLater(); m_process->deleteLater();
disconnect(this, SIGNAL(requestDataUpdate()), this, SLOT(startProcess())); disconnect(this, SIGNAL(requestDataUpdate()), this, SLOT(startProcess()));
delete ui;
} }
@ -57,7 +61,7 @@ ExtUpgrade *ExtUpgrade::copy(const QString &_fileName, const int _number)
{ {
qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number; qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number;
auto item = new ExtUpgrade(parent(), _fileName); auto *item = new ExtUpgrade(dynamic_cast<QWidget *>(parent()), _fileName);
copyDefaults(item); copyDefaults(item);
item->setExecutable(executable()); item->setExecutable(executable());
item->setFilter(filter()); item->setFilter(filter());
@ -145,15 +149,10 @@ QVariantHash ExtUpgrade::run()
} }
int ExtUpgrade::showConfiguration(QWidget *_parent, const QVariant &_args) int ExtUpgrade::showConfiguration(const QVariant &_args)
{ {
Q_UNUSED(_args) Q_UNUSED(_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::ExtUpgrade();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name()); ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment()); ui->lineEdit_comment->setText(comment());
ui->label_numberValue->setText(QString("%1").arg(number())); ui->label_numberValue->setText(QString("%1").arg(number()));
@ -165,26 +164,22 @@ int ExtUpgrade::showConfiguration(QWidget *_parent, const QVariant &_args)
ui->lineEdit_socket->setText(socket()); ui->lineEdit_socket->setText(socket());
ui->spinBox_interval->setValue(interval()); ui->spinBox_interval->setValue(interval());
auto ret = dialog->exec(); int ret = exec();
if (ret == 1) { if (ret != 1)
setName(ui->lineEdit_name->text()); return ret;
setComment(ui->lineEdit_comment->text()); setName(ui->lineEdit_name->text());
setNumber(ui->label_numberValue->text().toInt()); setComment(ui->lineEdit_comment->text());
setApiVersion(AW_EXTUPGRADE_API); setNumber(ui->label_numberValue->text().toInt());
setExecutable(ui->lineEdit_command->text()); setApiVersion(AW_EXTUPGRADE_API);
setFilter(ui->lineEdit_filter->text()); setExecutable(ui->lineEdit_command->text());
setActive(ui->checkBox_active->checkState() == Qt::Checked); setFilter(ui->lineEdit_filter->text());
setNull(ui->spinBox_null->value()); setActive(ui->checkBox_active->checkState() == Qt::Checked);
setCron(ui->lineEdit_schedule->text()); setNull(ui->spinBox_null->value());
setSocket(ui->lineEdit_socket->text()); setCron(ui->lineEdit_schedule->text());
setInterval(ui->spinBox_interval->value()); setSocket(ui->lineEdit_socket->text());
setInterval(ui->spinBox_interval->value());
writeConfiguration();
}
dialog->deleteLater();
delete ui;
writeConfiguration();
return ret; return ret;
} }
@ -218,7 +213,7 @@ void ExtUpgrade::updateValue()
qCInfo(LOG_LIB) << "Cmd returns" << m_process->exitCode(); qCInfo(LOG_LIB) << "Cmd returns" << m_process->exitCode();
qCInfo(LOG_LIB) << "Error" << m_process->readAllStandardError(); qCInfo(LOG_LIB) << "Error" << m_process->readAllStandardError();
auto qoutput = QString::fromUtf8(m_process->readAllStandardOutput()).trimmed(); QString qoutput = QString::fromUtf8(m_process->readAllStandardOutput()).trimmed();
m_values[tag("pkgcount")] = [this](const QString &output) { m_values[tag("pkgcount")] = [this](const QString &output) {
return filter().isEmpty() ? output.split('\n', Qt::SkipEmptyParts).count() - null() return filter().isEmpty() ? output.split('\n', Qt::SkipEmptyParts).count() - null()
: output.split('\n', Qt::SkipEmptyParts).filter(QRegularExpression(filter())).count(); : output.split('\n', Qt::SkipEmptyParts).filter(QRegularExpression(filter())).count();
@ -228,10 +223,8 @@ void ExtUpgrade::updateValue()
} }
void ExtUpgrade::translate(void *_ui) void ExtUpgrade::translate()
{ {
auto ui = reinterpret_cast<Ui::ExtUpgrade *>(_ui);
ui->label_name->setText(i18n("Name")); ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment")); ui->label_comment->setText(i18n("Comment"));
ui->label_number->setText(i18n("Tag")); ui->label_number->setText(i18n("Tag"));

View File

@ -23,6 +23,11 @@
#include "abstractextitem.h" #include "abstractextitem.h"
namespace Ui
{
class ExtUpgrade;
}
class ExtUpgrade : public AbstractExtItem class ExtUpgrade : public AbstractExtItem
{ {
Q_OBJECT Q_OBJECT
@ -31,7 +36,7 @@ class ExtUpgrade : public AbstractExtItem
Q_PROPERTY(int null READ null WRITE setNull) Q_PROPERTY(int null READ null WRITE setNull)
public: public:
explicit ExtUpgrade(QObject *_parent = nullptr, const QString &_filePath = ""); explicit ExtUpgrade(QWidget *_parent = nullptr, const QString &_filePath = "");
~ExtUpgrade() override; ~ExtUpgrade() override;
ExtUpgrade *copy(const QString &_fileName, int _number) override; ExtUpgrade *copy(const QString &_fileName, int _number) override;
// get methods // get methods
@ -47,7 +52,7 @@ public:
public slots: public slots:
void readConfiguration() override; void readConfiguration() override;
QVariantHash run() override; QVariantHash run() override;
int showConfiguration(QWidget *_parent, const QVariant &_args) override; int showConfiguration(const QVariant &_args) override;
void writeConfiguration() const override; void writeConfiguration() const override;
private slots: private slots:
@ -56,7 +61,8 @@ private slots:
private: private:
QProcess *m_process = nullptr; QProcess *m_process = nullptr;
void translate(void *_ui) override; Ui::ExtUpgrade *ui = nullptr;
void translate() override;
// properties // properties
QString m_executable = "/usr/bin/true"; QString m_executable = "/usr/bin/true";
QString m_filter = ""; QString m_filter = "";

View File

@ -29,16 +29,20 @@
#include "awdebug.h" #include "awdebug.h"
#include "owmweatherprovider.h" #include "owmweatherprovider.h"
#include "yahooweatherprovider.h"
ExtWeather::ExtWeather(QObject *_parent, const QString &_filePath) ExtWeather::ExtWeather(QWidget *_parent, const QString &_filePath)
: AbstractExtItem(_parent, _filePath) : AbstractExtItem(_parent, _filePath)
, ui(new Ui::ExtWeather)
{ {
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
if (!_filePath.isEmpty()) if (!_filePath.isEmpty())
ExtWeather::readConfiguration(); ExtWeather::readConfiguration();
readJsonMap(); readJsonMap();
ui->setupUi(this);
ExtWeather::translate();
m_values[tag("weatherId")] = 0; m_values[tag("weatherId")] = 0;
m_values[tag("weather")] = ""; m_values[tag("weather")] = "";
@ -63,6 +67,7 @@ ExtWeather::~ExtWeather()
disconnect(this, SIGNAL(requestDataUpdate()), this, SLOT(sendRequest())); disconnect(this, SIGNAL(requestDataUpdate()), this, SLOT(sendRequest()));
m_manager->deleteLater(); m_manager->deleteLater();
delete ui;
} }
@ -70,7 +75,7 @@ ExtWeather *ExtWeather::copy(const QString &_fileName, const int _number)
{ {
qCDebug(LOG_LIB) << "File" << _fileName << "number" << _number; qCDebug(LOG_LIB) << "File" << _fileName << "number" << _number;
auto item = new ExtWeather(parent(), _fileName); auto *item = new ExtWeather(dynamic_cast<QWidget *>(parent()), _fileName);
copyDefaults(item); copyDefaults(item);
item->setCity(city()); item->setCity(city());
item->setCountry(country()); item->setCountry(country());
@ -97,7 +102,7 @@ QString ExtWeather::weatherFromInt(const int _id) const
{ {
qCDebug(LOG_LIB) << "Weather ID" << _id; qCDebug(LOG_LIB) << "Weather ID" << _id;
auto map = m_jsonMap[m_image ? "image" : "text"].toMap(); QVariantMap map = m_jsonMap[m_image ? "image" : "text"].toMap();
return map.value(QString::number(_id), map["default"]).toString(); return map.value(QString::number(_id), map["default"]).toString();
} }
@ -231,7 +236,7 @@ void ExtWeather::readConfiguration()
void ExtWeather::readJsonMap() void ExtWeather::readJsonMap()
{ {
auto fileName = jsonMapFile(); QString fileName = jsonMapFile();
QFile jsonFile(fileName); QFile jsonFile(fileName);
if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) { if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
qCWarning(LOG_LIB) << "Could not open" << fileName; qCWarning(LOG_LIB) << "Could not open" << fileName;
@ -241,7 +246,7 @@ void ExtWeather::readJsonMap()
jsonFile.close(); jsonFile.close();
QJsonParseError error{}; QJsonParseError error{};
auto jsonDoc = QJsonDocument::fromJson(jsonText.toUtf8(), &error); QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonText.toUtf8(), &error);
if (error.error != QJsonParseError::NoError) { if (error.error != QJsonParseError::NoError) {
qCWarning(LOG_LIB) << "Parse error" << error.errorString(); qCWarning(LOG_LIB) << "Parse error" << error.errorString();
return; return;
@ -262,15 +267,10 @@ QVariantHash ExtWeather::run()
} }
int ExtWeather::showConfiguration(QWidget *_parent, const QVariant &_args) int ExtWeather::showConfiguration(const QVariant &_args)
{ {
Q_UNUSED(_args) Q_UNUSED(_args)
auto dialog = new QDialog(_parent);
auto ui = new Ui::ExtWeather();
ui->setupUi(dialog);
translate(ui);
ui->lineEdit_name->setText(name()); ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment()); ui->lineEdit_comment->setText(comment());
ui->label_numberValue->setText(QString("%1").arg(number())); ui->label_numberValue->setText(QString("%1").arg(number()));
@ -284,28 +284,24 @@ int ExtWeather::showConfiguration(QWidget *_parent, const QVariant &_args)
ui->lineEdit_socket->setText(socket()); ui->lineEdit_socket->setText(socket());
ui->spinBox_interval->setValue(interval()); ui->spinBox_interval->setValue(interval());
int ret = dialog->exec(); int ret = exec();
if (ret == 1) { if (ret != 1)
setName(ui->lineEdit_name->text()); return ret;
setComment(ui->lineEdit_comment->text()); setName(ui->lineEdit_name->text());
setNumber(ui->label_numberValue->text().toInt()); setComment(ui->lineEdit_comment->text());
setApiVersion(AW_EXTWEATHER_API); setNumber(ui->label_numberValue->text().toInt());
setCity(ui->lineEdit_city->text()); setApiVersion(AW_EXTWEATHER_API);
setCountry(ui->lineEdit_country->text()); setCity(ui->lineEdit_city->text());
setProvider(static_cast<Provider>(ui->comboBox_provider->currentIndex())); setCountry(ui->lineEdit_country->text());
setTs(ui->spinBox_timestamp->value()); setProvider(static_cast<Provider>(ui->comboBox_provider->currentIndex()));
setImage(ui->checkBox_image->checkState() == Qt::Checked); setTs(ui->spinBox_timestamp->value());
setActive(ui->checkBox_active->checkState() == Qt::Checked); setImage(ui->checkBox_image->checkState() == Qt::Checked);
setCron(ui->lineEdit_schedule->text()); setActive(ui->checkBox_active->checkState() == Qt::Checked);
setSocket(ui->lineEdit_socket->text()); setCron(ui->lineEdit_schedule->text());
setInterval(ui->spinBox_interval->value()); setSocket(ui->lineEdit_socket->text());
setInterval(ui->spinBox_interval->value());
writeConfiguration();
}
dialog->deleteLater();
delete ui;
writeConfiguration();
return ret; return ret;
} }
@ -332,7 +328,7 @@ void ExtWeather::writeConfiguration() const
void ExtWeather::sendRequest() void ExtWeather::sendRequest()
{ {
m_isRunning = true; m_isRunning = true;
auto reply = m_manager->get(QNetworkRequest(m_providerObject->url())); QNetworkReply *reply = m_manager->get(QNetworkRequest(m_providerObject->url()));
new QReplyTimeout(reply, REQUEST_TIMEOUT); new QReplyTimeout(reply, REQUEST_TIMEOUT);
} }
@ -346,14 +342,14 @@ void ExtWeather::weatherReplyReceived(QNetworkReply *_reply)
m_isRunning = false; m_isRunning = false;
QJsonParseError error{}; QJsonParseError error{};
auto jsonDoc = QJsonDocument::fromJson(_reply->readAll(), &error); QJsonDocument jsonDoc = QJsonDocument::fromJson(_reply->readAll(), &error);
_reply->deleteLater(); _reply->deleteLater();
if (error.error != QJsonParseError::NoError) { if (error.error != QJsonParseError::NoError) {
qCWarning(LOG_LIB) << "Parse error" << error.errorString(); qCWarning(LOG_LIB) << "Parse error" << error.errorString();
return; return;
} }
auto data = m_providerObject->parse(jsonDoc.toVariant().toMap()); QVariantHash data = m_providerObject->parse(jsonDoc.toVariant().toMap());
if (data.isEmpty()) if (data.isEmpty())
return; return;
m_values = data; m_values = data;
@ -374,10 +370,8 @@ void ExtWeather::initProvider()
} }
void ExtWeather::translate(void *_ui) void ExtWeather::translate()
{ {
auto ui = reinterpret_cast<Ui::ExtWeather *>(_ui);
ui->label_name->setText(i18n("Name")); ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment")); ui->label_comment->setText(i18n("Comment"));
ui->label_number->setText(i18n("Tag")); ui->label_number->setText(i18n("Tag"));

View File

@ -42,7 +42,7 @@ class ExtWeather : public AbstractExtItem
public: public:
enum class Provider { OWM = 0, Yahoo = 1 }; enum class Provider { OWM = 0, Yahoo = 1 };
explicit ExtWeather(QObject *_parent = nullptr, const QString &_filePath = ""); explicit ExtWeather(QWidget *_parent = nullptr, const QString &_filePath = "");
~ExtWeather() override; ~ExtWeather() override;
ExtWeather *copy(const QString &_fileName, int _number) override; ExtWeather *copy(const QString &_fileName, int _number) override;
static QString jsonMapFile(); static QString jsonMapFile();
@ -67,7 +67,7 @@ public slots:
void readConfiguration() override; void readConfiguration() override;
void readJsonMap(); void readJsonMap();
QVariantHash run() override; QVariantHash run() override;
int showConfiguration(QWidget *_parent, const QVariant &_args) override; int showConfiguration(const QVariant &_args) override;
void writeConfiguration() const override; void writeConfiguration() const override;
private slots: private slots:
@ -78,8 +78,9 @@ private:
AbstractWeatherProvider *m_providerObject = nullptr; AbstractWeatherProvider *m_providerObject = nullptr;
QNetworkAccessManager *m_manager = nullptr; QNetworkAccessManager *m_manager = nullptr;
bool m_isRunning = false; bool m_isRunning = false;
Ui::ExtWeather *ui = nullptr;
void initProvider(); void initProvider();
void translate(void *_ui) override; void translate() override;
// properties // properties
QString m_city = "London"; QString m_city = "London";
QString m_country = "uk"; QString m_country = "uk";

View File

@ -32,8 +32,9 @@
#include "graphicalitemhelper.h" #include "graphicalitemhelper.h"
GraphicalItem::GraphicalItem(QObject *_parent, const QString &_filePath) GraphicalItem::GraphicalItem(QWidget *_parent, const QString &_filePath)
: AbstractExtItem(_parent, _filePath) : AbstractExtItem(_parent, _filePath)
, ui(new Ui::GraphicalItem)
{ {
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
@ -52,6 +53,21 @@ GraphicalItem::GraphicalItem(QObject *_parent, const QString &_filePath)
if (!_filePath.isEmpty()) if (!_filePath.isEmpty())
GraphicalItem::readConfiguration(); GraphicalItem::readConfiguration();
ui->setupUi(this);
GraphicalItem::translate();
connect(ui->checkBox_custom, SIGNAL(stateChanged(int)), this, SLOT(changeValue(int)));
connect(ui->comboBox_type, SIGNAL(currentIndexChanged(int)), this, SLOT(changeCountState(int)));
connect(ui->toolButton_activeColor, SIGNAL(clicked()), this, SLOT(changeColor()));
connect(ui->toolButton_inactiveColor, SIGNAL(clicked()), this, SLOT(changeColor()));
}
GraphicalItem::~GraphicalItem()
{
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
delete ui;
} }
@ -59,7 +75,7 @@ GraphicalItem *GraphicalItem::copy(const QString &_fileName, const int _number)
{ {
qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number; qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number;
auto item = new GraphicalItem(parent(), _fileName); auto *item = new GraphicalItem(dynamic_cast<QWidget *>(parent()), _fileName);
copyDefaults(item); copyDefaults(item);
item->setActiveColor(activeColor()); item->setActiveColor(activeColor());
item->setBar(bar()); item->setBar(bar());
@ -84,7 +100,7 @@ QString GraphicalItem::image(const QVariant &value)
m_scene->clear(); m_scene->clear();
int scale[2] = {1, 1}; int scale[2] = {1, 1};
auto converted = GraphicalItemHelper::getPercents(value.toFloat(), minValue(), maxValue()); float converted = GraphicalItemHelper::getPercents(value.toFloat(), minValue(), maxValue());
// paint // paint
switch (m_type) { switch (m_type) {
@ -116,11 +132,11 @@ QString GraphicalItem::image(const QVariant &value)
} }
// convert // convert
auto pixmap = m_view->grab().transformed(QTransform().scale(scale[0], scale[1])); QPixmap pixmap = m_view->grab().transformed(QTransform().scale(scale[0], scale[1]));
QByteArray byteArray; QByteArray byteArray;
QBuffer buffer(&byteArray); QBuffer buffer(&byteArray);
pixmap.save(&buffer, "PNG"); pixmap.save(&buffer, "PNG");
auto url = QString("<img src=\"data:image/png;base64,%1\"/>").arg(QString(byteArray.toBase64())); QString url = QString("<img src=\"data:image/png;base64,%1\"/>").arg(QString(byteArray.toBase64()));
return url; return url;
} }
@ -422,20 +438,10 @@ void GraphicalItem::readConfiguration()
} }
int GraphicalItem::showConfiguration(QWidget *_parent, const QVariant &_args) int GraphicalItem::showConfiguration(const QVariant &_args)
{ {
qCDebug(LOG_LIB) << "Combobox arguments" << _args; qCDebug(LOG_LIB) << "Combobox arguments" << _args;
auto tags = _args.toStringList(); QStringList tags = _args.toStringList();
auto dialog = new QDialog(_parent);
auto ui = new Ui::GraphicalItem();
ui->setupUi(dialog);
translate(ui);
connect(ui->checkBox_custom, &QCheckBox::stateChanged, [this, ui](const int state) { changeValue(ui, state); });
connect(ui->comboBox_type, &QComboBox::currentIndexChanged, [this, ui](const int state) { changeCountState(ui, state); });
connect(ui->toolButton_activeColor, &QToolButton::clicked, [this, ui]() { changeColor(ui); });
connect(ui->toolButton_inactiveColor, &QToolButton::clicked, [this, ui]() { changeColor(ui); });
ui->lineEdit_name->setText(name()); ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment()); ui->lineEdit_comment->setText(comment());
@ -470,29 +476,25 @@ int GraphicalItem::showConfiguration(QWidget *_parent, const QVariant &_args)
emit(ui->comboBox_type->currentIndexChanged(ui->comboBox_type->currentIndex())); emit(ui->comboBox_type->currentIndexChanged(ui->comboBox_type->currentIndex()));
emit(ui->checkBox_custom->stateChanged(ui->checkBox_custom->checkState())); emit(ui->checkBox_custom->stateChanged(ui->checkBox_custom->checkState()));
int ret = dialog->exec(); int ret = exec();
if (ret == 1) { if (ret != 1)
setName(ui->lineEdit_name->text()); return ret;
setComment(ui->lineEdit_comment->text()); setName(ui->lineEdit_name->text());
setApiVersion(AW_GRAPHITEM_API); setComment(ui->lineEdit_comment->text());
setCount(ui->spinBox_count->value()); setApiVersion(AW_GRAPHITEM_API);
setCustom(ui->checkBox_custom->isChecked()); setCount(ui->spinBox_count->value());
setBar(m_custom ? ui->lineEdit_customValue->text() : ui->comboBox_value->currentText()); setCustom(ui->checkBox_custom->isChecked());
setMaxValue(static_cast<float>(ui->doubleSpinBox_max->value())); setBar(m_custom ? ui->lineEdit_customValue->text() : ui->comboBox_value->currentText());
setMinValue(static_cast<float>(ui->doubleSpinBox_min->value())); setMaxValue(static_cast<float>(ui->doubleSpinBox_max->value()));
setActiveColor(ui->lineEdit_activeColor->text()); setMinValue(static_cast<float>(ui->doubleSpinBox_min->value()));
setInactiveColor(ui->lineEdit_inactiveColor->text()); setActiveColor(ui->lineEdit_activeColor->text());
setType(static_cast<Type>(ui->comboBox_type->currentIndex())); setInactiveColor(ui->lineEdit_inactiveColor->text());
setDirection(static_cast<Direction>(ui->comboBox_direction->currentIndex())); setType(static_cast<Type>(ui->comboBox_type->currentIndex()));
setItemHeight(ui->spinBox_height->value()); setDirection(static_cast<Direction>(ui->comboBox_direction->currentIndex()));
setItemWidth(ui->spinBox_width->value()); setItemHeight(ui->spinBox_height->value());
setItemWidth(ui->spinBox_width->value());
writeConfiguration();
}
dialog->deleteLater();
delete ui;
writeConfiguration();
return ret; return ret;
} }
@ -522,23 +524,23 @@ void GraphicalItem::writeConfiguration() const
} }
void GraphicalItem::changeColor(Ui::GraphicalItem *_ui) void GraphicalItem::changeColor()
{ {
QLineEdit *lineEdit; QLineEdit *lineEdit;
int state; int state;
if (sender() == _ui->toolButton_activeColor) { if (sender() == ui->toolButton_activeColor) {
lineEdit = _ui->lineEdit_activeColor; lineEdit = ui->lineEdit_activeColor;
state = _ui->comboBox_activeImageType->currentIndex(); state = ui->comboBox_activeImageType->currentIndex();
} else { } else {
lineEdit = _ui->lineEdit_inactiveColor; lineEdit = ui->lineEdit_inactiveColor;
state = _ui->comboBox_inactiveImageType->currentIndex(); state = ui->comboBox_inactiveImageType->currentIndex();
} }
qCInfo(LOG_LIB) << "Using state" << state << "and lineEdit" << lineEdit; qCInfo(LOG_LIB) << "Using state" << state << "and lineEdit" << lineEdit;
QString outputColor; QString outputColor;
if (state == 0) { if (state == 0) {
auto color = GraphicalItemHelper::stringToColor(lineEdit->text()); QColor color = GraphicalItemHelper::stringToColor(lineEdit->text());
auto newColor = QColorDialog::getColor(color, nullptr, i18n("Select color"), QColorDialog::ShowAlphaChannel); QColor newColor = QColorDialog::getColor(color, this, i18n("Select color"), QColorDialog::ShowAlphaChannel);
if (!newColor.isValid()) if (!newColor.isValid())
return; return;
qCInfo(LOG_LIB) << "Selected color" << newColor; qCInfo(LOG_LIB) << "Selected color" << newColor;
@ -551,9 +553,9 @@ void GraphicalItem::changeColor(Ui::GraphicalItem *_ui)
outputColor = QString("color://%1").arg(colorText.join(',')); outputColor = QString("color://%1").arg(colorText.join(','));
} else if (state == 1) { } else if (state == 1) {
auto path = lineEdit->text(); QString path = lineEdit->text();
auto directory = QFileInfo(path).absolutePath(); QString directory = QFileInfo(path).absolutePath();
outputColor = QFileDialog::getOpenFileUrl(nullptr, i18n("Select path"), directory, outputColor = QFileDialog::getOpenFileUrl(this, i18n("Select path"), directory,
i18n("Images (*.png *.bpm *.jpg);;All files (*.*)")) i18n("Images (*.png *.bpm *.jpg);;All files (*.*)"))
.toString(); .toString();
@ -568,28 +570,26 @@ void GraphicalItem::changeColor(Ui::GraphicalItem *_ui)
} }
void GraphicalItem::changeCountState(Ui::GraphicalItem *_ui, const int _state) void GraphicalItem::changeCountState(const int _state)
{ {
qCDebug(LOG_LIB) << "Current state is" << _state; qCDebug(LOG_LIB) << "Current state is" << _state;
// 3 is magic number. Actually 3 is Graph mode // 3 is magic number. Actually 3 is Graph mode
_ui->widget_count->setHidden(_state != 3); ui->widget_count->setHidden(_state != 3);
} }
void GraphicalItem::changeValue(Ui::GraphicalItem *_ui, const int _state) void GraphicalItem::changeValue(const int _state)
{ {
qCDebug(LOG_LIB) << "Current state is" << _state; qCDebug(LOG_LIB) << "Current state is" << _state;
_ui->widget_value->setHidden(_state != Qt::Unchecked); ui->widget_value->setHidden(_state != Qt::Unchecked);
_ui->widget_customValue->setHidden(_state == Qt::Unchecked); ui->widget_customValue->setHidden(_state == Qt::Unchecked);
} }
void GraphicalItem::translate(void *_ui) void GraphicalItem::translate()
{ {
auto ui = reinterpret_cast<Ui::GraphicalItem *>(_ui);
ui->label_name->setText(i18n("Name")); ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment")); ui->label_comment->setText(i18n("Comment"));
ui->label_number->setText(i18n("Tag")); ui->label_number->setText(i18n("Tag"));

View File

@ -52,7 +52,8 @@ public:
enum class Direction { LeftToRight = 0, RightToLeft = 1 }; enum class Direction { LeftToRight = 0, RightToLeft = 1 };
enum class Type { Horizontal = 0, Vertical = 1, Circle = 2, Graph = 3, Bars = 4 }; enum class Type { Horizontal = 0, Vertical = 1, Circle = 2, Graph = 3, Bars = 4 };
explicit GraphicalItem(QObject *_parent = nullptr, const QString &_filePath = ""); explicit GraphicalItem(QWidget *_parent = nullptr, const QString &_filePath = "");
~GraphicalItem() override;
GraphicalItem *copy(const QString &_fileName, int _number) override; GraphicalItem *copy(const QString &_fileName, int _number) override;
QString image(const QVariant &value); QString image(const QVariant &value);
void initScene(); void initScene();
@ -91,19 +92,20 @@ public:
public slots: public slots:
void readConfiguration() override; void readConfiguration() override;
QVariantHash run() override { return {}; }; QVariantHash run() override { return {}; };
int showConfiguration(QWidget *_parent, const QVariant &_args) override; int showConfiguration(const QVariant &_args) override;
void writeConfiguration() const override; void writeConfiguration() const override;
private slots: private slots:
void changeColor(Ui::GraphicalItem *_ui); void changeColor();
void changeCountState(Ui::GraphicalItem *_ui, int _state); void changeCountState(int _state);
void changeValue(Ui::GraphicalItem *_ui, int _state); void changeValue(int _state);
private: private:
GraphicalItemHelper *m_helper = nullptr; GraphicalItemHelper *m_helper = nullptr;
QGraphicsScene *m_scene = nullptr; QGraphicsScene *m_scene = nullptr;
QGraphicsView *m_view = nullptr; QGraphicsView *m_view = nullptr;
void translate(void *_ui) override; Ui::GraphicalItem *ui = nullptr;
void translate() override;
// properties // properties
QString m_bar = "cpu"; QString m_bar = "cpu";
int m_count = 100; int m_count = 100;