--- a/controls/IDBrowser.py Wed Mar 05 16:38:58 2025 +0100
+++ b/controls/IDBrowser.py Mon Mar 10 14:50:20 2025 +0100
@@ -8,7 +8,7 @@
import PSKManagement as PSK
from PSKManagement import *
-from dialogs.IDMergeDialog import IDMergeDialog
+from dialogs.MsgConfirmDialog import MsgConfirmDialog class IDBrowserModel(dv.DataViewIndexListModel):
@@ -37,16 +37,6 @@
- def Compare(self, item1, item2, col, ascending):
- if not ascending: # swap sort order?
- item2, item1 = item1, item2
- row1 = self.GetRow(item1)
- row2 = self.GetRow(item2)
- return cmp(int(self.data[row1][col]), int(self.data[row2][col]))
- return cmp(self.data[row1][col], self.data[row2][col])
def DeleteRows(self, rows):
@@ -184,7 +174,7 @@
def ShouldIReplaceCallback(self, existing, replacement):
ID, URI, DESC, LAST = existing
_ID, _URI, _DESC, _LAST = replacement
+ dlg = MsgConfirmDialog( (_("Replace information for ID {ID} ?") + "\n\n" +
--- a/dialogs/IDMergeDialog.py Wed Mar 05 16:38:58 2025 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-# See COPYING file for copyrights details.
-from __future__ import absolute_import
-# class RichMessageDialog is still not available in wxPython 3.0.2
-class IDMergeDialog(wx.Dialog):
- def __init__(self, parent, title, question, optiontext, button_texts):
- wx.Dialog.__init__(self, parent, title=title)
- main_sizer = wx.BoxSizer(wx.VERTICAL)
- message = wx.StaticText(self, label=question)
- main_sizer.AddWindow(message, border=20,
- flag=wx.ALIGN_CENTER_HORIZONTAL | wx.TOP | wx.LEFT | wx.RIGHT)
- self.check = wx.CheckBox(self, label=optiontext)
- main_sizer.AddWindow(self.check, border=20,
- flag=wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL)
- buttons_sizer = wx.BoxSizer(wx.HORIZONTAL)
- for label, wxID in zip(button_texts, [wx.ID_YES, wx.ID_NO, wx.ID_CANCEL]):
- Button = wx.Button(self, label=label)
- def OnButtonFactory(_wxID):
- return lambda event: self.EndModal(_wxID)
- self.Bind(wx.EVT_BUTTON, OnButtonFactory(wxID), Button)
- buttons_sizer.AddWindow(Button)
- main_sizer.AddSizer(buttons_sizer, border=20,
- flag=wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.ALIGN_RIGHT)
- self.SetSizer(main_sizer)
- self.Bind(wx.EVT_CHAR_HOOK, self.OnEscapeKey)
- def OnEscapeKey(self, event):
- keycode = event.GetKeyCode()
- if keycode == wx.WXK_ESCAPE:
- self.EndModal(wx.ID_CANCEL)
- def OptionChecked(self):
- return self.check.GetValue()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dialogs/MsgConfirmDialog.py Mon Mar 10 14:50:20 2025 +0100
@@ -0,0 +1,55 @@
+# See COPYING file for copyrights details. +from __future__ import absolute_import +# class RichMessageDialog is still not available in wxPython 3.0.2 +class MsgConfirmDialog(wx.Dialog): + def __init__(self, parent, title, question, optiontext, button_texts): + wx.Dialog.__init__(self, parent, title=title) + main_sizer = wx.BoxSizer(wx.VERTICAL) + message = wx.StaticText(self, label=question) + main_sizer.AddWindow(message, border=20, + flag=wx.ALIGN_CENTER_HORIZONTAL | wx.TOP | wx.LEFT | wx.RIGHT) + self.check = wx.CheckBox(self, label=optiontext) + main_sizer.Add(self.check, border=20, + flag=wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL) + buttons_sizer = wx.BoxSizer(wx.HORIZONTAL) + for label, wxID in zip(button_texts, [wx.ID_YES, wx.ID_NO, wx.ID_CANCEL]): + Button = wx.Button(self, label=label) + def OnButtonFactory(_wxID): + return lambda event: self.EndModal(_wxID) + self.Bind(wx.EVT_BUTTON, OnButtonFactory(wxID), Button) + buttons_sizer.AddWindow(Button) + main_sizer.AddSizer(buttons_sizer, border=20, + flag=wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.ALIGN_RIGHT) + self.SetSizer(main_sizer) + self.Bind(wx.EVT_CHAR_HOOK, self.OnEscapeKey) + def OnEscapeKey(self, event): + keycode = event.GetKeyCode() + if keycode == wx.WXK_ESCAPE: + self.EndModal(wx.ID_CANCEL) + def OptionChecked(self): + return self.check.GetValue()