Exemplo n.º 1
0
 def create_view_menu(self):
   self.viewMenu = gtk.Menu()
   self.viewMenuRoot = gtk.MenuItem("View")
   
   GTKUtils.append_menu_item(self.viewMenu, "Help", self.show_help)
   self.viewMenu.append(gtk.SeparatorMenuItem())
   
   def make_toggle_window_entry(window, name):
     menuItem = GTKUtils.append_menu_item(self.viewMenu, " ", window.toggle_window_state)
     def on_toggled(window):
       if window.is_visible():
         menuItem.child.set_text("Hide %s" % (name))
       else:
         menuItem.child.set_text("Show %s" % (name))
     on_toggled(window)
     self._start_listening_for_event("shown", window, on_toggled)
     self._start_listening_for_event("hidden", window, on_toggled)
     return menuItem
     
   make_toggle_window_entry(self.controller.btWindow, "BitTorrent")
   firefox = FirefoxPortable.get()
   if firefox:
     make_toggle_window_entry(self.controller.firefoxWindow, "Firefox")
   make_toggle_window_entry(self.controller.serverWindow, "Server")
   make_toggle_window_entry(self.controller.socksClientWindow, "SOCKS Clients")
   
   self.viewMenu.append(gtk.SeparatorMenuItem())
   GTKUtils.append_menu_item(self.viewMenu, "Preferences", self.controller.show_settings_cb)
   self.viewMenuRoot.set_submenu(self.viewMenu)
   self.viewMenuRoot.show()
   return self.viewMenu
Exemplo n.º 2
0
 def create_file_menu(self):
   self.fileMenu = gtk.Menu()
   self.fileMenuRoot = gtk.MenuItem("File")
   
   def make_toggle_app_entry(app, is_running_func, toggle_func, name, stopEvent, startEvent):
     menuItem = GTKUtils.append_menu_item(self.fileMenu, " ", toggle_func)
     def on_toggled(app):
       if is_running_func():
         menuItem.child.set_text("Stop %s" % (name))
       else:
         menuItem.child.set_text("Start %s" % (name))
     on_toggled(app)
     self._start_listening_for_event(startEvent, app, on_toggled)
     self._start_listening_for_event(stopEvent, app, on_toggled)
     return menuItem
     
   self.serverMenuItem = make_toggle_app_entry(Tor.get(), Tor.get().is_server, 
     self.controller.toggle_relay, "Relay", "server_stopped", "server_started")
   self.bittorrentMenuItem = make_toggle_app_entry(BitTorrentClient.get(), BitTorrentClient.get().is_running, 
     self.controller.toggle_bittorrent, "BitTorrent", "stopped", "started")
   firefox = FirefoxPortable.get()
   if firefox:
     self.firefoxMenuItem = make_toggle_app_entry(firefox, firefox.is_running, 
       self.controller.toggle_firefox, "Browser", "stopped", "started")
   
   self.fileMenu.append(gtk.SeparatorMenuItem())
   GTKUtils.append_menu_item(self.fileMenu, "Update", self.controller.update_check)
   GTKUtils.append_menu_item(self.fileMenu, "Quit", self.controller.quit_cb)
   self.fileMenuRoot.set_submenu(self.fileMenu)
   self.fileMenuRoot.show()
   return self.fileMenu
Exemplo n.º 3
0
    def make_popup_menu(self, newMenu):
        """creates a drop down menu on the system tray icon when right clicked hopefully"""
        #    GTKUtils.append_menu_item(newMenu, "Show BitTorrent Window", self._start_cb)
        submenu = gtk.Menu()
        if not self.app.is_running():
            GTKUtils.append_menu_item(submenu, "Start BitTorrent",
                                      self.controller.toggle_bittorrent)
        else:
            GTKUtils.append_menu_item(submenu, "Show BitTorrent Window",
                                      self._start_cb)
            GTKUtils.append_menu_item(submenu, "Add Torrent",
                                      self._add_file_cb)
            GTKUtils.append_menu_item(submenu, "Open Torrent Folder",
                                      self._open_folder)
            GTKUtils.append_menu_item(submenu, "Stop BitTorrent",
                                      self.controller.toggle_bittorrent)

        menuItem = GTKUtils.make_menu_item_with_picture(
            "BitTorrent", "bb_logo.png")
        menuItem.set_submenu(submenu)
        menuItem.show_all()

        newMenu.append(menuItem)

        return submenu
