[transmageddon/gtk3: 1/3] First steps towards GTK3 port



commit cb0ae1f167b82560ad7c9dcec6d5c50c2b8c955a
Author: Christian Fredrik Kalager Schaller <christian schaller collabora co uk>
Date:   Mon Nov 7 17:05:49 2011 +0000

    First steps towards GTK3 port

 src/transcoder_engine.py |   29 +++----
 src/transmageddon.py     |  111 ++++++++++++++--------------
 src/transmageddon.ui     |  187 +++++++++++++++++++++++++++++----------------
 3 files changed, 188 insertions(+), 139 deletions(-)
---
diff --git a/src/transcoder_engine.py b/src/transcoder_engine.py
index c69d88c..c71987a 100644
--- a/src/transcoder_engine.py
+++ b/src/transcoder_engine.py
@@ -21,29 +21,24 @@ import os
 import codecfinder
 import presets
 
-try:
-   import gobject; gobject.threads_init()
-   import pygst
-   import glib
-   pygst.require("0.10")
-   import gst
-except Exception, e:
-   print "failed to import required modules"
-   print e
-   sys.exit(1)
-
-class Transcoder(gobject.GObject):
+from gi.repository import GObject
+GObject.threads_init()
+import pygst
+pygst.require("0.10")
+import gst
+
+class Transcoder(GObject.GObject):
 
    __gsignals__ = {
-            'ready-for-querying' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []),
-            'got-eos' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []),
-            'got-error' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,))
+            'ready-for-querying' : (GObject.SignalFlags.RUN_LAST, None, []),
+            'got-eos' : (GObject.SignalFlags.RUN_LAST, None, []),
+            'got-error' : (GObject.SignalFlags.RUN_LAST, None, (GObject.TYPE_PYOBJECT,))
                     }
 
    def __init__(self, FILECHOSEN, FILENAME, DESTDIR, CONTAINERCHOICE, AUDIOCODECVALUE, VIDEOCODECVALUE, PRESET, 
                       OHEIGHT, OWIDTH, FRATENUM, FRATEDEN, ACHANNELS, MULTIPASS, PASSCOUNTER, OUTPUTNAME, 
                       TIMESTAMP, ROTATIONVALUE, AUDIOPASSTOGGLE, VIDEOPASSTOGGLE, INTERLACED, INPUTVIDEOCAPS):
-       gobject.GObject.__init__(self)
+       GObject.GObject.__init__(self)
 
        # Choose plugin based on Container name
        self.container = CONTAINERCHOICE
@@ -368,7 +363,7 @@ class Transcoder(gobject.GObject):
 
        # Grab element from encodebin which supports tagsetter interface and set app name
        # to Transmageddon
-       GstTagSetterType = gobject.type_from_name("GstTagSetter")
+       GstTagSetterType = GObject.type_from_name("GstTagSetter")
        tag_setting_element=self.encodebin.get_by_interface(GstTagSetterType)
        if tag_setting_element != None:
            taglist=gst.TagList()
diff --git a/src/transmageddon.py b/src/transmageddon.py
index 51dfb5f..1f55d3c 100644
--- a/src/transmageddon.py
+++ b/src/transmageddon.py
@@ -26,7 +26,6 @@ os.putenv('GST_DEBUG_DUMP_DIR_DIR', '/tmp')
 import which
 import time
 import transcoder_engine
-import gobject; gobject.threads_init()
 from urlparse import urlparse
 import codecfinder
 import about
@@ -36,26 +35,23 @@ import datetime
 from gettext import gettext as _
 import gettext
 
-try:
-   import pygtk
-   pygtk.require("2.0")
-   import glib
-   import gtk
-   import pygst
-   pygst.require("0.10")
-   import gst
-   import gst.pbutils
-except Exception, e:
-   print "failed to import required modules"
-   print e
-   sys.exit(1)
+import gi
+from gi.repository import Gtk
+from gi.repository import GObject
+GObject.threads_init()
+from gi.repository import GLib
+import pygst
+pygst.require("0.10")
+import gst
+import gst.pbutils
+
 
 major, minor, patch = gst.pygst_version
 if (major == 0) and (patch < 22):
    print "You need version 0.10.22 or higher of gstreamer-python for Transmageddon" 
    sys.exit(1)
 
