Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions libqf/libqfcore/src/core/utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include <QSet>
#include <QDate>
#include <QRegularExpression>
#include <QJsonDocument>

namespace qf::core {

Expand Down Expand Up @@ -266,4 +267,22 @@ QStringList Utils::parseProgramAndArgumentsList(const QString &command_line)
return args;
}

QVariant Utils::jsonToQVariant(const QString &json)
{
QJsonParseError error;
auto doc = QJsonDocument::fromJson(json.toUtf8(), &error);
if (error.error != QJsonParseError::NoError) {
qfError() << json << "Json parse error:" << error.errorString();
return {};
}
return doc.toVariant();
}

QString Utils::qvariantToJson(const QVariant &v, bool compact)
{
auto doc = QJsonDocument::fromVariant(v);
auto ba = doc.toJson(compact? QJsonDocument::Compact: QJsonDocument::Indented);
return QString::fromUtf8(ba);
}

}
3 changes: 3 additions & 0 deletions libqf/libqfcore/src/core/utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,9 @@ class QFCORE_DECL_EXPORT Utils
}

static QStringList parseProgramAndArgumentsList(const QString &command_line);

static QVariant jsonToQVariant(const QString &json);
static QString qvariantToJson(const QVariant &v, bool compact = true);
};

}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ GanttItem::GanttItem(QGraphicsItem *parent)

int GanttItem::startSlotItemIndex(const StartSlotItem *it) const
{
return m_startSlotItems.indexOf((StartSlotItem *)it);
return m_startSlotItems.indexOf(it);
}

StartSlotItem *GanttItem::startSlotItemAt(int ix, bool throw_ex)
Expand Down Expand Up @@ -65,7 +65,7 @@ void GanttItem::load(int stage_id)
qfLogFuncFrame();
Event::StageData stage_data = getPlugin<EventPlugin>()->stageData(stage_id);
DrawingConfig dc(stage_data.drawingConfig());
QVariantList stsllst = dc.startSlots();
QVariantList start_slot_list = dc.startSlots();

qfs::Query q(qfs::Connection::forName());
qf::core::sql::QueryBuilder qb1;
Expand Down Expand Up @@ -104,7 +104,7 @@ void GanttItem::load(int stage_id)
if(slot_ix > curr_slot_ix) {
slot_item = addStartSlotItem();
curr_slot_ix = slot_ix;
StartSlotData sd(stsllst.value(slot_ix).toMap());
StartSlotData sd(start_slot_list.value(slot_ix).toMap());
slot_item->setData(sd);
}
}
Expand All @@ -114,8 +114,13 @@ void GanttItem::load(int stage_id)
slot_item = addStartSlotItem();
}
}
auto *class_it = slot_item->addClassItem();
class_it->setData(cd);
if (slot_item) {
auto *class_it = slot_item->addClassItem();
class_it->setData(cd);
}
else {
QF_EXCEPTION("internal error");
}
}
updateGeometry();
checkClassClash();
Expand All @@ -134,8 +139,7 @@ void GanttItem::save(int stage_id)
start_slots << sd;
}
dc.setStartSlots(start_slots);
QJsonDocument jsd = QJsonDocument::fromVariant(dc);
QString dc_str = QString::fromUtf8(jsd.toJson(QJsonDocument::Compact));
auto dc_str = qf::core::Utils::qvariantToJson(dc);

QString qs = "UPDATE stages SET drawingConfig=:drawingConfig WHERE id=:id";
qfs::Query q(qfs::Connection::forName());
Expand Down
9 changes: 8 additions & 1 deletion quickevent/app/quickevent/plugins/Event/src/eventplugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,14 @@ StageData EventPlugin::stageData(int stage_id)
doc.load(stage_id);
StageData data;
for (const auto &[k, v] : doc.values().asKeyValueRange()) {
data[k.toLower()] = v;
auto key = k.toLower();
if (key == "drawingconfig" && v.userType() == qMetaTypeId<QString>()) {
// convert json to variantmap
data[key] = qf::core::Utils::jsonToQVariant(v.toString());
}
else {
data[key] = v;
}
}
m_stageCache[stage_id] = StageData(data);
}
Expand Down
2 changes: 0 additions & 2 deletions quickevent/app/quickevent/plugins/Event/src/stage.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@ class StageData : public QVariantMap
private:
typedef QVariantMap Super;

// QF_VARIANTMAP_KEY_FIELD(int, id, i, setI, d)
QF_VARIANTMAP_KEY_FIELD(bool, useallmaps, is, set, UseAllMaps)
//QF_VARIANTMAP_KEY_FIELD(QDateTime, startdatetime, s, setS, tartDateTime)
QF_VARIANTMAP_KEY_FIELD(QVariantMap, drawingconfig, d, setD, rawingConfig)
QF_VARIANTMAP_KEY_FIELD(QString, qxapitoken, qx, setQx, ApiToken)
public:
Expand Down
5 changes: 0 additions & 5 deletions quickevent/app/quickevent/src/application.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,3 @@ Application *Application::instance(bool must_exist)
return ret;
}

QString Application::versionString() const
{
return QCoreApplication::applicationVersion();
}

2 changes: 0 additions & 2 deletions quickevent/app/quickevent/src/application.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ class Application : public qf::qmlwidgets::framework::Application

AppCliOptions* cliOptions() {return m_cliOptions;}

Q_INVOKABLE QString versionString() const;

Q_SIGNAL void newLogEntry(const qf::core::LogEntryMap &le);
void emitNewLogEntry(const qf::core::LogEntryMap &le) { emit newLogEntry(le); }
private:
Expand Down
2 changes: 1 addition & 1 deletion quickevent/app/quickevent/src/appversion.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#pragma once

#define APP_VERSION "3.4.2"
#define APP_VERSION "3.4.3"