Skip to content

Commit

Permalink
v0.17.0: Big Overhaul!
Browse files Browse the repository at this point in the history
+ Improved the Patchlog display! (Did you notice? This isn't plain Text anymore but html!)
++ It also detects if there has been an update and  opens itself! (Just like it did for you just moments ago (most likely)!)
+ Improved LaTex:
++ Converter can handle "," and "=" much better and the format of the solutions allows for even more conversion!
++ Improved display format!
++ Drastically reduced the conversion time!
++ Improved the LaTeX Tab and the LaTeX widgets!
+ Notification Overhaul:
++ Notifications now include much more information!
++ Even if a LaTeX conversion goes wrong (which is much less common now) there are less (redundant) notifications!
+ Better Calculator!
++ Fixed "Eval Functions" option not behaving correctly in some cases.
++ The calculator now checks input for diverging sums and products and warns the user!
++ "=" in brackets is now much easier to use!
++ The integral parser can now handle words that include "d" in integrals!
++ Many other parsing improvements!
+ Improved the Patchlog display! (Did you notice? This isn't plain Text anymore but html!)
+ Moved the save location of screenshots etc to the AGeLib Folder!
+ Changed the standard install location to the AGeLib Folder!
+ Colour!
++ The Options menu now allows to create and save custom colour schemes!
++ All plots (including the control-window-plots) now use the custom colours!
+ Improved opening of subwindows
+ Double clicking on items in the histories of tab 1, 2 and 3 now does convenient things!
+ The pair highlighter can now handle multiple lines better: Changing the line now "unhighlights" the previous line!
+ Internal improvements of the HistoryWidget
+ Moved some features to be handled by AGeLib
+ Update: AGeLib v2.0.0: Colours!
++ Added a documentation for most classes/methods/functions. More to come!
++ Reworked the colour System
+++ There are now 3 QPalettes and 3 additional dicts for special colours
++++ The dicts are extendable without risking crashes due to a special class that provides for missing keywords
++++ The dicts are already connected to the matplotlib colour cycler and the AGeLib Notification blinks
+++ Overhauled all functions regarding colours
+++ Added 2 new colour schemes and reworked the old ones
++ Added a standard options menu accessible via alt+O
+++ This window allows the user to change the font and the colour palette
+++ It also allows to create and save new colour schemes
+++ Custom option windows should include the appearance widget which provides the aforementioned features
++ Reworked the Notification Class
+++ Notification are now send automatically without the need to use .send()
++++ This can be suppressed with a variable in the init of the NC object
++ The new function App() now gives easy access to the active QApplication!
++ Added a global screenshot hotkey (F12)
++ AGeLib now has its own folder in the users home directory to save config files and screenshots
+++ Applications using AGeLib are encouraged to use this folder
+++ Smaller Applications using AGeLib are encouraged to use the AGeLib ProgramFiles folder to install themselves
++ Completely overhauled the LaTeX widget
+++ Canvas is only as big as it needs to be
+++ Better multiline handling and prettier formatting
+++ Takes less arguments to make usage simpler (Advanced usage ist still available)
+++ Started work on a new LaTeX widget. Do NOT use it. It is WIP and will change drastically without warning!
++ Improved the Text widgets
+++ Improved arrow key navigation
+++ Made copying text which include linebreaks into LineEdit more secure. It should now be (near) impossible to create linebreaks.
++ AWWF Improvements:
+++ The Top-, Menu- and Statusbar can now be hidden in fullscreen
+++ The new method positionReset can now reset a windows position and size (standard size can be set with the attribute standardSize)
+++ alt+T now tries to keep the window in the foreground
+++ F11 now activates the fullscreen mode
++ MenuAction Improvements:
+++ The init now takes more arguments to make the setup of menuactions much more easy and take less lines
++ There are many more minor improvements/fixes/adjustments
  • Loading branch information
AstusRush committed Apr 21, 2020
1 parent 2848644 commit 0a00ae8
Show file tree
Hide file tree
Showing 23 changed files with 4,986 additions and 1,674 deletions.
2,421 changes: 2,156 additions & 265 deletions AGeLib/AGeColour.py

Large diffs are not rendered by default.

1,786 changes: 1,448 additions & 338 deletions AGeLib/AGeMain.py

Large diffs are not rendered by default.

37 changes: 37 additions & 0 deletions AGeLib/Patchlog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,40 @@ v1.1.0: Import Improvements
+ AWWF now reimplements restoreState to set the frame and Maximize Button icon accordingly
+ AGeColour dark theme now has a colour for links that is more readable

v2.0.0: Colours!
+ Added a documentation for most classes/methods/functions. More to come!
+ Reworked the colour System
++ There are now 3 QPalettes and 3 additional dicts for special colours
+++ The dicts are extendable without risking crashes due to a special class that provides for missing keywords
+++ The dicts are already connected to the matplotlib colour cycler and the AGeLib Notification blinks
++ Overhauled all functions regarding colours
++ Added 2 new colour schemes and reworked the old ones
+ Added a standard options menu accessible via alt+O
++ This window allows the user to change the font and the colour palette
++ It also allows to create and save new colour schemes
++ Custom option windows should include the appearance widget which provides the aforementioned features
+ Reworked the Notification Class
++ Notification are now send automatically without the need to use .send()
+++ This can be suppressed with a variable in the init of the NC object
+ The new function App() now gives easy access to the active QApplication!
+ Added a global screenshot hotkey (F12)
+ AGeLib now has its own folder in the users home directory to save config files and screenshots
++ Applications using AGeLib are encouraged to use this folder
++ Smaller Applications using AGeLib are encouraged to use the AGeLib ProgramFiles folder to install themselves
+ Completely overhauled the LaTeX widget
++ Canvas is only as big as it needs to be
++ Better multiline handling and prettier formatting
++ Takes less arguments to make usage simpler (Advanced usage ist still available)
++ Started work on a new LaTeX widget. Do NOT use it. It is WIP and will change drastically without warning!
+ Improved the Text widgets
++ Improved arrow key navigation
++ Made copying text which include linebreaks into LineEdit more secure. It should now be (near) impossible to create linebreaks.
+ AWWF Improvements:
++ The Top-, Menu- and Statusbar can now be hidden in fullscreen
++ The new method positionReset can now reset a windows position and size (standard size can be set with the attribute standardSize)
++ alt+T now tries to keep the window in the foreground
++ F11 now activates the fullscreen mode
+ MenuAction Improvements:
++ The init now takes more arguments to make the setup of menuactions much more easy and take less lines
+ There are many more minor improvements/fixes/adjustments

16 changes: 14 additions & 2 deletions AGeLib/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
"""
Astus' General Library
Astus' General Library \n
This library provides a prebuild QApplication (with standard options window (alt+O) and basic global shortcuts)
and custom windows (including custom frames and a space efficient notification display) for PyQt5 applications. \n
Use Main_App instead of QtWidgets.QApplication and AWWF instead of QtWidgets.QMainWindow. \n
For communication with the user and exception output use NC.
NC is AGeLib's standard notification class and is especially useful for exception handling as it can create a full bug report. \n
Import the exc submodule to access all exception handling functions. \n \n
In addition to this AGeLib also provides several advanced widgets to provide a sophisticated alterernative to the barebone Qt base widgets. \n
AGeMain.py includes a basic example with a main function and a test window. \n
For a more advanced example please visit https://github.com/AstusRush/AMaDiA .\n
AMaDiA was not only build to fully utilise most to all features of AGeLib but was also the origin of AGeLib: \n
As AMaDiA's basic application grew it became apparent that it should be turned into a separate Library: AGeLib
"""
try:
from AGeLib.AGeMain import *
Expand All @@ -25,5 +36,6 @@
"TableWidget_Delegate",
"TopBar_Widget",
"MenuAction",
"advancedMode"
"advancedMode",
"App"
]
585 changes: 319 additions & 266 deletions AMaDiA.py

Large diffs are not rendered by default.

60 changes: 32 additions & 28 deletions AMaDiA_Files/AMaDiAUI.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,16 +67,19 @@ def setupUi(self, AMaDiA_Main_Window):
self.Tab_2_History.setObjectName("Tab_2_History")
self.layoutWidget = QtWidgets.QWidget(self.Tab_2_UpperSplitter)
self.layoutWidget.setObjectName("layoutWidget")
self.Tab_2_verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget)
self.Tab_2_verticalLayout.setContentsMargins(0, 0, 0, 0)
self.Tab_2_verticalLayout.setSpacing(0)
self.Tab_2_verticalLayout.setObjectName("Tab_2_verticalLayout")
self.Tab_2_Viewer = MplWidget_LaTeX(self.layoutWidget)
self.Tab_2_Viewer.setObjectName("Tab_2_Viewer")
self.Tab_2_verticalLayout.addWidget(self.Tab_2_Viewer)
self.gridLayout_13 = QtWidgets.QGridLayout(self.layoutWidget)
self.gridLayout_13.setContentsMargins(0, 0, 0, 0)
self.gridLayout_13.setSpacing(0)
self.gridLayout_13.setObjectName("gridLayout_13")
self.Tab_2_LaTeXOutput = QtWidgets.QLineEdit(self.layoutWidget)
self.Tab_2_LaTeXOutput.setObjectName("Tab_2_LaTeXOutput")
self.Tab_2_verticalLayout.addWidget(self.Tab_2_LaTeXOutput)
self.gridLayout_13.addWidget(self.Tab_2_LaTeXOutput, 1, 0, 1, 1)
self.Tab_2_LaTeXCopyButton = QtWidgets.QPushButton(self.layoutWidget)
self.Tab_2_LaTeXCopyButton.setObjectName("Tab_2_LaTeXCopyButton")
self.gridLayout_13.addWidget(self.Tab_2_LaTeXCopyButton, 1, 1, 1, 1)
self.Tab_2_Viewer = MplWidget_LaTeX(self.layoutWidget)
self.Tab_2_Viewer.setObjectName("Tab_2_Viewer")
self.gridLayout_13.addWidget(self.Tab_2_Viewer, 0, 0, 1, 2)
self.Tab_2_InputField = AMaDiA_TextEdit(self.Tab_2_LowerSplitter)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
Expand Down Expand Up @@ -174,7 +177,7 @@ def setupUi(self, AMaDiA_Main_Window):
self.Tab_3_1_tab_2_Config_scrollArea.setWidgetResizable(True)
self.Tab_3_1_tab_2_Config_scrollArea.setObjectName("Tab_3_1_tab_2_Config_scrollArea")
self.Tab_3_1_tab_2_Config_scrollAreaWidgetContents = QtWidgets.QWidget()
self.Tab_3_1_tab_2_Config_scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 221, 269))
self.Tab_3_1_tab_2_Config_scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 260, 311))
self.Tab_3_1_tab_2_Config_scrollAreaWidgetContents.setObjectName("Tab_3_1_tab_2_Config_scrollAreaWidgetContents")
self.gridLayout_11 = QtWidgets.QGridLayout(self.Tab_3_1_tab_2_Config_scrollAreaWidgetContents)
self.gridLayout_11.setContentsMargins(4, 4, 4, 4)
Expand Down Expand Up @@ -214,11 +217,11 @@ def setupUi(self, AMaDiA_Main_Window):
self.gridLayout_11.addWidget(self.Tab_3_1_To_Spinbox, 1, 1, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_11.addItem(spacerItem1, 12, 0, 1, 2)
self.Tab_3_1_Steps_comboBox = QtWidgets.QComboBox(self.Tab_3_1_tab_2_Config_scrollAreaWidgetContents)
self.Tab_3_1_Steps_comboBox.setObjectName("Tab_3_1_Steps_comboBox")
self.Tab_3_1_Steps_comboBox.addItem("")
self.Tab_3_1_Steps_comboBox.addItem("")
self.gridLayout_11.addWidget(self.Tab_3_1_Steps_comboBox, 2, 0, 1, 1)
self.Tab_3_1_Points_comboBox = QtWidgets.QComboBox(self.Tab_3_1_tab_2_Config_scrollAreaWidgetContents)
self.Tab_3_1_Points_comboBox.setObjectName("Tab_3_1_Points_comboBox")
self.Tab_3_1_Points_comboBox.addItem("")
self.Tab_3_1_Points_comboBox.addItem("")
self.gridLayout_11.addWidget(self.Tab_3_1_Points_comboBox, 2, 0, 1, 1)
self.Tab_3_1_YLim_max = QtWidgets.QDoubleSpinBox(self.Tab_3_1_tab_2_Config_scrollAreaWidgetContents)
self.Tab_3_1_YLim_max.setDecimals(5)
self.Tab_3_1_YLim_max.setMinimum(-1000000.0)
Expand Down Expand Up @@ -256,12 +259,12 @@ def setupUi(self, AMaDiA_Main_Window):
self.Tab_3_1_Draw_Grid_Checkbox.setChecked(True)
self.Tab_3_1_Draw_Grid_Checkbox.setObjectName("Tab_3_1_Draw_Grid_Checkbox")
self.gridLayout_11.addWidget(self.Tab_3_1_Draw_Grid_Checkbox, 5, 0, 1, 1)
self.Tab_3_1_Steps_Spinbox = QtWidgets.QSpinBox(self.Tab_3_1_tab_2_Config_scrollAreaWidgetContents)
self.Tab_3_1_Steps_Spinbox.setMinimum(1)
self.Tab_3_1_Steps_Spinbox.setMaximum(100000)
self.Tab_3_1_Steps_Spinbox.setProperty("value", 1000)
self.Tab_3_1_Steps_Spinbox.setObjectName("Tab_3_1_Steps_Spinbox")
self.gridLayout_11.addWidget(self.Tab_3_1_Steps_Spinbox, 2, 1, 1, 1)
self.Tab_3_1_Points_Spinbox = QtWidgets.QSpinBox(self.Tab_3_1_tab_2_Config_scrollAreaWidgetContents)
self.Tab_3_1_Points_Spinbox.setMinimum(2)
self.Tab_3_1_Points_Spinbox.setMaximum(100000)
self.Tab_3_1_Points_Spinbox.setProperty("value", 1000)
self.Tab_3_1_Points_Spinbox.setObjectName("Tab_3_1_Points_Spinbox")
self.gridLayout_11.addWidget(self.Tab_3_1_Points_Spinbox, 2, 1, 1, 1)
self.Tab_3_1_Label_to = QtWidgets.QLabel(self.Tab_3_1_tab_2_Config_scrollAreaWidgetContents)
self.Tab_3_1_Label_to.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.Tab_3_1_Label_to.setObjectName("Tab_3_1_Label_to")
Expand Down Expand Up @@ -407,7 +410,7 @@ def setupUi(self, AMaDiA_Main_Window):
self.tabWidget.setCurrentIndex(0)
self.Tab_3_tabWidget.setCurrentIndex(0)
self.Tab_3_1_TabWidget.setCurrentIndex(0)
self.Tab_3_1_Steps_comboBox.setCurrentIndex(0)
self.Tab_3_1_Points_comboBox.setCurrentIndex(0)
self.Tab_4_tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(AMaDiA_Main_Window)
AMaDiA_Main_Window.setTabOrder(self.tabWidget, self.Tab_1_History)
Expand All @@ -422,9 +425,9 @@ def setupUi(self, AMaDiA_Main_Window):
AMaDiA_Main_Window.setTabOrder(self.Tab_3_1_History, self.Tab_3_1_tab_2_Config_scrollArea)
AMaDiA_Main_Window.setTabOrder(self.Tab_3_1_tab_2_Config_scrollArea, self.Tab_3_1_From_Spinbox)
AMaDiA_Main_Window.setTabOrder(self.Tab_3_1_From_Spinbox, self.Tab_3_1_To_Spinbox)
AMaDiA_Main_Window.setTabOrder(self.Tab_3_1_To_Spinbox, self.Tab_3_1_Steps_comboBox)
AMaDiA_Main_Window.setTabOrder(self.Tab_3_1_Steps_comboBox, self.Tab_3_1_Steps_Spinbox)
AMaDiA_Main_Window.setTabOrder(self.Tab_3_1_Steps_Spinbox, self.Tab_3_1_Draw_Grid_Checkbox)
AMaDiA_Main_Window.setTabOrder(self.Tab_3_1_To_Spinbox, self.Tab_3_1_Points_comboBox)
AMaDiA_Main_Window.setTabOrder(self.Tab_3_1_Points_comboBox, self.Tab_3_1_Points_Spinbox)
AMaDiA_Main_Window.setTabOrder(self.Tab_3_1_Points_Spinbox, self.Tab_3_1_Draw_Grid_Checkbox)
AMaDiA_Main_Window.setTabOrder(self.Tab_3_1_Draw_Grid_Checkbox, self.Tab_3_1_Axis_ratio_Checkbox)
AMaDiA_Main_Window.setTabOrder(self.Tab_3_1_Axis_ratio_Checkbox, self.Tab_3_1_XLim_Check)
AMaDiA_Main_Window.setTabOrder(self.Tab_3_1_XLim_Check, self.Tab_3_1_XLim_min)
Expand All @@ -440,7 +443,8 @@ def retranslateUi(self, AMaDiA_Main_Window):
AMaDiA_Main_Window.setWindowTitle(_translate("AMaDiA_Main_Window", "AMaDiA"))
self.Tab_1_InputField.setPlaceholderText(_translate("AMaDiA_Main_Window", "Enter something and hit return to calculate. Use ctrl+return to not solve divisions, roots, etc."))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.Tab_1), _translate("AMaDiA_Main_Window", "Calculator"))
self.Tab_2_LaTeXOutput.setToolTip(_translate("AMaDiA_Main_Window", "Only First line of Input!"))
self.Tab_2_LaTeXOutput.setToolTip(_translate("AMaDiA_Main_Window", "<html><head/><body><p>This is only a preview! All linebreaks are removed!</p><p>Rightklick on the <span style=\" text-decoration: underline;\">formula</span> in the display above or cklick the button to the right to copy the LaTeX!</p></body></html>"))
self.Tab_2_LaTeXCopyButton.setText(_translate("AMaDiA_Main_Window", "Copy LaTeX"))
self.Tab_2_InputField.setPlaceholderText(_translate("AMaDiA_Main_Window", "Add Mathematical Expression to be Converted to LaTeX. Use ctrl+return or the Convert button to display. Please give Feedback if return should convert and shift+return adds a new line instead!"))
self.Tab_2_ConvertButton.setToolTip(_translate("AMaDiA_Main_Window", "<html><head/><body><p>Shortcut: ctrl+return while having the Input field selected</p></body></html>"))
self.Tab_2_ConvertButton.setText(_translate("AMaDiA_Main_Window", "Convert"))
Expand All @@ -454,9 +458,9 @@ def retranslateUi(self, AMaDiA_Main_Window):
self.Tab_3_1_YLim_Check.setToolTip(_translate("AMaDiA_Main_Window", "Limit the part of the y axis that is shown"))
self.Tab_3_1_YLim_Check.setText(_translate("AMaDiA_Main_Window", "Limit Y"))
self.Tab_3_1_Axis_ratio_Checkbox.setText(_translate("AMaDiA_Main_Window", "1:1 axis ratio"))
self.Tab_3_1_Steps_comboBox.setCurrentText(_translate("AMaDiA_Main_Window", "Steps total"))
self.Tab_3_1_Steps_comboBox.setItemText(0, _translate("AMaDiA_Main_Window", "Steps total"))
self.Tab_3_1_Steps_comboBox.setItemText(1, _translate("AMaDiA_Main_Window", "Steps per Unit"))
self.Tab_3_1_Points_comboBox.setCurrentText(_translate("AMaDiA_Main_Window", "Points total"))
self.Tab_3_1_Points_comboBox.setItemText(0, _translate("AMaDiA_Main_Window", "Points total"))
self.Tab_3_1_Points_comboBox.setItemText(1, _translate("AMaDiA_Main_Window", "Points per Unit"))
self.Tab_3_1_Label_from.setText(_translate("AMaDiA_Main_Window", "From"))
self.Tab_3_1_XLim_Check.setToolTip(_translate("AMaDiA_Main_Window", "Limit the part of the x axis that is shown"))
self.Tab_3_1_XLim_Check.setText(_translate("AMaDiA_Main_Window", "Limit X"))
Expand Down
45 changes: 26 additions & 19 deletions AMaDiA_Files/AMaDiAUI.ui
Original file line number Diff line number Diff line change
Expand Up @@ -136,10 +136,7 @@
</property>
</widget>
<widget class="QWidget" name="layoutWidget">
<layout class="QVBoxLayout" name="Tab_2_verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<layout class="QGridLayout" name="gridLayout_13">
<property name="leftMargin">
<number>0</number>
</property>
Expand All @@ -152,16 +149,26 @@
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="MplWidget_LaTeX" name="Tab_2_Viewer" native="true"/>
</item>
<item>
<property name="spacing">
<number>0</number>
</property>
<item row="1" column="0">
<widget class="QLineEdit" name="Tab_2_LaTeXOutput">
<property name="toolTip">
<string>Only First line of Input!</string>
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This is only a preview! All linebreaks are removed!&lt;/p&gt;&lt;p&gt;Rightklick on the &lt;span style=&quot; text-decoration: underline;&quot;&gt;formula&lt;/span&gt; in the display above or cklick the button to the right to copy the LaTeX!&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="Tab_2_LaTeXCopyButton">
<property name="text">
<string>Copy LaTeX</string>
</property>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="MplWidget_LaTeX" name="Tab_2_Viewer" native="true"/>
</item>
</layout>
</widget>
</widget>
Expand Down Expand Up @@ -397,8 +404,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>221</width>
<height>269</height>
<width>260</width>
<height>311</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_11">
Expand Down Expand Up @@ -503,21 +510,21 @@
</spacer>
</item>
<item row="2" column="0">
<widget class="QComboBox" name="Tab_3_1_Steps_comboBox">
<widget class="QComboBox" name="Tab_3_1_Points_comboBox">
<property name="currentText">
<string>Steps total</string>
<string>Points total</string>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<item>
<property name="text">
<string>Steps total</string>
<string>Points total</string>
</property>
</item>
<item>
<property name="text">
<string>Steps per Unit</string>
<string>Points per Unit</string>
</property>
</item>
</widget>
Expand Down Expand Up @@ -608,9 +615,9 @@
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="Tab_3_1_Steps_Spinbox">
<widget class="QSpinBox" name="Tab_3_1_Points_Spinbox">
<property name="minimum">
<number>1</number>
<number>2</number>
</property>
<property name="maximum">
<number>100000</number>
Expand Down Expand Up @@ -1027,8 +1034,8 @@ p, li { white-space: pre-wrap; }
<tabstop>Tab_3_1_tab_2_Config_scrollArea</tabstop>
<tabstop>Tab_3_1_From_Spinbox</tabstop>
<tabstop>Tab_3_1_To_Spinbox</tabstop>
<tabstop>Tab_3_1_Steps_comboBox</tabstop>
<tabstop>Tab_3_1_Steps_Spinbox</tabstop>
<tabstop>Tab_3_1_Points_comboBox</tabstop>
<tabstop>Tab_3_1_Points_Spinbox</tabstop>
<tabstop>Tab_3_1_Draw_Grid_Checkbox</tabstop>
<tabstop>Tab_3_1_Axis_ratio_Checkbox</tabstop>
<tabstop>Tab_3_1_XLim_Check</tabstop>
Expand Down
Loading

0 comments on commit 0a00ae8

Please sign in to comment.