コード例 #1
0
ファイル: droptarget.py プロジェクト: bbarao/py-cloudapp
class DropWidget(QLabel):

    hidden = True

    def __init__(self, parent=None):
        super(QWidget,self).__init__(parent)
        self.setWindowFlags(Qt.X11BypassWindowManagerHint | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
        self.signals = self.Signals()
        self.setAcceptDrops(1)
        self.resize(QSize(217,68))
        self.setAlignment(Qt.AlignCenter)
        self.setPixmap(QPixmap(':/bg/cloudapp_droptarget.png'))

        self.trayIcon = TrayIcon()
        self.trayIcon.show()
        self.trayIcon.activated[QSystemTrayIcon.ActivationReason].connect(self.trayActivated)
        self.signals.itemDropped[str].connect(self.trayIcon.apiHandle.addItem)

        self.trayIcon.apiHandle.pdialog.voffsetSlider.valueChanged[int].connect(self.vmove)
        self.move(qApp.desktop().screenGeometry().width()-217,self.trayIcon.apiHandle.pdialog.settings['drop_topoffset'])

    def vmove(self, val):
        self.move(self.x(),val)

    def dragEnterEvent(self, event):
        if self.trayIcon.apiHandle.connected:
            event.acceptProposedAction()

    def dropEvent(self, event):
        mimeData = event.mimeData()
        pos = event.pos()
        if pos.x() > 25:
            if mimeData.hasUrls():
                for url in mimeData.urls():
                    if url.scheme() in ('file', 'http','https','ftp'):
                        self.signals.itemDropped.emit(url.toString())
                        self.animOpacity()

    def trayActivated(self, reason):
        if reason == QSystemTrayIcon.Trigger:
            self.toggle()
        elif reason == QSystemTrayIcon.Context:
            if hasattr(self.trayIcon, "deleteAction"):
                deleteCheckBox = self.trayIcon.deleteAction.widget.checkBox
                if deleteCheckBox.isChecked():
                    deleteCheckBox.toggle()

    def animOpacity(self):
        if self.hidden:
            self.show()
        else:
            self.hide()

        self.hidden = not self.hidden

    def toggle(self):
        self.animOpacity()

    class Signals(QObject):
        itemDropped = pyqtSignal(str)
コード例 #2
0
 def __init__(self):
     super().__init__()
     self.setFixedHeight(500)
     self.setFixedWidth(350)
     self.setupNote()
     self.setupToolBar()
     self.setupStatusBar()
     self.view.setupSignal(self.updateStatusBar)
     ti = TrayIcon(self)
     ti.show()
     self.show()
コード例 #3
0
 def __init__(self):
     TrayIcon.__init__(self)
     self.height = 16
     self.debug = False
     if len(sys.argv) >= 2:
         if sys.argv[1] == "debug":
             self.debug = True
     #self.set_size_request(-1, self.height)
     self.init_statusiocn_widgets()
     self.init_statusiocn_values()
     self.init_statusicon_events()
コード例 #4
0
ファイル: droptarget.py プロジェクト: toastwaffle/py-cloudapp
    def __init__(self, parent=None):
        super(QWidget, self).__init__(parent)
        self.setWindowFlags(Qt.X11BypassWindowManagerHint
                            | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
        self.signals = self.Signals()
        self.setAcceptDrops(1)
        self.resize(QSize(238, 68))
        self.setAlignment(Qt.AlignCenter)

        self.trayIcon = TrayIcon()
        self.trayIcon.show()
        self.trayIcon.activated[QSystemTrayIcon.ActivationReason].connect(
            self.trayActivated)
        self.signals.itemDropped[str].connect(self.trayIcon.apiHandle.addItem)

        self.trayIcon.apiHandle.pdialog.voffsetSlider.valueChanged[
            int].connect(self.vmove)
        self.move(qApp.desktop().width() - 227,
                  self.trayIcon.apiHandle.pdialog.settings['drop_topoffset'])
        self.slideIn()
コード例 #5
0
ファイル: traygui.py プロジェクト: imammedo/memocard
class TrayApp:

	def get_default_config(self):
		config = ConfigParser.RawConfigParser()
		config.add_section('GUI')
		config.set('GUI', 'CardWindowY', '15')
		config.set('GUI', 'CardWindowY', '15')
		config.add_section('Learning')
		config.set('Learning', 'SlideTimeout', '10')
		config.set('Learning', 'SlideInterval', '40')
		config.set('Learning', 'FlipSides', 'false')
		config.set('Learning', 'DefaultDB', 'french.jml')
		return config

	def __init__(self):
		self.config = ConfigParser.RawConfigParser()
		try:
			self.config.readfp(open('memocard.cfg'))
		except:
			self.config = self.get_default_config()

		self.flip = self.config.getboolean('Learning', 'FlipSides')

		self.icon = TrayIcon()
		self.icon.connect('activate', self.slide_show_cb)

		# Build menu
		menu = gtk.Menu()
		self.topMenu = menu
		menuItem = gtk.MenuItem('Start/Stop slide show')
		menuItem.connect('activate', self.slide_show_cb)
		self.slide_show_mode = False
		menu.append(menuItem)
		menuItem = gtk.CheckMenuItem('Flip cards')
		menuItem.connect('activate', self.flip_cb)
		menu.append(menuItem)
		menuItem = gtk.ImageMenuItem(gtk.STOCK_QUIT)
		menuItem.connect('activate', self.quit_cb, self.icon)
		menu.append(menuItem)

		self.icon.connect('popup-menu', self.popup_menu_cb, menu)
		self.icon.show()

		# Init cards database
		self.db = jmemorize_db.jMemorizeDB()
		self.db.open_db(self.config.get('Learning', 'DefaultDB'))

		# Add Filter menu Item if backend provides it
		try:
			flt = self.db.getFilter()
			flt_menu = self.build_FilterMenu(flt)
			if flt_menu != None:
				menuItem = gtk.MenuItem('Filter')
				menuItem.set_submenu(flt_menu)
				menu.prepend(menuItem)
				menu.connect('hide', self.setToolTip_from_filter)
		except Exception, e:
			print "Unable to get Filter menu from DB: ", e
コード例 #6
0
ファイル: main.py プロジェクト: loservn/ibus-ringo
    def __init__(self, exec_by_ibus):
        engine_name = "bogo"
        long_engine_name = "BoGo"
        author = "BoGo Development Team <*****@*****.**>"
        description = "ibus-bogo for IBus"
        version = "0.4"
        license = "GPLv3"

        self.component = \
            IBus.Component.new("org.freedesktop.IBus.BoGo",
                               description,
                               version,
                               license,
                               author,
                               "https://github.com/BoGoEngine/ibus-bogo",
                               "/usr/bin/exec",
                               "ibus-bogo")

        engine = IBus.EngineDesc(name=engine_name,
                                 longname=long_engine_name,
                                 description=description,
                                 language="vi",
                                 license=license,
                                 author=author,
                                 icon=current_path + "/data/ibus-bogo-dev.svg",
                                 # icon = "ibus-bogo",
                                 layout="default")

        self.component.add_engine(engine)
        self.mainloop = GObject.MainLoop()
        self.bus = IBus.Bus()
        self.bus.connect("disconnected", self.bus_disconnected_cb)

        self.engine_count = 0
        self.factory = IBus.Factory.new(self.bus.get_connection())
        self.factory.connect("create-engine", self.create_engine)

        CONFIG_DIR = os.path.expanduser("~/.config/ibus-bogo/")
        self.config = Config()
        self.abbr_expander = AbbreviationExpander(config=self.config)
        self.abbr_expander.watch_file(CONFIG_DIR + "/abbr_rules.json")
        self.icon = TrayIcon()

        if exec_by_ibus:
            self.bus.request_name("org.freedesktop.IBus.BoGo", 0)
        else:
            self.bus.register_component(self.component)
            self.bus.set_global_engine_async(
                "bogo", -1, None, None, None)
コード例 #7
0
ファイル: droptarget.py プロジェクト: bbarao/py-cloudapp
    def __init__(self, parent=None):
        super(QWidget,self).__init__(parent)
        self.setWindowFlags(Qt.X11BypassWindowManagerHint | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
        self.signals = self.Signals()
        self.setAcceptDrops(1)
        self.resize(QSize(217,68))
        self.setAlignment(Qt.AlignCenter)
        self.setPixmap(QPixmap(':/bg/cloudapp_droptarget.png'))

        self.trayIcon = TrayIcon()
        self.trayIcon.show()
        self.trayIcon.activated[QSystemTrayIcon.ActivationReason].connect(self.trayActivated)
        self.signals.itemDropped[str].connect(self.trayIcon.apiHandle.addItem)

        self.trayIcon.apiHandle.pdialog.voffsetSlider.valueChanged[int].connect(self.vmove)
        self.move(qApp.desktop().screenGeometry().width()-217,self.trayIcon.apiHandle.pdialog.settings['drop_topoffset'])
コード例 #8
0
import webbrowser
from concurrent.futures import CancelledError

from config import getConfigs, writeConfig
from dialogs import selectFileDialog, selectDirectoryDialog, showMessage
from logger import Logger, clearLogFile
from mapsfileobserver import MapsFileObserver
from mapsobserver import MapsObserver
from path import mapsFilePath, poeDirectoryIsValid
from sound import playAlert, setAlertSoundPath, stopAlert, audioFileIsValid
from trayicon import TrayIcon

clearLogFile()
logger = Logger('main')
mainLoop = asyncio.get_event_loop()
trayIcon = TrayIcon()


def _selectPathOfExileDirectory():
    path = selectDirectoryDialog('Path of Exile')
    if not path:
        return
    if not poeDirectoryIsValid(path):
        showMessage(
            'Invalid directory. Are you sure this is Path of Exile directory?')
        _selectPathOfExileDirectory()
        return
    writeConfig('Main', 'PathOfExileDirectoryPath', path)


def _openMapsFile():
コード例 #9
0
 def createTrayIcon(self, toolTip='', icon=''):
     return TrayIcon(self.window, toolTip, self.normUrl(icon))
コード例 #10
0
ファイル: droptarget.py プロジェクト: hyde1/py-cloudapp
class DropWidget(QLabel):

    def __init__(self, parent=None):
        super(QWidget,self).__init__(parent)
        self.setWindowFlags(Qt.X11BypassWindowManagerHint | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
        self.signals = self.Signals()
        self.setAcceptDrops(1)
        self.resize(QSize(238,68))
        self.setAlignment(Qt.AlignCenter)
              
        self.trayIcon = TrayIcon()
        self.trayIcon.show()
        self.trayIcon.activated[QSystemTrayIcon.ActivationReason].connect(self.trayActivated)
        self.signals.itemDropped[str].connect(self.trayIcon.apiHandle.addItem)
        
        self.trayIcon.apiHandle.pdialog.voffsetSlider.valueChanged[int].connect(self.vmove)
        self.move(qApp.desktop().width()-227,self.trayIcon.apiHandle.pdialog.settings['drop_topoffset'])
        self.slideIn()

    def vmove(self, val):
        self.move(self.x(),val)

    def dragEnterEvent(self, event):
        if self.trayIcon.apiHandle.connected:
            event.acceptProposedAction()
            self.slideOut()

    def dropEvent(self, event):
        mimeData = event.mimeData()
        pos = event.pos()
        if pos.x() > 25:
            if mimeData.hasUrls():
                for url in mimeData.urls():
                    if url.scheme() in ('file', 'http','https','ftp'):
                        self.signals.itemDropped.emit(url.toString())

    def trayActivated(self, reason):
        if reason == QSystemTrayIcon.Trigger:
            if self.trayIcon.apiHandle.connected:
                self.toggle()
        elif reason == QSystemTrayIcon.Context:
            if hasattr(self.trayIcon, "deleteAction"): 
                deleteCheckBox = self.trayIcon.deleteAction.widget.checkBox
                if deleteCheckBox.isChecked():
                    deleteCheckBox.toggle()

    def mousePressEvent(self, event):
        if event.x() in range(4,18):
            self.toggle()

    def slide(self, newRect):
        self.a = QPropertyAnimation(self, "geometry")
        self.a.setDuration(500)
        self.a.setStartValue(self.geometry())
        self.a.setEndValue(newRect)
        self.a.setEasingCurve(QEasingCurve.InOutQuad)
        self.a.start()          

    def slideOut(self):        
        current = self.geometry()
        new = QRect(current)
        new.moveTopLeft(QPoint(qApp.desktop().width() - 236, current.y()))
        bg = ':/bg/cloudapp_droptarget_out.png'
        self.setPixmap(QPixmap(bg))
        self.slide(new)

    def slideIn(self):
        current = self.geometry()
        new = QRect(current)
        bg = ':/bg/cloudapp_droptarget_in.png'
        self.setPixmap(QPixmap(bg))
        new.moveTopLeft(QPoint(qApp.desktop().width() - 19, current.y()))
        self.slide(new)

    def toggle(self):
        current = self.geometry()
        if current.x() > (qApp.desktop().width() - 236):
            self.slideOut()
        else:
            self.slideIn()

    class Signals(QObject):
        itemDropped = pyqtSignal(str)
コード例 #11
0
ファイル: droptarget.py プロジェクト: toastwaffle/py-cloudapp
class DropWidget(QLabel):
    def __init__(self, parent=None):
        super(QWidget, self).__init__(parent)
        self.setWindowFlags(Qt.X11BypassWindowManagerHint
                            | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
        self.signals = self.Signals()
        self.setAcceptDrops(1)
        self.resize(QSize(238, 68))
        self.setAlignment(Qt.AlignCenter)

        self.trayIcon = TrayIcon()
        self.trayIcon.show()
        self.trayIcon.activated[QSystemTrayIcon.ActivationReason].connect(
            self.trayActivated)
        self.signals.itemDropped[str].connect(self.trayIcon.apiHandle.addItem)

        self.trayIcon.apiHandle.pdialog.voffsetSlider.valueChanged[
            int].connect(self.vmove)
        self.move(qApp.desktop().width() - 227,
                  self.trayIcon.apiHandle.pdialog.settings['drop_topoffset'])
        self.slideIn()

    def vmove(self, val):
        self.move(self.x(), val)

    def dragEnterEvent(self, event):
        if self.trayIcon.apiHandle.connected:
            event.acceptProposedAction()
            self.slideOut()

    def dropEvent(self, event):
        mimeData = event.mimeData()
        pos = event.pos()
        if pos.x() > 25:
            if mimeData.hasUrls():
                for url in mimeData.urls():
                    if url.scheme() in ('file', 'http', 'https', 'ftp'):
                        self.signals.itemDropped.emit(url.toString())

    def trayActivated(self, reason):
        if reason == QSystemTrayIcon.Trigger:
            self.toggle()
        elif reason == QSystemTrayIcon.Context:
            if hasattr(self.trayIcon, "deleteAction"):
                deleteCheckBox = self.trayIcon.deleteAction.widget.checkBox
                if deleteCheckBox.isChecked():
                    deleteCheckBox.toggle()

    def mousePressEvent(self, event):
        if event.x() in range(4, 18):
            self.toggle()

    def slide(self, newRect):
        self.a = QPropertyAnimation(self, "geometry")
        self.a.setDuration(500)
        self.a.setStartValue(self.geometry())
        self.a.setEndValue(newRect)
        self.a.setEasingCurve(QEasingCurve.InOutQuad)
        self.a.start()

    def slideOut(self):
        current = self.geometry()
        new = QRect(current)
        new.moveTopLeft(QPoint(qApp.desktop().width() - 236, current.y()))
        bg = ':/bg/cloudapp_droptarget_out.png'
        self.setPixmap(QPixmap(bg))
        self.slide(new)

    def slideIn(self):
        current = self.geometry()
        new = QRect(current)
        bg = ':/bg/cloudapp_droptarget_in.png'
        self.setPixmap(QPixmap(bg))
        new.moveTopLeft(QPoint(qApp.desktop().width() - 19, current.y()))
        self.slide(new)

    def toggle(self):
        current = self.geometry()
        if current.x() > (qApp.desktop().width() - 236):
            self.slideOut()
        else:
            self.slideIn()

    class Signals(QObject):
        itemDropped = pyqtSignal(str)