#include "DefaultCubemapSceneWidget.h" /** * Default constructor. * */ DefaultCubemapSceneWidget::DefaultCubemapSceneWidget(SceneInterface *plugin, QWidget* pParent, Qt::WFlags flag): SceneWidget(plugin, pParent, flag), m_content(plugin) { setupUi (this); updateGUI(); } /** * Destructor. * */ DefaultCubemapSceneWidget::~DefaultCubemapSceneWidget() { } /** * Updates the widget. * * This method can be used it two ways: to force a refresh or to update the * data of the widget. * * @param content A const pointer on the contents to be used for the widget. * This contents will be duplicated in the widget. If content * is NULL, the current content are used and the refresh is * forced. If no content are given, NULL is used. * */ void DefaultCubemapSceneWidget::updateGUI(const SceneContent* _content) { if (_content) { const DefaultCubemapSceneContent *content = static_cast(_content); Q_ASSERT(NULL!=content); // <-- Assume that the conversion was successful m_content.copy_from(*content); } // From now, we will only use m_content frontFileNameEdit->setText(m_content.getTexture(CUBEMAP_FACE_FRONT)); backFileNameEdit->setText(m_content.getTexture(CUBEMAP_FACE_BACK)); leftFileNameEdit->setText(m_content.getTexture(CUBEMAP_FACE_LEFT)); rightFileNameEdit->setText(m_content.getTexture(CUBEMAP_FACE_RIGHT)); topFileNameEdit->setText(m_content.getTexture(CUBEMAP_FACE_TOP)); bottomFileNameEdit->setText(m_content.getTexture(CUBEMAP_FACE_BOTTOM)); } /** * [private slot] Called when the "front file" field is edited. * */ void DefaultCubemapSceneWidget::on_frontFileNameEdit_editingFinished() { if (frontFileNameEdit->text()!=m_content.getTexture(CUBEMAP_FACE_FRONT)) { m_content.setTexture(CUBEMAP_FACE_FRONT, frontFileNameEdit->text()); emit dataChanged(m_content); } } /** * [private slot] Called when the "front file" button is pressed. * */ void DefaultCubemapSceneWidget::on_frontBrowseButton_clicked() { QString fileName = QFileDialog::getOpenFileName(this, tr("Choose a file to open"), frontFileNameEdit->text(), tr("Image files (*.*)")); if (!fileName.isEmpty()) { frontFileNameEdit->setText(fileName); on_frontFileNameEdit_editingFinished(); } } /** * [private slot] Called when the "back file" field is edited. * */ void DefaultCubemapSceneWidget::on_backFileNameEdit_editingFinished() { if (backFileNameEdit->text()!=m_content.getTexture(CUBEMAP_FACE_BACK)) { m_content.setTexture(CUBEMAP_FACE_BACK, backFileNameEdit->text()); emit dataChanged(m_content); } } /** * [private slot] Called when the "back file" button is pressed. * */ void DefaultCubemapSceneWidget::on_backBrowseButton_clicked() { QString fileName = QFileDialog::getOpenFileName(this, tr("Choose a file to open"), backFileNameEdit->text(), tr("Image files (*.*)")); if (!fileName.isEmpty()) { backFileNameEdit->setText(fileName); on_backFileNameEdit_editingFinished(); } } /** * [private slot] Called when the "left file" field is edited. * */ void DefaultCubemapSceneWidget::on_leftFileNameEdit_editingFinished() { if (leftFileNameEdit->text()!=m_content.getTexture(CUBEMAP_FACE_LEFT)) { m_content.setTexture(CUBEMAP_FACE_LEFT, leftFileNameEdit->text()); emit dataChanged(m_content); } } /** * [private slot] Called when the "left file" button is pressed. * */ void DefaultCubemapSceneWidget::on_leftBrowseButton_clicked() { QString fileName = QFileDialog::getOpenFileName(this, tr("Choose a file to open"), leftFileNameEdit->text(), tr("Image files (*.*)")); if (!fileName.isEmpty()) { leftFileNameEdit->setText(fileName); on_leftFileNameEdit_editingFinished(); } } /** * [private slot] Called when the "right file" field is edited. * */ void DefaultCubemapSceneWidget::on_rightFileNameEdit_editingFinished() { if (rightFileNameEdit->text()!=m_content.getTexture(CUBEMAP_FACE_RIGHT)) { m_content.setTexture(CUBEMAP_FACE_RIGHT, rightFileNameEdit->text()); emit dataChanged(m_content); } } /** * [private slot] Called when the "right file" button is pressed. * */ void DefaultCubemapSceneWidget::on_rightBrowseButton_clicked() { QString fileName = QFileDialog::getOpenFileName(this, tr("Choose a file to open"), rightFileNameEdit->text(), tr("Image files (*.*)")); if (!fileName.isEmpty()) { rightFileNameEdit->setText(fileName); on_rightFileNameEdit_editingFinished(); } } /** * [private slot] Called when the "top file" field is edited. * */ void DefaultCubemapSceneWidget::on_topFileNameEdit_editingFinished() { if (topFileNameEdit->text()!=m_content.getTexture(CUBEMAP_FACE_TOP)) { m_content.setTexture(CUBEMAP_FACE_TOP, topFileNameEdit->text()); emit dataChanged(m_content); } } /** * [private slot] Called when the "top file" button is pressed. * */ void DefaultCubemapSceneWidget::on_topBrowseButton_clicked() { QString fileName = QFileDialog::getOpenFileName(this, tr("Choose a file to open"), topFileNameEdit->text(), tr("Image files (*.*)")); if (!fileName.isEmpty()) { topFileNameEdit->setText(fileName); on_topFileNameEdit_editingFinished(); } } /** * [private slot] Called when the "bottom file" field is edited. * */ void DefaultCubemapSceneWidget::on_bottomFileNameEdit_editingFinished() { if (bottomFileNameEdit->text()!=m_content.getTexture(CUBEMAP_FACE_BOTTOM)) { m_content.setTexture(CUBEMAP_FACE_BOTTOM, bottomFileNameEdit->text()); emit dataChanged(m_content); } } /** * [private slot] Called when the "bottom file" button is pressed. * */ void DefaultCubemapSceneWidget::on_bottomBrowseButton_clicked() { QString fileName = QFileDialog::getOpenFileName(this, tr("Choose a file to open"), bottomFileNameEdit->text(), tr("Image files (*.*)")); if (!fileName.isEmpty()) { bottomFileNameEdit->setText(fileName); on_bottomFileNameEdit_editingFinished(); } }