-major, minor, patch = gobject.pygobject_version
+major, minor, patch = GObject.pygobject_version
 if (major == 2) and (minor < 18):
    print "You need version 2.18.0 or higher of pygobject for Transmageddon"
    sys.exit(1)
@@ -154,7 +150,7 @@ class TransmageddonUI:
        gettext.bindtextdomain("transmageddon","../../share/locale")
        gettext.textdomain("transmageddon")
 
-       self.builder = gtk.Builder()
+       self.builder = Gtk.Builder()
        # Set the translation domain of builder
        # please note the call *right after* the builder is created
        self.builder.set_translation_domain("transmageddon")
@@ -179,15 +175,15 @@ class TransmageddonUI:
        # these dynamic comboboxes allow us to support files with multiple streams eventually
        def dynamic_comboboxes_audio(streams,extra = []):
            streams=1 # this will become a variable once we support multiple streams
-           vbox = gtk.VBox()
+           vbox = Gtk.VBox()
 
            x=-1
            while x < (streams-1):
                x=x+1
                # print "x is " + str(x)
-               store = gtk.ListStore(gobject.TYPE_STRING, *extra)
-               combo = gtk.ComboBox(store)
-               text_cell = gtk.CellRendererText()
+               # store = Gtk.ListStore(GObject.TYPE_STRING, *extra)
+               combo = Gtk.ComboBoxText.new()
+               text_cell = Gtk.CellRendererText()
                combo.pack_start(text_cell, True)
                combo.add_attribute(text_cell, 'text', 0)
                self.audiorows.append(combo)
@@ -196,14 +192,14 @@ class TransmageddonUI:
 
        def dynamic_comboboxes_video(streams,extra = []):
            streams=1
-           vbox = gtk.VBox()
+           vbox = Gtk.VBox()
 
            x=-1
            while x < (streams-1):
                x=x+1
-               store = gtk.ListStore(gobject.TYPE_STRING, *extra)
-               combo = gtk.ComboBox(store)
-               text_cell = gtk.CellRendererText()
+               # store = Gtk.ListStore(GObject.TYPE_STRING, *extra)
+               combo = Gtk.ComboBoxText.new()
+               text_cell = Gtk.CellRendererText()
                combo.pack_start(text_cell, True)
                combo.add_attribute(text_cell, 'text', 0)
                self.videorows.append(combo)
@@ -217,8 +213,8 @@ class TransmageddonUI:
        self.audioinformation = self.builder.get_object("audioinformation")
        self.videocodec = self.builder.get_object("videocodec")
        self.audiocodec = self.builder.get_object("audiocodec")
-       self.audiobox = dynamic_comboboxes_audio([gobject.TYPE_PYOBJECT])
-       self.videobox = dynamic_comboboxes_video([gobject.TYPE_PYOBJECT])
+       self.audiobox = dynamic_comboboxes_audio([GObject.TYPE_PYOBJECT])
+       self.videobox = dynamic_comboboxes_video([GObject.TYPE_PYOBJECT])
        self.CodecBox = self.builder.get_object("CodecBox")
        self.presetchoice = self.builder.get_object("presetchoice")
        self.containerchoice = self.builder.get_object("containerchoice")
@@ -227,12 +223,12 @@ class TransmageddonUI:
        self.ProgressBar = self.builder.get_object("ProgressBar")
        self.cancelbutton = self.builder.get_object("cancelbutton")
        self.StatusBar = self.builder.get_object("StatusBar")
-       self.CodecBox.attach(self.audiobox, 0, 1, 1, 2, yoptions = gtk.FILL)
-       self.CodecBox.attach(self.videobox, 2, 3, 1, 2, yoptions = gtk.FILL)
+       self.CodecBox.attach(self.audiobox, 0, 1, 1, 2, yoptions = Gtk.AttachOptions.FILL)
+       self.CodecBox.attach(self.videobox, 2, 3, 1, 2, yoptions = Gtk.AttachOptions.FILL)
        self.CodecBox.show_all()
        self.audiorows[0].connect("changed", self.on_audiocodec_changed)
        self.videorows[0].connect("changed", self.on_videocodec_changed)