Exemplo n.º 4
0
 def create_help_menu(self):
   self.helpMenu = gtk.Menu()
   self.helpMenuRoot = gtk.MenuItem("Help")
   GTKUtils.append_menu_item(self.helpMenu, "Instructions", self.show_help)
   GTKUtils.append_menu_item(self.helpMenu, "Read Online Help...", self.show_website)
   GTKUtils.append_menu_item(self.helpMenu, "Visit Forums...", self.show_forums)
   GTKUtils.append_menu_item(self.helpMenu, "Report an Issue...", self.controller.show_trac)
   GTKUtils.append_menu_item(self.helpMenu, "About", self.show_about)
   self.helpMenuRoot.set_submenu(self.helpMenu)
   self.helpMenuRoot.show()
   return self.helpMenu
Exemplo n.º 5
0
  def make_popup_menu(self, newMenu):
    """creates a drop down menu on the system tray icon when right clicked"""
  
    submenu = gtk.Menu()
    if not self.app or not self.app.is_running() or not self.is_visible():
      GTKUtils.append_menu_item(submenu, "Show SOCKS Interface", self.toggle_window_state)
    else:
      GTKUtils.append_menu_item(submenu, "Hide SOCKS Interface", self.toggle_window_state)
      
    header = GTKUtils.make_menu_item_with_picture('SOCKS Interface', "network.png")
    header.set_submenu(submenu)
    header.show_all()
    
    newMenu.append(header)

    return submenu
Exemplo n.º 6
0
  def make_popup_menu(self, newMenu):
    """creates a drop down menu on the system tray icon when right clicked hopefully"""      
#    GTKUtils.append_menu_item(newMenu, "Show BitTorrent Window", self._start_cb)
    submenu = gtk.Menu()
    if not self.app.is_running():
      GTKUtils.append_menu_item(submenu, "Start BitTorrent", self.controller.toggle_bittorrent)
    else:
      GTKUtils.append_menu_item(submenu, "Show BitTorrent Window", self._start_cb)
      GTKUtils.append_menu_item(submenu, "Add Torrent", self._add_file_cb)
      GTKUtils.append_menu_item(submenu, "Open Torrent Folder", self._open_folder)
      GTKUtils.append_menu_item(submenu, "Stop BitTorrent", self.controller.toggle_bittorrent)
    
    menuItem = GTKUtils.make_menu_item_with_picture("BitTorrent", "bb_logo.png")
    menuItem.set_submenu(submenu)
    menuItem.show_all()
    
    newMenu.append(menuItem)

    return submenu
Exemplo n.º 7
0
 def make_toggle_window_entry(window, name):
   menuItem = GTKUtils.append_menu_item(self.viewMenu, " ", window.toggle_window_state)
   def on_toggled(window):
     if window.is_visible():
       menuItem.child.set_text("Hide %s" % (name))
     else:
       menuItem.child.set_text("Show %s" % (name))
   on_toggled(window)
   self._start_listening_for_event("shown", window, on_toggled)
   self._start_listening_for_event("hidden", window, on_toggled)
   return menuItem
Exemplo n.º 8
0
 def make_toggle_app_entry(app, is_running_func, toggle_func, name, stopEvent, startEvent):
   menuItem = GTKUtils.append_menu_item(self.fileMenu, " ", toggle_func)
   def on_toggled(app):
     if is_running_func():
       menuItem.child.set_text("Stop %s" % (name))
     else:
       menuItem.child.set_text("Start %s" % (name))
   on_toggled(app)
   self._start_listening_for_event(startEvent, app, on_toggled)
   self._start_listening_for_event(stopEvent, app, on_toggled)
   return menuItem
