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)
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()
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()
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
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)
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'])
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():
def createTrayIcon(self, toolTip='', icon=''): return TrayIcon(self.window, toolTip, self.normUrl(icon))
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)
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)