-       self.TopWindow.connect("destroy", gtk.main_quit)
+       self.TopWindow.connect("destroy", Gtk.main_quit)
        def get_file_path_from_dnd_dropped_uri(self, uri):
            # get the path to file
            path = ""
@@ -250,10 +246,10 @@ class TransmageddonUI:
                uri = selection.data.strip('\r\n\x00')
                self.builder.get_object ("FileChooser").set_uri(uri)
 
-       self.TopWindow.connect('drag_data_received', on_drag_data_received)
-       self.TopWindow.drag_dest_set( gtk.DEST_DEFAULT_MOTION |
-               gtk.DEST_DEFAULT_HIGHLIGHT | gtk.DEST_DEFAULT_DROP, dnd_list, \
-               gtk.gdk.ACTION_COPY)
+       #self.TopWindow.connect('drag_data_received', on_drag_data_received)
+       #self.Gtk.drag_dest_set(TopWindow,  Gtk.DEST_DEFAULT_MOTION |
+       #        Gtk.DEST_DEFAULT_HIGHLIGHT | Gtk.DEST_DEFAULT_DROP, dnd_list, \
+       #        Gdk.DragAction.COPY)
 
        self.start_time = False
        self.multipass = False
@@ -261,11 +257,11 @@ class TransmageddonUI:
        
        # Set the Videos XDG UserDir as the default directory for the filechooser
        # also make sure directory exists
-       if 'get_user_special_dir' in glib.__dict__:
+       if 'get_user_special_dir' in GLib.__dict__:
            self.videodirectory = \
-                   glib.get_user_special_dir(glib.USER_DIRECTORY_VIDEOS)
+                   GLib.get_user_special_dir(GLib.USER_DIRECTORY_VIDEOS)
            self.audiodirectory = \
-                   glib.get_user_special_dir(glib.USER_DIRECTORY_MUSIC)
+                   GLib.get_user_special_dir(GLib.USER_DIRECTORY_MUSIC)
        else:
            print "XDG video or audio directory not available"
            self.videodirectory = os.getenv('HOME')
@@ -338,10 +334,10 @@ class TransmageddonUI:
        self.p_time = gst.FORMAT_TIME
 
        # Populate the Container format combobox
-       for i in supported_containers:
-           self.containerchoice.append_text(i)
+       # for i in supported_containers:
+       #    self.containerchoice.append_text(i)
        # add i18n "No container"option
