mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-09-03 02:33:53 +00:00
format duration nicely
This commit is contained in:
parent
853c31e75e
commit
01f6795733
2 changed files with 25 additions and 1 deletions
|
@ -61,6 +61,9 @@ void app_selection_changed_cb (GtkTreeSelection * selection, App * app);
|
||||||
gboolean duration_scale_change_value_cb (GtkRange * range, GtkScrollType
|
gboolean duration_scale_change_value_cb (GtkRange * range, GtkScrollType
|
||||||
unused, gdouble value, App * app);
|
unused, gdouble value, App * app);
|
||||||
|
|
||||||
|
void duration_cell_func (GtkTreeViewColumn * column, GtkCellRenderer * renderer,
|
||||||
|
GtkTreeModel * model, GtkTreeIter * iter, gpointer user);
|
||||||
|
|
||||||
gboolean create_ui (App * app);
|
gboolean create_ui (App * app);
|
||||||
|
|
||||||
void connect_to_filesource (GESTimelineObject * object, App * app);
|
void connect_to_filesource (GESTimelineObject * object, App * app);
|
||||||
|
@ -124,6 +127,18 @@ duration_scale_change_value_cb (GtkRange * range, GtkScrollType unused,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
duration_cell_func (GtkTreeViewColumn * column, GtkCellRenderer * renderer,
|
||||||
|
GtkTreeModel * model, GtkTreeIter * iter, gpointer user)
|
||||||
|
{
|
||||||
|
gchar buf[30];
|
||||||
|
guint64 duration;
|
||||||
|
|
||||||
|
gtk_tree_model_get (model, iter, 1, &duration, -1);
|
||||||
|
g_snprintf (buf, sizeof (buf), "%u:%02u:%02u.%09u", GST_TIME_ARGS (duration));
|
||||||
|
g_object_set (renderer, "text", &buf, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
/* application methods ******************************************************/
|
/* application methods ******************************************************/
|
||||||
|
|
||||||
static void selection_foreach (GtkTreeModel * model, GtkTreePath * path,
|
static void selection_foreach (GtkTreeModel * model, GtkTreePath * path,
|
||||||
|
@ -388,6 +403,8 @@ create_ui (App * app)
|
||||||
{
|
{
|
||||||
GtkBuilder *builder;
|
GtkBuilder *builder;
|
||||||
GtkTreeView *timeline;
|
GtkTreeView *timeline;
|
||||||
|
GtkTreeViewColumn *duration_col;
|
||||||
|
GtkCellRenderer *duration_renderer;
|
||||||
|
|
||||||
/* construct widget tree */
|
/* construct widget tree */
|
||||||
|
|
||||||
|
@ -401,6 +418,8 @@ create_ui (App * app)
|
||||||
GET_WIDGET (app->properties, "properties", GTK_WIDGET);
|
GET_WIDGET (app->properties, "properties", GTK_WIDGET);
|
||||||
GET_WIDGET (app->main_window, "window", GTK_WIDGET);
|
GET_WIDGET (app->main_window, "window", GTK_WIDGET);
|
||||||
GET_WIDGET (app->duration, "duration_scale", GTK_HSCALE);
|
GET_WIDGET (app->duration, "duration_scale", GTK_HSCALE);
|
||||||
|
GET_WIDGET (duration_col, "duration_column", GTK_TREE_VIEW_COLUMN);
|
||||||
|
GET_WIDGET (duration_renderer, "duration_renderer", GTK_CELL_RENDERER);
|
||||||
|
|
||||||
/* we care when the tree selection changes */
|
/* we care when the tree selection changes */
|
||||||
|
|
||||||
|
@ -417,6 +436,11 @@ create_ui (App * app)
|
||||||
goto fail;
|
goto fail;
|
||||||
gtk_tree_view_set_model (timeline, GTK_TREE_MODEL (app->model));
|
gtk_tree_view_set_model (timeline, GTK_TREE_MODEL (app->model));
|
||||||
|
|
||||||
|
/* register custom cell data function */
|
||||||
|
|
||||||
|
gtk_tree_view_column_set_cell_data_func (duration_col, duration_renderer,
|
||||||
|
duration_cell_func, NULL, NULL);
|
||||||
|
|
||||||
/* register callbacks on GES objects */
|
/* register callbacks on GES objects */
|
||||||
|
|
||||||
g_signal_connect (app->layer, "object-added",
|
g_signal_connect (app->layer, "object-added",
|
||||||
|
|
|
@ -200,7 +200,7 @@
|
||||||
<property name="sizing">autosize</property>
|
<property name="sizing">autosize</property>
|
||||||
<property name="title">Duration</property>
|
<property name="title">Duration</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkCellRendererText" id="cellrenderertext1"/>
|
<object class="GtkCellRendererText" id="duration_renderer"/>
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="text">1</attribute>
|
<attribute name="text">1</attribute>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
|
Loading…
Reference in a new issue