Ok, so you don't have any problem with different looking fonts on different systems, Achim?

I tried PDF-Export with osifont used as Element-Text. (You might recognize, Achim)
To me it looks like it works perfectly:
osifont is not installed on the system – just used from within QET.

177

(16 replies, posted in Scripts)

That is not yet implemented.

You can overwrite entries with empty strings or you can edit the corresponding json file directly with a text editor.
The json-files are located in configuration-dir.

178

(16 replies, posted in Scripts)

It does not help, posting the same question in more than one thread!
Deleted the other post!

elevatormind wrote:

In my "liberation-fonts" branch, the liberation fonts is directly usable in QET

That's what I mean! Top!

elevatormind wrote:

I haven't looked at it, but the font should be able to be embedded when you export to PDF for example.

That would of course be necessary! Especially, when we speak of using osi-font!

elevatormind wrote:

It should definitely be the default font in QET as you say though, otherwise people will probably not use it.

Fully agree!

@elevatormind:

elevatormind wrote:

I'll try to work on a replacement for KAutoSaveFile (...)

Just noticed this warning:

QMetaObject::connectSlotsByName: No matching signal for on_m_color_kpb_changed(QColor)

and when searching for the slot/signal it returns this file:

sources/editor/ui/dynamictextfieldeditor.cpp

with this function:

void DynamicTextFieldEditor::setupWidget()
{
    m_color_kpb = new ColorButton(this);
    m_color_kpb->setObjectName(QString::fromUtf8("m_color_kpb"));

    connect(m_color_kpb, &ColorButton::changed,
            this, &DynamicTextFieldEditor::on_m_color_kpb_changed);

    ui->m_main_grid_layout->addWidget(m_color_kpb, 6, 1, 1, 2);
}

@elevatormind
No matter which font(s) we decide for:
Simply supplying fonts is not enough!
Is the font then directly usable in QET or even default-font for QET on all systems, or does it have to be installed to the system first?
That would definitely be an additional hurdle for users, which we should spare them!
And the supporters here in the forum: Fonts and font-sizes are regularly cause of problem!

@Achim:
Is the need for an osi-font for electrical schematics a requirement from customers?
As far as I know it the mechanics do have more restrictive requirements on font-selection!
Looking at KiCad for example: They use a monospaced font for schematics and Sans Serif for Titleblock.

Do you have information, which fonts are really free to use and re-distributable by an Open-Source-Project, elevatormind?

As we do not speak of DTP or Text-Processing – we still speak of a schematic editor!
I would see a maximum (!) of three fonts: Sans Serif (as default), Monospace and Serif.

Just found these:
https://github.com/liberationfonts/liberation-fonts

Das große Thema "Klemmleisten-Manager", das Joshua in die nächste stabile Version 0.10 reinbringen möchte, ist ja auch im Menüeintrag noch als "DEV" gekennzeichnet und entsprechend nicht fertig! Die solltest Du in Deinen Projekten nicht verwendet haben! Die werden bestimmt nicht unterstützt von einer älteren Version!
Das Python-Klemmleisten-Plugin ist davon aber nicht betroffen. Das sollte gehen.

Du kannst aber sicher sein, daß an Versionen < 0.10 nicht mehr entwickelt wird!
Aussagekräftige Fehlermeldungen sind zwar immer schön zu haben, aber ...


Wie heißt es immer so schön bei Open-Source-Projekten: Keine Garantie in jedwede Richtung!

@RedBaron:
Depends on what you modify:
Read the linked thread!
Generally speaking: yes.
But be sure to have a backup!

tigerbeard wrote:

I sehe gerade ich habe die 0.8.0

Update auf 0.10-dev dringend empfohlen!

tigerbeard wrote:

Und im Forum habe ich gefunden das jemand M und F eingebaut hat.

Der "Jemand", der das in den Element-Editor eingebaut hat, antwortet Dir gerade!  nomicons/smile

tigerbeard wrote:

Hm. Den den Use Case innerhalb des Baumes hatte ich noch nicht. Ich wolle den Beispielstecker aus dem Zip als libary Element von der Platte importieren. Das war ein m.W. QET format.

