Example #1
0
	def __init__(self):
		"""
		Initialisieren
		"""
		self._selectedItem = None # (<Position>, <Key>, <Value>)

		# Treeview
		self._itemlist = gtk.ListStore(str, str)
		self._itemView = gtk.TreeView(self._itemlist)
		self._itemView.set_headers_visible(False)
		self._itemView.get_selection().set_mode(gtk.SELECTION_SINGLE)
		self._itemView.connect("cursor-changed", self._on_cursor_changed)
		self._itemView.connect("row-activated", self._on_row_activated)
		self._itemView.show()

		# Key-Spalte hinzuf�gen
		self._keyCell = gtk.CellRendererText()
		self._keyColumn = gtk.TreeViewColumn("Key")
		self._keyColumn.pack_start(self._keyCell, True)
		self._keyColumn.add_attribute(self._keyCell, "text", self.KEY_IDX)
		self._keyColumn.set_visible(False)
		self._itemView.append_column(self._keyColumn)

		# Value-Spalte hinzufügen
		self._valueCell = gtk.CellRendererText()
		self._valueCell.set_property("ellipsize", pango.ELLIPSIZE_END)
		self._valueColumn = gtk.TreeViewColumn("Caption")
		self._valueColumn.pack_start(self._valueCell, True)
		self._valueColumn.add_attribute(self._valueCell, "text", self.VALUE_IDX)
		self._itemView.append_column(self._valueColumn)

		# Suchspalte setzen
		# Leider funktioniert die Suche im Moment nicht so 
		# wie ich das möchte. Deshalb habe ich die Suche abgeschaltet.
		self._itemView.set_enable_search(False)

		self._maemo5HackVBox = gtk.VBox()
		self._maemo5HackVBox.pack_start(self._itemView)
		self._maemo5HackViewport = gtk.Viewport()
		self._maemo5HackViewport.add(self._maemo5HackVBox)

		# ScrolledWindow
		self._scrolledWindow = gtk.ScrolledWindow()
		self._scrolledWindow.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
		self._scrolledWindow.set_shadow_type(gtk.SHADOW_IN)
		self._scrolledWindow.add(self._maemo5HackViewport)

		self._scrolledWindow = hildonize.hildonize_scrollwindow(self._scrolledWindow)
		self._scrolledWindow.show()
Example #2
0
	def __init__(self, app, player, store, node):
		BasicWindow.__init__(self, app, player, store)
		self._node = node

		self.connect_auto(self._player, "title-change", self._on_player_title_change)

		self._loadingBanner = banners.GenericBanner()

		modelTypes, columns = zip(*self._get_columns())

		self._model = gtk.ListStore(*modelTypes)

		self._treeView = gtk.TreeView()
		self._treeView.connect("row-activated", self._on_row_activated)
		self._treeView.set_property("fixed-height-mode", True)
		self._treeView.set_headers_visible(False)
		self._treeView.set_model(self._model)
		for column in columns:
			if column is not None:
				self._treeView.append_column(column)

		self._viewport = gtk.Viewport()
		self._viewport.add(self._treeView)

		self._treeScroller = gtk.ScrolledWindow()
		self._treeScroller.add(self._viewport)
		self._treeScroller.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
		self._treeScroller = hildonize.hildonize_scrollwindow(self._treeScroller)

		self._separator = gtk.HSeparator()
		self._presenter = presenter.NavControl(self._player, self._store)
		self.connect_auto(self._presenter, "home", self._on_home)
		self.connect_auto(self._presenter, "jump-to", self._on_jump)

		self._contentLayout = gtk.VBox(False)
		self._contentLayout.pack_start(self._treeScroller, True, True)
		self._contentLayout.pack_start(self._separator, False, True)
		self._contentLayout.pack_start(self._presenter.toplevel, False, True)

		self._layout.pack_start(self._loadingBanner.toplevel, False, False)
		self._layout.pack_start(self._contentLayout, True, True)
