IDE: Fix PLCOpenEditor (wxPython4 menus) and drop broken PDF doc support.
authorEdouard Tisserant <edouard.tisserant@gmail.com>
Tue, 03 Dec 2024 21:22:45 +0100
changeset 4057 cf42c3dbdd5c
parent 4056 4b2de1a0fbf9
child 4058 5472b88bbc9d
IDE: Fix PLCOpenEditor (wxPython4 menus) and drop broken PDF doc support.
PLCOpenEditor.py
docutil/__init__.py
docutil/docpdf.py
--- 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