Skip to content

Commit

Permalink
Invalid path for receipts #946 fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
Fanda Vacek committed Aug 27, 2023
1 parent 04fd707 commit 9de2bed
Show file tree
Hide file tree
Showing 9 changed files with 25 additions and 20 deletions.
1 change: 0 additions & 1 deletion libqf/libqfqmlwidgets/src/framework/application.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ using namespace qf::qmlwidgets::framework;
Application::Application(int &argc, char **argv) :
Super(argc, argv)
{
m_pluginDataDir = ":/quickevent";
}

Application::~Application()
Expand Down
2 changes: 0 additions & 2 deletions libqf/libqfqmlwidgets/src/framework/application.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ class QFQMLWIDGETS_DECL_EXPORT Application : public QApplication
~Application() Q_DECL_OVERRIDE;
public:
static Application* instance(bool must_exist = true);
QString pluginDataDir() {return m_pluginDataDir;}
MainWindow* frameWork();

void loadStyleSheet(const QString &file = QString());
Expand All @@ -37,7 +36,6 @@ public slots:
protected:
QJsonDocument profile();
protected:
QString m_pluginDataDir;
QJsonDocument m_profile;
bool m_profileLoaded = false;
MainWindow* m_frameWork = nullptr;
Expand Down
18 changes: 12 additions & 6 deletions libqf/libqfqmlwidgets/src/framework/plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include <QTranslator>
#include <QFile>
#include <QDirIterator>
#include <QCoreApplication>

using namespace qf::qmlwidgets::framework;

Expand All @@ -24,19 +25,26 @@ Plugin::Plugin(QObject *parent)
: QObject(parent)
{
qfLogFuncFrame();
if(m_reportsDir.isEmpty())
m_reportsDir = QCoreApplication::applicationDirPath() + "/reports";
}

Plugin::~Plugin()
{
qfLogFuncFrame() << this;
}

QString Plugin::pluginDataDir()
{
static QString dir = ":/quickevent";
return dir;
}

QString Plugin::findReportFile(const QString &report_file_path) const
{
QStringList search_paths;
if(!m_reportsDir.isEmpty())
search_paths << m_reportsDir + '/' + m_featureId + "/qml/reports";
search_paths << qmlReportsDir();
search_paths << reportsDir() + '/' + m_featureId + "/qml/reports";
//search_paths << qmlReportsDir();
for(const QString &dir : search_paths) {
auto fn = dir + '/' + report_file_path;
//qfInfo() << "dir:" << dir << "try:" << fn;
Expand All @@ -54,9 +62,7 @@ QList<Plugin::ReportFileInfo> Plugin::listReportFiles(const QString &report_dir)
{
QList<ReportFileInfo> report_files;
QStringList search_paths;
if(!m_reportsDir.isEmpty())
search_paths << m_reportsDir + '/' + m_featureId + "/qml/reports";
search_paths << qmlReportsDir();
search_paths << reportsDir() + '/' + m_featureId + "/qml/reports";
for(const QString &dir : search_paths) {
QDirIterator it(dir + '/' + report_dir, QDirIterator::NoIteratorFlags);
while (it.hasNext()) {
Expand Down
8 changes: 5 additions & 3 deletions libqf/libqfqmlwidgets/src/framework/plugin.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
#define QF_QMLWIDGETS_FRAMEWORK_PLUGIN_H

#include "../qmlwidgetsglobal.h"
#include "application.h"

#include <qf/core/utils.h>

Expand All @@ -22,12 +21,14 @@ class QFQMLWIDGETS_DECL_EXPORT Plugin : public QObject
explicit Plugin(QObject *parent = nullptr);
~Plugin() Q_DECL_OVERRIDE;

static QString pluginDataDir();

static void setReportsDir(const QString &dir) { m_reportsDir = dir; }
static QString reportsDir() { return m_reportsDir; }

QString homeDir() const { return qf::qmlwidgets::framework::Application::instance()->pluginDataDir() + '/' + featureId(); }
QString homeDir() const { return pluginDataDir() + '/' + featureId(); }
QString qmlDir() const { return homeDir() + "/qml"; }
QString qmlReportsDir() const { return qmlDir() + "/reports"; }
//QString qmlReportsDir() const { return qmlDir() + "/reports"; }
QString featureId() const { return m_featureId; }
//QString settingsDir() const { return "plugin/" + featureId(); }
QString findReportFile(const QString &report_file_path) const;
Expand All @@ -45,6 +46,7 @@ class QFQMLWIDGETS_DECL_EXPORT Plugin : public QObject
Q_SIGNAL void installed();
private:
QString m_featureId;
static QString m_pluginDataDir;
static QString m_reportsDir;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include <qf/core/log.h>
#include <qf/qmlwidgets/framework/plugin.h>
#include <qf/qmlwidgets/framework/mainwindow.h>
#include <qf/qmlwidgets/framework/plugin.h>

#include <QDirIterator>
#include <QFileDialog>
Expand Down Expand Up @@ -71,7 +72,7 @@ QString ReportsSettingsPage::reportsDirectory() const
ReportsSettings settings;
auto dir = settings.reportsDirectory();
if(dir.isEmpty())
dir = QCoreApplication::applicationDirPath() + "/reports";
dir = qf::qmlwidgets::framework::Plugin::reportsDir();
return dir;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
#include "ui_settingsdialog.h"

#include "settingspage.h"
#include "reportssettingspage.h"

#include <qf/core/log.h>
#include <qf/qmlwidgets/framework/mainwindow.h>
Expand All @@ -13,7 +12,6 @@
#include <QLabel>
#include <QPushButton>
#include <QTimer>
//#include <QDebug>

namespace Core {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include <qf/core/utils/htmlutils.h>
#include <qf/core/sql/query.h>

#include <QCoreApplication>
#include <QDir>
#include <QFile>
#include <QHttpPart>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,6 @@ ReceiptsSettingsPage::ReceiptsSettingsPage(QWidget *parent)
ui->cbxWhenRunnerNotFound->setCurrentIndex(0);

connect(ui->btPrinterOptions, &QAbstractButton::clicked, this, &ReceiptsSettingsPage::onPrinterOptionsClicked);

loadReceptList();

QTimer::singleShot(0, this, &ReceiptsSettingsPage::load);
}

ReceiptsSettingsPage::~ReceiptsSettingsPage()
Expand All @@ -36,6 +32,7 @@ ReceiptsSettingsPage::~ReceiptsSettingsPage()

void ReceiptsSettingsPage::load()
{
loadReceptList();
ReceiptsSettings settings;
ui->chkAutoPrint->setChecked(settings.isAutoPrint());
ui->chkThisReaderOnly->setChecked(settings.isThisReaderOnly());
Expand Down Expand Up @@ -81,6 +78,7 @@ void ReceiptsSettingsPage::save()

void ReceiptsSettingsPage::loadReceptList()
{
qfLogFuncFrame();
ui->cbxReceipt->clear();
auto *receipts_plugin = qf::qmlwidgets::framework::getPlugin<ReceiptsPlugin>();
for(const auto &i : receipts_plugin->listReportFiles("receipts")) {
Expand Down
4 changes: 3 additions & 1 deletion quickevent/app/quickevent/plugins/Runs/src/runswidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,9 @@ static bool list_length_greater_than(const QList<int> &lst1, const QList<int> &l

static void shuffle(QList<int> &lst)
{
std::random_shuffle(lst.begin(), lst.end());
std::random_device rd;
std::mt19937 g(rd());
std::shuffle(lst.begin(), lst.end(), g);
}

QList< QList<int> > RunsWidget::runnersByClubSortedByCount(int stage_id, int class_id, QMap<int, QString> &runner_id_to_club)
Expand Down

0 comments on commit 9de2bed

Please sign in to comment.