region list patch #2 from chris g, slightly reworked by me; sv_se po changes, possibl...
authorPaul Davis <paul@linuxaudiosystems.com>
Sun, 28 Sep 2008 19:47:45 +0000 (19:47 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Sun, 28 Sep 2008 19:47:45 +0000 (19:47 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@3820 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/editor.cc
gtk2_ardour/editor.h
gtk2_ardour/editor_region_list.cc
gtk2_ardour/po/sv_SE.po

index c53a762df9fce133d428e4afe67ed52ef259e810..dc791996cdea1187b9afe4e4070edf399b39be76 100644 (file)
@@ -652,9 +652,17 @@ Editor::Editor ()
        region_list_display.append_column (_("Start"), region_list_columns.start);
        region_list_display.append_column (_("End"), region_list_columns.end);
        region_list_display.append_column (_("Length"), region_list_columns.length);
+       region_list_display.append_column (_("Sync"), region_list_columns.sync);
+       region_list_display.append_column (_("Fade In"), region_list_columns.fadein);
+       region_list_display.append_column (_("Fade Out"), region_list_columns.fadeout);
+       region_list_display.append_column (_("L"), region_list_columns.locked);
+       region_list_display.append_column (_("G"), region_list_columns.glued);
+       region_list_display.append_column (_("M"), region_list_columns.muted);
+       region_list_display.append_column (_("O"), region_list_columns.opaque);
        region_list_display.append_column (_("Used"), region_list_columns.used);
        region_list_display.append_column (_("Path to parent file"), region_list_columns.path);
        region_list_display.set_headers_visible (true);
+       region_list_display.set_grid_lines (TREE_VIEW_GRID_LINES_BOTH);
 
        CellRendererText* region_name_cell = dynamic_cast<CellRendererText*>(region_list_display.get_column_cell_renderer (0));
        region_name_cell->property_editable() = true;
index 6374b29d06d52f26ca907dcb716f2604ca8f314e..eb51fb5beb999a70bd9c37ee7ef8216353257c46 100644 (file)
@@ -933,16 +933,30 @@ class Editor : public PublicEditor
                    add (start);
                    add (end);
                    add (length);
+                       add (sync);
+                       add (fadein);
+                       add (fadeout);
+                       add (locked);
+                       add (glued);
+                       add (muted);
+                       add (opaque);
                        add (used);
                    add (path);
            }
-               Gtk::TreeModelColumn<Glib::ustring> name;
+           Gtk::TreeModelColumn<Glib::ustring> name;
            Gtk::TreeModelColumn<boost::shared_ptr<ARDOUR::Region> > region;
            Gtk::TreeModelColumn<Gdk::Color> color_;
            Gtk::TreeModelColumn<Glib::ustring> start;
            Gtk::TreeModelColumn<Glib::ustring> end;
            Gtk::TreeModelColumn<Glib::ustring> length;
-               Gtk::TreeModelColumn<Glib::ustring> used;
+           Gtk::TreeModelColumn<Glib::ustring> sync;
+           Gtk::TreeModelColumn<Glib::ustring> fadein;
+           Gtk::TreeModelColumn<Glib::ustring> fadeout;
+           Gtk::TreeModelColumn<bool> locked;
+           Gtk::TreeModelColumn<bool> glued;
+           Gtk::TreeModelColumn<bool> muted;
+           Gtk::TreeModelColumn<bool> opaque;
+           Gtk::TreeModelColumn<Glib::ustring> used;
            Gtk::TreeModelColumn<Glib::ustring> path;
        };
            
@@ -1091,7 +1105,9 @@ class Editor : public PublicEditor
        void add_regions_to_region_display (std::vector<boost::weak_ptr<ARDOUR::Region> > & );
        void region_hidden (boost::shared_ptr<ARDOUR::Region>);
        void redisplay_regions ();
+       void populate_row (boost::shared_ptr<ARDOUR::Region>, Gtk::TreeModel::Row const &);
        void update_region_row (boost::shared_ptr<ARDOUR::Region>);
+       bool update_region_subrows (boost::shared_ptr<ARDOUR::Region>, Gtk::TreeModel::Row const &, int);
        bool no_region_list_redisplay;
        void insert_into_tmp_regionlist(boost::shared_ptr<ARDOUR::Region>);
 
index c37540e2b1416b7a381dd968510700cfe6f20b37..767fc4ec71fdfc2f6ef151cfdd6b0d5d1dc8eae7 100644 (file)
@@ -70,7 +70,6 @@ void
 Editor::region_hidden (boost::shared_ptr<Region> r)
 {
        ENSURE_GUI_THREAD(bind (mem_fun(*this, &Editor::region_hidden), r));    
-
        redisplay_regions ();
 }
 
@@ -78,32 +77,28 @@ void
 Editor::add_regions_to_region_display (vector<boost::weak_ptr<Region> >& regions)
 {
        region_list_display.set_model (Glib::RefPtr<Gtk::TreeStore>(0));
+       
        for (vector<boost::weak_ptr<Region> >::iterator x = regions.begin(); x != regions.end(); ++x) {
                boost::shared_ptr<Region> region ((*x).lock());
                if (region) {
                        add_region_to_region_display (region);
                }
        }
+       
        region_list_display.set_model (region_list_model);
 }
 
 void
 Editor::add_region_to_region_display (boost::shared_ptr<Region> region)
 {
+       if (!region || !session) {
+               return;
+       }
+       
        string str;
-       char start_str[16];
-       char end_str[16];
-       char length_str[16];
-       char used_str[8];
-       int used;
        TreeModel::Row row;
        Gdk::Color c;
-       bool missing_source;
-       BBT_Time bbt;                           // FIXME Why do these have to be declared here ?
-       SMPTE::Time smpte;                      // FIXME I would like them declared in the case statment where they are used.
-
-       
-       missing_source = boost::dynamic_pointer_cast<SilentFileSource>(region->source());
+       bool missing_source = boost::dynamic_pointer_cast<SilentFileSource>(region->source());
 
        if (!show_automatic_regions_in_region_list && region->automatic()) {
                return;
@@ -128,7 +123,6 @@ Editor::add_region_to_region_display (boost::shared_ptr<Region> region)
                                boost::shared_ptr<Region> proxy = parent[region_list_columns.region];
                                proxy.reset ();
                        } else {
-
                                parent = *iter;
                        }
                }