Example #3
0
	def __init__(self, parent, db, liststorehandler):
		self.__listStore = liststorehandler

		self.__columnsSection = gtk.VBox()
		for i, name in enumerate(self._iter_columns()):
			checkbutton = gtk.CheckButton(name)

			if i in [0, 1]:
				default = "1"
			else:
				default = "0"
			if db.ladeDirekt("showcol_"+name, default) == "1":
				checkbutton.set_active(True)

			self.__columnsSection.pack_start(checkbutton)

		columnsFrame = gtk.Frame(_("Visible Columns"))
		columnsFrame.add(self.__columnsSection)

		self.__rotationSection = gtk.VBox()

		self.__isPortraitCheckbutton = gtk.CheckButton(_("Portrait Mode"))
		self.__rotationSection.pack_start(self.__isPortraitCheckbutton)

		rotationFrame = gtk.Frame(_("Rotation"))
		rotationFrame.add(self.__rotationSection)

		settingsBox = gtk.VBox()
		settingsBox.pack_start(rotationFrame)
		settingsBox.pack_start(columnsFrame)
		settingsView = gtk.Viewport()
		settingsView.add(settingsBox)
		settingsScrollView = gtk.ScrolledWindow()
		settingsScrollView.add(settingsView)
		settingsScrollView.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
		parent.pack_start(settingsScrollView)

		settingsScrollView = hildonize.hildonize_scrollwindow(settingsScrollView)
Example #4
0
	def __init__(self, parent):
		self.window = None

		self.__isPortraitCheckbutton = gtk.CheckButton("Portrait Mode")

		self.__rotationSection = gtk.VBox()
		self.__rotationSection.pack_start(self.__isPortraitCheckbutton, False, True)

		rotationFrame = gtk.Frame("Rotation")
		rotationFrame.add(self.__rotationSection)

		self.__audioBooksPath = gtk.Entry()
		self.__audioBooksPathButton = gtk.Button("Choose")
		self.__audioBooksPathButton.connect("clicked", self._on_path_choose)

		self.__audiobookPathSection = gtk.HBox()
		self.__audiobookPathSection.pack_start(self.__audioBooksPath, True, True)
		self.__audiobookPathSection.pack_start(self.__audioBooksPathButton, False, True)

		self.__audiobookSection = gtk.VBox()
		self.__audiobookSection.pack_start(self.__audiobookPathSection)

		audiobookFrame = gtk.Frame("Audiobooks")
		audiobookFrame.add(self.__audiobookSection)

		settingsBox = gtk.VBox()
		settingsBox.pack_start(rotationFrame, False, True)
		settingsBox.pack_start(audiobookFrame, False, True)
		settingsView = gtk.Viewport()
		settingsView.add(settingsBox)
		settingsScrollView = gtk.ScrolledWindow()
		settingsScrollView.add(settingsView)
		settingsScrollView.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
		parent.pack_start(settingsScrollView, True, True)

		settingsScrollView = hildonize.hildonize_scrollwindow(settingsScrollView)
