Blame synfig-studio/src/gui/dialogs/dialog_setup.cpp

Carlos Lopez a09598
/* === S Y N F I G ========================================================= */
Carlos Lopez a09598
/*!	\file dialog_setup.cpp
[d.j.a.y] Jerome Blanchi 6e93dc
**	\brief Dialog Preference implementation
Carlos Lopez a09598
**
Carlos Lopez a09598
**	$Id$
Carlos Lopez a09598
**
Carlos Lopez a09598
**	\legal
Carlos Lopez a09598
**	Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
Carlos Lopez a09598
**	Copyright (c) 2007, 2008 Chris Moore
Carlos Lopez e83454
**	Copyright (c) 2008, 2009, 2012 Carlos Lรณpez
[d.j.a.y] Jerome Blanchi 087a05
**	Copyright (c) 2014 Yu Chen
[d.j.a.y] Jerome Blanchi 0a3ff4
**	Copyright (c) 2015 Jerome Blanchi
Carlos Lopez a09598
**
Carlos Lopez a09598
**	This package is free software; you can redistribute it and/or
Carlos Lopez a09598
**	modify it under the terms of the GNU General Public License as
Carlos Lopez a09598
**	published by the Free Software Foundation; either version 2 of
Carlos Lopez a09598
**	the License, or (at your option) any later version.
Carlos Lopez a09598
**
Carlos Lopez a09598
**	This package is distributed in the hope that it will be useful,
Carlos Lopez a09598
**	but WITHOUT ANY WARRANTY; without even the implied warranty of
Carlos Lopez a09598
**	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Carlos Lopez a09598
**	General Public License for more details.
Carlos Lopez a09598
**	\endlegal
Carlos Lopez a09598
*/
Carlos Lopez a09598
/* ========================================================================= */
Carlos Lopez a09598
Carlos Lopez a09598
/* === H E A D E R S ======================================================= */
Carlos Lopez a09598
Carlos Lopez a09598
#ifdef USING_PCH
Carlos Lopez a09598
#	include "pch.h"
Carlos Lopez a09598
#else
Carlos Lopez a09598
#ifdef HAVE_CONFIG_H
Carlos Lopez a09598
#	include <config.h></config.h>
Carlos Lopez a09598
#endif
Carlos Lopez a09598
[d.j.a.y] Jerome Blanchi 4fd5ec
#include "dialogs/dialog_setup.h"
[d.j.a.y] Jerome Blanchi 96cb18
[d.j.a.y] Jerome Blanchi 087a05
#include <gtkmm eventbox.h=""></gtkmm>
[d.j.a.y] Jerome Blanchi 96cb18
#include <gtkmm scale.h=""></gtkmm>
[d.j.a.y] Jerome Blanchi 96cb18
[d.j.a.y] Jerome Blanchi 96cb18
#include "canvasview.h"
[d.j.a.y] Jerome Blanchi 50f93d
#include "widgets/widget_enum.h"
[d.j.a.y] Jerome Blanchi 50f93d
#include "autorecover.h"
[d.j.a.y] Jerome Blanchi 50f93d
#include "duck.h"
Carlos Lopez a09598
Carlos Lopez a09598
#include <etl stringf=""></etl>
Carlos Lopez a09598
#include <etl misc=""></etl>
bw 94d8a6
bw 94d8a6
#include <synfig renderer.h="" rendering=""></synfig>
Carlos Lopez a09598
Carlos Lopez a548fe
#include <synfigapp canvasinterface.h=""></synfigapp>
[d.j.a.y] Jerome Blanchi a782c3
#include <synfigapp main.h=""></synfigapp>
Carlos Lopez a548fe
abdbf2
#include <gui localization.h=""></gui>
bw 94d8a6
Carlos Lopez a09598
#endif
Carlos Lopez a09598
Carlos Lopez a09598
/* === U S I N G =========================================================== */
Carlos Lopez a09598
Carlos Lopez a09598
using namespace std;
Carlos Lopez a09598
using namespace etl;
Carlos Lopez a09598
using namespace synfig;
Carlos Lopez a09598
using namespace studio;
Carlos Lopez a09598
Carlos Lopez a09598
/* === M A C R O S ========================================================= */
[d.j.a.y] Jerome Blanchi fde135
Carlos Lopez a09598
/* === G L O B A L S ======================================================= */
Carlos Lopez a09598
Carlos Lopez a09598
/* === P R O C E D U R E S ================================================= */
Carlos Lopez a09598
Carlos Lopez a09598
/* === M E T H O D S ======================================================= */
Carlos Lopez a09598
49f8c0
Dialog_Setup::Dialog_Setup(Gtk::Window& parent):
[d.j.a.y] Jerome Blanchi 9375e9
	Dialog_Template(parent,_("Synfig Studio Preferences")),
[d.j.a.y] Jerome Blanchi a782c3
	input_settings(synfigapp::Main::get_selected_input_device()->settings()),
536d22
	adj_recent_files(Gtk::Adjustment::create(15,1,50,1,1,0)),
536d22
	adj_undo_depth(Gtk::Adjustment::create(100,10,5000,1,1,1)),
25c3c3
	time_format(Time::FORMAT_NORMAL),
af3c11
	listviewtext_brushes_path(manage (new Gtk::ListViewText(1, true, Gtk::SELECTION_BROWSE))),
536d22
	adj_pref_x_size(Gtk::Adjustment::create(480,1,10000,1,10,0)),
536d22
	adj_pref_y_size(Gtk::Adjustment::create(270,1,10000,1,10,0)),
ab539e
	adj_pref_fps(Gtk::Adjustment::create(24.0,1.0,100,0.1,1,0)),
ab539e
	pref_modification_flag(false),
25c3c3
	refreshing(false)
6d3ca8
{
a4bbdd
	synfig::String
a4bbdd
		interface_str(_("Interface")),
a4bbdd
		document_str(_("Document")),
a4bbdd
		editing_str(_("Editing")),
a4bbdd
		render_str(_("Render")),
a4bbdd
		system_str(_("System"));
[d.j.a.y] Jerome Blanchi 864060
	// WARNING FIXED ORDER : the page added to notebook same has treeview
[d.j.a.y] Jerome Blanchi 087a05
	// Interface
[d.j.a.y] Jerome Blanchi 9375e9
	create_interface_page(add_page(interface_str));
[d.j.a.y] Jerome Blanchi 20b1a7
	// Document
[d.j.a.y] Jerome Blanchi 9375e9
	create_document_page(add_page(document_str));
[d.j.a.y] Jerome Blanchi 2d4b75
	// Editing
[d.j.a.y] Jerome Blanchi 9375e9
	create_editing_page(add_page(editing_str));
[d.j.a.y] Jerome Blanchi 20b1a7
	// Render
[d.j.a.y] Jerome Blanchi 9375e9
	create_render_page(add_page(render_str));
[d.j.a.y] Jerome Blanchi 087a05
	// System
a4bbdd
	create_system_page(add_page(system_str));
[d.j.a.y] Jerome Blanchi 20b1a7
[d.j.a.y] Jerome Blanchi 20b1a7
	show_all_children();
[d.j.a.y] Jerome Blanchi 20b1a7
}
[d.j.a.y] Jerome Blanchi 20b1a7
[d.j.a.y] Jerome Blanchi 20b1a7
Dialog_Setup::~Dialog_Setup()
[d.j.a.y] Jerome Blanchi 20b1a7
{
[d.j.a.y] Jerome Blanchi 20b1a7
}
[d.j.a.y] Jerome Blanchi 20b1a7
[d.j.a.y] Jerome Blanchi 20b1a7
void
[d.j.a.y] Jerome Blanchi 9375e9
Dialog_Setup::create_system_page(PageInfo pi)
[d.j.a.y] Jerome Blanchi 20b1a7
{
[d.j.a.y] Jerome Blanchi 087a05
	/*---------System--------------------*\
[d.j.a.y] Jerome Blanchi 087a05
	 * UNITS
[d.j.a.y] Jerome Blanchi 087a05
	 *  Timestamp  [_____________________]
[d.j.a.y] Jerome Blanchi 087a05
	 *  UnitSystem [_____________________]
[d.j.a.y] Jerome Blanchi 087a05
	 * RECENTFILE  [_____________________]
[d.j.a.y] Jerome Blanchi 087a05
	 * AUTOBACKUP  [x| ]
[d.j.a.y] Jerome Blanchi 087a05
	 *  Interval   [_____________________]
[d.j.a.y] Jerome Blanchi 087a05
	 * BROWSER     [_____________________]
[d.j.a.y] Jerome Blanchi 087a05
	 * BRUSH       [_____________________]
[d.j.a.y] Jerome Blanchi 087a05
	 */
Carlos Lopez a09598
[d.j.a.y] Jerome Blanchi 087a05
	int row(1);
[d.j.a.y] Jerome Blanchi 6ee861
	// System _ Units section
[d.j.a.y] Jerome Blanchi 9375e9
	attach_label_section(pi.grid, _("Units"), row);
[d.j.a.y] Jerome Blanchi 6ee861
	// System - 0 Timestamp
[d.j.a.y] Jerome Blanchi 9375e9
	attach_label(pi.grid, _("Timestamp"), ++row);
[d.j.a.y] Jerome Blanchi 9375e9
	pi.grid->attach(timestamp_comboboxtext, 1, row, 1, 1);
[d.j.a.y] Jerome Blanchi a35046
	timestamp_comboboxtext.set_hexpand(true);
6d3ca8
6d3ca8
	#define ADD_TIMESTAMP(desc,x) {				\
6d3ca8
		timestamp_comboboxtext.append(desc);	\
6d3ca8
		time_formats[desc] = x;					\
6d3ca8
	}
6d3ca8
Carlos Lopez a09598
	ADD_TIMESTAMP("HH:MM:SS.FF",		Time::FORMAT_VIDEO	);
Carlos Lopez a09598
	ADD_TIMESTAMP("(HHh MMm SSs) FFf",	Time::FORMAT_NORMAL	);
Carlos Lopez a09598
	ADD_TIMESTAMP("(HHhMMmSSs)FFf",		Time::FORMAT_NORMAL	| Time::FORMAT_NOSPACES	);
Carlos Lopez a09598
	ADD_TIMESTAMP("HHh MMm SSs FFf",	Time::FORMAT_NORMAL	| Time::FORMAT_FULL		);
Carlos Lopez a09598
	ADD_TIMESTAMP("HHhMMmSSsFFf",		Time::FORMAT_NORMAL	| Time::FORMAT_NOSPACES	| Time::FORMAT_FULL);
Carlos Lopez a09598
	ADD_TIMESTAMP("FFf",				Time::FORMAT_FRAMES );
Carlos Lopez a09598
6d3ca8
	#undef ADD_TIMESTAMP
Carlos Lopez a09598
6d3ca8
	timestamp_comboboxtext.signal_changed().connect(
6d3ca8
		sigc::mem_fun(*this, &Dialog_Setup::on_time_format_changed) );
Carlos Lopez a09598
[d.j.a.y] Jerome Blanchi 6ee861
	// System - 1 Unit system
