diff --git a/common/lc_application.cpp b/common/lc_application.cpp index dc7e7360..791342bc 100644 --- a/common/lc_application.cpp +++ b/common/lc_application.cpp @@ -30,6 +30,7 @@ void lcPreferences::LoadDefaults() mViewSphereColor = lcGetProfileInt(LC_PROFILE_VIEW_SPHERE_COLOR); mViewSphereTextColor = lcGetProfileInt(LC_PROFILE_VIEW_SPHERE_TEXT_COLOR); mViewSphereHighlightColor = lcGetProfileInt(LC_PROFILE_VIEW_SPHERE_HIGHLIGHT_COLOR); + autoLoadMostRecent = lcGetProfileInt(LC_PROFILE_AUTOLOAD_MOSTRECENT); } void lcPreferences::SaveDefaults() @@ -50,6 +51,7 @@ void lcPreferences::SaveDefaults() lcSetProfileInt(LC_PROFILE_VIEW_SPHERE_COLOR, mViewSphereColor); lcSetProfileInt(LC_PROFILE_VIEW_SPHERE_TEXT_COLOR, mViewSphereTextColor); lcSetProfileInt(LC_PROFILE_VIEW_SPHERE_HIGHLIGHT_COLOR, mViewSphereHighlightColor); + lcSetProfileInt(LC_PROFILE_AUTOLOAD_MOSTRECENT, autoLoadMostRecent); } lcApplication::lcApplication(int& Argc, char** Argv) @@ -196,7 +198,7 @@ bool lcApplication::Initialize(QList>& LibraryPaths, bool& QString ModelName; QString CameraName; QString ViewpointName; - QString ProjectName; + QString ProjectName = lcGetProfileInt(LC_PROFILE_AUTOLOAD_MOSTRECENT) ? lcGetProfileString(LC_PROFILE_RECENT_FILE1) : QString(); QString SaveWavefrontName; QString Save3DSName; QString SaveCOLLADAName; diff --git a/common/lc_application.h b/common/lc_application.h index b14cc6f1..717af667 100644 --- a/common/lc_application.h +++ b/common/lc_application.h @@ -44,6 +44,7 @@ public: quint32 mViewSphereColor; quint32 mViewSphereTextColor; quint32 mViewSphereHighlightColor; + bool autoLoadMostRecent; }; class lcApplication : public QApplication diff --git a/common/lc_global.h b/common/lc_global.h index a8175e14..faa60edd 100644 --- a/common/lc_global.h +++ b/common/lc_global.h @@ -12,7 +12,7 @@ #include #ifndef Q_FALLTHROUGH -#define Q_FALLTHROUGH(); [[fallthrough]]; +#define Q_FALLTHROUGH(); // fall through #endif #if !defined(EGL_VERSION_1_0) && !defined(GL_ES_VERSION_2_0) && !defined(GL_ES_VERSION_3_0) && !defined(QT_OPENGL_ES) diff --git a/common/lc_model.cpp b/common/lc_model.cpp index 5ea6ee09..4c4f8d47 100644 --- a/common/lc_model.cpp +++ b/common/lc_model.cpp @@ -592,8 +592,7 @@ void lcModel::LoadLDraw(QIODevice& Device, Project* Project) if (Token == QLatin1String("BEGIN")) { QString Name = LineStream.readAll().trimmed(); - QByteArray NameUtf = Name.toUtf8(); // todo: replace with qstring - lcGroup* Group = GetGroup(NameUtf.constData(), true); + lcGroup* Group = GetGroup(Name, true); if (!CurrentGroups.IsEmpty()) Group->mGroup = CurrentGroups[CurrentGroups.GetSize() - 1]; else diff --git a/common/lc_profile.cpp b/common/lc_profile.cpp index 78d6d2ba..19e380ec 100644 --- a/common/lc_profile.cpp +++ b/common/lc_profile.cpp @@ -82,6 +82,7 @@ static lcProfileEntry gProfileEntries[LC_NUM_PROFILE_KEYS] = lcProfileEntry("Settings", "RecentFile2", ""), // LC_PROFILE_RECENT_FILE2 lcProfileEntry("Settings", "RecentFile3", ""), // LC_PROFILE_RECENT_FILE3 lcProfileEntry("Settings", "RecentFile4", ""), // LC_PROFILE_RECENT_FILE4 + lcProfileEntry("Settings", "AutoLoadMostRecent", false), // LC_PROFILE_AUTOLOAD_MOSTRECENT lcProfileEntry("Settings", "AutosaveInterval", 10), // LC_PROFILE_AUTOSAVE_INTERVAL lcProfileEntry("Settings", "MouseSensitivity", 11), // LC_PROFILE_MOUSE_SENSITIVITY lcProfileEntry("Settings", "ImageWidth", 1280), // LC_PROFILE_IMAGE_WIDTH diff --git a/common/lc_profile.h b/common/lc_profile.h index 7a835f5f..a0b3cd7d 100644 --- a/common/lc_profile.h +++ b/common/lc_profile.h @@ -30,6 +30,7 @@ enum LC_PROFILE_KEY LC_PROFILE_RECENT_FILE2, LC_PROFILE_RECENT_FILE3, LC_PROFILE_RECENT_FILE4, + LC_PROFILE_AUTOLOAD_MOSTRECENT, LC_PROFILE_AUTOSAVE_INTERVAL, LC_PROFILE_MOUSE_SENSITIVITY, LC_PROFILE_IMAGE_WIDTH, diff --git a/leocad.qrc b/leocad.qrc index 90d8c250..32a81f8e 100644 --- a/leocad.qrc +++ b/leocad.qrc @@ -89,6 +89,7 @@ resources/time_add_keys.png resources/parts_search.png resources/parts_cancel.png + resources/archive.png resources/library.zip resources/ldconfig.ldr resources/minifig.ini diff --git a/qt/lc_qpreferencesdialog.cpp b/qt/lc_qpreferencesdialog.cpp index 1e2173f6..aef130a6 100644 --- a/qt/lc_qpreferencesdialog.cpp +++ b/qt/lc_qpreferencesdialog.cpp @@ -43,7 +43,8 @@ lcQPreferencesDialog::lcQPreferencesDialog(QWidget *parent, void *data) : ui->lgeoPath->setText(options->LGEOPath); ui->mouseSensitivity->setValue(options->Preferences.mMouseSensitivity); ui->checkForUpdates->setCurrentIndex(options->CheckForUpdates); - ui->fixedDirectionKeys->setChecked((options->Preferences.mFixedAxes) != 0); + ui->fixedDirectionKeys->setChecked(options->Preferences.mFixedAxes); + ui->autoLoadMostRecent->setChecked(options->Preferences.autoLoadMostRecent); ui->antiAliasing->setChecked(options->AASamples != 1); if (options->AASamples == 8) @@ -145,6 +146,7 @@ void lcQPreferencesDialog::accept() options->Preferences.mMouseSensitivity = ui->mouseSensitivity->value(); options->CheckForUpdates = ui->checkForUpdates->currentIndex(); options->Preferences.mFixedAxes = ui->fixedDirectionKeys->isChecked(); + options->Preferences.autoLoadMostRecent = ui->autoLoadMostRecent->isChecked(); if (!ui->antiAliasing->isChecked()) options->AASamples = 1; @@ -188,7 +190,15 @@ void lcQPreferencesDialog::accept() void lcQPreferencesDialog::on_partsLibraryBrowse_clicked() { - QString result = QFileDialog::getExistingDirectory(this, tr("Open Parts Library Folder"), ui->partsLibrary->text()); + QString result = QFileDialog::getExistingDirectory(this, tr("Select Parts Library Folder..."), ui->partsLibrary->text()); + + if (!result.isEmpty()) + ui->partsLibrary->setText(QDir::toNativeSeparators(result)); +} + +void lcQPreferencesDialog::on_partsArchiveBrowse_clicked() +{ + QString result = QFileDialog::getOpenFileName(this, tr("Select Parts Library Archive..."), ui->partsLibrary->text(), tr("Supported Archives (*.zip *.bin);;All Files (*.*)")); if (!result.isEmpty()) ui->partsLibrary->setText(QDir::toNativeSeparators(result)); diff --git a/qt/lc_qpreferencesdialog.h b/qt/lc_qpreferencesdialog.h index 0073950d..e4c848af 100644 --- a/qt/lc_qpreferencesdialog.h +++ b/qt/lc_qpreferencesdialog.h @@ -27,6 +27,7 @@ public: public slots: void accept(); void on_partsLibraryBrowse_clicked(); + void on_partsArchiveBrowse_clicked(); void on_povrayExecutableBrowse_clicked(); void on_lgeoPathBrowse_clicked(); void ColorButtonClicked(); diff --git a/qt/lc_qpreferencesdialog.ui b/qt/lc_qpreferencesdialog.ui index fa9588a9..e358615c 100644 --- a/qt/lc_qpreferencesdialog.ui +++ b/qt/lc_qpreferencesdialog.ui @@ -67,8 +67,17 @@ - - ... + + + :/resources/file_open.png:/resources/file_open.png + + + + + + + + :/resources/archive.png:/resources/archive.png @@ -158,6 +167,13 @@ + + + + Open most recent file on startup + + + @@ -982,6 +998,7 @@ authorName partsLibrary partsLibraryBrowse + partsArchiveBrowse povrayExecutable povrayExecutableBrowse lgeoPath diff --git a/qt/lc_qpropertiestree.cpp b/qt/lc_qpropertiestree.cpp index dbb3bc5f..99e12fac 100644 --- a/qt/lc_qpropertiestree.cpp +++ b/qt/lc_qpropertiestree.cpp @@ -139,7 +139,7 @@ void lcQPropertiesTreeDelegate::paint(QPainter *painter, const QStyleOptionViewI if (m_treeWidget) hasValue = m_treeWidget->indexToItem(index)->data(0, lcQPropertiesTree::PropertyTypeRole).toInt() != lcQPropertiesTree::PropertyGroup; - QStyleOptionViewItemV3 opt = option; + QStyleOptionViewItem opt = option; opt.state &= ~QStyle::State_HasFocus; @@ -241,7 +241,7 @@ QSize lcQPropertiesTree::sizeHint() const void lcQPropertiesTree::drawRow(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { - QStyleOptionViewItemV3 opt = option; + QStyleOptionViewItem opt = option; QTreeWidgetItem *item = itemFromIndex(index); diff --git a/qt/lc_renderdialog.cpp b/qt/lc_renderdialog.cpp index fb29fc51..c62ba4a3 100644 --- a/qt/lc_renderdialog.cpp +++ b/qt/lc_renderdialog.cpp @@ -30,7 +30,7 @@ lcRenderDialog::lcRenderDialog(QWidget* Parent) QImage Image(LC_POVRAY_PREVIEW_WIDTH, LC_POVRAY_PREVIEW_HEIGHT, QImage::Format_RGB32); Image.fill(QColor(255, 255, 255)); - ui->label->setPixmap(QPixmap::fromImage(Image)); + ui->preview->setPixmap(QPixmap::fromImage(Image)); connect(&mUpdateTimer, SIGNAL(timeout()), this, SLOT(Update())); mUpdateTimer.start(500); @@ -168,10 +168,15 @@ void lcRenderDialog::on_RenderButton_clicked() #endif mProcess = new QProcess(this); + connect(mProcess, SIGNAL(readyReadStandardError()), this, SLOT(ReadStdErr())); mProcess->start(POVRayPath, Arguments); if (mProcess->waitForStarted()) + { ui->RenderButton->setText(tr("Cancel")); + ui->RenderProgress->setValue(ui->RenderProgress->minimum()); + stdErrList.clear(); + } else { QMessageBox::warning(this, tr("Error"), tr("Error starting POV-Ray.")); @@ -180,6 +185,19 @@ void lcRenderDialog::on_RenderButton_clicked() #endif } +void lcRenderDialog::ReadStdErr() +{ + QString stdErr = QString(mProcess->readAllStandardError()); + stdErrList.append(stdErr); + QRegExp regexPovRayProgress("Rendered (\\d+) of (\\d+) pixels.*"); + regexPovRayProgress.setCaseSensitivity(Qt::CaseInsensitive); + if (regexPovRayProgress.indexIn(stdErr) == 0) + { + ui->RenderProgress->setMaximum(regexPovRayProgress.cap(2).toInt()); + ui->RenderProgress->setValue(regexPovRayProgress.cap(1).toInt()); + } +} + void lcRenderDialog::Update() { #ifndef QT_NO_PROCESS @@ -188,14 +206,12 @@ void lcRenderDialog::Update() if (mProcess->state() == QProcess::NotRunning) { -// QString Output = mProcess->readAllStandardError(); -// QMessageBox::information(this, "LeoCAD", Output); - #ifdef Q_OS_LINUX QByteArray Output = mProcess->readAllStandardOutput(); - QImage Image = QImage::fromData(Output); - ui->label->setPixmap(QPixmap::fromImage(Image.scaled(LC_POVRAY_PREVIEW_WIDTH, LC_POVRAY_PREVIEW_HEIGHT, Qt::KeepAspectRatio, Qt::SmoothTransformation))); + mImage = QImage::fromData(Output); + ShowResult(); #endif + CloseProcess(); } #endif @@ -251,25 +267,40 @@ void lcRenderDialog::Update() Header->PixelsRead = PixelsWritten; - ui->label->setPixmap(QPixmap::fromImage(mImage.scaled(LC_POVRAY_PREVIEW_WIDTH, LC_POVRAY_PREVIEW_HEIGHT, Qt::KeepAspectRatio, Qt::SmoothTransformation))); - if (PixelsWritten == Width * Height) - { - QString FileName = ui->OutputEdit->text(); - - if (!FileName.isEmpty()) - { - QImageWriter Writer(FileName); - - bool Result = Writer.write(mImage); - - if (!Result) - QMessageBox::information(this, tr("Error"), tr("Error writing to file '%1':\n%2").arg(FileName, Writer.errorString())); - } - } + ShowResult(); #endif } +void lcRenderDialog::ShowResult() { + ReadStdErr(); + ui->RenderProgress->setValue(ui->RenderProgress->maximum()); + + if (mProcess->exitStatus() != QProcess::NormalExit || mProcess->exitCode() != 0) { + QMessageBox error; + error.setWindowTitle(tr("Error")); + error.setIcon(QMessageBox::Critical); + error.setText(tr("An error occurred while rendering. Check details or try again.")); + error.setDetailedText(stdErrList.join("")); + error.exec(); + return; + } + + ui->preview->setPixmap(QPixmap::fromImage(mImage.scaled(LC_POVRAY_PREVIEW_WIDTH, LC_POVRAY_PREVIEW_HEIGHT, Qt::KeepAspectRatio, Qt::SmoothTransformation))); + + QString FileName = ui->OutputEdit->text(); + + if (!FileName.isEmpty()) + { + QImageWriter Writer(FileName); + + bool Result = Writer.write(mImage); + + if (!Result) + QMessageBox::information(this, tr("Error"), tr("Error writing to file '%1':\n%2").arg(FileName, Writer.errorString())); + } +} + void lcRenderDialog::on_OutputBrowseButton_clicked() { QString Result = QFileDialog::getSaveFileName(this, tr("Select Output File"), ui->OutputEdit->text(), tr("Supported Image Files (*.bmp *.png *.jpg);;BMP Files (*.bmp);;PNG Files (*.png);;JPEG Files (*.jpg);;All Files (*.*)")); diff --git a/qt/lc_renderdialog.h b/qt/lc_renderdialog.h index 20d36848..0d8c4949 100644 --- a/qt/lc_renderdialog.h +++ b/qt/lc_renderdialog.h @@ -20,11 +20,15 @@ public slots: void on_OutputBrowseButton_clicked(); void Update(); +protected slots: + void ReadStdErr(); + protected: QString GetOutputFileName() const; QString GetPOVFileName() const; void CloseProcess(); bool PromptCancel(); + void ShowResult(); #ifndef QT_NO_PROCESS QProcess* mProcess; @@ -33,6 +37,7 @@ protected: QFile mOutputFile; void* mOutputBuffer; QImage mImage; + QStringList stdErrList; Ui::lcRenderDialog* ui; }; diff --git a/qt/lc_renderdialog.ui b/qt/lc_renderdialog.ui index 8d9acef0..2630599c 100644 --- a/qt/lc_renderdialog.ui +++ b/qt/lc_renderdialog.ui @@ -13,43 +13,43 @@ Render - + - - - - - - - - + Settings - - - - - - - - - + + + Width: - - + + + + + Height: - + + + + + + + Quality: + + + + @@ -68,68 +68,66 @@ - - - - Quality: - - - - - - - Output: - - - - - - - - - - - - ... - - - - - - - - Render - - + + + + + Output: + + + + + + + + + + ... + + + + - - - Qt::Vertical - - - - 20 - 40 - - - + + + + + 1 + + + 0 + + + + + + + Render + + + + + + + + + + + - WidthEdit - HeightEdit QualityComboBox OutputEdit OutputBrowseButton - RenderButton diff --git a/qt/qtmain.cpp b/qt/qtmain.cpp index 65aed50b..9d015781 100644 --- a/qt/qtmain.cpp +++ b/qt/qtmain.cpp @@ -138,7 +138,7 @@ int main(int argc, char *argv[]) } QTranslator Translator; - if (Translator.load(QString("leocad_") + QLocale::system().name().section('_', 0, 0) + ".qm", ":/resources")) + if (Translator.load("leocad_" + QLocale::system().name(), ":/resources")) { Application.installTranslator(&Translator); } diff --git a/resources/archive.png b/resources/archive.png new file mode 100644 index 00000000..9934c351 Binary files /dev/null and b/resources/archive.png differ diff --git a/resources/leocad_de.ts b/resources/leocad_de.ts index e40c02b0..f0fcbcc2 100644 --- a/resources/leocad_de.ts +++ b/resources/leocad_de.ts @@ -2076,9 +2076,9 @@ - - - + + + LeoCAD LeoCAD @@ -2088,7 +2088,7 @@ - + Nothing to export. Nichts zu exportieren. @@ -2108,8 +2108,8 @@ - - + + Could not open file '%1' for writing. Konnte Datei » %1 « nicht zum Schreiben öffnen. @@ -2166,12 +2166,12 @@ Konnte keine LGEO Dateien im Verzeichnis » %1 « finden. - + Export Wavefront Nach Wavefront exportieren - + Wavefront Files (*.obj);;All Files (*.*) Wavefront Dateien (*.obj);;Alle Dateien (*.*) @@ -3203,15 +3203,15 @@ lcApplication - - + + LeoCAD LeoCAD - + LeoCAD could not find a compatible Parts Library so only a small number of parts will be available. Please visit https://www.leocad.org for information on how to download and install a library. @@ -3220,7 +3220,7 @@ Please visit https://www.leocad.org for information on how to download and insta Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunterläd und installiert. - + LeoCAD could not load Parts Library. Please visit https://www.leocad.org for information on how to download and install a library. @@ -3229,17 +3229,17 @@ Please visit https://www.leocad.org for information on how to download and insta Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunterläd und installiert. - + Parts library and Anti-aliasing changes will only take effect the next time you start LeoCAD. Die Teilebibliothek und Einstellungen zu Aliasing werden erst nach Neustart von LeoCAD wirksam. - + Parts library changes will only take effect the next time you start LeoCAD. Die Teilebibliothek werden erst nach Neustart von LeoCAD wirksam. - + Anti-aliasing changes will only take effect the next time you start LeoCAD. Einstellungen zu Aliasing werden erst nach Neustart von LeoCAD wirksam. @@ -3959,17 +3959,17 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt Medium Icons - Mittelgrosse Symbole + Mittelgroße Symbole Large Icons - Grosse Icons + Große Symbole Extra Large Icons - Extragrosse Symbole + Extragroße Symbole @@ -4650,9 +4650,8 @@ GL_EXT_texture_filter_anisotropic extension: %5 Voreinstellung für Autor: - - - + + ... ... @@ -4662,516 +4661,531 @@ GL_EXT_texture_filter_anisotropic extension: %5 Eigene Teilebibliothek: - + + Open most recent file on startup + Öffne die zuletzt verwendete Datei beim Start + + + Mouse Maus - + Mouse Shortcuts Maus-Kurzbefehle - + Action Aktion - + Shortcut 1 Tastenkürzel 1 - + Shortcut 2 Tastenkürzel 2 - + Button: Maustaste: - + None Keine - + Left Links - + Middle Mitte - + Right Rechts - + Modifiers: Sondertaste: - + Control Strg - + Alt Alt - + Shift Shift - + Mouse sensitivity: Mausempfindlichkeit: - + Check for updates: Auf Aktualisierungen prüfen: - + PO&V-Ray Executable: PO&V-Ray Executable: - + &LGEO Path: &LGEO Pfad: - + Never Nie - + Once a day Einmal am Tag - + Once a week Einmal pro Woche - + Fixed direction keys Feste Richtungstasten - + Rendering Rendern - + Edge lines Randlinien - + Axis icon Achsenbeschriftung - + width Breite - + Anti-aliasing Anti-aliasing - + 2x 2x - + 4x 4x - + 8x 8x - + Shading Mode: Schattenmodus: - + Wireframe Drahtmodell - + Flat Shading Einfache Schatten - + Default Lights Voreingestellte Beleuchtung - + Base Grid Grundraster - + Draw studs Noppen darstellen - + studs Noppen - + Draw lines every Linien zeichnen alle - + View Sphere Ansichtskugel - + Disabled Deaktiviert - + Small Klein - + Medium Mittel - + Large Groß - + Highlight Color: Hervorhebungsfarbe: - + Size: Größe: - + Color: Farbe: - + Text Color: Textfarbe: - + Location: Position: - + Top Left Oben links - + Top Right Oben rechts - + Bottom Left Unten links - + Bottom Right Oben rechts - - + + Categories Kategorie - + Parts Library Categories Kategorie der Teilebibliothek - + Name Name - + Number Nummer - - + + Import... Importieren… - - + + Export... Exportieren… - - - + + + Reset... Zurücksetzen… - + Category Kategorie - + New... Neu… - + Edit... Bearbeiten… - + Delete... Löschen… - + Keyboard Tastatur - + Keyboard Shortcuts Tastenkürzel - + Command Befehl - - - + + + Shortcut Kürzel - + Key se&quence: Tasten&folge: - - + + Assign Zuweisen - - + + Remove Entfernen - + Grid spacing must be greater than 0. Rasterweite muss grösser als 0 sein. - - Open Parts Library Folder - Ordern der Teilebibliothek öffnen + + Select Parts Library Folder... + Ordner der Teilebibliothek auswählen... - + + Select Parts Library Archive... + Archiv der Teilebibliothek auswählen... + + + + Supported Archives (*.zip *.bin);;All Files (*.*) + Unterstütze Bibliotheken (*.zip *.bin);;Alle Dateien (*.*) + + + Executable Files (*.exe);;All Files (*.*) Asuführbare Dateien (*.exe);;Alle Dateien (*.*) - + All Files (*.*) Alle Dateien (*.*) - + Open POV-Ray Executable Asuführbares POV-Ray öffnen - + Open LGEO Folder LGEO Ordner öffnen - + Select Grid Stud Color Farbe der Noppen im Gitter wählen - + Select Grid Line Color Farbe der Gitterlinien wählen - + Select View Sphere Color Wähle Ansichtskugelfarbe - + Select View Sphere Text Color Wähle Ansichtskugel Textfarbe - + Select View Sphere Highlight Color Wähle Ansichtskugel Hervorhebungsfarbe - + Unassigned Unbestimmt - + Are you sure you want to delete the category '%1'? Sind sie sicher dass sie die Kategorie » %1 « löschen möchten? - + Import Categories Kategorien importieren - - - - + + + + Text Files (*.txt);;All Files (*.*) Textdateien (*.txt);;Alle Dateien (*.*) - + Error loading categories file. Fehler beim Laden der Kategoriedatei. - + Export Categories Kategorien exportieren - + Error saving categories file. Fehler beim Speichern der Kategoriendatei. - + Are you sure you want to load the default categories? Sind sie sicher dass sie die voreingestellten Kategorien laden möchten? - + Import shortcuts Tastenkürzel laden - + Error loading keyboard shortcuts file. Fehler beim Laden der Tastaturkürzel-Datei. - + Export shortcuts Tastaturkürzel exportieren - + Error saving keyboard shortcuts file. Fehler beim Speichern der Tastaturkürzel-Datei. - + Are you sure you want to load the default keyboard shortcuts? Sind sie sicher dass sie die voreingestellten Tastaturkürzel laden möchten? - + Left Button Linke Maustaste - + Middle Button Mittlere Maustaste - + Right Button Rechte Maustaste - - + + Override Shortcut Tastaturkürzel ändern - - + + This shortcut is already assigned to '%1', do you want to replace it? Dieses Tastaturkürzel ist bereits » %1 « zugewiesen, möchten sie es ersetzen? - + Are you sure you want to load the default mouse shortcuts? Sind sie sicher dass sie die voreingestellten Mauskürzel laden möchten? @@ -5304,34 +5318,34 @@ GL_EXT_texture_filter_anisotropic extension: %5 - + Position Position - - - + + + X X - - - + + + Y Y - - - + + + Z Z @@ -5371,43 +5385,43 @@ GL_EXT_texture_filter_anisotropic extension: %5 Teil - + Target Ziel - - + + Up Hoch - + Orthographic Orhografisch - + FOV FOV - + Near Nah - + Far Fern - + Name Name - + Multiple Objects Selected Mehrere Objekre ausgewählt @@ -5487,23 +5501,23 @@ GL_EXT_texture_filter_anisotropic extension: %5 lcRenderDialog - + Render Render - + Settings Einstellungen - + Width: Breite: - + Height: Höhe: @@ -5523,17 +5537,17 @@ GL_EXT_texture_filter_anisotropic extension: %5 Niedrig - + Quality: Qualität: - + Output: Ausgabe: - + ... ... @@ -5548,35 +5562,41 @@ GL_EXT_texture_filter_anisotropic extension: %5 Sind sie sicher dass sie das aktuelle Rendern abbrechen wollen? - + Cancel Abbrechen - - + + + Error Fehler - + Error starting POV-Ray. Fehler beim Start von POV-Ray. - + + An error occurred while rendering. Check details or try again. + Beim Rendern ist ein Fehler aufgetreten. Siehe Details oder versuchen Sie es erneut. + + + Error writing to file '%1': %2 Fehler beim Schreiben der Datei » %1 « : %2 - + Select Output File Wahl der Ausgabedatei - + Supported Image Files (*.bmp *.png *.jpg);;BMP Files (*.bmp);;PNG Files (*.png);;JPEG Files (*.jpg);;All Files (*.*) Unterstützte Bilddateien (*.bmp *.png *.jpg);;BMP Dateien (*.bmp);;PNG Dateien (*.png);;JPEG Dateien (*.jpg);;Alle Dateien (*.*) diff --git a/resources/leocad_fr.ts b/resources/leocad_fr.ts index 55c77435..cffaeb5b 100644 --- a/resources/leocad_fr.ts +++ b/resources/leocad_fr.ts @@ -2003,7 +2003,7 @@ Delete - + Effacer @@ -2076,9 +2076,9 @@ - - - + + + LeoCAD LeoCAD @@ -2088,7 +2088,7 @@ - + Nothing to export. Rien à exporter. @@ -2108,8 +2108,8 @@ - - + + Could not open file '%1' for writing. N’a pas pu ouvrir le fichier « %1 » en écriture. @@ -2166,12 +2166,12 @@ N’a pas pu trouver les fichiers LGEO dans le dossier « %1 ». - + Export Wavefront Exporter vers Wavefront - + Wavefront Files (*.obj);;All Files (*.*) Fichiers Wavefront (*.obj);;Tous les fichiers (*.*) @@ -3177,7 +3177,7 @@ Right - + Droit @@ -3203,15 +3203,15 @@ lcApplication - - + + LeoCAD LeoCAD - + LeoCAD could not find a compatible Parts Library so only a small number of parts will be available. Please visit https://www.leocad.org for information on how to download and install a library. @@ -3220,7 +3220,7 @@ Please visit https://www.leocad.org for information on how to download and insta SVP visitez https://www.leocad.org pour apprendre comment télécharger et installer une bibliothèque. - + LeoCAD could not load Parts Library. Please visit https://www.leocad.org for information on how to download and install a library. @@ -3229,17 +3229,17 @@ Please visit https://www.leocad.org for information on how to download and insta SVP visitez https://www.leocad.org pour apprendre comment télécharger et installer une bibliothèque. - + Parts library and Anti-aliasing changes will only take effect the next time you start LeoCAD. Les changements concernant la bibliothèque de pièces et l’anti-aliasing ne prendront effet qu’au prochain lancement de LeoCAD. - + Parts library changes will only take effect the next time you start LeoCAD. Les changement concernant la bibliothèque de pièces ne prendront effet qu’au prochain lancement de LeoCAD. - + Anti-aliasing changes will only take effect the next time you start LeoCAD. Les changement concernant l’anti-aliasing ne prendront effet qu’au prochain lancement de LeoCAD. @@ -4645,9 +4645,8 @@ GL_EXT_texture_filter_anisotropic extension: %5 Auteur par défaut : - - - + + ... ... @@ -4657,516 +4656,531 @@ GL_EXT_texture_filter_anisotropic extension: %5 Bibliothèque de pièces personnalisées : - + + Open most recent file on startup + + + + Mouse Souris - + Mouse Shortcuts Raccourcis souris - + Action Action - + Shortcut 1 - + Shortcut 2 - + Button: Bouton : - + None Aucun - + Left Gauche - + Middle Central - + Right Droit - + Modifiers: Modificateurs : - + Control Contrôle - + Alt Alt - + Shift Maj - + Mouse sensitivity: Sensibilité de la souris : - + Check for updates: Vérifier les mises à jour : - + PO&V-Ray Executable: - + &LGEO Path: - + Never Jamais - + Once a day Tous les jours - + Once a week Toutes les semaines - + Fixed direction keys Touches de directions fixes - + Rendering Rendu - + Edge lines Bordures - + Axis icon Icônes d’axes - + width largeur - + Anti-aliasing Anti-aliasing - + 2x 2x - + 4x 4x - + 8x 8x - + Shading Mode: - + Wireframe - + Flat Shading - + Default Lights - + Base Grid Grille de base - + Draw studs Dessiner les tenons - + studs tenons - + Draw lines every Dessine des lignes tous les - + View Sphere - + Disabled - + Small - + Medium - + Large - + Highlight Color: - + Size: - + Color: Couleur : - + Text Color: - + Location: - + Top Left - + Top Right - + Bottom Left - + Bottom Right - - + + Categories Catégories - + Parts Library Categories Catégories de la bibliothèque de pièces - + Name Nom - + Number Nombre - - + + Import... Importer… - - + + Export... Exporter… - - - + + + Reset... Réinitialiser… - + Category Catégorie - + New... Nouveau… - + Edit... Éditer… - + Delete... Supprimer… - + Keyboard Clavier - + Keyboard Shortcuts Raccourcis clavier - + Command Commande - - - + + + Shortcut Raccourcis - + Key se&quence: - - + + Assign Attribuer - - + + Remove Supprimer - + Grid spacing must be greater than 0. L’espacement de la grille doit être plus grand que 0. - - Open Parts Library Folder - Ouvrir le dossier de la bibliothèque de pièces + + Select Parts Library Folder... + - + + Select Parts Library Archive... + + + + + Supported Archives (*.zip *.bin);;All Files (*.*) + + + + Executable Files (*.exe);;All Files (*.*) Fichiers exécutables (*.exe);;Tous les fichiers (*.*) - + All Files (*.*) Tous les fichiers (*.*) - + Open POV-Ray Executable Lancer l’exécutable POV-Ray - + Open LGEO Folder Ouvrir le dossier LGEO - + Select Grid Stud Color Choisir le couleur des tenons de la grille - + Select Grid Line Color Choisir la couleur des lignes de la grille - + Select View Sphere Color - + Select View Sphere Text Color - + Select View Sphere Highlight Color - + Unassigned Non-attribué - + Are you sure you want to delete the category '%1'? Êtes-vous sûr de vouloir supprimer la catégorie « %1 » ? - + Import Categories Importer les catégories - - - - + + + + Text Files (*.txt);;All Files (*.*) Fichiers texte (*.txt);;Tous les fichiers (*.*) - + Error loading categories file. Erreur au chargement du fichier des catégories. - + Export Categories Exporter les catégories - + Error saving categories file. Erreur à l’enregistrement du fichier des catégories. - + Are you sure you want to load the default categories? Êtes-vous sûr de vouloir charger les catégories par défaut ? - + Import shortcuts Importer les raccourcis - + Error loading keyboard shortcuts file. Erreur au chargement du fichier des raccourcis clavier. - + Export shortcuts Exporter les raccourcis - + Error saving keyboard shortcuts file. Erreur à l’enregistrement du fichier des raccourcis clavier. - + Are you sure you want to load the default keyboard shortcuts? Êtes-vous sûr de vouloir charger les raccourcis clavier par défaut ? - + Left Button Bouton gauche - + Middle Button Bouton central - + Right Button Bouton droit - - + + Override Shortcut Écraser le raccourcis - - + + This shortcut is already assigned to '%1', do you want to replace it? Ce raccourcis est déjà attribué à « %1 », voulez-vous le remplacer ? - + Are you sure you want to load the default mouse shortcuts? Êtes-vous sûr de vouloir charger les raccourcis souris par défaut ? @@ -5299,34 +5313,34 @@ GL_EXT_texture_filter_anisotropic extension: %5 - + Position Position - - - + + + X X - - - + + + Y Y - - - + + + Z Z @@ -5366,43 +5380,43 @@ GL_EXT_texture_filter_anisotropic extension: %5 Pièce - + Target Cible - - + + Up Haut - + Orthographic Orthographique - + FOV FOV - + Near Proche - + Far Loin - + Name Nom - + Multiple Objects Selected Plusieurs objets sélectionnés @@ -5482,23 +5496,23 @@ GL_EXT_texture_filter_anisotropic extension: %5 lcRenderDialog - + Render - + Settings - + Width: - + Height: Hauteur : @@ -5518,17 +5532,17 @@ GL_EXT_texture_filter_anisotropic extension: %5 - + Quality: - + Output: - + ... ... @@ -5543,35 +5557,41 @@ GL_EXT_texture_filter_anisotropic extension: %5 - + Cancel - - + + + Error Erreur - + Error starting POV-Ray. - + + An error occurred while rendering. Check details or try again. + + + + Error writing to file '%1': %2 Erreur en écrivant le fichier « %1 » : %2 - + Select Output File - + Supported Image Files (*.bmp *.png *.jpg);;BMP Files (*.bmp);;PNG Files (*.png);;JPEG Files (*.jpg);;All Files (*.*) Fichiers images pris en charge (*.bmp *.png *.jpg);;Fichiers BMP (*.bmp);;Fichiers PNG (*.png);;Fichiers JPEG (*.jpg);;Tous les fichiers (*.*) diff --git a/resources/leocad_pt.ts b/resources/leocad_pt.ts index d0256d02..398ff1ec 100644 --- a/resources/leocad_pt.ts +++ b/resources/leocad_pt.ts @@ -2076,9 +2076,9 @@ - - - + + + LeoCAD LeoCAD @@ -2088,7 +2088,7 @@ - + Nothing to export. Nada a exportar. @@ -2108,8 +2108,8 @@ - - + + Could not open file '%1' for writing. Erro ao abrir o ficheiro '%1' para escrever. @@ -2166,12 +2166,12 @@ Não achei ficheiros LGEO na pasta '%1'. - + Export Wavefront Exportar Wavefront - + Wavefront Files (*.obj);;All Files (*.*) Ficheiros Wavefront (*.obj);;Todos os Ficheiros (*.*) @@ -3203,15 +3203,15 @@ lcApplication - - + + LeoCAD LeoCAD - + LeoCAD could not find a compatible Parts Library so only a small number of parts will be available. Please visit https://www.leocad.org for information on how to download and install a library. @@ -3220,7 +3220,7 @@ Please visit https://www.leocad.org for information on how to download and insta Veja https://www.leocad.org para saber como descarragar e instalar uma biblioteca. - + LeoCAD could not load Parts Library. Please visit https://www.leocad.org for information on how to download and install a library. @@ -3229,17 +3229,17 @@ Please visit https://www.leocad.org for information on how to download and insta Veja https://www.leocad.org para saber como descarragar e instalar uma biblioteca. - + Parts library and Anti-aliasing changes will only take effect the next time you start LeoCAD. As mudanças de Biblioteca e de Antisserrilhamento só tomam efeito após o próximo arranque do LeoCAD. - + Parts library changes will only take effect the next time you start LeoCAD. As mudanças de Biblioteca só tomam efeito após o próximo arranque do LeoCAD. - + Anti-aliasing changes will only take effect the next time you start LeoCAD. As mudanças de Antisserrilhamento só tomam efeito após o próximo arranque do LeoCAD. @@ -4645,9 +4645,8 @@ GL_EXT_texture_filter_anisotropic extension: %5 Nome do autor por omissão: - - - + + ... ... @@ -4657,516 +4656,531 @@ GL_EXT_texture_filter_anisotropic extension: %5 Biblioteca de peças personalizada: - + Mouse sensitivity: Sensibilidade do rato : - + Check for updates: Procurar actualizações: - + PO&V-Ray Executable: - + &LGEO Path: - + Never Nunca - + Once a day Uma vez por dia - + Once a week Uma vez por semana - + Fixed direction keys Teclas de direcção fixas - + + Open most recent file on startup + + + + Rendering Restituir - + Edge lines Contornos - + Axis icon Eixos - + width largura - + Anti-aliasing Suavização - + 2x 2x - + 4x 4x - + 8x 8x - + Shading Mode: - + Wireframe - + Flat Shading - + Default Lights - + Base Grid Grelha de Base - + Draw studs Desenhar pregos - + studs pregos - + Draw lines every Desenhar linhas cada - + View Sphere - + Disabled - + Small - + Medium - + Large - + Highlight Color: - + Size: - + Color: Cor: - + Text Color: - + Location: - + Top Left - + Top Right - + Bottom Left - + Bottom Right - - + + Categories Categorias - + Parts Library Categories Categorias de Peças na Biblioteca - + Name Nome - + Number Número - - + + Import... Importar.... - - + + Export... Exportar... - - - + + + Reset... Reiniciar... - + Category Categoria - + New... Novo... - + Edit... Editar... - + Delete... Apagar... - + Keyboard Teclado - + Keyboard Shortcuts Atalhos de Teclado - + Command Commando - - - + + + Shortcut Atalho - + Key se&quence: - + Mouse - + Mouse Shortcuts - + Action - + Shortcut 1 - + Shortcut 2 - + Button: - + None Nenhum - + Left Left - + Middle - + Right Right - + Modifiers: - + Control - + Alt - + Shift - - + + Assign Definir - - + + Remove Remover - + Grid spacing must be greater than 0. O espaço de grelha deve ser superior a 0. - - Open Parts Library Folder - Escolher a Pasta da Biblioteca de Peças + + Select Parts Library Folder... + - + + Select Parts Library Archive... + + + + + Supported Archives (*.zip *.bin);;All Files (*.*) + + + + Executable Files (*.exe);;All Files (*.*) Ficheiros Executaveis(*.exe);;Todos os Ficheiros (*.*) - + All Files (*.*) Todos os Ficheiros (*.*) - + Open POV-Ray Executable Escolher o programa POV-Ray - + Open LGEO Folder Escolher a Pasta LGEO - + Select Grid Stud Color Cor dos Pregos na Grelha - + Select Grid Line Color Cor das Linhas na Grelha - + Select View Sphere Color - + Select View Sphere Text Color - + Select View Sphere Highlight Color - + Unassigned Por Definir - + Are you sure you want to delete the category '%1'? Confirmar querer apagar a categoria '%1'? - + Import Categories Importar Categorias - - - - + + + + Text Files (*.txt);;All Files (*.*) Ficheiros Texto (*.txt);;Todos os Ficheiros (*.*) - + Error loading categories file. Erro ao carregar o ficheiro de categorias. - + Export Categories Exportar Categorias - + Error saving categories file. Erro ao gravar o ficheiro de categorias. - + Are you sure you want to load the default categories? Confirmar querer carregar as categorias por omissão? - + Import shortcuts Importar Atalhos de Teclado - + Error loading keyboard shortcuts file. Erro ao carregar o ficheiro de atalhos de teclado. - + Export shortcuts Exportar Atalhos de Teclado - + Error saving keyboard shortcuts file. Erro ao gravar o ficheiro de atalhos de teclado. - + Are you sure you want to load the default keyboard shortcuts? Confirmar querer carregar os atalhos de teclado por omissão? - + Left Button - + Middle Button - + Right Button - - + + Override Shortcut - - + + This shortcut is already assigned to '%1', do you want to replace it? - + Are you sure you want to load the default mouse shortcuts? @@ -5299,34 +5313,34 @@ GL_EXT_texture_filter_anisotropic extension: %5 - + Position Posição - - - + + + X X - - - + + + Y Y - - - + + + Z Z @@ -5366,43 +5380,43 @@ GL_EXT_texture_filter_anisotropic extension: %5 Peça - + Target Objectivo - - + + Up Subir - + Orthographic Ortográfico - + FOV FOV - + Near Perto - + Far Longe - + Name Nome - + Multiple Objects Selected @@ -5482,23 +5496,23 @@ GL_EXT_texture_filter_anisotropic extension: %5 lcRenderDialog - + Render - + Settings - + Width: Largura: - + Height: Altura: @@ -5518,17 +5532,17 @@ GL_EXT_texture_filter_anisotropic extension: %5 - + Quality: - + Output: - + ... ... @@ -5543,35 +5557,41 @@ GL_EXT_texture_filter_anisotropic extension: %5 - + Cancel - - + + + Error Erro - + Error starting POV-Ray. - + + An error occurred while rendering. Check details or try again. + + + + Error writing to file '%1': %2 Erro ao escrever no ficheiro '%1': %2 - + Select Output File - + Supported Image Files (*.bmp *.png *.jpg);;BMP Files (*.bmp);;PNG Files (*.png);;JPEG Files (*.jpg);;All Files (*.*) Formatos de Imagem Suportados (*.bmp *.png *.jpg);;Ficheiros BMP (*.bmp);;Ficheiros PNG (*.png);;Ficheiros JPEG (*.jpg);;Todos os Ficheiros (*.*)