Implement setting the journal entry title from the toolbar.

This commit is contained in:
Tomeu
2007-05-13 18:21:35 +02:00
parent 309ddec8b7
commit f3289d2e59
4 changed files with 73 additions and 32 deletions
+27 -5
View File
@@ -22,26 +22,48 @@ from sugar.datastore import dbus_helpers
class DSObject(gobject.GObject):
__gsignals__ = {
'updated': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
([gobject.TYPE_PYOBJECT]))
([]))
}
def __init__(self, object_id, metadata, file_path):
gobject.GObject.__init__(self)
self.object_id = object_id
self.metadata = metadata
self.file_path = file_path
self._metadata = metadata
self._file_path = file_path
def __getitem__(self, key):
return self.metadata[key]
def __setitem__(self, key, value):
self.metadata[key] = value
if not self.metadata.has_key(key) or self.metadata[key] != value:
self.metadata[key] = value
self.emit('updated')
def get_metadata(self):
return self._metadata
def set_metadata(self, metadata):
if self._metadata != metadata:
self._metadata = metadata
self.emit('updated')
metadata = property(get_metadata, set_metadata)
def get_file_path(self):
return self._file_path
def set_file_path(self, file_path):
if self._file_path != file_path:
self._file_path = file_path
self.emit('updated')
file_path = property(get_file_path, set_file_path)
def get(object_id):
logging.debug('datastore.get')
metadata = dbus_helpers.get_properties(object_id)
file_path = dbus_helpers.get_filename(object_id)
logging.debug('filepath: ' + file_path)
ds_object = DSObject(object_id, metadata, file_path)
# TODO: register the object for updates
return ds_object
+29 -2
View File
@@ -34,20 +34,47 @@ except Exception, e:
_data_store = None
logging.error(e)
def get_contents(filename):
if not filename:
return ''
f = open(filename, "r")
try:
contents = f.read()
finally:
f.close()
return contents
def create(properties, filename):
logging.debug('dbus_helpers.create: %s, %s' % (properties, filename))
try:
logging.debug(get_contents(filename))
except UnicodeDecodeError:
pass
object_id = _data_store.create(dbus.Dictionary(properties), filename)
logging.debug('dbus_helpers.create: ' + object_id)
return object_id
def update(uid, properties, filename):
logging.debug('dbus_helpers.update: %s, %s, %s' % (uid, properties, filename))
try:
logging.debug(get_contents(filename))
except UnicodeDecodeError:
pass
_data_store.update(uid, dbus.Dictionary(properties), filename)
def get_properties(uid):
return _data_store.get_properties(uid)
props = _data_store.get_properties(uid)
logging.debug('dbus_helpers.get_properties: %s, %s' % (uid, props))
return props
def get_filename(uid):
return _data_store.get_filename(uid)
filename = _data_store.get_filename(uid)
logging.debug('dbus_helpers.get_filename: %s, %s' % (uid, filename))
try:
logging.debug(get_contents(filename))
except UnicodeDecodeError:
pass
return filename
def find(query):
return _data_store.find(query)