#include "mainwindow.h" #include "ui_mainwindow.h" #include "assetlist.h" #include #include #include #include #include #include #include #include #include #include void MainWindow::EnableThemeDark() { ui->actionToggleDark->setIcon(QIcon(":/icons/data/icons/alexandru.stoica/sun_star [#1268].svg")); //QFile file(":/css/data/css/style.qss"); //QFile file(":/css/data/css/DarkMonokai.qss"); QFile file(":/css/data/css/darkorange.qss"); //QFile file(":/css/data/css/darkstyle.qss"); //QFile file(":/css/data/css/QTDark.qss"); //QFile file(":/dark.qss"); file.open(QFile::ReadOnly | QFile::Text); QTextStream stream(&file); qApp->setStyleSheet(stream.readAll()); auto& children = this->children(); for( auto& child : children ) { QAction* action = qobject_cast(child); QAbstractButton* button = qobject_cast(child); if( action ) { auto icon = action->icon(); auto pixmap = icon.pixmap(icon.actualSize(QSize(32,32))); const auto& mask = pixmap.createMaskFromColor(QColor("transparent"), Qt::MaskInColor); pixmap.fill(QColor("white")); pixmap.setMask(mask); action->setIcon(QIcon(pixmap)); } else if( button ) { auto icon = button->icon(); auto pixmap = icon.pixmap(icon.actualSize(QSize(32,32))); const auto& mask = pixmap.createMaskFromColor(QColor("transparent"), Qt::MaskInColor); pixmap.fill(QColor("white")); pixmap.setMask(mask); button->setIcon(QIcon(pixmap)); } } //this->setWindowState(Qt::WindowMaximized); } void MainWindow::EnableThemeLight() { ui->actionToggleDark->setIcon(QIcon(":/icons/data/icons/alexandru.stoica/moon [#1248].svg")); qApp->setStyleSheet(""); //QFile file(":/light.qss"); //file.open(QFile::ReadOnly | QFile::Text); //QTextStream stream(&file); //qApp->setStyleSheet(stream.readAll()); auto& children = this->children(); for( auto& child : children ) { QAction* action = qobject_cast(child); if( action ) { auto icon = action->icon(); auto pixmap = icon.pixmap(icon.actualSize(QSize(32,32))); const auto& mask = pixmap.createMaskFromColor(QColor("transparent"), Qt::MaskInColor); pixmap.fill(QColor("black")); pixmap.setMask(mask); action->setIcon(QIcon(pixmap)); } } } MainWindow::~MainWindow() { delete ui; } void MainWindow::SetupDefineList() { } void MainWindow::SetupDeclareList() { } void MainWindow::LoadDefines( const QJsonDocument& document ) { const QJsonValue& value = document.object()["defines"]; if( value.isArray()) { } else { } } void MainWindow::LoadDeclarations( const QJsonDocument& document ) { const QJsonValue& value = document.object()["declarations"]; if( value.isArray()) { } else { } } void MainWindow::LoadConfigFile( const QString& configPath ) { // If no initial config should run through a setup process. // configPath should be stored in a project location, so shouldn't be created into a user specific directory. QFileInfo fileInfo( configPath ); QFile file( configPath ); if( /*file.exists()*/ fileInfo.exists() && fileInfo.isFile() ) { file.open(QFile::ReadOnly); QJsonDocument document(QJsonDocument::fromJson(file.readAll())); //QJsonObject object = document.object(); LoadDefines( document ); LoadDeclarations( document ); } else { } } void MainWindow::SaveConfigFile( const QJsonDocument& jsonDocument, const QString& configPath ) { } MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); /*connect( comboBox, QOverload::of(&QComboBox::currentIndexChanged), [=](int index){ ui->stackedWidget_2->setCurrentIndex(index); }); const int currentIndex = 0; comboBox->setCurrentIndex(currentIndex); ui->stackedWidget_2->setCurrentIndex(currentIndex);*/ /*const auto pOutputDock = new OutputDock(); pOutputDock->setMinimumHeight(50); this->addDockWidget(Qt::BottomDockWidgetArea, pOutputDock->GetDock()); pOutputDock->setMinimumHeight(0);*/ //const QDir& dir = QDir::current(); const QString& path = QCoreApplication::applicationDirPath(); if( path.length() ) { } LoadConfigFile("bin/projectName.json"); const auto pDefineList = new AssetList(); pDefineList->setMinimumWidth(150); this->addDockWidget(Qt::LeftDockWidgetArea, pDefineList); pDefineList->setMinimumHeight(0); pDefineList->setWindowTitle("Define"); const auto pDeclareList = new AssetList(); pDeclareList->setMinimumWidth(150); this->addDockWidget(Qt::LeftDockWidgetArea, pDeclareList); pDeclareList->setMinimumHeight(0); pDeclareList->setWindowTitle("Declare"); QMainWindow::tabifyDockWidget(pDefineList, pDeclareList); connect( ui->actionToggleDark, &QAction::triggered, [=](bool checked){ if( checked ) { EnableThemeDark(); } else { EnableThemeLight(); } }); }