Run clang-format
This commit is contained in:
parent
892d6a7fff
commit
1dc80b96d1
11 changed files with 378 additions and 356 deletions
|
@ -15,23 +15,25 @@
|
|||
#include <QPushButton>
|
||||
#include <QScrollArea>
|
||||
|
||||
ArtConfigWindow::ArtConfigWindow(const QString& filename, QWidget* parent) : QDialog(parent) {
|
||||
setWindowModality(Qt::WindowModality::WindowModal);
|
||||
setWindowTitle(filename);
|
||||
ArtConfigWindow::ArtConfigWindow(const QString &filename, QWidget *parent)
|
||||
: QDialog(parent)
|
||||
{
|
||||
setWindowModality(Qt::WindowModality::WindowModal);
|
||||
setWindowTitle(filename);
|
||||
|
||||
auto mainLayout = new QHBoxLayout();
|
||||
setLayout(mainLayout);
|
||||
auto mainLayout = new QHBoxLayout();
|
||||
setLayout(mainLayout);
|
||||
|
||||
auto formLayout = new QFormLayout();
|
||||
auto formLayoutWidget = new QWidget();
|
||||
formLayoutWidget->setMaximumWidth(450);
|
||||
formLayoutWidget->setLayout(formLayout);
|
||||
mainLayout->addWidget(formLayoutWidget);
|
||||
auto formLayout = new QFormLayout();
|
||||
auto formLayoutWidget = new QWidget();
|
||||
formLayoutWidget->setMaximumWidth(450);
|
||||
formLayoutWidget->setLayout(formLayout);
|
||||
mainLayout->addWidget(formLayoutWidget);
|
||||
|
||||
auto galleryScrollArea = new QScrollArea();
|
||||
formLayout->addWidget(galleryScrollArea);
|
||||
auto galleryScrollArea = new QScrollArea();
|
||||
formLayout->addWidget(galleryScrollArea);
|
||||
|
||||
m_newBannerEdit = new QLineEdit();
|
||||
m_newBannerEdit = new QLineEdit();
|
||||
formLayout->addRow(i18nc("@label:textbox", "New Banner"), m_newBannerEdit);
|
||||
|
||||
m_commissionsOpen = new QCheckBox();
|
||||
|
@ -51,35 +53,36 @@ ArtConfigWindow::ArtConfigWindow(const QString& filename, QWidget* parent) : QDi
|
|||
});
|
||||
bottomButtonLayout->addWidget(saveButton);
|
||||
|
||||
if(QFile::exists(filename)) {
|
||||
loadData(filename);
|
||||
}
|
||||
if (QFile::exists(filename)) {
|
||||
loadData(filename);
|
||||
}
|
||||
}
|
||||
|
||||
void ArtConfigWindow::loadData(const QString& filename) {
|
||||
qDebug() << "Loading data from" << filename;
|
||||
void ArtConfigWindow::loadData(const QString &filename)
|
||||
{
|
||||
qDebug() << "Loading data from" << filename;
|
||||
|
||||
QFile artFile(filename);
|
||||
artFile.open(QFile::ReadOnly);
|
||||
QJsonDocument artJson = QJsonDocument::fromJson(artFile.readAll());
|
||||
QFile artFile(filename);
|
||||
artFile.open(QFile::ReadOnly);
|
||||
QJsonDocument artJson = QJsonDocument::fromJson(artFile.readAll());
|
||||
|
||||
m_newBannerEdit->setText(artJson[QStringLiteral("new-banner")].toString());
|
||||
m_commissionsOpen->setChecked(artJson[QStringLiteral("commissions")].toBool());
|
||||
m_newBannerEdit->setText(artJson[QStringLiteral("new-banner")].toString());
|
||||
m_commissionsOpen->setChecked(artJson[QStringLiteral("commissions")].toBool());
|
||||
}
|
||||
|
||||
void ArtConfigWindow::saveData(const QString& filename) {
|
||||
qDebug() << "Saving data to" << filename;
|
||||
void ArtConfigWindow::saveData(const QString &filename)
|
||||
{
|
||||
qDebug() << "Saving data to" << filename;
|
||||
|
||||
QJsonObject object;
|
||||
object[QStringLiteral("new-banner")] = m_newBannerEdit->text();
|
||||
object[QStringLiteral("commissions")] = m_commissionsOpen->isChecked();
|
||||
QJsonObject object;
|
||||
object[QStringLiteral("new-banner")] = m_newBannerEdit->text();
|
||||
object[QStringLiteral("commissions")] = m_commissionsOpen->isChecked();
|
||||
|
||||
QJsonDocument jsonDoc(object);
|
||||
QFile file(filename);
|
||||
file.open(QFile::WriteOnly);
|
||||
file.write(jsonDoc.toJson());
|
||||
file.close();
|
||||
QJsonDocument jsonDoc(object);
|
||||
QFile file(filename);
|
||||
file.open(QFile::WriteOnly);
|
||||
file.write(jsonDoc.toJson());
|
||||
file.close();
|
||||
|
||||
close();
|
||||
close();
|
||||
}
|
||||
|
||||
|
|
|
@ -6,22 +6,23 @@
|
|||
|
||||
#include <QCheckBox>
|
||||
#include <QDateEdit>
|
||||
#include <QDialog>
|
||||
#include <QJsonObject>
|
||||
#include <QLineEdit>
|
||||
#include <QListWidget>
|
||||
#include <QStringListModel>
|
||||
#include <QTextEdit>
|
||||
#include <QDialog>
|
||||
|
||||
class ArtConfigWindow : public QDialog {
|
||||
Q_OBJECT
|
||||
class ArtConfigWindow : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ArtConfigWindow(const QString& filename, QWidget* parent = nullptr);
|
||||
explicit ArtConfigWindow(const QString &filename, QWidget *parent = nullptr);
|
||||
|
||||
private:
|
||||
void loadData(const QString& filename);
|
||||
void saveData(const QString& filename);
|
||||
void loadData(const QString &filename);
|
||||
void saveData(const QString &filename);
|
||||
|
||||
QLineEdit* m_newBannerEdit = nullptr;
|
||||
QCheckBox* m_commissionsOpen = nullptr;
|
||||
QLineEdit *m_newBannerEdit = nullptr;
|
||||
QCheckBox *m_commissionsOpen = nullptr;
|
||||
};
|
|
@ -22,23 +22,23 @@ ArtDetailWindow::ArtDetailWindow(const QString &filename, const QDir &assetDirec
|
|||
: QDialog(parent)
|
||||
{
|
||||
setMinimumWidth(800);
|
||||
setMinimumHeight(600);
|
||||
setWindowModality(Qt::WindowModality::WindowModal);
|
||||
setWindowTitle(filename);
|
||||
setMinimumHeight(600);
|
||||
setWindowModality(Qt::WindowModality::WindowModal);
|
||||
setWindowTitle(filename);
|
||||
|
||||
QFileInfo info(filename);
|
||||
QString withoutExtension = info.completeBaseName();
|
||||
QFileInfo info(filename);
|
||||
QString withoutExtension = info.completeBaseName();
|
||||
|
||||
auto mainLayout = new QHBoxLayout();
|
||||
setLayout(mainLayout);
|
||||
auto mainLayout = new QHBoxLayout();
|
||||
setLayout(mainLayout);
|
||||
|
||||
auto formLayout = new QFormLayout();
|
||||
auto formLayoutWidget = new QWidget();
|
||||
formLayoutWidget->setMaximumWidth(450);
|
||||
formLayoutWidget->setLayout(formLayout);
|
||||
mainLayout->addWidget(formLayoutWidget);
|
||||
auto formLayout = new QFormLayout();
|
||||
auto formLayoutWidget = new QWidget();
|
||||
formLayoutWidget->setMaximumWidth(450);
|
||||
formLayoutWidget->setLayout(formLayout);
|
||||
mainLayout->addWidget(formLayoutWidget);
|
||||
|
||||
QImage image;
|
||||
QImage image;
|
||||
image.load(assetDirectory.absoluteFilePath(QStringLiteral("%1.webp").arg(withoutExtension)));
|
||||
|
||||
auto previewBox = new QGroupBox(i18nc("@title:group", "Preview"));
|
||||
|
@ -47,20 +47,20 @@ ArtDetailWindow::ArtDetailWindow(const QString &filename, const QDir &assetDirec
|
|||
auto previewLayout = new QVBoxLayout();
|
||||
previewBox->setLayout(previewLayout);
|
||||
|
||||
auto imageView = new ImageLabel();
|
||||
imageView->setPixmap(QPixmap::fromImage(image));
|
||||
previewLayout->addWidget(imageView);
|
||||
auto imageView = new ImageLabel();
|
||||
imageView->setPixmap(QPixmap::fromImage(image));
|
||||
previewLayout->addWidget(imageView);
|
||||
|
||||
m_titleEdit = new QLineEdit();
|
||||
m_titleEdit = new QLineEdit();
|
||||
formLayout->addRow(i18nc("@label:textbox", "Title"), m_titleEdit);
|
||||
|
||||
m_knowExactDateBox = new QCheckBox();
|
||||
connect(m_knowExactDateBox, &QCheckBox::toggled, this, [this](bool checked) {
|
||||
if (checked) {
|
||||
m_dateEdit->setDisplayFormat(QStringLiteral("yyyy-MM-dd"));
|
||||
} else {
|
||||
m_dateEdit->setDisplayFormat(QStringLiteral("yyyy"));
|
||||
}
|
||||
m_dateEdit->setDisplayFormat(QStringLiteral("yyyy-MM-dd"));
|
||||
} else {
|
||||
m_dateEdit->setDisplayFormat(QStringLiteral("yyyy"));
|
||||
}
|
||||
});
|
||||
formLayout->addRow(i18nc("@option:check", "Know Exact Date?"), m_knowExactDateBox);
|
||||
|
||||
|
@ -68,15 +68,15 @@ ArtDetailWindow::ArtDetailWindow(const QString &filename, const QDir &assetDirec
|
|||
m_dateEdit->setCalendarPopup(true);
|
||||
formLayout->addRow(QStringLiteral("Date"), m_dateEdit);
|
||||
|
||||
m_altTextEdit = new QTextEdit();
|
||||
m_altTextEdit->setAcceptRichText(false);
|
||||
formLayout->addRow(QStringLiteral("Alt Text"), m_altTextEdit);
|
||||
m_altTextEdit = new QTextEdit();
|
||||
m_altTextEdit->setAcceptRichText(false);
|
||||
formLayout->addRow(QStringLiteral("Alt Text"), m_altTextEdit);
|
||||
|
||||
m_descriptionEdit = new QTextEdit();
|
||||
m_descriptionEdit->setAcceptRichText(false);
|
||||
formLayout->addRow(QStringLiteral("Description"), m_descriptionEdit);
|
||||
m_descriptionEdit = new QTextEdit();
|
||||
m_descriptionEdit->setAcceptRichText(false);
|
||||
formLayout->addRow(QStringLiteral("Description"), m_descriptionEdit);
|
||||
|
||||
m_nsfwBox = new QCheckBox();
|
||||
m_nsfwBox = new QCheckBox();
|
||||
formLayout->addRow(i18nc("@option:check", "Is NSFW?"), m_nsfwBox);
|
||||
|
||||
m_mastodonUrlEdit = new QLineEdit();
|
||||
|
@ -97,17 +97,17 @@ ArtDetailWindow::ArtDetailWindow(const QString &filename, const QDir &assetDirec
|
|||
auto characterList = new QListView();
|
||||
m_characterListModel = new QStringListModel();
|
||||
characterList->setModel(m_characterListModel);
|
||||
charactersLayout->addWidget(characterList);
|
||||
charactersLayout->addWidget(characterList);
|
||||
|
||||
auto characterButtonLayout = new QHBoxLayout();
|
||||
charactersLayout->addLayout(characterButtonLayout);
|
||||
auto characterButtonLayout = new QHBoxLayout();
|
||||
charactersLayout->addLayout(characterButtonLayout);
|
||||
|
||||
auto addCharacterButton = new QPushButton(QIcon::fromTheme(QStringLiteral("list-add")), i18nc("@action:button", "Add"));
|
||||
connect(addCharacterButton, &QPushButton::clicked, this, [this] {
|
||||
auto tmp = m_characterListModel->stringList();
|
||||
;
|
||||
tmp.push_back(QStringLiteral("New Character"));
|
||||
m_characterListModel->setStringList(tmp);
|
||||
m_characterListModel->setStringList(tmp);
|
||||
});
|
||||
characterButtonLayout->addWidget(addCharacterButton);
|
||||
characterButtonLayout->addStretch(1);
|
||||
|
@ -117,9 +117,9 @@ ArtDetailWindow::ArtDetailWindow(const QString &filename, const QDir &assetDirec
|
|||
if (characterList->selectionModel()->hasSelection()) {
|
||||
const QString toRemove = characterList->selectionModel()->selectedRows()[0].data().toString();
|
||||
|
||||
auto tmp = m_characterListModel->stringList();
|
||||
tmp.removeOne(toRemove);
|
||||
m_characterListModel->setStringList(tmp);
|
||||
auto tmp = m_characterListModel->stringList();
|
||||
tmp.removeOne(toRemove);
|
||||
m_characterListModel->setStringList(tmp);
|
||||
}
|
||||
});
|
||||
characterButtonLayout->addWidget(removeCharacterButton);
|
||||
|
@ -130,17 +130,17 @@ ArtDetailWindow::ArtDetailWindow(const QString &filename, const QDir &assetDirec
|
|||
auto tagsList = new QListView();
|
||||
m_tagsListModel = new QStringListModel();
|
||||
tagsList->setModel(m_tagsListModel);
|
||||
tagLayout->addWidget(tagsList);
|
||||
tagLayout->addWidget(tagsList);
|
||||
|
||||
auto tagButtonLayout = new QHBoxLayout();
|
||||
tagLayout->addLayout(tagButtonLayout);
|
||||
auto tagButtonLayout = new QHBoxLayout();
|
||||
tagLayout->addLayout(tagButtonLayout);
|
||||
|
||||
auto addTagButton = new QPushButton(QIcon::fromTheme(QStringLiteral("list-add")), i18nc("@action:button", "Add"));
|
||||
connect(addTagButton, &QPushButton::clicked, this, [this] {
|
||||
auto tmp = m_tagsListModel->stringList();
|
||||
;
|
||||
tmp.push_back(QStringLiteral("New Tag"));
|
||||
m_tagsListModel->setStringList(tmp);
|
||||
m_tagsListModel->setStringList(tmp);
|
||||
});
|
||||
tagButtonLayout->addWidget(addTagButton);
|
||||
tagButtonLayout->addStretch(1);
|
||||
|
@ -150,15 +150,15 @@ ArtDetailWindow::ArtDetailWindow(const QString &filename, const QDir &assetDirec
|
|||
if (tagsList->selectionModel()->hasSelection()) {
|
||||
const QString toRemove = tagsList->selectionModel()->selectedRows()[0].data().toString();
|
||||
|
||||
auto tmp = m_tagsListModel->stringList();
|
||||
tmp.removeOne(toRemove);
|
||||
m_tagsListModel->setStringList(tmp);
|
||||
auto tmp = m_tagsListModel->stringList();
|
||||
tmp.removeOne(toRemove);
|
||||
m_tagsListModel->setStringList(tmp);
|
||||
}
|
||||
});
|
||||
tagButtonLayout->addWidget(removeTagButton);
|
||||
|
||||
auto bottomButtonLayout = new QHBoxLayout();
|
||||
formLayout->addRow(bottomButtonLayout);
|
||||
formLayout->addRow(bottomButtonLayout);
|
||||
|
||||
auto cancelButton = new QPushButton(QIcon::fromTheme(QStringLiteral("dialog-close")), i18nc("@action:button", "Cancel"));
|
||||
connect(cancelButton, &QPushButton::clicked, this, &ArtDetailWindow::close);
|
||||
|
@ -171,120 +171,121 @@ ArtDetailWindow::ArtDetailWindow(const QString &filename, const QDir &assetDirec
|
|||
});
|
||||
bottomButtonLayout->addWidget(saveButton);
|
||||
|
||||
if(QFile::exists(filename)) {
|
||||
loadData(filename);
|
||||
}
|
||||
if (QFile::exists(filename)) {
|
||||
loadData(filename);
|
||||
}
|
||||
}
|
||||
|
||||
void ArtDetailWindow::loadData(const QString& filename) {
|
||||
qDebug() << "Loading data from" << filename;
|
||||
void ArtDetailWindow::loadData(const QString &filename)
|
||||
{
|
||||
qDebug() << "Loading data from" << filename;
|
||||
|
||||
QFile artFile(filename);
|
||||
artFile.open(QFile::ReadOnly);
|
||||
QJsonDocument artJson = QJsonDocument::fromJson(artFile.readAll());
|
||||
QFile artFile(filename);
|
||||
artFile.open(QFile::ReadOnly);
|
||||
QJsonDocument artJson = QJsonDocument::fromJson(artFile.readAll());
|
||||
|
||||
if(artJson.object().contains(QStringLiteral("title")))
|
||||
m_titleEdit->setText(artJson[QStringLiteral("title")].toString());
|
||||
if (artJson.object().contains(QStringLiteral("title")))
|
||||
m_titleEdit->setText(artJson[QStringLiteral("title")].toString());
|
||||
|
||||
if(artJson.object().contains(QStringLiteral("alt_text")))
|
||||
m_altTextEdit->setText(artJson[QStringLiteral("alt_text")].toString());
|
||||
if (artJson.object().contains(QStringLiteral("alt_text")))
|
||||
m_altTextEdit->setText(artJson[QStringLiteral("alt_text")].toString());
|
||||
|
||||
if(artJson.object().contains(QStringLiteral("description")))
|
||||
m_descriptionEdit->setText(artJson[QStringLiteral("description")].toString());
|
||||
if (artJson.object().contains(QStringLiteral("description")))
|
||||
m_descriptionEdit->setText(artJson[QStringLiteral("description")].toString());
|
||||
|
||||
m_knowExactDateBox->setChecked(artJson[QStringLiteral("date")].toString().contains(QStringLiteral("-")));
|
||||
if(m_knowExactDateBox->isChecked()) {
|
||||
m_dateEdit->setDate(QDate::fromString(artJson[QStringLiteral("date")].toString(), QStringLiteral("yyyy-MM-dd")));
|
||||
m_dateEdit->setDisplayFormat(QStringLiteral("yyyy-MM-dd"));
|
||||
} else {
|
||||
m_dateEdit->setDate(QDate::fromString(artJson[QStringLiteral("date")].toString(), QStringLiteral("yyyy")));
|
||||
m_dateEdit->setDisplayFormat(QStringLiteral("yyyy"));
|
||||
}
|
||||
m_knowExactDateBox->setChecked(artJson[QStringLiteral("date")].toString().contains(QStringLiteral("-")));
|
||||
if (m_knowExactDateBox->isChecked()) {
|
||||
m_dateEdit->setDate(QDate::fromString(artJson[QStringLiteral("date")].toString(), QStringLiteral("yyyy-MM-dd")));
|
||||
m_dateEdit->setDisplayFormat(QStringLiteral("yyyy-MM-dd"));
|
||||
} else {
|
||||
m_dateEdit->setDate(QDate::fromString(artJson[QStringLiteral("date")].toString(), QStringLiteral("yyyy")));
|
||||
m_dateEdit->setDisplayFormat(QStringLiteral("yyyy"));
|
||||
}
|
||||
|
||||
if(artJson.object().contains(QStringLiteral("nsfw")))
|
||||
m_nsfwBox->setChecked(artJson[QStringLiteral("nsfw")].toBool());
|
||||
if (artJson.object().contains(QStringLiteral("nsfw")))
|
||||
m_nsfwBox->setChecked(artJson[QStringLiteral("nsfw")].toBool());
|
||||
|
||||
if(artJson.object().contains(QStringLiteral("mastodon_url")))
|
||||
m_mastodonUrlEdit->setText(artJson[QStringLiteral("mastodon_url")].toString());
|
||||
if (artJson.object().contains(QStringLiteral("mastodon_url")))
|
||||
m_mastodonUrlEdit->setText(artJson[QStringLiteral("mastodon_url")].toString());
|
||||
|
||||
if(artJson.object().contains(QStringLiteral("pixiv_url")))
|
||||
m_pixivUrlEdit->setText(artJson[QStringLiteral("pixiv_url")].toString());
|
||||
if (artJson.object().contains(QStringLiteral("pixiv_url")))
|
||||
m_pixivUrlEdit->setText(artJson[QStringLiteral("pixiv_url")].toString());
|
||||
|
||||
if(artJson.object().contains(QStringLiteral("newgrounds_url")))
|
||||
m_newgroundsUrlEdit->setText(artJson[QStringLiteral("newgrounds_url")].toString());
|
||||
if (artJson.object().contains(QStringLiteral("newgrounds_url")))
|
||||
m_newgroundsUrlEdit->setText(artJson[QStringLiteral("newgrounds_url")].toString());
|
||||
|
||||
if(artJson.object().contains(QStringLiteral("program")))
|
||||
m_programEdit->setText(artJson[QStringLiteral("program")].toString());
|
||||
if (artJson.object().contains(QStringLiteral("program")))
|
||||
m_programEdit->setText(artJson[QStringLiteral("program")].toString());
|
||||
|
||||
if(artJson.object().contains(QStringLiteral("characters"))) {
|
||||
QStringList list;
|
||||
for(auto character : artJson[QStringLiteral("characters")].toArray()) {
|
||||
list.append(character.toString());
|
||||
}
|
||||
if (artJson.object().contains(QStringLiteral("characters"))) {
|
||||
QStringList list;
|
||||
for (auto character : artJson[QStringLiteral("characters")].toArray()) {
|
||||
list.append(character.toString());
|
||||
}
|
||||
|
||||
m_characterListModel->setStringList(list);
|
||||
}
|
||||
m_characterListModel->setStringList(list);
|
||||
}
|
||||
|
||||
if(artJson.object().contains(QStringLiteral("tags"))) {
|
||||
QStringList list;
|
||||
for(auto tag : artJson[QStringLiteral("tags")].toArray()) {
|
||||
list.append(tag.toString());
|
||||
}
|
||||
if (artJson.object().contains(QStringLiteral("tags"))) {
|
||||
QStringList list;
|
||||
for (auto tag : artJson[QStringLiteral("tags")].toArray()) {
|
||||
list.append(tag.toString());
|
||||
}
|
||||
|
||||
m_tagsListModel->setStringList(list);
|
||||
}
|
||||
m_tagsListModel->setStringList(list);
|
||||
}
|
||||
}
|
||||
|
||||
void ArtDetailWindow::saveData(const QString& filename) {
|
||||
qDebug() << "Saving data to" << filename;
|
||||
void ArtDetailWindow::saveData(const QString &filename)
|
||||
{
|
||||
qDebug() << "Saving data to" << filename;
|
||||
|
||||
QJsonObject object;
|
||||
if(!m_titleEdit->text().isEmpty())
|
||||
object[QStringLiteral("title")] = m_titleEdit->text();
|
||||
QJsonObject object;
|
||||
if (!m_titleEdit->text().isEmpty())
|
||||
object[QStringLiteral("title")] = m_titleEdit->text();
|
||||
|
||||
if(!m_altTextEdit->document()->isEmpty())
|
||||
object[QStringLiteral("alt_text")] = m_altTextEdit->document()->toPlainText();
|
||||
if (!m_altTextEdit->document()->isEmpty())
|
||||
object[QStringLiteral("alt_text")] = m_altTextEdit->document()->toPlainText();
|
||||
|
||||
if(!m_descriptionEdit->document()->isEmpty())
|
||||
object[QStringLiteral("description")] = m_descriptionEdit->document()->toPlainText();
|
||||
if (!m_descriptionEdit->document()->isEmpty())
|
||||
object[QStringLiteral("description")] = m_descriptionEdit->document()->toPlainText();
|
||||
|
||||
if(m_knowExactDateBox->isChecked()) {
|
||||
object[QStringLiteral("date")] = m_dateEdit->date().toString(QStringLiteral("yyyy-MM-dd"));
|
||||
} else {
|
||||
object[QStringLiteral("date")] = m_dateEdit->date().toString(QStringLiteral("yyyy"));
|
||||
}
|
||||
if (m_knowExactDateBox->isChecked()) {
|
||||
object[QStringLiteral("date")] = m_dateEdit->date().toString(QStringLiteral("yyyy-MM-dd"));
|
||||
} else {
|
||||
object[QStringLiteral("date")] = m_dateEdit->date().toString(QStringLiteral("yyyy"));
|
||||
}
|
||||
|
||||
if(m_nsfwBox->isChecked())
|
||||
object[QStringLiteral("nsfw")] = m_nsfwBox->isChecked();
|
||||
if (m_nsfwBox->isChecked())
|
||||
object[QStringLiteral("nsfw")] = m_nsfwBox->isChecked();
|
||||
|
||||
if(!m_mastodonUrlEdit->text().isEmpty())
|
||||
object[QStringLiteral("mastodon_url")] = m_mastodonUrlEdit->text();
|
||||
if (!m_mastodonUrlEdit->text().isEmpty())
|
||||
object[QStringLiteral("mastodon_url")] = m_mastodonUrlEdit->text();
|
||||
|
||||
if(!m_pixivUrlEdit->text().isEmpty())
|
||||
object[QStringLiteral("pixiv_url")] = m_pixivUrlEdit->text();
|
||||
if (!m_pixivUrlEdit->text().isEmpty())
|
||||
object[QStringLiteral("pixiv_url")] = m_pixivUrlEdit->text();
|
||||
|
||||
if(!m_newgroundsUrlEdit->text().isEmpty())
|
||||
object[QStringLiteral("newgrounds_url")] = m_newgroundsUrlEdit->text();
|
||||
if (!m_newgroundsUrlEdit->text().isEmpty())
|
||||
object[QStringLiteral("newgrounds_url")] = m_newgroundsUrlEdit->text();
|
||||
|
||||
if(!m_programEdit->text().isEmpty())
|
||||
object[QStringLiteral("program")] = m_programEdit->text();
|
||||
if (!m_programEdit->text().isEmpty())
|
||||
object[QStringLiteral("program")] = m_programEdit->text();
|
||||
|
||||
auto tags = m_tagsListModel->stringList();
|
||||
if(!tags.isEmpty()) {
|
||||
object[QStringLiteral("tags")] = QJsonArray::fromStringList(tags);
|
||||
}
|
||||
auto tags = m_tagsListModel->stringList();
|
||||
if (!tags.isEmpty()) {
|
||||
object[QStringLiteral("tags")] = QJsonArray::fromStringList(tags);
|
||||
}
|
||||
|
||||
auto characters = m_characterListModel->stringList();
|
||||
if(!characters.isEmpty()) {
|
||||
object[QStringLiteral("characters")] = QJsonArray::fromStringList(characters);
|
||||
}
|
||||
auto characters = m_characterListModel->stringList();
|
||||
if (!characters.isEmpty()) {
|
||||
object[QStringLiteral("characters")] = QJsonArray::fromStringList(characters);
|
||||
}
|
||||
|
||||
QJsonDocument jsonDoc(object);
|
||||
QFile file(filename);
|
||||
file.open(QFile::WriteOnly);
|
||||
file.write(jsonDoc.toJson());
|
||||
file.close();
|
||||
QJsonDocument jsonDoc(object);
|
||||
QFile file(filename);
|
||||
file.open(QFile::WriteOnly);
|
||||
file.write(jsonDoc.toJson());
|
||||
file.close();
|
||||
|
||||
close();
|
||||
close();
|
||||
}
|
||||
|
||||
|
|
|
@ -14,27 +14,28 @@
|
|||
#include <QStringListModel>
|
||||
#include <QTextEdit>
|
||||
|
||||
class ArtDetailWindow : public QDialog {
|
||||
Q_OBJECT
|
||||
class ArtDetailWindow : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
ArtDetailWindow(const QString &filename, const QDir &assetDirectory, QWidget *parent = nullptr);
|
||||
|
||||
private:
|
||||
void loadData(const QString& filename);
|
||||
void loadData(const QString &filename);
|
||||
|
||||
void saveData(const QString& filename);
|
||||
void saveData(const QString &filename);
|
||||
|
||||
QLineEdit *m_titleEdit;
|
||||
QTextEdit *m_altTextEdit;
|
||||
QTextEdit *m_descriptionEdit;
|
||||
QCheckBox *m_knowExactDateBox;
|
||||
QDateEdit *m_dateEdit;
|
||||
QLineEdit *m_newgroundsUrlEdit;
|
||||
QLineEdit *m_pixivUrlEdit;
|
||||
QLineEdit *m_mastodonUrlEdit;
|
||||
QLineEdit *m_programEdit;
|
||||
QCheckBox* m_nsfwBox;
|
||||
QLineEdit *m_titleEdit;
|
||||
QTextEdit *m_altTextEdit;
|
||||
QTextEdit *m_descriptionEdit;
|
||||
QCheckBox *m_knowExactDateBox;
|
||||
QDateEdit *m_dateEdit;
|
||||
QLineEdit *m_newgroundsUrlEdit;
|
||||
QLineEdit *m_pixivUrlEdit;
|
||||
QLineEdit *m_mastodonUrlEdit;
|
||||
QLineEdit *m_programEdit;
|
||||
QCheckBox *m_nsfwBox;
|
||||
|
||||
QStringListModel* m_characterListModel;
|
||||
QStringListModel* m_tagsListModel;
|
||||
QStringListModel *m_characterListModel;
|
||||
QStringListModel *m_tagsListModel;
|
||||
};
|
211
src/ArtModel.cpp
211
src/ArtModel.cpp
|
@ -18,137 +18,142 @@ ArtModel::ArtModel(const QDir &definitionDirectory, const QDir &assetDirectory)
|
|||
: QAbstractTableModel()
|
||||
{
|
||||
piecesFuture = new QFutureWatcher<ArtPiece>(this);
|
||||
connect(piecesFuture, &QFutureWatcher<ArtPiece>::resultReadyAt, this, &ArtModel::pieceFinished);
|
||||
connect(piecesFuture, &QFutureWatcher<ArtPiece>::finished, this, &ArtModel::finished);
|
||||
connect(piecesFuture, &QFutureWatcher<ArtPiece>::resultReadyAt, this, &ArtModel::pieceFinished);
|
||||
connect(piecesFuture, &QFutureWatcher<ArtPiece>::finished, this, &ArtModel::finished);
|
||||
|
||||
struct PieceInformation {
|
||||
QString definition;
|
||||
QString asset;
|
||||
};
|
||||
QVector<PieceInformation> pieceList;
|
||||
QDirIterator it(definitionDirectory);
|
||||
while (it.hasNext()) {
|
||||
QFileInfo info(it.next());
|
||||
if(!info.isFile()) {
|
||||
continue;
|
||||
}
|
||||
struct PieceInformation {
|
||||
QString definition;
|
||||
QString asset;
|
||||
};
|
||||
QVector<PieceInformation> pieceList;
|
||||
QDirIterator it(definitionDirectory);
|
||||
while (it.hasNext()) {
|
||||
QFileInfo info(it.next());
|
||||
if (!info.isFile()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
pieceList.push_back(PieceInformation{definitionDirectory.absoluteFilePath(info.baseName()), assetDirectory.absoluteFilePath(info.baseName())});
|
||||
|
||||
beginInsertRows(QModelIndex(), m_artPieces.size(), m_artPieces.size() + 1);
|
||||
|
||||
m_artPieces.push_back(ArtPiece{});
|
||||
m_artPieces.push_back(ArtPiece{});
|
||||
|
||||
endInsertRows();
|
||||
}
|
||||
endInsertRows();
|
||||
}
|
||||
|
||||
std::function<ArtPiece(const PieceInformation& info)> loadPiece = [this](const PieceInformation& info) -> ArtPiece {
|
||||
ArtPiece p;
|
||||
loadData(p, info.definition, info.asset);
|
||||
std::function<ArtPiece(const PieceInformation &info)> loadPiece = [this](const PieceInformation &info) -> ArtPiece {
|
||||
ArtPiece p;
|
||||
loadData(p, info.definition, info.asset);
|
||||
|
||||
p.image.load(p.filename);
|
||||
p.thumbnail = QPixmap::fromImage(p.image).scaled(100, 100, Qt::AspectRatioMode::KeepAspectRatio).toImage();
|
||||
p.image.load(p.filename);
|
||||
p.thumbnail = QPixmap::fromImage(p.image).scaled(100, 100, Qt::AspectRatioMode::KeepAspectRatio).toImage();
|
||||
|
||||
return p;
|
||||
};
|
||||
return p;
|
||||
};
|
||||
|
||||
piecesFuture->setFuture(QtConcurrent::mapped(pieceList, loadPiece));
|
||||
piecesFuture->setFuture(QtConcurrent::mapped(pieceList, loadPiece));
|
||||
}
|
||||
|
||||
int ArtModel::rowCount(const QModelIndex &parent) const {
|
||||
int ArtModel::rowCount(const QModelIndex &parent) const
|
||||
{
|
||||
Q_UNUSED(parent);
|
||||
return m_artPieces.size();
|
||||
}
|
||||
|
||||
int ArtModel::columnCount(const QModelIndex &parent) const {
|
||||
int ArtModel::columnCount(const QModelIndex &parent) const
|
||||
{
|
||||
Q_UNUSED(parent);
|
||||
return 4;
|
||||
}
|
||||
|
||||
QVariant ArtModel::data(const QModelIndex &index, int role) const {
|
||||
if (!index.isValid())
|
||||
return {};
|
||||
QVariant ArtModel::data(const QModelIndex &index, int role) const
|
||||
{
|
||||
if (!index.isValid())
|
||||
return {};
|
||||
|
||||
if (role == Qt::DisplayRole) {
|
||||
switch(index.column()) {
|
||||
case 0:
|
||||
return m_artPieces[index.row()].filename;
|
||||
case 1:
|
||||
return {};
|
||||
case 2:
|
||||
return m_artPieces[index.row()].title;
|
||||
case 3:
|
||||
return m_artPieces[index.row()].hasAltText;
|
||||
}
|
||||
} else if (role == Qt::UserRole) {
|
||||
return m_artPieces[index.row()].object;
|
||||
} else if (role == Qt::DecorationRole) {
|
||||
switch(index.column()) {
|
||||
case 1:
|
||||
return m_artPieces[index.row()].thumbnail;
|
||||
case 3:
|
||||
return m_artPieces[index.row()].hasAltText ? QIcon::fromTheme(QStringLiteral("emblem-checked")) : QIcon::fromTheme(QStringLiteral("emblem-error"));
|
||||
}
|
||||
} else if (role == Qt::UserRole + 1) {
|
||||
return m_artPieces[index.row()].jsonFilename;
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
QVariant ArtModel::headerData(int section, Qt::Orientation orientation, int role) const {
|
||||
if (orientation == Qt::Orientation::Horizontal && role == Qt::DisplayRole) {
|
||||
switch(section) {
|
||||
case 0:
|
||||
return i18nc("@title:column", "Filename");
|
||||
case 1:
|
||||
return i18nc("@title:column", "Image");
|
||||
case 2:
|
||||
return i18nc("@title:column", "Title");
|
||||
case 3:
|
||||
return i18nc("@title:column", "Has Alt Text");
|
||||
default:
|
||||
Q_UNREACHABLE();
|
||||
if (role == Qt::DisplayRole) {
|
||||
switch (index.column()) {
|
||||
case 0:
|
||||
return m_artPieces[index.row()].filename;
|
||||
case 1:
|
||||
return {};
|
||||
case 2:
|
||||
return m_artPieces[index.row()].title;
|
||||
case 3:
|
||||
return m_artPieces[index.row()].hasAltText;
|
||||
}
|
||||
}
|
||||
} else if (role == Qt::UserRole) {
|
||||
return m_artPieces[index.row()].object;
|
||||
} else if (role == Qt::DecorationRole) {
|
||||
switch (index.column()) {
|
||||
case 1:
|
||||
return m_artPieces[index.row()].thumbnail;
|
||||
case 3:
|
||||
return m_artPieces[index.row()].hasAltText ? QIcon::fromTheme(QStringLiteral("emblem-checked")) : QIcon::fromTheme(QStringLiteral("emblem-error"));
|
||||
}
|
||||
} else if (role == Qt::UserRole + 1) {
|
||||
return m_artPieces[index.row()].jsonFilename;
|
||||
}
|
||||
|
||||
return QAbstractTableModel::headerData(section, orientation, role);
|
||||
return {};
|
||||
}
|
||||
|
||||
QVariant ArtModel::headerData(int section, Qt::Orientation orientation, int role) const
|
||||
{
|
||||
if (orientation == Qt::Orientation::Horizontal && role == Qt::DisplayRole) {
|
||||
switch (section) {
|
||||
case 0:
|
||||
return i18nc("@title:column", "Filename");
|
||||
case 1:
|
||||
return i18nc("@title:column", "Image");
|
||||
case 2:
|
||||
return i18nc("@title:column", "Title");
|
||||
case 3:
|
||||
return i18nc("@title:column", "Has Alt Text");
|
||||
default:
|
||||
Q_UNREACHABLE();
|
||||
}
|
||||
}
|
||||
|
||||
void ArtModel::loadData(ArtPiece& piece, const QString& filename, const QString& assetFilename) {
|
||||
piece.jsonFilename = filename + ".json";
|
||||
piece.filename = assetFilename;
|
||||
|
||||
QFile artFile(piece.jsonFilename);
|
||||
artFile.open(QFile::ReadOnly);
|
||||
QJsonDocument artJson = QJsonDocument::fromJson(artFile.readAll());
|
||||
|
||||
if(artJson[QStringLiteral("date")].toString().contains(QStringLiteral("-"))) {
|
||||
piece.date = QDate::fromString(artJson[QStringLiteral("date")].toString(), QStringLiteral("yyyy-MM-dd"));
|
||||
} else {
|
||||
piece.date = QDate::fromString(artJson[QStringLiteral("date")].toString(), QStringLiteral("yyyy"));
|
||||
}
|
||||
|
||||
if (artJson.object().contains(QStringLiteral("title"))) {
|
||||
piece.title = artJson.object()[QStringLiteral("title")].toString();
|
||||
}
|
||||
|
||||
if(artJson.object().contains(QStringLiteral("alt_text"))) {
|
||||
piece.hasAltText = true;
|
||||
}
|
||||
}
|
||||
void ArtModel::pieceFinished(int row) {
|
||||
m_artPieces[row] = piecesFuture->resultAt(row);
|
||||
|
||||
Q_EMIT dataChanged(index(row, 0), index(row + 1, 0));
|
||||
return QAbstractTableModel::headerData(section, orientation, role);
|
||||
}
|
||||
|
||||
void ArtModel::finished() {
|
||||
std::sort(m_artPieces.begin(), m_artPieces.end(), [](ArtPiece& a, ArtPiece& b)
|
||||
{
|
||||
return a.date > b.date;
|
||||
});
|
||||
void ArtModel::loadData(ArtPiece &piece, const QString &filename, const QString &assetFilename)
|
||||
{
|
||||
piece.jsonFilename = filename + ".json";
|
||||
piece.filename = assetFilename;
|
||||
|
||||
Q_EMIT dataChanged(index(0, 0), index(m_artPieces.size(), 0));
|
||||
QFile artFile(piece.jsonFilename);
|
||||
artFile.open(QFile::ReadOnly);
|
||||
QJsonDocument artJson = QJsonDocument::fromJson(artFile.readAll());
|
||||
|
||||
if (artJson[QStringLiteral("date")].toString().contains(QStringLiteral("-"))) {
|
||||
piece.date = QDate::fromString(artJson[QStringLiteral("date")].toString(), QStringLiteral("yyyy-MM-dd"));
|
||||
} else {
|
||||
piece.date = QDate::fromString(artJson[QStringLiteral("date")].toString(), QStringLiteral("yyyy"));
|
||||
}
|
||||
|
||||
if (artJson.object().contains(QStringLiteral("title"))) {
|
||||
piece.title = artJson.object()[QStringLiteral("title")].toString();
|
||||
}
|
||||
|
||||
if (artJson.object().contains(QStringLiteral("alt_text"))) {
|
||||
piece.hasAltText = true;
|
||||
}
|
||||
}
|
||||
void ArtModel::pieceFinished(int row)
|
||||
{
|
||||
m_artPieces[row] = piecesFuture->resultAt(row);
|
||||
|
||||
Q_EMIT dataChanged(index(row, 0), index(row + 1, 0));
|
||||
}
|
||||
|
||||
void ArtModel::finished()
|
||||
{
|
||||
std::sort(m_artPieces.begin(), m_artPieces.end(), [](ArtPiece &a, ArtPiece &b) {
|
||||
return a.date > b.date;
|
||||
});
|
||||
|
||||
Q_EMIT dataChanged(index(0, 0), index(m_artPieces.size(), 0));
|
||||
}
|
||||
|
|
|
@ -11,34 +11,35 @@
|
|||
#include <QJsonObject>
|
||||
|
||||
struct ArtPiece {
|
||||
QString filename, jsonFilename;
|
||||
QString title;
|
||||
QJsonObject object;
|
||||
QString filename, jsonFilename;
|
||||
QString title;
|
||||
QJsonObject object;
|
||||
|
||||
QDate date;
|
||||
QImage image, thumbnail;
|
||||
QDate date;
|
||||
QImage image, thumbnail;
|
||||
|
||||
bool hasAltText = false;
|
||||
bool hasAltText = false;
|
||||
};
|
||||
|
||||
class ArtModel : public QAbstractTableModel {
|
||||
Q_OBJECT
|
||||
class ArtModel : public QAbstractTableModel
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ArtModel(const QDir &definitionDirectory, const QDir &assetDirectory);
|
||||
|
||||
[[nodiscard]] int rowCount(const QModelIndex &parent) const override;
|
||||
[[nodiscard]] int columnCount(const QModelIndex &parent) const override;
|
||||
[[nodiscard]] int columnCount(const QModelIndex &parent) const override;
|
||||
|
||||
[[nodiscard]] QVariant data(const QModelIndex &index, int role) const override;
|
||||
[[nodiscard]] QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
|
||||
[[nodiscard]] QVariant data(const QModelIndex &index, int role) const override;
|
||||
[[nodiscard]] QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
|
||||
|
||||
private:
|
||||
void loadData(ArtPiece& piece, const QString& filename, const QString& assetFilename);
|
||||
void loadData(ArtPiece &piece, const QString &filename, const QString &assetFilename);
|
||||
|
||||
void pieceFinished(int index);
|
||||
void finished();
|
||||
void pieceFinished(int index);
|
||||
void finished();
|
||||
|
||||
QFutureWatcher<ArtPiece>* piecesFuture;
|
||||
QFutureWatcher<ArtPiece> *piecesFuture;
|
||||
|
||||
QList<ArtPiece> m_artPieces;
|
||||
QList<ArtPiece> m_artPieces;
|
||||
};
|
||||
|
|
|
@ -32,23 +32,23 @@ MainWindow::MainWindow(const QDir &definitionDirectory, const QDir &assetDirecto
|
|||
auto model = new ArtModel(definitionDirectory, assetDirectory);
|
||||
|
||||
auto pieceListView = new QTableView();
|
||||
pieceListView->setModel(model);
|
||||
pieceListView->setSelectionBehavior(QAbstractItemView::SelectionBehavior::SelectRows);
|
||||
pieceListView->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
pieceListView->setModel(model);
|
||||
pieceListView->setSelectionBehavior(QAbstractItemView::SelectionBehavior::SelectRows);
|
||||
pieceListView->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
|
||||
QHeaderView *verticalHeader = pieceListView->verticalHeader();
|
||||
verticalHeader->setSectionResizeMode(QHeaderView::ResizeToContents);
|
||||
QHeaderView *verticalHeader = pieceListView->verticalHeader();
|
||||
verticalHeader->setSectionResizeMode(QHeaderView::ResizeToContents);
|
||||
|
||||
QHeaderView *horizontalHeader = pieceListView->horizontalHeader();
|
||||
horizontalHeader->setSectionResizeMode(QHeaderView::ResizeToContents);
|
||||
QHeaderView *horizontalHeader = pieceListView->horizontalHeader();
|
||||
horizontalHeader->setSectionResizeMode(QHeaderView::ResizeToContents);
|
||||
|
||||
connect(pieceListView, &QListView::clicked, this, [this, assetDirectory](QModelIndex index) {
|
||||
const QString filename = index.data(Qt::UserRole + 1).toString();
|
||||
const QJsonObject object = index.data(Qt::UserRole).toJsonObject();
|
||||
connect(pieceListView, &QListView::clicked, this, [this, assetDirectory](QModelIndex index) {
|
||||
const QString filename = index.data(Qt::UserRole + 1).toString();
|
||||
const QJsonObject object = index.data(Qt::UserRole).toJsonObject();
|
||||
|
||||
auto window = new ArtDetailWindow(filename, assetDirectory, this);
|
||||
window->show();
|
||||
});
|
||||
auto window = new ArtDetailWindow(filename, assetDirectory, this);
|
||||
window->show();
|
||||
});
|
||||
|
||||
setCentralWidget(pieceListView);
|
||||
setCentralWidget(pieceListView);
|
||||
}
|
|
@ -7,8 +7,9 @@
|
|||
#include <QDir>
|
||||
#include <QMainWindow>
|
||||
|
||||
class MainWindow : public QMainWindow {
|
||||
Q_OBJECT
|
||||
class MainWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit MainWindow(const QDir &definitionDirectory, const QDir &assetDirectory, const QDir &dataDirectory);
|
||||
};
|
||||
|
|
|
@ -4,30 +4,37 @@
|
|||
|
||||
#include "imagelabel.h"
|
||||
|
||||
ImageLabel::ImageLabel(QWidget *parent) : QLabel(parent) {
|
||||
this->setMinimumSize(1, 1);
|
||||
setScaledContents(false);
|
||||
ImageLabel::ImageLabel(QWidget *parent)
|
||||
: QLabel(parent)
|
||||
{
|
||||
this->setMinimumSize(1, 1);
|
||||
setScaledContents(false);
|
||||
}
|
||||
|
||||
void ImageLabel::setPixmap(const QPixmap &p) {
|
||||
pix = p;
|
||||
QLabel::setPixmap(scaledPixmap());
|
||||
void ImageLabel::setPixmap(const QPixmap &p)
|
||||
{
|
||||
pix = p;
|
||||
QLabel::setPixmap(scaledPixmap());
|
||||
}
|
||||
|
||||
int ImageLabel::heightForWidth(int width) const {
|
||||
return pix.isNull() ? this->height() : ((qreal) pix.height() * width) / pix.width();
|
||||
int ImageLabel::heightForWidth(int width) const
|
||||
{
|
||||
return pix.isNull() ? this->height() : ((qreal)pix.height() * width) / pix.width();
|
||||
}
|
||||
|
||||
QSize ImageLabel::sizeHint() const {
|
||||
const int w = this->width();
|
||||
return {w, heightForWidth(w)};
|
||||
QSize ImageLabel::sizeHint() const
|
||||
{
|
||||
const int w = this->width();
|
||||
return {w, heightForWidth(w)};
|
||||
}
|
||||
|
||||
QPixmap ImageLabel::scaledPixmap() const {
|
||||
return pix.scaled(this->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||
QPixmap ImageLabel::scaledPixmap() const
|
||||
{
|
||||
return pix.scaled(this->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||
}
|
||||
|
||||
void ImageLabel::resizeEvent(QResizeEvent *e) {
|
||||
void ImageLabel::resizeEvent(QResizeEvent *e)
|
||||
{
|
||||
Q_UNUSED(e);
|
||||
if (!pix.isNull()) {
|
||||
QLabel::setPixmap(scaledPixmap());
|
||||
|
|
|
@ -6,19 +6,20 @@
|
|||
|
||||
#include <QLabel>
|
||||
|
||||
class ImageLabel : public QLabel {
|
||||
Q_OBJECT
|
||||
class ImageLabel : public QLabel
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ImageLabel(QWidget *parent = nullptr);
|
||||
explicit ImageLabel(QWidget *parent = nullptr);
|
||||
|
||||
[[nodiscard]] int heightForWidth(int width) const override;
|
||||
[[nodiscard]] QSize sizeHint() const override;
|
||||
[[nodiscard]] QPixmap scaledPixmap() const;
|
||||
[[nodiscard]] int heightForWidth(int width) const override;
|
||||
[[nodiscard]] QSize sizeHint() const override;
|
||||
[[nodiscard]] QPixmap scaledPixmap() const;
|
||||
|
||||
public Q_SLOTS:
|
||||
void setPixmap(const QPixmap &);
|
||||
void resizeEvent(QResizeEvent *) override;
|
||||
void setPixmap(const QPixmap &);
|
||||
void resizeEvent(QResizeEvent *) override;
|
||||
|
||||
private:
|
||||
QPixmap pix;
|
||||
QPixmap pix;
|
||||
};
|
23
src/main.cpp
23
src/main.cpp
|
@ -9,7 +9,8 @@
|
|||
|
||||
#include "MainWindow.h"
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
||||
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
|
||||
|
||||
|
@ -24,17 +25,17 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
const auto args = parser.positionalArguments();
|
||||
if (args.empty()) {
|
||||
return -1;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
const QDir sitePath = args[0];
|
||||
const QString defPath = sitePath.absoluteFilePath(QStringLiteral("art"));
|
||||
const QDir assetPath = sitePath.absoluteFilePath(QStringLiteral("assets"));
|
||||
const QString artAssetPath = assetPath.absoluteFilePath(QStringLiteral("art"));
|
||||
const QString dataPath = sitePath.absoluteFilePath(QStringLiteral("data"));
|
||||
const QDir sitePath = args[0];
|
||||
const QString defPath = sitePath.absoluteFilePath(QStringLiteral("art"));
|
||||
const QDir assetPath = sitePath.absoluteFilePath(QStringLiteral("assets"));
|
||||
const QString artAssetPath = assetPath.absoluteFilePath(QStringLiteral("art"));
|
||||
const QString dataPath = sitePath.absoluteFilePath(QStringLiteral("data"));
|
||||
|
||||
MainWindow window(defPath, artAssetPath, dataPath);
|
||||
window.show();
|
||||
MainWindow window(defPath, artAssetPath, dataPath);
|
||||
window.show();
|
||||
|
||||
return QApplication::exec();
|
||||
return QApplication::exec();
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue