projects
/
indicator-chars.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix gi.require_version warning
[indicator-chars.git]
/
indicator-chars.py
diff --git
a/indicator-chars.py
b/indicator-chars.py
index
913437b
..
434fea7
100755
(executable)
--- a/
indicator-chars.py
+++ b/
indicator-chars.py
@@
-1,9
+1,13
@@
-#!/usr/bin/
python
+#!/usr/bin/
env python3
# -*- coding: utf-8 -*-
#
# Very simple chars indicator.
# Author: Tobias Schlitt <toby@php.net>
#
# -*- coding: utf-8 -*-
#
# Very simple chars indicator.
# Author: Tobias Schlitt <toby@php.net>
#
+# Hacked by Cyrille37 on 2016-02-03
+#
+# Ported to Python 3 by Adrian I Lam <adrianiainlam@gmail.com>
+#
# Copyright (c) 2011, Tobias Schlitt
# All rights reserved.
#
# Copyright (c) 2011, Tobias Schlitt
# All rights reserved.
#
@@
-32,14
+36,15
@@
import os
import re
import os
import re
-import gtk
-import gio
+import gi
+gi.require_version('Gdk', '3.0')
+gi.require_version('Gtk', '3.0')
+gi.require_version('AppIndicator3', '0.1')
+from gi.repository import Gdk, Gtk, Gio, AppIndicator3
import signal
import signal
-import subprocess
-import appindicator
APP_NAME = 'indicator-chars'
APP_NAME = 'indicator-chars'
-APP_VERSION = '0.2'
+APP_VERSION = '0.2
_python3
'
class IndicatorChars:
CHARS_PATH = os.path.join(os.getenv('HOME'), '.indicator-chars')
class IndicatorChars:
CHARS_PATH = os.path.join(os.getenv('HOME'), '.indicator-chars')
@@
-49,21
+54,21
@@
class IndicatorChars:
description_pattern = re.compile(r' *(\([^)]+\)) *')
def __init__(self):
description_pattern = re.compile(r' *(\([^)]+\)) *')
def __init__(self):
- self.ind =
appindicator.Indicator
(
- "Chars", os.path.join(self.SCRIPT_DIR, 'light16x16.
pn
g'),
-
appindicator.CATEGORY_
APPLICATION_STATUS)
- self.ind.set_status(
appindicator.STATUS_ACTIVE)
+ self.ind =
AppIndicator3.Indicator.new
(
+ "Chars", os.path.join(self.SCRIPT_DIR, 'light16x16.
sv
g'),
+
AppIndicator3.IndicatorCategory.
APPLICATION_STATUS)
+ self.ind.set_status(
AppIndicator3.IndicatorStatus.ACTIVE)
self.update_menu()
def create_menu_item(self, label):
self.update_menu()
def create_menu_item(self, label):
- item =
g
tk.MenuItem()
+ item =
G
tk.MenuItem()
item.set_label(label)
return item
def on_chars_changed(self, filemonitor, file, other_file, event_type):
item.set_label(label)
return item
def on_chars_changed(self, filemonitor, file, other_file, event_type):
- if event_type ==
gio.FILE_MONITOR_EVENT_
CHANGES_DONE_HINT:
- print
'Characters changed, updating menu...'
+ if event_type ==
Gio.FileMonitorEvent.
CHANGES_DONE_HINT:
+ print
('Characters changed, updating menu...')
self.update_menu()
def update_menu(self, widget = None, data = None):
self.update_menu()
def update_menu(self, widget = None, data = None):
@@
-73,10
+78,10
@@
class IndicatorChars:
charDef = []
# Create menu
charDef = []
# Create menu
- menu =
g
tk.Menu()
+ menu =
G
tk.Menu()
for charLine in charDef:
for charLine in charDef:
- charLine =
unicode
(charLine)
+ charLine =
str
(charLine)
charLine = charLine.strip()
submenu_match = self.submenu_title_pattern.match(charLine)
if submenu_match:
charLine = charLine.strip()
submenu_match = self.submenu_title_pattern.match(charLine)
if submenu_match:
@@
-87,7
+92,7
@@
class IndicatorChars:
submenu_title = ''.join(
self.description_pattern.split(charLine)[::2])
parentItem = self.create_menu_item(submenu_title)
submenu_title = ''.join(
self.description_pattern.split(charLine)[::2])
parentItem = self.create_menu_item(submenu_title)
- subMenu =
g
tk.Menu()
+ subMenu =
G
tk.Menu()
while charLine:
char = charLine[0]
charLine = charLine[1:]
while charLine:
char = charLine[0]
charLine = charLine[1:]
@@
-104,7
+109,7
@@
class IndicatorChars:
parentItem.set_submenu(subMenu)
menu.append(parentItem)
parentItem.set_submenu(subMenu)
menu.append(parentItem)
- menu.append(
g
tk.SeparatorMenuItem())
+ menu.append(
G
tk.SeparatorMenuItem())
quit_item = self.create_menu_item('Quit')
quit_item.connect("activate", self.on_quit)
menu.append(quit_item)
quit_item = self.create_menu_item('Quit')
quit_item.connect("activate", self.on_quit)
menu.append(quit_item)
@@
-114,24
+119,26
@@
class IndicatorChars:
menu.show_all()
def on_char_click(self, widget, char):
menu.show_all()
def on_char_click(self, widget, char):
- cb = gtk.Clipboard(selection="PRIMARY")
- cb.set_text(char)
+ cb = Gtk.Clipboard.get(Gdk.Atom.intern("PRIMARY", False))
+ cb.set_text(char, -1)
+ cb = Gtk.Clipboard.get(Gdk.Atom.intern("CLIPBOARD", False))
+ cb.set_text(char, -1)
def on_quit(self, widget):
def on_quit(self, widget):
-
g
tk.main_quit()
+
G
tk.main_quit()
if __name__ == "__main__":
# Catch CTRL-C
if __name__ == "__main__":
# Catch CTRL-C
- signal.signal(signal.SIGINT, lambda signal, frame:
g
tk.main_quit())
+ signal.signal(signal.SIGINT, lambda signal, frame:
G
tk.main_quit())
# Run the indicator
i = IndicatorChars()
# Monitor bookmarks changes
# Run the indicator
i = IndicatorChars()
# Monitor bookmarks changes
- file =
gio.File
(i.CHARS_PATH)
- monitor = file.monitor_file()
+ file =
Gio.File.new_for_path
(i.CHARS_PATH)
+ monitor = file.monitor_file(
Gio.FileMonitorFlags.NONE, None
)
monitor.connect("changed", i.on_chars_changed)
# Main gtk loop
monitor.connect("changed", i.on_chars_changed)
# Main gtk loop
-
g
tk.main()
+
G
tk.main()