image references

Moved image loading from glade to this. Allows consistent use of res directory and removes potential resource conflicts.
This commit is contained in:
markjfine 2021-04-08 08:46:07 -04:00 committed by GitHub
parent 1b56f4324f
commit 88c16364be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -50,6 +50,7 @@ cfgDir = os.path.join(runtimeDir, "cfg") # config file directory
class NRSC5_DUI(object): class NRSC5_DUI(object):
def __init__(self): def __init__(self):
global runtimeDir, resDir
#gobject.threads_init() #gobject.threads_init()
#Gdk.threads_init() #Gdk.threads_init()
self.windowsOS = False # save our determination as a var in case we change how we determine. self.windowsOS = False # save our determination as a var in case we change how we determine.
@ -357,6 +358,7 @@ class NRSC5_DUI(object):
return newArtist return newArtist
def get_cover_image_online(self): def get_cover_image_online(self):
global aasDir
got_cover = False got_cover = False
# only change when there's a new ID3 # only change when there's a new ID3
@ -631,6 +633,7 @@ class NRSC5_DUI(object):
self.get_bookmark_names() self.get_bookmark_names()
def on_btnAbout_activate(self, btn): def on_btnAbout_activate(self, btn):
global resDir
# sets up and displays about dialog # sets up and displays about dialog
if self.about_dialog: if self.about_dialog:
self.about_dialog.present() self.about_dialog.present()
@ -669,7 +672,7 @@ class NRSC5_DUI(object):
about_dialog.set_authors(authors) about_dialog.set_authors(authors)
about_dialog.set_license(license) about_dialog.set_license(license)
#about_dialog.set_logo(Gtk.gdk.pixbuf_new_from_file("logo.png")) #about_dialog.set_logo(Gtk.gdk.pixbuf_new_from_file("logo.png"))
about_dialog.set_logo(GdkPixbuf.Pixbuf.new_from_file("res/logo.png")) about_dialog.set_logo(GdkPixbuf.Pixbuf.new_from_file(os.path.join(resDir,"logo.png")))
# callbacks for destroying the dialog # callbacks for destroying the dialog
def close(dialog, response, editor): def close(dialog, response, editor):
@ -1036,7 +1039,7 @@ class NRSC5_DUI(object):
if (self.mapViewer is not None): self.mapViewer.updated(0) # notify map viwerer if it's open if (self.mapViewer is not None): self.mapViewer.updated(0) # notify map viwerer if it's open
def processWeatherOverlay(self, fileName): def processWeatherOverlay(self, fileName):
global mapDir global aasDir, mapDir
r = re.compile("^[\d]+_DWRO_(.*)_.*_([\d]{4})([\d]{2})([\d]{2})_([\d]{2})([\d]{2})_([0-9A-Fa-f]+)\..*$") # match file name r = re.compile("^[\d]+_DWRO_(.*)_.*_([\d]{4})([\d]{2})([\d]{2})_([\d]{2})([\d]{2})_([0-9A-Fa-f]+)\..*$") # match file name
m = r.match(fileName) m = r.match(fileName)
@ -1211,6 +1214,7 @@ class NRSC5_DUI(object):
return True return True
def mkTimestamp(self, t, size, pos): def mkTimestamp(self, t, size, pos):
global resDir
# create a timestamp image to overlay on the weathermap # create a timestamp image to overlay on the weathermap
x,y = pos x,y = pos
text = "{:04g}-{:02g}-{:02g} {:02g}:{:02g}".format(t.year, t.month, t.day, t.hour, t.minute) # format timestamp text = "{:04g}-{:02g}-{:02g} {:02g}:{:02g}".format(t.year, t.month, t.day, t.hour, t.minute) # format timestamp
@ -1382,11 +1386,13 @@ class NRSC5_DUI(object):
# Windows # Windows
self.mainWindow = builder.get_object("mainWindow") self.mainWindow = builder.get_object("mainWindow")
self.mainWindow.set_icon_from_file(os.path.join(resDir,"logo.png"))
self.mainWindow.connect("delete-event", self.shutdown) self.mainWindow.connect("delete-event", self.shutdown)
self.mainWindow.connect("destroy", Gtk.main_quit) self.mainWindow.connect("destroy", Gtk.main_quit)
self.about_dialog = None self.about_dialog = None
# get controls # get controls
self.image1 = builder.get_object("image1")
self.notebookMain = builder.get_object("notebookMain") self.notebookMain = builder.get_object("notebookMain")
self.alignmentCover = builder.get_object("alignmentCover") self.alignmentCover = builder.get_object("alignmentCover")
self.imgCover = builder.get_object("imgCover") self.imgCover = builder.get_object("imgCover")
@ -1404,6 +1410,7 @@ class NRSC5_DUI(object):
self.btnStop = builder.get_object("btnStop") self.btnStop = builder.get_object("btnStop")
self.btnBookmark = builder.get_object("btnBookmark") self.btnBookmark = builder.get_object("btnBookmark")
self.btnDelete = builder.get_object("btnDelete") self.btnDelete = builder.get_object("btnDelete")
self.btnMap = builder.get_object("btnMap")
self.radMapTraffic = builder.get_object("radMapTraffic") self.radMapTraffic = builder.get_object("radMapTraffic")
self.radMapWeather = builder.get_object("radMapWeather") self.radMapWeather = builder.get_object("radMapWeather")
self.txtTitle = builder.get_object("txtTitle") self.txtTitle = builder.get_object("txtTitle")
@ -1457,6 +1464,12 @@ class NRSC5_DUI(object):
self.lvBookmarks.set_model(self.lsBookmarks) self.lvBookmarks.set_model(self.lsBookmarks)
self.lvBookmarks.get_selection().connect("changed", self.on_lvBookmarks_selection_changed) self.lvBookmarks.get_selection().connect("changed", self.on_lvBookmarks_selection_changed)
self.image1.set_from_pixbuf(GdkPixbuf.Pixbuf.new_from_file(os.path.join(resDir,"weather.png")))
self.imgNoSynch.set_from_pixbuf(GdkPixbuf.Pixbuf.new_from_file(os.path.join(resDir,"nosynch.png")))
self.imgSynch.set_from_pixbuf(GdkPixbuf.Pixbuf.new_from_file(os.path.join(resDir,"synchpilot.png")))
self.imgLostDevice.set_from_pixbuf(GdkPixbuf.Pixbuf.new_from_file(os.path.join(resDir,"lostdevice.png")))
self.btnMap.set_icon_widget(self.image1)
self.mainWindow.connect("check-resize", self.on_cover_resize) self.mainWindow.connect("check-resize", self.on_cover_resize)
@ -1619,6 +1632,7 @@ class NRSC5_DUI(object):
self.debugLog("Error: Unable to create log file", True) self.debugLog("Error: Unable to create log file", True)
def shutdown(self, *args): def shutdown(self, *args):
global cfgDir
# stop map viewer animation if it's running # stop map viewer animation if it's running
if (self.mapViewer is not None and self.mapViewer.animateTimer is not None): if (self.mapViewer is not None and self.mapViewer.animateTimer is not None):
self.mapViewer.animateTimer.cancel() self.mapViewer.animateTimer.cancel()
@ -1689,6 +1703,7 @@ class NRSC5_DUI(object):
class NRSC5_Map(object): class NRSC5_Map(object):
def __init__(self, parent, callback, data): def __init__(self, parent, callback, data):
global resDir
# setup gui # setup gui
builder = Gtk.Builder() builder = Gtk.Builder()
builder.add_from_file(os.path.join(resDir,"mapForm.glade")) builder.add_from_file(os.path.join(resDir,"mapForm.glade"))