Example #5
0
	def __init__(self):
		self._unitDataInCategory = None
		self._unit_sort_direction = False
		self._value_sort_direction = False
		self._units_sort_direction = False
		self.__isPortrait = False
		self._isFullScreen = False
		self._clipboard = gtk.clipboard_get()

		self._find_result = [] # empty find result list
		self._findIndex = 0 # default to find result number zero

		self._selectedCategoryName = '' # preset to no selected category
		self._defaultUnitForCategory = {} # empty dictionary for later use

		#check to see if glade file is in current directory (user must be
		# running from download untar directory)
		for gladePath in self._glade_files:
			if os.path.isfile(gladePath):
				homepath = os.path.dirname(gladePath)
				pixmapspath = "/".join((homepath, "pixmaps"))
				widgets = gtk.glade.XML(gladePath)
				break
		else:
			_moduleLogger.error("UI Descriptor not found!")
			gtk.main_quit()
			return

		self._mainWindow = widgets.get_widget('mainWindow')
		self._app = hildonize.get_app_class()()
		self._mainWindow = hildonize.hildonize_window(self._app, self._mainWindow)

		change_menu_label(widgets, 'fileMenuItem', _('File'))
		change_menu_label(widgets, 'exitMenuItem', _('Exit'))
		change_menu_label(widgets, 'helpMenuItem', _('Help'))
		change_menu_label(widgets, 'aboutMenuItem', _('About'))

		self._categorySelectionButton = widgets.get_widget("categorySelectionButton")
		self._categoryView = widgets.get_widget('categoryView')

		self._unitsView = widgets.get_widget('unitsView')
		self._unitsView.set_property('rules_hint', 1)
		self._unitsView_selection = self._unitsView.get_selection()

		self._unitName = widgets.get_widget('unitName')
		self._unitValue = widgets.get_widget('unitValue')
		self._previousUnitName = widgets.get_widget('previousUnitName')
		self._previousUnitValue = widgets.get_widget('previousUnitValue')

		self._unitSymbol = widgets.get_widget('unitSymbol')
		self._previousUnitSymbol = widgets.get_widget('previousUnitSymbol')

		self._unitDescription = widgets.get_widget('unitDescription')

		self._searchLayout = widgets.get_widget('searchLayout')
		self._searchLayout.hide()
		self._findEntry = widgets.get_widget('findEntry')
		self._findLabel = widgets.get_widget('findLabel')
		self._findButton = widgets.get_widget('findButton')
		self._closeSearchButton = widgets.get_widget('closeSearchButton')

		self._unitsNameRenderer = gtk.CellRendererText()
		self._unitsNameRenderer.set_property("scale", 0.75)
		if constants.FORCE_HILDON_LIKE:
			self._unitsNameRenderer.set_property("ellipsize", pango.ELLIPSIZE_END)
			self._unitsNameRenderer.set_property("width-chars", 5)
		self._unitNameColumn = gtk.TreeViewColumn(_('Name'), self._unitsNameRenderer)
		self._unitNameColumn.set_property('resizable', True)
		self._unitNameColumn.add_attribute(self._unitsNameRenderer, 'text', self.UNITS_NAME_IDX)
		self._unitNameColumn.set_clickable(True)
		self._unitNameColumn.connect("clicked", self._on_click_unit_column)
		self._unitsView.append_column(self._unitNameColumn)

		renderer = gtk.CellRendererText()
		renderer.set_property("xalign", 1.0)
		renderer.set_property("alignment", pango.ALIGN_RIGHT)
		hildonize.set_cell_thumb_selectable(renderer)
		self._unitIntegerColumn = gtk.TreeViewColumn(_('Value'), renderer)
		self._unitIntegerColumn.set_property('resizable', True)
		self._unitIntegerColumn.add_attribute(renderer, 'text', self.UNITS_INTEGER_IDX)
		self._unitIntegerColumn.set_clickable(True)
		self._unitIntegerColumn.connect("clicked", self._on_click_unit_column)
		self._unitsView.append_column(self._unitIntegerColumn)

		renderer = gtk.CellRendererText()
		renderer.set_property("xalign", 0.0)
		renderer.set_property("alignment", pango.ALIGN_LEFT)
		renderer.set_property("scale", 0.75)
		self._unitFractionalColumn = gtk.TreeViewColumn(_(''), renderer)
		self._unitFractionalColumn.set_property('resizable', True)
		self._unitFractionalColumn.add_attribute(renderer, 'text', self.UNITS_FRACTION_IDX)
		self._unitFractionalColumn.set_clickable(True)
		self._unitFractionalColumn.connect("clicked", self._on_click_unit_column)
		self._unitsView.append_column(self._unitFractionalColumn)

		renderer = gtk.CellRendererText()
		renderer.set_property("ellipsize", pango.ELLIPSIZE_END)
		#renderer.set_property("scale", 0.5)
		self._unitSymbolColumn = gtk.TreeViewColumn(_('Units'), renderer)
		self._unitSymbolColumn.set_property('resizable', True)
		self._unitSymbolColumn.add_attribute(renderer, 'text', self.UNITS_SYMBOL_IDX)
		self._unitSymbolColumn.set_clickable(True)
		self._unitSymbolColumn.connect("clicked", self._on_click_unit_column)
		self._unitsView.append_column(self._unitSymbolColumn)

		self._unitModel = gtk.ListStore(
			gobject.TYPE_STRING, # UNITS_NAME_IDX
			gobject.TYPE_STRING, # UNITS_VALUE_IDX
			gobject.TYPE_STRING, # UNITS_SYMBOL_IDX
			gobject.TYPE_STRING, # UNITS_INTEGER_IDX
			gobject.TYPE_STRING, # UNITS_FRACTION_IDX
		)
		self._sortedUnitModel = gtk.TreeModelSort(self._unitModel)
		columns = self._get_column_sort_stuff()
		for columnIndex, (column, sortDirection, col_cmp) in enumerate(columns):
			self._sortedUnitModel.set_sort_func(columnIndex, col_cmp)
		self._unitsView.set_model(self._sortedUnitModel)

		#Insert a column into the category list even though the heading will not be seen
		renderer = gtk.CellRendererText()
		self._categoryColumn = gtk.TreeViewColumn('Title', renderer)
		self._categoryColumn.set_property('resizable', 1)
		self._categoryColumn.add_attribute(renderer, 'text', 0)
		self._categoryView.append_column(self._categoryColumn)

		self._categoryModel = gtk.ListStore(gobject.TYPE_STRING)
		self._categoryView.set_model(self._categoryModel)
		#colourize each row differently for easier reading
		self._categoryView.set_property('rules_hint', 1)

		#Populate the catagories list
		for key in unit_data.UNIT_CATEGORIES:
			row = (key, )
			self._categoryModel.append(row)

		#--------- connections to GUI ----------------
		self._mainWindow.connect("destroy", self._on_user_exit)
		self._mainWindow.connect("key-press-event", self._on_key_press)
		self._mainWindow.connect("window-state-event", self._on_window_state_change)
		self._categorySelectionButton.connect("clicked", self._on_category_selector_clicked)
		self._categoryView.connect("cursor-changed", self._on_click_category)
		self._findButton.connect("clicked", self._on_find_activate)
		self._findEntry.connect("activate", self._on_find_activate)
		self._findEntry.connect("changed", self._on_findEntry_changed)
		self._closeSearchButton.connect("clicked", self._on_toggle_search)
		self._previousUnitValue.connect("changed", self._on_previous_unit_value_changed)
		self._unitValue.connect("changed", self._on_unit_value_changed)
		self._unitValue.connect("key-press-event", self._on_browse_key_press)
		self._unitsView.connect("cursor-changed", self._on_click_unit)
		self._unitsView.connect("key-press-event", self._on_browse_key_press)
		if hildonize.GTK_MENU_USED:
			widgets.get_widget("aboutMenuItem").connect("activate", self._on_about_clicked)
			widgets.get_widget("searchMenuItem").connect("activate", self._on_toggle_search)
			widgets.get_widget("exitMenuItem").connect("activate", self._on_user_exit)

		for scrollingWidgetName in (
			"unitsViewScrolledWindow",
		):
			scrollingWidget = widgets.get_widget(scrollingWidgetName)
			assert scrollingWidget is not None, scrollingWidgetName
			scroller = hildonize.hildonize_scrollwindow(scrollingWidget)
			scroller.show_all()

		# Simplify the UI
		if hildonize.IS_HILDON_SUPPORTED or constants.FORCE_HILDON_LIKE:
			self._categoryView.get_parent().hide()
			self._unitsView.set_headers_visible(False)
			self._previousUnitName.get_parent().hide()
			self._unitDescription.get_parent().get_parent().hide()
		else:
			self._categorySelectionButton.hide()

		menu = hildonize.hildonize_menu(
			self._mainWindow,
			widgets.get_widget("mainMenuBar"),
		)
		if not hildonize.GTK_MENU_USED:
			button = gtk.Button("Search")
			button.connect("clicked", self._on_toggle_search)
			menu.append(button)

			button = hildonize.hildon.GtkRadioButton(gtk.HILDON_SIZE_AUTO, None)
			button.set_label("Name")
			menu.add_filter(button)
			button.connect("clicked", self._on_click_menu_filter, self._unitNameColumn)
			button.set_mode(False)
			filterGroup = button

			button = hildonize.hildon.GtkRadioButton(gtk.HILDON_SIZE_AUTO, filterGroup)
			button.set_label("Value")
			menu.add_filter(button)
			button.connect("clicked", self._on_click_menu_filter, self._unitIntegerColumn)
			button.set_mode(False)

			button = hildonize.hildon.GtkRadioButton(gtk.HILDON_SIZE_AUTO, filterGroup)
			button.set_label("Unit")
			menu.add_filter(button)
			button.connect("clicked", self._on_click_menu_filter, self._unitSymbolColumn)
			button.set_mode(False)

			menu.show_all()

		if not hildonize.IS_HILDON_SUPPORTED:
			_moduleLogger.info("No hildonization support")

		hildonize.set_application_title(
			self._mainWindow, "%s - Unit Conversion Utility" % constants.__pretty_app_name__
		)
		iconPath = pixmapspath + '/gonvert.png'
		if os.path.exists(iconPath):
			self._mainWindow.set_icon(gtk.gdk.pixbuf_new_from_file(iconPath))
		else:
			_moduleLogger.warn("Error: Could not find gonvert icon: %s" % iconPath)

		self._load_settings()
		self._mainWindow.show()