Carlos Lopez a09598
	{
Carlos Lopez a09598
		ParamDesc param_desc;
Carlos Lopez a09598
		param_desc
Carlos Lopez a09598
			.set_hint("enum")
Carlos Lopez a09598
			.add_enum_value(Distance::SYSTEM_UNITS,"u",_("Units"))
Carlos Lopez a09598
			.add_enum_value(Distance::SYSTEM_PIXELS,"px",_("Pixels"))
Carlos Lopez a09598
			.add_enum_value(Distance::SYSTEM_POINTS,"pt",_("Points"))
Carlos Lopez a09598
			.add_enum_value(Distance::SYSTEM_INCHES,"in",_("Inches"))
Carlos Lopez a09598
			.add_enum_value(Distance::SYSTEM_METERS,"m",_("Meters"))
Carlos Lopez a09598
			.add_enum_value(Distance::SYSTEM_CENTIMETERS,"cm",_("Centimeters"))
Carlos Lopez a09598
			.add_enum_value(Distance::SYSTEM_MILLIMETERS,"mm",_("Millimeters"));
Carlos Lopez a09598
Carlos Lopez a09598
		widget_enum=manage(new Widget_Enum());
Carlos Lopez a09598
		widget_enum->set_param_desc(param_desc);
Carlos Lopez a09598
[d.j.a.y] Jerome Blanchi 9375e9
		attach_label(pi.grid, _("Unit System"), ++row);
[d.j.a.y] Jerome Blanchi 9375e9
		pi.grid->attach(*widget_enum, 1, row, 1, 1);
[d.j.a.y] Jerome Blanchi a35046
		widget_enum->set_hexpand(true);
Carlos Lopez a09598
	}
Carlos Lopez a09598
[d.j.a.y] Jerome Blanchi 6ee861
	// System - Recent files
[d.j.a.y] Jerome Blanchi 9375e9
	attach_label_section(pi.grid, _("Recent Files"), ++row);
Carlos Lopez a09598
	Gtk::SpinButton* recent_files_spinbutton(manage(new Gtk::SpinButton(adj_recent_files,1,0)));
[d.j.a.y] Jerome Blanchi 9375e9
	pi.grid->attach(*recent_files_spinbutton, 1, row, 1, 1);
[d.j.a.y] Jerome Blanchi 6ee861
[d.j.a.y] Jerome Blanchi 6ee861
	// System - Auto backup interval
893555
	attach_label_section(pi.grid, _("Autosave"), ++row);
[d.j.a.y] Jerome Blanchi 9375e9
	pi.grid->attach(toggle_autobackup, 1, row, 1, 1);
[d.j.a.y] Jerome Blanchi 6ee861
	toggle_autobackup.set_hexpand(false);
[d.j.a.y] Jerome Blanchi 6ee861
	toggle_autobackup.set_halign(Gtk::ALIGN_START);
[d.j.a.y] Jerome Blanchi 19fa49
	toggle_autobackup.property_active().signal_changed().connect(
[d.j.a.y] Jerome Blanchi 19fa49
			sigc::mem_fun(*this, &Dialog_Setup::on_autobackup_changed));
[d.j.a.y] Jerome Blanchi 6ee861
[d.j.a.y] Jerome Blanchi 9375e9
	attach_label(pi.grid, _("Interval"), ++row);
[d.j.a.y] Jerome Blanchi 9375e9
	pi.grid->attach(auto_backup_interval, 1, row, 1, 1);
[d.j.a.y] Jerome Blanchi 087a05
	auto_backup_interval.set_hexpand(false);
Carlos Lopez a09598
[d.j.a.y] Jerome Blanchi 6ee861
	// System - Brushes path
[d.j.a.y] Jerome Blanchi 6e9dee
	{
[d.j.a.y] Jerome Blanchi 9375e9
		attach_label_section(pi.grid, _("Brush Presets Path"), ++row);
[d.j.a.y] Jerome Blanchi 6e9dee
		// TODO Check if Gtk::ListStore::create need something like manage
[d.j.a.y] Jerome Blanchi 6e9dee
		brushpath_refmodel = Gtk::ListStore::create(prefs_brushpath);
[d.j.a.y] Jerome Blanchi 6e9dee
		listviewtext_brushes_path->set_model(brushpath_refmodel);
[d.j.a.y] Jerome Blanchi 6e9dee
[d.j.a.y] Jerome Blanchi 6e9dee
		Gtk::ScrolledWindow* scroll(manage (new Gtk::ScrolledWindow()));
[d.j.a.y] Jerome Blanchi 6e9dee
		scroll->add(*listviewtext_brushes_path);
[d.j.a.y] Jerome Blanchi 6e9dee
		listviewtext_brushes_path->set_headers_visible(false);
a5f458
		pi.grid->attach(*scroll, 1, row, 1, 3);
[d.j.a.y] Jerome Blanchi 6e9dee
[d.j.a.y] Jerome Blanchi 6e9dee
		// Brushes path buttons
[d.j.a.y] Jerome Blanchi 6e9dee
		Gtk::Grid* brush_path_btn_grid(manage (new Gtk::Grid()));
[d.j.a.y] Jerome Blanchi 6e9dee
		Gtk::Button* brush_path_add(manage (new Gtk::Button()));
[d.j.a.y] Jerome Blanchi 6e9dee
		brush_path_add->set_image_from_icon_name("add", Gtk::ICON_SIZE_BUTTON);
[d.j.a.y] Jerome Blanchi 6e9dee
		brush_path_btn_grid->attach(*brush_path_add, 0, 0, 1, 1);
[d.j.a.y] Jerome Blanchi 6e9dee
		brush_path_add->set_halign(Gtk::ALIGN_END);
[d.j.a.y] Jerome Blanchi 6e9dee
		brush_path_add->signal_clicked().connect(
[d.j.a.y] Jerome Blanchi 6e9dee
				sigc::mem_fun(*this, &Dialog_Setup::on_brush_path_add_clicked));
[d.j.a.y] Jerome Blanchi 6e9dee
		Gtk::Button* brush_path_remove(manage (new Gtk::Button()));
[d.j.a.y] Jerome Blanchi 6e9dee
		brush_path_remove->set_image_from_icon_name("remove", Gtk::ICON_SIZE_BUTTON);
[d.j.a.y] Jerome Blanchi 6e9dee
		brush_path_btn_grid->attach(*brush_path_remove, 0, 1, 1, 1);
[d.j.a.y] Jerome Blanchi 6e9dee
		brush_path_remove->set_halign(Gtk::ALIGN_END);
[d.j.a.y] Jerome Blanchi 6e9dee
		brush_path_remove->signal_clicked().connect(
[d.j.a.y] Jerome Blanchi 6e9dee
				sigc::mem_fun(*this, &Dialog_Setup::on_brush_path_remove_clicked));
a5f458
		pi.grid->attach(*brush_path_btn_grid, 0, ++row, 1, 2);
[d.j.a.y] Jerome Blanchi 6e9dee
		brush_path_btn_grid->set_halign(Gtk::ALIGN_END);
a5f458
		++row;
[d.j.a.y] Jerome Blanchi 6e9dee
	}
GinPachi 7d8019
	// System - 11 enable_experimental_features
GinPachi 5a8a28
	attach_label_section(pi.grid, _("Experimental features (requires restart)"), ++row);
GinPachi 96768b
	pi.grid->attach(toggle_enable_experimental_features, 1, row, 1, 1);
GinPachi 96768b
	toggle_enable_experimental_features.set_halign(Gtk::ALIGN_START);
GinPachi 96768b
	toggle_enable_experimental_features.set_hexpand(false);
Yu Chen 048f35
[d.j.a.y] Jerome Blanchi b85adb
	// signal for change resume
[d.j.a.y] Jerome Blanchi b85adb
	auto_backup_interval.signal_changed().connect(
[d.j.a.y] Jerome Blanchi b85adb
			sigc::bind<int>(sigc::mem_fun(*this, &Dialog_Setup::on_value_change), CHANGE_AUTOBACKUP));</int>
[d.j.a.y] Jerome Blanchi b85adb
	toggle_autobackup.property_active().signal_changed().connect(
[d.j.a.y] Jerome Blanchi b85adb
			sigc::bind<int>(sigc::mem_fun(*this, &Dialog_Setup::on_value_change), CHANGE_AUTOBACKUP));</int>
