diff options
author | James Simmons <ja.simmons@sbcglobal.net> | 2008-04-19 23:02:03 (GMT) |
---|---|---|
committer | James Simmons <ja.simmons@sbcglobal.net> | 2008-04-19 23:02:03 (GMT) |
commit | e004ddc233d81ac098ec1350daa9c2e37cc83205 (patch) | |
tree | 820c271ceae547d3803a82069d2c3389e420a4ab /viewslides.py | |
parent | a222b49bf8644efeaf9c2933922fc011526a7360 (diff) |
Fixed sharing of image archives.
Diffstat (limited to 'viewslides.py')
-rwxr-xr-x | viewslides.py | 44 |
1 files changed, 26 insertions, 18 deletions
diff --git a/viewslides.py b/viewslides.py index f6f3818..4d6f055 100755 --- a/viewslides.py +++ b/viewslides.py @@ -39,6 +39,7 @@ import hippo import telepathy import shutil from decimal import * +from sugar.presence import presenceservice _HARDWARE_MANAGER_INTERFACE = 'org.laptop.HardwareManager' _HARDWARE_MANAGER_SERVICE = 'org.laptop.HardwareManager' @@ -69,7 +70,7 @@ class ViewSlidesActivity(activity.Activity): self.connect("expose_event", self.area_expose_cb) self.connect("key_press_event", self.keypress_cb) - self.connect("delete-event", self.delete_cb) + self.connect("delete_event", self.delete_cb) toolbox = activity.ActivityToolbox(self) self._read_toolbar = ReadToolbar() toolbox.add_toolbar(_('Read'), self._read_toolbar) @@ -80,7 +81,9 @@ class ViewSlidesActivity(activity.Activity): self.set_canvas(self.image) self.show_image("ViewSlides.jpg") self._read_toolbar.set_activity(self) - + self.page = 0 + self.temp_filename = '' + # Set up for idle suspend self._idle_timer = 0 self._service = None @@ -113,11 +116,12 @@ class ViewSlidesActivity(activity.Activity): h = hash(self._activity_id) self.port = 1024 + (h % 64511) - if handle.uri: - self._load_document(handle.uri) - self.is_received_document = False + presenceService = presenceservice.get_instance() + xoOwner = presenceService.get_owner() + self.owner = xoOwner.props.nick + if self._shared_activity: # We're joining if self.get_shared(): @@ -191,7 +195,6 @@ class ViewSlidesActivity(activity.Activity): getcontext().prec = 7 s_a_ratio = Decimal(screen_height) / Decimal(screen_width) i_a_ratio = Decimal(image_height) / Decimal(image_width) - # print 's_a_ratio', s_a_ratio, 'i_a_ratio', i_a_ratio new_width = image_width new_height = image_height if s_a_ratio >= i_a_ratio: @@ -239,15 +242,14 @@ class ViewSlidesActivity(activity.Activity): self._load_document(file_path) def delete_cb(self, widget, event): - remove(self.temp_filename) + os.remove(self.temp_filename) + print 'deleted file', self.temp_filename return False def _load_document(self, file_path): "Read the Zip file containing the images" - print file_path partition_tuple = file_path.rpartition('/') - self.temp_filename = '/tmp/' + partition_tuple[2] - print self.temp_filename + self.temp_filename = '/tmp/' + self.owner + partition_tuple[2] shutil.copyfile (file_path, self.temp_filename) if zipfile.is_zipfile(self.temp_filename): self.zf = zipfile.ZipFile(self.temp_filename, 'r') @@ -269,11 +271,13 @@ class ViewSlidesActivity(activity.Activity): def write_file(self, file_path): "Save meta data for the file." - if self.is_received_document == True: + if self.is_received_document == True and self.temp_filename != '': # This document was given to us by someone, so we have # to save it to the Journal. shutil.copyfile (self.temp_filename, file_path) - self.metadata['current_image'] =str(self.page) + self.metadata['current_image'] = str(self.page) + if self.temp_filename != '': + os.remove(self.temp_filename) # The code from here on down is for sharing. def _download_result_cb(self, getter, tempfile, suggested_name, tube_id): @@ -286,8 +290,9 @@ class ViewSlidesActivity(activity.Activity): self.save() def _download_progress_cb(self, getter, bytes_downloaded, tube_id): - _logger.debug("Downloaded %u bytes from tube %u...", - bytes_downloaded, tube_id) + self._read_toolbar.set_downloaded_bytes(bytes_downloaded) + # _logger.debug("Downloaded %u bytes from tube %u...", + # bytes_downloaded, tube_id) def _download_error_cb(self, getter, err, tube_id): _logger.debug("Error getting document from tube %u: %s", @@ -299,8 +304,9 @@ class ViewSlidesActivity(activity.Activity): chan = self._shared_activity.telepathy_tubes_chan iface = chan[telepathy.CHANNEL_TYPE_TUBES] addr = iface.AcceptStreamTube(tube_id, - telepathy.SOCKET_ADDRESS_TYPE_IPV4, - telepathy.SOCKET_ACCESS_CONTROL_LOCALHOST, 0, + # telepathy.SOCKET_ADDRESS_TYPE_IPV4, + # telepathy.SOCKET_ACCESS_CONTROL_LOCALHOST, 0, + 2, 0, 0, utf8_strings=True) _logger.debug('Accepted stream tube: listening address is %r', addr) # SOCKET_ADDRESS_TYPE_IPV4 is defined to have addresses of type '(sq)' @@ -362,9 +368,11 @@ class ViewSlidesActivity(activity.Activity): iface = chan[telepathy.CHANNEL_TYPE_TUBES] self._fileserver_tube_id = iface.OfferStreamTube(READ_STREAM_SERVICE, {}, - telepathy.SOCKET_ADDRESS_TYPE_IPV4, + # telepathy.SOCKET_ADDRESS_TYPE_IPV4, + 2, ('127.0.0.1', dbus.UInt16(self.port)), - telepathy.SOCKET_ACCESS_CONTROL_LOCALHOST, 0) + # telepathy.SOCKET_ACCESS_CONTROL_LOCALHOST, 0) + 0, 0) def watch_for_tubes(self): tubes_chan = self._shared_activity.telepathy_tubes_chan |