Spaces:
Running
Running
File size: 2,547 Bytes
3bb804c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
#
# This file is part of PyQt6.
#
# This file may be used under the terms of the GNU General Public License
# version 3.0 as published by the Free Software Foundation and appearing in
# the file LICENSE included in the packaging of this file. Please review the
# following information to ensure the GNU General Public License version 3.0
# requirements will be met: http://www.gnu.org/copyleft/gpl.html.
#
# If you do not wish to use this file under the terms of the GPL version 3.0
# then you may purchase a commercial license. For more information contact
# info@riverbankcomputing.com.
#
# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
from ..uic import UIFile
from .source_file import SourceFile
from .translations import Context, Message
from .user import User, UserException
class DesignerSource(SourceFile, User):
""" Encapsulate a Designer source file. """
def __init__(self, **kwargs):
""" Initialise the object. """
super().__init__(**kwargs)
# Read the source file.
self.progress("Reading {0}...".format(self.filename))
try:
ui_file = UIFile(self.filename)
except Exception as e:
raise UserException(str(e))
if ui_file.widget is not None:
context = Context(ui_file.class_name)
# Get each <string> element. Note that we don't support the
# <stringlist> element which seems to provide defaults for the
# attributes of any child <string> elements.
for string_el in ui_file.widget.iter('string'):
if string_el.get('notr', 'false') == 'true':
continue
# This can be None or an empty string depending on the exact
# XML.
if not string_el.text:
continue
message = Message(self.filename, 0, string_el.text,
string_el.get('comment', ''), False)
extra_comment = string_el.get('extracomment')
if extra_comment:
message.embedded_comments.extra_comments.append(
extra_comment)
context.messages.append(message)
if context.messages:
self.contexts.append(context)
|