Exemplo n.º 1
0
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)
Exemplo n.º 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()
 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()
Exemplo n.º 4
0
    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()
Exemplo n.º 5
0
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
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
    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'])
Exemplo n.º 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():
Exemplo n.º 9
0
 def createTrayIcon(self, toolTip='', icon=''):
     return TrayIcon(self.window, toolTip, self.normUrl(icon))
Exemplo n.º 10
0
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)
Exemplo n.º 11
0
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)