diff --git a/src/gui/model/clip-track.cpp b/src/gui/model/clip-track.cpp index 5f627eeca..5f8907599 100644 --- a/src/gui/model/clip-track.cpp +++ b/src/gui/model/clip-track.cpp @@ -29,5 +29,15 @@ ClipTrack::ClipTrack() { } +std::string +ClipTrack::print_track() +{ + std::ostringstream os; + + os << "ClipTrack\t\"" << get_name() << "\""; + + return os.str(); +} + } // namespace model } // namespace gui diff --git a/src/gui/model/clip-track.hpp b/src/gui/model/clip-track.hpp index f63ea4e6b..c3c7e0e2f 100644 --- a/src/gui/model/clip-track.hpp +++ b/src/gui/model/clip-track.hpp @@ -40,7 +40,7 @@ class ClipTrack : public Track public: ClipTrack(); - + std::string print_track(); private: diff --git a/src/gui/model/group-track.cpp b/src/gui/model/group-track.cpp index c7572b4d9..73ac08114 100644 --- a/src/gui/model/group-track.cpp +++ b/src/gui/model/group-track.cpp @@ -28,6 +28,16 @@ namespace model { GroupTrack::GroupTrack() { } + +std::string +GroupTrack::print_track() +{ + std::ostringstream os; + + os << "GroupTrack\t\"" << get_name() << "\""; + + return os.str(); +} } // namespace model } // namespace gui diff --git a/src/gui/model/group-track.hpp b/src/gui/model/group-track.hpp index de5ac8f4b..06da74060 100644 --- a/src/gui/model/group-track.hpp +++ b/src/gui/model/group-track.hpp @@ -36,6 +36,7 @@ class GroupTrack : public ParentTrack public: GroupTrack(); + std::string print_track(); }; } // namespace model diff --git a/src/gui/model/sequence.cpp b/src/gui/model/sequence.cpp index 2f89c211b..2503b88cc 100644 --- a/src/gui/model/sequence.cpp +++ b/src/gui/model/sequence.cpp @@ -30,24 +30,42 @@ namespace model { Sequence::Sequence() { // TEST CODE - //static bool first = true; + static bool first = true; shared_ptr group_track, group_track2; + shared_ptr clip_track; tracks.push_back(group_track = shared_ptr(new GroupTrack())); group_track->set_name("Group Track"); - - /*if(first) + + if(first) { - group_track.add_child_track(shared_ptr(new ClipTrack())); - group_track.add_child_track( - group_track2 = shared_ptr(new GroupTrack())); - group_track2.add_child_track(shared_ptr(new ClipTrack())); + group_track->get_child_track_list().push_back( + clip_track = shared_ptr(new ClipTrack())); + group_track->get_child_track_list().push_back( + group_track2 = shared_ptr(new GroupTrack())); + group_track2->set_name("Group Track 2"); + group_track2->get_child_track_list().push_back( + shared_ptr(new ClipTrack())); first = false; - }*/ + } + + tracks.push_back(shared_ptr(new GroupTrack())); tracks.push_back(shared_ptr(new ClipTrack())); // END TEST CODE + + INFO(gui, "\n%s", print_branch().c_str()); +} + +std::string +Sequence::print_track() +{ + std::ostringstream os; + + os << "Sequence\t\"" << get_name() << "\""; + + return os.str(); } } // namespace model diff --git a/src/gui/model/sequence.hpp b/src/gui/model/sequence.hpp index 02a2869c2..277fbf426 100644 --- a/src/gui/model/sequence.hpp +++ b/src/gui/model/sequence.hpp @@ -43,7 +43,8 @@ class Sequence : public ParentTrack public: Sequence(); - + std::string print_track(); + private: }; diff --git a/src/gui/model/track.cpp b/src/gui/model/track.cpp index 4d49ea2b2..f8390f671 100644 --- a/src/gui/model/track.cpp +++ b/src/gui/model/track.cpp @@ -21,6 +21,7 @@ * *****************************************************/ #include "track.hpp" +#include namespace gui { namespace model { @@ -38,17 +39,42 @@ Track::get_child_tracks() const return Track::NoChildren; } -const Glib::ustring +const std::string Track::get_name() const { return name; } void -Track::set_name(const Glib::ustring &name) +Track::set_name(const std::string &name) { this->name = name; } +std::string +Track::print_branch() +{ + return print_branch_recursive(0); +} + +std::string +Track::print_branch_recursive(const unsigned int indentation) +{ + Glib::ustring str; + + for(unsigned int i = 0; i < indentation; i++) + str += " "; + str += print_track(); + str += "\n"; + + BOOST_FOREACH(boost::shared_ptr track, get_child_tracks()) + { + REQUIRE(track); + str += track->print_branch_recursive(indentation + 1); + } + + return str; +} + } // namespace model } // namespace gui diff --git a/src/gui/model/track.hpp b/src/gui/model/track.hpp index f57b1d254..f036e3d1d 100644 --- a/src/gui/model/track.hpp +++ b/src/gui/model/track.hpp @@ -41,13 +41,20 @@ public: virtual std::list< boost::shared_ptr > get_child_tracks() const; - const Glib::ustring get_name() const; + const std::string get_name() const; - void set_name(const Glib::ustring &name); - + void set_name(const std::string &name); + + std::string print_branch(); + + virtual std::string print_track() = 0; + +protected: + std::string print_branch_recursive(const unsigned int indentation); + private: //----- Data -----// - Glib::ustring name; + std::string name; protected: static const std::list< boost::shared_ptr > NoChildren;