conduit r1398 - in trunk: . conduit/modules/GoogleModule
- From: thomasvm svn gnome org
- To: svn-commits-list gnome org
- Subject: conduit r1398 - in trunk: . conduit/modules/GoogleModule
- Date: Fri, 28 Mar 2008 07:08:40 +0000 (GMT)
Author: thomasvm
Date: Fri Mar 28 07:08:40 2008
New Revision: 1398
URL: http://svn.gnome.org/viewvc/conduit?rev=1398&view=rev
Log:
2008-03-28 Thomas Van Machelen <thomas vanmachelen gmail com>
* conduit/modules/GoogleModule/GoogleModule.py:
* conduit/modules/GoogleModule/picasa-config.glade: Make picasa
configuration dialog better by allowing the user to login and pick and
album from a list, instead of just filling out the credentials. Fixes
#523915
Modified:
trunk/ChangeLog
trunk/conduit/modules/GoogleModule/GoogleModule.py
trunk/conduit/modules/GoogleModule/picasa-config.glade
Modified: trunk/conduit/modules/GoogleModule/GoogleModule.py
==============================================================================
--- trunk/conduit/modules/GoogleModule/GoogleModule.py (original)
+++ trunk/conduit/modules/GoogleModule/GoogleModule.py Fri Mar 28 07:08:40 2008
@@ -53,9 +53,12 @@
raise NotImplementedError
def _login(self):
- if self.loggedIn != True:
- self._do_login()
- self.loggedIn == True
+ if not self.loggedIn:
+ try:
+ self._do_login()
+ self.loggedIn = True
+ except:
+ self.loggedIn = False
def _set_username(self, username):
if self.username != username:
@@ -63,7 +66,9 @@
self.loggedIn = False
def _set_password(self, password):
- self.password = password
+ if self.password != password:
+ self.password = password
+ self.loggedIn = False
def set_configuration(self, config):
self._set_username(config.get("username",""))
@@ -573,7 +578,7 @@
if not configured_album:
log.debug("Creating new album %s." % self.album)
- configured_album = self.pws.InsertAlbum (self.album, '')
+ configured_album = self._create_album(self.album)
self.galbum = configured_album
@@ -591,6 +596,9 @@
import time
return datetime(*(time.strptime(timestamp, FORMAT_STRING)[0:6]))
+ def _create_album(self, album_name):
+ self.pws.InsertAlbum(album_name, '', access='private')
+
def refresh(self):
Image.ImageTwoWay.refresh(self)
self._login()
@@ -626,31 +634,163 @@
"""
Configures the PicasaTwoWay
"""
+ import gtk
+ self.album_count = 0
+ def __login (button, widget):
+ """
+ Logs in and tries to populate other controls and set their
+ sensitivity correctly
+ """
+ username, password = __get_username_password_widgets(widget)
+
+ self._set_username(username.get_text())
+ self._set_password(password.get_text())
+ self._login()
+
+ album_combo, ok_button = __get_album_combo_ok_widgets(widget)
+
+ if self.loggedIn:
+ __build_album_combo(album_combo)
+
+ enabled = self.loggedIn and self.album_count > 0
+ ok_button.set_sensitive(enabled)
+ album_combo.set_sensitive(enabled)
+
+ def __new_album(button, config_widget):
+ """
+ Pops up a dialog to create a new album.
+ config_widget is the parent window
+ """
+ # get new album dialog
+ widget = Utils.dataprovider_glade_get_widget(
+ __file__,
+ "picasa-config.glade",
+ "AlbumDialog")
+
+ dlg = widget.get_widget("AlbumDialog")
+ name_entry = widget.get_widget("name_entry")
+
+ # run the dialog
+ config_dialog = config_widget.get_widget("PicasaTwoWayConfigDialog")
+ response = Utils.run_dialog (dlg, config_dialog)
+ # get new name
+ new_album_name = name_entry.get_text().strip()
+
+ # create new one, if it doesn't exist yet
+ if response and new_album_name:
+ if not new_album_name in (album.title.text for album in self.pws.GetUserFeed().entry):
+ # create the album
+ self._create_album (new_album_name)
+ # set album to newly created one
+ self.album = new_album_name
+ # get some widgets
+ album_combo, ok_button = __get_album_combo_ok_widgets(config_widget)
+ # refresh the combo
+ __build_album_combo(album_combo)
+ # refresh buttons
+ enabled = self.loggedIn and self.album_count > 0
+ album_combo.set_sensitive(enabled)
+ ok_button.set_sensitive(enabled)
+
+ dlg.destroy()
+
+ def __build_album_combo(album_combo):
+ """
+ Populates the given album combo with the list of albums
+ """
+ # clear the store
+ self.album_store.clear ()
+ self.album_count = 0
+ # keep configured one
+ album_iter = None
+ # loop through user feed
+ for album in self.pws.GetUserFeed().entry:
+ title = album.title.text
+ # append to store
+ iter = self.album_store.append ((title,))
+ if title == self.album:
+ album_iter = iter
+ self.album_count = self.album_count + 1
+
+ # did we find an iter?
+ if album_iter:
+ album_combo.set_active_iter(album_iter)
+ # activate first one
+ elif self.album_count > 0:
+ album_combo.set_active(0)
+
+ def __get_username_password_widgets(widget):
+ username = widget.get_widget('username')
+ password = widget.get_widget('password')
+ return username, password
+
+ def __get_album_combo_ok_widgets(widget):
+ album_combo = widget.get_widget('album_combo')
+ ok_button = widget.get_widget('ok_button')
+ return album_combo, ok_button
+
+ # put cursor in waiting mode
+ watch = gtk.gdk.Cursor(gtk.gdk.WATCH)
+ window.window.set_cursor(watch)
+
+ # try loggin in if not done yet
+ if not self.loggedIn:
+ self._login()
+
+ # get widget and dialog
widget = Utils.dataprovider_glade_get_widget(
__file__,
"picasa-config.glade",
"PicasaTwoWayConfigDialog")
-
+ dlg = widget.get_widget("PicasaTwoWayConfigDialog")
+
#get a whole bunch of widgets
- username = widget.get_widget("username")
- password = widget.get_widget("password")
- album = widget.get_widget("album")
+ username, password = __get_username_password_widgets(widget)
+ album_combo, ok_button = __get_album_combo_ok_widgets(widget)
+ login_button = widget.get_widget("login_button")
+ new_album_button = widget.get_widget("new_album")
+ resizecombobox = widget.get_widget("combobox1")
+
+ # connect to signals
+ login_button.connect('clicked', __login, widget)
+ new_album_button.connect('clicked', __new_album, widget)
+
+ # setup album combo
+ self.album_store = gtk.ListStore (gobject.TYPE_STRING)
+ album_combo.set_model (self.album_store)
+ cell = gtk.CellRendererText()
+ album_combo.pack_start(cell, True)
+ album_combo.add_attribute(cell, 'text', 0)
+
+ # disable if not logged in
+ enabled = self.loggedIn and self.album_count > 0
+ ok_button.set_sensitive(self.loggedIn)
+ album_combo.set_sensitive(self.loggedIn)
+ new_album_button.set_sensitive(self.loggedIn)
+
+ # build album list if we're logged in
+ if self.loggedIn:
+ __build_album_combo(album_combo)
+
+ # Stop watch cursor
+ window.window.set_cursor(None)
#preload the widgets
username.set_text(self.username)
password.set_text(self.password)
- album.set_text (self.album)
- resizecombobox = widget.get_widget("combobox1")
self._resize_combobox_build(resizecombobox, self.imageSize)
-
- dlg = widget.get_widget("PicasaTwoWayConfigDialog")
+
+ # Now run the dialog
response = Utils.run_dialog (dlg, window)
if response == True:
self._set_username(username.get_text())
self._set_password(password.get_text())
- self.album = album.get_text()
+ self.album = album_combo.get_active_text()
self.imageSize = self._resize_combobox_get_active(resizecombobox)
+
+ # cleanup
+ del self.album_count
dlg.destroy()
def get_configuration(self):
@@ -664,7 +804,7 @@
GoogleBase.set_configuration(self, config)
self.imageSize = config.get("imageSize","None")
self.album = config.get("album","")
-
+
def is_configured (self, isSource, isTwoWay):
if not GoogleBase.is_configured(self, isSource, isTwoWay):
return False
Modified: trunk/conduit/modules/GoogleModule/picasa-config.glade
==============================================================================
--- trunk/conduit/modules/GoogleModule/picasa-config.glade (original)
+++ trunk/conduit/modules/GoogleModule/picasa-config.glade Fri Mar 28 07:08:40 2008
@@ -1,169 +1,465 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--*- mode: xml -*-->
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
+
<glade-interface>
- <widget class="GtkDialog" id="PicasaTwoWayConfigDialog">
- <property name="visible">True</property>
- <property name="title" translatable="yes">Picasa</property>
- <property name="resizable">False</property>
- <property name="default_width">250</property>
- <property name="default_height">350</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <child internal-child="vbox">
- <widget class="GtkVBox" id="vbox30">
- <property name="visible">True</property>
- <property name="spacing">5</property>
- <child>
- <widget class="GtkLabel" id="label74">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><b>Account Details</b></property>
- <property name="use_markup">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label75">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Username:</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">3</property>
- </packing>
- </child>
- <child>
- <widget class="GtkEntry" id="username">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">4</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label76">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Password:</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">5</property>
- </packing>
- </child>
- <child>
- <widget class="GtkEntry" id="password">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">6</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label78">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><b>Saved Photo Settings</b></property>
- <property name="use_markup">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">7</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label77">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Album:</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">8</property>
- </packing>
- </child>
- <child>
- <widget class="GtkEntry" id="album">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">9</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Resize Photos:</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">10</property>
- </packing>
- </child>
- <child>
- <widget class="GtkComboBox" id="combobox1">
- <property name="visible">True</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">11</property>
- </packing>
- </child>
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="hbuttonbox12">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
- <child>
- <widget class="GtkButton" id="button32">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
- <child>
- <widget class="GtkButton" id="button33">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="response_id">-5</property>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
+
+<widget class="GtkDialog" id="PicasaTwoWayConfigDialog">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes">Picasa</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="default_width">250</property>
+ <property name="default_height">350</property>
+ <property name="resizable">False</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <property name="focus_on_map">True</property>
+ <property name="urgency_hint">False</property>
+ <property name="has_separator">True</property>
+
+ <child internal-child="vbox">
+ <widget class="GtkVBox" id="vbox30">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">5</property>
+
+ <child internal-child="action_area">
+ <widget class="GtkHButtonBox" id="hbuttonbox12">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+ <child>
+ <widget class="GtkButton" id="button32">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-cancel</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="response_id">-6</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="ok_button">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-ok</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="response_id">-5</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label74">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Account Details</b></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label75">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Username:</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="username">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">â</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label76">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Password:</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="password">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">â</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="login_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Login</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHSeparator" id="hseparator1">
+ <property name="visible">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label78">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Saved Photo Settings</b></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label77">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Album:</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox2">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkComboBox" id="album_combo">
+ <property name="visible">True</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="new_album">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">New</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Resize Photos:</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="combobox1">
+ <property name="visible">True</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+</widget>
+
+<widget class="GtkDialog" id="AlbumDialog">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes">New Album</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <property name="focus_on_map">True</property>
+ <property name="urgency_hint">False</property>
+ <property name="has_separator">True</property>
+
+ <child internal-child="vbox">
+ <widget class="GtkVBox" id="dialog-vbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child internal-child="action_area">
+ <widget class="GtkHButtonBox" id="dialog-action_area1">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+ <child>
+ <widget class="GtkButton" id="cancelbutton1">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-cancel</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="response_id">-6</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="okbutton1">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-ok</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="response_id">-5</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label79">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Name: </property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="name_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">â</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+</widget>
+
</glade-interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]