diff options
author | Sakari Bergen <sakari.bergen@beatwaves.net> | 2009-05-02 20:26:11 +0000 |
---|---|---|
committer | Sakari Bergen <sakari.bergen@beatwaves.net> | 2009-05-02 20:26:11 +0000 |
commit | 7e48118bf16702dc174875510b935f37290d56a7 (patch) | |
tree | 177e5c3e772a399eac11129ac4c16e42ed120427 | |
parent | c7733b443ac6174f3dc795a4c89f4c2c59d1d90e (diff) |
* Fix tooltips in the session import dialog
* Fix arval to run from all directories
git-svn-id: svn://localhost/ardour2/branches/3.0@5028 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rwxr-xr-x | gtk2_ardour/arval | 2 | ||||
-rw-r--r-- | gtk2_ardour/session_import_dialog.cc | 34 | ||||
-rw-r--r-- | gtk2_ardour/session_import_dialog.h | 4 | ||||
-rw-r--r-- | libs/ardour/ardour/audio_region_importer.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/element_importer.h | 6 | ||||
-rw-r--r-- | libs/ardour/audio_region_importer.cc | 17 |
6 files changed, 20 insertions, 45 deletions
diff --git a/gtk2_ardour/arval b/gtk2_ardour/arval index 8f22794470..b9c0298c8f 100755 --- a/gtk2_ardour/arval +++ b/gtk2_ardour/arval @@ -1,4 +1,4 @@ #!/bin/sh -. ./ardev_common.sh +. `dirname "$0"`/ardev_common.sh export ARDOUR_RUNNING_UNDER_VALGRIND=TRUE exec valgrind --num-callers=50 --tool=memcheck $TOP/$EXECUTABLE --novst "$@" diff --git a/gtk2_ardour/session_import_dialog.cc b/gtk2_ardour/session_import_dialog.cc index d6f2826abf..2d1f6a1007 100644 --- a/gtk2_ardour/session_import_dialog.cc +++ b/gtk2_ardour/session_import_dialog.cc @@ -68,6 +68,7 @@ SessionImportDialog::SessionImportDialog (ARDOUR::Session & target) : session_browser.set_name ("SessionBrowser"); session_browser.append_column (_("Elements"), sb_cols.name); session_browser.append_column_editable (_("Import"), sb_cols.queued); + session_browser.set_tooltip_column (3); session_browser.get_column(0)->set_min_width (180); session_browser.get_column(1)->set_min_width (40); session_browser.get_column(1)->set_sizing (Gtk::TREE_VIEW_COLUMN_AUTOSIZE); @@ -83,10 +84,6 @@ SessionImportDialog::SessionImportDialog (ARDOUR::Session & target) : get_vbox()->pack_start (session_scroll, false, false); - // Tooltips - session_browser.set_has_tooltip(); - session_browser.signal_query_tooltip().connect(mem_fun(*this, &SessionImportDialog::query_tooltip)); - // Buttons cancel_button = add_button (Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); cancel_button->signal_clicked().connect (mem_fun (*this, &SessionImportDialog::end_dialog)); @@ -146,6 +143,7 @@ SessionImportDialog::fill_list () child[sb_cols.name] = (*element)->get_name(); child[sb_cols.queued] = false; child[sb_cols.element] = *element; + child[sb_cols.info] = (*element)->get_info(); } } } @@ -250,38 +248,12 @@ SessionImportDialog::show_info(const Gtk::TreeModel::Path& path, Gtk::TreeViewCo } Gtk::TreeModel::iterator cell = session_browser.get_model()->get_iter (path); - ElementPtr element = (*cell)[sb_cols.element]; - string info = element->get_info(); + string info = (*cell)[sb_cols.info]; Gtk::MessageDialog msg (info, false, Gtk::MESSAGE_INFO, Gtk::BUTTONS_OK, true); msg.run(); } -bool -SessionImportDialog::query_tooltip(int x, int y, bool keyboard_tooltip, const Glib::RefPtr<Gtk::Tooltip>& tooltip) -{ - Gtk::TreeModel::Path path; - Gtk::TreeViewColumn* column; - int cell_x, cell_y; - - // Get element - session_browser.get_path_at_pos (x, y, path, column, cell_x, cell_y); - if (path.gobj() == 0) { - return false; - } - Gtk::TreeModel::iterator row = session_browser.get_model()->get_iter (path); - //--row; // FIXME Strange offset in rows, if someone figures this out, please fix - ElementPtr element = (*row)[sb_cols.element]; - if (element.get() == 0) { - return false; - } - - // Prepare tooltip - tooltip->set_text(element->get_info()); - - return true; -} - void SessionImportDialog::end_dialog () { diff --git a/gtk2_ardour/session_import_dialog.h b/gtk2_ardour/session_import_dialog.h index e095dbaea0..cf1f5b0a4e 100644 --- a/gtk2_ardour/session_import_dialog.h +++ b/gtk2_ardour/session_import_dialog.h @@ -63,7 +63,6 @@ class SessionImportDialog : public ArdourDialog void end_dialog (); void update (string path); void show_info(const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn* column); - bool query_tooltip(int x, int y, bool keyboard_tooltip, const Glib::RefPtr<Gtk::Tooltip>& tooltip); std::pair<bool, string> open_rename_dialog (string text, string name); bool open_prompt_dialog (string text); @@ -85,8 +84,9 @@ class SessionImportDialog : public ArdourDialog Gtk::TreeModelColumn<std::string> name; Gtk::TreeModelColumn<bool> queued; Gtk::TreeModelColumn<ElementPtr> element; + Gtk::TreeModelColumn<std::string> info; - SessionBrowserColumns() { add (name); add (queued); add (element); } + SessionBrowserColumns() { add (name); add (queued); add (element); add (info); } }; SessionBrowserColumns sb_cols; diff --git a/libs/ardour/ardour/audio_region_importer.h b/libs/ardour/ardour/audio_region_importer.h index 03067c465d..ec70627428 100644 --- a/libs/ardour/ardour/audio_region_importer.h +++ b/libs/ardour/ardour/audio_region_importer.h @@ -76,6 +76,7 @@ class AudioRegionImporter : public ElementImporter // Interface implementation string get_info () const; + Session::ImportStatus * get_import_status () { return &status; } // other stuff void add_sources_to_session (); @@ -93,6 +94,7 @@ class AudioRegionImporter : public ElementImporter PBD::ID old_id; PBD::ID id; std::list<string> filenames; + Session::ImportStatus status; bool parse_xml_region (); bool parse_source_xml (); diff --git a/libs/ardour/ardour/element_importer.h b/libs/ardour/ardour/element_importer.h index 0a2d5d3fb3..04f46f7a03 100644 --- a/libs/ardour/ardour/element_importer.h +++ b/libs/ardour/ardour/element_importer.h @@ -27,14 +27,13 @@ #include <sigc++/signal.h> #include "ardour/types.h" +#include "ardour/session.h" using std::string; class XMLTree; namespace ARDOUR { -class Session; - /// Virtual interface class for element importers class ElementImporter { @@ -53,6 +52,9 @@ class ElementImporter */ virtual string get_info () const = 0; + /** Gets import status, if applicable. */ + virtual Session::ImportStatus * get_import_status () { return 0; } + /** Prepares to move element * * @return whther or not the element could be prepared for moving diff --git a/libs/ardour/audio_region_importer.cc b/libs/ardour/audio_region_importer.cc index bea61d81e3..90fc7bac4d 100644 --- a/libs/ardour/audio_region_importer.cc +++ b/libs/ardour/audio_region_importer.cc @@ -336,23 +336,22 @@ AudioRegionImporter::prepare_sources () return; } - Session::ImportStatus status; + status.total = 0; + status.replace_existing_source = false; + status.done = false; + status.cancel = false; + status.freeze = false; + status.progress = 0.0; + status.quality = SrcBest; // TODO other qualities also // Get sources that still need to be imported for (std::list<string>::iterator it = filenames.begin(); it != filenames.end(); ++it) { if (!handler.check_source (*it)) { status.paths.push_back (*it); + status.total++; } } - // Prepare rest of import struct TODO quality - status.replace_existing_source = false; - status.done = false; - status.cancel = false; - status.freeze = false; - status.progress = 0.0; - status.quality = SrcBest; - // import files // TODO: threading & exception handling session.import_audiofiles (status); |