Den Use-Case hast Du gerade selber geschrieben:
Wenn Du ein QET-Projekt öffnest, baut sich im Element-Baum eine weitere Sammlung "Importierte Elemente" auf.
Da sind die Elemente des Projekts aufgelistet. Die kannst Du auch in deine Firmen- oder Benutzer-Sammlung ziehen!

Im Element-Eitor gibt es die Menüpunkte "Aus Datei öffnen" und "speichern unter"...
Alternativ kopierst Du die *.elmt - Datei per Datei-Browser in Deine Benutzersammlung.

Spontan fällt mir keine Inkompatibilität ein...!
Ein Backup der Projekt-Datei hast Du doch, oder?!?  nomicons/wink

tigerbeard wrote:

Es gibt doch bestimmt einen Weg Elemente zu spieglen?

Spiegeln geht im Moment nur im Element-Editor mit dem Shortcut <M>
Du brauchst also mehrere Elemente.

English is not my native language, too, but French would be even worse!

Ich würde auch lieber auf Deutsch antworten, aber das verstehen hier auch nur wenige...

So we stick to English! (I guess, you know how to use online-translators?)

As I wrote in the first few words in first answer:

plc-user wrote:

It is not QElectroTech that is the problem,...

To be neutral:
It's the Operating-System!
The one you use, changes standard-fonts from version to version, from country to country, from...!

Install the same font you used on the other system and keep your fingers crossed, that this is the solution!

On the other hand, you can use a text-editor to change the font and font-size in the qet-file as the other user suggested in the thread I linked above.

Wenn Du gerade frisch mit QET angefangen bist, empfehle ich auf jeden Fall die 0.10-dev-Version!

Die 0.9 ist inzwischen ein wenig ...
In der 0.10-dev ist seit kurzem die Rotier-Funktion im Element-Editor so überarbeitet, dass alle Teil-Elemente um den Nullpunkt rotiert bzw. gespiegelt werden!
Also kein Kleinholz mehr beim Rotieren!
Ein Grund mehr, Elemente rund um den Nullpunkt zu konstruieren.
(Hilft auch später beim Platzieren im Schaltplan!)

Elemente kannst Du im Element-Baum per Drag-and-Drop zwischen den Sammlungen hin- und her-kopieren!
Die Elemente in der Firmen- oder Benutzer-Sammlung kannst Du per Doppelklick editieren.

Von wo willst Du Elemente importieren?
Ein Import aus anderen Formaten in den Element-Editor ist zur Zeit nur für DXF vorgesehen.

So in der Form nicht.
Du kannst aber auch im Schaltplaneditor Rechtecke in verschiedenen Farben und mit verschiedenen Füllmustern einfügen, um sowas zu kennzeichnen.

This must be the 0.10-dev - version in which we have introduced a new function so that dynamic texts of the elements are not accidentally moved when the element as a whole shall be moved.
Since then, the dynamic texts of the elements are only moved if the Shift key is pressed at the same time!


Remark:
You should also replace "your" language-file, for the case, that new texts are introduced for example in config-page.

Toll gefallen tut mir das nicht, mich als Anwender einer CAD-Software mit SQL-Abfragen auskennen zu müssen, um ein Inhaltsverzeichnis oder eine Stückliste zu generieren...
Habe im Moment nur keine Idee, wie das Nutzerfreundlicher in QET eingebaut werden kann.

193

(41 replies, posted in Code)

Auch, wenn Du den Text als Link markierst und den Text als Ziel-Adresse definieren kannst:
Das Ziel muss auch wissen, daß es Ziel ist, soweit ich PDFs richtig verstanden habe!

Bei HTML und LaTeX ist es jedenfalls auch so, daß es eine Stelle gibt, die den Link enthält und ein Sprungziel, wohin verlinkt ist.


