diff --git a/configure.ac b/configure.ac
index eb78e6d9a..717fe6f4b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,7 @@
AC_INIT(lumiera, 0.1pre)
-AC_CONFIG_SRCDIR(src/lib/luid.c)
-AC_CONFIG_AUX_DIR(scripts)
+AC_CONFIG_SRCDIR([src/lib/luid.c])
+AC_CONFIG_AUX_DIR([scripts])
+AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE
AC_PREREQ(2.59)
@@ -123,7 +124,7 @@ AC_CHECK_HEADER([boost/regex.hpp],
AC_LANG_POP([C++])
-PKG_CHECK_MODULES(LUMIERA_COMMON_LIBS, [sigc++-2.0 >= 2.0.18])
+PKG_CHECK_MODULES(LUMIERA_COMMON_LIBS, [sigc++-2.0 >= 2.0.17])
############## Internatinalization
#GETTEXT_PACKAGE=gtk-lumiera
diff --git a/icons/Makefile.am b/icons/Makefile.am
index c4bb2c8ca..6490393ab 100644
--- a/icons/Makefile.am
+++ b/icons/Makefile.am
@@ -33,6 +33,7 @@ iconcommand = python $(top_srcdir)/admin/render-icon.py
48x48pre = $(prerendereddir)/48x48
dist_pkgdata_DATA += \
+ $(16x16)/app-icon.png $(22x22)/app-icon.png $(24x24)/app-icon.png $(32x32)/app-icon.png $(48x48)/app-icon.png \
$(16x16)/tool-arrow.png $(22x22)/tool-arrow.png $(24x24)/tool-arrow.png $(32x32)/tool-arrow.png $(48x48)/tool-arrow.png \
$(16x16)/tool-i-beam.png $(22x22)/tool-i-beam.png $(24x24)/tool-i-beam.png $(32x32)/tool-i-beam.png $(48x48)/tool-i-beam.png \
$(16x16)/track-disabled.png \
@@ -48,6 +49,11 @@ clean-local:
# ========== SVG Icons ==========
+# App Icon
+
+$(16x16)/app-icon.png $(22x22)/app-icon.png $(24x24)/app-icon.png $(32x32)/app-icon.png $(48x48)/app-icon.png : $(svgdir)/app-icon.svg $(top_builddir)/rsvg-convert
+ $(iconcommand) $< $(icondir)
+
# Timeline Tools
$(16x16)/tool-arrow.png $(22x22)/tool-arrow.png $(24x24)/tool-arrow.png $(32x32)/tool-arrow.png $(48x48)/tool-arrow.png : $(svgdir)/tool-arrow.svg $(top_builddir)/rsvg-convert
diff --git a/icons/svg/app-icon.svg b/icons/svg/app-icon.svg
new file mode 100644
index 000000000..1df75c265
--- /dev/null
+++ b/icons/svg/app-icon.svg
@@ -0,0 +1,903 @@
+
+
+
diff --git a/src/gui/Makefile.am b/src/gui/Makefile.am
index 467521430..70e8264fb 100644
--- a/src/gui/Makefile.am
+++ b/src/gui/Makefile.am
@@ -144,6 +144,8 @@ libgui_la_SOURCES = \
$(lumigui_srcdir)/widgets/timeline/timeline-group-track.hpp \
$(lumigui_srcdir)/widgets/timeline/timeline-clip.cpp \
$(lumigui_srcdir)/widgets/timeline/timeline-clip.hpp \
+ $(lumigui_srcdir)/widgets/timeline/timeline-layout-helper.cpp \
+ $(lumigui_srcdir)/widgets/timeline/timeline-layout-helper.hpp \
$(lumigui_srcdir)/model/project.cpp \
$(lumigui_srcdir)/model/project.hpp \
$(lumigui_srcdir)/model/track.cpp \
diff --git a/src/gui/dialogs/render.hpp b/src/gui/dialogs/render.hpp
index 51c088b72..51989a25e 100644
--- a/src/gui/dialogs/render.hpp
+++ b/src/gui/dialogs/render.hpp
@@ -54,12 +54,11 @@ protected:
Gtk::HBox containerFormatHBox;
Gtk::Label containerFormatLabel;
Gtk::ComboBox containerFormat;
+
+ Gtk::Image renderButtonImage;
Gtk::Frame audioFrame;
-
Gtk::Frame videoFrame;
-
- Gtk::Image renderButtonImage;
};
} // namespace dialogs
diff --git a/src/gui/gtk-lumiera.cpp b/src/gui/gtk-lumiera.cpp
index e9c7b0088..34a49d4ad 100644
--- a/src/gui/gtk-lumiera.cpp
+++ b/src/gui/gtk-lumiera.cpp
@@ -44,6 +44,7 @@ using namespace gui;
using namespace gui::workspace;
using namespace gui::model;
+
GtkLumiera the_application;
@@ -66,7 +67,9 @@ GtkLumiera::main(int argc, char *argv[])
WorkspaceWindow main_window(&project);
- kit.run(main_window);
+ kit.run(main_window);
+
+ return 0;
}
Glib::ustring
@@ -83,6 +86,20 @@ application()
return the_application;
}
+/* ===== Constants ===== */
+
+const gchar* GtkLumiera::AppTitle = "Lumiera";
+const gchar* GtkLumiera::AppVersion = _("0.1-dev");
+const gchar* GtkLumiera::AppCopyright =
+ _("© 2008 The Lumiera Team");
+const gchar* GtkLumiera::AppWebsite = "www.lumiera.org";
+const gchar* GtkLumiera::AppAuthors[] = {
+ "Joel Holdsworth",
+ "Christian Thaeter",
+ "Hermann Vosseler",
+ ""};
+const int GtkLumiera::AppAuthorCount = 4;
+
} // namespace gui
diff --git a/src/gui/gtk-lumiera.hpp b/src/gui/gtk-lumiera.hpp
index f2e228851..a01bc5dc4 100644
--- a/src/gui/gtk-lumiera.hpp
+++ b/src/gui/gtk-lumiera.hpp
@@ -32,8 +32,10 @@
#include // need to include this after gtkmm.h, because types.h from GTK tries to shaddow the ERROR macro from windows, which kills NoBug's ERROR macro
#include
#include
+#include
#include
#include
+#include
#include "lib/util.hpp"
extern "C" {
@@ -59,37 +61,6 @@ NOBUG_DECLARE_FLAG(gui);
*/
namespace gui {
-/* ===== Global Constants ===== */
-
-/**
- * The name of the application
- */
-static const gchar* AppTitle = "Lumiera";
-
-/**
- * The version number of the application
- */
-static const gchar* AppVersion = N_("0.1-dev");
-
-/**
- * The copyright of the application
- */
-static const gchar* AppCopyright = N_("© 2008 The Lumiera Team");
-
-/**
- * The website of the application
- */
-static const gchar* AppWebsite = "www.lumiera.org";
-
-/**
- * An alphabetical list of the application's authors
- */
-static const gchar* AppAuthors[] = {
- "Joel Holdsworth",
- "Christian Thaeter",
- "Hermann Vosseler",
- ""};
-
/* ===== The Application Class ===== */
/**
@@ -102,6 +73,38 @@ public:
static Glib::ustring get_home_data_path();
+
+public:
+ /* ----- Constants ----- */
+ /**
+ * The name of the application
+ */
+ static const gchar* AppTitle;
+
+ /**
+ * The version number of the application
+ */
+ static const gchar* AppVersion;
+
+ /**
+ * The copyright of the application
+ */
+ static const gchar* AppCopyright;
+
+ /**
+ * The website of the application
+ */
+ static const gchar* AppWebsite;
+
+ /**
+ * An alphabetical list of the application's authors
+ */
+ static const gchar* AppAuthors[];
+
+ /**
+ * The number of authors in AppAuthors
+ **/
+ static const int AppAuthorCount;
};
/**
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/parent-track.cpp b/src/gui/model/parent-track.cpp
index c00048129..612e112d7 100644
--- a/src/gui/model/parent-track.cpp
+++ b/src/gui/model/parent-track.cpp
@@ -21,6 +21,7 @@
* *****************************************************/
#include "parent-track.hpp"
+#include
namespace gui {
namespace model {
@@ -41,5 +42,27 @@ ParentTrack::get_child_track_list()
return tracks;
}
+bool
+ParentTrack::remove_child_track(const boost::shared_ptr