IDE: Fix PLCOpenEditor (wxPython4 menus) and drop broken PDF doc support.
--- a/PLCOpenEditor.py Mon Dec 02 11:33:19 2024 +0100
+++ b/PLCOpenEditor.py Tue Dec 03 21:22:45 2024 +0100
@@ -37,7 +37,6 @@
import util.paths as paths
import util.ExceptionHandler
from util.misc import InstallLocalRessources
-from docutil.docpdf import open_pdf
from IDEFrame import IDEFrame, AppendMenu
from IDEFrame import \
TITLE, \
@@ -128,26 +127,17 @@
(ID_PLCOPENEDITORFILEMENUGENERATE, "Build", _('Generate Program'), None)])
def _init_coll_HelpMenu_Items(self, parent):
- AppendMenu(parent, help='', id=wx.ID_HELP,
- kind=wx.ITEM_NORMAL, text=_('PLCOpenEditor') + '\tF1')
- # AppendMenu(parent, help='', id=wx.ID_HELP_CONTENTS,
- # kind=wx.ITEM_NORMAL, text=u'PLCOpen\tF2')
- # AppendMenu(parent, help='', id=wx.ID_HELP_CONTEXT,
- # kind=wx.ITEM_NORMAL, text=u'IEC 61131-3\tF3')
-
def handler(event):
return wx.MessageBox(
version.GetCommunityHelpMsg(),
_('Community support'),
wx.OK | wx.ICON_INFORMATION)
- menu_entry = parent.Append(help='', id=wx.ID_ANY, kind=wx.ITEM_NORMAL, text=_('Community support'))
+ menu_entry = parent.Append(wx.ID_ANY, _('Community support'), '')
self.Bind(wx.EVT_MENU, handler, menu_entry)
- AppendMenu(parent, help='', id=wx.ID_ABOUT,
- kind=wx.ITEM_NORMAL, text=_('About'))
- self.Bind(wx.EVT_MENU, self.OnPLCOpenEditorMenu, id=wx.ID_HELP)
- # self.Bind(wx.EVT_MENU, self.OnPLCOpenMenu, id=wx.ID_HELP_CONTENTS)
+ parent.Append(wx.MenuItem(helpString='', id=wx.ID_ABOUT,
+ kind=wx.ITEM_NORMAL, text=_('About')))
self.Bind(wx.EVT_MENU, self.OnAboutMenu, id=wx.ID_ABOUT)
def __init__(self, parent, fileOpen=None):
@@ -349,12 +339,6 @@
message.ShowModal()
message.Destroy()
- def OnPLCOpenEditorMenu(self, event):
- wx.MessageBox(_("No documentation available.\nComing soon."))
-
- def OnPLCOpenMenu(self, event):
- open_pdf(os.path.join(beremiz_dir, "plcopen", "TC6_XML_V101.pdf"))
-
def OnAboutMenu(self, event):
info = wx.adv.AboutDialogInfo()
info = version.GetAboutDialogInfo(info)
--- a/docutil/__init__.py Mon Dec 02 11:33:19 2024 +0100
+++ b/docutil/__init__.py Tue Dec 03 21:22:45 2024 +0100
@@ -25,5 +25,4 @@
from docutil.dochtml import *
-from docutil.docpdf import *
from docutil.docsvg import *
--- a/docutil/docpdf.py Mon Dec 02 11:33:19 2024 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-# This file is part of Beremiz, a Integrated Development Environment for
-# programming IEC 61131-3 automates supporting plcopen standard and CanFestival.
-#
-# Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD
-#
-# See COPYING file for copyrights details.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-
-
-import os
-import wx
-
-
-readerexepath = None
-
-
-def get_acroversion():
- " Return version of Adobe Acrobat executable or None"
- from six.moves import winreg
- adobesoft = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r'Software\Adobe')
- for index in range(winreg.QueryInfoKey(adobesoft)[0]):
- key = winreg.EnumKey(adobesoft, index)
- if "acrobat" in key.lower():
- acrokey = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, 'Software\\Adobe\\%s' % key)
- for index in range(winreg.QueryInfoKey(acrokey)[0]):
- numver = winreg.EnumKey(acrokey, index)
- try:
- res = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE, 'Software\\Adobe\\%s\\%s\\InstallPath' % (key, numver))
- return res
- except Exception:
- pass
- return None
-
-
-def open_win_pdf(readerexepath, pdffile, pagenum=None):
- if pagenum is not None:
- os.spawnl(os.P_DETACH, readerexepath, "AcroRd32.exe", "/A", "page=%d=OpenActions" % pagenum, '"%s"' % pdffile)
- else:
- os.spawnl(os.P_DETACH, readerexepath, "AcroRd32.exe", '"%s"' % pdffile)
-
-
-def open_lin_pdf(readerexepath, pdffile, pagenum=None):
- if pagenum is None:
- os.system("%s -remote DS301 %s &" % (readerexepath, pdffile))
- else:
- print("Open pdf %s at page %d" % (pdffile, pagenum))
- os.system("%s -remote DS301 %s %d &" % (readerexepath, pdffile, pagenum))
-
-
-def open_pdf(pdffile, pagenum=None):
- if wx.Platform == '__WXMSW__':
- try:
- readerpath = get_acroversion()
- except Exception:
- wx.MessageBox("Acrobat Reader is not found or installed !")
- return None
-
- readerexepath = os.path.join(readerpath, "AcroRd32.exe")
- if os.path.isfile(readerexepath):
- open_win_pdf(readerexepath, pdffile, pagenum)
- else:
- return None
- else:
- readerexepath = os.path.join("/usr/bin", "xpdf")
- if os.path.isfile(readerexepath):
- open_lin_pdf(readerexepath, pdffile, pagenum)
- else:
- wx.MessageBox("xpdf is not found or installed !")
- return None