Skip to content

Commit

Permalink
initialize the Override Shading menu based on the "interactive" confi…
Browse files Browse the repository at this point in the history
…guration of the project.
  • Loading branch information
dictoon committed Dec 9, 2011
1 parent 6da916d commit e2428e8
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 13 deletions.
65 changes: 52 additions & 13 deletions src/appleseed.studio/mainwindow/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,33 @@ void MainWindow::build_override_shading_menu_item()
}
}

void MainWindow::update_override_shading_menu_item()
{
const ParamArray project_params = get_project_params("interactive");
const ParamArray shading_engine_params = project_params.child("shading_engine");

if (shading_engine_params.dictionaries().exist("override_shading"))
{
const string shading_mode =
shading_engine_params.child("override_shading").get_optional<string>("mode", "coverage");

for (const_each<QList<QAction*> > i = m_ui->menu_diagnostics_override_shading->actions(); i; ++i)
{
QAction* action = *i;

if (action->data().toString().toStdString() == shading_mode)
{
action->activate(QAction::Trigger);
break;
}
}
}
else
{
m_ui->action_diagnostics_override_shading_no_override->activate(QAction::Trigger);
}
}

void MainWindow::build_connections()
{
build_menu_items_connections();
Expand Down Expand Up @@ -302,6 +329,26 @@ QString MainWindow::get_project_filter_string()
return "Project Files (*.appleseed);;All Files (*.*)";
}

ParamArray MainWindow::get_project_params(const char* configuration_name) const
{
ParamArray params;

Configuration* configuration =
m_project_manager.is_project_open()
? m_project_manager.get_project()->configurations().get_by_name(configuration_name)
: 0;

if (configuration && configuration->get_base())
params = configuration->get_base()->get_parameters();

params.merge(m_settings);

if (configuration)
params.merge(configuration->get_parameters());

return params;
}

namespace
{
int show_modified_project_message_box(QWidget* parent)
Expand Down Expand Up @@ -350,8 +397,11 @@ bool MainWindow::can_close_project()
void MainWindow::on_project_change()
{
recreate_render_widgets();

update_workspace();
update_project_explorer();
update_override_shading_menu_item();

m_status_bar.clear();
}

Expand Down Expand Up @@ -536,19 +586,8 @@ void MainWindow::start_rendering(const bool interactive)

enable_disable_widgets(true);

const char* configuration_name =
interactive
? "interactive"
: "final";

const Configuration* configuration =
m_project_manager.get_project()->configurations().get_by_name(configuration_name);

ParamArray params;
if (configuration->get_base())
params = configuration->get_base()->get_parameters();
params.merge(m_settings);
params.merge(configuration->get_parameters());
const char* configuration_name = interactive ? "interactive" : "final";
const ParamArray params = get_project_params(configuration_name);

m_rendering_manager.start_rendering(
m_project_manager.get_project(),
Expand Down
4 changes: 4 additions & 0 deletions src/appleseed.studio/mainwindow/mainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
// Forward declarations.
namespace appleseed { namespace studio { class LogWidget; } }
namespace Ui { class MainWindow; }
class QAction;
class QString;

namespace appleseed {
Expand Down Expand Up @@ -142,6 +143,7 @@ class MainWindow
void build_log();

void build_override_shading_menu_item();
void update_override_shading_menu_item();

void build_connections();
void build_menu_items_connections();
Expand All @@ -150,6 +152,8 @@ class MainWindow

static QString get_project_filter_string();

renderer::ParamArray get_project_params(const char* configuration_name) const;

bool can_close_project();
void on_project_change();

Expand Down

0 comments on commit e2428e8

Please sign in to comment.