Ergänzung:
Wenn ein Verweis auf eine andere Seite im Schaltplan geht, was meist die Regel ist, müsste das Dokument also (mindestens) zweimal komplett durch alle Seiten durchgegangen werden, um alle Verweise und Sprung-Ziele einzufügen.
Wie ich das sehe, ist diese Stelle beim Ausdruck im Ablauf zu spät, weil hier jede Seite nur einmal verarbeitet wird.
Es müßte also eine Vorverarbeitung mit zwei Durchgängen eingefügt werden, wenn PDF als Ausgabe gewählt wurde.

194

(41 replies, posted in Code)

Bevor Du Dir an den XRef-Texten einen Wolf suchst...

Schau' Dir mal eine qet-Datei im Texteditor an:
Die Verlinkungen hängen nicht am Text, sondern an separaten Tags "link_uuid" der Referenz der Referenz-Elemente.

Einen Ausschnitt gibt's im Anhang.

195

(41 replies, posted in Code)

Beide Varianten können nicht funktionieren, weil:

/home/ich/Projekte/c_c++/QET/sources/print/projectprintwindow.cpp:720: Fehler: ‘class DiagramTextItem’ has no member named ‘isCrossReference’
../../sources/print/projectprintwindow.cpp: In member function ‘void ProjectPrintWindow::addPdfLinks(QPainter*, Diagram*)’:
../../sources/print/projectprintwindow.cpp:720:39: error: ‘class DiagramTextItem’ has no member named ‘isCrossReference’
  720 |                         if (textItem->isCrossReference()) {
      |                                       ^~~~~~~~~~~~~~~~


Vielleicht solltest Du doch mal versuchen, selber zu kompilieren:
Es macht nur begrenzt Spaß, für andere einen Code zu compilieren, der von einer "Intelligenz" entworfen wurde, die die Rahmenbedingungen von QET nicht zu kennen scheint!

196

(41 replies, posted in Code)

Die Funktion wird deshalb nicht aufgerufen, weil sie in der if (fit_page) nur im else-Zweig aufgerufen wird, aber die if-Bedingung (fit_page) erfüllt ist!

197

(41 replies, posted in Code)

Habe auch mal die Funktion "void ProjectPrintWindow::addPdfLinks" geleert und nur eine qInfo()-Ausgabe eingefügt.

Die Funktion wird nicht aufgerufen!
Nicht beim Ausdruck in PDF und auch nicht beim PDF-Export.

198

(41 replies, posted in Code)

Laß uns zu Deutsch wechseln ... liegt uns beiden wahrscheinlich besser!  nomicons/wink

Die Warnungen habe ich behoben.
Der Fehler ist immer noch drin!

199

(41 replies, posted in Code)

Tried the code with Debian GNU/Linux stable and Qt 5.15.8

There was a Warning about deprecated calls (fixed that) and an Errror:

(...)/QET/sources/print/projectprintwindow.cpp:798: Fehler: cannot ‘dynamic_cast’ ‘item’ (of type ‘class QGraphicsItem*’) to type ‘class DiagramTextItem*’ (target is not pointer or reference to complete type)
../../sources/print/projectprintwindow.cpp: In member function ‘void ProjectPrintWindow::addPdfLinks(QPainter*, Diagram*)’:
../../sources/print/projectprintwindow.cpp:798:29: error: cannot ‘dynamic_cast’ ‘item’ (of type ‘class QGraphicsItem*’) to type ‘class DiagramTextItem*’ (target is not pointer or reference to complete type)
  798 |         if (auto textItem = dynamic_cast<DiagramTextItem *>(item)) {
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

removed the double #include "projectprintwindow.h", too.

Hallo Achim,

auch weil wir gerade heute das Thema *-Verzeichnis hatten...
Insgesamt haben wir ähnliche Lösungsansätze.

Deine Variante hat nur einem "Haken": Jeder einzelne "Kontakt" taucht separat in der BOM auf. Siehe Anhang!

Eine Kombination aus beiden wäre es wahrscheinlich!

@tigerbeard:
Gib' doch mal Bescheid, für welche Lösung Du Dich entschieden hast!
Vielleicht ist Dir ja noch was viel Schlaueres eingefallen!