Exemplo n.º 9
0
    def make_popup_menu(self, newMenu):
        """creates a drop down menu on the system tray icon when right clicked"""

        submenu = gtk.Menu()
        if not self.app or not self.app.is_running():
            GTKUtils.append_menu_item(submenu, "Start Firefox",
                                      self.controller.toggle_firefox)
        else:
            GTKUtils.append_menu_item(submenu, "Show Firefox Controls",
                                      self._start_cb)
            GTKUtils.append_menu_item(submenu, "New identity",
                                      self._new_circuit_cb)
            GTKUtils.append_menu_item(submenu, "Change speed",
                                      self._anonymity_cb)
            GTKUtils.append_menu_item(submenu, "Stop Firefox",
                                      self.controller.toggle_firefox)

        image = gtk.Image()
        iconPath = os.path.join(self.app.appBasePath, self.app.name, "App",
                                "AppInfo", "appicon.ico")
        if os.path.exists(iconPath):
            pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(iconPath, 24, 24)
            image.set_from_pixbuf(pixbuf)
        else:
            image.set_from_pixbuf(Images.GREY_CIRCLE)

        headerLabel = gtk.Label()
        headerLabel.set_markup("<span weight='bold'>%s</span>" %
                               (self.app.name))
        box = gtk.HBox(spacing=10)
        box.pack_start(image, False, False, 0)
        box.pack_start(headerLabel, False, False, 0)
        header = gtk.MenuItem()
        header.add(box)
        header.set_submenu(submenu)
        header.show_all()

        newMenu.append(header)

        return submenu
Exemplo n.º 10
0
 def make_popup_menu(self, newMenu):
   """creates a drop down menu on the system tray icon when right clicked hopefully"""
   #make appropriate submenu
   submenu = gtk.Menu()
   if not self.torApp.is_running() or not self.torApp.is_server():
     GTKUtils.append_menu_item(submenu, "Start Relay", self.controller.toggle_relay)
   else:
     GTKUtils.append_menu_item(submenu, "Show Server Window", self._start_cb)
     GTKUtils.append_menu_item(submenu, "Settings", self.show_server_settings)
     GTKUtils.append_menu_item(submenu, "Stop Relay", self.controller.toggle_relay)
   
   menuItem = GTKUtils.make_menu_item_with_picture("Relay",  "network2.png")
   menuItem.set_submenu(submenu)
   menuItem.show_all()
   
   newMenu.append(menuItem)
   return submenu
Exemplo n.º 11
0
 def create_debug_menu(self):
   #Debug Menu
   self.debugMenu = gtk.Menu()
   self.profileMenuItem = GTKUtils.append_menu_item(self.debugMenu, "Start Profiler", self.toggle_profiler)
   def on_profiler_started(profiler):
     self.profileMenuItem.child.set_text("Stop Profiler")
   self._start_listening_for_event("started", Profiler.get(), on_profiler_started)
   def on_profiler_stopped(profiler):
     self.profileMenuItem.child.set_text("Start Profiler")
   self._start_listening_for_event("stopped", Profiler.get(), on_profiler_stopped)
  
   self.debugMenuRoot = gtk.MenuItem("Debug")
   self.debugMenuRoot.set_submenu(self.debugMenu)
   self.debugMenuRoot.show()
   return self.debugMenu
Exemplo n.º 12
0
  def __init__(self, display):
    """Creates a drop-down menu to interact with the torrent"""
    gtk.Menu.__init__(self)
    ListenerMixin.ListenerMixin.__init__(self)
    self.display = display
    baseMenu = self
    #create menu items
    self.openItem = GTKUtils.append_menu_item(baseMenu, "Open Containing Folder", display._open_folder)
    if not display._any_selected_torrent_running():
      self.pauseItem = GTKUtils.append_menu_item(baseMenu, "Resume", display._pause_cb)
    else:
      self.pauseItem = GTKUtils.append_menu_item(baseMenu, "Pause", display._pause_cb)
    #create a right-click option to update the tracker
    def update_cb(widget):
      torrentsToUpdate = display._get_selected_torrents()
      for torrentHash in torrentsToUpdate:
        display.app.btInstance.downloads[torrentHash].rerequest.update(True)
    self.updateItem = GTKUtils.append_menu_item(baseMenu, "Update Tracker", update_cb)
    self.editItem = GTKUtils.append_menu_item(baseMenu, "Edit Trackers...", display._open_tracker_edit)
    
    #create the secondary menu:
    deleteMenu = gtk.Menu()
    def delete_cb(widget, deleteTorrent, deleteData):
      torrentsToDelete = display._get_selected_torrents()
      for torrentHash in torrentsToDelete:
        display.app.remove_download(torrentHash, deleteTorrent, deleteData)
    #add the entries:
    GTKUtils.append_menu_item(deleteMenu, "Just Remove From List", delete_cb, False, False)
    GTKUtils.append_menu_item(deleteMenu, "Torrent File Only", delete_cb, True, False)
    GTKUtils.append_menu_item(deleteMenu, "Data Only", delete_cb, False, True)
    GTKUtils.append_menu_item(deleteMenu, "Both Torrent and Data", delete_cb, True, True)
    #add the submenu:
    self.deleteItem = GTKUtils.append_menu_item(baseMenu, "Delete", deleteMenu)
    
    self.allItems = [self.openItem, self.pauseItem, self.updateItem, self.editItem, self.deleteItem]

    baseMenu.show_all()
    baseMenu.hide()
    self.baseMenu = baseMenu