@@ -186,17 +180,19 @@ Editor::add_region_to_region_display (boost::shared_ptr<Region> region)
                        str += ']';
                }
 
-               //if (missing_source) {
-               //      str += _(" (MISSING)");
-               //}
-
                row[region_list_columns.name] = str;
                row[region_list_columns.region] = region;
-
+               
+               if (missing_source) {
+                       row[region_list_columns.path] = _("(MISSING) ") + region->source()->name();
+               } else {
+                       row[region_list_columns.path] = region->source()->name();
+               } 
+               
                if (region->automatic()) {
                        return;
                }
-               
+                       
        } else {
 
                /* find parent node, add as new child */
@@ -234,96 +230,9 @@ Editor::add_region_to_region_display (boost::shared_ptr<Region> region)
                }       
        }
        
-       used = get_regionview_count_from_region_list(region);
-       sprintf (used_str, "%4d" , used);
-       
-       switch (ARDOUR_UI::instance()->secondary_clock.mode ()) {
-       case AudioClock::SMPTE:
-       case AudioClock::Off:                                                                                           /* If the secondary clock is off, default to SMPTE */
-               session->smpte_time (region->position(), smpte);
-               sprintf (start_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
-
-               session->smpte_time (region->position() + region->length() - 1, smpte);
-               sprintf (end_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
-               
-               session->smpte_time (region->length(), smpte);
-               sprintf (length_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
-               break;
-               
-       case AudioClock::BBT:
-               session->tempo_map().bbt_time (region->position(), bbt);
-               sprintf (start_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
-               session->tempo_map().bbt_time (region->position() + region->length() - 1, bbt);
-               sprintf (end_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
-               session->tempo_map().bbt_time (region->length(), bbt);
-               sprintf (length_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
-               break;
-               
-       case AudioClock::MinSec:
-               nframes_t left;
-               int hrs;
-               int mins;
-               float secs;
-       
-               left = region->position();
-               hrs = (int) floor (left / (session->frame_rate() * 60.0f * 60.0f));
-               left -= (nframes_t) floor (hrs * session->frame_rate() * 60.0f * 60.0f);
-               mins = (int) floor (left / (session->frame_rate() * 60.0f));
-               left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
-               secs = left / (float) session->frame_rate();
-               sprintf (start_str, "%02d:%02d:%06.3f", hrs, mins, secs);
-               
-               left = region->position() + region->length() - 1;
-               hrs = (int) floor (left / (session->frame_rate() * 60.0f * 60.0f));
-               left -= (nframes_t) floor (hrs * session->frame_rate() * 60.0f * 60.0f);
-               mins = (int) floor (left / (session->frame_rate() * 60.0f));
-               left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
-               secs = left / (float) session->frame_rate();
-               sprintf (end_str, "%02d:%02d:%06.3f", hrs, mins, secs);
-               
-               left = region->length();
-               hrs = (int) floor (left / (session->frame_rate() * 60.0f * 60.0f));
-               left -= (nframes_t) floor (hrs * session->frame_rate() * 60.0f * 60.0f);
-               mins = (int) floor (left / (session->frame_rate() * 60.0f));
-               left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
-               secs = left / (float) session->frame_rate();
-               sprintf (length_str, "%02d:%02d:%06.3f", hrs, mins, secs);
-               break;
-               
-       case AudioClock::Frames:
-               snprintf (start_str, sizeof (start_str), "%u", region->position());
-               snprintf (end_str, sizeof (end_str), "%u", (region->position() + region->length() - 1));
-               snprintf (length_str, sizeof (length_str), "%u", region->length());
-               break;
-       
-       default:
-               break;
-       }
-       
        row[region_list_columns.region] = region;
        
-       if (used > 1) {
-               row[region_list_columns.start] = "Multiple";
-               row[region_list_columns.end] = "Multiple";
-       } else {
-               row[region_list_columns.start] = start_str;
-               row[region_list_columns.end] = end_str;
-       }
-       
-       row[region_list_columns.length] = length_str;
-       row[region_list_columns.used] = used_str;
-       
-       if (missing_source) {
-               row[region_list_columns.path] = _("(MISSING) ") + region->source()->name();
-       } else {
-               row[region_list_columns.path] = region->source()->name();
-       }
-       
-       if (region->n_channels() > 1) {
-               row[region_list_columns.name] = string_compose("%1  [%2]", region->name(), region->n_channels());
-       } else {
-               row[region_list_columns.name] = region->name();
-       }       
+       populate_row(region, row);
 }
 
 
@@ -367,33 +276,34 @@ Editor::region_list_region_changed (Change what_changed, boost::weak_ptr<Region>
 void
 Editor::region_list_selection_changed() 
 {
-       bool selected;
+       bool selected = false;
 
        if (region_list_display.get_selection()->count_selected_rows() > 0) {
                selected = true;
-       } else {
-               selected = false;
        }
        
        if (selected) {
                TreeView::Selection::ListHandle_Path rows = region_list_display.get_selection()->get_selected_rows ();
-               TreeView::Selection::ListHandle_Path::iterator i = rows.begin();
                TreeIter iter;
 
-               if ((iter = region_list_model->get_iter (*i))) {
-                       boost::shared_ptr<Region> r = (*iter)[region_list_columns.region];
+               for (TreeView::Selection::ListHandle_Path::iterator i = rows.begin(); i != rows.end(); ++i) {
                        
-                       /* they could have clicked on a row that is just a placeholder, like "Hidden" */
-                       
-                       if (r) {
+                       if (iter = region_list_model->get_iter (*i)) {
+                               boost::shared_ptr<Region> r = (*iter)[region_list_columns.region];
                                
-                               /* just set the first selected region (in fact, the selection model might be SINGLE, which
-                                  means there can only be one.
-                               */
+                               /* they could have clicked on a row that is just a placeholder, like "Hidden" */
                                
-                               set_selected_regionview_from_region_list (r, Selection::Set);
+                               if (r) {
+                                               
+                                               /* just set the first selected region (in fact, the selection model might be SINGLE, which
+                                               means there can only be one.
+                                               */
+                                               
+                                               set_selected_regionview_from_region_list (r, Selection::Set);
+                               }
                        }
                }
+               
        }
 }
 
@@ -411,125 +321,149 @@ Editor::insert_into_tmp_regionlist(boost::shared_ptr<Region> region)
 
 void
 Editor::redisplay_regions ()
-{
-       if (no_region_list_redisplay) {
+{      
+       if (no_region_list_redisplay || !session) {
                return;
        }
                
-       if (session) {
-
-               region_list_display.set_model (Glib::RefPtr<Gtk::TreeStore>(0));
-               region_list_model->clear ();
+       bool tree_expanded = false;
+       
+       if (toggle_full_region_list_action && toggle_full_region_list_action->get_active()) {   //If the list was expanded prior to rebuilding, 
+               tree_expanded = true;                                                                                                                           //expand it again afterwards
+       }
+       
+       region_list_display.set_model (Glib::RefPtr<Gtk::TreeStore>(0));
+       region_list_model->clear ();
 
-               /* now add everything we have, via a temporary list used to help with
-                  sorting.
-               */
-               
-               tmp_region_list.clear();
-               session->foreach_region (this, &Editor::insert_into_tmp_regionlist);
+       /* now add everything we have, via a temporary list used to help with
+               sorting.
+       */
+       
+       tmp_region_list.clear();
+       session->foreach_region (this, &Editor::insert_into_tmp_regionlist);
 
-               for (list<boost::shared_ptr<Region> >::iterator r = tmp_region_list.begin(); r != tmp_region_list.end(); ++r) {
-                       add_region_to_region_display (*r);
-               }
-               tmp_region_list.clear();
-               
-               region_list_display.set_model (region_list_model);
+       for (list<boost::shared_ptr<Region> >::iterator r = tmp_region_list.begin(); r != tmp_region_list.end(); ++r) {
+               add_region_to_region_display (*r);
+       }
+       tmp_region_list.clear();
+       
+       region_list_display.set_model (region_list_model);
+       
+       if (tree_expanded) {
+               region_list_display.expand_all();
        }
 }
 
-
 void
 Editor::update_region_row (boost::shared_ptr<Region> region)
 {      
        if (!region || !session) {
                return;
        }
+       TreeModel::iterator i;
+       TreeModel::Children rows = region_list_model->children();
        
-       char start_str[16];
-       char end_str[16];
-       char length_str[16];
-       char used_str[8];
-       int used;
-       bool missing_source;
-       bool matched_region = false;
-       BBT_Time bbt;
-       SMPTE::Time smpte;
-       
-       missing_source = boost::dynamic_pointer_cast<SilentFileSource>(region->source());
-       
-       TreeModel::iterator found_region;
-       
-       if (show_automatic_regions_in_region_list) {
+       for (i = rows.begin(); i != rows.end(); ++i) {
                
-               TreeModel::iterator i;
-               TreeModel::iterator ii;
-               TreeModel::Children rows = region_list_model->children();
+               cerr << "Level 1: Compare " << region->name() << " with parent " << (*i)[region_list_columns.name] << "\n";
                
-               for (i = rows.begin(); i != rows.end(); ++i) {
-                       
-                       cerr << "Parent " << (*i)[region_list_columns.name] << "\n";
-
-                       TreeModel::Children subrows = (*i).children();
-                       
-                       for (ii = subrows.begin(); ii != subrows.end(); ++ii) {
-                               
-                               cerr << "Compare " << region->name() << " with child " << (*ii)[region_list_columns.name] << "\n";
-                               
-                               boost::shared_ptr<Region> compared_region = (*ii)[region_list_columns.region];
-
-                               if (region == compared_region) {
-                                       cerr << "Matched\n";
-                                       matched_region = true;
-                                       found_region = ii;
-                                       break;
-                               }
-                       }
-                       
-                       if (matched_region) {
-                               break;
+               boost::shared_ptr<Region> compared_region = (*i)[region_list_columns.region];
+               
+               if (region == compared_region) {
+                       cerr << "Matched\n";
+                       populate_row(region, (*i));
+                       return;
+               }
+               
+               if (!(*i).children().empty()) {
+                       if (update_region_subrows(region, (*i), 2)) {
+                               return;
                        }
                }
+       }
+       cerr << "Returning - No match\n\n";
+}
+
+bool
+Editor::update_region_subrows (boost::shared_ptr<Region> region, TreeModel::Row const &parent_row, int level)
+{
+       TreeModel::iterator i;
+       TreeModel::Children subrows = (*parent_row).children();
        
-       } else {        
+       for (i = subrows.begin(); i != subrows.end(); ++i) {
                
-               TreeModel::iterator i;
-               TreeModel::Children rows = region_list_model->children();
+               cerr << "Level " << level << ": Compare " << region->name() << " with child " << (*i)[region_list_columns.name] << "\n";
                
-               for (i = rows.begin(); i != rows.end(); ++i) {
-                       
-                       cerr << "Compare " << region->name() << " with " << (*i)[region_list_columns.name] << "\n";
-                       
-                       boost::shared_ptr<Region> compared_region = (*i)[region_list_columns.region];
+               boost::shared_ptr<Region> compared_region = (*i)[region_list_columns.region];
+               
+               if (region == compared_region) {
+                       populate_row(region, (*i));
+                       cerr << "Matched\n";
+                       return true;
+               }
+               
+               if (!(*i).children().empty()) {
                        
-                       if (region == compared_region) {
-                               cerr << "Matched\n";
-                               matched_region = true;
-                               found_region = i;
-                               break;
+                       if (update_region_subrows(region, (*i), level + 1)) {
+                               return true;
                        }
-       
+               
                }
        }
+       return false;
+}
 
-       if (!matched_region) {
-               cerr << "Returning - No match\n\n";
-               return;
-       }
+
+void
+Editor::populate_row (boost::shared_ptr<Region> region, TreeModel::Row const &row)
+{
+       char start_str[16];
+       char end_str[16];
+       char length_str[16];
+       char sync_str[16];
+       char fadein_str[16];
+       char fadeout_str[16];
+       char used_str[8];
+       int used;
+       BBT_Time bbt;                           // FIXME Why do these have to be declared here ?
+       SMPTE::Time smpte;                      // FIXME I would like them declared in the case statment where they are used.
        
+       bool missing_source = boost::dynamic_pointer_cast<SilentFileSource>(region->source());
+       
+       boost::shared_ptr<AudioRegion> audioRegion = boost::dynamic_pointer_cast<AudioRegion>(region);
+       
+       bool fades_in_seconds = false;
+
+       start_str[0] = '\0';
+       end_str[0] = '\0';
+       length_str[0] = '\0';
+       sync_str[0] = '\0';
+       fadein_str[0] = '\0';
+       fadeout_str[0] = '\0';
+       used_str[0] = '\0';
+
        used = get_regionview_count_from_region_list(region);
        sprintf (used_str, "%4d" , used);
-
+       
        switch (ARDOUR_UI::instance()->secondary_clock.mode ()) {
        case AudioClock::SMPTE:
-       case AudioClock::Off:                                                                                           // If the secondary clock is off, default to SMPTE
+       case AudioClock::Off:                                                                                           /* If the secondary clock is off, default to SMPTE */
                session->smpte_time (region->position(), smpte);
                sprintf (start_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
-
                session->smpte_time (region->position() + region->length() - 1, smpte);
                sprintf (end_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
-               
                session->smpte_time (region->length(), smpte);
                sprintf (length_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
+               session->smpte_time (region->sync_position() + region->position(), smpte);
+               sprintf (sync_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
+               
+               if (audioRegion && !fades_in_seconds) { 
+                       session->smpte_time (audioRegion->fade_in()->back()->when, smpte);
+                       sprintf (fadein_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
+                       session->smpte_time (audioRegion->fade_out()->back()->when, smpte);
+                       sprintf (fadeout_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
+               }
+               
                break;
                
        case AudioClock::BBT:
@@ -539,6 +473,15 @@ Editor::update_region_row (boost::shared_ptr<Region> region)
                sprintf (end_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
                session->tempo_map().bbt_time (region->length(), bbt);
                sprintf (length_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
+               session->tempo_map().bbt_time (region->sync_position() + region->position(), bbt);
+               sprintf (sync_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
+               
+               if (audioRegion && !fades_in_seconds) {
+                       session->tempo_map().bbt_time (audioRegion->fade_in()->back()->when, bbt);
+                       sprintf (fadein_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
+                       session->tempo_map().bbt_time (audioRegion->fade_out()->back()->when, bbt);
+                       sprintf (fadeout_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
+               } 
                break;
                
        case AudioClock::MinSec:
@@ -570,45 +513,149 @@ Editor::update_region_row (boost::shared_ptr<Region> region)
                left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
                secs = left / (float) session->frame_rate();
                sprintf (length_str, "%02d:%02d:%06.3f", hrs, mins, secs);
+               
+               left = region->sync_position() + region->position();
+               hrs = (int) floor (left / (session->frame_rate() * 60.0f * 60.0f));
+               left -= (nframes_t) floor (hrs * session->frame_rate() * 60.0f * 60.0f);
+               mins = (int) floor (left / (session->frame_rate() * 60.0f));
+               left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
+               secs = left / (float) session->frame_rate();
+               sprintf (sync_str, "%02d:%02d:%06.3f", hrs, mins, secs);
+               
+               if (audioRegion && !fades_in_seconds) {
+                       left = audioRegion->fade_in()->back()->when;
+                       hrs = (int) floor (left / (session->frame_rate() * 60.0f * 60.0f));
+                       left -= (nframes_t) floor (hrs * session->frame_rate() * 60.0f * 60.0f);
+                       mins = (int) floor (left / (session->frame_rate() * 60.0f));
+                       left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
+                       secs = left / (float) session->frame_rate();
+                       sprintf (fadein_str, "%02d:%02d:%06.3f", hrs, mins, secs);
+                       
+                       left = audioRegion->fade_out()->back()->when;
+                       hrs = (int) floor (left / (session->frame_rate() * 60.0f * 60.0f));
+                       left -= (nframes_t) floor (hrs * session->frame_rate() * 60.0f * 60.0f);
+                       mins = (int) floor (left / (session->frame_rate() * 60.0f));
+                       left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
+                       secs = left / (float) session->frame_rate();
+                       sprintf (fadeout_str, "%02d:%02d:%06.3f", hrs, mins, secs);
+               }
+               
                break;
                
        case AudioClock::Frames:
                snprintf (start_str, sizeof (start_str), "%u", region->position());
                snprintf (end_str, sizeof (end_str), "%u", (region->position() + region->length() - 1));
                snprintf (length_str, sizeof (length_str), "%u", region->length());
+               snprintf (sync_str, sizeof (sync_str), "%u", region->sync_position() + region->position());
+               
+               if (audioRegion && !fades_in_seconds) {
+                       snprintf (fadein_str, sizeof (fadein_str), "%u", uint (audioRegion->fade_in()->back()->when));
+                       snprintf (fadeout_str, sizeof (fadeout_str), "%u", uint (audioRegion->fade_out()->back()->when));
+               }
+               
                break;
        
        default:
                break;
        }
        
-       cerr << "Updating " << (*found_region)[region_list_columns.name] << "\n";
+       if (audioRegion && fades_in_seconds) {
+                       
+               nframes_t left;
+               int mins;
+               int millisecs;
+               
+               left = audioRegion->fade_in()->back()->when;
+               mins = (int) floor (left / (session->frame_rate() * 60.0f));
+               left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
+               millisecs = (int) floor ((left * 1000.0f) / session->frame_rate());
+               
+               if (audioRegion->fade_in()->back()->when >= session->frame_rate()) {
+                       sprintf (fadein_str, "%01dM %01dmS", mins, millisecs);
+               } else {
+                       sprintf (fadein_str, "%01dmS", millisecs);
+               }
+               
+               left = audioRegion->fade_out()->back()->when;
+               mins = (int) floor (left / (session->frame_rate() * 60.0f));
+               left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
+               millisecs = (int) floor ((left * 1000.0f) / session->frame_rate());
+               
+               if (audioRegion->fade_out()->back()->when >= session->frame_rate()) {
+                       sprintf (fadeout_str, "%01dM %01dmS", mins, millisecs);
+               } else {
+                       sprintf (fadeout_str, "%01dmS", millisecs);
+               }
+       }
        
        if (used > 1) {
-               (*found_region)[region_list_columns.start] = "Multiple";
-               (*found_region)[region_list_columns.end] = "Multiple";
+               row[region_list_columns.start] = _("Multiple");
+               row[region_list_columns.end] = _("Multiple");
+               row[region_list_columns.sync] = _("Multiple");
+               row[region_list_columns.fadein] = _("Multiple");
+               row[region_list_columns.fadeout] = _("Multiple");
+               row[region_list_columns.locked] = _(" ");
+               row[region_list_columns.glued] = _(" ");
+               row[region_list_columns.muted] = _(" ");
+               row[region_list_columns.opaque] = _(" ");
        } else {
-               (*found_region)[region_list_columns.start] = start_str;
-               (*found_region)[region_list_columns.end] = end_str;
+               row[region_list_columns.start] = start_str;
+               row[region_list_columns.end] = end_str;
+               
+               if (region->sync_position() == region->position()) {
+                       row[region_list_columns.sync] = _("Start");
+               } else if (region->sync_position() == (region->position() + region->length() - 1)) {
+                       row[region_list_columns.sync] = _("End");
+               } else {
+                       row[region_list_columns.sync] = sync_str;
+               }
+       
+               if (audioRegion) {
+                       if (audioRegion->fade_in_active()) {
+                               row[region_list_columns.fadein] = string_compose("%1%2%3", " ", fadein_str, " ");
+                       } else {
+                               row[region_list_columns.fadein] = string_compose("%1%2%3", "(", fadein_str, ")");
+                       }
+               } else {
+                       row[region_list_columns.fadein] = "";
+               }
+
+               if (audioRegion) {
+                       if (audioRegion->fade_out_active()) {
+                               row[region_list_columns.fadeout] = string_compose("%1%2%3", " ", fadeout_str, " ");
+                       } else {
+                               row[region_list_columns.fadeout] = string_compose("%1%2%3", "(", fadeout_str, ")");
+                       }
+               } else {
+                       row[region_list_columns.fadeout] = "";
+               }
+               
+               row[region_list_columns.locked] = region->locked();
+       
+               if (region->positional_lock_style() == Region::MusicTime) {
+                       row[region_list_columns.glued] = true;
+               } else {
+                       row[region_list_columns.glued] = false;
+               }
+               
+               row[region_list_columns.muted] = region->muted();
+               row[region_list_columns.opaque] = region->opaque();
        }
        
-       (*found_region)[region_list_columns.length] = length_str;
-       (*found_region)[region_list_columns.used] = used_str;
+       row[region_list_columns.length] = length_str;
+       row[region_list_columns.used] = used_str;
        
        if (missing_source) {
-               (*found_region)[region_list_columns.path] = _("(MISSING) ") + region->source()->name();
+               row[region_list_columns.path] = _("MISSING ") + region->source()->name();
        } else {
-               (*found_region)[region_list_columns.path] = region->source()->name();
+               row[region_list_columns.path] = region->source()->name();
        }
        
        if (region->n_channels() > 1) {
-               (*found_region)[region_list_columns.name] = string_compose("%1  [%2]", region->name(), region->n_channels());
+               row[region_list_columns.name] = string_compose("%1  [%2]", region->name(), region->n_channels());
        } else {
-               (*found_region)[region_list_columns.name] = region->name();
+               row[region_list_columns.name] = region->name();
        }
-       
-       cerr << "Returning after updating\n\n";
-       //return;
 }
 
 void
index 158b1c4cecf70b6b86c643e87d8cfded77f0684a..317bf986dcbb9b8a439b50a053ee5e90089a9af3 100644 (file)
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: ardour-gtk 1.0.2\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2006-06-12 22:09+0200\n"
-"PO-Revision-Date: 2006-06-26 23:57+GMT+1\n"
+"PO-Revision-Date: 2008-09-22 20:33+0200\n"
 "Last-Translator: Petter Sundlöf <petter.sundlof@findus.dhs.org>\n"
 "Language-Team: Svenska <sv@li.org>\n"
 "MIME-Version: 1.0\n"
@@ -7093,8 +7093,6 @@ msgstr "EJ tonhöjdsändrat soloslagverk"
 #: gtk2_ardour/editor_timefx.cc:73
 msgid "Contents:"
 msgstr "Innehåll"
-<<<<<<< .working
-
 
 #: gtk2_ardour/editor_actions.cc:359
 msgid "Playhead to Mouse"
@@ -7434,558 +7432,3 @@ msgstr "FFT-analysfönster"
 #: gtk2_ardour/analysis_window.cc:135
 msgid "Re-analyze data"
 msgstr "Återanalysera data"
-=======
-
-#: gtk2_ardour/editor_actions.cc:359
-msgid "Playhead to Mouse"
-msgstr "Startmarkören till mus"
-
-#: gtk2_ardour/editor_actions.cc:277
-msgid "Playhead To Active Mark"
-msgstr "Startmarkören till aktiv markör"
-
-#: gtk2_ardour/editor_actions.cc:231
-msgid "Nudge Playhead Forward"
-msgstr "Knuffa startmarkören framåt"
-
-#: gtk2_ardour/editor_actions.cc:233
-msgid "Nudge Playhead Backward"
-msgstr "Knuffa startmarkören bakåt"
-
-#: gtk2_ardour/editor_actions.cc:475
-msgid "Move Forward to Transient"
-msgstr "Gå framåt till transient"
-
-#: gtk2_ardour/editor_actions.cc:477
-msgid "Move Backwards to Transient"
-msgstr "Gå bakåt till transient"
-
-#: gtk2_ardour/editor_actions.cc:235
-msgid "Forward To Grid"
-msgstr "Framåt till rutnät"
-
-#: gtk2_ardour/editor_actions.cc:237
-msgid "Backward To Grid"
-msgstr "Bakåt till rutnät"
-
-#: gtk2_ardour/editor_actions.cc:66 gtk2_ardour/editor.cc:151
-#: gtk2_ardour/editor.cc:3446
-msgid "Active Mark"
-msgstr "Aktiv markör"
-
-#: gtk2_ardour/editor_actions.cc:137
-msgid "to Next Region Boundary"
-msgstr "till nästa regionsgränsen"
-
-#: gtk2_ardour/editor_actions.cc:139
-msgid "to Previous Region Boundary"
-msgstr "till förra regionsgränsen"
-
-#: gtk2_ardour/editor_actions.cc:279
-msgid "Active Mark To Playhead"
-msgstr "Aktiv markör till startmarkören"
-
-#: gtk2_ardour/editor_actions.cc:361
-msgid "Active Marker to Mouse"
-msgstr "Aktiv markör till musen"
-
-#: gtk2_ardour/editor_actions.cc:61 gtk2_ardour/editor_actions.cc:613
-msgid "Markers"
-msgstr "Markörer"
-
-#: gtk2_ardour/ardour_ui_ed.cc:333
-msgid "Punch In/Out"
-msgstr "Inslag/utslag"
-
-#: gtk2_ardour/editor_actions.cc:177
-msgid "Select All Overlapping Edit Range"
-msgstr "Välj allt som överlappar redigeringsomfånget"
-
-#: gtk2_ardour/editor_actions.cc:179
-msgid "Select All Inside Edit Range"
-msgstr "Välj allt inom redigeringsomfånget"
-
-#: gtk2_ardour/editor_actions.cc:182
-msgid "Select Edit Range"
-msgstr "Välj redigeringsomfång"
-
-
-#: gtk2_ardour/editor_actions.cc:444
-msgid "Separate Using Punch Range"
-msgstr "Separera utifrån in-/utslagsomfånget"
-
-#: gtk2_ardour/editor_actions.cc:447
-msgid "Separate Using Loop Range"
-msgstr "Separera utifrån loopomfånget"
-
-#: gtk2_ardour/editor_actions.cc:469
-msgid "Split Regions At Percussion Onsets"
-msgstr "Dela regioner vid perkussiva anslag"
-
-#: gtk2_ardour/editor_actions.cc:282
-msgid "Trim Start At Edit Point"
-msgstr "Beskär början vid redigeringspunkten"
-
-#: gtk2_ardour/editor_actions.cc:285
-msgid "Trim End At Edit Point"
-msgstr "Beskär slutet vid redigeringspunkten"
-
-#: gtk2_ardour/ardour_ui_ed.cc:95
-msgid "Misc. Shortcuts"
-msgstr "Diverse kortkommandon"
-
-#: gtk2_ardour/editor_actions.cc:385
-msgid "Boost Region Gain"
-msgstr "Öka regionens volym"
-
-#: gtk2_ardour/editor_actions.cc:388
-msgid "Cut Region Gain"
-msgstr "Sänk regionens volym"
-
-#: gtk2_ardour/editor_actions.cc:99
-msgid "Break drag"
-msgstr "Avbryt dragning"
-
-
-#: gtk2_ardour/editor_actions.cc:400
-msgid "Raise Region"
-msgstr "Höj regionen"
-
-#: gtk2_ardour/editor_actions.cc:403
-msgid "Lower Region"
-msgstr "Sänk regionen"
-
-#: gtk2_ardour/editor_actions.cc:415
-msgid "Move To Original Position"
-msgstr "Flytta till ursprunglig position"
-
-#: gtk2_ardour/editor_actions.cc:409
-msgid "Lock Region"
-msgstr "Lås region"
-
-#: gtk2_ardour/editor_actions.cc:397
-msgid "Remove Region Sync"
-msgstr "Ta bort regionsynk.-punkt"
-
-#: gtk2_ardour/editor_actions.cc:505 gtk2_ardour/editor_ops.cc:5651
-msgid "Insert Time"
-msgstr "Infoga tid"
-
-#: gtk2_ardour/editor_actions.cc:93
-msgid "Waveforms"
-msgstr "Vågformer"
-
-#: gtk2_ardour/editor_actions.cc:509
-msgid "Toggle Active"
-msgstr "Växla aktiv"
-
-#: gtk2_ardour/editor_actions.cc:547
-msgid "Zoom Focus Mouse"
-msgstr "Zoomfokus: mus"
-
-#: gtk2_ardour/editor_actions.cc:582
-msgid "Next Snap Mode"
-msgstr "Nästa fästläge"
-
-#: gtk2_ardour/editor_actions.cc:583
-msgid "Next Snap Choice"
-msgstr "Nästa fästlägealternativ"
-
-#: gtk2_ardour/editor_actions.cc:70
-msgid "Primary Clock"
-msgstr "Primär klocka"
-
-#: gtk2_ardour/editor_actions.cc:77
-msgid "Secondary Clock"
-msgstr "Sekundär klocka"
-
-#: gtk2_ardour/ardour_ui_ed.cc:309 gtk2_ardour/ardour_ui_ed.cc:318
-#: gtk2_ardour/editor_actions.cc:616
-msgid "Bars & Beats"
-msgstr "Takter & slag"
-
-#: gtk2_ardour/ardour_ui_ed.cc:311 gtk2_ardour/ardour_ui_ed.cc:320
-msgid "Minutes & Seconds"
-msgstr "Minuter & sekunder"
-
-#: gtk2_ardour/editor_actions.cc:75
-msgid "Rulers"
-msgstr "Tidslinjevisning"
-
-#: gtk2_ardour/editor_actions.cc:619
-msgid "Min:Sec"
-msgstr "Min:sek"
-
-#: gtk2_ardour/editor_actions.cc:615
-msgid "Loop/Punch"
-msgstr "Loop-/inslagsmarkörer"
-
-#: gtk2_ardour/editor_actions.cc:76
-msgid "Scroll"
-msgstr "Skrollning"
-
-#: gtk2_ardour/rhythm_ferret.cc:40
-msgid "Analysis"
-msgstr "Analys"
-
-#: gtk2_ardour/rhythm_ferret.cc:30
-msgid "Percussive Onset"
-msgstr "Perkussivt anslag"
-
-#: gtk2_ardour/rhythm_ferret.cc:31
-msgid "Note Onset"
-msgstr "Notanslag"
-
-#: gtk2_ardour/rhythm_ferret.cc:48
-msgid "Threshold"
-msgstr "Tröskel"
-
-#: gtk2_ardour/rhythm_ferret.cc:51
-msgid "Sensitivity"
-msgstr "Känslighet"
-
-#: gtk2_ardour/rhythm_ferret.cc:52
-msgid "Analyze"
-msgstr "Analysera"
-
-#: gtk2_ardour/rhythm_ferret.cc:55
-msgid "Trigger gap (msecs)"
-msgstr "Utlösningsmellanrum (msek)"
-
-#: gtk2_ardour/rhythm_ferret.cc:43
-msgid "Set Tempo Map"
-msgstr "Sätt tempokarta"
-
-#: gtk2_ardour/rhythm_ferret.cc:44
-msgid "Conform Region"
-msgstr "Anpassa region"
-
-#: gtk2_ardour/rhythm_ferret.cc:39
-msgid "Selection"
-msgstr "Markering"
-
-
-#: gtk2_ardour/editor_actions.cc:463
-msgid "Set Tempo from Region=Bar"
-msgstr "Sätt tempo från region=takt"
-
-#: gtk2_ardour/editor_actions.cc:466
-msgid "Set Tempo from Edit Range=Bar"
-msgstr "Sätt tempo från redigeringsomfång=takt"
-
-
-#: gtk2_ardour/ardour_ui_ed.cc:548
-msgid "JACK does monitoring"
-msgstr "JACK sköter medhörning"
-
-#: gtk2_ardour/ardour_ui_ed.cc:552
-msgid "Ardour does monitoring"
-msgstr "Ardour sköter medhörning"
-
-#: gtk2_ardour/ardour_ui_ed.cc:553
-msgid "Audio Hardware does monitoring"
-msgstr "Ljudhårdvaran sköter medhörning"
-
-#: gtk2_ardour/ardour_ui_ed.cc:438
-msgid "Tape Machine mode"
-msgstr "Bandmaskinläge"
-
-#: gtk2_ardour/editor_actions.cc:64
-msgid "Misc Options"
-msgstr "Diverse inställningar"
-
-#: gtk2_ardour/ardour_ui_ed.cc:446
-msgid "Create marker at xrun location"
-msgstr "Skapa markör vid xrun-förekomst"
-
-#: gtk2_ardour/ardour_ui_ed.cc:455
-msgid "Rubberbanding Snaps to Grid"
-msgstr "Gummibandning fäster mot rutnätet"
-
-#: gtk2_ardour/ardour_ui_ed.cc:456
-msgid "Auto-analyse new audio"
-msgstr "Autoanalysera nya ljud"
-
-#: gtk2_ardour/editor_actions.cc:689
-msgid "Import to Region List"
-msgstr "Importera till regionslistan"
-
-#: gtk2_ardour/mixer_strip.cc:984
-msgid "Protect against denormals"
-msgstr "Skydda mot denormals"
-
-#: gtk2_ardour/option_editor.cc:1242
-msgid "Keyboard layout"
-msgstr "Tangentbordslayout"
-
-#: gtk2_ardour/option_editor.cc:275
-msgid "Font Scaling"
-msgstr "Typsnittsskalning"
-
-#: gtk2_ardour/option_editor.cc:97
-msgid "Add new MIDI port"
-msgstr "Lägg till ny MIDI-port"
-
-
-#: gtk2_ardour/editor.cc:1779 gtk2_ardour/editor.cc:1948
-msgid "Spectral Analysis"
-msgstr "Spektralanalys"
-
-#: gtk2_ardour/editor.cc:1793
-msgid "Glue to Bars&Beats"
-msgstr "Klistra mot takt&slag"
-
-#: gtk2_ardour/analysis_window.cc:46
-msgid "Signal source"
-msgstr "Signalkälla"
-
-#: gtk2_ardour/analysis_window.cc:47
-msgid "Selected ranges"
-msgstr "Valda omfång"
-
-#: gtk2_ardour/analysis_window.cc:48
-msgid "Selected regions"
-msgstr "Valda regioner"
-
-#: gtk2_ardour/analysis_window.cc:50
-msgid "Display model"
-msgstr "Visningsmodell"
-
-#: gtk2_ardour/analysis_window.cc:51
-msgid "Composite graphs for each track"
-msgstr "Sammansatt graf för varje spår"
-
-#: gtk2_ardour/analysis_window.cc:52
-msgid "Composite graph of all tracks"
-msgstr "Sammansatt graf för alla spår"
-
-#: gtk2_ardour/analysis_window.cc:54
-msgid "Show frequency power range"
-msgstr "Visa frekvenskraftsomfång"
-
-#: gtk2_ardour/analysis_window.cc:55
-msgid "Normalize values"
-msgstr "Normalisera värden"
-
-#: gtk2_ardour/analysis_window.cc:59 gtk2_ardour/analysis_window.cc:60
-msgid "FFT analysis window"
-msgstr "FFT-analysfönster"
-
-#: gtk2_ardour/analysis_window.cc:135
-msgid "Re-analyze data"
-msgstr "Återanalysera data"
-
-#: gtk2_ardour/ardour_ui_ed.cc:195
-msgid "Window"
-msgstr "Fönster"
-
-#: gtk2_ardour/ardour_ui_dependents.cc:74
-msgid "Setup Editor"
-msgstr "Förbereder redigeraren..."
-
-#: gtk2_ardour/ardour_ui_dependents.cc:76
-msgid "Setup Mixer"
-msgstr "Förbereder mixern..."
-
-#: gtk2_ardour/ardour_ui_dependents.cc:81
-msgid "Reload Session History"
-msgstr "Laddar sessionshistoriken..."
-
-#: gtk2_ardour/editor.cc:4571
-msgid "Please wait while Ardour loads visual data"
-msgstr "Vänta medan Ardour laddar visuell data..."
-
-#: gtk2_ardour/editor_actions.cc:368
-msgid "Toggle Opaque"
-msgstr "Växla genomskinligt"
-
-#: gtk2_ardour/editor_actions.cc:570
-msgid "Fit Selected Tracks"
-msgstr "Rym valda spår"
-
-#: gtk2_ardour/editor_actions.cc:299
-msgid "Zoom to Region (W&H)"
-msgstr "Zooma till region (bredd & höjd)"
-
-#: gtk2_ardour/editor_actions.cc:76
-msgid "Views"
-msgstr "Visningslägen"
-
-
-#: gtk2_ardour/editor_actions.cc:196
-msgid "Save View 1"
-msgstr "Spara läge 1"
-
-#: gtk2_ardour/editor_actions.cc:198
-msgid "Goto View 1"
-msgstr "Använd läge 1"
-
-#: gtk2_ardour/editor_actions.cc:200
-msgid "Save View 2"
-msgstr "Spara läge 2"
-
-#: gtk2_ardour/editor_actions.cc:202
-msgid "Goto View 2"
-msgstr "Använd läge 2 "
-
-#: gtk2_ardour/editor_actions.cc:204
-msgid "Save View 3"
-msgstr "Spara läge 3"
-
-#: gtk2_ardour/editor_actions.cc:206
-msgid "Goto View 3"
-msgstr "Använd läge 3"
-
-#: gtk2_ardour/editor_actions.cc:208
-msgid "Save View 4"
-msgstr "Spara läge 4"
-
-#: gtk2_ardour/editor_actions.cc:210
-msgid "Goto View 4"
-msgstr "Använd läge 4"
-
-#: gtk2_ardour/editor_actions.cc:212
-msgid "Save View 5"
-msgstr "Spara läge 5"
-
-#: gtk2_ardour/editor_actions.cc:214
-msgid "Goto View 5"
-msgstr "Använd läge 5"
-
-#: gtk2_ardour/editor_actions.cc:216
-msgid "Save View 6"
-msgstr "Spara läge 6"
-
-#: gtk2_ardour/editor_actions.cc:218
-msgid "Goto View 6"
-msgstr "Använd läge 6"
-
-#: gtk2_ardour/editor_actions.cc:220
-msgid "Save View 7"
-msgstr "Spara läge 7"
-
-#: gtk2_ardour/editor_actions.cc:222
-msgid "Goto View 7"
-msgstr "Använd läge 7"
-
-#: gtk2_ardour/editor_actions.cc:224
-msgid "Save View 8"
-msgstr "Spara läge 8"
-
-#: gtk2_ardour/editor_actions.cc:226
-msgid "Goto View 8"
-msgstr "Använd läge 8"
-
-#: gtk2_ardour/editor_actions.cc:228
-msgid "Save View 9"
-msgstr "Spara läge 9"
-
-#: gtk2_ardour/editor_actions.cc:230
-msgid "Goto View 9"
-msgstr "Använd läge 9"
-
-#: gtk2_ardour/editor_actions.cc:232
-msgid "Save View 10"
-msgstr "Spara läge 10"
-
-#: gtk2_ardour/editor_actions.cc:234
-msgid "Goto View 10"
-msgstr "Använd läge 10"
-
-#: gtk2_ardour/editor_actions.cc:236
-msgid "Save View 11"
-msgstr "Spara läge 11"
-
-#: gtk2_ardour/editor_actions.cc:238
-msgid "Goto View 11"
-msgstr "Använd läge 11"
-
-#: gtk2_ardour/editor_actions.cc:240
-msgid "Save View 12"
-msgstr "Spara läge 12"
-
-#: gtk2_ardour/editor_actions.cc:242
-msgid "Goto View 12"
-msgstr "Använd läge 12"
-
-#: gtk2_ardour/ardour_ui_ed.cc:462
-msgid "Name New Markers"
-msgstr "Namnge nya markörer"
-
-#: gtk2_ardour/editor_ops.cc:1900
-msgid "Name New Location Marker"
-msgstr "Namnge ny platsmarkör"
-
-#: gtk2_ardour/sfdb_ui.cc:513
-msgid "Search Freesound"
-msgstr "Sök i Freesound"
-
-#: gtk2_ardour/sfdb_ui.cc:480
-msgid "User:"
-msgstr "Användarnamn:"
-
-#: gtk2_ardour/sfdb_ui.cc:484
-msgid "Password:"
-msgstr "Lösenord:"
-
-#: gtk2_ardour/sfdb_ui.cc:400 gtk2_ardour/sfdb_ui.cc:789
-msgid "Start Downloading"
-msgstr "Ladda ner"
-
-#: gtk2_ardour/redirect_box.cc:1190
-msgid "New Plugin"
-msgstr "Nytt insticksprogram"
-
-#: gtk2_ardour/plugin_selector.cc:100
-msgid "Plugins to be connected"
-msgstr "Insticksprogram att ansluta"
-
-#: gtk2_ardour/plugin_selector.cc:156
-msgid "Insert Plugin(s)"
-msgstr "Infoga"
-
-#: gtk2_ardour/plugin_selector.cc:501
-msgid "Favorites"
-msgstr "Favoriter"
-
-#: gtk2_ardour/plugin_selector.cc:502
-msgid "Plugin Manager"
-msgstr "Insticksprogram"
-
-#: gtk2_ardour/plugin_selector.cc:77
-msgid "Fav"
-msgstr ""
-
-#: gtk2_ardour/plugin_selector.cc:78
-msgid "Available Plugins"
-msgstr "Tillgängliga insticksprogram"
-
-#: gtk2_ardour/plugin_selector.cc:80
-msgid "Category"
-msgstr "Kategori"
-
-#: gtk2_ardour/plugin_selector.cc:81
-msgid "Creator"
-msgstr "Upphovsperson"
-
-#: gtk2_ardour/plugin_selector.cc:51 gtk2_ardour/plugin_selector.cc:209
-msgid "Name contains"
-msgstr "Namn innehåller"
-
-#: gtk2_ardour/plugin_selector.cc:52 gtk2_ardour/plugin_selector.cc:211
-msgid "Type contains"
-msgstr "Typ innehåller"
-
-#: gtk2_ardour/plugin_selector.cc:53 gtk2_ardour/plugin_selector.cc:213
-msgid "Author contains"
-msgstr "Upphovsperson innehåller"
-
-#: gtk2_ardour/plugin_selector.cc:54 gtk2_ardour/plugin_selector.cc:215
-msgid "Library contains"
-msgstr "Bibliotek innehåller"
-
-#: gtk2_ardour/plugin_selector.cc:55 gtk2_ardour/plugin_selector.cc:203
-#: gtk2_ardour/plugin_selector.cc:451
-msgid "Favorites only"
-msgstr "Endast favoriter"
->>>>>>> .merge-right.r3622