Example #6
0
	def __init__(self):
		self._initDone = False
		self._connection = None
		self._osso = None
		self._deviceState = None
		self._clipboard = gtk.clipboard_get()

		self._credentials = ("", "")
		self._selectedBackendId = self.NULL_BACKEND
		self._defaultBackendId = self.GV_BACKEND
		self._phoneBackends = None
		self._dialpads = None
		self._accountViews = None
		self._messagesViews = None
		self._historyViews = None
		self._contactsViews = None
		self._alarmHandler = None
		self._ledHandler = None
		self._originalCurrentLabels = []
		self._fsContactsPath = os.path.join(constants._data_path_, "contacts")

		for path in self._glade_files:
			if os.path.isfile(path):
				self._widgetTree = gtk.glade.XML(path)
				break
		else:
			display_error_message("Cannot find dialcentral.glade")
			gtk.main_quit()
			return

		self._window = self._widgetTree.get_widget("mainWindow")
		self._notebook = self._widgetTree.get_widget("notebook")
		errorBox = self._widgetTree.get_widget("errorEventBox")
		errorDescription = self._widgetTree.get_widget("errorDescription")
		errorClose = self._widgetTree.get_widget("errorClose")
		self._errorDisplay = gtk_toolbox.ErrorDisplay(errorBox, errorDescription, errorClose)
		self._credentialsDialog = gtk_toolbox.LoginWindow(self._widgetTree)
		self._smsEntryWindow = None

		self._isFullScreen = False
		self.__isPortrait = False
		self._app = hildonize.get_app_class()()
		self._window = hildonize.hildonize_window(self._app, self._window)
		hildonize.hildonize_text_entry(self._widgetTree.get_widget("usernameentry"))
		hildonize.hildonize_password_entry(self._widgetTree.get_widget("passwordentry"))

		for scrollingWidgetName in (
			'history_scrolledwindow',
			'message_scrolledwindow',
			'contacts_scrolledwindow',
			"smsMessages_scrolledwindow",
		):
			scrollingWidget = self._widgetTree.get_widget(scrollingWidgetName)
			assert scrollingWidget is not None, scrollingWidgetName
			hildonize.hildonize_scrollwindow(scrollingWidget)
		for scrollingWidgetName in (
			"smsMessage_scrolledEntry",
		):
			scrollingWidget = self._widgetTree.get_widget(scrollingWidgetName)
			assert scrollingWidget is not None, scrollingWidgetName
			hildonize.hildonize_scrollwindow_with_viewport(scrollingWidget)

		for buttonName in (
			"back",
			"addressbookSelectButton",
			"sendSmsButton",
			"dialButton",
			"callbackSelectButton",
			"minutesEntryButton",
			"clearcookies",
			"phoneTypeSelection",
		):
			button = self._widgetTree.get_widget(buttonName)
			assert button is not None, buttonName
			hildonize.set_button_thumb_selectable(button)

		menu = hildonize.hildonize_menu(
			self._window,
			self._widgetTree.get_widget("dialpad_menubar"),
		)
		if not hildonize.GTK_MENU_USED:
			button = gtk.Button("New Login")
			button.connect("clicked", self._on_clearcookies_clicked)
			menu.append(button)

			button = gtk.Button("Refresh")
			button.connect("clicked", self._on_menu_refresh)
			menu.append(button)

			menu.show_all()

		self._window.connect("key-press-event", self._on_key_press)
		self._window.connect("window-state-event", self._on_window_state_change)
		if not hildonize.IS_HILDON_SUPPORTED:
			_moduleLogger.warning("No hildonization support")

		hildonize.set_application_name("%s" % constants.__pretty_app_name__)

		self._window.connect("destroy", self._on_close)
		self._window.set_default_size(800, 300)
		self._window.show_all()

		self._loginSink = gtk_toolbox.threaded_stage(
			gtk_toolbox.comap(
				self._attempt_login,
				gtk_toolbox.null_sink(),
			)
		)

		if not PROFILE_STARTUP:
			backgroundSetup = threading.Thread(target=self._idle_setup)
			backgroundSetup.setDaemon(True)
			backgroundSetup.start()
		else:
			self._idle_setup()