Exemplo n.º 13
0
  def popup_menu(self, activationTime=None):
    """"""
    #create the first menu:
    baseMenu = gtk.Menu()
    if self.selectedApp:
      GTKUtils.append_menu_item(baseMenu, "Stop", self.stop_cb)
    
    #create the secondary menu:
    pathLenMenu = gtk.Menu()
    def path_len_cb(widget, pathLen):
      self.anonEntry.set_value(pathLen)
    #add the entries:
    GTKUtils.append_menu_item(pathLenMenu, "1 (Fastest)", path_len_cb, 1)
    GTKUtils.append_menu_item(pathLenMenu, "2 (Normal)", path_len_cb, 2)
    GTKUtils.append_menu_item(pathLenMenu, "3 (Best Anonymity)", path_len_cb, 3)
    #add the submenu:
    if self.selectedApp:
      GTKUtils.append_menu_item(baseMenu, "Set Path Length", pathLenMenu)
    else:
      GTKUtils.append_menu_item(baseMenu, "Set Default Path Length", pathLenMenu)

    baseMenu.show_all()
    baseMenu.popup(None, None, None, 3, activationTime)
Exemplo n.º 14
0
    def __init__(self, display):
        """Creates a drop-down menu to interact with the torrent"""
        gtk.Menu.__init__(self)
        ListenerMixin.ListenerMixin.__init__(self)
        self.display = display
        baseMenu = self
        #create menu items
        self.openItem = GTKUtils.append_menu_item(baseMenu,
                                                  "Open Containing Folder",
                                                  display._open_folder)
        if not display._any_selected_torrent_running():
            self.pauseItem = GTKUtils.append_menu_item(baseMenu, "Resume",
                                                       display._pause_cb)
        else:
            self.pauseItem = GTKUtils.append_menu_item(baseMenu, "Pause",
                                                       display._pause_cb)
        #create a right-click option to update the tracker
        def update_cb(widget):
            torrentsToUpdate = display._get_selected_torrents()
            for torrentHash in torrentsToUpdate:
                display.app.btInstance.downloads[torrentHash].rerequest.update(
                    True)

        self.updateItem = GTKUtils.append_menu_item(baseMenu, "Update Tracker",
                                                    update_cb)
        self.editItem = GTKUtils.append_menu_item(baseMenu, "Edit Trackers...",
                                                  display._open_tracker_edit)

        #create the secondary menu:
        deleteMenu = gtk.Menu()

        def delete_cb(widget, deleteTorrent, deleteData):
            torrentsToDelete = display._get_selected_torrents()
            for torrentHash in torrentsToDelete:
                display.app.remove_download(torrentHash, deleteTorrent,
                                            deleteData)

        #add the entries:
        GTKUtils.append_menu_item(deleteMenu, "Just Remove From List",
                                  delete_cb, False, False)
        GTKUtils.append_menu_item(deleteMenu, "Torrent File Only", delete_cb,
                                  True, False)
        GTKUtils.append_menu_item(deleteMenu, "Data Only", delete_cb, False,
                                  True)
        GTKUtils.append_menu_item(deleteMenu, "Both Torrent and Data",
                                  delete_cb, True, True)
        #add the submenu:
        self.deleteItem = GTKUtils.append_menu_item(baseMenu, "Delete",
                                                    deleteMenu)

        self.allItems = [
            self.openItem, self.pauseItem, self.updateItem, self.editItem,
            self.deleteItem
        ]

        baseMenu.show_all()
        baseMenu.hide()
        self.baseMenu = baseMenu