def set_data(self, mime_data):
     """Set mime_data to clipboard.
     
     Args:
         mime_data: QtCore.QMimeData 
     """
     if not settings.get_disconnect():
         logging.debug(str(self.mode))
         self.clip_board.setMimeData(mime_data, self.mode)
    def on_owner_destroyed(self):
        """X11 also has the concept of ownership.

        If you change the selection within a window, X11 will only notify the 
        owner and the previous owner of the change, i.e. it will not notify all 
        applications that the selection or clipboard data changed.
        """
        logging.debug('Owner destroyed!')
        if not settings.get_disconnect():
            self.new_item_callback(self.clipboard_contents)
def _disconnect_icon():
    """Determine which icon to display if disconnect menu is toggled on/off.

    Returns:
        QtGui.QIcon
    """
    # Clipboard _disconnected and ignoring changes
    if settings.get_disconnect():
        return QtGui.QIcon.fromTheme('network-offline',
               QtGui.QIcon(resource_filename('icons/disconnect.png')))
    # Clipboard connected and monitoring
    else:
        return QtGui.QIcon.fromTheme('network-transmit-receive', 
               QtGui.QIcon(resource_filename('icons/connect.png')))
    def setup_menu(self):
        """Create right click menu.
        """
        # Right click menu
        menu = QtGui.QMenu()

        # Open or hide main window
        toggle_act = menu.addAction(QtGui.QIcon.fromTheme('search', 
                                    QtGui.QIcon(
                                        resource_filename('icons/search.png'))),
                                    'Toggle')

        menu.addSeparator()

        # Disconnect from OS clipboard(s)
        self.disconnect_act = menu.addAction(_disconnect_icon(), 'Disconnect')
        self.disconnect_act.setCheckable(True)
        self.disconnect_act.setChecked(settings.get_disconnect())

        # Open settings dialog
        settings_act = menu.addAction(QtGui.QIcon.fromTheme('emblem-system', 
                                      QtGui.QIcon(resource_filename(
                                        'icons/settings.png'))), 'Settings')

        # Open about dialog
        about_act = menu.addAction(QtGui.QIcon.fromTheme('help-about', 
                                   QtGui.QIcon(
                                        resource_filename('icons/about.png'))), 
                                   'About')

        menu.addSeparator()

        # Exit application
        exit_act = menu.addAction(QtGui.QIcon.fromTheme('application-exit', 
                                  QtGui.QIcon(
                                    resource_filename('icons/exit.png'))),
                                  'Quit')

        # Connect menu triggered action to functions
        self.connect(toggle_act, QtCore.SIGNAL('triggered()'), 
                     self._emit_toggle_window)
        self.connect(self.disconnect_act, QtCore.SIGNAL('triggered()'), 
                     self._disconnect)
        self.connect(settings_act, QtCore.SIGNAL('triggered()'), 
                     self._emit_open_settings)
        self.connect(about_act, QtCore.SIGNAL("triggered()"), self._about)
        self.connect(exit_act, QtCore.SIGNAL("triggered()"), self._exit)

        self.setContextMenu(menu)
 def _disconnect(self):
     """Save and change icon for disconnecting from clipboard.
     """
     settings.set_disconnect(not settings.get_disconnect())
     self.disconnect_act.setIcon(_disconnect_icon())
 def on_data_changed(self):
     """Send clipboard mime data back to master clipboard class.
     """
     if not settings.get_disconnect():
         self.clipboard_contents = self.clip_board.mimeData(self.mode)
         self.new_item_callback(self.clipboard_contents)
 def clear(self):
     if not settings.get_disconnect():
         self.clip_board.clear(mode=self.mode)