src/packagemanager.py
changeset 1455 2a76c8548981
parent 1450 28b257c5f33e
child 1456 9eb0d782440f
equal deleted inserted replaced
1454:2e1622679e4a 1455:2a76c8548981
   256                 self.description_thread_running = False
   256                 self.description_thread_running = False
   257                 self.image_directory = None
   257                 self.image_directory = None
   258                 gtk.rc_parse('~/.gtkrc-1.2-gnome2')       # Load gtk theme
   258                 gtk.rc_parse('~/.gtkrc-1.2-gnome2')       # Load gtk theme
   259                 self.progress_stop_thread = True
   259                 self.progress_stop_thread = True
   260                 self.catalog_loaded = False
   260                 self.catalog_loaded = False
   261                 self.image_dir_arg = None
       
   262                 self.update_all_proceed = False
   261                 self.update_all_proceed = False
   263                 self.ua_be_name = None
   262                 self.ua_be_name = None
   264                 self.application_path = None
   263                 self.application_path = None
   265                 self.default_publisher = None
   264                 self.default_publisher = None
   266                 self.current_repos_with_search_errors = []
   265                 self.current_repos_with_search_errors = []
   289                     'status_installed')
   288                     'status_installed')
   290                 self.not_installed_icon = gui_misc.get_icon(self.icon_theme,
   289                 self.not_installed_icon = gui_misc.get_icon(self.icon_theme,
   291                     'status_notinstalled')
   290                     'status_notinstalled')
   292                 self.update_available_icon = gui_misc.get_icon(self.icon_theme,
   291                 self.update_available_icon = gui_misc.get_icon(self.icon_theme,
   293                     'status_newupdate')
   292                     'status_newupdate')
   294                 self.window_icon = gui_misc.get_icon(self.icon_theme, 'packagemanager', 48)
   293                 self.window_icon = gui_misc.get_icon(self.icon_theme,
       
   294                     'packagemanager', 48)
   295                 self.filter_options = [
   295                 self.filter_options = [
   296                     (enumerations.FILTER_ALL,
   296                     (enumerations.FILTER_ALL,
   297                     gui_misc.get_icon(self.icon_theme, 'filter_all'),
   297                     gui_misc.get_icon(self.icon_theme, 'filter_all'),
   298                     _('All Packages')),
   298                     _('All Packages')),
   299                     (enumerations.FILTER_INSTALLED, self.installed_icon,
   299                     (enumerations.FILTER_INSTALLED, self.installed_icon,
  3086                 self.in_reload = True
  3086                 self.in_reload = True
  3087                 Thread(target = self.__catalog_refresh).start()
  3087                 Thread(target = self.__catalog_refresh).start()
  3088 
  3088 
  3089         def __catalog_refresh_done(self):
  3089         def __catalog_refresh_done(self):
  3090                 if not self.exiting:
  3090                 if not self.exiting:
  3091                         gobject.idle_add(self.process_package_list_start,
  3091                         gobject.idle_add(self.process_package_list_start)
  3092                             self.image_directory)
       
  3093 
  3092 
  3094         def __get_publisher_name_from_index(self, index):
  3093         def __get_publisher_name_from_index(self, index):
  3095                 name = None
  3094                 name = None
  3096                 if index != -1:
  3095                 if index != -1:
  3097                         itr = self.repositories_list.iter_nth_child(None,
  3096                         itr = self.repositories_list.iter_nth_child(None,
  3137                         self.client.set_int(INITIAL_APP_VPOS_PREFERENCES, vpos)
  3136                         self.client.set_int(INITIAL_APP_VPOS_PREFERENCES, vpos)
  3138                 except GError:
  3137                 except GError:
  3139                         pass
  3138                         pass
  3140 
  3139 
  3141                 if be_name:
  3140                 if be_name:
  3142                         if self.image_dir_arg:
  3141                         gobject.spawn_async([self.application_path, "-R",
  3143                                 gobject.spawn_async([self.application_path, "-R",
  3142                             self.image_directory, "-U", be_name])
  3144                                     self.image_dir_arg, "-U", be_name])
       
  3145                         else:
       
  3146                                 gobject.spawn_async([self.application_path,
       
  3147                                     "-U", be_name])
       
  3148                 else:
  3143                 else:
  3149                         if self.is_all_publishers:
  3144                         if self.is_all_publishers:
  3150                                 pub = self.__get_publisher_name_from_index(
  3145                                 pub = self.__get_publisher_name_from_index(
  3151                                     self.saved_repository_combobox_active)
  3146                                     self.saved_repository_combobox_active)
  3152                         else:
  3147                         else:
  4328                 self.progress_stop_thread = True
  4323                 self.progress_stop_thread = True
  4329 
  4324 
  4330         def __progress_pulse(self):
  4325         def __progress_pulse(self):
  4331                 gobject.idle_add(self.w_progress_frame.show)
  4326                 gobject.idle_add(self.w_progress_frame.show)
  4332                 while not self.progress_stop_thread:
  4327                 while not self.progress_stop_thread:
  4333                         if self.api_o.can_be_canceled():
  4328                         if self.api_o != None and self.api_o.can_be_canceled():
  4334                                 gobject.idle_add(self.progress_cancel.show)
  4329                                 gobject.idle_add(self.progress_cancel.show)
  4335                         else:
  4330                         else:
  4336                                 gobject.idle_add(self.progress_cancel.hide)
  4331                                 gobject.idle_add(self.progress_cancel.hide)
  4337                         gobject.idle_add(self.w_status_progressbar.pulse)
  4332                         gobject.idle_add(self.w_status_progressbar.pulse)
  4338                         time.sleep(0.1)
  4333                         time.sleep(0.1)
  4447                 if not (self.gdk_window.get_state() & gtk.gdk.WINDOW_STATE_WITHDRAWN):
  4442                 if not (self.gdk_window.get_state() & gtk.gdk.WINDOW_STATE_WITHDRAWN):
  4448                         self.gdk_window.hide()
  4443                         self.gdk_window.hide()
  4449                         self.w_main_window.get_accessible().emit('state-change',
  4444                         self.w_main_window.get_accessible().emit('state-change',
  4450                             'busy', False)
  4445                             'busy', False)
  4451 
  4446 
  4452         def process_package_list_start(self, image_directory):
  4447         def process_package_list_start(self):
  4453                 self.image_directory = image_directory
       
  4454                 if not self.api_o:
       
  4455                         self.api_o = gui_misc.get_api_object(image_directory, 
       
  4456                             self.pr, self.w_main_window)
       
  4457                         self.cache_o = self.__get_cache_obj(self.icon_theme,
       
  4458                             self.application_dir, self.api_o)
       
  4459                         self.img_timestamp = self.cache_o.get_index_timestamp()
       
  4460                         self.__setup_search_completion()
       
  4461                 if self.first_run:
  4448                 if self.first_run:
  4462                         self.__setup_filter_combobox()
  4449                         self.__setup_filter_combobox()
  4463                 self.__setup_repositories_combobox(self.api_o)
  4450                 self.__setup_repositories_combobox(self.api_o)
  4464                 if self.first_run:
  4451                 if self.first_run:
  4465                         self.__update_reload_button()
  4452                         self.__update_reload_button()
  4723                 self.release_notes_url = info_str
  4710                 self.release_notes_url = info_str
  4724                 
  4711                 
  4725                 self.w_ua_completed_dialog.set_title(_("Update All Complete"))
  4712                 self.w_ua_completed_dialog.set_title(_("Update All Complete"))
  4726                 self.w_ua_completed_dialog.show()
  4713                 self.w_ua_completed_dialog.show()
  4727 
  4714 
       
  4715         def __get_api_object(self):
       
  4716                 self.api_o = gui_misc.get_api_object(self.image_directory, 
       
  4717                     self.pr, self.w_main_window)
       
  4718                 self.cache_o = self.__get_cache_obj(self.icon_theme,
       
  4719                     self.application_dir, self.api_o)
       
  4720                 self.img_timestamp = self.cache_o.get_index_timestamp()
       
  4721                 self.__setup_search_completion()
       
  4722                 gobject.idle_add(self.__got_api_object)
       
  4723 
       
  4724         def __got_api_object(self):
       
  4725                 self.process_package_list_start()
       
  4726                 
       
  4727         def start(self):
       
  4728                 self.set_busy_cursor()
       
  4729                 Thread(target = self.__get_api_object).start() 
       
  4730 
  4728 ###############################################################################
  4731 ###############################################################################
  4729 #-----------------------------------------------------------------------------#
  4732 #-----------------------------------------------------------------------------#
  4730 # Main
  4733 # Main
  4731 #-----------------------------------------------------------------------------#
  4734 #-----------------------------------------------------------------------------#
  4732 
  4735 
  4797                 sys.exit(0)
  4800                 sys.exit(0)
  4798 
  4801 
  4799         # Setup packagemanager
  4802         # Setup packagemanager
  4800         packagemanager = PackageManager()
  4803         packagemanager = PackageManager()
  4801         packagemanager.application_path = app_path
  4804         packagemanager.application_path = app_path
  4802         packagemanager.image_dir_arg = image_dir
  4805         packagemanager.image_directory = image_dir
  4803         packagemanager.update_all_proceed = update_all_proceed
  4806         packagemanager.update_all_proceed = update_all_proceed
  4804         packagemanager.ua_be_name = ua_be_name
  4807         packagemanager.ua_be_name = ua_be_name
  4805 
  4808 
  4806         while gtk.events_pending():
  4809         while gtk.events_pending():
  4807                 gtk.main_iteration(False)
  4810                 gtk.main_iteration(False)
  4808 
  4811 
  4809         max_filter_length = packagemanager.init_show_filter()
  4812         max_filter_length = packagemanager.init_show_filter()
  4810 
  4813 
  4811         packagemanager.process_package_list_start(image_dir)
  4814         gobject.idle_add(packagemanager.start)
  4812 
  4815 
  4813         main()
  4816         main()