45 file_browse_button (
_(
"Browse"))
67 get_vbox()->pack_start (
file_frame,
false,
false);
86 CellRendererToggle *toggle =
dynamic_cast<CellRendererToggle *
> (
session_browser.get_column_cell_renderer (1));
95 ok_button = add_button (
_(
"Import"), RESPONSE_ACCEPT);
117 handlers.push_back (boost::static_pointer_cast<ElementImportHandler> (region_handler));
118 handlers.push_back (boost::static_pointer_cast<ElementImportHandler> (pl_handler));
126 if (ElementImportHandler::dirty()) {
128 string txt =
_(
"Some elements had errors in them. Please see the log for details");
129 MessageDialog msg (txt,
false, MESSAGE_WARNING, BUTTONS_OK,
true);
141 for (HandlerList::iterator handler =
handlers.begin(); handler !=
handlers.end(); ++handler) {
143 TreeModel::Row row = *iter;
150 for (ElementList::iterator element = elements.begin(); element != elements.end(); ++element) {
152 TreeModel::Row child = *iter;
164 FileChooserDialog dialog(
_(
"Import from session"),
browse_action());
165 dialog.set_transient_for(*
this);
168 FileFilter session_filter;
170 session_filter.set_name (
string_compose (
_(
"%1 sessions"), PROGRAM_NAME));
171 dialog.add_filter (session_filter);
172 dialog.set_filter (session_filter);
174 dialog.add_button(Stock::CANCEL, RESPONSE_CANCEL);
175 dialog.add_button(Stock::OK, RESPONSE_OK);
177 int result = dialog.run();
179 if (result == RESPONSE_OK) {
180 string filename = dialog.get_filename();
182 if (filename.length()) {
195 TreeModel::Children::iterator ti;
196 for (ti = types.begin(); ti != types.end(); ++ti) {
198 TreeModel::Children elements = ti->children();
199 TreeModel::Children::iterator ei;
200 for (ei = elements.begin(); ei != elements.end(); ++ei) {
210 if (ElementImportHandler::errors()) {
212 string txt =
_(
"Some elements had errors in them. Please see the log for details");
213 MessageDialog msg (txt,
false, MESSAGE_WARNING, BUTTONS_OK,
true);
222 TreeModel::iterator cell =
session_browser.get_model()->get_iter (path);
225 if (path.size() == 1) {
228 string txt =
_(
"This will select all elements of this type!");
229 MessageDialog msg (txt,
false, MESSAGE_QUESTION, BUTTONS_OK_CANCEL,
true);
230 if (msg.run() == RESPONSE_CANCEL) {
236 TreeModel::Children elements = cell->children();
237 TreeModel::Children::iterator ei;
238 for (ei = elements.begin(); ei != elements.end(); ++ei) {
240 if (element->prepare_move()) {
251 if (!element->prepare_move()) {
255 element->cancel_move();
262 if (path.size() == 1) {
266 TreeModel::iterator cell =
session_browser.get_model()->get_iter (path);
269 MessageDialog msg (info,
false, MESSAGE_INFO, BUTTONS_OK,
true);
282 std::pair<bool, string>
288 prompter.set_name (
"Prompter");
289 prompter.add_button (Stock::SAVE, RESPONSE_ACCEPT);
293 if (prompter.run() == RESPONSE_ACCEPT) {
295 if (new_name.length()) {
298 return std::make_pair (
true, new_name);
300 return std::make_pair (
false, new_name);
306 MessageDialog msg (text,
false, MESSAGE_QUESTION, BUTTONS_OK_CANCEL,
true);
307 if (msg.run() == RESPONSE_OK) {
void show_info(const Gtk::TreeModel::Path &path, Gtk::TreeViewColumn *column)
std::pair< bool, std::string > open_rename_dialog(std::string text, std::string name)
LIBGTKMM2EXT_API void set_size_request_to_display_given_text(Gtk::Widget &w, const gchar *text, gint hpadding, gint vpadding)
PBD::ScopedConnectionList connections
Gtk::Button file_browse_button
LIBPBD_API Transmitter error
Gtk::Button * cancel_button
void update(std::string path)
std::ostream & endmsg(std::ostream &ostr)
Glib::RefPtr< Gtk::TreeStore > session_tree
void set_initial_text(std::string txt)
Gtk::TreeView session_browser
Gtk::TreeModelColumn< ElementPtr > element
void load_session(const std::string &filename)
void set_prompt(std::string prompt)
Gtk::TreeModelColumn< std::string > info
virtual Gtk::FileChooserAction browse_action() const
LIBPBD_API Transmitter info
void get_result(std::string &str, bool strip=true)
LIBARDOUR_API const char *const statefile_suffix
boost::shared_ptr< ARDOUR::ElementImportHandler > HandlerPtr
SessionBrowserColumns sb_cols
bool open_prompt_dialog(std::string text)
std::list< ElementPtr > ElementList
virtual void set_session(ARDOUR::Session *)
Gtk::ScrolledWindow session_scroll
Gtk::TreeModelColumn< std::string > name
boost::shared_ptr< ARDOUR::ElementImporter > ElementPtr
ARDOUR::Session * _session
Gtk::TreeModelColumn< bool > queued
std::string string_compose(const std::string &fmt, const T1 &o1)
SessionImportDialog(ARDOUR::Session *target)