Playlist UI Tweaks: assign a pgroup_id on Import (gtk part)
This commit is contained in:
parent
42d9e88263
commit
730a0954d7
|
@ -4343,10 +4343,7 @@ Editor::restore_editing_space ()
|
|||
bool
|
||||
Editor::stamp_new_playlist (string &name, string &pgroup, bool copy)
|
||||
{
|
||||
time_t now;
|
||||
time (&now);
|
||||
Glib::DateTime tm (Glib::DateTime::create_now_local (now));
|
||||
string gid (tm.format ("%F %H.%M.%S"));
|
||||
string gid = Playlist::generate_pgroup_id();
|
||||
pgroup = gid;
|
||||
|
||||
if (name.length()==0) {
|
||||
|
|
|
@ -456,6 +456,7 @@ public:
|
|||
ARDOUR::MidiTrackNameSource mts,
|
||||
ARDOUR::MidiTempoMapDisposition mtd,
|
||||
samplepos_t& pos,
|
||||
std::string pgroup_id,
|
||||
boost::shared_ptr<ARDOUR::PluginInfo> instrument = boost::shared_ptr<ARDOUR::PluginInfo>(),
|
||||
bool with_markers = false
|
||||
);
|
||||
|
@ -464,6 +465,7 @@ public:
|
|||
Editing::ImportDisposition disposition,
|
||||
Editing::ImportMode mode,
|
||||
samplepos_t& pos,
|
||||
std::string pgroup_id,
|
||||
boost::shared_ptr<ARDOUR::PluginInfo> instrument = boost::shared_ptr<ARDOUR::PluginInfo>());
|
||||
|
||||
void get_regionview_corresponding_to (boost::shared_ptr<ARDOUR::Region> region, std::vector<RegionView*>& regions);
|
||||
|
|
|
@ -348,6 +348,7 @@ Editor::do_import (vector<string> paths,
|
|||
MidiTrackNameSource midi_track_name_source,
|
||||
MidiTempoMapDisposition smf_tempo_disposition,
|
||||
samplepos_t& pos,
|
||||
string pgroup_id,
|
||||
ARDOUR::PluginInfoPtr instrument,
|
||||
bool with_markers)
|
||||
{
|
||||
|
@ -497,11 +498,13 @@ Editor::do_import (vector<string> paths,
|
|||
}
|
||||
}
|
||||
|
||||
track->playlist()->set_pgroup_id(pgroup_id);
|
||||
|
||||
import_status.all_done = true;
|
||||
}
|
||||
|
||||
void
|
||||
Editor::do_embed (vector<string> paths, ImportDisposition import_as, ImportMode mode, samplepos_t& pos, ARDOUR::PluginInfoPtr instrument)
|
||||
Editor::do_embed (vector<string> paths, ImportDisposition import_as, ImportMode mode, samplepos_t& pos, string pgroup_id, ARDOUR::PluginInfoPtr instrument)
|
||||
{
|
||||
boost::shared_ptr<Track> track;
|
||||
bool check_sample_rate = true;
|
||||
|
|
|
@ -417,6 +417,7 @@ Editor::drop_paths_part_two (const vector<string>& paths, samplepos_t sample, do
|
|||
}
|
||||
}
|
||||
|
||||
string gid = Playlist::generate_pgroup_id();
|
||||
|
||||
std::pair<TimeAxisView*, int> const tvp = trackview_by_y_position (ypos, false);
|
||||
if (tvp.first == 0) {
|
||||
|
@ -424,13 +425,13 @@ Editor::drop_paths_part_two (const vector<string>& paths, samplepos_t sample, do
|
|||
/* drop onto canvas background: create new tracks */
|
||||
|
||||
InstrumentSelector is; // instantiation builds instrument-list and sets default.
|
||||
do_import (midi_paths, Editing::ImportDistinctFiles, ImportAsTrack, SrcBest, SMFTrackName, SMFTempoIgnore, sample, is.selected_instrument(), false);
|
||||
do_import (midi_paths, Editing::ImportDistinctFiles, ImportAsTrack, SrcBest, SMFTrackName, SMFTempoIgnore, sample, gid, is.selected_instrument(), false);
|
||||
|
||||
if (UIConfiguration::instance().get_only_copy_imported_files() || copy) {
|
||||
do_import (audio_paths, Editing::ImportDistinctFiles, Editing::ImportAsTrack,
|
||||
SrcBest, SMFTrackName, SMFTempoIgnore, sample);
|
||||
SrcBest, SMFTrackName, SMFTempoIgnore, sample, gid);
|
||||
} else {
|
||||
do_embed (audio_paths, Editing::ImportDistinctFiles, ImportAsTrack, sample);
|
||||
do_embed (audio_paths, Editing::ImportDistinctFiles, ImportAsTrack, sample, gid);
|
||||
}
|
||||
|
||||
} else if ((tv = dynamic_cast<RouteTimeAxisView*> (tvp.first)) != 0) {
|
||||
|
@ -442,13 +443,13 @@ Editor::drop_paths_part_two (const vector<string>& paths, samplepos_t sample, do
|
|||
selection->set (tv);
|
||||
|
||||
do_import (midi_paths, Editing::ImportSerializeFiles, ImportToTrack,
|
||||
SrcBest, SMFTrackName, SMFTempoIgnore, sample);
|
||||
SrcBest, SMFTrackName, SMFTempoIgnore, sample, gid);
|
||||
|
||||
if (UIConfiguration::instance().get_only_copy_imported_files() || copy) {
|
||||
do_import (audio_paths, Editing::ImportSerializeFiles, Editing::ImportToTrack,
|
||||
SrcBest, SMFTrackName, SMFTempoIgnore, sample, boost::shared_ptr<PluginInfo>(), false);
|
||||
SrcBest, SMFTrackName, SMFTempoIgnore, sample, gid, boost::shared_ptr<PluginInfo>(), false);
|
||||
} else {
|
||||
do_embed (audio_paths, Editing::ImportSerializeFiles, ImportToTrack, sample);
|
||||
do_embed (audio_paths, Editing::ImportSerializeFiles, ImportToTrack, sample, gid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1015,28 +1015,30 @@ void
|
|||
EditorRegions::drag_data_received (const RefPtr<Gdk::DragContext>& context,
|
||||
int x, int y,
|
||||
const SelectionData& data,
|
||||
guint info, guint time)
|
||||
guint info, guint dtime)
|
||||
{
|
||||
vector<string> paths;
|
||||
|
||||
if (data.get_target () == "GTK_TREE_MODEL_ROW") {
|
||||
/* something is being dragged over the region list */
|
||||
_editor->_drags->abort ();
|
||||
_display.on_drag_data_received (context, x, y, data, info, time);
|
||||
_display.on_drag_data_received (context, x, y, data, info, dtime);
|
||||
return;
|
||||
}
|
||||
|
||||
if (_editor->convert_drop_to_paths (paths, context, x, y, data, info, time) == 0) {
|
||||
string gid = Playlist::generate_pgroup_id();
|
||||
|
||||
if (_editor->convert_drop_to_paths (paths, context, x, y, data, info, dtime) == 0) {
|
||||
samplepos_t pos = 0;
|
||||
bool copy = ((context->get_actions () & (Gdk::ACTION_COPY | Gdk::ACTION_LINK | Gdk::ACTION_MOVE)) == Gdk::ACTION_COPY);
|
||||
|
||||
if (UIConfiguration::instance ().get_only_copy_imported_files () || copy) {
|
||||
_editor->do_import (paths, Editing::ImportDistinctFiles, Editing::ImportAsRegion,
|
||||
SrcBest, SMFTrackName, SMFTempoIgnore, pos);
|
||||
SrcBest, SMFTrackName, SMFTempoIgnore, pos, gid);
|
||||
} else {
|
||||
_editor->do_embed (paths, Editing::ImportDistinctFiles, ImportAsRegion, pos);
|
||||
_editor->do_embed (paths, Editing::ImportDistinctFiles, ImportAsRegion, pos, gid);
|
||||
}
|
||||
context->drag_finish (true, false, time);
|
||||
context->drag_finish (true, false, dtime);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -261,11 +261,11 @@ public:
|
|||
|
||||
/** Import existing media */
|
||||
virtual void do_import (std::vector<std::string> paths, Editing::ImportDisposition, Editing::ImportMode mode, ARDOUR::SrcQuality,
|
||||
ARDOUR::MidiTrackNameSource, ARDOUR::MidiTempoMapDisposition, samplepos_t&,
|
||||
ARDOUR::MidiTrackNameSource, ARDOUR::MidiTempoMapDisposition, samplepos_t&, std::string pgroup_id,
|
||||
boost::shared_ptr<ARDOUR::PluginInfo> instrument = boost::shared_ptr<ARDOUR::PluginInfo>(),
|
||||
bool with_markers = false) = 0;
|
||||
virtual void do_embed (std::vector<std::string> paths, Editing::ImportDisposition, Editing::ImportMode mode,
|
||||
samplepos_t&,
|
||||
samplepos_t&, std::string pgroup_id,
|
||||
boost::shared_ptr<ARDOUR::PluginInfo> instrument = boost::shared_ptr<ARDOUR::PluginInfo>()) = 0;
|
||||
|
||||
/** Open main export dialog */
|
||||
|
|
|
@ -2098,10 +2098,12 @@ SoundFileOmega::do_something (int action)
|
|||
|
||||
_import_active = true;
|
||||
|
||||
string gid = Playlist::generate_pgroup_id();
|
||||
|
||||
if (copy_files_btn.get_active()) {
|
||||
PublicEditor::instance().do_import (paths, chns, mode, quality, mts, mtd, where, instrument, with_midi_markers);
|
||||
PublicEditor::instance().do_import (paths, chns, mode, quality, mts, mtd, where, gid, instrument, with_midi_markers);
|
||||
} else {
|
||||
PublicEditor::instance().do_embed (paths, chns, mode, where, instrument);
|
||||
PublicEditor::instance().do_embed (paths, chns, mode, where, gid, instrument);
|
||||
}
|
||||
|
||||
_import_active = false;
|
||||
|
|
Loading…
Reference in New Issue