diff --git a/CMakeLists.txt b/CMakeLists.txt index 2ceff78..686d1cc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,7 @@ endif (${WIN32}) find_package(Qt REQUIRED) set(LIB 1) set(ICU 1) +set(CRYPT 1) set(LIBPROJECT 1) set(PIP_LIBRARY pip) set(PIP_FOLDERS "." "core" "containers" "thread" "system" "io" "console" "math" "code") diff --git a/qglview/material_editor.cpp b/qglview/material_editor.cpp index fa1aa51..47219a4 100644 --- a/qglview/material_editor.cpp +++ b/qglview/material_editor.cpp @@ -17,10 +17,12 @@ */ #include "material_editor.h" +#include "ui_material_editor.h" MaterialEditor::MaterialEditor(QWidget * parent): QWidget(parent) { - setupUi(this); + ui = new Ui::MaterialEditor(); + ui->setupUi(this); active = true; } @@ -30,7 +32,7 @@ void MaterialEditor::changeEvent(QEvent * e) { QWidget::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: - retranslateUi(this); + ui->retranslateUi(this); break; default: break; @@ -40,153 +42,216 @@ void MaterialEditor::changeEvent(QEvent * e) { void MaterialEditor::setMaterial(const Material & m) { active = false; - colorDiffuse->setColor(m.color_diffuse); - colorSpecular->setColor(m.color_specular); - colorSelfIllum->setColor(m.color_self_illumination); - checkGlass->setChecked(m.glass); - comboModel->setCurrentIndex((int)m.light_model); - spinShine->setValue(m.shine); - spinShineStrength->setValue(m.shine_strength); - spinTransparent->setValue(m.transparency); - spinReflect->setValue(m.reflectivity); - spinBump->setValue(m.bump_scale); - spinRelief->setValue(m.relief_scale); - spinIOF->setValue(m.iof); - spinDispersion->setValue(m.dispersion); - lineDiffuse->setProperty("GLpath", m.diffuse.bitmap_path); lineDiffuse->setText(QFileInfo(m.diffuse.bitmap_path).fileName()); - lineBump->setProperty("GLpath", m.bump.bitmap_path); lineBump->setText(QFileInfo(m.bump.bitmap_path).fileName()); - lineRelief->setProperty("GLpath", m.relief.bitmap_path); lineRelief->setText(QFileInfo(m.relief.bitmap_path).fileName()); - lineReflFront->setProperty("GLpath", m.reflection.path(0)); lineReflFront->setText(QFileInfo(m.reflection.path(0)).fileName()); - lineReflBack->setProperty("GLpath", m.reflection.path(1)); lineReflBack->setText(QFileInfo(m.reflection.path(1)).fileName()); - lineReflLeft->setProperty("GLpath", m.reflection.path(2)); lineReflLeft->setText(QFileInfo(m.reflection.path(2)).fileName()); - lineReflRight->setProperty("GLpath", m.reflection.path(3)); lineReflRight->setText(QFileInfo(m.reflection.path(3)).fileName()); - lineReflTop->setProperty("GLpath", m.reflection.path(4)); lineReflTop->setText(QFileInfo(m.reflection.path(4)).fileName()); - lineReflBottom->setProperty("GLpath", m.reflection.path(5)); lineReflBottom->setText(QFileInfo(m.reflection.path(5)).fileName()); + ui->colorDiffuse->setColor(m.color_diffuse); + ui->colorSpecular->setColor(m.color_specular); + ui->colorSelfIllum->setColor(m.color_self_illumination); + ui->checkGlass->setChecked(m.glass); + ui->comboModel->setCurrentIndex((int)m.light_model); + ui->spinShine->setValue(m.shine); + ui->spinShineStrength->setValue(m.shine_strength); + ui->spinTransparent->setValue(m.transparency); + ui->spinReflect->setValue(m.reflectivity); + ui->spinBump->setValue(m.bump_scale); + ui->spinRelief->setValue(m.relief_scale); + ui->spinIOF->setValue(m.iof); + ui->spinDispersion->setValue(m.dispersion); + ui->lineDiffuse->setProperty("GLpath", m.diffuse.bitmap_path); ui->lineDiffuse->setText(QFileInfo(m.diffuse.bitmap_path).fileName()); + ui->lineBump->setProperty("GLpath", m.bump.bitmap_path); ui->lineBump->setText(QFileInfo(m.bump.bitmap_path).fileName()); + ui->lineRelief->setProperty("GLpath", m.relief.bitmap_path); ui->lineRelief->setText(QFileInfo(m.relief.bitmap_path).fileName()); + ui->lineReflFront->setProperty("GLpath", m.reflection.path(0)); ui->lineReflFront->setText(QFileInfo(m.reflection.path(0)).fileName()); + ui->lineReflBack->setProperty("GLpath", m.reflection.path(1)); ui->lineReflBack->setText(QFileInfo(m.reflection.path(1)).fileName()); + ui->lineReflLeft->setProperty("GLpath", m.reflection.path(2)); ui->lineReflLeft->setText(QFileInfo(m.reflection.path(2)).fileName()); + ui->lineReflRight->setProperty("GLpath", m.reflection.path(3)); ui->lineReflRight->setText(QFileInfo(m.reflection.path(3)).fileName()); + ui->lineReflTop->setProperty("GLpath", m.reflection.path(4)); ui->lineReflTop->setText(QFileInfo(m.reflection.path(4)).fileName()); + ui->lineReflBottom->setProperty("GLpath", m.reflection.path(5)); ui->lineReflBottom->setText(QFileInfo(m.reflection.path(5)).fileName()); active = true; } Material MaterialEditor::material() { Material m; - m.color_diffuse = colorDiffuse->color(); - m.color_specular = colorSpecular->color(); - m.color_self_illumination = colorSelfIllum->color(); - m.glass = checkGlass->isChecked(); - m.light_model = (Material::LightModel)comboModel->currentIndex(); - m.shine = spinShine->value(); - m.shine_strength = spinShineStrength->value(); - m.transparency = spinTransparent->value(); - m.reflectivity = spinReflect->value(); - m.bump_scale = spinBump->value(); - m.relief_scale = spinRelief->value(); - m.iof = spinIOF->value(); - m.dispersion = spinDispersion->value(); - m.diffuse.bitmap_path = lineDiffuse->property("GLpath").toString(); - m.bump.bitmap_path = lineBump->property("GLpath").toString(); - m.relief.bitmap_path = lineRelief->property("GLpath").toString(); - m.reflection.setPath(0, lineReflFront->property("GLpath").toString()); - m.reflection.setPath(1, lineReflBack->property("GLpath").toString()); - m.reflection.setPath(2, lineReflLeft->property("GLpath").toString()); - m.reflection.setPath(3, lineReflRight->property("GLpath").toString()); - m.reflection.setPath(4, lineReflTop->property("GLpath").toString()); - m.reflection.setPath(5, lineReflBottom->property("GLpath").toString()); + m.color_diffuse = ui->colorDiffuse->color(); + m.color_specular = ui->colorSpecular->color(); + m.color_self_illumination = ui->colorSelfIllum->color(); + m.glass = ui->checkGlass->isChecked(); + m.light_model = (Material::LightModel)ui->comboModel->currentIndex(); + m.shine = ui->spinShine->value(); + m.shine_strength = ui->spinShineStrength->value(); + m.transparency = ui->spinTransparent->value(); + m.reflectivity = ui->spinReflect->value(); + m.bump_scale = ui->spinBump->value(); + m.relief_scale = ui->spinRelief->value(); + m.iof = ui->spinIOF->value(); + m.dispersion = ui->spinDispersion->value(); + m.diffuse.bitmap_path = ui->lineDiffuse->property("GLpath").toString(); + m.bump.bitmap_path = ui->lineBump->property("GLpath").toString(); + m.relief.bitmap_path = ui->lineRelief->property("GLpath").toString(); + m.reflection.setPath(0, ui->lineReflFront->property("GLpath").toString()); + m.reflection.setPath(1, ui->lineReflBack->property("GLpath").toString()); + m.reflection.setPath(2, ui->lineReflLeft->property("GLpath").toString()); + m.reflection.setPath(3, ui->lineReflRight->property("GLpath").toString()); + m.reflection.setPath(4, ui->lineReflTop->property("GLpath").toString()); + m.reflection.setPath(5, ui->lineReflBottom->property("GLpath").toString()); return m; } void MaterialEditor::on_buttonDiffuseSelect_clicked() { - QString str = QFileDialog::getOpenFileName(this, "Select image", lineDiffuse->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); + QString str = QFileDialog::getOpenFileName(this, "Select image", ui->lineDiffuse->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); if (str.isEmpty()) return; - lineDiffuse->setProperty("GLpath", str); - lineDiffuse->setText(QFileInfo(str).fileName()); + ui->lineDiffuse->setProperty("GLpath", str); + ui->lineDiffuse->setText(QFileInfo(str).fileName()); materialChanged(); } void MaterialEditor::on_buttonBumpSelect_clicked() { - QString str = QFileDialog::getOpenFileName(this, "Select image", lineBump->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); + QString str = QFileDialog::getOpenFileName(this, "Select image", ui->lineBump->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); if (str.isEmpty()) return; - lineBump->setProperty("GLpath", str); - lineBump->setText(QFileInfo(str).fileName()); + ui->lineBump->setProperty("GLpath", str); + ui->lineBump->setText(QFileInfo(str).fileName()); materialChanged(); } void MaterialEditor::on_buttonReliefSelect_clicked() { - QString str = QFileDialog::getOpenFileName(this, "Select image", lineRelief->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); + QString str = QFileDialog::getOpenFileName(this, "Select image", ui->lineRelief->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); if (str.isEmpty()) return; - lineRelief->setProperty("GLpath", str); - lineRelief->setText(QFileInfo(str).fileName()); + ui->lineRelief->setProperty("GLpath", str); + ui->lineRelief->setText(QFileInfo(str).fileName()); materialChanged(); } void MaterialEditor::on_buttonReflFrontSelect_clicked() { - QString str = QFileDialog::getOpenFileName(this, "Select image", lineReflFront->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); + QString str = QFileDialog::getOpenFileName(this, "Select image", ui->lineReflFront->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); if (str.isEmpty()) return; - lineReflFront->setProperty("GLpath", str); - lineReflFront->setText(QFileInfo(str).fileName()); + ui->lineReflFront->setProperty("GLpath", str); + ui->lineReflFront->setText(QFileInfo(str).fileName()); materialChanged(); } void MaterialEditor::on_buttonReflBackSelect_clicked() { - QString str = QFileDialog::getOpenFileName(this, "Select image", lineReflBack->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); + QString str = QFileDialog::getOpenFileName(this, "Select image", ui->lineReflBack->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); if (str.isEmpty()) return; - lineReflBack->setProperty("GLpath", str); - lineReflBack->setText(QFileInfo(str).fileName()); + ui->lineReflBack->setProperty("GLpath", str); + ui->lineReflBack->setText(QFileInfo(str).fileName()); materialChanged(); } void MaterialEditor::on_buttonReflLeftSelect_clicked() { - QString str = QFileDialog::getOpenFileName(this, "Select image", lineReflLeft->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); + QString str = QFileDialog::getOpenFileName(this, "Select image", ui->lineReflLeft->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); if (str.isEmpty()) return; - lineReflLeft->setProperty("GLpath", str); - lineReflLeft->setText(QFileInfo(str).fileName()); + ui->lineReflLeft->setProperty("GLpath", str); + ui->lineReflLeft->setText(QFileInfo(str).fileName()); materialChanged(); } void MaterialEditor::on_buttonReflRightSelect_clicked() { - QString str = QFileDialog::getOpenFileName(this, "Select image", lineReflRight->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); + QString str = QFileDialog::getOpenFileName(this, "Select image", ui->lineReflRight->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); if (str.isEmpty()) return; - lineReflRight->setProperty("GLpath", str); - lineReflRight->setText(QFileInfo(str).fileName()); + ui->lineReflRight->setProperty("GLpath", str); + ui->lineReflRight->setText(QFileInfo(str).fileName()); materialChanged(); } void MaterialEditor::on_buttonReflTopSelect_clicked() { - QString str = QFileDialog::getOpenFileName(this, "Select image", lineReflTop->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); + QString str = QFileDialog::getOpenFileName(this, "Select image", ui->lineReflTop->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); if (str.isEmpty()) return; - lineReflTop->setProperty("GLpath", str); - lineReflTop->setText(QFileInfo(str).fileName()); + ui->lineReflTop->setProperty("GLpath", str); + ui->lineReflTop->setText(QFileInfo(str).fileName()); materialChanged(); } void MaterialEditor::on_buttonReflBottomSelect_clicked() { - QString str = QFileDialog::getOpenFileName(this, "Select image", lineReflBottom->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); + QString str = QFileDialog::getOpenFileName(this, "Select image", ui->lineReflBottom->property("GLpath").toString(), "Images(*.bmp *.jpg *.jpeg *.png *.tif *.tiff *.tga);;All files(*)"); if (str.isEmpty()) return; - lineReflBottom->setProperty("GLpath", str); - lineReflBottom->setText(QFileInfo(str).fileName()); + ui->lineReflBottom->setProperty("GLpath", str); + ui->lineReflBottom->setText(QFileInfo(str).fileName()); + materialChanged(); +} + + +void MaterialEditor::on_buttonDiffuseClear_clicked() { + ui->lineDiffuse->setText(""); + ui->lineDiffuse->setProperty("GLpath", ""); + materialChanged(); +} + + +void MaterialEditor::on_buttonBumpClear_clicked() { + ui->lineBump->setText(""); + ui->lineBump->setProperty("GLpath", ""); + materialChanged(); +} + + +void MaterialEditor::on_buttonReliefClear_clicked() { + ui->lineRelief->setText(""); + ui->lineRelief->setProperty("GLpath", ""); + materialChanged(); +} + + +void MaterialEditor::on_buttonReflFrontClear_clicked() { + ui->lineReflFront->setText(""); + ui->lineReflFront->setProperty("GLpath", ""); + materialChanged(); +} + + +void MaterialEditor::on_buttonReflBackClear_clicked() { + ui->lineReflBack->setText(""); + ui->lineReflBack->setProperty("GLpath", ""); + materialChanged(); +} + + +void MaterialEditor::on_buttonReflLeftClear_clicked() { + ui->lineReflLeft->setText(""); + ui->lineReflLeft->setProperty("GLpath", ""); + materialChanged(); +} + + +void MaterialEditor::on_buttonReflRightClear_clicked() { + ui->lineReflRight->setText(""); + ui->lineReflRight->setProperty("GLpath", ""); + materialChanged(); +} + + +void MaterialEditor::on_buttonReflTopClear_clicked() { + ui->lineReflTop->setText(""); + ui->lineReflTop->setProperty("GLpath", ""); + materialChanged(); +} + + +void MaterialEditor::on_buttonReflBottomClear_clicked() { + ui->lineReflBottom->setText(""); + ui->lineReflBottom->setProperty("GLpath", ""); materialChanged(); } void MaterialEditor::on_buttonLoadCubeDir_clicked() { - QString dir = QFileDialog::getExistingDirectory(this, "Select directory", lineReflFront->property("GLpath").toString()); + QString dir = QFileDialog::getExistingDirectory(this, "Select directory", ui->lineReflFront->property("GLpath").toString()); if (dir.isEmpty()) return; GLCubeTexture cb(0); cb.loadPathesFromDirectory(dir); active = false; - lineReflFront->setProperty("GLpath", cb.path(0)); lineReflFront->setText(QFileInfo(cb.path(0)).fileName()); - lineReflBack->setProperty("GLpath", cb.path(1)); lineReflBack->setText(QFileInfo(cb.path(1)).fileName()); - lineReflLeft->setProperty("GLpath", cb.path(2)); lineReflLeft->setText(QFileInfo(cb.path(2)).fileName()); - lineReflRight->setProperty("GLpath", cb.path(3)); lineReflRight->setText(QFileInfo(cb.path(3)).fileName()); - lineReflTop->setProperty("GLpath", cb.path(4)); lineReflTop->setText(QFileInfo(cb.path(4)).fileName()); - lineReflBottom->setProperty("GLpath", cb.path(5)); lineReflBottom->setText(QFileInfo(cb.path(5)).fileName()); + ui->lineReflFront->setProperty("GLpath", cb.path(0)); ui->lineReflFront->setText(QFileInfo(cb.path(0)).fileName()); + ui->lineReflBack->setProperty("GLpath", cb.path(1)); ui->lineReflBack->setText(QFileInfo(cb.path(1)).fileName()); + ui->lineReflLeft->setProperty("GLpath", cb.path(2)); ui->lineReflLeft->setText(QFileInfo(cb.path(2)).fileName()); + ui->lineReflRight->setProperty("GLpath", cb.path(3)); ui->lineReflRight->setText(QFileInfo(cb.path(3)).fileName()); + ui->lineReflTop->setProperty("GLpath", cb.path(4)); ui->lineReflTop->setText(QFileInfo(cb.path(4)).fileName()); + ui->lineReflBottom->setProperty("GLpath", cb.path(5)); ui->lineReflBottom->setText(QFileInfo(cb.path(5)).fileName()); active = true; materialChanged(); } diff --git a/qglview/material_editor.h b/qglview/material_editor.h index 22e13fe..2be596a 100644 --- a/qglview/material_editor.h +++ b/qglview/material_editor.h @@ -21,9 +21,12 @@ #include #include "gltypes.h" -#include "ui_material_editor.h" -class MaterialEditor: public QWidget, private Ui::MaterialEditor +namespace Ui { + class MaterialEditor; +}; + +class MaterialEditor: public QWidget { Q_OBJECT public: @@ -36,27 +39,28 @@ protected: void changeEvent(QEvent * e); bool active; + Ui::MaterialEditor * ui; private slots: void materialChanged() {if (active) emit changed();} void on_buttonDiffuseSelect_clicked(); - void on_buttonDiffuseClear_clicked() {lineDiffuse->setText(""); lineDiffuse->setProperty("GLpath", ""); materialChanged();} + void on_buttonDiffuseClear_clicked(); void on_buttonBumpSelect_clicked(); - void on_buttonBumpClear_clicked() {lineBump->setText(""); lineBump->setProperty("GLpath", ""); materialChanged();} + void on_buttonBumpClear_clicked(); void on_buttonReliefSelect_clicked(); - void on_buttonReliefClear_clicked() {lineRelief->setText(""); lineRelief->setProperty("GLpath", ""); materialChanged();} + void on_buttonReliefClear_clicked(); void on_buttonReflFrontSelect_clicked(); - void on_buttonReflFrontClear_clicked() {lineReflFront->setText(""); lineReflFront->setProperty("GLpath", ""); materialChanged();} + void on_buttonReflFrontClear_clicked(); void on_buttonReflBackSelect_clicked(); - void on_buttonReflBackClear_clicked() {lineReflBack->setText(""); lineReflBack->setProperty("GLpath", ""); materialChanged();} + void on_buttonReflBackClear_clicked(); void on_buttonReflLeftSelect_clicked(); - void on_buttonReflLeftClear_clicked() {lineReflLeft->setText(""); lineReflLeft->setProperty("GLpath", ""); materialChanged();} + void on_buttonReflLeftClear_clicked(); void on_buttonReflRightSelect_clicked(); - void on_buttonReflRightClear_clicked() {lineReflRight->setText(""); lineReflRight->setProperty("GLpath", ""); materialChanged();} + void on_buttonReflRightClear_clicked(); void on_buttonReflTopSelect_clicked(); - void on_buttonReflTopClear_clicked() {lineReflTop->setText(""); lineReflTop->setProperty("GLpath", ""); materialChanged();} + void on_buttonReflTopClear_clicked(); void on_buttonReflBottomSelect_clicked(); - void on_buttonReflBottomClear_clicked() {lineReflBottom->setText(""); lineReflBottom->setProperty("GLpath", ""); materialChanged();} + void on_buttonReflBottomClear_clicked(); void on_buttonLoadCubeDir_clicked(); signals: