Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/application.py
diff options
context:
space:
mode:
Diffstat (limited to 'application.py')
-rwxr-xr-xapplication.py111
1 files changed, 54 insertions, 57 deletions
diff --git a/application.py b/application.py
index fe11039..aa4ef72 100755
--- a/application.py
+++ b/application.py
@@ -21,15 +21,16 @@
import os
import logging
logging.basicConfig(level=logging.DEBUG)
-import glib
+from gi.repository import GLib
import info
logger = logging.getLogger(info.lower_name)
appname = info.name
# Some desktops like Gnome3-Shell show the Glib Prgname
-glib.set_prgname(appname)
-glib.set_application_name(appname)
+GLib.set_prgname(appname)
+GLib.set_application_name(appname)
-import gtk
+from gi.repository import Gtk
+from gi.repository import Gdk
from options import Options
from canvas import Canvas
@@ -42,35 +43,22 @@ os.chdir(this_dir)
from gettext import gettext as _
-if 'programabspath' in os.environ['DATADIR']:
- datadir = os.environ['DATADIR'].replace('programabspath',
- this_dir)
-else:
- datadir = os.environ['DATADIR']
-
-if os.environ['ICONDIR'] != 'SYSTEM':
- logger.debug(this_dir)
- icondir = os.environ['ICONDIR'].replace('programabspath',
- this_dir)
- icon_theme = gtk.icon_theme_get_for_screen(gtk.gdk.screen_get_default())
- icon_theme.append_search_path(icondir)
-
-class UnfullscreenButton(gtk.Window):
+class UnfullscreenButton(Gtk.Window):
def __init__(self):
- gtk.Window.__init__(self)
+ Gtk.Window.__init__(self)
self.set_decorated(False)
self.set_resizable(False)
- self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
+ self.set_type_hint(Gdk.WindowTypeHint.DIALOG)
self.set_border_width(0)
self.props.accept_focus = False
#Setup estimate of width, height
- w, h = gtk.icon_size_lookup(gtk.ICON_SIZE_LARGE_TOOLBAR)
+ w, h = Gtk.icon_size_lookup(Gtk.IconSize.LARGE_TOOLBAR)
self._width = w
self._height = h
@@ -79,8 +67,8 @@ class UnfullscreenButton(gtk.Window):
screen = self.get_screen()
screen.connect('size-changed', self._screen_size_changed_cb)
- self._button = gtk.Button(stock=gtk.STOCK_LEAVE_FULLSCREEN)
- self._button.set_relief(gtk.RELIEF_NONE)
+ self._button = Gtk.Button(stock=Gtk.STOCK_LEAVE_FULLSCREEN)
+ self._button.set_relief(Gtk.ReliefStyle.NONE)
self._button.show()
self.add(self._button)
@@ -100,28 +88,30 @@ class UnfullscreenButton(gtk.Window):
self._reposition()
-class Application(gtk.Window):
+class Application(Gtk.Window):
def __init__(self):
- gtk.Window.__init__(self)
+ Gtk.Window.__init__(self)
self.save_type = info.io_mode
self.started = False
self.file_path = None
+ self.filter = Gtk.FileFilter()
if info.file_filter_name:
- self.filter = gtk.FileFilter()
self.filter.set_name(info.file_filter_name)
if info.file_filter_mime:
self.filter.add_mime_type(info.file_filter_mime)
- for i in info.file_filter_patterns:
- self.filter.add_pattern(i)
- self.accel_group = gtk.AccelGroup()
+ if info.file_filter_pattern:
+ self.filter.add_pattern(info.file_filter_pattern)
+ else:
+ self.filter.set_name(_('All'))
+ self.filter.add_pattern('*')
+ self.accel_group = Gtk.AccelGroup()
self.add_accel_group(self.accel_group)
self.set_title(appname)
logger.debug(info.lower_name)
- self.set_icon(gtk.gdk.pixbuf_new_from_file(os.path.join(datadir,
- 'appicon.svg')))
+ self.set_icon_name('gtkslidy')
self.connect('delete-event', lambda w, e: self.stop())
self.maximize()
- self._vbox = gtk.VBox()
+ self._vbox = Gtk.VBox()
self.options = Options(self)
self.options.show()
self._vbox.pack_start(self.options, False, True, 0)
@@ -132,12 +122,12 @@ class Application(gtk.Window):
self._vbox.show()
self._is_fullscreen = False
- self.set_events(gtk.gdk.ALL_EVENTS_MASK)
+ self.set_events(Gdk.EventMask.ALL_EVENTS_MASK)
self.connect('motion-notify-event', self.motion_cb)
- self.canvas.connect('expose-event', self.expose_event)
+ self.canvas.connect('draw', self.expose_event)
- def expose_event(self, widget, event):
- logger.debug('Exposing')
+ def expose_event(self, widget, context):
+ #logger.debug('Exposing')
if not self.started:
if self.file_path != None:
self.canvas.read_file(self.file_path)
@@ -171,17 +161,19 @@ class Application(gtk.Window):
self.options.show()
self._is_fullscreen = False
self._unfullscreen_button.destroy()
- gtk.Window.unfullscreen(self)
+ Gtk.Window.unfullscreen(self)
def export(self, widget, data):
format_name = data[3]
filter_mime = data[2]
mime_type = data[1]
- filechooser = gtk.FileChooserDialog(_("Export..."), self,
- gtk.FILE_CHOOSER_ACTION_SAVE,
- (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
- gtk.STOCK_OK, gtk.RESPONSE_OK))
- file_filter = gtk.FileFilter()
+ filechooser = Gtk.FileChooserDialog(_("Export..."), self,
+ Gtk.FileChooserAction.SAVE,
+ (Gtk.STOCK_CANCEL,
+ Gtk.ResponseType.CANCEL,
+ Gtk.STOCK_OK,
+ Gtk.ResponseType.OK))
+ file_filter = Gtk.FileFilter()
file_filter.set_name(format_name)
file_filter.add_mime_type(filter_mime)
filechooser.add_filter(file_filter)
@@ -200,18 +192,19 @@ class Application(gtk.Window):
if info.io_mode == info.CONFIG:
self.file_path = os.path.join(os.environ['HOME'], '.' + info.lower_name)
self.save()
- gtk.main_quit()
+ Gtk.main_quit()
def open(self):
- filechooser = gtk.FileChooserDialog(_('Open...'), self,
- gtk.FILE_CHOOSER_ACTION_OPEN,
- (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
- gtk.STOCK_OPEN, gtk.RESPONSE_OK))
+ filechooser = Gtk.FileChooserDialog(_('Open...'), self,
+ Gtk.FileChooserAction.OPEN,
+ (Gtk.STOCK_CANCEL,
+ Gtk.ResponseType.CANCEL,
+ Gtk.STOCK_OPEN, Gtk.ResponseType.OK))
filechooser.add_filter(self.filter)
response = filechooser.run()
self.file_path = filechooser.get_filename()
filechooser.destroy()
- if response == gtk.RESPONSE_OK:
+ if response == Gtk.ResponseType.OK:
logger.debug('Read file %s' % self.file_path)
self.canvas.read_file(self.file_path)
self.set_title('%s - %s' % (self.file_path, appname))
@@ -224,23 +217,25 @@ class Application(gtk.Window):
self.canvas.write_file(self.file_path)
def save_as(self):
- filechooser = gtk.FileChooserDialog(_('Save...'), self,
- gtk.FILE_CHOOSER_ACTION_SAVE,
- (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
- gtk.STOCK_OK, gtk.RESPONSE_OK))
+ filechooser = Gtk.FileChooserDialog(_('Save...'), self,
+ Gtk.FileChooserAction.SAVE,
+ (Gtk.STOCK_CANCEL,
+ Gtk.ResponseType.CANCEL,
+ Gtk.STOCK_OK,
+ Gtk.ResponseType.OK))
filechooser.add_filter(self.filter)
filechooser.set_do_overwrite_confirmation(True)
response = filechooser.run()
self.file_path = filechooser.get_filename()
filechooser.destroy()
- if response == gtk.RESPONSE_OK:
+ if response == Gtk.ResponseType.OK:
logger.debug('Save file as %s' % self.file_path)
self.canvas.write_file(self.file_path)
self.set_title('%s - %s' % (self.file_path, appname))
-if __name__ == '__main__':
- logger.debug('Initializing Graph Plotter')
+def start():
+ logger.debug('Initializing %s' % info.name)
import sys
if info.io_mode == info.DOCUMENT:
if len(sys.argv) > 1:
@@ -262,6 +257,8 @@ if __name__ == '__main__':
window = Application()
window.file_path = file_path
window.show()
- gtk.main()
- logger.debug('Closing Graph Plotter')
+ Gtk.main()
+ logger.debug('Closing')
exit()
+
+start()