Example #7
0
	def __init__(self, app, player, store, node):
		windows._base.BasicWindow.__init__(self, app, player, store)
		self._node = node
		self._childNode = None

		self.connect_auto(self._player, "state-change", self._on_player_state_change)
		self.connect_auto(self._player, "title-change", self._on_player_title_change)

		self._loadingBanner = banners.GenericBanner()

		self._programmingModel = gtk.ListStore(
			gobject.TYPE_STRING,
			gobject.TYPE_STRING,
		)

		textrenderer = gtk.CellRendererText()
		timeColumn = gtk.TreeViewColumn("Time")
		textrenderer.set_property("scale", 0.75)
		timeColumn.set_property("sizing", gtk.TREE_VIEW_COLUMN_FIXED)
		timeColumn.set_property("fixed-width", 80)
		timeColumn.pack_start(textrenderer, expand=True)
		timeColumn.add_attribute(textrenderer, "text", 0)

		textrenderer = gtk.CellRendererText()
		titleColumn = gtk.TreeViewColumn("Program")
		titleColumn.set_property("sizing", gtk.TREE_VIEW_COLUMN_FIXED)
		titleColumn.pack_start(textrenderer, expand=True)
		titleColumn.add_attribute(textrenderer, "text", 1)

		self._treeView = gtk.TreeView()
		self._treeView.set_property("fixed-height-mode", True)
		self._treeView.set_headers_visible(False)
		self._treeView.set_model(self._programmingModel)
		self._treeView.append_column(timeColumn)
		self._treeView.append_column(titleColumn)
		self._treeView.get_selection().connect("changed", self._on_row_changed)

		self._viewport = gtk.Viewport()
		self._viewport.add(self._treeView)

		self._treeScroller = gtk.ScrolledWindow()
		self._treeScroller.add(self._viewport)
		self._treeScroller.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
		self._treeScroller = hildonize.hildonize_scrollwindow(self._treeScroller)

		self._presenter = presenter.StreamMiniPresenter(self._store)
		self._presenterNavigation = presenter.NavigationBox()
		self._presenterNavigation.toplevel.add(self._presenter.toplevel)
		self.connect_auto(self._presenterNavigation, "action", self._on_nav_action)
		self.connect_auto(self._presenterNavigation, "navigating", self._on_navigating)
		self.connect_auto(self._player, "error", self._on_player_error)

		self._radioLayout = gtk.VBox(False)
		self._radioLayout.pack_start(self._treeScroller, True, True)
		self._radioLayout.pack_start(self._presenterNavigation.toplevel, False, True)

		self._layout.pack_start(self._loadingBanner.toplevel, False, False)
		self._layout.pack_start(self._radioLayout, True, True)

		self._dateShown = datetime.datetime.now(tz=time_utils.Mountain)
		self._currentTime = self._dateShown
		self._update_title()

		self._continualUpdate = go_utils.Timeout(self._on_continual_update, once = False)
		self._continualUpdate.start(seconds=60)