[Libreoffice-commits] core.git: bin/lint-ui.py
bin/lint-ui.py |8 ++-- 1 file changed, 2 insertions(+), 6 deletions(-) New commits: commit ad388fa57a0bb280c54998b416f6c6f5118ea9dc Author: Caolán McNamara AuthorDate: Tue Dec 22 13:14:42 2020 + Commit: Caolán McNamara CommitDate: Tue Dec 22 21:05:43 2020 +0100 state GtkAlignment is deprecated in lint-ui Change-Id: I138d21ed6fdf4c07e77c3f096cdd7ac94c61c292 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108198 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/bin/lint-ui.py b/bin/lint-ui.py index 111fa3e18b21..7bbf46a2a113 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -139,12 +139,8 @@ def check_frames(root): frames = [element for element in root.findall('.//object') if element.attrib['class'] == 'GtkFrame'] for frame in frames: frame_alignments = frame.findall("./child/object[@class='GtkAlignment']") -assert len(frame_alignments) <= 1 -if len(frame_alignments) < 1: -lint_assert(False, "No GtkAlignment in GtkFrame with id = '" + frame.attrib['id'] + "'", frame) -if len(frame_alignments) == 1: -alignment = frame_alignments[0] -check_alignment_top_padding(alignment) +if len(frame_alignments) > 0: +lint_assert(False, "Deprecated GtkAlignment in GtkFrame with id = '" + frame.attrib['id'] + "'", frame) def check_alignment_top_padding(alignment): top_padding_properties = alignment.findall("./property[@name='top_padding']") ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: bin/lint-ui.py
bin/lint-ui.py |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 99062dba811edbded14c0472b241b1d8c99da712 Author: Caolán McNamara AuthorDate: Tue Dec 22 13:12:30 2020 + Commit: Caolán McNamara CommitDate: Tue Dec 22 21:04:52 2020 +0100 fix lint-ui syntax error Change-Id: I8c94c28363a358e4e1dfe34b827a084c4c0e7a90 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108197 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/bin/lint-ui.py b/bin/lint-ui.py index 84916229c9a0..111fa3e18b21 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -122,7 +122,7 @@ def check_menu_buttons(root): images = button.findall("./property[@name='image']") assert(len(labels) <= 1) if len(labels) < 1 and len(images) < 1: -if sys.argv[1] == "vcl/uiconfig/ui/combobox.ui": and button.attrib['id'] == "overlaybutton": +if sys.argv[1] == "vcl/uiconfig/ui/combobox.ui" and button.attrib['id'] == "overlaybutton": pass else: lint_assert(False, "No label in GtkMenuButton with id = '" + button.attrib['id'] + "'", button) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: bin/lint-ui.py
bin/lint-ui.py | 11 --- 1 file changed, 4 insertions(+), 7 deletions(-) New commits: commit cc1ef0b3dc1449242c23e3c3299c2f7bb803821d Author: Noel AuthorDate: Wed Oct 7 12:47:04 2020 +0200 Commit: Noel Grandin CommitDate: Wed Oct 7 18:42:44 2020 +0200 lint-ui: remove checks for top-level widgets lots of .ui files are loaded, and then widgets extracted by name by the code, so this check does not make sense. Change-Id: Ia8292c5808587d98f0015280ad17b00402c8b96d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104056 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/bin/lint-ui.py b/bin/lint-ui.py index 16feed37e678..0518bd5a7da4 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -59,8 +59,8 @@ def lint_assert(predicate, warning=DEFAULT_WARNING_STR, node=None): def check_top_level_widget(element): # check widget type widget_type = element.attrib['class'] -lint_assert(widget_type in POSSIBLE_TOP_LEVEL_WIDGETS, -"Top level widget should be 'GtkDialog', 'GtkFrame', 'GtkBox', or 'GtkGrid', but is " + widget_type) +if not(widget_type in POSSIBLE_TOP_LEVEL_WIDGETS): +return # check border_width property border_width_properties = element.findall("property[@name='border_width']") @@ -204,15 +204,12 @@ def main(): lint_assert('domain' in root.attrib, "interface needs to specify translation domain") top_level_widgets = [element for element in root.findall('object') if element.attrib['class'] not in IGNORED_TOP_LEVEL_WIDGETS] -lint_assert( len(top_level_widgets) <= 1, "should be only one top-level widget for us to analyze, found " + str(len(top_level_widgets))) -if len(top_level_widgets) > 1: -return # eg. one file contains only a Menu, which we don't check if len(top_level_widgets) == 0: return -top_level_widget = top_level_widgets[0] -check_top_level_widget(top_level_widget) +for top_level_widget in top_level_widgets: +check_top_level_widget(top_level_widget) # TODO - only do this if we have a GtkDialog? # check button box spacing ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: bin/lint-ui.py
bin/lint-ui.py |5 - 1 file changed, 4 insertions(+), 1 deletion(-) New commits: commit b03708252bb50dd2fbca0f82fa170e6d90816b82 Author: Noel AuthorDate: Wed Oct 7 13:36:48 2020 +0200 Commit: Noel Grandin CommitDate: Wed Oct 7 18:43:07 2020 +0200 lint-ui: add exclusion Change-Id: Idae99392593c87c7d3b36e426c8d1363434786be Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104059 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/bin/lint-ui.py b/bin/lint-ui.py index 0518bd5a7da4..84916229c9a0 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -122,7 +122,10 @@ def check_menu_buttons(root): images = button.findall("./property[@name='image']") assert(len(labels) <= 1) if len(labels) < 1 and len(images) < 1: -lint_assert(False, "No label in GtkMenuButton with id = '" + button.attrib['id'] + "'", button) +if sys.argv[1] == "vcl/uiconfig/ui/combobox.ui": and button.attrib['id'] == "overlaybutton": +pass +else: +lint_assert(False, "No label in GtkMenuButton with id = '" + button.attrib['id'] + "'", button) def check_check_buttons(root): radios = [element for element in root.findall('.//object') if element.attrib['class'] == 'GtkCheckButton'] ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: bin/lint-ui.py
bin/lint-ui.py | 36 +--- 1 file changed, 33 insertions(+), 3 deletions(-) New commits: commit c356f669e294ca978e9a41e1e8e7ccbb4e9a1a09 Author: Noel AuthorDate: Wed Oct 7 12:41:09 2020 +0200 Commit: Noel Grandin CommitDate: Wed Oct 7 15:00:23 2020 +0200 lint-ui: add exclusions for remaining capitalisation warnings Change-Id: I572f914fa9a51f992110585ab032fb500f998bc2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104055 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/bin/lint-ui.py b/bin/lint-ui.py index 8860547bef58..16feed37e678 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -28,7 +28,7 @@ ALIGNMENT_TOP_PADDING = '6' MESSAGE_BOX_SPACING = '24' MESSAGE_BORDER_WIDTH = '12' -IGNORED_WORDS = ['the', 'of', 'to', 'for', 'a', 'and', 'as', 'from', 'on', 'into', 'by', 'at', 'or', 'do', 'in', 'when'] +IGNORED_WORDS = ['the', 'of', 'to', 'for', 'a', 'and', 'as', 'from', 'on', 'into', 'by', 'at', 'or', 'do', 'in', 'when', 'no'] # Hook the XML parser and add line number attributes class LineNumberingParser(ET.XMLParser): @@ -164,14 +164,44 @@ def check_title_labels(root): first = True for word in words: if len(word) and word[0].islower() and (word not in IGNORED_WORDS) and not first: -lint_assert(False, "The word '" + word + "' should be capitalized", label) +context = title.attrib['context'] +# exclude a couple of whole sentences +if sys.argv[1] == "cui/uiconfig/ui/optpathspage.ui" and context == "optpathspage|label1": +pass +elif sys.argv[1] == "dbaccess/uiconfig/ui/password.ui" and context == "password|label1": +pass +elif sys.argv[1] == "sc/uiconfig/scalc/ui/datastreams.ui" and context == "datastreams|label4": +pass +elif sys.argv[1] == "sc/uiconfig/scalc/ui/scgeneralpage.ui" and context == "scgeneralpage|label6": +pass +elif sys.argv[1] == "sfx2/uiconfig/ui/documentfontspage.ui" and context == "documentfontspage|fontScriptFrameLabel": +pass +elif sys.argv[1] == "sw/uiconfig/swriter/ui/testmailsettings.ui" and context == "testmailsettings|label8": +pass +elif sys.argv[1] == "sw/uiconfig/swriter/ui/optcomparison.ui" and context == "optcomparison|setting": +pass +elif sys.argv[1] == "sw/uiconfig/swriter/ui/optcompatpage.ui" and context == "optcompatpage|label11": +pass +elif sys.argv[1] == "sw/uiconfig/swriter/ui/optcaptionpage.ui" and context == "optcaptionpage|label1": +pass +elif sys.argv[1] == "sw/uiconfig/swriter/ui/mmresultemaildialog.ui" and context == "mmresultemaildialog|attachft": +pass +elif sys.argv[1] == "sw/uiconfig/swriter/ui/mailmerge.ui" and context == "mailmerge|singledocument": +pass +elif sys.argv[1] == "cui/uiconfig/ui/acorexceptpage.ui" and context == "acorexceptpage|label2": +pass +elif sys.argv[1] == "dbaccess/uiconfig/ui/dbwizmysqlintropage.ui" and context == "dbwizmysqlintropage|label1": +pass +else: +lint_assert(False, "The word '" + word + "' should be capitalized", label) first = False def main(): tree = ET.parse(sys.argv[1], parser=LineNumberingParser()) root = tree.getroot() -lint_assert('domain' in root.attrib, "interface needs to specific translation domain") +if sys.argv[1] != "libreofficekit/qa/gtktiledviewer/gtv.ui": +lint_assert('domain' in root.attrib, "interface needs to specify translation domain") top_level_widgets = [element for element in root.findall('object') if element.attrib['class'] not in IGNORED_TOP_LEVEL_WIDGETS] lint_assert( len(top_level_widgets) <= 1, "should be only one top-level widget for us to analyze, found " + str(len(top_level_widgets))) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: bin/lint-ui.py chart2/uiconfig cui/uiconfig dbaccess/uiconfig extensions/uiconfig sc/uiconfig sd/uiconfig sfx2/uiconfig sw/uiconfig vcl/qa vcl/uiconfig
bin/lint-ui.py |2 +- chart2/uiconfig/ui/sidebarseries.ui|2 +- chart2/uiconfig/ui/tp_3D_SceneIllumination.ui |4 ++-- cui/uiconfig/ui/numberingformatpage.ui |2 +- cui/uiconfig/ui/optfltrembedpage.ui|2 +- cui/uiconfig/ui/optlingupage.ui|4 ++-- cui/uiconfig/ui/optviewpage.ui |4 ++-- cui/uiconfig/ui/paraindentspacing.ui |2 +- dbaccess/uiconfig/ui/userdetailspage.ui|2 +- extensions/uiconfig/sabpilot/ui/gridfieldsselectionpage.ui |2 +- extensions/uiconfig/sabpilot/ui/groupradioselectionpage.ui |2 +- extensions/uiconfig/scanner/ui/sanedialog.ui |2 +- sc/uiconfig/scalc/ui/datafielddialog.ui|2 +- sc/uiconfig/scalc/ui/optcalculatepage.ui |4 ++-- sc/uiconfig/scalc/ui/retypepassdialog.ui |4 ++-- sd/uiconfig/simpress/ui/dockinganimation.ui|2 +- sfx2/uiconfig/ui/documentfontspage.ui |2 +- sfx2/uiconfig/ui/helpindexpage.ui |2 +- sw/uiconfig/swriter/ui/flddbpage.ui|2 +- sw/uiconfig/swriter/ui/mmresultemaildialog.ui |4 ++-- sw/uiconfig/swriter/ui/mmresultprintdialog.ui |4 ++-- sw/uiconfig/swriter/ui/mmresultsavedialog.ui |2 +- sw/uiconfig/swriter/ui/mmsendmails.ui |4 ++-- sw/uiconfig/swriter/ui/optcompatpage.ui|2 +- sw/uiconfig/swriter/ui/optformataidspage.ui|2 +- sw/uiconfig/swriter/ui/viewoptionspage.ui |2 +- vcl/qa/cppunit/builder/demo.ui |6 +++--- vcl/uiconfig/ui/printdialog.ui |2 +- 28 files changed, 38 insertions(+), 38 deletions(-) New commits: commit 8eff280bc08ec3d7b2312ae4ee48df4d7328b7de Author: Noel AuthorDate: Fri Oct 2 12:35:26 2020 +0200 Commit: Noel Grandin CommitDate: Wed Oct 7 08:15:06 2020 +0200 ui files: fix some capitalisation issues Change-Id: Id2efb6e5f1c115cb31a6afd3f988fe156c5ad56e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103829 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/bin/lint-ui.py b/bin/lint-ui.py index 124e1bf58316..8860547bef58 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -163,7 +163,7 @@ def check_title_labels(root): words = re.split(r'[^a-zA-Z0-9:_-]', title.text) first = True for word in words: -if len(word) and word[0].islower() and (word not in IGNORED_WORDS or first): +if len(word) and word[0].islower() and (word not in IGNORED_WORDS) and not first: lint_assert(False, "The word '" + word + "' should be capitalized", label) first = False diff --git a/chart2/uiconfig/ui/sidebarseries.ui b/chart2/uiconfig/ui/sidebarseries.ui index 568569464a9e..8e600fbfab8d 100644 --- a/chart2/uiconfig/ui/sidebarseries.ui +++ b/chart2/uiconfig/ui/sidebarseries.ui @@ -290,7 +290,7 @@ True False -label +Label diff --git a/chart2/uiconfig/ui/tp_3D_SceneIllumination.ui b/chart2/uiconfig/ui/tp_3D_SceneIllumination.ui index 5c7091ff26ee..b9c2e6d7c586 100644 --- a/chart2/uiconfig/ui/tp_3D_SceneIllumination.ui +++ b/chart2/uiconfig/ui/tp_3D_SceneIllumination.ui @@ -308,7 +308,7 @@ True False -_Light source +_Light Source True BTN_LIGHT_1 0 @@ -391,7 +391,7 @@ True False -_Ambient light +_Ambient Light True LB_AMBIENTLIGHT 0 diff --git a/cui/uiconfig/ui/numberingformatpage.ui b/cui/uiconfig/ui/numberingformatpage.ui index f19a0b797835..c92c42f55749 100644 --- a/cui/uiconfig/ui/numberingformatpage.ui +++ b/cui/uiconfig/ui/numberingformatpage.ui @@ -188,7 +188,7 @@ True False -_Format code +_Format Code True formatted diff --git a/cui/uiconfig/ui/optfltrembedpage.ui b/cui/uiconfig/ui/optfltrembedpage.ui index 53740a863a72..50e7ee89d6aa 100644 --- a/cui/uiconfig/ui/optfltrembedpage.ui +++ b/cui/uiconfig/ui/optfltrembedpage.ui @@ -355,7 +355,7 @@ True False -Lock files +Lock Files diff --git a/cui/uiconfig/ui/optlingupage.ui b/cui/uiconfig/ui/optlingupage.ui index e3172620e90c..3f57
[Libreoffice-commits] core.git: bin/lint-ui.py cui/uiconfig dbaccess/uiconfig fpicker/uiconfig sc/uiconfig sfx2/uiconfig sw/uiconfig
bin/lint-ui.py | 13 +++-- cui/uiconfig/ui/certdialog.ui |1 + cui/uiconfig/ui/macroselectordialog.ui |1 + cui/uiconfig/ui/specialcharacters.ui|1 + cui/uiconfig/ui/tsaurldialog.ui |2 ++ dbaccess/uiconfig/ui/collectionviewdialog.ui|3 +++ fpicker/uiconfig/ui/remotefilesdialog.ui|1 + sc/uiconfig/scalc/ui/analysisofvariancedialog.ui|1 + sc/uiconfig/scalc/ui/chisquaretestdialog.ui |1 + sc/uiconfig/scalc/ui/correlationdialog.ui |1 + sc/uiconfig/scalc/ui/covariancedialog.ui|1 + sc/uiconfig/scalc/ui/descriptivestatisticsdialog.ui |1 + sc/uiconfig/scalc/ui/exponentialsmoothingdialog.ui |1 + sc/uiconfig/scalc/ui/fourieranalysisdialog.ui |1 + sc/uiconfig/scalc/ui/movingaveragedialog.ui |1 + sc/uiconfig/scalc/ui/randomnumbergenerator.ui |2 ++ sc/uiconfig/scalc/ui/regressiondialog.ui|1 + sc/uiconfig/scalc/ui/samplingdialog.ui |1 + sc/uiconfig/scalc/ui/ttestdialog.ui |1 + sc/uiconfig/scalc/ui/ztestdialog.ui |1 + sfx2/uiconfig/ui/versioncommentdialog.ui|1 + sw/uiconfig/swriter/ui/bibliographyentry.ui |1 + sw/uiconfig/swriter/ui/indexentry.ui|1 + 23 files changed, 29 insertions(+), 10 deletions(-) New commits: commit 3d056824c687df567c05bf31554fa40ea2baef18 Author: Noel Grandin AuthorDate: Tue Oct 6 16:19:19 2020 +0200 Commit: Noel Grandin CommitDate: Wed Oct 7 08:14:42 2020 +0200 Revert "lint-ui: check that we only have one has_default==True" This reverts commit c9e3952e76a9c06d5a1d2f583829ce9eb5b9df64. Reason for revert: Some of the code manipulates visibility programmatically, and it is quite fine to has more than one has_default if only one of them is visible at a time. Change-Id: Ia4f565c7d21d232d3038c3489952782c8e2a7be5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103977 Tested-by: Noel Grandin Reviewed-by: Noel Grandin diff --git a/bin/lint-ui.py b/bin/lint-ui.py index c3344c3a3b51..124e1bf58316 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -76,23 +76,16 @@ def check_top_level_widget(element): #lint_assert(border_width.text == BORDER_WIDTH, #"Top level 'border_width' property should be " + BORDER_WIDTH, border_width) -# check that -# (*) any widget which has 'has-default' also has 'can-default' -# (*) we have at most one has-default widget -# 'has-default' means that when ENTER is pressed, this widget is triggered, normally the OK button -has_default_count = 0 +# check that any widget which has 'has-default' also has 'can-default' for widget in element.findall('.//object'): if not widget.attrib['class']: continue -child_widget_type = widget.attrib['class'] +widget_type = widget.attrib['class'] has_defaults = widget.findall("./property[@name='has_default']") if len(has_defaults) > 0 and has_defaults[0].text == "True": -has_default_count += 1 can_defaults = widget.findall("./property[@name='can_default']") lint_assert(len(can_defaults)>0 and can_defaults[0].text == "True", -"has_default without can_default in " + child_widget_type + " with id = '" + widget.attrib['id'] + "'", widget) -lint_assert(has_default_count <= 1, -"more than one child with has_default=='True' in top-level widget " + widget_type, element) +"has_default without can_default in " + widget_type + " with id = '" + widget.attrib['id'] + "'", widget) def check_button_box_spacing(element): spacing = element.findall("property[@name='spacing']") diff --git a/cui/uiconfig/ui/certdialog.ui b/cui/uiconfig/ui/certdialog.ui index 0794e6278c4b..39d84c5df216 100644 --- a/cui/uiconfig/ui/certdialog.ui +++ b/cui/uiconfig/ui/certdialog.ui @@ -41,6 +41,7 @@ True True True +True True True diff --git a/cui/uiconfig/ui/macroselectordialog.ui b/cui/uiconfig/ui/macroselectordialog.ui index d9757531fd3e..ea485c283a37 100644 --- a/cui/uiconfig/ui/macroselectordialog.ui +++ b/cui/uiconfig/ui/macroselectordialog.ui @@ -42,6 +42,7 @@ Add True True +True True True diff --git a/cui/uiconfig/ui/specialcharacters.ui b/cui/uiconfig/ui/specialcharacters.ui index 684031a9fe53..9e8e5323828c 100644 --- a/cui/uiconfig/ui/specialcharacters.ui +++ b/cui/uiconfig/ui/specialcharacters.ui @@ -24,6 +24,7 @@ _Insert True True +
[Libreoffice-commits] core.git: bin/lint-ui.py cui/uiconfig dbaccess/uiconfig fpicker/uiconfig sc/uiconfig sfx2/uiconfig sw/uiconfig
bin/lint-ui.py | 13 ++--- cui/uiconfig/ui/certdialog.ui |1 - cui/uiconfig/ui/macroselectordialog.ui |1 - cui/uiconfig/ui/specialcharacters.ui|1 - cui/uiconfig/ui/tsaurldialog.ui |2 -- dbaccess/uiconfig/ui/collectionviewdialog.ui|3 --- fpicker/uiconfig/ui/remotefilesdialog.ui|1 - sc/uiconfig/scalc/ui/analysisofvariancedialog.ui|1 - sc/uiconfig/scalc/ui/chisquaretestdialog.ui |1 - sc/uiconfig/scalc/ui/correlationdialog.ui |1 - sc/uiconfig/scalc/ui/covariancedialog.ui|1 - sc/uiconfig/scalc/ui/descriptivestatisticsdialog.ui |1 - sc/uiconfig/scalc/ui/exponentialsmoothingdialog.ui |1 - sc/uiconfig/scalc/ui/fourieranalysisdialog.ui |1 - sc/uiconfig/scalc/ui/movingaveragedialog.ui |1 - sc/uiconfig/scalc/ui/randomnumbergenerator.ui |2 -- sc/uiconfig/scalc/ui/regressiondialog.ui|1 - sc/uiconfig/scalc/ui/samplingdialog.ui |1 - sc/uiconfig/scalc/ui/ttestdialog.ui |1 - sc/uiconfig/scalc/ui/ztestdialog.ui |1 - sfx2/uiconfig/ui/versioncommentdialog.ui|1 - sw/uiconfig/swriter/ui/bibliographyentry.ui |1 - sw/uiconfig/swriter/ui/indexentry.ui|1 - 23 files changed, 10 insertions(+), 29 deletions(-) New commits: commit c9e3952e76a9c06d5a1d2f583829ce9eb5b9df64 Author: Noel AuthorDate: Mon Oct 5 10:58:01 2020 +0200 Commit: Noel Grandin CommitDate: Mon Oct 5 18:33:18 2020 +0200 lint-ui: check that we only have one has_default==True Change-Id: Ic61e14c3b98a85a5f05b448db9805ac296c041ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103953 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/bin/lint-ui.py b/bin/lint-ui.py index 124e1bf58316..c3344c3a3b51 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -76,16 +76,23 @@ def check_top_level_widget(element): #lint_assert(border_width.text == BORDER_WIDTH, #"Top level 'border_width' property should be " + BORDER_WIDTH, border_width) -# check that any widget which has 'has-default' also has 'can-default' +# check that +# (*) any widget which has 'has-default' also has 'can-default' +# (*) we have at most one has-default widget +# 'has-default' means that when ENTER is pressed, this widget is triggered, normally the OK button +has_default_count = 0 for widget in element.findall('.//object'): if not widget.attrib['class']: continue -widget_type = widget.attrib['class'] +child_widget_type = widget.attrib['class'] has_defaults = widget.findall("./property[@name='has_default']") if len(has_defaults) > 0 and has_defaults[0].text == "True": +has_default_count += 1 can_defaults = widget.findall("./property[@name='can_default']") lint_assert(len(can_defaults)>0 and can_defaults[0].text == "True", -"has_default without can_default in " + widget_type + " with id = '" + widget.attrib['id'] + "'", widget) +"has_default without can_default in " + child_widget_type + " with id = '" + widget.attrib['id'] + "'", widget) +lint_assert(has_default_count <= 1, +"more than one child with has_default=='True' in top-level widget " + widget_type, element) def check_button_box_spacing(element): spacing = element.findall("property[@name='spacing']") diff --git a/cui/uiconfig/ui/certdialog.ui b/cui/uiconfig/ui/certdialog.ui index 39d84c5df216..0794e6278c4b 100644 --- a/cui/uiconfig/ui/certdialog.ui +++ b/cui/uiconfig/ui/certdialog.ui @@ -41,7 +41,6 @@ True True True -True True True diff --git a/cui/uiconfig/ui/macroselectordialog.ui b/cui/uiconfig/ui/macroselectordialog.ui index ea485c283a37..d9757531fd3e 100644 --- a/cui/uiconfig/ui/macroselectordialog.ui +++ b/cui/uiconfig/ui/macroselectordialog.ui @@ -42,7 +42,6 @@ Add True True -True True True diff --git a/cui/uiconfig/ui/specialcharacters.ui b/cui/uiconfig/ui/specialcharacters.ui index 9e8e5323828c..684031a9fe53 100644 --- a/cui/uiconfig/ui/specialcharacters.ui +++ b/cui/uiconfig/ui/specialcharacters.ui @@ -24,7 +24,6 @@ _Insert True True -True True True diff --git a/cui/uiconfig/ui/tsaurldialog.ui b/cui/uiconfig/ui/tsaurldialog.ui index 3d005f3faa22..6bcceb4bfeeb 100644 --- a/cui/uiconfig/ui/tsaurldialog.ui +++ b/cui/uiconfig/ui/tsaurldialog.ui @@ -51
[Libreoffice-commits] core.git: bin/lint-ui.py
bin/lint-ui.py | 45 + 1 file changed, 25 insertions(+), 20 deletions(-) New commits: commit a52246c4079de02f927582b0e8a476e9edafbc99 Author: Noel AuthorDate: Mon Oct 5 11:40:43 2020 +0200 Commit: Noel Grandin CommitDate: Mon Oct 5 16:21:35 2020 +0200 lint-ui: disable some checks which no-one seems to care about at the moment, since there are so many failures. Change-Id: Id5c589dc328b553a9052cdd94a4c8d3d009a0f3e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103954 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/bin/lint-ui.py b/bin/lint-ui.py index a4631e760b4c..124e1bf58316 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -64,17 +64,17 @@ def check_top_level_widget(element): # check border_width property border_width_properties = element.findall("property[@name='border_width']") -# This one fires so often I don't think it's useful +# TODO reenable when we are ready to fix #if len(border_width_properties) < 1: #lint_assert(False, "No border_width set on top level widget. Should probably be " + BORDER_WIDTH) -if len(border_width_properties) == 1: -border_width = border_width_properties[0] -if widget_type == "GtkMessageDialog": -lint_assert(border_width.text == MESSAGE_BORDER_WIDTH, -"Top level 'border_width' property should be " + MESSAGE_BORDER_WIDTH, border_width) -else: -lint_assert(border_width.text == BORDER_WIDTH, -"Top level 'border_width' property should be " + BORDER_WIDTH, border_width) +#if len(border_width_properties) == 1: +#border_width = border_width_properties[0] +#if widget_type == "GtkMessageDialog": +#lint_assert(border_width.text == MESSAGE_BORDER_WIDTH, +#"Top level 'border_width' property should be " + MESSAGE_BORDER_WIDTH, border_width) +#else: +#lint_assert(border_width.text == BORDER_WIDTH, +#"Top level 'border_width' property should be " + BORDER_WIDTH, border_width) # check that any widget which has 'has-default' also has 'can-default' for widget in element.findall('.//object'): @@ -96,7 +96,7 @@ def check_button_box_spacing(element): def check_message_box_spacing(element): spacing = element.findall("property[@name='spacing']") lint_assert(len(spacing) > 0 and spacing[0].text == MESSAGE_BOX_SPACING, -"Button box 'spacing' should be " + MESSAGE_BOX_SPACING, +"Message box 'spacing' should be " + MESSAGE_BOX_SPACING, element) def check_radio_buttons(root): @@ -146,12 +146,13 @@ def check_frames(root): def check_alignment_top_padding(alignment): top_padding_properties = alignment.findall("./property[@name='top_padding']") assert len(top_padding_properties) <= 1 -if len(top_padding_properties) < 1: -lint_assert(False, "No GtkAlignment 'top_padding' set. Should probably be " + ALIGNMENT_TOP_PADDING, alignment) -if len(top_padding_properties) == 1: -top_padding = top_padding_properties[0] -lint_assert(top_padding.text == ALIGNMENT_TOP_PADDING, -"GtkAlignment 'top_padding' should be " + ALIGNMENT_TOP_PADDING, alignment) +# TODO reenable when we are ready to fix +# if len(top_padding_properties) < 1: +# lint_assert(False, "No GtkAlignment 'top_padding' set. Should probably be " + ALIGNMENT_TOP_PADDING, alignment) +#if len(top_padding_properties) == 1: +#top_padding = top_padding_properties[0] +#lint_assert(top_padding.text == ALIGNMENT_TOP_PADDING, +#"GtkAlignment 'top_padding' should be " + ALIGNMENT_TOP_PADDING, alignment) def check_title_labels(root): labels = root.findall(".//child[@type='label']") @@ -188,20 +189,24 @@ def main(): button_box = top_level_widget.findall("./child/object[@id='dialog-vbox1']") if len(button_box) > 0: element = button_box[0] -check_button_box_spacing(element) +# TODO reenable when we are ready to fix +#check_button_box_spacing(element) message_box = top_level_widget.findall("./child/object[@id='messagedialog-vbox']") if len(message_box) > 0: element = message_box[0] -check_message_box_spacing(element) +# TODO reenable when we are ready to fix +#check_message_box_spacing(element) check_frames(root) -check_radio_buttons(root) +# TODO reenable when we are ready to fix +#check_radio_buttons(root) check_menu_buttons(root) -check_check_buttons(root) +# TODO reenable when we are ready to fix +#check_check_buttons(root) check_title_labels(root) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://
[Libreoffice-commits] core.git: bin/lint-ui.py
bin/lint-ui.py |6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) New commits: commit 5451380641a809b845503860f2bd05497b914151 Author: Noel AuthorDate: Mon Oct 5 08:46:04 2020 +0200 Commit: Noel Grandin CommitDate: Mon Oct 5 10:37:10 2020 +0200 lint-ui: fix GtkAdjustment check Change-Id: Ie369cd67f2ac3947c2f4817fb76656216c6df2fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103943 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/bin/lint-ui.py b/bin/lint-ui.py index 26c011f2637a..4f13320a23f3 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -98,11 +98,11 @@ def check_radio_buttons(root): def check_adjustments(root): adjustments = [element for element in root.findall('.//object') if element.attrib['class'] == 'GtkAdjustment'] -for adjusment in adjustments: -uppers = radio.findall("./property[@name='upper']") +for adjustment in adjustments: +uppers = adjustment.findall("./property[@name='upper']") assert len(uppers) <= 1 if len(uppers) < 1: -lint_assert(False, "No upper in GtkAdjustment with id = '" + radio.attrib['id'] + "'", radio) +lint_assert(False, "No upper in GtkAdjustment with id = '" + adjustment.attrib['id'] + "'", adjustment) def check_menu_buttons(root): buttons = [element for element in root.findall('.//object') if element.attrib['class'] == "GtkMenuButton"] ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: bin/lint-ui.py
bin/lint-ui.py |8 1 file changed, 8 insertions(+) New commits: commit 4d19361336b32585d5cd5bd5faccba4467b7d5e8 Author: Noel AuthorDate: Fri Oct 2 12:56:09 2020 +0200 Commit: Noel Grandin CommitDate: Fri Oct 2 19:02:20 2020 +0200 lint-ui: add check for upper in GtkAdjustment Change-Id: I3a9859dbb4dbb0aeb2446176a239843a19d40e1e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103833 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/bin/lint-ui.py b/bin/lint-ui.py index 5dc33eaaec2a..26c011f2637a 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -96,6 +96,14 @@ def check_radio_buttons(root): if len(radio_underlines) < 1: lint_assert(False, "No use_underline in GtkRadioButton with id = '" + radio.attrib['id'] + "'", radio) +def check_adjustments(root): +adjustments = [element for element in root.findall('.//object') if element.attrib['class'] == 'GtkAdjustment'] +for adjusment in adjustments: +uppers = radio.findall("./property[@name='upper']") +assert len(uppers) <= 1 +if len(uppers) < 1: +lint_assert(False, "No upper in GtkAdjustment with id = '" + radio.attrib['id'] + "'", radio) + def check_menu_buttons(root): buttons = [element for element in root.findall('.//object') if element.attrib['class'] == "GtkMenuButton"] for button in buttons: ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: bin/lint-ui.py
bin/lint-ui.py |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) New commits: commit d9c763e5428379166b96a46295a1cb41120e6eea Author: Noel AuthorDate: Fri Oct 2 10:29:17 2020 +0200 Commit: Noel Grandin CommitDate: Fri Oct 2 13:08:30 2020 +0200 lint-ui: add some more valid top-level widgets Change-Id: Ifedeb65c13b5889941da5dbd7fa215f5e380e64e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103819 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/bin/lint-ui.py b/bin/lint-ui.py index fd578f72694d..5dc33eaaec2a 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -18,7 +18,8 @@ import re DEFAULT_WARNING_STR = 'Lint assertion failed' -POSSIBLE_TOP_LEVEL_WIDGETS = ['GtkDialog', 'GtkMessageDialog', 'GtkBox', 'GtkFrame', 'GtkGrid', 'GtkAssistant'] +POSSIBLE_TOP_LEVEL_WIDGETS = ['GtkDialog', 'GtkMessageDialog', 'GtkBox', 'GtkFrame', 'GtkGrid', +'GtkAssistant', 'GtkToolbar', 'GtkNotebook', 'GtkPopover', 'GtkWindow', 'GtkPaned', 'GtkScrolledWindow'] IGNORED_TOP_LEVEL_WIDGETS = ['GtkAdjustment', 'GtkImage', 'GtkListStore', 'GtkSizeGroup', 'GtkMenu', 'GtkTextBuffer', 'GtkTreeStore'] BORDER_WIDTH = '6' BUTTON_BOX_SPACING = '12' ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: bin/lint-ui.py
bin/lint-ui.py | 60 - 1 file changed, 43 insertions(+), 17 deletions(-) New commits: commit 2bfcd0fa8439112c66fd82adc6f860b5d93f789b Author: Noel AuthorDate: Fri Oct 2 10:53:25 2020 +0200 Commit: Noel Grandin CommitDate: Fri Oct 2 12:44:33 2020 +0200 lint-ui: put line numbers in error messages Change-Id: I00c864684fefd1e4afb8370b6255cbe623b63523 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103821 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/bin/lint-ui.py b/bin/lint-ui.py index 9530cb9ac7a8..fd578f72694d 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -10,6 +10,9 @@ # a consistent look for dialogs import sys +# Force python XML parser not faster C accelerators +# because we can't hook the C implementation +sys.modules['_elementtree'] = None import xml.etree.ElementTree as ET import re @@ -26,9 +29,31 @@ MESSAGE_BORDER_WIDTH = '12' IGNORED_WORDS = ['the', 'of', 'to', 'for', 'a', 'and', 'as', 'from', 'on', 'into', 'by', 'at', 'or', 'do', 'in', 'when'] -def lint_assert(predicate, warning=DEFAULT_WARNING_STR): +# Hook the XML parser and add line number attributes +class LineNumberingParser(ET.XMLParser): +def _start(self, *args, **kwargs): +# Here we assume the default XML parser which is expat +# and copy its element position attributes into output Elements +element = super(self.__class__, self)._start(*args, **kwargs) +element._start_line_number = self.parser.CurrentLineNumber +element._start_column_number = self.parser.CurrentColumnNumber +element._start_byte_index = self.parser.CurrentByteIndex +return element + +def _end(self, *args, **kwargs): +element = super(self.__class__, self)._end(*args, **kwargs) +element._end_line_number = self.parser.CurrentLineNumber +element._end_column_number = self.parser.CurrentColumnNumber +element._end_byte_index = self.parser.CurrentByteIndex +return element + + +def lint_assert(predicate, warning=DEFAULT_WARNING_STR, node=None): if not predicate: -print("* " + warning) +if not(node is None): +print(sys.argv[1] + ":" + str(node._start_line_number) + ": " + warning) +else: +print(sys.argv[1] + ": " + warning) def check_top_level_widget(element): # check widget type @@ -45,20 +70,22 @@ def check_top_level_widget(element): border_width = border_width_properties[0] if widget_type == "GtkMessageDialog": lint_assert(border_width.text == MESSAGE_BORDER_WIDTH, -"Top level 'border_width' property should be " + MESSAGE_BORDER_WIDTH) +"Top level 'border_width' property should be " + MESSAGE_BORDER_WIDTH, border_width) else: lint_assert(border_width.text == BORDER_WIDTH, -"Top level 'border_width' property should be " + BORDER_WIDTH) +"Top level 'border_width' property should be " + BORDER_WIDTH, border_width) def check_button_box_spacing(element): spacing = element.findall("property[@name='spacing']") lint_assert(len(spacing) > 0 and spacing[0].text == BUTTON_BOX_SPACING, -"Button box 'spacing' should be " + BUTTON_BOX_SPACING) +"Button box 'spacing' should be " + BUTTON_BOX_SPACING, +element) def check_message_box_spacing(element): spacing = element.findall("property[@name='spacing']") lint_assert(len(spacing) > 0 and spacing[0].text == MESSAGE_BOX_SPACING, -"Button box 'spacing' should be " + MESSAGE_BOX_SPACING) +"Button box 'spacing' should be " + MESSAGE_BOX_SPACING, +element) def check_radio_buttons(root): radios = [element for element in root.findall('.//object') if element.attrib['class'] == 'GtkRadioButton'] @@ -66,7 +93,7 @@ def check_radio_buttons(root): radio_underlines = radio.findall("./property[@name='use_underline']") assert len(radio_underlines) <= 1 if len(radio_underlines) < 1: -lint_assert(False, "No use_underline in GtkRadioButton with id = '" + radio.attrib['id'] + "'") +lint_assert(False, "No use_underline in GtkRadioButton with id = '" + radio.attrib['id'] + "'", radio) def check_menu_buttons(root): buttons = [element for element in root.findall('.//object') if element.attrib['class'] == "GtkMenuButton"] @@ -75,7 +102,7 @@ def check_menu_buttons(root): images = button.findall("./property[@name='image']") assert(len(labels) <= 1) if len(labels) < 1 and len(images) < 1: -lint_assert(False, "No label in GtkMenuButton with id = '" + button.attrib['id'] + "'") +lint_assert(False, "No label in GtkMenuButton with id = '" + button.attrib['id'] + "'", button) def check_c
[Libreoffice-commits] core.git: bin/lint-ui.py chart2/uiconfig cui/uiconfig sc/uiconfig sd/uiconfig sw/uiconfig
bin/lint-ui.py | 11 +++ chart2/uiconfig/ui/tp_3D_SceneIllumination.ui |2 ++ cui/uiconfig/ui/additionsdialog.ui |1 + cui/uiconfig/ui/menuassignpage.ui |2 ++ sc/uiconfig/scalc/ui/scenariodialog.ui |1 + sd/uiconfig/sdraw/ui/copydlg.ui |2 ++ sd/uiconfig/simpress/ui/customanimationeffecttab.ui |1 + sw/uiconfig/swriter/ui/optredlinepage.ui|4 sw/uiconfig/swriter/ui/watermarkdialog.ui |1 + 9 files changed, 25 insertions(+) New commits: commit 2e3afaebd027d0280b871c3515c4999b7912692a Author: Noel AuthorDate: Thu Oct 1 16:26:59 2020 +0200 Commit: Caolán McNamara CommitDate: Fri Oct 2 10:17:40 2020 +0200 lint-ui.py check that GtkMenuButton has a label property Change-Id: Ib1aa8ee050d2425387ddc1080f11f0ddfc2f9236 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103770 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/bin/lint-ui.py b/bin/lint-ui.py index 7148838c1833..9530cb9ac7a8 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -68,6 +68,15 @@ def check_radio_buttons(root): if len(radio_underlines) < 1: lint_assert(False, "No use_underline in GtkRadioButton with id = '" + radio.attrib['id'] + "'") +def check_menu_buttons(root): +buttons = [element for element in root.findall('.//object') if element.attrib['class'] == "GtkMenuButton"] +for button in buttons: +labels = button.findall("./property[@name='label']") +images = button.findall("./property[@name='image']") +assert(len(labels) <= 1) +if len(labels) < 1 and len(images) < 1: +lint_assert(False, "No label in GtkMenuButton with id = '" + button.attrib['id'] + "'") + def check_check_buttons(root): radios = [element for element in root.findall('.//object') if element.attrib['class'] == 'GtkCheckButton'] for radio in radios: @@ -145,6 +154,8 @@ def main(): check_radio_buttons(root) +check_menu_buttons(root) + check_check_buttons(root) check_title_labels(root) diff --git a/chart2/uiconfig/ui/tp_3D_SceneIllumination.ui b/chart2/uiconfig/ui/tp_3D_SceneIllumination.ui index 3f9564e7e33c..5c7091ff26ee 100644 --- a/chart2/uiconfig/ui/tp_3D_SceneIllumination.ui +++ b/chart2/uiconfig/ui/tp_3D_SceneIllumination.ui @@ -253,6 +253,7 @@ 12 + True True False @@ -342,6 +343,7 @@ 12 + True True False diff --git a/cui/uiconfig/ui/additionsdialog.ui b/cui/uiconfig/ui/additionsdialog.ui index 2d9ccc3fb318..3ce21025e5e8 100644 --- a/cui/uiconfig/ui/additionsdialog.ui +++ b/cui/uiconfig/ui/additionsdialog.ui @@ -194,6 +194,7 @@ + True True True diff --git a/cui/uiconfig/ui/menuassignpage.ui b/cui/uiconfig/ui/menuassignpage.ui index 7081489cfe3c..c7ba93e5253b 100644 --- a/cui/uiconfig/ui/menuassignpage.ui +++ b/cui/uiconfig/ui/menuassignpage.ui @@ -498,6 +498,7 @@ + True True end @@ -520,6 +521,7 @@ + True True end diff --git a/sc/uiconfig/scalc/ui/scenariodialog.ui b/sc/uiconfig/scalc/ui/scenariodialog.ui index 02f4e7d8ef4c..e2545950b4ab 100644 --- a/sc/uiconfig/scalc/ui/scenariodialog.ui +++ b/sc/uiconfig/scalc/ui/scenariodialog.ui @@ -302,6 +302,7 @@ + True True False diff --git a/sd/uiconfig/sdraw/ui/copydlg.ui b/sd/uiconfig/sdraw/ui/copydlg.ui index ed202c2aa2e5..b7a710d423a6 100644 --- a/sd/uiconfig/sdraw/ui/copydlg.ui +++ b/sd/uiconfig/sdraw/ui/copydlg.ui @@ -489,6 +489,7 @@ + True True False @@ -511,6 +512,7 @@ + True True False diff --git a/sd/uiconfig/simpress/ui/customanimationeffecttab.ui b/sd/uiconfig/simpr
[Libreoffice-commits] core.git: bin/lint-ui.py
bin/lint-ui.py | 30 ++ 1 file changed, 18 insertions(+), 12 deletions(-) New commits: commit ac6a589e25d014fee3c971ef4588bd64166e6a4b Author: Noel AuthorDate: Thu Oct 1 15:15:37 2020 +0200 Commit: Noel Grandin CommitDate: Thu Oct 1 19:45:36 2020 +0200 improvements to lint-ui script (*) update to python3 (*) add to list of ignored widgets (*) add to list of valid top-level widgets (*) remove border_width check, fires a **lot** (*) improve some checks so they don't generate python exceptions (*) make some checks more informative Change-Id: Ie0b1492eaf752aae8be1ab670bf731015eb454d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103767 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/bin/lint-ui.py b/bin/lint-ui.py index 91c68bb0af60..7148838c1833 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # This file is part of the LibreOffice project. # @@ -15,8 +15,8 @@ import re DEFAULT_WARNING_STR = 'Lint assertion failed' -POSSIBLE_TOP_LEVEL_WIDGETS = ['GtkDialog', 'GtkMessageDialog', 'GtkBox', 'GtkFrame', 'GtkGrid'] -IGNORED_TOP_LEVEL_WIDGETS = ['GtkAdjustment', 'GtkImage', 'GtkListStore', 'GtkSizeGroup', 'GtkMenu', 'GtkTextBuffer'] +POSSIBLE_TOP_LEVEL_WIDGETS = ['GtkDialog', 'GtkMessageDialog', 'GtkBox', 'GtkFrame', 'GtkGrid', 'GtkAssistant'] +IGNORED_TOP_LEVEL_WIDGETS = ['GtkAdjustment', 'GtkImage', 'GtkListStore', 'GtkSizeGroup', 'GtkMenu', 'GtkTextBuffer', 'GtkTreeStore'] BORDER_WIDTH = '6' BUTTON_BOX_SPACING = '12' ALIGNMENT_TOP_PADDING = '6' @@ -34,12 +34,13 @@ def check_top_level_widget(element): # check widget type widget_type = element.attrib['class'] lint_assert(widget_type in POSSIBLE_TOP_LEVEL_WIDGETS, -"Top level widget should be 'GtkDialog', 'GtkFrame', 'GtkBox', or 'GtkGrid'") +"Top level widget should be 'GtkDialog', 'GtkFrame', 'GtkBox', or 'GtkGrid', but is " + widget_type) # check border_width property border_width_properties = element.findall("property[@name='border_width']") -if len(border_width_properties) < 1: -lint_assert(False, "No border_width set on top level widget. Should probably be " + BORDER_WIDTH) +# This one fires so often I don't think it's useful +#if len(border_width_properties) < 1: +#lint_assert(False, "No border_width set on top level widget. Should probably be " + BORDER_WIDTH) if len(border_width_properties) == 1: border_width = border_width_properties[0] if widget_type == "GtkMessageDialog": @@ -50,13 +51,13 @@ def check_top_level_widget(element): "Top level 'border_width' property should be " + BORDER_WIDTH) def check_button_box_spacing(element): -spacing = element.findall("property[@name='spacing']")[0] -lint_assert(spacing.text == BUTTON_BOX_SPACING, +spacing = element.findall("property[@name='spacing']") +lint_assert(len(spacing) > 0 and spacing[0].text == BUTTON_BOX_SPACING, "Button box 'spacing' should be " + BUTTON_BOX_SPACING) def check_message_box_spacing(element): -spacing = element.findall("property[@name='spacing']")[0] -lint_assert(spacing.text == MESSAGE_BOX_SPACING, +spacing = element.findall("property[@name='spacing']") +lint_assert(len(spacing) > 0 and spacing[0].text == MESSAGE_BOX_SPACING, "Button box 'spacing' should be " + MESSAGE_BOX_SPACING) def check_radio_buttons(root): @@ -106,7 +107,7 @@ def check_title_labels(root): words = re.split(r'[^a-zA-Z0-9:_-]', title.text) first = True for word in words: -if word[0].islower() and (word not in IGNORED_WORDS or first): +if len(word) and word[0].islower() and (word not in IGNORED_WORDS or first): lint_assert(False, "The word '" + word + "' should be capitalized") first = False @@ -118,7 +119,12 @@ def main(): lint_assert('domain' in root.attrib, "interface needs to specific translation domain") top_level_widgets = [element for element in root.findall('object') if element.attrib['class'] not in IGNORED_TOP_LEVEL_WIDGETS] -assert len(top_level_widgets) == 1 +lint_assert( len(top_level_widgets) <= 1, "should be only one top-level widget for us to analyze, found " + str(len(top_level_widgets))) +if len(top_level_widgets) > 1: +return +# eg. one file contains only a Menu, which we don't check +if len(top_level_widgets) == 0: +return top_level_widget = top_level_widgets[0] check_top_level_widget(top_level_widget) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: bin/lint-ui.py chart2/uiconfig cui/uiconfig dbaccess/uiconfig desktop/uiconfig extensions/uiconfig filter/uiconfig formula/uiconfig fpicker/uiconfig reportdesign/uiconf
bin/lint-ui.py | 11 chart2/uiconfig/ui/dlg_InsertErrorBars.ui |1 chart2/uiconfig/ui/sidebaraxis.ui |2 + chart2/uiconfig/ui/sidebarelements.ui | 17 + chart2/uiconfig/ui/sidebarseries.ui|4 +++ chart2/uiconfig/ui/tp_ChartType.ui |1 chart2/uiconfig/ui/tp_ErrorBars.ui |1 chart2/uiconfig/ui/tp_RangeChooser.ui |1 cui/uiconfig/ui/asiantypography.ui |3 ++ cui/uiconfig/ui/bitmaptabpage.ui |1 cui/uiconfig/ui/borderpage.ui |2 + cui/uiconfig/ui/colorconfigwin.ui |9 ++ cui/uiconfig/ui/connpooloptions.ui |1 cui/uiconfig/ui/effectspage.ui |5 +++ cui/uiconfig/ui/hangulhanjaoptdialog.ui|2 + cui/uiconfig/ui/hatchpage.ui |1 cui/uiconfig/ui/insertfloatingframe.ui |2 + cui/uiconfig/ui/insertoleobject.ui |2 + cui/uiconfig/ui/numberingoptionspage.ui|1 cui/uiconfig/ui/optadvancedpage.ui |1 cui/uiconfig/ui/optbasicidepage.ui |6 cui/uiconfig/ui/optctlpage.ui |1 cui/uiconfig/ui/optemailpage.ui|1 cui/uiconfig/ui/optgeneralpage.ui |2 + cui/uiconfig/ui/optlanguagespage.ui|1 cui/uiconfig/ui/optuserpage.ui |2 + cui/uiconfig/ui/optviewpage.ui |2 + cui/uiconfig/ui/paraindentspacing.ui |1 cui/uiconfig/ui/password.ui|1 cui/uiconfig/ui/positionpage.ui|3 ++ cui/uiconfig/ui/signatureline.ui |2 + cui/uiconfig/ui/twolinespage.ui|1 cui/uiconfig/ui/zoomdialog.ui |1 dbaccess/uiconfig/ui/connectionpage.ui |1 dbaccess/uiconfig/ui/dbasepage.ui |1 dbaccess/uiconfig/ui/finalpagewizard.ui|1 dbaccess/uiconfig/ui/ldappage.ui |1 dbaccess/uiconfig/ui/mysqlnativepage.ui|1 dbaccess/uiconfig/ui/odbcpage.ui |1 desktop/uiconfig/ui/extensionmanager.ui|3 ++ extensions/uiconfig/sabpilot/ui/datasourcepage.ui |2 + extensions/uiconfig/sbibliography/ui/querydialog.ui|1 extensions/uiconfig/scanner/ui/sanedialog.ui |2 + filter/uiconfig/ui/xmlfiltertabpagetransformation.ui |1 formula/uiconfig/ui/formuladialog.ui |1 fpicker/uiconfig/ui/explorerfiledialog.ui |5 +++ reportdesign/uiconfig/dbreport/ui/pagenumberdialog.ui |1 sc/uiconfig/scalc/ui/checkwarningdialog.ui |1 sc/uiconfig/scalc/ui/databaroptions.ui |1 sc/uiconfig/scalc/ui/datastreams.ui|1 sc/uiconfig/scalc/ui/formulacalculationoptions.ui |1 sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui |6 sc/uiconfig/scalc/ui/printeroptions.ui |1 sc/uiconfig/scalc/ui/recalcquerydialog.ui |1 sc/uiconfig/scalc/ui/regressiondialog.ui |3 ++ sc/uiconfig/scalc/ui/scgeneralpage.ui |1 sc/uiconfig/scalc/ui/sharedwarningdialog.ui|1 sc/uiconfig/scalc/ui/sidebaralignment.ui |3 ++ sc/uiconfig/scalc/ui/sortoptionspage.ui|7 + sc/uiconfig/scalc/ui/textimportoptions.ui |1 sd/uiconfig/sdraw/ui/drawprinteroptions.ui |2 + sd/uiconfig/simpress/ui/customanimationeffecttab.ui|2 + sd/uiconfig/simpress/ui/impressprinteroptions.ui |3 ++ sd/uiconfig/simpress/ui/photoalbum.ui |4 +++ sd/uiconfig/simpress/ui/prntopts.ui|4 +++ sd/uiconfig/simpress/ui/publishingdialog.ui|2 + sd/uiconfig/simpress/ui/sidebarslidebackground.ui |2 + sd/uiconfig/simpress/ui/slidetransitionspanel.ui |2 + sd/uiconfig/simpress/ui/slidetransitionspanelhorizontal.ui |2 + sfx2/uiconfig/ui/checkin.ui|1 sfx2/uiconfig/ui/optprintpage.ui |1 sfx2/uiconfig/ui/templatedlg.ui|1 starmath/uiconfig/
[Libreoffice-commits] core.git: bin/lint-ui.py chart2/uiconfig cui/uiconfig dbaccess/uiconfig extensions/uiconfig sc/uiconfig sd/uiconfig starmath/uiconfig svtools/uiconfig svx/uiconfig sw/uiconfig uu
bin/lint-ui.py | 10 ++ chart2/uiconfig/ui/dlg_InsertErrorBars.ui|1 chart2/uiconfig/ui/sidebarerrorbar.ui|3 + chart2/uiconfig/ui/sidebarseries.ui |2 + chart2/uiconfig/ui/tp_ErrorBars.ui |1 chart2/uiconfig/ui/tp_SeriesToAxis.ui|2 + cui/uiconfig/ui/colorpage.ui |2 + cui/uiconfig/ui/insertfloatingframe.ui |5 +++ cui/uiconfig/ui/insertoleobject.ui |2 + cui/uiconfig/ui/optfltrembedpage.ui |2 + cui/uiconfig/ui/personalization_tab.ui |3 + cui/uiconfig/ui/positionpage.ui |6 +++ cui/uiconfig/ui/zoomdialog.ui|8 + dbaccess/uiconfig/ui/dbwizmysqlintropage.ui |3 + dbaccess/uiconfig/ui/querypropertiesdialog.ui|2 + dbaccess/uiconfig/ui/textpage.ui |2 + extensions/uiconfig/sabpilot/ui/defaultfieldselectionpage.ui |1 extensions/uiconfig/sabpilot/ui/selecttypepage.ui|8 + sc/uiconfig/scalc/ui/correlationdialog.ui|2 + sc/uiconfig/scalc/ui/covariancedialog.ui |2 + sc/uiconfig/scalc/ui/movingaveragedialog.ui |2 + sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui |5 +++ sc/uiconfig/scalc/ui/samplingdialog.ui |2 + sc/uiconfig/scalc/ui/sidebaralignment.ui |3 + sc/uiconfig/scalc/ui/textimportoptions.ui|2 + sd/uiconfig/sdraw/ui/drawprinteroptions.ui |7 sd/uiconfig/simpress/ui/dockinganimation.ui |2 + sd/uiconfig/simpress/ui/impressprinteroptions.ui |7 sd/uiconfig/simpress/ui/prntopts.ui |2 + sd/uiconfig/simpress/ui/publishingdialog.ui |2 + sd/uiconfig/simpress/ui/slidetransitionspanel.ui |2 + sd/uiconfig/simpress/ui/slidetransitionspanelhorizontal.ui |2 + starmath/uiconfig/smath/ui/printeroptions.ui |3 + svtools/uiconfig/ui/graphicexport.ui |8 + svx/uiconfig/ui/compressgraphicdialog.ui |2 + sw/uiconfig/swriter/ui/bibliographyentry.ui |2 + sw/uiconfig/swriter/ui/converttexttable.ui |4 ++ sw/uiconfig/swriter/ui/flddbpage.ui |2 + sw/uiconfig/swriter/ui/footnotepage.ui |2 + sw/uiconfig/swriter/ui/insertbreak.ui|4 ++ sw/uiconfig/swriter/ui/insertfootnote.ui |4 ++ sw/uiconfig/swriter/ui/insertscript.ui |2 + sw/uiconfig/swriter/ui/mailmerge.ui |1 sw/uiconfig/swriter/ui/picturepage.ui|3 + sw/uiconfig/swriter/ui/sidebarwrap.ui|6 +++ sw/uiconfig/swriter/ui/sortdialog.ui | 11 ++- sw/uiconfig/swriter/ui/splittable.ui |4 ++ sw/uiconfig/swriter/ui/textgridpage.ui |3 + sw/uiconfig/swriter/ui/titlepage.ui |4 ++ sw/uiconfig/swriter/ui/tocentriespage.ui |6 +++ sw/uiconfig/swriter/ui/tocindexpage.ui |2 + uui/uiconfig/ui/unknownauthdialog.ui |1 vcl/qa/cppunit/builder/demo.ui | 17 ++- vcl/uiconfig/ui/printdialog.ui |8 + 54 files changed, 202 insertions(+), 2 deletions(-) New commits: commit b31ed9dc1d3a8a93f924d10cd441cf756847cc5f Author: Caolán McNamara Date: Fri Apr 13 16:02:37 2018 +0100 look for radio buttons without underlines Change-Id: I0ed97515a03a5633628a492ec7797fc3ade8a3d8 Reviewed-on: https://gerrit.libreoffice.org/52846 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara diff --git a/bin/lint-ui.py b/bin/lint-ui.py index 34669c85690a..27447be36165 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -59,6 +59,14 @@ def check_message_box_spacing(element): lint_assert(spacing.text == MESSAGE_BOX_SPACING, "Button box 'spacing' should be " + MESSAGE_BOX_SPACING) +def check_radio_buttons(root): +radios = [element for element in root.findall('.//object') if element.attrib['class'] == 'GtkRadioButton'] +for radio in radios: +radio_underlines = radio.findall("./property[@name='use_underline']") +assert len(radio_underlines) <= 1 +if len(radio_underlines) < 1: +lint_assert(False,
[Libreoffice-commits] core.git: bin/lint-ui.py
bin/lint-ui.py |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit f22ad61038d5bf10dbe9f2ce0bdf0ef996be72f6 Author: Samuel Mehrbrodt Date: Wed Sep 20 10:05:17 2017 +0200 lint-ui: Error when label contains a colon Change-Id: I6c71db450fdd41c83e4b4b3e6dff9719a42ef2d8 Reviewed-on: https://gerrit.libreoffice.org/42520 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt diff --git a/bin/lint-ui.py b/bin/lint-ui.py index 88fb2cc460a1..34669c85690a 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -86,7 +86,7 @@ def check_title_labels(root): for title in titles: if title is None: continue -words = re.split(r'[^a-zA-Z0-9_-]', title.text) +words = re.split(r'[^a-zA-Z0-9:_-]', title.text) first = True for word in words: if word[0].islower() and (word not in IGNORED_WORDS or first): ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: bin/lint-ui.py
bin/lint-ui.py | 18 ++ 1 file changed, 18 insertions(+) New commits: commit b4a224d1a91232a16b70be4531a3e6fd2d9bc9ae Author: Rosemary Date: Tue Jun 23 14:34:06 2015 +0530 tdf#80387 Extended lint-ui.py to check for UI title labels Change-Id: I47ab882b0d54711050da4fc8fa288b195949eb60 Reviewed-on: https://gerrit.libreoffice.org/16425 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara diff --git a/bin/lint-ui.py b/bin/lint-ui.py index 54e1d27..2ed80c2 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -11,6 +11,7 @@ import sys import xml.etree.ElementTree as ET +import re DEFAULT_WARNING_STR = 'Lint assertion failed' @@ -23,6 +24,8 @@ ALIGNMENT_TOP_PADDING = '6' MESSAGE_BOX_SPACING = '24' MESSAGE_BORDER_WIDTH = '12' +IGNORED_WORDS = ['the', 'of', 'to', 'for', 'a', 'and', 'as', 'from', 'on', 'into', 'by', 'at', 'or', 'do', 'in', 'when'] + def lint_assert(predicate, warning=DEFAULT_WARNING_STR): if not predicate: print("* " + warning) @@ -77,6 +80,19 @@ def check_alignment_top_padding(alignment): lint_assert(top_padding.text == ALIGNMENT_TOP_PADDING, "GtkAlignment 'top_padding' should be " + ALIGNMENT_TOP_PADDING) +def check_title_labels(root): +labels = root.findall(".//child[@type='label']") +titles = [label.find(".//property[@name='label']") for label in labels] +for title in titles: +if title is None: +continue +words = re.split(r'[^a-zA-Z0-9_-]', title.text) +first = True +for word in words: +if word[0].islower() and (word not in IGNORED_WORDS or first): +lint_assert(False, "The word '" + word + "' should be capitalized") +first = False + def main(): print(" == " + sys.argv[1] + " ==") tree = ET.parse(sys.argv[1]) @@ -102,5 +118,7 @@ def main(): check_frames(root) +check_title_labels(root) + if __name__ == "__main__": main() ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: bin/lint-ui.py
bin/lint-ui.py |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 1b40fa9b6d318debf97e934894c81f2bf99ebe40 Author: Caolán McNamara Date: Mon Aug 12 12:39:41 2013 +0100 drop explicit python3 from shebang line Change-Id: I3b7ca808b8e2ac4723c1f26e6190c4875e88936e diff --git a/bin/lint-ui.py b/bin/lint-ui.py index cef326c..54e1d27 100755 --- a/bin/lint-ui.py +++ b/bin/lint-ui.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python # # This file is part of the LibreOffice project. # ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: bin/lint-ui.py
bin/lint-ui.py | 89 + 1 file changed, 89 insertions(+) New commits: commit 1b5898a3151097e85c768144e69ebb5601d5babb Author: Jack Leigh Date: Fri Mar 15 17:07:02 2013 + first crack at writing a linter for .ui files Change-Id: I51fd2b426e3292647ca618bf867d22275d7ed4fd Reviewed-on: https://gerrit.libreoffice.org/2762 Tested-by: Caolán McNamara Reviewed-by: Caolán McNamara diff --git a/bin/lint-ui.py b/bin/lint-ui.py new file mode 100755 index 000..0c8a9ac --- /dev/null +++ b/bin/lint-ui.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python3 +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, you can obtain one at http://mozilla.org/MPL/2.0/. +# +# Takes a LibreOffice .ui file and provides linting tips for maintaining +# a consistent look for dialogs + +import sys +import xml.etree.ElementTree as ET + +DEFAULT_WARNING_STR = 'Lint assertion failed' + +POSSIBLE_TOP_LEVEL_WIDGETS = ['GtkDialog', 'GtkBox', 'GtkFrame', 'GtkGrid'] +IGNORED_TOP_LEVEL_WIDGETS = ['GtkAdjustment', 'GtkImage', 'GtkListStore', 'GtkSizeGroup', 'GtkMenu', 'GtkTextBuffer'] +BORDER_WIDTH = '6' +BUTTON_BOX_SPACING = '12' +ALIGNMENT_TOP_PADDING = '6' + +def lint_assert(predicate, warning=DEFAULT_WARNING_STR): +if not predicate: +print("* " + warning) + +def check_top_level_widget(element): +# check widget type +widget_type = element.attrib['class'] +lint_assert(widget_type in POSSIBLE_TOP_LEVEL_WIDGETS, +"Top level widget should be 'GtkDialog', 'GtkFrame', 'GtkBox', or 'GtkGrid'") + +# check border_width property +border_width_properties = element.findall("property[@name='border_width']") +if len(border_width_properties) < 1: +lint_assert(False, "No border_width set on top level widget. Should probably be " + BORDER_WIDTH) +if len(border_width_properties) == 1: +border_width = border_width_properties[0] +lint_assert(border_width.text == BORDER_WIDTH, +"Top level 'border_width' property should be " + BORDER_WIDTH) + +def check_button_box_spacing(element): +spacing = element.findall("property[@name='spacing']")[0] +lint_assert(spacing.text == BUTTON_BOX_SPACING, +"Button box 'spacing' should be " + BUTTON_BOX_SPACING) + +def check_frames(root): +frames = [element for element in root.findall('.//object') if element.attrib['class'] == 'GtkFrame'] +for frame in frames: +frame_alignments = frame.findall("./child/object[@class='GtkAlignment']") +assert len(frame_alignments) <= 1 +if len(frame_alignments) < 1: +lint_assert(False, "No GtkAlignment in GtkFrame with id = '" + frame.attrib['id'] + "'") +if len(frame_alignments) == 1: +alignment = frame_alignments[0] +check_alignment_top_padding(alignment) + +def check_alignment_top_padding(alignment): +top_padding_properties = alignment.findall("./property[@name='top_padding']") +assert len(top_padding_properties) <= 1 +if len(top_padding_properties) < 1: +lint_assert(False, "No GtkAlignment 'top_padding' set. Should probably be " + ALIGNMENT_TOP_PADDING) +if len(top_padding_properties) == 1: +top_padding = top_padding_properties[0] +lint_assert(top_padding.text == ALIGNMENT_TOP_PADDING, +"GtkAlignment 'top_padding' should be " + ALIGNMENT_TOP_PADDING) + +def main(): +print(" == " + sys.argv[1] + " ==") +tree = ET.parse(sys.argv[1]) +root = tree.getroot() + +top_level_widgets = [element for element in root.findall('object') if element.attrib['class'] not in IGNORED_TOP_LEVEL_WIDGETS] +assert len(top_level_widgets) == 1 + +top_level_widget = top_level_widgets[0] +check_top_level_widget(top_level_widget) + +# TODO - only do this if we have a GtkDialog? +# check button box spacing +button_box = top_level_widget.findall("child[@id='dialog-vbox1']") +if len(button_box) > 0: +element = button_box[0] +check_button_box_spacing(element) + +check_frames(root) + +if __name__ == "__main__": +main() ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits