Those desktop MIME types were needed only with KDE up to 3.x, as it
used to have its own desktop-based MIME type system. KDE 3 is EOL for
many years now, and there are already XDG MIME types.
These files are the bare XML definitions, and they are automatically
generated by update-mime-database (part of shared-mime-info) on update
(e.g. by distro hooks) or manually. Keeping them in the sources, and
installing them, is definitely not correct, as qelectrotech.xml is
their canonical definition.
Hence, drop them from the sources, together with references to them.
* terminal_strip:
Improve execution time of some actions.
Minor : fix little gui defect
Improve opening time of terminal strip editor window
Display conductor number
This option alows for displaying XRef without contact drawing.
This is useful for spliting one physical part into multiple
logical elements when the slave element is not a switch.
In the diagram editor, when we edit the element information in the side
panel, each time we tip something in the text field the cursor always go
to the end if the "label" information is empty.
Because strange behaviour with Qt::key_space if used for keyPressEvent
and also in shortcut.
Now the shortcut for the rotate action is ctrl + R and key_space to
rotate terminal on the fly before placing it in the drawing.
The rotate action shortcut was 'space' before this commit and so the
keyPressEvent with space key was never propagated because always grabbed
by the rotate action.
Now the shortcut for the rotate action is ctrl + space.
Note that even if rotate exist in element editor, this doesn't work well
because the rotation is not well managed by the save/load from elmt
file.
Since this commit, the terminals can't be moved from the tree widget,
instead we need to use the "move in" widget to move one or several
selected terminals in the table view.
* terminal_strip:
Several real terminal can be added to terminal strip in one shot
Minor : avoid unnecessary multiple function call
The free terminal properties can be edited by batch.
Change made inside the free terminal table can be applied
Hide/show apply/reset buttons according to current displayed widget
Edited data of terminal strip can be applied
Change terminal strip editor class
Add free terminal editor widget
Add toolbar and buttons
Start to move terminal strip editor from QDialog to QMainWindow
Add table widget and item model for free terminal
Revamp code
Improve undo command when add/move/remove terminal in/from/to terminal strip
Revamp code.
Revamp code, make it more simple
Remove the real terminal uuid, and use instead the uuid of the terminal element itself
RealTerminal is created by the TerminalElement itself
Change relationship betwen classes RealTerminal PhysicalTerminald and TerminalElement
QTreeWidget "terminal explorer" : improve item text
minor : remove unused code
TerminalStripTreeDockWidget::on_m_tree_view_currentItemChanged
call setCurrentStrip only when current strip changed, and not every time
when user click in another item on the tree view.
In the QTreeWidget "terminal explorer", when the physical terminal is
composed by several real terminal, the text of the QTreeWidgetItem
display the label of each real terminal.
* terminal_strip:
Fix fail to build from sources
Minor improvement about undo/redo for bridge creation
Minor Fix : undo command for unbridge strip don't work
Minor : add undo text
When a new bridge is created, an undo command is created for that.
When undo the action and redo it, all terminals are bridged to a new
bridge instead of the first one, who continue to exist but is now
empty and 'lost' because he will never be reused.
In addition of that, if a more recent undo command (we call it undo2)
use this bridge,
there is a unknown behavior, because the status of the bridge is not the
same as when the undo2 was created.
* terminal_strip:
TerminalStripBridge color can be edited.
Use QSharedPointer instead of QWeakPointer + remove unused include
Change struct TerminalStripBridge to class
Revamp terminalStrip feature code
Revamp PhysicalTerminal class
Revamp RealTerminal class...... again
Improve bridge edition
Improve code readability
Fix copy constructo warning
Make code less spaghetti
Draw bridge pixmap in the tableview (wip)
REmove unused method : levelCellCount
Remove isXrefCell method...
Add terminal bridge feature
It was removed in b121dad for all platforms.
Only disable appending the suffix for the flatpak platform
by testing for the FLATPAK_ID environment variable.
* master:
BugFix : default element collection path is wrong
snap: Remove framework snap prompt
Update translation and add cn chinese ts files
Danish translation updated
Danish translation
Danish translation
Add new thumbnail element
Flatpak add --share=network
Flatpak : add --socket=cups see :
https://github.com/flathub/org.libreoffice.LibreOffice/issues/90
Graphics item handler is bigger when overred
Add toolbar widget for edit size of handler in diagram editor.
Fix Multiple translation in elements
Fix Multiple translation in elements
Fix segfault.
new Analog-In - Module
cleanup and upgraded elements
modified: lang/qet_nl.qm modified: lang/qet_nl.ts
Add Russian translation, thanks "А.Разживин"
little modification in hungarian language
Fixed typo
Now that https://github.com/snapcore/snapcraft/pull/3596 has been
released in snapcraft 6.0.1, drop the prompt that tells users to
disconnect the old framework snap.
Also drop --enable-experimental-extensions from CI because kde-neon
has been declared stable for core20.
Add a combo box in the tool bar of diagram editor
to quickly change the size of the graphics handler item.
The sarto commit :D
NOTE
only available for diagram editor, element editor will
come later.
Move RealTerminal class in a new file
Move PhysicalTerminal class in a new file.
Remove the use of QWeakPointer and use instead QSharedPointer
in a big part of the revamp.
I don't know what I want, I'm crazy :D.
Next commit will also revamp PhysicalTerminal
and TerminalStripBridge class, code will be more clear and
easy to understand.
* master: (21 commits)
Minor: remove spaces in filenames
minor: remove capital letters
Add new symbols Fibaro, thanks Bertus
Update Hungarian translation, thanks Gubányi
modified: lang/qet_nl.qm modified: lang/qet_nl.ts
Add preprocessor to check Qt version
Update *TS files
Add possibility to user to choose hdpi round policy
Minor improvement for function QETApp::customElementsDir() and QETApp::commonElementsDir()
Add new GCE symbol
Flatpak: update qet_tb_generator to version 1.3.1
Add new symbol nodemcu_v3, thanks Bertus
Add new symbols
ci: Build edge snaps on GitHub & release to store
snap: Port to core20
Flatpak update qet_tb_generator to 1.3.0 version
Fix typo in URL
SNAP change Github source to https://github.com/raulroda/qet_tb_generator-plugin
modified: lang/qet_nl.qm modified: lang/qet_nl.ts
upgraded elements and renamed company
...
the path is set the first time the function is called.
Each other call will immediately return the previously setted path
instead of check again what path to return.
* master: (55 commits)
modified: lang/qet_nl.qm modified: lang/qet_nl.ts
Update *TS files
Fix some misprint
new and upgraded elements
fix typo
add terminals to thermo-couples
upgraded elements and descriptions
upgraded / added elements and descriptions
updated descriptions
more elements and descriptions
fix typos
update element-descriptions
update elements / more element-descriptions
fix designations / update descriptions
fix designations / update descriptions
update element-descriptions
fix typo
update element-descriptions
update / add elements
update element-descriptions
...
When print on printer with low resolution, some lines are not printed
because to thin.
Thin line of elements : set width to 0.5 instead of 0 and set cosmetic
option to false.
Folio border and titleblock : set width to 1 and set cosmetic option to
false.
std::variant/std::visit was only introduced with C++17. Remove its usage.
We don't even need it in these cases since QColor has an implicit constructor accepting Qt::GlobalColor.
Follow-up for b69c7b1027
Compilation using MSVC fails with a C1061 error since MSVC has a hard limit on block nesting.
Refactor the code in question to use map lookups instead.
* Some types of elements need to specialize the setRotation method in order to behave correctly :
- PartTerminal needs to call setOrientation
- PartLine, PartRectangle and PartPolygon need a different rotation center.
* terminal_strip:
User can edit the label of terminal inside the terminal strip editor
Code refactoring
Double click on Xref cell show the terminal in the diagram
terminal function can be edited, edted value is applied to element
Table widget : led and type is editable
Minor gui change
Remove position section of terminalStripModel
If an element are overwrite by a modified element and the terminals of
the modified element are moved, the old element is not loaded because
some terminal are not found.
This commit remove the checking of not found terminal because it's
useless now.
When the model of a qetgraphicstableitem is reseted (for exemple when
the sql query is modified) we check if there is useless tables (table
with 0 row displayed) and remove it.
When a qetgraphicstable is deleted, the next and previous table is not
aware about the deletion and keep a dangled pointer of the deleted table
who cause a segfault.
Like previous commit, in the method loadDiadrams() we call the method
diagramAdded(), in this method we call rebuildDiagramsMap()
updateAllTabsTitle() and these methods operate a loop for each existing
DiagramView.
Now loadDiagrams don't call diagramAdded (which must be used only when
user add a diagram during the use of QElectroTech) but make operations
itself and when all DiagramView are added, call rebuildDiagramsMap()
updateAllTabsTitle() only once.
In the methods readDiagramsXml we call addDiagram for each diagrams
loaded from xml, inside the addDiagram method we call the method
updateDiagramsFolioData() and to finish this method operate a loop for
each existing diagram.
Then when we load a project from xml of
10 folios, loop inside updateDiagramsFolioData() is called 55 time.
50 folios, loop inside updateDiagramsFolioData() is called 1275 time.
100 folios, loop inside updateDiagramsFolioData() is called 5050 time.
Now instead of call addDiagram, we add diagram directly inside the
methods readDiagramsXml and call the method updateDiagramsFolioData()
only once when all diagrams are loaded.
According to Qt creator flame graph, call QSettings take lot of time.
When loading the element collection, each items of the collection get
the current language by calling the function QString
QETApp::langFromSetting().
This function instantiate a QSettings object each time and take a lot of
time.
Now the QSettings is instantiate only at the first call, and the value
is stored in memory, then all other call of the function don't
instantiate a QSettings, but just return the value in memory.
Filter "is empty" don't work for any case :
We must to filter for NULL and empty string then replace the sql
sentence "value IS NULL" by "(value IS NULL OR value = '')"
the filter "is not empty" in nomenclature don't work for every case.
Replace SQL sentence "IS NULL" by "!= ''" because an empty string is not
a NULL value string, but a NULL value string is like an empty string
Fix an unwanted behavior when the properties dock widget is displayed :
1 there is no selection
2 the dock widget width is set to minimum
3 select a part, the dock widget gain new widgets used to edit the
current selected part and the width of the dock grow so the width of the
QGraphicsView is reduced and cause a mouse move event.
When this case occur the part is moved but they should not.
Because on windows MachineInfo take a little time to init, we make it to
a singleton.
MachineInfo is build the first time in main.cpp.
Now all other places where we use MachineInfo (aboutqetdialog and
configdialog) gui don't hang anymore in waiting to MachineInfo finish to
build.
Instead of build machine_info class which take time, only to get the max
width and height of screens, call of methods
Machine_info::i_max_screen_width() and
Machine_info::i_max_screen_height() are now static and compute only
this.
The project properties dialog is now faster because don't wait the end
build of machine_info.
@@ -15,10 +15,10 @@ The main goal of the developers is to provide a libre, easy to use and effective
### Version
### Version
The current stable version is 0.70 and was released on 2019.07.13.
The current stable version is 0.80 and was released on 2021.02.21.
Once it has been officialy released, the stable version is always frozen and is no longer developed.
Once it has been officialy released, the stable version is always frozen and is no longer developed.
New functionalities, bug and issue fixings are further made in the development version (currently 0.8), which can also be [downloaded](https://qelectrotech.org/download.html).
New functionalities, bug and issue fixings are further made in the development version (currently 0.9), which can also be [downloaded](https://qelectrotech.org/download.html).
Users who want to test and take benefits from the last software implementations should use the development version. But... use it at your own risk, since things are sometimes broken or only partialy implemented until they are done!
Users who want to test and take benefits from the last software implementations should use the development version. But... use it at your own risk, since things are sometimes broken or only partialy implemented until they are done!
@@ -33,6 +33,7 @@ Like many other open source softwares, QElectroTech is provided as it is, withou
### Development / technical choices
### Development / technical choices
The development follows the classical way of free and open source software: the source code, written by a community of users, is freely accessible.
The development follows the classical way of free and open source software: the source code, written by a community of users, is freely accessible.
If you are reading this on Github, be aware that this is an hourly synced mirror. Our real code repository [is located here](https://git.tuxfamily.org/qet/qet.git/).
Here are the technical choices made for the software development:
Here are the technical choices made for the software development:
@@ -153,6 +154,52 @@ Alternatively, you can export to vector (svg) or pixel (png, jpg, bmp) format im
* conductors num can be exported to csv file.
* conductors num can be exported to csv file.
****
****
Nomenclature
A new nomenclature tool appears in the menu: project -> Add a nomenclature.
The nomenclature is presented in the form of a configurable table separated into two parts: the display (the form) and the content (the background).
- Display: the size and position of the table, the margins between text and the table cell, the alignment of the text in the cells and the font. The configuration of the table headers and the table itself are separate.
- Content: the information to display in the table and the order in which it should be displayed.
In order to speed up the establishment of a nomenclature, it is possible to export / import the display and content configurations separately. This is the "Configuration" part that can be seen in the photos above.
Behind the scenes, an SQLite database does the work, so setting up the content is nothing more or less than an SQL query created using a dialog (screenshot by right).
The SQL query is configured as follows (from top to bottom in the screenshot):
- “Available information”: the information to display;
- "Filter": filter the information (is not empty, is empty, contains, does not contain, is equal to, is not equal to) only one filter can be applied per information, it is not possible combine several;
- "Type of elements": allows you to filter on what type of element you want to obtain information.
At the bottom, a checkmark "SQL query" allows you to edit a personalized query, if the basic options are not sufficient.
When a nomenclature is too large to be contained in a single folio, it is possible to separate it on several folios, the tables of each folio are then linked together. When creating a nomenclature, this option is activated by default, which has the effect of adding the necessary number of folios, adding a table in each of them and linking them together.
Finally two buttons are available in the property panel:
- "Fit the table to the folio": positions and adjusts the size and determines the number of rows in the table in relation to the folio;
- "Apply geometry to all tables linked to this one": applies the three properties mentioned above to all linked tables in order to save time and maintain aesthetic consistency.
The old summary has been completely removed from the code in order to make room for the new one which is exactly the same as the nomenclature (a large amount of the code is common), with the exception of the SQL query (and its dialog to configure it) which offers specific information for editing a summary.
Export of the internal database
The database used by the nomenclature and the summary can be exported in a “.sqlite” file.
Currently this is irrelevant, as the function was created during development for debugging purposes, we left it.
Note that the database will become increasingly important in the future of Qet.
Export of the wiring list
In order to be able to use the wiring number printers more easily, the names of conductors can be exported in CSV format, the export respects the quantity of conductors in order to print the right quantity of numbers, for example a potential numbered 240 composed of 3 wires will give 6 × 240 (2 numbers per wire × 3 wires) in the CSV.
### Story
### Story
The QElectroTech project was founded in 2007 by two french students, Xavier and Benoit.
The QElectroTech project was founded in 2007 by two french students, Xavier and Benoit.
@@ -173,6 +220,6 @@ If you love QElectroTech, you can help developers to buy new hardware to test
and implement new features. Thanks in advance for your generous donations.
and implement new features. Thanks in advance for your generous donations.
For more information, look at [Paypal](https://www.paypal.com/donate/?token=rqf80cP0Ck1F2jn4Y46G7tIPv9bq7x0crXkwt3GZ6OZYG6ihJYi8lZxmmQ8itsFwMUdd1G&country.x=GB&locale.x=GB)
For more information, look at [Paypal](https://www.paypal.com/donate/?token=rqf80cP0Ck1F2jn4Y46G7tIPv9bq7x0crXkwt3GZ6OZYG6ihJYi8lZxmmQ8itsFwMUdd1G&country.x=GB&locale.x=GB)
or at [leetchi.com](https://www.leetchi.com/c/qelectroteck)
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.