[d.j.a.y] Jerome Blanchi 20b1a7
}
[d.j.a.y] Jerome Blanchi 20b1a7
[d.j.a.y] Jerome Blanchi 20b1a7
void
[d.j.a.y] Jerome Blanchi 9375e9
Dialog_Setup::create_document_page(PageInfo pi)
[d.j.a.y] Jerome Blanchi 20b1a7
{
[d.j.a.y] Jerome Blanchi 63c009
	/*---------Document------------------*\
[d.j.a.y] Jerome Blanchi 2d4b75
	 * NEW CANVAS
[d.j.a.y] Jerome Blanchi 2d4b75
	 *  prefix  ___________________
[d.j.a.y] Jerome Blanchi 2d4b75
	 *  fps   [_]                    [FPS]
[d.j.a.y] Jerome Blanchi 78925c
	 *  size  H[_]xW[_]      [resolutions]
BobSynfig 366b65
	 * DEFAULT BACKGROUND
BobSynfig 366b65
	 * (*) None (Transparent)
BobSynfig 366b65
	 * ( ) Solid Color         [colorbutton]
BobSynfig 366b65
	 * ( ) Image               [file path  ]
[d.j.a.y] Jerome Blanchi 78925c
	 *
[d.j.a.y] Jerome Blanchi 63c009
	 *
[d.j.a.y] Jerome Blanchi 63c009
	 *
[d.j.a.y] Jerome Blanchi 63c009
	 */
[d.j.a.y] Jerome Blanchi 63c009
[d.j.a.y] Jerome Blanchi 087a05
	int row(1);
[d.j.a.y] Jerome Blanchi 9375e9
	attach_label_section(pi.grid, _("New Canvas"), row);
Carlos Lopez a09598
	// Document - Preferred file name prefix
[d.j.a.y] Jerome Blanchi 9375e9
	attach_label(pi.grid, _("Name prefix"), ++row);
[d.j.a.y] Jerome Blanchi 78925c
	pi.grid->attach(textbox_custom_filename_prefix, 1, row, 2, 1);
Carlos Lopez 26626c
	textbox_custom_filename_prefix.set_tooltip_text( _("File name prefix for the new created document"));
[d.j.a.y] Jerome Blanchi a35046
	textbox_custom_filename_prefix.set_hexpand(true);
[d.j.a.y] Jerome Blanchi 9375e9
[d.j.a.y] Jerome Blanchi 2dccb1
	// TODO add label with some FPS description ( ex : 23.976 FPS->NTSC television , 25 PAL, 48->Film Industrie, 30->cinematic-like appearance ...)
[d.j.a.y] Jerome Blanchi 2d4b75
	// Document - New Document FPS
[d.j.a.y] Jerome Blanchi 9375e9
	attach_label(pi.grid,_("FPS"), ++row);
[d.j.a.y] Jerome Blanchi 78925c
	pref_fps_spinbutton = Gtk::manage(new Gtk::SpinButton(adj_pref_fps, 1, 3));
[d.j.a.y] Jerome Blanchi 9375e9
	pi.grid->attach(*pref_fps_spinbutton, 1, row, 1, 1);
[d.j.a.y] Jerome Blanchi 2d4b75
	pref_fps_spinbutton->set_tooltip_text(_("Frames per second of the new created document"));
[d.j.a.y] Jerome Blanchi 2d4b75
	pref_fps_spinbutton->set_hexpand(true);
[d.j.a.y] Jerome Blanchi 2d4b75
[d.j.a.y] Jerome Blanchi 2d4b75
	//Document - Template for predefined fps
[d.j.a.y] Jerome Blanchi 2d4b75
	fps_template_combo = Gtk::manage(new Gtk::ComboBoxText());
[d.j.a.y] Jerome Blanchi 78925c
	pi.grid->attach(*fps_template_combo, 2, row, 1 ,1);
[d.j.a.y] Jerome Blanchi 78925c
	fps_template_combo->set_halign(Gtk::ALIGN_END);
[d.j.a.y] Jerome Blanchi 2d4b75
	fps_template_combo->signal_changed().connect(sigc::mem_fun(*this, &studio::Dialog_Setup::on_fps_template_combo_change));
[d.j.a.y] Jerome Blanchi 2d4b75
	//Document - Fill the FPS combo box with proper strings (not localised)
[d.j.a.y] Jerome Blanchi 2d4b75
	float f[8];
[d.j.a.y] Jerome Blanchi 2d4b75
	f[0] = 60;
[d.j.a.y] Jerome Blanchi 2d4b75
	f[1] = 50;
[d.j.a.y] Jerome Blanchi 2d4b75
	f[2] = 30;
[d.j.a.y] Jerome Blanchi 2d4b75
	f[3] = 25;
[d.j.a.y] Jerome Blanchi 2d4b75
	f[4] = 24.967;
[d.j.a.y] Jerome Blanchi 2d4b75
	f[5] = 24;
[d.j.a.y] Jerome Blanchi 2d4b75
	f[6] = 15;
[d.j.a.y] Jerome Blanchi 2d4b75
	f[7] = 12;
[d.j.a.y] Jerome Blanchi 2d4b75
	for (int i=0; i<8; i++)
[d.j.a.y] Jerome Blanchi 2d4b75
		fps_template_combo->prepend(strprintf("%5.3f", f[i]));
[d.j.a.y] Jerome Blanchi 2d4b75
[d.j.a.y] Jerome Blanchi 864060
	//Document - Size
[d.j.a.y] Jerome Blanchi 9375e9
	attach_label(pi.grid, _("Size"),++row);
[d.j.a.y] Jerome Blanchi 2dccb1
	// TODO chain icon for ratio / ratio indication (see Widget_RendDesc)
[d.j.a.y] Jerome Blanchi 864060
	// Document - New Document X size
[d.j.a.y] Jerome Blanchi 78925c
	Gtk::Grid *grid_size(manage (new Gtk::Grid()));
[d.j.a.y] Jerome Blanchi 78925c
[d.j.a.y] Jerome Blanchi 78925c
	Gtk::Label* label = attach_label(grid_size,_("Width"), 0, 0);
[d.j.a.y] Jerome Blanchi 78925c
	label->set_halign(Gtk::ALIGN_END);
[d.j.a.y] Jerome Blanchi 78925c
Carlos Lopez a09598
	pref_x_size_spinbutton = Gtk::manage(new Gtk::SpinButton(adj_pref_x_size, 1, 0));
[d.j.a.y] Jerome Blanchi 78925c
	grid_size->attach(*pref_x_size_spinbutton, 1, 0, 1, 1);
Carlos Lopez 26626c
	pref_x_size_spinbutton->set_tooltip_text(_("Width in pixels of the new created document"));
[d.j.a.y] Jerome Blanchi a35046
	pref_x_size_spinbutton->set_hexpand(true);
[d.j.a.y] Jerome Blanchi 9375e9
[d.j.a.y] Jerome Blanchi 78925c
	label = attach_label(grid_size, "X", 0, 2, false);// "X" stand for multiply operation
[d.j.a.y] Jerome Blanchi 864060
	// NOTA : Use of "section" attributes for BOLDING
[d.j.a.y] Jerome Blanchi 864060
	label->set_attributes(section_attrlist);
[d.j.a.y] Jerome Blanchi 78925c
	label->set_margin_start(3);
[d.j.a.y] Jerome Blanchi 78925c
	label->set_margin_end(3);
[d.j.a.y] Jerome Blanchi 78925c
	label->set_halign(Gtk::ALIGN_CENTER);
[d.j.a.y] Jerome Blanchi 63c009
Carlos Lopez a09598
	// Document - New Document Y size
[d.j.a.y] Jerome Blanchi 78925c
	attach_label(grid_size,_("Height"), 0, 3);
Carlos Lopez a09598
	pref_y_size_spinbutton = Gtk::manage(new Gtk::SpinButton(adj_pref_y_size, 1, 0));
[d.j.a.y] Jerome Blanchi 78925c
	grid_size->attach(*pref_y_size_spinbutton, 4, 0, 1, 1);
[d.j.a.y] Jerome Blanchi 864060
	pref_y_size_spinbutton->set_tooltip_text(_("Height in pixels of the new created document"));
[d.j.a.y] Jerome Blanchi a35046
	pref_y_size_spinbutton->set_hexpand(true);
[d.j.a.y] Jerome Blanchi 78925c
	pi.grid->attach(*grid_size, 1, row, 1,1);
Carlos Lopez a09598
Carlos Lopez a09598
	//Document - Template for predefined sizes of canvases.
Carlos Lopez a09598
	size_template_combo = Gtk::manage(new Gtk::ComboBoxText());
[d.j.a.y] Jerome Blanchi 78925c
	pi.grid->attach(*size_template_combo, 2, row, 1 ,1);
[d.j.a.y] Jerome Blanchi 78925c
	size_template_combo->set_halign(Gtk::ALIGN_END);
Carlos Lopez a09598
	size_template_combo->signal_changed().connect(sigc::mem_fun(*this, &studio::Dialog_Setup::on_size_template_combo_change));
792087
	size_template_combo->prepend(_("4096x3112 Full Aperture 4K"));
792087
	size_template_combo->prepend(_("2048x1556 Full Aperture Native 2K"));
792087
	size_template_combo->prepend(_("1920x1080 HDTV 1080p/i"));
792087
	size_template_combo->prepend(_("1280x720  HDTV 720p"));
792087
	size_template_combo->prepend(_("720x576   DVD PAL"));
792087
	size_template_combo->prepend(_("720x480   DVD NTSC"));
792087
	size_template_combo->prepend(_("720x540   Web 720x"));
792087
	size_template_combo->prepend(_("720x405   Web 720x HD"));
792087
	size_template_combo->prepend(_("640x480   Web 640x"));
792087
	size_template_combo->prepend(_("640x360   Web 640x HD"));
792087
	size_template_combo->prepend(_("480x360   Web 480x"));
792087
	size_template_combo->prepend(_("480x270   Web 480x HD"));
792087
	size_template_combo->prepend(_("360x270   Web 360x"));
792087
	size_template_combo->prepend(_("360x203   Web 360x HD"));
792087
	size_template_combo->prepend(DEFAULT_PREDEFINED_SIZE);
Carlos Lopez a09598
[d.j.a.y] Jerome Blanchi 2d4b75
	fps_template_combo->prepend(DEFAULT_PREDEFINED_FPS);
BobSynfig 366b65
BobSynfig 366b65
	attach_label_section(pi.grid, _("Default Background"), ++row);
BobSynfig 366b65
	//attach_label(pi.grid, _("Name prefix"), ++row);
BobSynfig 366b65
	//pi.grid->attach(textbox_custom_filename_prefix, 1, row, 2, 1);
BobSynfig 366b65
	//textbox_custom_filename_prefix.set_tooltip_text( _("File name prefix for the new created document"));
BobSynfig 366b65
	//textbox_custom_filename_prefix.set_hexpand(true);
BobSynfig 366b65
BobSynfig 366b65
	//Gtk::RadioButton::Group group_def_background;
BobSynfig 366b65
	def_background_none.set_label(_("None (Transparent)"));
BobSynfig 366b65
	def_background_none.set_group(group_def_background);
BobSynfig 366b65
	pi.grid->attach(def_background_none,  0, ++row, 1, 1);
BobSynfig 366b65
	def_background_none.signal_clicked().connect(sigc::mem_fun(*this, &studio::Dialog_Setup::on_def_background_type_changed) );
BobSynfig 366b65
BobSynfig 366b65
	def_background_color.set_label(_("Solid Color"));
BobSynfig 366b65
	def_background_color.set_group(group_def_background);
BobSynfig 366b65
	pi.grid->attach(def_background_color, 0, ++row, 1, 1);
BobSynfig 366b65
    def_background_color.signal_clicked().connect(sigc::mem_fun(*this, &studio::Dialog_Setup::on_def_background_type_changed) );
BobSynfig 366b65
BobSynfig 366b65
	Gdk::RGBA m_color;
BobSynfig 366b65
	m_color.set_rgba( App::default_background_layer_color.get_r(),
BobSynfig 366b65
					  App::default_background_layer_color.get_g(),
BobSynfig 366b65
					  App::default_background_layer_color.get_b(),
BobSynfig 366b65
					  App::default_background_layer_color.get_a());
BobSynfig 366b65
	def_background_color_button.set_rgba(m_color);
BobSynfig 366b65
	pi.grid->attach(def_background_color_button, 1,   row, 1, 1);
BobSynfig 366b65
	def_background_color_button.signal_color_set().connect(sigc::mem_fun(*this, &studio::Dialog_Setup::on_def_background_color_changed) );
BobSynfig 366b65
BobSynfig 366b65
	def_background_image.set_label(_("Image"));
BobSynfig 366b65
	def_background_image.set_group(group_def_background);
BobSynfig 366b65
	pi.grid->attach(def_background_image,      0, ++row, 1, 1);
BobSynfig 366b65
	def_background_image.signal_clicked().connect(sigc::mem_fun(*this, &studio::Dialog_Setup::on_def_background_type_changed) );
BobSynfig 366b65
	//
BobSynfig 366b65
	fcbutton_image.set_title(_("Select"));
BobSynfig 366b65
	fcbutton_image.set_action(Gtk::FILE_CHOOSER_ACTION_OPEN);
BobSynfig 366b65
	fcbutton_image.set_filename(App::default_background_layer_image);
BobSynfig 366b65
	/*
BobSynfig 366b65
	filter_images.set_name(_("Images (*.bmp,*.jpg,*.jpeg,*.png,*.svg,*.lst)"));
BobSynfig 366b65
		filter_images.add_pattern("*.bmp");
BobSynfig 366b65
		filter_images.add_pattern("*.jpg");
BobSynfig 366b65
		filter_images.add_pattern("*.jpeg");
BobSynfig 366b65
		filter_images.add_pattern("*.png");
BobSynfig 366b65
		filter_images.add_pattern("*.svg");
BobSynfig 366b65
		filter_images.add_pattern("*.lst");
BobSynfig 366b65
		filter_any.set_name(_("Any file (*.*)"));
BobSynfig 366b65
		filter_any.add_pattern("*.*");
BobSynfig 366b65
BobSynfig 366b65
	fcbutton_image.add_filter(filter_images);
BobSynfig 366b65
	fcbutton_image.add_filter(filter_any);
BobSynfig 366b65
	*/
BobSynfig 366b65
	//-> Button to select the image
BobSynfig 366b65
	pi.grid->attach(fcbutton_image,            1,   row, 2, 1);
BobSynfig 366b65
	fcbutton_image.signal_file_set().connect(sigc::mem_fun(*this, &studio::Dialog_Setup::on_def_background_image_set) );
BobSynfig 366b65
BobSynfig 366b65
	if (App::default_background_layer_type == "none")        def_background_none.set_active();
BobSynfig 366b65
	if (App::default_background_layer_type == "solid_color") def_background_color.set_active();
BobSynfig 366b65
	if (App::default_background_layer_type == "image")       def_background_image.set_active();
BobSynfig 366b65
[d.j.a.y] Jerome Blanchi 2d4b75
}
[d.j.a.y] Jerome Blanchi 63c009
[d.j.a.y] Jerome Blanchi 2d4b75
void
[d.j.a.y] Jerome Blanchi 9375e9
Dialog_Setup::create_editing_page(PageInfo pi)
[d.j.a.y] Jerome Blanchi 2d4b75
{
[d.j.a.y] Jerome Blanchi 2d4b75
	/*---------Editing------------------*\
[d.j.a.y] Jerome Blanchi 2d4b75
	 * IMPORTED IMAGE
[d.j.a.y] Jerome Blanchi 2d4b75
	 *  [x] Scale to fit
[d.j.a.y] Jerome Blanchi 2d4b75
	 * OTHER
[d.j.a.y] Jerome Blanchi 2d4b75
	 *  [x] Linear color
[d.j.a.y] Jerome Blanchi 2d4b75
	 *  [x] Restrict radius
Ankit Kumar Dwivedi a39ab8
	 * EDIT IN EXTERNAL
Ankit Kumar Dwivedi a39ab8
	 * 	Preferred image editor [image_editor_path] (choose..)
[d.j.a.y] Jerome Blanchi 2d4b75
	 *
[d.j.a.y] Jerome Blanchi 2d4b75
	 */
[d.j.a.y] Jerome Blanchi 63c009
[d.j.a.y] Jerome Blanchi 087a05
	int row(1);
[d.j.a.y] Jerome Blanchi 2d4b75
	// Editing Imported image section
[d.j.a.y] Jerome Blanchi 9375e9
	attach_label_section(pi.grid, _("Imported Image"), row);
[d.j.a.y] Jerome Blanchi 864060
[d.j.a.y] Jerome Blanchi 2d4b75
	// Editing - Scaling New Imported Images to Fit Canvas
caryoscelus 9ad299
	attach_label(pi.grid,_("Scale to fit canvas"), ++row);
caryoscelus 9ad299
	pi.grid->attach(toggle_resize_imported_images, 1, row, 1, 1);
[d.j.a.y] Jerome Blanchi 864060
	toggle_resize_imported_images.set_tooltip_text(_("When you import images, check this option if you want they fit the Canvas size."));
caryoscelus 9ad299
	toggle_resize_imported_images.set_halign(Gtk::ALIGN_START);
[d.j.a.y] Jerome Blanchi 2d4b75
	toggle_resize_imported_images.set_hexpand(false);
Carlos Lopez a09598
[d.j.a.y] Jerome Blanchi 2d4b75
	// Editing Other section
[d.j.a.y] Jerome Blanchi 9375e9
	attach_label_section(pi.grid, _("Other"), ++row);
[d.j.a.y] Jerome Blanchi 864060
7ef36d
	// Editing - Restrict Real-value Handles to Top Right Quadrant
7ef36d
	attach_label(pi.grid,_("Restrict real value handles to top right quadrant"), ++row);
caryoscelus 9ad299
	pi.grid->attach(toggle_restrict_radius_ducks, 1, row, 1, 1);
Ankit Kumar Dwivedi 0ca919
	toggle_restrict_radius_ducks.set_halign(Gtk::ALIGN_START);
[d.j.a.y] Jerome Blanchi 2d4b75
	toggle_restrict_radius_ducks.set_hexpand(false);
[d.j.a.y] Jerome Blanchi 864060
	toggle_restrict_radius_ducks.set_tooltip_text("Restrict the position of the handle \
[d.j.a.y] Jerome Blanchi 864060
(especially for radius) to be in the top right quadrant of the 2D space. Allow to set \
[d.j.a.y] Jerome Blanchi 864060
the real value to any number and also easily reach the value of 0.0 just \
[d.j.a.y] Jerome Blanchi 864060
dragging the handle to the left bottom part of your 2D space.");
Ankit Kumar Dwivedi 79f48d
Ankit Kumar Dwivedi 79f48d
	attach_label_section(pi.grid, _("Edit in external"), ++row);
Ankit Kumar Dwivedi 0ca919
Ankit Kumar Dwivedi a39ab8
	attach_label(pi.grid,_("Preferred image editor"), ++row);
Ankit Kumar Dwivedi a39ab8
Ankit Kumar Dwivedi 0ca919
	//create a button that will open the filechooserdialog to select image editor
Ankit Kumar Dwivedi a39ab8
	Gtk::Button *choose_button(manage(new class Gtk::Button(Gtk::StockID(_("Choose..")))));
Ankit Kumar Dwivedi 6b475c
	choose_button->show();
Ankit Kumar Dwivedi 0ca919
	choose_button->set_tooltip_text("Choose the preferred Image editor for Edit in external tool option");
Ankit Kumar Dwivedi 0ca919
	
Ankit Kumar Dwivedi 6b475c
	//create a function to launch the dialog
Ankit Kumar Dwivedi 6b475c
	choose_button->signal_clicked().connect(sigc::mem_fun(*this,&Dialog_Setup::on_choose_editor_pressed));
Ankit Kumar Dwivedi a39ab8
	pi.grid->attach(image_editor_path_entry, 1, row, 1, 1);
Ankit Kumar Dwivedi a39ab8
	pi.grid->attach(*choose_button, 2,row,1,1);
Ankit Kumar Dwivedi a39ab8
	image_editor_path_entry.set_hexpand(true);
Ankit Kumar Dwivedi a39ab8
	image_editor_path_entry.set_text(App::image_editor_path);
Ankit Kumar Dwivedi 79f48d
	
[d.j.a.y] Jerome Blanchi 20b1a7
}
Carlos Lopez a09598
Ankit Kumar Dwivedi 6b475c
Ankit Kumar Dwivedi 6b475c
void
Ankit Kumar Dwivedi 6b475c
Dialog_Setup::on_choose_editor_pressed()
Ankit Kumar Dwivedi 6b475c
{
Ankit Kumar Dwivedi a39ab8
	//set the image editor path = filepath from dialog
398a50
	String filepath = image_editor_path_entry.get_text();
398a50
	if (select_path_dialog("Select Editor", filepath)) {
Ankit Kumar Dwivedi a39ab8
		image_editor_path_entry.set_text(filepath);
Ankit Kumar Dwivedi a39ab8
		App::image_editor_path = filepath;
398a50
	}
Ankit Kumar Dwivedi 6b475c
}
Ankit Kumar Dwivedi 6b475c
Ankit Kumar Dwivedi 0ca919
bool 
Ankit Kumar Dwivedi 73a12d
Dialog_Setup::select_path_dialog(const std::string &title, std::string &filepath)
Ankit Kumar Dwivedi 6b475c
{
Ankit Kumar Dwivedi 0ca919
	Gtk::FileChooserDialog *dialog = new Gtk::FileChooserDialog(*App::main_window,title, Gtk::FILE_CHOOSER_ACTION_OPEN);
Ankit Kumar Dwivedi 0ca919
	dialog->set_transient_for(*App::main_window);
Ankit Kumar Dwivedi 93dee2
	#ifdef WIN32
Ankit Kumar Dwivedi 79b31b
	dialog->set_current_folder("C:\\Program Files");
Ankit Kumar Dwivedi 93dee2
Ankit Kumar Dwivedi 93dee2
	#elif defined(__APPLE__)
Ankit Kumar Dwivedi 93dee2
    dialog->set_current_folder("/Applications");
Ankit Kumar Dwivedi 93dee2
Ankit Kumar Dwivedi 93dee2
	#else
Ankit Kumar Dwivedi 93dee2
    	dialog->set_current_folder("/usr/bin");
Ankit Kumar Dwivedi 93dee2
	#endif
Ankit Kumar Dwivedi 6b475c
Ankit Kumar Dwivedi 0ca919
	//Add response buttons the the dialog:
Ankit Kumar Dwivedi 0ca919
	dialog->add_button("_Cancel", Gtk::RESPONSE_CANCEL);
Ankit Kumar Dwivedi 0ca919
	dialog->add_button("Select", Gtk::RESPONSE_OK);
Ankit Kumar Dwivedi 6b475c
  	if(dialog->run() == Gtk::RESPONSE_OK) {
Ankit Kumar Dwivedi 6b475c
		filepath = dialog->get_filename();
Ankit Kumar Dwivedi 0ca919
		filepath = absolute_path(filepath);	//get the absolute path
Ankit Kumar Dwivedi 6b475c
		delete dialog;
Ankit Kumar Dwivedi 6b475c
		return true;
Ankit Kumar Dwivedi 6b475c
	}
Ankit Kumar Dwivedi 6b475c
	delete dialog;
Ankit Kumar Dwivedi 6b475c
	return false;
Ankit Kumar Dwivedi 6b475c
}
Ankit Kumar Dwivedi 0ca919
[d.j.a.y] Jerome Blanchi 20b1a7
void
[d.j.a.y] Jerome Blanchi 9375e9
Dialog_Setup::create_render_page(PageInfo pi)
[d.j.a.y] Jerome Blanchi 20b1a7
{
[d.j.a.y] Jerome Blanchi a35046
	/*---------Render------------------*\
[d.j.a.y] Jerome Blanchi a35046
	 *
[d.j.a.y] Jerome Blanchi a35046
	 *  sequence separator _________
[d.j.a.y] Jerome Blanchi b85adb
	 *   workarea  [ Legacy ]
BobSynfig 1d1ab7
	 *   play sound on render done  [x| ]
[d.j.a.y] Jerome Blanchi a35046
	 *
[d.j.a.y] Jerome Blanchi a35046
	 */
Yu Chen 72e6ac
[d.j.a.y] Jerome Blanchi 087a05
	int row(1);
Carlos Lopez d89f58
	// Render - Image sequence separator
[d.j.a.y] Jerome Blanchi 9375e9
	attach_label(pi.grid, _("Image Sequence Separator String"), row);
[d.j.a.y] Jerome Blanchi 9375e9
	pi.grid->attach(image_sequence_separator, 1, row, 1, 1);
[d.j.a.y] Jerome Blanchi a35046
	image_sequence_separator.set_hexpand(true);
Ankit Kumar Dwivedi 134aaf
[d.j.a.y] Jerome Blanchi b85adb
	// Render - WorkArea
[d.j.a.y] Jerome Blanchi 9375e9
	attach_label(pi.grid, _("WorkArea renderer"), ++row);
[d.j.a.y] Jerome Blanchi 9375e9
	pi.grid->attach(workarea_renderer_combo, 1, row, 1, 1);
BobSynfig 1d1ab7
	// Render - Render Done sound
BobSynfig 1d1ab7
	attach_label(pi.grid, _("Chime on render done"), ++row);
BobSynfig 1d1ab7
	pi.grid->attach(toggle_play_sound_on_render_done, 1, row, 1, 1);
BobSynfig 1d1ab7
	toggle_play_sound_on_render_done.set_halign(Gtk::ALIGN_START);
BobSynfig 1d1ab7
	toggle_play_sound_on_render_done.set_hexpand(false);
BobSynfig 1d1ab7
	toggle_play_sound_on_render_done.set_tooltip_text(_("A chime is played when render has finished."));
BobSynfig 1d1ab7
	toggle_play_sound_on_render_done.property_active().signal_changed().connect(
BobSynfig 1d1ab7
			sigc::mem_fun(*this, &Dialog_Setup::on_play_sound_on_render_done_changed));
bw 30a6da
b006b4
	synfig::rendering::Renderer::Handle default_renderer = synfig::rendering::Renderer::get_renderer("");
b006b4
	workarea_renderer_combo.append("", String() + _("Default") + " - " + default_renderer->get_name());
bw 30a6da
	typedef std::map<synfig::string, synfig::rendering::renderer::handle=""> RendererMap;</synfig::string,>
bw 30a6da
	const RendererMap &renderers = synfig::rendering::Renderer::get_renderers();
bw 30a6da
	for(RendererMap::const_iterator i = renderers.begin(); i != renderers.end(); ++i)
bw 30a6da
	{
bw 30a6da
		assert(!i->first.empty());
5cb77b
		workarea_renderer_combo.append(i->first, i->second->get_name());
bw 30a6da
	}
BobSynfig 366b65
BobSynfig 366b65
	attach_label(pi.grid, _("Preview Background Color"), ++row);
BobSynfig 366b65
BobSynfig 366b65
	Gdk::RGBA m_color;
BobSynfig 366b65
	m_color.set_rgba( App::preview_background_color.get_r(),
BobSynfig 366b65
	                  App::preview_background_color.get_g(),
BobSynfig 366b65
	                  App::preview_background_color.get_b(),
BobSynfig 366b65
	                  App::preview_background_color.get_a());
BobSynfig 366b65
	preview_background_color_button.set_rgba(m_color);
BobSynfig 366b65
	pi.grid->attach(preview_background_color_button, 1, row, 1, 1);
BobSynfig 366b65
	preview_background_color_button.signal_color_set().connect(
BobSynfig 366b65
		sigc::mem_fun(*this, &studio::Dialog_Setup::on_preview_background_color_changed) );
BobSynfig 366b65
[d.j.a.y] Jerome Blanchi 20b1a7
}
[d.j.a.y] Jerome Blanchi 6e93dc
[d.j.a.y] Jerome Blanchi 20b1a7
void
[d.j.a.y] Jerome Blanchi 9375e9
Dialog_Setup::create_interface_page(PageInfo pi)
[d.j.a.y] Jerome Blanchi 20b1a7
{
[d.j.a.y] Jerome Blanchi 087a05
	/*---------Interface------------------*\
[d.j.a.y] Jerome Blanchi 087a05
	 * LANGUAGE
[d.j.a.y] Jerome Blanchi 087a05
	 *  [________________________________]
[d.j.a.y] Jerome Blanchi 087a05
	 * COLORTHEME
[d.j.a.y] Jerome Blanchi 087a05
	 *  DarkUI          [x]
[d.j.a.y] Jerome Blanchi 087a05
	 * HANDLETOOLTIP
[d.j.a.y] Jerome Blanchi 087a05
	 *  Widthpoint      [x| ]
[d.j.a.y] Jerome Blanchi 087a05
	 *  Radius          [x| ]
[d.j.a.y] Jerome Blanchi 2f964f
	 *  Transformation  [x| ]
[d.j.a.y] Jerome Blanchi 2f964f
	 *        [x] Name
[d.j.a.y] Jerome Blanchi 2f964f
	 *        [x] Value
[d.j.a.y] Jerome Blanchi 087a05
	 */
[d.j.a.y] Jerome Blanchi 8703f6
[d.j.a.y] Jerome Blanchi 8703f6
	// Interface - UI Language
[d.j.a.y] Jerome Blanchi 8703f6
c70f84
	static const char* languages[][2] = {
c70f84
		#include <languages.inc.c></languages.inc.c>
BobSynfig 366b65
		#include <gdkmm-3.0 gdkmm="" rgba.h=""></gdkmm-3.0>
c70f84
		{ NULL, NULL } // final entry without comma to avoid misunderstanding
c70f84
	};
[d.j.a.y] Jerome Blanchi 8703f6
c70f84
	ui_language_combo.append("os_LANG", Glib::ustring("(") + _("System Language") + ")");
c70f84
	for(int i = 0; i < (int)(sizeof(languages)/sizeof(languages[0])) - 1; ++i)
0c3f44
		if (languages[i][1] == Glib::ustring())
0c3f44
			ui_language_combo.append(languages[i][0], Glib::ustring("[") + languages[i][0] + "]");
0c3f44
		else
0c3f44
			ui_language_combo.append(languages[i][0], languages[i][1]);
c70f84
	ui_language_combo.set_active_id(App::ui_language);
[d.j.a.y] Jerome Blanchi 8703f6
	ui_language_combo.signal_changed().connect(sigc::mem_fun(*this, &studio::Dialog_Setup::on_ui_language_combo_change));
[d.j.a.y] Jerome Blanchi 8703f6
c70f84
	int row = 1;
c70f84
[d.j.a.y] Jerome Blanchi 2d4b75
	// Interface - Language section
[d.j.a.y] Jerome Blanchi 9375e9
	attach_label_section(pi.grid, _("Language"), row);
[d.j.a.y] Jerome Blanchi 9375e9
	pi.grid->attach(ui_language_combo, 0, ++row, 4, 1);
[d.j.a.y] Jerome Blanchi 50f93d
	ui_language_combo.set_hexpand(true);
[d.j.a.y] Jerome Blanchi 2d4b75
	ui_language_combo.set_margin_start(10);
[d.j.a.y] Jerome Blanchi 8703f6
[d.j.a.y] Jerome Blanchi 2d4b75
	// Interface - Color Theme section
[d.j.a.y] Jerome Blanchi 9375e9
	attach_label_section(pi.grid, _("Color Theme"), ++row);
[d.j.a.y] Jerome Blanchi 8703f6
	// Interface - Dark UI theme
[d.j.a.y] Jerome Blanchi 9375e9
	attach_label(pi.grid, _("Dark UI theme (if available)"), ++row);
[d.j.a.y] Jerome Blanchi 9375e9
	pi.grid->attach(toggle_use_dark_theme, 1, row, 1, 1);
caryoscelus 4ea811
	toggle_use_dark_theme.set_halign(Gtk::ALIGN_START);
caryoscelus 4ea811
	toggle_use_dark_theme.set_hexpand(false);
[d.j.a.y] Jerome Blanchi 50f93d
caryoscelus 6a5c29
	// Interface - Toolbars section
caryoscelus 6a5c29
	attach_label_section(pi.grid, _("Toolbars"), ++row);
caryoscelus 6a5c29
	// Interface - File Toolbar
caryoscelus 6a5c29
	attach_label(pi.grid, _("Show file toolbar (requires restart)"), ++row);
caryoscelus 6a5c29
	pi.grid->attach(toggle_show_file_toolbar, 1, row, 1, 1);
caryoscelus 4ea811
	toggle_show_file_toolbar.set_halign(Gtk::ALIGN_START);
caryoscelus 4ea811
	toggle_show_file_toolbar.set_hexpand(false);
caryoscelus 6a5c29
[d.j.a.y] Jerome Blanchi 2d4b75
	// Interface - Handle tooltip section
[d.j.a.y] Jerome Blanchi 2f964f
	attach_label_section(pi.grid, _("Handle Tooltips"), ++row);
[d.j.a.y] Jerome Blanchi 50f93d
	// Interface - width point tooltip
[d.j.a.y] Jerome Blanchi 2f964f
	attach_label(pi.grid, _("Width point"), ++row);
[d.j.a.y] Jerome Blanchi 9375e9
	pi.grid->attach(toggle_handle_tooltip_widthpoint, 1, row, 1, 1);
[d.j.a.y] Jerome Blanchi 2d4b75
	toggle_handle_tooltip_widthpoint.set_halign(Gtk::ALIGN_START);
[d.j.a.y] Jerome Blanchi 2d4b75
	toggle_handle_tooltip_widthpoint.set_hexpand(false);
[d.j.a.y] Jerome Blanchi 50f93d
	// Interface - radius tooltip
[d.j.a.y] Jerome Blanchi 2f964f
	attach_label(pi.grid, _("Radius"), ++row);
[d.j.a.y] Jerome Blanchi 9375e9
	pi.grid->attach(toggle_handle_tooltip_radius, 1, row, 1, 1);
[d.j.a.y] Jerome Blanchi 2d4b75
	toggle_handle_tooltip_radius.set_halign(Gtk::ALIGN_START);
[d.j.a.y] Jerome Blanchi 2d4b75
	toggle_handle_tooltip_radius.set_hexpand(false);
[d.j.a.y] Jerome Blanchi 0a3ff4
	// Interface - transformation widget tooltip
caryoscelus e49ce4
	attach_label_section(pi.grid, _("Transformation widget tooltips"), ++row);
[d.j.a.y] Jerome Blanchi 9375e9
	pi.grid->attach(toggle_handle_tooltip_transformation, 1, row, 1, 1);
[d.j.a.y] Jerome Blanchi 2d4b75
	toggle_handle_tooltip_transformation.set_halign(Gtk::ALIGN_START);
[d.j.a.y] Jerome Blanchi 2d4b75
	toggle_handle_tooltip_transformation.set_hexpand(false);
[d.j.a.y] Jerome Blanchi b85adb
	toggle_handle_tooltip_transformation.property_active().signal_changed().connect(
BobSynfig 366b65
		sigc::mem_fun(*this, &Dialog_Setup::on_tooltip_transformation_changed));
[d.j.a.y] Jerome Blanchi 2f964f
caryoscelus e49ce4
	attach_label(pi.grid, _("Name"), ++row);// HANDLE_TOOLTIP_TRANSFO_NAME
caryoscelus e49ce4
	pi.grid->attach(toggle_handle_tooltip_transfo_name, 1, row, 1, 1);
caryoscelus e49ce4
	toggle_handle_tooltip_transfo_name.set_halign(Gtk::ALIGN_START);
caryoscelus e49ce4
	toggle_handle_tooltip_transfo_name.set_hexpand(false);
caryoscelus e49ce4
	attach_label(pi.grid, _("Value"), ++row);// HANDLE_TOOLTIP_TRANSFO_VALUE
caryoscelus e49ce4
	pi.grid->attach(toggle_handle_tooltip_transfo_value, 1, row, 1, 1);
caryoscelus e49ce4
	toggle_handle_tooltip_transfo_value.set_halign(Gtk::ALIGN_START);
caryoscelus e49ce4
	toggle_handle_tooltip_transfo_value.set_hexpand(false);
[d.j.a.y] Jerome Blanchi b85adb
[d.j.a.y] Jerome Blanchi b85adb
	//! change resume signal connexion
[d.j.a.y] Jerome Blanchi b85adb
	ui_language_combo.signal_changed().connect(
[d.j.a.y] Jerome Blanchi b85adb
			sigc::bind<int> (sigc::mem_fun(*this, &Dialog_Setup::on_value_change), CHANGE_UI_LANGUAGE));</int>
[d.j.a.y] Jerome Blanchi b85adb
	//TODO signal change on value
[d.j.a.y] Jerome Blanchi b85adb
	//toggle_use_dark_theme.signal_changed().connect(
BobSynfig 366b65
	//	sigc::bind<int> (sigc::mem_fun(*this, &Dialog_Setup::on_value_change), CHANGE_UI_THEME));</int>
[d.j.a.y] Jerome Blanchi b85adb
	toggle_handle_tooltip_widthpoint.property_active().signal_changed().connect(
BobSynfig 366b65
		sigc::bind<int> (sigc::mem_fun(*this, &Dialog_Setup::on_value_change), CHANGE_UI_HANDLE_TOOLTIP));</int>
[d.j.a.y] Jerome Blanchi b85adb
	toggle_handle_tooltip_radius.property_active().signal_changed().connect(
BobSynfig 366b65
		sigc::bind<int> (sigc::mem_fun(*this, &Dialog_Setup::on_value_change), CHANGE_UI_HANDLE_TOOLTIP));</int>
[d.j.a.y] Jerome Blanchi b85adb
	toggle_handle_tooltip_transformation.property_active().signal_changed().connect(
BobSynfig 366b65
		sigc::bind<int> (sigc::mem_fun(*this, &Dialog_Setup::on_value_change), CHANGE_UI_HANDLE_TOOLTIP));</int>
[d.j.a.y] Jerome Blanchi 2f964f
	toggle_handle_tooltip_transfo_name.property_active().signal_changed().connect(
BobSynfig 366b65
		sigc::bind<int> (sigc::mem_fun(*this, &Dialog_Setup::on_value_change), CHANGE_UI_HANDLE_TOOLTIP));</int>
[d.j.a.y] Jerome Blanchi 2f964f
	toggle_handle_tooltip_transfo_value.property_active().signal_changed().connect(
BobSynfig 366b65
		sigc::bind<int> (sigc::mem_fun(*this, &Dialog_Setup::on_value_change), CHANGE_UI_HANDLE_TOOLTIP));</int>
Carlos Lopez a09598
}
Carlos Lopez a09598
Carlos Lopez a09598
void
Yu Chen e8da6e
Dialog_Setup::on_restore_pressed()
Yu Chen e8da6e
{
Yu Chen e8da6e
    App::restore_default_settings();
Yu Chen e8da6e
	hide();
Yu Chen e8da6e
}
Yu Chen e8da6e
Yu Chen e8da6e
Carlos Lopez a09598
void
Carlos Lopez a09598
Dialog_Setup::on_apply_pressed()
Carlos Lopez a09598
{
536d22
	App::set_max_recent_files((int)adj_recent_files->get_value());
Carlos Lopez a09598
Carlos Lopez a09598
	// Set the time format
Carlos Lopez a09598
	App::set_time_format(get_time_format());
Carlos Lopez a09598
[d.j.a.y] Jerome Blanchi 19fa49
	//if(pref_modification_flag&CHANGE_AUTOBACKUP)
[d.j.a.y] Jerome Blanchi 19fa49
	// TODO catch change event on auto_backup_interval before use CHANGE_AUTOBACKUP
[d.j.a.y] Jerome Blanchi 19fa49
	{
[d.j.a.y] Jerome Blanchi 19fa49
		// Set the auto backup status
0dde72
		App::auto_recover->set_enabled(toggle_autobackup.get_active());
[d.j.a.y] Jerome Blanchi 19fa49
		// Set the auto backup interval
0dde72
		App::auto_recover->set_timeout_ms(auto_backup_interval.get_value() * 1000);
[d.j.a.y] Jerome Blanchi 19fa49
	}
Carlos Lopez a09598
BobSynfig 366b65
	App::distance_system              = Distance::System(widget_enum->get_value());
Carlos Lopez a09598
Carlos Lopez a09598
	// Set the restrict_radius_ducks flag
BobSynfig 366b65
	App::restrict_radius_ducks        = toggle_restrict_radius_ducks.get_active();
Carlos Lopez a09598
Carlos Lopez a09598
	// Set the resize_imported_images flag
BobSynfig 366b65
	App::resize_imported_images       = toggle_resize_imported_images.get_active();
[d.j.a.y] Jerome Blanchi 6e93dc
12656b
	// Set the experimental features flag
BobSynfig 366b65
	App::enable_experimental_features = toggle_enable_experimental_features.get_active();
[d.j.a.y] Jerome Blanchi 6e93dc
12656b
	// Set the dark theme flag
BobSynfig 366b65
	App::use_dark_theme               = toggle_use_dark_theme.get_active();
caryoscelus 5b610c
	App::apply_gtk_settings();
Carlos Lopez a09598
caryoscelus 6a5c29
	// Set file toolbar flag
caryoscelus 6a5c29
	App::show_file_toolbar=toggle_show_file_toolbar.get_active();
caryoscelus 6a5c29
luz.paz 99f3ef
	//! TODO Create Change mechanism has Class for being used elsewhere
[d.j.a.y] Jerome Blanchi a782c3
	// Set the preferred brush path(s)
[d.j.a.y] Jerome Blanchi 19fa49
	if (pref_modification_flag&CHANGE_BRUSH_PATH)
[d.j.a.y] Jerome Blanchi f34e20
	{
[d.j.a.y] Jerome Blanchi a782c3
		App::brushes_path.clear();
[d.j.a.y] Jerome Blanchi a782c3
		int path_count = 0;
[d.j.a.y] Jerome Blanchi f34e20
[d.j.a.y] Jerome Blanchi a782c3
		Glib::RefPtr<gtk::liststore> liststore = Glib::RefPtr<gtk::liststore>::cast_dynamic(</gtk::liststore></gtk::liststore>
BobSynfig 366b65
			listviewtext_brushes_path->get_model());
[d.j.a.y] Jerome Blanchi f34e20
[d.j.a.y] Jerome Blanchi a782c3
		for(Gtk::TreeIter ui_iter = liststore->children().begin();
BobSynfig 366b65
			ui_iter!=liststore->children().end();ui_iter++)
[d.j.a.y] Jerome Blanchi a782c3
		{
[d.j.a.y] Jerome Blanchi a782c3
			const Gtk::TreeRow row = *(ui_iter);
[d.j.a.y] Jerome Blanchi a782c3
			// TODO utf_8 path : care to other locale than english ?
[d.j.a.y] Jerome Blanchi a782c3
			synfig::String path((row[prefs_brushpath.path]));
[d.j.a.y] Jerome Blanchi a782c3
			input_settings.set_value(strprintf("brush.path_%d", path_count++), path);
[d.j.a.y] Jerome Blanchi a782c3
			App::brushes_path.insert(path);
[d.j.a.y] Jerome Blanchi a782c3
		}
[d.j.a.y] Jerome Blanchi a782c3
		input_settings.set_value("brush.path_count", strprintf("%d", path_count));
[d.j.a.y] Jerome Blanchi f34e20
	}
Carlos Lopez a09598
Carlos Lopez a09598
	// Set the preferred file name prefix
BobSynfig 366b65
	App::custom_filename_prefix = textbox_custom_filename_prefix.get_text();
Carlos Lopez a09598
Ankit Kumar Dwivedi 0ca919
	// Set the preferred image editor
Ankit Kumar Dwivedi a39ab8
	App::image_editor_path = image_editor_path_entry.get_text();
Ankit Kumar Dwivedi 0ca919
Carlos Lopez a09598
	// Set the preferred new Document X dimension
BobSynfig 366b65
	App::preferred_x_size       = int(adj_pref_x_size->get_value());
Carlos Lopez a09598
Carlos Lopez a09598
	// Set the preferred new Document Y dimension
BobSynfig 366b65
	App::preferred_y_size       = int(adj_pref_y_size->get_value());
Carlos Lopez a09598
Carlos Lopez a09598
	// Set the preferred Predefined size
BobSynfig 366b65
	App::predefined_size        = size_template_combo->get_active_text();
Carlos Lopez a09598
Carlos Lopez a09598
	// Set the preferred Predefined fps
BobSynfig 366b65
	App::predefined_fps         = fps_template_combo->get_active_text();
Carlos Lopez a09598
Carlos Lopez a09598
	// Set the preferred FPS
BobSynfig 366b65
	App::preferred_fps          = Real(adj_pref_fps->get_value());
Carlos Lopez a09598
Carlos Lopez d89f58
	// Set the preferred image sequence separator
BobSynfig 366b65
	App::sequence_separator     = image_sequence_separator.get_text();
Carlos Lopez d89f58
Ankit Kumar Dwivedi 134aaf
	// Set the workarea render and navigator render flag
Ankit Kumar Dwivedi 134aaf
	App::navigator_renderer = App::workarea_renderer  = workarea_renderer_combo.get_active_id();
Carlos Lopez 9e46e1
BobSynfig 1d1ab7
	// Set the use of a render done sound
BobSynfig 366b65
	App::use_render_done_sound  = toggle_play_sound_on_render_done.get_active();
BobSynfig 1d1ab7
Yu Chen 9d1feb
	// Set ui language
BobSynfig 366b65
	if (pref_modification_flag & CHANGE_UI_LANGUAGE)
c70f84
		App::ui_language = ui_language_combo.get_active_id().c_str();
[d.j.a.y] Jerome Blanchi b85adb
BobSynfig 366b65
	if (pref_modification_flag & CHANGE_UI_HANDLE_TOOLTIP)
[d.j.a.y] Jerome Blanchi b85adb
	{
luz.paz 99f3ef
		// Set ui tooltip on width point
luz.paz 99f3ef
		App::ui_handle_tooltip_flag=toggle_handle_tooltip_widthpoint.get_active()?Duck::STRUCT_WIDTHPOINT:Duck::STRUCT_NONE;
[d.j.a.y] Jerome Blanchi b85adb
		// Set ui tooltip on radius
BobSynfig 366b65
		App::ui_handle_tooltip_flag |= toggle_handle_tooltip_radius.get_active()?Duck::STRUCT_RADIUS:Duck::STRUCT_NONE;
[d.j.a.y] Jerome Blanchi b85adb
		// Set ui tooltip on transformation
[d.j.a.y] Jerome Blanchi b85adb
		if(toggle_handle_tooltip_transformation.get_active())
[d.j.a.y] Jerome Blanchi b85adb
		{
[d.j.a.y] Jerome Blanchi 2f964f
			if(toggle_handle_tooltip_transfo_name.get_active())
[d.j.a.y] Jerome Blanchi b85adb
			{
BobSynfig 366b65
				App::ui_handle_tooltip_flag |= Duck::STRUCT_TRANSFORMATION;
[d.j.a.y] Jerome Blanchi 2f964f
			}
[d.j.a.y] Jerome Blanchi 2f964f
			if(toggle_handle_tooltip_transfo_value.get_active())
[d.j.a.y] Jerome Blanchi 2f964f
			{
BobSynfig 366b65
				App::ui_handle_tooltip_flag |= Duck::STRUCT_TRANSFO_BY_VALUE;
[d.j.a.y] Jerome Blanchi b85adb
			}
[d.j.a.y] Jerome Blanchi b85adb
		}
[d.j.a.y] Jerome Blanchi b85adb
	}
Yu Chen 9d1feb
Carlos Lopez a548fe
Yu Chen 9d1feb
	App::save_settings();
Carlos Lopez a548fe
	App::setup_changed();
Carlos Lopez a548fe
[d.j.a.y] Jerome Blanchi 19fa49
	if ((pref_modification_flag&CHANGE_BRUSH_PATH) &&
[d.j.a.y] Jerome Blanchi 61fc43
			String(App::get_selected_canvas_view()->get_smach().get_state_name()) == String("brush"))
[d.j.a.y] Jerome Blanchi 61fc43
	{
[d.j.a.y] Jerome Blanchi 61fc43
		App::get_selected_canvas_view()->get_smach().process_event(EVENT_REFRESH_TOOL_OPTIONS);
[d.j.a.y] Jerome Blanchi 61fc43
	}
[d.j.a.y] Jerome Blanchi 61fc43
Carlos Lopez a09598
}
Carlos Lopez a09598
Carlos Lopez a09598
void
Carlos Lopez a09598
Dialog_Setup::on_size_template_combo_change()
Carlos Lopez a09598
{
Carlos Lopez a09598
	String selection(size_template_combo->get_active_text());
Carlos Lopez a09598
	if(selection==DEFAULT_PREDEFINED_SIZE)
Carlos Lopez a09598
	{
Carlos Lopez a09598
		pref_y_size_spinbutton->set_sensitive(true);
Carlos Lopez a09598
		pref_x_size_spinbutton->set_sensitive(true);
Carlos Lopez a09598
		return;
Carlos Lopez a09598
	}
Carlos Lopez a09598
	String::size_type locx=selection.find_first_of("x"); // here should be some comparison with string::npos
Carlos Lopez a09598
	String::size_type locspace=selection.find_first_of(" ");
Carlos Lopez a09598
	String x_size(selection.substr(0,locx));
Carlos Lopez a09598
	String y_size(selection.substr(locx+1,locspace));
Carlos Lopez a09598
	int x=atoi(x_size.c_str());
Carlos Lopez a09598
	int y=atoi(y_size.c_str());
536d22
	adj_pref_x_size->set_value(x);
536d22
	adj_pref_y_size->set_value(y);
Carlos Lopez a09598
	pref_y_size_spinbutton->set_sensitive(false);
Carlos Lopez a09598
	pref_x_size_spinbutton->set_sensitive(false);
Carlos Lopez a09598
Carlos Lopez a09598
	return;
Carlos Lopez a09598
}
Carlos Lopez a09598
Yu Chen 72e6ac
Yu Chen 72e6ac
void
Yu Chen 72e6ac
Dialog_Setup::on_ui_language_combo_change()
Yu Chen 72e6ac
{
Yu Chen 72e6ac
}
Yu Chen 72e6ac
Yu Chen 72e6ac
Carlos Lopez a09598
void
Carlos Lopez a09598
Dialog_Setup::on_fps_template_combo_change()
Carlos Lopez a09598
{
Carlos Lopez a09598
	String selection(fps_template_combo->get_active_text());
Carlos Lopez a09598
	if(selection==DEFAULT_PREDEFINED_FPS)
Carlos Lopez a09598
	{
Carlos Lopez a09598
		pref_fps_spinbutton->set_sensitive(true);
Carlos Lopez a09598
		return;
Carlos Lopez a09598
	}
536d22
	adj_pref_fps->set_value(atof(selection.c_str()));
Carlos Lopez a09598
	pref_fps_spinbutton->set_sensitive(false);
Carlos Lopez a09598
	return;
Carlos Lopez a09598
}
Carlos Lopez a09598
Carlos Lopez a09598
void
6d3ca8
Dialog_Setup::on_time_format_changed()
6d3ca8
{
6d3ca8
	std::map<std::string, synfig::time::format="">::iterator i =</std::string,>
6d3ca8
		time_formats.find(timestamp_comboboxtext.get_active_text());
6d3ca8
	if (i != time_formats.end())
6d3ca8
		time_format = i->second;
6d3ca8
}
6d3ca8
6d3ca8
void
[d.j.a.y] Jerome Blanchi 19fa49
Dialog_Setup::on_autobackup_changed()
[d.j.a.y] Jerome Blanchi 19fa49
{
[d.j.a.y] Jerome Blanchi 19fa49
	auto_backup_interval.set_sensitive(toggle_autobackup.get_active());
0dde72
	App::auto_recover->set_enabled(toggle_autobackup.get_active());
[d.j.a.y] Jerome Blanchi 19fa49
}
[d.j.a.y] Jerome Blanchi 19fa49
[d.j.a.y] Jerome Blanchi 19fa49
void
BobSynfig 1d1ab7
Dialog_Setup::on_play_sound_on_render_done_changed()
BobSynfig 1d1ab7
{
BobSynfig 1d1ab7
	App::use_render_done_sound = toggle_play_sound_on_render_done.get_active();
BobSynfig 1d1ab7
}
BobSynfig 1d1ab7
BobSynfig 1d1ab7
void
BobSynfig 366b65
Dialog_Setup::on_def_background_type_changed()
BobSynfig 366b65
{
BobSynfig 366b65
	if (def_background_none.get_active())  App::default_background_layer_type = "none";
BobSynfig 366b65
	if (def_background_color.get_active()) App::default_background_layer_type = "solid_color";
BobSynfig 366b65
	if (def_background_image.get_active()) App::default_background_layer_type = "image";
BobSynfig 366b65
}
BobSynfig 366b65
BobSynfig 366b65
void
BobSynfig 366b65
Dialog_Setup::on_def_background_color_changed()
BobSynfig 366b65
{
BobSynfig 366b65
	Gdk::RGBA m_color = def_background_color_button.get_rgba();
BobSynfig 366b65
BobSynfig 366b65
	App::default_background_layer_color =
BobSynfig 366b65
		synfig::Color(m_color.get_red(),
BobSynfig 366b65
		              m_color.get_green(),
BobSynfig 366b65
		              m_color.get_blue(),
BobSynfig 366b65
		              m_color.get_alpha());
BobSynfig 366b65
}
BobSynfig 366b65
BobSynfig 366b65
void
BobSynfig 366b65
Dialog_Setup::on_def_background_image_set()
BobSynfig 366b65
{
BobSynfig 366b65
	App::default_background_layer_image = fcbutton_image.get_filename();
BobSynfig 366b65
}
BobSynfig 366b65
BobSynfig 366b65
void
BobSynfig 366b65
Dialog_Setup::on_preview_background_color_changed()
BobSynfig 366b65
{
BobSynfig 366b65
	Gdk::RGBA m_color = preview_background_color_button.get_rgba();
BobSynfig 366b65
BobSynfig 366b65
	App::preview_background_color =
BobSynfig 366b65
		synfig::Color(m_color.get_red(),
BobSynfig 366b65
		              m_color.get_green(),
BobSynfig 366b65
		              m_color.get_blue(),
BobSynfig 366b65
		              m_color.get_alpha());
BobSynfig 366b65
	//studio::Widget_Preview::
BobSynfig 366b65
}
BobSynfig 366b65
BobSynfig 366b65
void
[d.j.a.y] Jerome Blanchi b85adb
Dialog_Setup::on_tooltip_transformation_changed()
[d.j.a.y] Jerome Blanchi b85adb
{
[d.j.a.y] Jerome Blanchi 2f964f
	toggle_handle_tooltip_transfo_name.set_sensitive(toggle_handle_tooltip_transformation.get_active());
[d.j.a.y] Jerome Blanchi 2f964f
	toggle_handle_tooltip_transfo_value.set_sensitive(toggle_handle_tooltip_transformation.get_active());
[d.j.a.y] Jerome Blanchi b85adb
}
[d.j.a.y] Jerome Blanchi b85adb
[d.j.a.y] Jerome Blanchi b85adb
void
Carlos Lopez a09598
Dialog_Setup::refresh()
Carlos Lopez a09598
{
[d.j.a.y] Jerome Blanchi 19fa49
	refreshing = true;
[d.j.a.y] Jerome Blanchi 19fa49
	pref_modification_flag = CHANGE_NONE;
a4bbdd
	
536d22
	adj_recent_files->set_value(App::get_max_recent_files());
Carlos Lopez a09598
Carlos Lopez a09598
	// Refresh the time format
Carlos Lopez a09598
	set_time_format(App::get_time_format());
Carlos Lopez a09598
Carlos Lopez a09598
	widget_enum->set_value(App::distance_system);
Carlos Lopez a09598
0dde72
	toggle_autobackup.set_active(App::auto_recover->get_enabled());
Carlos Lopez a09598
	// Refresh the value of the auto backup interval
0dde72
	auto_backup_interval.set_value(App::auto_recover->get_timeout_ms() / 1000);
0dde72
	auto_backup_interval.set_sensitive(App::auto_recover->get_enabled());
Carlos Lopez a09598
Carlos Lopez a09598
	// Refresh the status of the restrict_radius_ducks flag
Carlos Lopez a09598
	toggle_restrict_radius_ducks.set_active(App::restrict_radius_ducks);
Carlos Lopez a09598
Carlos Lopez a09598
	// Refresh the status of the resize_imported_images flag
Carlos Lopez a09598
	toggle_resize_imported_images.set_active(App::resize_imported_images);
[d.j.a.y] Jerome Blanchi 6e93dc
12656b
	// Refresh the status of the experimental features flag
adbf94
	toggle_enable_experimental_features.set_active(App::enable_experimental_features);
[d.j.a.y] Jerome Blanchi 6e93dc
12656b
	// Refresh the status of the theme flag
12656b
	toggle_use_dark_theme.set_active(App::use_dark_theme);
Carlos Lopez a09598
BobSynfig 1d1ab7
	// Refresh the status of the render done sound flag
BobSynfig 1d1ab7
	toggle_play_sound_on_render_done.set_active(App::use_render_done_sound);
BobSynfig 1d1ab7
caryoscelus 6a5c29
	// Refresh the status of file toolbar flag
caryoscelus 6a5c29
	toggle_show_file_toolbar.set_active(App::show_file_toolbar);
caryoscelus 6a5c29
Ankit Kumar Dwivedi 0ca919
	// Refresh the preferred image editor path
Ankit Kumar Dwivedi a39ab8
	image_editor_path_entry.set_text(App::image_editor_path);
Ankit Kumar Dwivedi 0ca919
[d.j.a.y] Jerome Blanchi a782c3
	// Refresh the brush path(s)
[d.j.a.y] Jerome Blanchi 6e9dee
	Glib::RefPtr<gtk::liststore> liststore = Glib::RefPtr<gtk::liststore>::cast_dynamic(</gtk::liststore></gtk::liststore>
[d.j.a.y] Jerome Blanchi 6e9dee
			listviewtext_brushes_path->get_model());
luz.paz 99f3ef
	//! Keep "brushes_path" preferences entry for backward compatibility (15/12 - v1.0.3)
[d.j.a.y] Jerome Blanchi a782c3
	//! Now brush path(s) are hold by input preferences : brush.path_count & brush.path_%d
[d.j.a.y] Jerome Blanchi a782c3
	String value;
[d.j.a.y] Jerome Blanchi a782c3
	Gtk::TreeIter ui_iter;
[d.j.a.y] Jerome Blanchi a782c3
	bool bvalue(input_settings.get_value("brush.path_count",value));
[d.j.a.y] Jerome Blanchi a782c3
	int i(atoi(value.c_str()));
[d.j.a.y] Jerome Blanchi a782c3
	App::brushes_path.clear();
[d.j.a.y] Jerome Blanchi a782c3
	liststore->clear();
[d.j.a.y] Jerome Blanchi a782c3
	if(!bvalue || (bvalue && i<=0))
[d.j.a.y] Jerome Blanchi a782c3
	{
[d.j.a.y] Jerome Blanchi a782c3
		App::brushes_path.insert(App::get_base_path()+ETL_DIRECTORY_SEPARATOR+"share"+ETL_DIRECTORY_SEPARATOR+"synfig"+ETL_DIRECTORY_SEPARATOR+"brushes");
[d.j.a.y] Jerome Blanchi a782c3
	}
[d.j.a.y] Jerome Blanchi f34e20
	else
[d.j.a.y] Jerome Blanchi a782c3
	{
[d.j.a.y] Jerome Blanchi a782c3
		for(int j = 0; j
[d.j.a.y] Jerome Blanchi a782c3
		{
[d.j.a.y] Jerome Blanchi a782c3
			if(input_settings.get_value(strprintf("brush.path_%d", j),value))
[d.j.a.y] Jerome Blanchi a782c3
			{
[d.j.a.y] Jerome Blanchi a782c3
				App::brushes_path.insert(value);
[d.j.a.y] Jerome Blanchi a782c3
			}
[d.j.a.y] Jerome Blanchi a782c3
		}
[d.j.a.y] Jerome Blanchi a782c3
	}
[d.j.a.y] Jerome Blanchi a782c3
	for (set<synfig::string>::iterator setiter = App::brushes_path.begin();</synfig::string>
[d.j.a.y] Jerome Blanchi a782c3
			setiter != App::brushes_path.end(); setiter++)
[d.j.a.y] Jerome Blanchi a782c3
	{
[d.j.a.y] Jerome Blanchi a782c3
		ui_iter = liststore->append();
[d.j.a.y] Jerome Blanchi a782c3
		(*ui_iter)[prefs_brushpath.path]=*setiter;
[d.j.a.y] Jerome Blanchi a782c3
	}
[d.j.a.y] Jerome Blanchi a782c3
	// Select the first brush path entry
[d.j.a.y] Jerome Blanchi a782c3
	//listviewtext_brushes_path->get_selection()->select(
[d.j.a.y] Jerome Blanchi a782c3
	//		listviewtext_brushes_path->get_model()->children().begin());
Carlos Lopez a09598
Carlos Lopez a09598
	// Refresh the preferred filename prefix
Carlos Lopez a09598
	textbox_custom_filename_prefix.set_text(App::custom_filename_prefix);
Carlos Lopez a09598
Carlos Lopez a09598
	// Refresh the preferred new Document X dimension
536d22
	adj_pref_x_size->set_value(App::preferred_x_size);
Carlos Lopez a09598
Carlos Lopez a09598
	// Refresh the preferred new Document Y dimension
536d22
	adj_pref_y_size->set_value(App::preferred_y_size);
Carlos Lopez a09598
Carlos Lopez a09598
	// Refresh the preferred Predefined size
Carlos Lopez a09598
	size_template_combo->set_active_text(App::predefined_size);
Carlos Lopez a09598
Carlos Lopez a09598
	//Refresh the preferred FPS
536d22
	adj_pref_fps->set_value(App::preferred_fps);
Carlos Lopez a09598
Carlos Lopez a09598
	//Refresh the predefined FPS
Carlos Lopez a09598
	fps_template_combo->set_active_text(App::predefined_fps);
Carlos Lopez d89f58
Carlos Lopez d89f58
	//Refresh the sequence separator
Carlos Lopez d89f58
	image_sequence_separator.set_text(App::sequence_separator);
Carlos Lopez 960601
703bb0
	// Refresh the status of the workarea_renderer
bw 30a6da
	workarea_renderer_combo.set_active_id(App::workarea_renderer);
Yu Chen 72e6ac
Yu Chen 72e6ac
	// Refresh the ui language
Yu Chen 72e6ac
[d.j.a.y] Jerome Blanchi 50f93d
	// refresh ui tooltip handle info
[d.j.a.y] Jerome Blanchi 2d4b75
	toggle_handle_tooltip_widthpoint.set_active(App::ui_handle_tooltip_flag&Duck::STRUCT_WIDTHPOINT);
[d.j.a.y] Jerome Blanchi 2d4b75
	toggle_handle_tooltip_radius.set_active(App::ui_handle_tooltip_flag&Duck::STRUCT_RADIUS);
[d.j.a.y] Jerome Blanchi 2f964f
	if((App::ui_handle_tooltip_flag&Duck::STRUCT_TRANSFORMATION) ||
[d.j.a.y] Jerome Blanchi 2f964f
			(App::ui_handle_tooltip_flag&Duck::STRUCT_TRANSFO_BY_VALUE))
[d.j.a.y] Jerome Blanchi 2f964f
	{
[d.j.a.y] Jerome Blanchi 2f964f
		toggle_handle_tooltip_transformation.set_active(true);
[d.j.a.y] Jerome Blanchi 2f964f
		toggle_handle_tooltip_transfo_name.set_active(
[d.j.a.y] Jerome Blanchi 2f964f
			(App::ui_handle_tooltip_flag&Duck::STRUCT_TRANSFORMATION));
[d.j.a.y] Jerome Blanchi 2f964f
		toggle_handle_tooltip_transfo_value.set_active(
[d.j.a.y] Jerome Blanchi b85adb
			(App::ui_handle_tooltip_flag&Duck::STRUCT_TRANSFO_BY_VALUE));
[d.j.a.y] Jerome Blanchi 2f964f
	}
[d.j.a.y] Jerome Blanchi 2f964f
	else
[d.j.a.y] Jerome Blanchi b85adb
	{
[d.j.a.y] Jerome Blanchi 2f964f
		toggle_handle_tooltip_transformation.set_active(false);
[d.j.a.y] Jerome Blanchi 2f964f
		toggle_handle_tooltip_transfo_name.set_sensitive(false);
[d.j.a.y] Jerome Blanchi 2f964f
		toggle_handle_tooltip_transfo_value.set_sensitive(false);
[d.j.a.y] Jerome Blanchi b85adb
	}
[d.j.a.y] Jerome Blanchi 50f93d
[d.j.a.y] Jerome Blanchi 19fa49
	refreshing = false;
Carlos Lopez a09598
}
Carlos Lopez a09598
Carlos Lopez a09598
void
Carlos Lopez a09598
Dialog_Setup::set_time_format(synfig::Time::Format x)
Carlos Lopez a09598
{
Carlos Lopez a09598
	time_format=x;
c440a8
	if (x == (Time::FORMAT_NORMAL))
6d3ca8
		timestamp_comboboxtext.set_active(1);
Carlos Lopez a09598
	else if (x == (Time::FORMAT_NORMAL | Time::FORMAT_NOSPACES))
6d3ca8
		timestamp_comboboxtext.set_active(2);
Carlos Lopez a09598
	else if (x == (Time::FORMAT_NORMAL | Time::FORMAT_FULL))
6d3ca8
		timestamp_comboboxtext.set_active(3);
Carlos Lopez a09598
	else if (x == (Time::FORMAT_NORMAL | Time::FORMAT_NOSPACES | Time::FORMAT_FULL))
6d3ca8
		timestamp_comboboxtext.set_active(4);
Carlos Lopez a09598
	else if (x == (Time::FORMAT_FRAMES))
6d3ca8
		timestamp_comboboxtext.set_active(5);
c440a8
	else if (x <= Time::FORMAT_VIDEO)
c440a8
		timestamp_comboboxtext.set_active(0);
Carlos Lopez a09598
	else
6d3ca8
		timestamp_comboboxtext.set_active(1);
Carlos Lopez a09598
}
Carlos Lopez a09598
[d.j.a.y] Jerome Blanchi 2dccb1
void
[d.j.a.y] Jerome Blanchi f34e20
Dialog_Setup::on_brush_path_add_clicked()
[d.j.a.y] Jerome Blanchi f34e20
{
[d.j.a.y] Jerome Blanchi 2ff5fa
	synfig::String foldername;
[d.j.a.y] Jerome Blanchi a782c3
	//! TODO dialog_add_folder
[d.j.a.y] Jerome Blanchi 2ff5fa
	if(App::dialog_open_folder(_("Select a new path for brush"), foldername, MISC_DIR_PREFERENCE, *this))
[d.j.a.y] Jerome Blanchi 4fd5ec
	{
[d.j.a.y] Jerome Blanchi 4fd5ec
		// add the new path
[d.j.a.y] Jerome Blanchi 4fd5ec
		Glib::RefPtr<gtk::liststore> liststore = Glib::RefPtr<gtk::liststore>::cast_dynamic(</gtk::liststore></gtk::liststore>
[d.j.a.y] Jerome Blanchi 4fd5ec
				listviewtext_brushes_path->get_model());
[d.j.a.y] Jerome Blanchi 4fd5ec
		Gtk::TreeIter it(liststore->append());
[d.j.a.y] Jerome Blanchi 2ff5fa
		(*it)[prefs_brushpath.path]=foldername;
[d.j.a.y] Jerome Blanchi 4fd5ec
		// high light it in the brush path list
[d.j.a.y] Jerome Blanchi 4fd5ec
		listviewtext_brushes_path->scroll_to_row(listviewtext_brushes_path->get_model()->get_path(*it));
[d.j.a.y] Jerome Blanchi 4fd5ec
		listviewtext_brushes_path->get_selection()->select(listviewtext_brushes_path->get_model()->get_path(*it));
[d.j.a.y] Jerome Blanchi 83ae40
[d.j.a.y] Jerome Blanchi 83ae40
		pref_modification_flag|=CHANGE_BRUSH_PATH;
[d.j.a.y] Jerome Blanchi 4fd5ec
	}
[d.j.a.y] Jerome Blanchi f34e20
}
[d.j.a.y] Jerome Blanchi f34e20
[d.j.a.y] Jerome Blanchi f34e20
void
[d.j.a.y] Jerome Blanchi f34e20
Dialog_Setup::on_brush_path_remove_clicked()
[d.j.a.y] Jerome Blanchi f34e20
{
[d.j.a.y] Jerome Blanchi 4fd5ec
	Glib::RefPtr<gtk::liststore> refLStore = Glib::RefPtr<gtk::liststore>::cast_dynamic(listviewtext_brushes_path->get_model());</gtk::liststore></gtk::liststore>
[d.j.a.y] Jerome Blanchi 4fd5ec
	refLStore->erase(listviewtext_brushes_path->get_selection()->get_selected());
[d.j.a.y] Jerome Blanchi f34e20
[d.j.a.y] Jerome Blanchi 83ae40
	pref_modification_flag|=CHANGE_BRUSH_PATH;
[d.j.a.y] Jerome Blanchi 4fd5ec
	//! TODO if list size == 0: push warning to warning zone
[d.j.a.y] Jerome Blanchi f34e20
}
[d.j.a.y] Jerome Blanchi b85adb
[d.j.a.y] Jerome Blanchi b85adb
void
[d.j.a.y] Jerome Blanchi b85adb
Dialog_Setup::on_value_change(int valueflag)
[d.j.a.y] Jerome Blanchi b85adb
{
[d.j.a.y] Jerome Blanchi b85adb
	if(!refreshing) pref_modification_flag |= valueflag;
[d.j.a.y] Jerome Blanchi b85adb
}