-       self.containerchoice.append_text(_("No container (Audio-only)"))
+       # self.containerchoice.append_text(_("No container (Audio-only)"))
 
        # Populate the rotatation box
        self.rotationlist = [_("No rotation (default)"),\
@@ -369,8 +365,8 @@ class TransmageddonUI:
            devicelist.append(str(device))
            shortname.append(str(name))
 
-       #for (name, device) in (presets.get().items()):
-       #    shortname.append(str(name))
+       for (name, device) in (presets.get().items()):
+           shortname.append(str(name))
        self.presetchoices = dict(zip(devicelist, shortname))
        self.presetchoice.prepend_text(_("No Presets"))
 
@@ -486,11 +482,11 @@ class TransmageddonUI:
        else:
            return False
 
-   # Call gobject.timeout_add with a value of 500millisecond to regularly poll
+   # Call GObject.timeout_add with a value of 500millisecond to regularly poll
    # for position so we can
    # use it for the progressbar
    def ProgressBarUpdate(self, source):
-       gobject.timeout_add(500, self.Increment_Progressbar)
+       GObject.timeout_add(500, self.Increment_Progressbar)
        # print "ProgressBar timeout_add startet"
 
    def _on_eos(self, source):
@@ -687,7 +683,7 @@ class TransmageddonUI:
 
                # removing bogus text from supported_containers
                if self.bogus==0:
-                   self.containerchoice.remove_text(12)
+                   self.containerchoice.remove(12)
                    self.bogus=1
                self.nocontaineroptiontoggle=False
            self.containerchoice.set_sensitive(True)
@@ -896,12 +892,12 @@ class TransmageddonUI:
        # clean up stuff from previous run
        self.houseclean=True # set this to avoid triggering events when cleaning out menus
        for c in self.audiocodecs: # 
-           self.audiorows[0].remove_text(0)
+           self.audiorows[0].remove(0)
        self.audiocodecs =[]
        if self.havevideo==True:
            if self.container != False:
                for c in self.videocodecs:
-                   self.videorows[0].remove_text(0)
+                   self.videorows[0].remove(0)
                self.videocodecs=[]
        self.houseclean=False
       # end of housecleaning
@@ -985,9 +981,10 @@ class TransmageddonUI:
        self.populate_menu_choices()
 
    def on_presetchoice_changed(self, widget):
-       presetchoice = self.builder.get_object ("presetchoice").get_active_text ()
+       presetchoice = self.builder.get_object ("presetchoice").get_active()
+       print "presetchoice is " + str(presetchoice)
        self.ProgressBar.set_fraction(0.0)
-       if presetchoice == _("No Presets"):
+       if presetchoice == 0:
            self.usingpreset=False
            self.devicename = "nopreset"
            self.containerchoice.set_sensitive(True)
@@ -1003,11 +1000,15 @@ class TransmageddonUI:
        else:
            self.usingpreset=True
            self.ProgressBar.set_fraction(0.0)
-           self.devicename= self.presetchoices[presetchoice]
-           self.provide_presets(self.devicename)
-           self.containerchoice.set_sensitive(False)
-           self.CodecBox.set_sensitive(False)
-           self.rotationchoice.set_sensitive(False)
+           if presetchoice != None:
+               print "am I getting here"
+               self.devicename= self.presetchoices[presetchoice]
+               self.provide_presets(self.devicename)
+               self.containerchoice.set_sensitive(False)
+               self.CodecBox.set_sensitive(False)
+               self.rotationchoice.set_sensitive(False)
+           else:
+               print "no presetchoice values found"
            if self.builder.get_object("containerchoice").get_active_text():
                self.transcodebutton.set_sensitive(True)
 
@@ -1084,11 +1085,11 @@ class TransmageddonUI:
        try:
            dot = which.which("dot")
            os.system(dot + " -Tpng -o " + pngfile + " " + dotfile)
-           gtk.show_uri(gtk.gdk.Screen(), "file://"+pngfile, 0)
+           Gtk.show_uri(Gdk.Screen(), "file://"+pngfile, 0)
        except which.WhichError:
               print "The debug feature requires graphviz (dot) to be installed."
               print "Transmageddon can not find the (dot) binary."
 
 if __name__ == "__main__":
         hwg = TransmageddonUI()
-        gtk.main()
+        Gtk.main()
diff --git a/src/transmageddon.ui b/src/transmageddon.ui
index 8663d46..a74de14 100644
--- a/src/transmageddon.ui
+++ b/src/transmageddon.ui
@@ -1,45 +1,53 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <requires lib="gtk+" version="2.16"/>
-  <!-- interface-naming-policy project-wide -->
   <object class="GtkWindow" id="TopWindow">
     <property name="visible">True</property>
+    <property name="can_focus">False</property>
     <property name="title" translatable="yes">Transmageddon</property>
     <property name="icon_name">TransmageddonIcon</property>
     <child>
       <object class="GtkVBox" id="vbox1">
         <property name="visible">True</property>
-        <property name="orientation">vertical</property>
+        <property name="can_focus">False</property>
         <child>
           <object class="GtkMenuBar" id="menubar">
             <property name="visible">True</property>
+            <property name="can_focus">False</property>
             <property name="no_show_all">True</property>
             <property name="pack_direction">rtl</property>
             <property name="child_pack_direction">rtl</property>
             <child>
               <object class="GtkMenuItem" id="help">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="use_action_appearance">False</property>
                 <property name="label" translatable="yes">_Help</property>
                 <property name="use_underline">True</property>
                 <child type="submenu">
                   <object class="GtkMenu" id="menu6">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <child>
                       <object class="GtkImageMenuItem" id="debug">
                         <property name="label" translatable="yes">_Debug</property>
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="use_action_appearance">False</property>
                         <property name="use_underline">True</property>
                         <property name="use_stock">False</property>
-                        <signal name="activate" handler="on_debug_activate"/>
+                        <signal name="activate" handler="on_debug_activate" swapped="no"/>
                       </object>
                     </child>
                     <child>
                       <object class="GtkImageMenuItem" id="about_dialog">
                         <property name="label">gtk-about</property>
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="use_action_appearance">False</property>
                         <property name="use_underline">True</property>
                         <property name="use_stock">True</property>
-                        <signal name="activate" handler="on_about_dialog_activate"/>
+                        <signal name="activate" handler="on_about_dialog_activate" swapped="no"/>
                       </object>
                     </child>
                   </object>
@@ -49,23 +57,26 @@
           </object>
           <packing>
             <property name="expand">False</property>
+            <property name="fill">True</property>
             <property name="position">0</property>
           </packing>
         </child>
         <child>
           <object class="GtkVBox" id="vbox2">
             <property name="visible">True</property>
+            <property name="can_focus">False</property>
             <property name="border_width">12</property>
-            <property name="orientation">vertical</property>
             <child>
               <object class="GtkTable" id="table1">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="n_rows">9</property>
                 <property name="n_columns">3</property>
                 <child>
                   <object class="GtkLabel" id="vspacer3">
                     <property name="width_request">12</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
@@ -78,6 +89,7 @@
                 <child>
                   <object class="GtkLabel" id="audioinformation">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="label" translatable="yes">&lt;small&gt;Audio Channels:&lt;/small&gt;</property>
                     <property name="use_markup">True</property>
@@ -92,6 +104,7 @@
                 <child>
                   <object class="GtkLabel" id="videoinformation">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="yalign">0</property>
                     <property name="label" translatable="yes">&lt;small&gt;Video height&amp;#47;width:&lt;/small&gt;</property>
@@ -105,6 +118,7 @@
                 <child>
                   <object class="GtkLabel" id="preset_label">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="label" translatable="yes">&lt;b&gt;Presets:&lt;/b&gt;</property>
                     <property name="use_markup">True</property>
@@ -118,6 +132,7 @@
                   <object class="GtkLabel" id="vspacer6">
                     <property name="width_request">12</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
@@ -128,28 +143,9 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkComboBox" id="presetchoice">
-                    <property name="visible">True</property>
-                    <property name="model">presetsmodel</property>
-                    <property name="active">0</property>
-                    <signal name="changed" handler="on_presetchoice_changed"/>
-                    <child>
-                      <object class="GtkCellRendererText" id="cellrenderertext1"/>
-                      <attributes>
-                        <attribute name="text">0</attribute>
-                      </attributes>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">5</property>
-                    <property name="bottom_attach">6</property>
-                  </packing>
-                </child>
-                <child>
                   <object class="GtkLabel" id="ChooseFileLabel">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="label" translatable="yes">&lt;b&gt;Choose Input File:&lt;/b&gt;</property>
                     <property name="use_markup">True</property>
@@ -160,8 +156,9 @@
                 <child>
                   <object class="GtkFileChooserButton" id="FileChooser">
                     <property name="visible">True</property>
-                    <signal name="file_set" handler="on_FileChooser_file_set"/>
-                    <signal name="selection_changed" handler="on_FileChooser_file_set"/>
+                    <property name="can_focus">False</property>
+                    <signal name="selection-changed" handler="on_FileChooser_file_set" swapped="no"/>
+                    <signal name="file-set" handler="on_FileChooser_file_set" swapped="no"/>
                   </object>
                   <packing>
                     <property name="left_attach">2</property>
@@ -172,6 +169,7 @@
                   <object class="GtkLabel" id="vspacer1">
                     <property name="width_request">12</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
@@ -183,6 +181,7 @@
                   <object class="GtkLabel" id="hspacer4">
                     <property name="height_request">6</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="left_attach">2</property>
@@ -196,6 +195,7 @@
                   <object class="GtkLabel" id="vspacer4">
                     <property name="width_request">12</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
@@ -209,6 +209,7 @@
                   <object class="GtkLabel" id="hspacer3">
                     <property name="height_request">6</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="top_attach">4</property>
@@ -220,6 +221,7 @@
                   <object class="GtkLabel" id="hspacer2">
                     <property name="height_request">6</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="left_attach">2</property>
@@ -234,6 +236,7 @@
                     <property name="width_request">12</property>
                     <property name="height_request">6</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
@@ -248,6 +251,7 @@
                   <object class="GtkLabel" id="hspacer1">
                     <property name="height_request">6</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="top_attach">1</property>
@@ -259,6 +263,7 @@
                   <object class="GtkLabel" id="hspacer7">
                     <property name="height_request">6</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="top_attach">8</property>
@@ -270,6 +275,7 @@
                   <object class="GtkLabel" id="hspacer8">
                     <property name="height_request">6</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="left_attach">2</property>
@@ -284,6 +290,7 @@
                     <property name="width_request">12</property>
                     <property name="height_request">6</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
@@ -297,6 +304,7 @@
                 <child>
                   <object class="GtkLabel" id="presets_label1">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="label" translatable="yes">&lt;b&gt;Output Format:&lt;/b&gt;</property>
                     <property name="use_markup">True</property>
@@ -307,29 +315,10 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkComboBox" id="containerchoice">
-                    <property name="visible">True</property>
-                    <property name="model">outputformatmodel</property>
-                    <property name="active">0</property>
-                    <signal name="changed" handler="on_containerchoice_changed"/>
-                    <child>
-                      <object class="GtkCellRendererText" id="cellrenderertext3"/>
-                      <attributes>
-                        <attribute name="text">0</attribute>
-                      </attributes>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="right_attach">3</property>
-                    <property name="top_attach">6</property>
-                    <property name="bottom_attach">7</property>
-                  </packing>
-                </child>
-                <child>
                   <object class="GtkLabel" id="hspacer5">
                     <property name="height_request">6</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="top_attach">7</property>
@@ -341,6 +330,7 @@
                   <object class="GtkLabel" id="hspacer6">
                     <property name="height_request">6</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="left_attach">2</property>
@@ -355,6 +345,7 @@
                     <property name="width_request">12</property>
                     <property name="height_request">6</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
@@ -370,6 +361,7 @@
                     <property name="width_request">12</property>
                     <property name="height_request">6</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
@@ -383,6 +375,7 @@
                 <child>
                   <object class="GtkLabel" id="videocodec">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="yalign">0</property>
                     <property name="label" translatable="yes">&lt;small&gt;Video codec:&lt;/small&gt;</property>
@@ -396,6 +389,7 @@
                 <child>
                   <object class="GtkLabel" id="audiocodec">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="yalign">0</property>
                     <property name="label" translatable="yes">&lt;small&gt;Audio codec:&lt;/small&gt;</property>
@@ -412,6 +406,7 @@
                   <object class="GtkLabel" id="vspacer10">
                     <property name="width_request">12</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
@@ -421,20 +416,49 @@
                     <property name="x_options"></property>
                   </packing>
                 </child>
+                <child>
+                  <object class="GtkComboBoxText" id="presetchoice">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <signal name="changed" handler="on_presetchoice_changed" swapped="no"/>
+                  </object>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">5</property>
+                    <property name="bottom_attach">6</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkComboBoxText" id="containerchoice">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">6</property>
+                    <property name="bottom_attach">7</property>
+                  </packing>
+                </child>
               </object>
               <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
                 <property name="position">0</property>
               </packing>
             </child>
             <child>
               <object class="GtkTable" id="CodecBox">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="n_rows">4</property>
                 <property name="n_columns">3</property>
                 <child>
                   <object class="GtkLabel" id="vspacer15">
                     <property name="width_request">12</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
@@ -448,6 +472,7 @@
                   <object class="GtkLabel" id="vspacer23">
                     <property name="width_request">12</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
@@ -461,6 +486,7 @@
                   <object class="GtkLabel" id="vspacer24">
                     <property name="width_request">12</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="yalign">0</property>
                   </object>
@@ -473,6 +499,7 @@
                 <child>
                   <object class="GtkLabel" id="label15">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="label" translatable="yes">&lt;b&gt;Choose Audio Codec&lt;/b&gt;:</property>
                     <property name="use_markup">True</property>
@@ -482,6 +509,7 @@
                   <object class="GtkLabel" id="vspacer9">
                     <property name="width_request">12</property>
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
@@ -494,6 +522,7 @@
                 <child>
                   <object class="GtkLabel" id="label1">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="top_attach">3</property>
@@ -503,6 +532,7 @@
                 <child>
                   <object class="GtkLabel" id="label2">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="left_attach">2</property>
@@ -514,6 +544,7 @@
                 <child>
                   <object class="GtkLabel" id="label14">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="label" translatable="yes">&lt;b&gt;Choose Video Codec&lt;/b&gt;:</property>
                     <property name="use_markup">True</property>
@@ -537,16 +568,19 @@
                 </child>
               </object>
               <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
                 <property name="position">1</property>
               </packing>
             </child>
             <child>
               <object class="GtkVBox" id="vbox3">
                 <property name="visible">True</property>
-                <property name="orientation">vertical</property>
+                <property name="can_focus">False</property>
                 <child>
                   <object class="GtkLabel" id="rotationlabel">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="yalign">0</property>
                     <property name="label" translatable="yes">&lt;small&gt;Rotate the video image if needed&lt;/small&gt;</property>
@@ -554,36 +588,38 @@
                     <property name="justify">right</property>
                   </object>
                   <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkComboBox" id="rotationchoice">
+                  <object class="GtkComboBoxText" id="rotationchoice">
                     <property name="visible">True</property>
-                    <property name="model">rotationmodel</property>
-                    <property name="active">0</property>
-                    <signal name="changed" handler="on_rotationchoice_changed"/>
-                    <child>
-                      <object class="GtkCellRendererText" id="cellrenderertext2"/>
-                      <attributes>
-                        <attribute name="text">0</attribute>
-                      </attributes>
-                    </child>
+                    <property name="can_focus">False</property>
+                    <signal name="changed" handler="on_rotationchoice_changed" swapped="no"/>
                   </object>
                   <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
               </object>
               <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
                 <property name="position">2</property>
               </packing>
             </child>
             <child>
               <object class="GtkProgressBar" id="ProgressBar">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
               </object>
               <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
                 <property name="padding">6</property>
                 <property name="position">3</property>
               </packing>
@@ -591,12 +627,16 @@
             <child>
               <object class="GtkHBox" id="hbox1">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <child>
                   <object class="GtkLabel" id="label8">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                   </object>
                   <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
@@ -606,10 +646,13 @@
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">True</property>
+                    <property name="use_action_appearance">False</property>
                     <property name="use_stock">True</property>
-                    <signal name="clicked" handler="on_cancelbutton_clicked"/>
+                    <signal name="clicked" handler="on_cancelbutton_clicked" swapped="no"/>
                   </object>
                   <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
@@ -619,38 +662,52 @@
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">True</property>
+                    <property name="use_action_appearance">False</property>
                     <property name="use_underline">True</property>
-                    <signal name="clicked" handler="on_transcodebutton_clicked"/>
+                    <signal name="clicked" handler="on_transcodebutton_clicked" swapped="no"/>
                   </object>
                   <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
                     <property name="position">2</property>
                   </packing>
                 </child>
               </object>
               <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
                 <property name="padding">3</property>
                 <property name="position">4</property>
               </packing>
             </child>
           </object>
           <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
             <property name="position">1</property>
           </packing>
         </child>
         <child>
           <object class="GtkStatusbar" id="StatusBar">
             <property name="visible">True</property>
+            <property name="can_focus">False</property>
             <property name="spacing">2</property>
           </object>
           <packing>
             <property name="expand">False</property>
+            <property name="fill">True</property>
             <property name="position">2</property>
           </packing>
         </child>
       </object>
     </child>
   </object>
-  <object class="GtkListStore" id="rotationmodel">
+  <object class="GtkImage" id="image1">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="stock">gtk-dialog-info</property>
+  </object>
+  <object class="GtkListStore" id="outputformatmodel">
     <columns>
       <!-- column-name gchararray1 -->
       <column type="gchararray"/>
@@ -662,14 +719,10 @@
       <column type="gchararray"/>
     </columns>
   </object>
-  <object class="GtkListStore" id="outputformatmodel">
+  <object class="GtkListStore" id="rotationmodel">
     <columns>
       <!-- column-name gchararray1 -->
       <column type="gchararray"/>
     </columns>
   </object>
-  <object class="GtkImage" id="image1">
-    <property name="visible">True</property>
-    <property name="stock">gtk-dialog-info</property>
-  </object>
 </interface>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]