Merge pull request #37 from SamJakob/gui-fixes

Fix theming and confirm loss UI
This commit is contained in:
Cas Cremers 2023-11-09 21:43:51 +01:00 committed by GitHub
commit 2a698faef3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 10 deletions

View File

@ -152,6 +152,12 @@ class EditorStc(Editor):
self.errorstyle = 5
self.control.StyleSetSpec(self.errorstyle, "fore:#FFFF0000,back:#FF0000")
try:
if wx.SystemSettings.GetAppearance().IsDark():
self.control.StyleSetSpec(STC_STYLE_LINENUMBER, "fore:#FFFFFF")
except:
pass
def GetText(self):
return self.control.GetText()

View File

@ -188,7 +188,10 @@ class MainWindow(wx.Frame):
def SetTitle(self):
# MainWindow.SetTitle overrides wx.Frame.SetTitle, so we have to
# call it using super:
super(MainWindow, self).SetTitle('Scyther: %s'%self.filename)
if self.filename:
super(MainWindow, self).SetTitle('Scyther: %s'%self.filename)
else:
super(MainWindow, self).SetTitle('Scyther: Unsaved File...')
# Helper methods:
@ -214,8 +217,7 @@ class MainWindow(wx.Frame):
return userProvidedFilename
# Are we dropping a changed file?
def ConfirmLoss(self,text=None):
def ConfirmLoss(self):
"""
Try to drop the current file. If it was changed, try to save
(as)
@ -226,16 +228,18 @@ class MainWindow(wx.Frame):
if self.editor.GetChanged():
# File changed, we need to confirm this
title = "Unsaved changes"
if text:
title = "%s - " + title
txt = "The protocol file '%s' has been modified.\n\n" % (self.filename)
if self.filename:
title = ("%s - " + title) % (self.filename)
txt = "The protocol file '%s' has been modified.\n\n" % (self.filename)
else:
txt = "You have unsaved changes.\n\n"
txt = txt + "Do you want to"
txt = txt + " save your changes (Yes)"
txt = txt + " or"
txt = txt + " discard them (No)"
txt = txt + "?"
dialog = wx.MessageDialog(self,txt,title,wx.YES_NO | wx.CANCEL | wx.ICON_EXCLAMATION)
result = dialog.ShowModal()
result = dialog.ShowModal()
dialog.Destroy()
if result == wx.ID_NO:
# Drop changes
@ -263,16 +267,17 @@ class MainWindow(wx.Frame):
dlg.Destroy()
def OnExit(self, event):
if self.ConfirmLoss("Exit"):
if self.ConfirmLoss():
self.Close() # Close the main window.
return True
return False
def OnNew(self, event):
if self.ConfirmLoss("Open"):
if self.ConfirmLoss():
self.editor.SetText('')
self.filename = ''
self.editor.SetOpened()
self.SetTitle()
return True
return False
@ -287,7 +292,7 @@ class MainWindow(wx.Frame):
return True
def OnOpen(self, event):
if self.ConfirmLoss("Open"):
if self.ConfirmLoss():
if self.askUserForFilename(style=wx.FD_OPEN,
**self.defaultFileDialogOptions()):
textfile = open(os.path.join(self.dirname, self.filename), 'r')