summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-04-10 01:35:11 +0000
committerCarl Hetherington <carl@carlh.net>2010-04-10 01:35:11 +0000
commit33028f4d6d993f8dbb644a3d869aba94738b5542 (patch)
tree380a44ae3cd478945f4fedc818ffebc0414ec67c /gtk2_ardour
parent2a4f4e27632cbda32ec908bfecececefcd48b023 (diff)
Fix import dialogue to correctly report (x of N) with multiple files, and slightly prettify it. Partially fixes #3064.
git-svn-id: svn://localhost/ardour2/branches/3.0@6882 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor.h2
-rw-r--r--gtk2_ardour/editor_audio_import.cc35
-rw-r--r--gtk2_ardour/editor_ops.cc3
3 files changed, 20 insertions, 20 deletions
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index ea4e378134..ca7d7766ee 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -1162,7 +1162,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
void drop_paths_part_two (const std::vector<Glib::ustring>& paths, nframes64_t frame, double ypos);
int import_sndfiles (std::vector<Glib::ustring> paths, Editing::ImportMode mode, ARDOUR::SrcQuality, nframes64_t& pos,
- int target_regions, int target_tracks, boost::shared_ptr<ARDOUR::Track>&, bool, uint32_t total);
+ int target_regions, int target_tracks, boost::shared_ptr<ARDOUR::Track>&, bool);
int embed_sndfiles (std::vector<Glib::ustring> paths, bool multiple_files, bool& check_sample_rate, Editing::ImportMode mode,
nframes64_t& pos, int target_regions, int target_tracks, boost::shared_ptr<ARDOUR::Track>&);
diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc
index 9b36ea69a1..27b9178bb6 100644
--- a/gtk2_ardour/editor_audio_import.cc
+++ b/gtk2_ardour/editor_audio_import.cc
@@ -326,10 +326,20 @@ Editor::do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mod
vector<ustring> to_import;
int nth = 0;
+ current_interthread_info = &import_status;
+ import_status.current = 1;
+ import_status.total = paths.size ();
+
if (interthread_progress_window == 0) {
build_interthread_progress_window ();
}
+ interthread_progress_window->set_title (_("Import"));
+ interthread_progress_bar.set_fraction (0.0f);
+ interthread_cancel_label.set_text (_("Cancel Import"));
+ interthread_progress_connection = Glib::signal_timeout().connect
+ (sigc::bind (sigc::mem_fun(*this, &Editor::import_progress_timeout), (gpointer) 0), 500);
+
if (chns == Editing::ImportMergeFiles) {
/* create 1 region from all paths, add to 1 track,
@@ -346,14 +356,13 @@ Editor::do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mod
}
if (!cancel) {
- import_sndfiles (paths, mode, quality, pos, 1, 1, track, false, paths.size());
+ import_sndfiles (paths, mode, quality, pos, 1, 1, track, false);
}
} else {
bool replace = false;
bool ok = true;
- vector<ustring>::size_type total = paths.size();
for (vector<ustring>::iterator a = paths.begin(); a != paths.end(); ++a) {
@@ -385,7 +394,7 @@ Editor::do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mod
track = get_nth_selected_audio_track (nth++);
}
- ok = (import_sndfiles (to_import, mode, quality, pos, 1, -1, track, replace, total) == 0);
+ ok = (import_sndfiles (to_import, mode, quality, pos, 1, -1, track, replace) == 0);
break;
case Editing::ImportDistinctChannels:
@@ -393,7 +402,7 @@ Editor::do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mod
to_import.clear ();
to_import.push_back (*a);
- ok = (import_sndfiles (to_import, mode, quality, pos, -1, -1, track, replace, total) == 0);
+ ok = (import_sndfiles (to_import, mode, quality, pos, -1, -1, track, replace) == 0);
break;
case Editing::ImportSerializeFiles:
@@ -401,7 +410,7 @@ Editor::do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mod
to_import.clear ();
to_import.push_back (*a);
- ok = (import_sndfiles (to_import, mode, quality, pos, 1, 1, track, replace, total) == 0);
+ ok = (import_sndfiles (to_import, mode, quality, pos, 1, 1, track, replace) == 0);
break;
case Editing::ImportMergeFiles:
@@ -412,6 +421,7 @@ Editor::do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mod
}
interthread_progress_window->hide_all ();
+ interthread_progress_connection.disconnect ();
}
void
@@ -482,14 +492,8 @@ Editor::do_embed (vector<ustring> paths, ImportDisposition chns, ImportMode mode
int
Editor::import_sndfiles (vector<ustring> paths, ImportMode mode, SrcQuality quality, nframes64_t& pos,
- int target_regions, int target_tracks, boost::shared_ptr<Track>& track, bool replace, uint32_t total)
+ int target_regions, int target_tracks, boost::shared_ptr<Track>& track, bool replace)
{
- interthread_progress_window->set_title (string_compose (_("Importing %1"), paths.front()));
- interthread_progress_window->set_position (Gtk::WIN_POS_MOUSE);
- interthread_progress_bar.set_fraction (0.0f);
- interthread_cancel_label.set_text (_("Cancel Import"));
- current_interthread_info = &import_status;
-
import_status.paths = paths;
import_status.done = false;
import_status.cancel = false;
@@ -497,7 +501,6 @@ Editor::import_sndfiles (vector<ustring> paths, ImportMode mode, SrcQuality qual
import_status.done = 0.0;
import_status.quality = quality;
import_status.replace_existing_source = replace;
- import_status.total = total;
import_status.mode = mode;
import_status.pos = pos;
@@ -505,8 +508,6 @@ Editor::import_sndfiles (vector<ustring> paths, ImportMode mode, SrcQuality qual
import_status.target_regions = target_regions;
import_status.track = track;
import_status.replace = replace;
- interthread_progress_connection = Glib::signal_timeout().connect
- (sigc::bind (sigc::mem_fun(*this, &Editor::import_progress_timeout), (gpointer) 0), 500);
track_canvas->get_window()->set_cursor (Gdk::Cursor (Gdk::WATCH));
gdk_flush ();
@@ -523,9 +524,7 @@ Editor::import_sndfiles (vector<ustring> paths, ImportMode mode, SrcQuality qual
gtk_main_iteration ();
}
- interthread_progress_window->hide ();
import_status.done = true;
- interthread_progress_connection.disconnect ();
if (!import_status.cancel && !import_status.sources.empty()) {
if (add_sources (import_status.paths,
@@ -949,7 +948,7 @@ Editor::import_progress_timeout (void */*arg*/)
reset = true;
}
- interthread_progress_label.set_text (import_status.doing_what);
+ interthread_progress_label.set_markup (import_status.doing_what);
if (import_status.freeze) {
interthread_cancel_button.set_sensitive(false);
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index f9022a04ff..0535b31d3b 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -2612,7 +2612,8 @@ Editor::build_interthread_progress_window ()
interthread_progress_window->set_border_width (12);
interthread_progress_window->get_vbox()->set_spacing (6);
- interthread_progress_label.set_alignment (0.5, 0.5);
+ interthread_progress_label.set_alignment (0, 0.5);
+ interthread_progress_label.set_use_markup (true);
interthread_progress_window->get_vbox()->pack_start (interthread_progress_label, false, false);
interthread_progress_window->get_vbox()->pack_start (interthread_progress_bar,false, false);