/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /*************************************************************************** * renderdialog.cc * * Thu Sep 20 17:32:11 CEST 2018 * Copyright 2018 Bent Bisballe Nyeng * deva@aasimon.org ****************************************************************************/ /* * This file is part of DrumGizmo. * * DrumGizmo is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * DrumGizmo is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with DrumGizmo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #include "renderdialog.h" #include #include #include #include #include #include #include "project.h" RenderDialog::RenderDialog(QWidget* parent, Project& project) : QDialog(parent) , project(project) , renderer(project) { auto vl = new QVBoxLayout(); setLayout(vl); layout()->addWidget(new QLabel(tr("Export path:"))); { auto hl = new QHBoxLayout(); export_path = new QLineEdit(this); export_path->setText(project.getExportPath()); auto btn = new QPushButton(tr("...")); btn->setMaximumWidth(32); connect(btn, SIGNAL(clicked()), this, SLOT(chooseExportPath())); hl->addWidget(export_path); hl->addWidget(btn); vl->addLayout(hl); } auto btn = new QPushButton(this); btn->setText("Click me"); connect(btn, SIGNAL(clicked()), this, SLOT(render())); //connect(btn, SIGNAL(clicked()), this, SLOT(close())); layout()->addWidget(btn); bar1 = new QProgressBar(this); connect(&renderer, SIGNAL(progressStart(int)), bar1, SLOT(setMaximum(int))); layout()->addWidget(bar1); bar2 = new QProgressBar(this); connect(&renderer, SIGNAL(progressRenderStart(int)), bar2, SLOT(setMaximum(int))); connect(&renderer, SIGNAL(progressRenderTask(int)), bar2, SLOT(setValue(int))); layout()->addWidget(bar2); tasks = new QListWidget(this); // connect(&renderer, SIGNAL(progressTask(QString)), // tasks, SLOT(addItem(QString))); layout()->addWidget(tasks); connect(&renderer, SIGNAL(progressTask(QString)), this, SLOT(progressTask(QString))); connect(&renderer, SIGNAL(progressRenderFinished(int)), this, SLOT(progressRenderFinished(int))); } void RenderDialog::render() { bar1->setValue(1); renderer.render(); } void RenderDialog::progressStart(int total) { } void RenderDialog::progressTask(QString text) { tasks->addItem(text); } void RenderDialog::progressRenderStart(int tasktotal) { } void RenderDialog::progressRenderTask(int subtask) { } void RenderDialog::progressRenderFinished(int success) { bar1->setValue(bar1->value() + 1); } void RenderDialog::progressFinished(int success) { } void RenderDialog::chooseExportPath() { QString path = QFileDialog::getExistingDirectory( this, tr("Choose export directory."), project.getExportPath(), QFileDialog::ShowDirsOnly); if(path != "") { export_path->setText(path); project.setExportPath(path); } }