File indexing completed on 2024-05-26 05:40:54

0001 #include "sheetproperties.h"
0002 #include "ui_sheetproperties.h"
0003 
0004 #include <QFileDialog>
0005 #include <QFontDatabase>
0006 
0007 #include "controllers/qmlgeneratorcontroller.h"
0008 
0009 SheetProperties::SheetProperties(QmlGeneratorController* ctrl, QWidget* parent)
0010     : QDialog(parent), ui(new Ui::SheetProperties), m_ctrl(ctrl)
0011 {
0012     ui->setupUi(this);
0013     ui->listView->setModel(&m_model);
0014 
0015     connect(ui->m_addFontBtn, &QToolButton::clicked, this, [=] {
0016         QStringList files
0017             = QFileDialog::getOpenFileNames(this, tr("Add Font file"), QDir::homePath(), "font (*.ttf *.otf)");
0018         if(!files.isEmpty())
0019         {
0020             m_fontUri.append(files);
0021             m_model.setStringList(m_fontUri);
0022             for(auto uri : m_fontUri)
0023             {
0024                 QFontDatabase::addApplicationFont(uri);
0025             }
0026         }
0027     });
0028 
0029     connect(ui->m_removeFontBtn, &QToolButton::clicked, this, [=] {
0030         auto index= ui->listView->currentIndex();
0031         if(index.isValid())
0032         {
0033             m_fontUri.removeAt(index.row());
0034             m_model.setStringList(m_fontUri);
0035         }
0036     });
0037 
0038     init();
0039 }
0040 
0041 SheetProperties::~SheetProperties()
0042 {
0043     delete ui;
0044 }
0045 
0046 void SheetProperties::init()
0047 {
0048     ui->m_additionnalHeadCode->document()->setPlainText(m_ctrl->headCode());
0049     ui->m_additionnalBottomCode->document()->setPlainText(m_ctrl->bottomCode());
0050     ui->m_additionnalImport->setPlainText(m_ctrl->importCode());
0051     ui->m_fixedScale->setValue(m_ctrl->fixedScale());
0052 
0053     m_fontUri= m_ctrl->fonts();
0054     m_model.setStringList(m_fontUri);
0055 }
0056 
0057 void SheetProperties::accept()
0058 {
0059     m_ctrl->setHeadCode(ui->m_additionnalHeadCode->document()->toPlainText());
0060     m_ctrl->setBottomCode(ui->m_additionnalBottomCode->document()->toPlainText());
0061     m_ctrl->setImportCode(ui->m_additionnalImport->document()->toPlainText());
0062     m_ctrl->setFixedScale(ui->m_fixedScale->value());
0063     m_ctrl->setFonts(m_fontUri);
0064 
0065     QDialog::accept();
0066 }