From d0f84fd74415e8759ef4d768faa4bd86e5ea97fe Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Wed, 29 Sep 2021 14:16:06 -0400 Subject: [PATCH 01/56] Always provide CJSON to interface scripts to enable selection, etc. Signed-off-by: Geoff Hutchison --- avogadro/qtgui/interfacescript.cpp | 63 ++++++++++++++++-------------- 1 file changed, 34 insertions(+), 29 deletions(-) diff --git a/avogadro/qtgui/interfacescript.cpp b/avogadro/qtgui/interfacescript.cpp index 2a6cd59c13..44e017768d 100644 --- a/avogadro/qtgui/interfacescript.cpp +++ b/avogadro/qtgui/interfacescript.cpp @@ -163,7 +163,8 @@ bool InterfaceScript::runCommand(const QJsonObject& options_, if (!insertMolecule(allOptions, *mol)) return false; - connect(m_interpreter, &PythonScript::finished, this, &::Avogadro::QtGui::InterfaceScript::commandFinished); + connect(m_interpreter, &PythonScript::finished, this, + &::Avogadro::QtGui::InterfaceScript::commandFinished); m_interpreter->asyncExecute(QStringList() << QStringLiteral("--run-command"), QJsonDocument(allOptions).toJson()); return true; @@ -471,18 +472,20 @@ bool InterfaceScript::insertMolecule(QJsonObject& json, if (m_moleculeExtension == QLatin1String("None")) return true; - // insert the selected atoms + // Always insert the selected atoms QJsonArray selectedList; for (Index i = 0; i < mol.atomCount(); ++i) { if (mol.atomSelected(i)) selectedList.append(static_cast(i)); } - json.insert("selectedatoms", selectedList); + json.insert("selectedAtoms", selectedList); Io::FileFormatManager& formats = Io::FileFormatManager::instance(); QScopedPointer format( formats.newFormatFromFileExtension(m_moleculeExtension.toStdString())); + QScopedPointer cjsonFormat(formats.newFormatFromFileExtension("cjson")); + // If we want something *other* than CJSON, check that we can supply that format if (format.isNull()) { m_errors << tr("Error writing molecule representation to string: " "Unrecognized file format: %1") @@ -499,29 +502,31 @@ bool InterfaceScript::insertMolecule(QJsonObject& json, if (m_moleculeExtension != QLatin1String("cjson")) { json.insert(m_moleculeExtension, QJsonValue(QString::fromStdString(str))); - } else { - // If cjson was requested, embed the actual JSON, rather than the string. - QJsonParseError error; - QJsonDocument doc = QJsonDocument::fromJson(str.c_str(), &error); - if (error.error != QJsonParseError::NoError) { - m_errors << tr("Error generating cjson object: Parse error at offset %1: " - "%2\nRaw JSON:\n\n%3") - .arg(error.offset) - .arg(error.errorString()) - .arg(QString::fromStdString(str)); - return false; - } + } - if (!doc.isObject()) { - m_errors << tr("Error generator cjson object: Parsed JSON is not an " - "object:\n%1") - .arg(QString::fromStdString(str)); - return false; - } + // And we *always* write the CJSON representation + // Embed CJSON as actual JSON, rather than a string, so we have to parse it again + cjsonFormat->writeString(str, mol); + QJsonParseError error; + QJsonDocument doc = QJsonDocument::fromJson(str.c_str(), &error); + if (error.error != QJsonParseError::NoError) { + m_errors << tr("Error generating cjson object: Parse error at offset %1: " + "%2\nRaw JSON:\n\n%3") + .arg(error.offset) + .arg(error.errorString()) + .arg(QString::fromStdString(str)); + return false; + } - json.insert(m_moleculeExtension, doc.object()); + if (!doc.isObject()) { + m_errors << tr("Error generator cjson object: Parsed JSON is not an " + "object:\n%1") + .arg(QString::fromStdString(str)); + return false; } + json.insert("cjson", doc.object()); + return true; } @@ -604,7 +609,7 @@ bool InterfaceScript::parseHighlightStyles(const QJsonArray& json) const GenericHighlighter* highlighter( new GenericHighlighter(const_cast(this))); if (!parseRules(rulesArray, *highlighter)) { - qDebug() << "Error parsing style" << styleName << endl + qDebug() << "Error parsing style" << styleName << Qt::endl << QString(QJsonDocument(styleObj).toJson()); highlighter->deleteLater(); result = false; @@ -629,13 +634,13 @@ bool InterfaceScript::parseRules(const QJsonArray& json, QJsonObject ruleObj(ruleVal.toObject()); if (!ruleObj.contains(QStringLiteral("patterns"))) { - qDebug() << "Rule missing 'patterns' array:" << endl + qDebug() << "Rule missing 'patterns' array:" << Qt::endl << QString(QJsonDocument(ruleObj).toJson()); result = false; continue; } if (!ruleObj.value(QStringLiteral("patterns")).isArray()) { - qDebug() << "Rule 'patterns' member is not an array:" << endl + qDebug() << "Rule 'patterns' member is not an array:" << Qt::endl << QString(QJsonDocument(ruleObj).toJson()); result = false; continue; @@ -644,13 +649,13 @@ bool InterfaceScript::parseRules(const QJsonArray& json, ruleObj.value(QStringLiteral("patterns")).toArray()); if (!ruleObj.contains(QStringLiteral("format"))) { - qDebug() << "Rule missing 'format' object:" << endl + qDebug() << "Rule missing 'format' object:" << Qt::endl << QString(QJsonDocument(ruleObj).toJson()); result = false; continue; } if (!ruleObj.value(QStringLiteral("format")).isObject()) { - qDebug() << "Rule 'format' member is not an object:" << endl + qDebug() << "Rule 'format' member is not an object:" << Qt::endl << QString(QJsonDocument(ruleObj).toJson()); result = false; continue; @@ -662,7 +667,7 @@ bool InterfaceScript::parseRules(const QJsonArray& json, foreach (QJsonValue patternVal, patternsArray) { QRegExp pattern; if (!parsePattern(patternVal, pattern)) { - qDebug() << "Error while parsing pattern:" << endl + qDebug() << "Error while parsing pattern:" << Qt::endl << QString(QJsonDocument(patternVal.toObject()).toJson()); result = false; continue; @@ -672,7 +677,7 @@ bool InterfaceScript::parseRules(const QJsonArray& json, QTextCharFormat format; if (!parseFormat(formatObj, format)) { - qDebug() << "Error while parsing format:" << endl + qDebug() << "Error while parsing format:" << Qt::endl << QString(QJsonDocument(formatObj).toJson()); result = false; } From fb3728ae27028dade103c5cc454e7f9bacf3ae9a Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Tue, 17 Oct 2023 12:54:21 -0400 Subject: [PATCH 02/56] Add rotate / translate / zoom to the navigator tool Signed-off-by: Geoff Hutchison --- avogadro/qtplugins/navigator/navigator.cpp | 57 +++++++++++++++++++--- avogadro/qtplugins/navigator/navigator.h | 5 ++ 2 files changed, 55 insertions(+), 7 deletions(-) diff --git a/avogadro/qtplugins/navigator/navigator.cpp b/avogadro/qtplugins/navigator/navigator.cpp index d901615a68..cd55a466c5 100644 --- a/avogadro/qtplugins/navigator/navigator.cpp +++ b/avogadro/qtplugins/navigator/navigator.cpp @@ -13,12 +13,13 @@ #include #include -#include +#include +#include #include +#include #include #include #include -#include #include #include @@ -42,11 +43,53 @@ Navigator::Navigator(QObject* parent_) "Left Mouse: \tClick and drag to rotate the view.\n" "Middle Mouse: \tClick and drag to zoom in or out.\n" "Right Mouse: \tClick and drag to move the view.\n")); - + QSettings settings; m_zoomDirection = settings.value("navigator/zoom", 1).toInt(); } +void Navigator::registerCommands() +{ + emit registerCommand("rotateScene", + tr("Rotate the scene along the x, y, or z axes.")); + emit registerCommand("zoomScene", tr("Zoom the scene.")); + emit registerCommand("translateScene", tr("Translate the scene.")); +} + +bool Navigator::handleCommand(const QString& command, + const QVariantMap& options) +{ + qDebug() << "Navigator::handleCommand: " << command; + qDebug() << (m_renderer == nullptr); + qDebug() << (m_glWidget == nullptr); + qDebug() << (m_molecule == nullptr); + + if (m_renderer == nullptr) + return false; // No camera + + if (command == "rotateScene") { + float x = options.value("x").toFloat() * DEG_TO_RAD; + float y = options.value("y").toFloat() * DEG_TO_RAD; + float z = options.value("z").toFloat() * DEG_TO_RAD; + rotate(m_renderer->camera().focus(), x, y, z); + m_glWidget->requestUpdate(); + qDebug() << "rotateScene: " << x << y << z; + return true; + } else if (command == "zoomScene") { + float d = options.value("delta").toFloat(); + zoom(m_renderer->camera().focus(), d); + m_glWidget->requestUpdate(); + return true; + } else if (command == "translateScene") { + float x = options.value("x").toFloat(); + float y = options.value("y").toFloat(); + translate(m_renderer->camera().focus(), x, y); + m_glWidget->requestUpdate(); + return true; + } + return false; +} + Navigator::~Navigator() {} QWidget* Navigator::toolWidget() const @@ -55,8 +98,7 @@ QWidget* Navigator::toolWidget() const m_toolWidget = new QWidget(qobject_cast(parent())); auto* layout = new QVBoxLayout; - auto* swapZoom = - new QCheckBox(tr("Reverse Direction of Zoom on Scroll")); + auto* swapZoom = new QCheckBox(tr("Reverse Direction of Zoom on Scroll")); swapZoom->setToolTip( tr("Default:\t Scroll down to shrink, scroll up to zoom\n" "Reversed:\t Scroll up to shrink, scroll down to zoom")); @@ -169,7 +211,8 @@ QUndoCommand* Navigator::wheelEvent(QWheelEvent* e) QPoint numDegrees = e->angleDelta() * 0.125; // see https://doc.qt.io/qt-5/qwheelevent.html#pixelDelta - if (!numPixels.isNull() && QGuiApplication::platformName().toStdString().compare("xcb")) + if (!numPixels.isNull() && + QGuiApplication::platformName().toStdString().compare("xcb")) d = numPixels.y(); // use pixelDelta() when available, except on X11 else if (!numDegrees.isNull()) d = numDegrees.y(); // fall back to angleDelta() @@ -299,4 +342,4 @@ inline void Navigator::translate(const Vector3f& ref, const Vector2f& fromScr, m_renderer->camera().translate(to - from); } -} // namespace Avogadro +} // namespace Avogadro::QtPlugins diff --git a/avogadro/qtplugins/navigator/navigator.h b/avogadro/qtplugins/navigator/navigator.h index ee1d1ec05a..8a1cd73441 100644 --- a/avogadro/qtplugins/navigator/navigator.h +++ b/avogadro/qtplugins/navigator/navigator.h @@ -49,6 +49,11 @@ class Navigator : public QtGui::ToolPlugin QUndoCommand* keyPressEvent(QKeyEvent* e) override; QUndoCommand* keyReleaseEvent(QKeyEvent* e) override; + bool handleCommand(const QString& command, + const QVariantMap& options) override; + + void registerCommands() override; + protected slots: void swapZoomDirection(bool checked); From c6afa7e9ceb59a773b5a4aad2b9c7870df130d81 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Mon, 23 Oct 2023 22:29:28 -0400 Subject: [PATCH 03/56] Install ligand and functional group fragments Signed-off-by: Geoff Hutchison --- .../qtplugins/templatetool/CMakeLists.txt | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/avogadro/qtplugins/templatetool/CMakeLists.txt b/avogadro/qtplugins/templatetool/CMakeLists.txt index 91a10eb9cf..9f66eb38cf 100644 --- a/avogadro/qtplugins/templatetool/CMakeLists.txt +++ b/avogadro/qtplugins/templatetool/CMakeLists.txt @@ -21,4 +21,26 @@ avogadro_plugin(TemplateTool "${template_rcs}" ) +# Install the fragments +set(_molecules "${AvogadroLibs_SOURCE_DIR}/../fragments") + +# Look in parallel directory for the molecule fragment repository +if(NOT EXISTS "${_fragments}") +# download molecules... +ExternalProject_Add(fragments + GIT_REPOSITORY https://github.com/openchemistry/fragments + GIT_TAG main + # or https://github.com/OpenChemistry/molecules/archive/refs/heads/master.zip + SOURCE_DIR "${AvogadroLibs_SOURCE_DIR}/../fragments" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" +) +endif() + +install(DIRECTORY "${AvogadroLibs_SOURCE_DIR}/../fragments" + DESTINATION "${INSTALL_DATA_DIR}/avogadro2" + PATTERN ".git" EXCLUDE +) + target_link_libraries(TemplateTool LINK_PRIVATE Avogadro::QtOpenGL) From c26c95bdc913aa31baa25b59fa7a0af8f44c3f52 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Fri, 3 Nov 2023 23:49:33 -0400 Subject: [PATCH 04/56] Move code for shared use of the fragment dialog Signed-off-by: Geoff Hutchison --- avogadro/qtgui/CMakeLists.txt | 5 +++++ .../insertfragment => qtgui}/insertfragmentdialog.cpp | 3 +-- .../insertfragment => qtgui}/insertfragmentdialog.h | 0 .../insertfragment => qtgui}/insertfragmentdialog.ui | 0 .../insertfragment => qtgui}/sortfiltertreeproxymodel.cpp | 2 -- .../insertfragment => qtgui}/sortfiltertreeproxymodel.h | 0 avogadro/qtplugins/insertfragment/CMakeLists.txt | 3 +-- avogadro/qtplugins/insertfragment/insertfragment.cpp | 3 +-- 8 files changed, 8 insertions(+), 8 deletions(-) rename avogadro/{qtplugins/insertfragment => qtgui}/insertfragmentdialog.cpp (99%) rename avogadro/{qtplugins/insertfragment => qtgui}/insertfragmentdialog.h (100%) rename avogadro/{qtplugins/insertfragment => qtgui}/insertfragmentdialog.ui (100%) rename avogadro/{qtplugins/insertfragment => qtgui}/sortfiltertreeproxymodel.cpp (99%) rename avogadro/{qtplugins/insertfragment => qtgui}/sortfiltertreeproxymodel.h (100%) diff --git a/avogadro/qtgui/CMakeLists.txt b/avogadro/qtgui/CMakeLists.txt index dd8fda69c2..c49b733968 100644 --- a/avogadro/qtgui/CMakeLists.txt +++ b/avogadro/qtgui/CMakeLists.txt @@ -42,6 +42,7 @@ avogadro_headers(QtGui fileformatdialog.h generichighlighter.h hydrogentools.h + insertfragmentdialog.h interfacescript.h interfacewidget.h jsonwidget.h @@ -60,6 +61,7 @@ avogadro_headers(QtGui sceneplugin.h scenepluginmodel.h scriptloader.h + sortfiltertreeproxymodel.h toolplugin.h utilities.h viewfactory.h @@ -78,6 +80,7 @@ target_sources(QtGui PRIVATE fileformatdialog.cpp generichighlighter.cpp hydrogentools.cpp + insertfragmentdialog.cpp interfacescript.cpp interfacewidget.cpp jsonwidget.cpp @@ -95,6 +98,7 @@ target_sources(QtGui PRIVATE sceneplugin.cpp scenepluginmodel.cpp scriptloader.cpp + sortfiltertreeproxymodel.cpp toolplugin.cpp utilities.cpp viewfactory.cpp @@ -102,6 +106,7 @@ target_sources(QtGui PRIVATE set(UIS customelementdialog.ui + insertfragmentdialog.ui ) qt_wrap_ui(UI_SOURCES ${UIS}) target_sources(QtGui PRIVATE ${UI_SOURCES}) diff --git a/avogadro/qtplugins/insertfragment/insertfragmentdialog.cpp b/avogadro/qtgui/insertfragmentdialog.cpp similarity index 99% rename from avogadro/qtplugins/insertfragment/insertfragmentdialog.cpp rename to avogadro/qtgui/insertfragmentdialog.cpp index c9e9962f2b..177937a85a 100644 --- a/avogadro/qtplugins/insertfragment/insertfragmentdialog.cpp +++ b/avogadro/qtgui/insertfragmentdialog.cpp @@ -14,9 +14,8 @@ ******************************************************************************/ -#include "insertfragmentdialog.h" #include "ui_insertfragmentdialog.h" - +#include "insertfragmentdialog.h" #include "sortfiltertreeproxymodel.h" #include diff --git a/avogadro/qtplugins/insertfragment/insertfragmentdialog.h b/avogadro/qtgui/insertfragmentdialog.h similarity index 100% rename from avogadro/qtplugins/insertfragment/insertfragmentdialog.h rename to avogadro/qtgui/insertfragmentdialog.h diff --git a/avogadro/qtplugins/insertfragment/insertfragmentdialog.ui b/avogadro/qtgui/insertfragmentdialog.ui similarity index 100% rename from avogadro/qtplugins/insertfragment/insertfragmentdialog.ui rename to avogadro/qtgui/insertfragmentdialog.ui diff --git a/avogadro/qtplugins/insertfragment/sortfiltertreeproxymodel.cpp b/avogadro/qtgui/sortfiltertreeproxymodel.cpp similarity index 99% rename from avogadro/qtplugins/insertfragment/sortfiltertreeproxymodel.cpp rename to avogadro/qtgui/sortfiltertreeproxymodel.cpp index 94f2845b8f..89456ad5ad 100644 --- a/avogadro/qtplugins/insertfragment/sortfiltertreeproxymodel.cpp +++ b/avogadro/qtgui/sortfiltertreeproxymodel.cpp @@ -5,8 +5,6 @@ #include "sortfiltertreeproxymodel.h" -#include - namespace Avogadro { // Custom class for Avogadro to handle filtering files diff --git a/avogadro/qtplugins/insertfragment/sortfiltertreeproxymodel.h b/avogadro/qtgui/sortfiltertreeproxymodel.h similarity index 100% rename from avogadro/qtplugins/insertfragment/sortfiltertreeproxymodel.h rename to avogadro/qtgui/sortfiltertreeproxymodel.h diff --git a/avogadro/qtplugins/insertfragment/CMakeLists.txt b/avogadro/qtplugins/insertfragment/CMakeLists.txt index c67f35a406..3484257ca9 100644 --- a/avogadro/qtplugins/insertfragment/CMakeLists.txt +++ b/avogadro/qtplugins/insertfragment/CMakeLists.txt @@ -5,8 +5,7 @@ avogadro_plugin(InsertFragment ExtensionPlugin insertfragment.h InsertFragment - "insertfragment.cpp;insertfragmentdialog.cpp;sortfiltertreeproxymodel.cpp" - "insertfragmentdialog.ui" + insertfragment.cpp ) # Install the fragments & crystals diff --git a/avogadro/qtplugins/insertfragment/insertfragment.cpp b/avogadro/qtplugins/insertfragment/insertfragment.cpp index 99b6f5e58d..123c9e3c8a 100644 --- a/avogadro/qtplugins/insertfragment/insertfragment.cpp +++ b/avogadro/qtplugins/insertfragment/insertfragment.cpp @@ -4,7 +4,7 @@ ******************************************************************************/ #include "insertfragment.h" -#include "insertfragmentdialog.h" +#include #include #include @@ -13,7 +13,6 @@ #include #include -#include #include #include From 9f53d4cfac47459f7ac59baba5fdf5cd75536b3f Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Tue, 14 Nov 2023 15:38:43 -0500 Subject: [PATCH 05/56] Fix GFN-FF energy - redirect GFN-FF output through a hack Signed-off-by: Geoff Hutchison --- .../qtplugins/forcefield/scripts/gfnff.py | 62 ++++++++++++++++--- 1 file changed, 55 insertions(+), 7 deletions(-) diff --git a/avogadro/qtplugins/forcefield/scripts/gfnff.py b/avogadro/qtplugins/forcefield/scripts/gfnff.py index e8f5b1ae73..ddb0d44596 100644 --- a/avogadro/qtplugins/forcefield/scripts/gfnff.py +++ b/avogadro/qtplugins/forcefield/scripts/gfnff.py @@ -4,16 +4,59 @@ import argparse import json import sys +import os try: import numpy as np from xtb.libxtb import VERBOSITY_MUTED - from xtb.interface import Calculator, Param + from xtb.interface import Calculator, Param, Environment imported = True except ImportError: imported = False +# we need to redirect stdout +# this is from https://eli.thegreenplace.net/2015/redirecting-all-kinds-of-stdout-in-python/ +from contextlib import contextmanager +import ctypes +import io +import tempfile + +libc = ctypes.CDLL(None) + +@contextmanager +def stdout_redirector(stream): + # The original fd stdout points to. Usually 1 on POSIX systems. + original_stdout_fd = sys.stdout.fileno() + + def _redirect_stdout(to_fd): + """Redirect stdout to the given file descriptor.""" + # Flush the C-level buffer stdout + #libc.fflush(c_stdout) + # Flush and close sys.stdout - also closes the file descriptor (fd) + sys.stdout.close() + # Make original_stdout_fd point to the same file as to_fd + os.dup2(to_fd, original_stdout_fd) + # Create a new sys.stdout that points to the redirected fd + sys.stdout = io.TextIOWrapper(os.fdopen(original_stdout_fd, 'wb')) + + # Save a copy of the original stdout fd in saved_stdout_fd + saved_stdout_fd = os.dup(original_stdout_fd) + try: + # Create a temporary file and redirect stdout to it + tfile = tempfile.TemporaryFile(mode='w+b') + _redirect_stdout(tfile.fileno()) + # Yield to caller, then redirect stdout back to the saved fd + yield + _redirect_stdout(saved_stdout_fd) + # Copy contents of temporary file to the given stream + tfile.flush() + tfile.seek(0, io.SEEK_SET) + stream.write(tfile.read()) + finally: + tfile.close() + os.close(saved_stdout_fd) + def getMetaData(): # before we return metadata, make sure xtb is in the path @@ -57,16 +100,21 @@ def run(filename): if "totalSpinMultiplicity" in mol_cjson["properties"]: spin = mol_cjson["properties"]["totalSpinMultiplicity"] - calc = Calculator(Param.GFNFF, atoms, coordinates, + # xtb doesn't properly mute + # so we redirect stdout to a StringIO + # and then just ignore it + f = io.BytesIO() + with stdout_redirector(f): + calc = Calculator(Param.GFNFF, atoms, coordinates, charge=charge, uhf=spin) - calc.set_verbosity(VERBOSITY_MUTED) - res = calc.singlepoint() + calc.set_verbosity(VERBOSITY_MUTED) + res = calc.singlepoint() # we loop forever - Avogadro will kill our process when done while True: # read new coordinates from stdin for i in range(len(atoms)): - coordinates[i] = np.fromstring(input()) + coordinates[i] = np.fromstring(input(), sep=' ') # .. convert from Angstrom to Bohr coordinates /= 0.52917721067 @@ -74,8 +122,8 @@ def run(filename): calc.update(coordinates) calc.singlepoint(res) - # first print the energy of these coordinates print("AvogadroEnergy:", res.get_energy()) # in Hartree + # times 2625.5 kJ/mol # now print the gradient # .. we don't want the "[]" in the output @@ -87,7 +135,7 @@ def run(filename): if __name__ == "__main__": - parser = argparse.ArgumentParser("GFN2 calculator") + parser = argparse.ArgumentParser("GFN-FF calculator") parser.add_argument("--display-name", action="store_true") parser.add_argument("--metadata", action="store_true") parser.add_argument("-f", "--file", nargs=1) From 8652889b9799f3c1f398ece1627b88e5339c0f82 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sat, 18 Nov 2023 22:52:21 -0500 Subject: [PATCH 06/56] Fix insert fragment to use dialog moved into QtGui Signed-off-by: Geoff Hutchison --- avogadro/qtgui/insertfragmentdialog.cpp | 4 ++-- avogadro/qtgui/insertfragmentdialog.h | 12 +++++++----- avogadro/qtgui/insertfragmentdialog.ui | 4 ++-- avogadro/qtgui/sortfiltertreeproxymodel.cpp | 2 +- avogadro/qtgui/sortfiltertreeproxymodel.h | 12 +++++++----- avogadro/qtplugins/insertfragment/insertfragment.cpp | 3 ++- avogadro/qtplugins/insertfragment/insertfragment.h | 6 +++--- 7 files changed, 24 insertions(+), 19 deletions(-) diff --git a/avogadro/qtgui/insertfragmentdialog.cpp b/avogadro/qtgui/insertfragmentdialog.cpp index 177937a85a..c52dbb5e23 100644 --- a/avogadro/qtgui/insertfragmentdialog.cpp +++ b/avogadro/qtgui/insertfragmentdialog.cpp @@ -33,7 +33,7 @@ #include -namespace Avogadro::QtPlugins { +namespace Avogadro::QtGui { class InsertFragmentDialog::Private { @@ -233,4 +233,4 @@ void InsertFragmentDialog::activated() emit performInsert(currentFileName, m_implementation->crystalFiles); } -} // namespace Avogadro::QtPlugins +} // namespace Avogadro::QtGui diff --git a/avogadro/qtgui/insertfragmentdialog.h b/avogadro/qtgui/insertfragmentdialog.h index a9c45bf633..b751a0697a 100644 --- a/avogadro/qtgui/insertfragmentdialog.h +++ b/avogadro/qtgui/insertfragmentdialog.h @@ -3,13 +3,15 @@ This source code is released under the 3-Clause BSD License, (see "LICENSE"). ******************************************************************************/ -#ifndef AVOGADRO_QTPLUGINS_INSERTFRAGMENTDIALOG_H -#define AVOGADRO_QTPLUGINS_INSERTFRAGMENTDIALOG_H +#ifndef AVOGADRO_QTGUI_INSERTFRAGMENTDIALOG_H +#define AVOGADRO_QTGUI_INSERTFRAGMENTDIALOG_H + +#include "avogadroqtguiexport.h" #include namespace Avogadro { -namespace QtPlugins { +namespace QtGui { namespace Ui { class InsertFragmentDialog; @@ -18,7 +20,7 @@ class InsertFragmentDialog; /** * @brief Dialog to prompt a format and descriptor string. */ -class InsertFragmentDialog : public QDialog +class AVOGADROQTGUI_EXPORT InsertFragmentDialog : public QDialog { Q_OBJECT @@ -52,4 +54,4 @@ public Q_SLOTS: } // namespace QtPlugins } // namespace Avogadro -#endif // AVOGADRO_QTPLUGINS_InsertFragmentDIALOG_H +#endif // AVOGADRO_QTGUI_InsertFragmentDIALOG_H diff --git a/avogadro/qtgui/insertfragmentdialog.ui b/avogadro/qtgui/insertfragmentdialog.ui index cc3313318a..8455caebfa 100644 --- a/avogadro/qtgui/insertfragmentdialog.ui +++ b/avogadro/qtgui/insertfragmentdialog.ui @@ -1,7 +1,7 @@ - Avogadro::QtPlugins::InsertFragmentDialog - + Avogadro::QtGui::InsertFragmentDialog + 0 diff --git a/avogadro/qtgui/sortfiltertreeproxymodel.cpp b/avogadro/qtgui/sortfiltertreeproxymodel.cpp index 89456ad5ad..994bc6f0da 100644 --- a/avogadro/qtgui/sortfiltertreeproxymodel.cpp +++ b/avogadro/qtgui/sortfiltertreeproxymodel.cpp @@ -5,7 +5,7 @@ #include "sortfiltertreeproxymodel.h" -namespace Avogadro { +namespace Avogadro::QtGui { // Custom class for Avogadro to handle filtering files // Directories are at most 2 levels deep until we get to files diff --git a/avogadro/qtgui/sortfiltertreeproxymodel.h b/avogadro/qtgui/sortfiltertreeproxymodel.h index e99fd09a23..e372749bdf 100644 --- a/avogadro/qtgui/sortfiltertreeproxymodel.h +++ b/avogadro/qtgui/sortfiltertreeproxymodel.h @@ -3,14 +3,16 @@ This source code is released under the 3-Clause BSD License, (see "LICENSE"). ******************************************************************************/ -#ifndef SORTFILTERTREEPROXYMODEL_H -#define SORTFILTERTREEPROXYMODEL_H +#ifndef AVOGADRO_QTGUI_SORTFILTERTREEPROXYMODEL_H +#define AVOGADRO_QTGUI_SORTFILTERTREEPROXYMODEL_H + +#include "avogadroqtguiexport.h" #include -namespace Avogadro { +namespace Avogadro::QtGui { - class SortFilterTreeProxyModel: public QSortFilterProxyModel + class AVOGADROQTGUI_EXPORT SortFilterTreeProxyModel: public QSortFilterProxyModel { Q_OBJECT public: @@ -29,6 +31,6 @@ namespace Avogadro { QModelIndex m_sourceRoot; }; -} +} // End Avogadro QtGui namespace #endif diff --git a/avogadro/qtplugins/insertfragment/insertfragment.cpp b/avogadro/qtplugins/insertfragment/insertfragment.cpp index 123c9e3c8a..f2a4cba340 100644 --- a/avogadro/qtplugins/insertfragment/insertfragment.cpp +++ b/avogadro/qtplugins/insertfragment/insertfragment.cpp @@ -4,8 +4,8 @@ ******************************************************************************/ #include "insertfragment.h" -#include +#include #include #include #include @@ -21,6 +21,7 @@ using Avogadro::Io::FileFormatManager; using Avogadro::QtGui::Molecule; +using Avogadro::QtGui::InsertFragmentDialog; namespace Avogadro::QtPlugins { diff --git a/avogadro/qtplugins/insertfragment/insertfragment.h b/avogadro/qtplugins/insertfragment/insertfragment.h index 39f2b2fdad..cfbe9ad33f 100644 --- a/avogadro/qtplugins/insertfragment/insertfragment.h +++ b/avogadro/qtplugins/insertfragment/insertfragment.h @@ -16,7 +16,7 @@ namespace Avogadro { namespace Io { class FileFormat; } -namespace QtPlugins { +namespace QtGui { class InsertFragmentDialog; } @@ -46,8 +46,8 @@ private slots: private: QList m_actions; - InsertFragmentDialog* m_moleculeDialog; - InsertFragmentDialog* m_crystalDialog; + QtGui::InsertFragmentDialog* m_moleculeDialog; + QtGui::InsertFragmentDialog* m_crystalDialog; /// Maps identifier to extension: QMap m_formats; From 06679fc4de601a0df23e80e3059d5e73ca37bfea Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sat, 18 Nov 2023 22:53:04 -0500 Subject: [PATCH 07/56] Add support for settings in template tool (remember previous options) Signed-off-by: Geoff Hutchison --- .../templatetool/templatetoolwidget.cpp | 109 ++++++++++++------ .../templatetool/templatetoolwidget.h | 3 + 2 files changed, 79 insertions(+), 33 deletions(-) diff --git a/avogadro/qtplugins/templatetool/templatetoolwidget.cpp b/avogadro/qtplugins/templatetool/templatetoolwidget.cpp index a9b310fc8f..fc4d6a1c3b 100644 --- a/avogadro/qtplugins/templatetool/templatetoolwidget.cpp +++ b/avogadro/qtplugins/templatetool/templatetoolwidget.cpp @@ -8,6 +8,7 @@ #include +#include #include #include @@ -39,29 +40,18 @@ enum LigandType }; TemplateToolWidget::TemplateToolWidget(QWidget* parent_) - : QWidget(parent_), m_ui(new Ui::TemplateToolWidget), m_elementSelector(NULL), - m_currentElement(26) + : QWidget(parent_), m_ui(new Ui::TemplateToolWidget), + m_elementSelector(nullptr), m_fragmentDialog(nullptr), m_currentElement(26) { m_ui->setupUi(this); buildElements(); - connect(m_ui->elementComboBox, SIGNAL(currentIndexChanged(int)), this, - SLOT(elementChanged(int))); - - connect(m_ui->coordinationComboBox, SIGNAL(currentIndexChanged(int)), this, - SLOT(coordinationChanged(int))); - - connect(m_ui->typeComboBox, SIGNAL(currentIndexChanged(int)), this, - SLOT(typeChanged(int))); - - connect(m_ui->ligandComboBox, SIGNAL(currentIndexChanged(int)), this, - SLOT(ligandChanged(int))); - - // Show iron at startup. - selectElement(26); - // default coordination = octahedral - m_ui->centerPreview->setIcon(QIcon(":/icons/centers/6-oct.png")); + // Get default options + QSettings settings; + settings.beginGroup("templatetool"); + unsigned int currentElement = settings.value("element", 26).toUInt(); + selectElement(currentElement); // In the same order of the coordinationComboBox // append ".png" for the icon and ".cjson" for the template @@ -77,7 +67,33 @@ TemplateToolWidget::TemplateToolWidget(QWidget* parent_) << "7-pbp" << "8-sqa"; - typeChanged(LigandType::Monodentate); + connect(m_ui->elementComboBox, SIGNAL(currentIndexChanged(int)), this, + SLOT(elementChanged(int))); + + connect(m_ui->coordinationComboBox, SIGNAL(currentIndexChanged(int)), this, + SLOT(coordinationChanged(int))); + + connect(m_ui->typeComboBox, SIGNAL(currentIndexChanged(int)), this, + SLOT(typeChanged(int))); + + connect(m_ui->ligandComboBox, SIGNAL(currentIndexChanged(int)), this, + SLOT(ligandChanged(int))); + + // default coordination = octahedral + QString currentCoord = settings.value("coordination", "6-oct").toString(); + int index = m_centers.indexOf(currentCoord); + if (index < 0) + index = 7; // octahedral + m_ui->coordinationComboBox->setCurrentIndex(index); + + // update the preview icon + QString iconPath = QString(":/icons/centers/%1.png").arg(currentCoord); + m_ui->centerPreview->setIcon(QIcon(iconPath)); + + unsigned int ligandType = settings.value("ligandType", 0).toUInt(); + m_ui->typeComboBox->setCurrentIndex(ligandType); + // update the ligand combo box + typeChanged(ligandType); } TemplateToolWidget::~TemplateToolWidget() @@ -150,6 +166,9 @@ void TemplateToolWidget::coordinationChanged(int index) // get the icon name QString iconName = m_centers[index]; + QSettings settings; + settings.setValue("templatetool/coordination", iconName); + m_ui->centerPreview->setIcon(QIcon(":/icons/centers/" + iconName + ".png")); } @@ -160,11 +179,26 @@ void TemplateToolWidget::ligandChanged(int index) // get the icon name QString iconName = m_ligands[index]; + + // check if it's "other" + if (iconName.endsWith("-other")) { + if (!m_fragmentDialog) { + m_fragmentDialog = new QtGui::InsertFragmentDialog(this); + connect(m_fragmentDialog, SIGNAL(accepted()), this, SLOT(accepted())); + } + m_fragmentDialog->show(); + return; + } + m_ui->ligandPreview->setIcon(QIcon(":/icons/ligands/" + iconName + ".png")); } void TemplateToolWidget::typeChanged(int index) { + QSettings settings; + settings.beginGroup("templatetool"); + settings.setValue("ligandType", index); + m_selectedUIDs.clear(); m_ui->ligandComboBox->clear(); m_ligands = QStringList(); @@ -176,50 +210,56 @@ void TemplateToolWidget::typeChanged(int index) << "carbonyl" << "cyano" << "phosphine" - << "thiol"; + << "thiol" << tr("Other…"); m_ligands << "1-ammine" << "1-aqua" << "1-carbonyl" << "1-cyano" << "1-phosphine" - << "1-thiol"; + << "1-thiol" + << "1-other"; m_denticity = 1; break; case LigandType::Bidentate: // Bidentate ligandNames << "acetylacetonate" << "bipyridine" - << "ethylenediamine"; + << "ethylenediamine" << tr("Other…"); m_ligands << "2-acetylacetonate" << "2-bipyridine" - << "2-ethylenediamine"; + << "2-ethylenediamine" + << "2-other"; m_denticity = 2; break; case LigandType::Tridentate: // Tridentate - ligandNames << "terpyridine"; - m_ligands << "3-terpyridine"; + ligandNames << "terpyridine" << tr("Other…"); + m_ligands << "3-terpyridine" + << "3-other"; m_denticity = 3; break; case LigandType::Tetradentate: // Tetradentate ligandNames << "phthalocyanine" << "porphin" - << "salen"; + << "salen" << tr("Other…"); m_ligands << "4-phthalocyanine" << "4-porphin" - << "4-salen"; + << "4-salen" + << "4-other"; m_denticity = 4; break; case LigandType::Hexadentate: // Hexadentate - ligandNames << "edta"; - m_ligands << "6-edta"; + ligandNames << "edta" << tr("Other…"); + m_ligands << "6-edta" + << "6-other"; m_denticity = 6; break; case LigandType::Haptic: // Haptic ligandNames << "η2-ethylene" << "η5-cyclopentyl" - << "η6-benzene"; + << "η6-benzene" << tr("Other…"); m_ligands << "eta2-ethylene" << "eta5-cyclopentyl" - << "eta6-benzene"; + << "eta6-benzene" + << "eta-other"; m_denticity = 1; break; case LigandType::FunctionalGroup: // Functional Groups @@ -228,7 +268,7 @@ void TemplateToolWidget::typeChanged(int index) << "ester" << "nitro" << "phenyl" - << "sulfonate"; + << "sulfonate" << tr("Other…"); m_ligands = ligandNames; m_denticity = 1; break; @@ -261,6 +301,9 @@ void TemplateToolWidget::elementChanged(int index) m_currentElement = static_cast(itemData.toInt()); } } + + QSettings settings; + settings.setValue("templatetool/element", m_currentElement); } void TemplateToolWidget::updateElementCombo() @@ -285,7 +328,7 @@ void TemplateToolWidget::updateElementCombo() atomicNum); } m_ui->elementComboBox->insertSeparator(m_ui->elementComboBox->count()); - m_ui->elementComboBox->addItem(tr("Other..."), ELEMENT_SELECTOR_TAG); + m_ui->elementComboBox->addItem(tr("Other…"), ELEMENT_SELECTOR_TAG); // Reset the element if it still exists selectElement(static_cast( diff --git a/avogadro/qtplugins/templatetool/templatetoolwidget.h b/avogadro/qtplugins/templatetool/templatetoolwidget.h index 274c27d05e..8fe7451d55 100644 --- a/avogadro/qtplugins/templatetool/templatetoolwidget.h +++ b/avogadro/qtplugins/templatetool/templatetoolwidget.h @@ -11,6 +11,7 @@ namespace Avogadro { namespace QtGui { class PeriodicTableView; +class InsertFragmentDialog; } namespace QtPlugins { @@ -60,12 +61,14 @@ private slots: void saveElements(); Ui::TemplateToolWidget *m_ui; + QtGui::InsertFragmentDialog *m_fragmentDialog; QtGui::PeriodicTableView *m_elementSelector; QList m_defaultElements; QList m_userElements; unsigned char m_currentElement; QStringList m_centers; QStringList m_ligands; + QString m_ligandPath; int m_denticity; std::vector m_selectedUIDs; From c1ea51ed7310258e10d55db2e5aca4bb3f87ba99 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sat, 18 Nov 2023 23:45:40 -0500 Subject: [PATCH 08/56] Add support for inserting fragments from library Signed-off-by: Geoff Hutchison --- .../qtplugins/templatetool/templatetool.cpp | 11 ++- .../templatetool/templatetoolwidget.cpp | 67 +++++++++++++++++-- .../templatetool/templatetoolwidget.h | 2 + 3 files changed, 74 insertions(+), 6 deletions(-) diff --git a/avogadro/qtplugins/templatetool/templatetool.cpp b/avogadro/qtplugins/templatetool/templatetool.cpp index c40bbd79d8..863026428d 100644 --- a/avogadro/qtplugins/templatetool/templatetool.cpp +++ b/avogadro/qtplugins/templatetool/templatetool.cpp @@ -408,8 +408,15 @@ void TemplateTool::atomLeftClick(QMouseEvent*) return; } else { - QFile templ(":/templates/ligands/" + m_toolWidget->ligandString() + - ".cjson"); + QString path; + if (m_toolWidget->ligandString().endsWith(".cjson")) { + // we already have the full path .. from the insert browser + path = m_toolWidget->ligandString(); + } else { + path = ":/templates/ligands/" + m_toolWidget->ligandString() + ".cjson"; + } + + QFile templ(path); if (!templ.open(QFile::ReadOnly | QFile::Text)) return; QTextStream templateStream(&templ); diff --git a/avogadro/qtplugins/templatetool/templatetoolwidget.cpp b/avogadro/qtplugins/templatetool/templatetoolwidget.cpp index fc4d6a1c3b..2eeee329e6 100644 --- a/avogadro/qtplugins/templatetool/templatetoolwidget.cpp +++ b/avogadro/qtplugins/templatetool/templatetoolwidget.cpp @@ -156,6 +156,10 @@ QString TemplateToolWidget::ligandString() const // tell us if we are using the clipboard if (m_ui->typeComboBox->currentIndex() == LigandType::Clipboard) return "Clipboard"; + // check if it's "other" + if (m_ligands.at(m_ui->ligandComboBox->currentIndex()).endsWith("other")) + return m_ligandPath; + return m_ligands.at(m_ui->ligandComboBox->currentIndex()); } @@ -181,11 +185,43 @@ void TemplateToolWidget::ligandChanged(int index) QString iconName = m_ligands[index]; // check if it's "other" - if (iconName.endsWith("-other")) { - if (!m_fragmentDialog) { - m_fragmentDialog = new QtGui::InsertFragmentDialog(this); - connect(m_fragmentDialog, SIGNAL(accepted()), this, SLOT(accepted())); + if (iconName.endsWith("other")) { + + // figure out the ligand type and the resulting path + // to the fragment files + int ligandType = m_ui->typeComboBox->currentIndex(); + QString path = "fragments"; + + switch (ligandType) { + case LigandType::Monodentate: + path += "/ligands/monodentate"; + break; + case LigandType::Bidentate: + path += "/ligands/bidentate"; + break; + case LigandType::Tridentate: + path += "/ligands/tridentate"; + break; + case LigandType::Tetradentate: + path += "/ligands/tetradentate"; + break; + case LigandType::Hexadentate: + path += "/ligands/hexadentate"; + break; + case LigandType::Haptic: + path += "/ligands/haptic"; + break; + case LigandType::FunctionalGroup: + path += "/groups"; + break; } + + if (m_fragmentDialog != nullptr) + m_fragmentDialog->deleteLater(); + + m_fragmentDialog = new QtGui::InsertFragmentDialog(this, path); + connect(m_fragmentDialog, SIGNAL(performInsert(const QString&, bool)), this, + SLOT(otherLigandInsert(const QString&, bool))); m_fragmentDialog->show(); return; } @@ -193,6 +229,27 @@ void TemplateToolWidget::ligandChanged(int index) m_ui->ligandPreview->setIcon(QIcon(":/icons/ligands/" + iconName + ".png")); } +void TemplateToolWidget::otherLigandInsert(const QString& fileName, bool crystal) +{ + if (m_fragmentDialog == nullptr) + return; + + // get the ligand name + QString ligandName = m_fragmentDialog->fileName(); + m_ligandPath = ligandName; + + m_fragmentDialog->hide(); + // it will be deleted later + + // update the icon from the filename (so check for .png) + QString iconName = fileName; + if (iconName.endsWith(".cjson")) + iconName.chop(6); + iconName += ".png"; + m_ui->ligandPreview->setIcon(QIcon(iconName)); +} + + void TemplateToolWidget::typeChanged(int index) { QSettings settings; @@ -270,6 +327,8 @@ void TemplateToolWidget::typeChanged(int index) << "phenyl" << "sulfonate" << tr("Other…"); m_ligands = ligandNames; + // make sure last one is "other" + m_ligands.last() = "1-other"; m_denticity = 1; break; case LigandType::Clipboard: // Clipboard diff --git a/avogadro/qtplugins/templatetool/templatetoolwidget.h b/avogadro/qtplugins/templatetool/templatetoolwidget.h index 8fe7451d55..5f209c96a0 100644 --- a/avogadro/qtplugins/templatetool/templatetoolwidget.h +++ b/avogadro/qtplugins/templatetool/templatetoolwidget.h @@ -55,6 +55,8 @@ private slots: void typeChanged(int index); void ligandChanged(int index); + void otherLigandInsert(const QString& fileName, bool crystal); + private: void buildElements(); void buildBondOrders(); From a35d7f72f11b2b291d5c35665e1bfe7d67a93d06 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sun, 19 Nov 2023 00:02:30 -0500 Subject: [PATCH 09/56] Fix formatting Signed-off-by: Geoff Hutchison --- avogadro/qtgui/insertfragmentdialog.cpp | 5 +- avogadro/qtgui/insertfragmentdialog.h | 2 +- avogadro/qtgui/sortfiltertreeproxymodel.cpp | 106 +++++++++--------- avogadro/qtgui/sortfiltertreeproxymodel.h | 43 +++---- .../insertfragment/insertfragment.cpp | 6 +- .../qtplugins/insertfragment/insertfragment.h | 6 +- .../templatetool/templatetoolwidget.cpp | 4 +- .../templatetool/templatetoolwidget.h | 20 ++-- 8 files changed, 100 insertions(+), 92 deletions(-) diff --git a/avogadro/qtgui/insertfragmentdialog.cpp b/avogadro/qtgui/insertfragmentdialog.cpp index c52dbb5e23..b1b514c3b0 100644 --- a/avogadro/qtgui/insertfragmentdialog.cpp +++ b/avogadro/qtgui/insertfragmentdialog.cpp @@ -14,9 +14,9 @@ ******************************************************************************/ -#include "ui_insertfragmentdialog.h" #include "insertfragmentdialog.h" #include "sortfiltertreeproxymodel.h" +#include "ui_insertfragmentdialog.h" #include @@ -117,7 +117,8 @@ InsertFragmentDialog::InsertFragmentDialog(QWidget* aParent, QString directory, if (m_implementation->crystalFiles) filters << "*.cif"; else - filters << "*.cjson" << "*.cml"; + filters << "*.cjson" + << "*.cml"; m_implementation->model->setNameFilters(filters); m_implementation->proxy = new SortFilterTreeProxyModel(this); diff --git a/avogadro/qtgui/insertfragmentdialog.h b/avogadro/qtgui/insertfragmentdialog.h index b751a0697a..9655fd3053 100644 --- a/avogadro/qtgui/insertfragmentdialog.h +++ b/avogadro/qtgui/insertfragmentdialog.h @@ -52,6 +52,6 @@ public Q_SLOTS: Private* m_implementation; }; -} // namespace QtPlugins +} // namespace QtGui } // namespace Avogadro #endif // AVOGADRO_QTGUI_InsertFragmentDIALOG_H diff --git a/avogadro/qtgui/sortfiltertreeproxymodel.cpp b/avogadro/qtgui/sortfiltertreeproxymodel.cpp index 994bc6f0da..7eb1a07572 100644 --- a/avogadro/qtgui/sortfiltertreeproxymodel.cpp +++ b/avogadro/qtgui/sortfiltertreeproxymodel.cpp @@ -7,64 +7,66 @@ namespace Avogadro::QtGui { - // Custom class for Avogadro to handle filtering files - // Directories are at most 2 levels deep until we get to files - bool SortFilterTreeProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex& sourceParent) const - { - // First we see if we're the source root node - QModelIndex sourceIndex = sourceModel()->index(sourceRow, 0, sourceParent); - if (!sourceIndex.isValid() || !sourceParent.isValid()) - return true; // viewer will handle filtering - // Make sure the root is always accepted, or we become rootless - // See http://stackoverflow.com/questions/3212392/qtreeview-qfilesystemmodel-setrootpath-and-qsortfilterproxymodel-with-regexp-fo - if (m_sourceRoot.isValid() && sourceIndex == m_sourceRoot) { - return true; // true root, always accept - } +// Custom class for Avogadro to handle filtering files +// Directories are at most 2 levels deep until we get to files +bool SortFilterTreeProxyModel::filterAcceptsRow( + int sourceRow, const QModelIndex& sourceParent) const +{ + // First we see if we're the source root node + QModelIndex sourceIndex = sourceModel()->index(sourceRow, 0, sourceParent); + if (!sourceIndex.isValid() || !sourceParent.isValid()) + return true; // viewer will handle filtering + // Make sure the root is always accepted, or we become rootless + // See + // http://stackoverflow.com/questions/3212392/qtreeview-qfilesystemmodel-setrootpath-and-qsortfilterproxymodel-with-regexp-fo + if (m_sourceRoot.isValid() && sourceIndex == m_sourceRoot) { + return true; // true root, always accept + } - // Now we see if we're a child of the root - // If not, we accept -- only filter under *our* tree - // Along the way, we'll see if a parent matches the filter - if (sourceParent != m_sourceRoot) { - bool childOfRoot = false; - QModelIndex parent = sourceParent; - for (int depth = 3; depth > 0; depth--) { - if (sourceModel()->data(parent).toString().contains(filterRegExp())) - return true; // a parent matches the pattern + // Now we see if we're a child of the root + // If not, we accept -- only filter under *our* tree + // Along the way, we'll see if a parent matches the filter + if (sourceParent != m_sourceRoot) { + bool childOfRoot = false; + QModelIndex parent = sourceParent; + for (int depth = 3; depth > 0; depth--) { + if (sourceModel()->data(parent).toString().contains(filterRegExp())) + return true; // a parent matches the pattern - parent = parent.parent(); - if (!parent.isValid()) - return true; // tree view handles filtering, and we ascended too far - if (parent == m_sourceRoot) { - childOfRoot = true; - break; - } + parent = parent.parent(); + if (!parent.isValid()) + return true; // tree view handles filtering, and we ascended too far + if (parent == m_sourceRoot) { + childOfRoot = true; + break; } - // OK, we've gone up the tree, did we find our root? - if (!childOfRoot) - return true; } - // else, sourceParent is a root, so we're good to filter - - // Check if the data for this row matches. If so, the default is to accept - QString data = sourceModel()->data(sourceIndex).toString(); - if (data.contains(filterRegExp())) + // OK, we've gone up the tree, did we find our root? + if (!childOfRoot) return true; + } + // else, sourceParent is a root, so we're good to filter - // Now we have to check the child nodes - // We'll show the row if any child is accepted - // (i.e., if a file matches, we'll show the directory path to it) - // Try to fetchMore() first - sourceModel()->fetchMore(sourceIndex); - for(int i = 0; i < sourceModel()->rowCount(sourceIndex); ++i) { - QModelIndex subRow = sourceModel()->index(i, 0, sourceIndex); - if (!subRow.isValid()) - continue; + // Check if the data for this row matches. If so, the default is to accept + QString data = sourceModel()->data(sourceIndex).toString(); + if (data.contains(filterRegExp())) + return true; - QString rowData = sourceModel()->data(subRow).toString(); - if (rowData.contains(filterRegExp())) - return true; - } - return false; // nothing matched - } + // Now we have to check the child nodes + // We'll show the row if any child is accepted + // (i.e., if a file matches, we'll show the directory path to it) + // Try to fetchMore() first + sourceModel()->fetchMore(sourceIndex); + for (int i = 0; i < sourceModel()->rowCount(sourceIndex); ++i) { + QModelIndex subRow = sourceModel()->index(i, 0, sourceIndex); + if (!subRow.isValid()) + continue; + QString rowData = sourceModel()->data(subRow).toString(); + if (rowData.contains(filterRegExp())) + return true; + } + return false; // nothing matched } + +} // namespace Avogadro::QtGui diff --git a/avogadro/qtgui/sortfiltertreeproxymodel.h b/avogadro/qtgui/sortfiltertreeproxymodel.h index e372749bdf..36d77bacbe 100644 --- a/avogadro/qtgui/sortfiltertreeproxymodel.h +++ b/avogadro/qtgui/sortfiltertreeproxymodel.h @@ -12,25 +12,30 @@ namespace Avogadro::QtGui { - class AVOGADROQTGUI_EXPORT SortFilterTreeProxyModel: public QSortFilterProxyModel +class AVOGADROQTGUI_EXPORT SortFilterTreeProxyModel + : public QSortFilterProxyModel +{ + Q_OBJECT +public: + SortFilterTreeProxyModel(QObject* parent = nullptr) + : QSortFilterProxyModel(parent), m_sourceRoot() { - Q_OBJECT - public: - SortFilterTreeProxyModel(QObject* parent = nullptr) - : QSortFilterProxyModel(parent), m_sourceRoot() - {} - // From http://kodeclutz.blogspot.com/2008/12/filtering-qtreeview.html - bool filterAcceptsRow(int sourceRow, const QModelIndex& sourceParent) const; - - // This is a hack to prevent us from becoming root-less - // See http://stackoverflow.com/questions/3212392/qtreeview-qfilesystemmodel-setrootpath-and-qsortfilterproxymodel-with-regexp-fo - void setSourceRoot(const QModelIndex &sourceRoot) - { m_sourceRoot = sourceRoot; } - - private: - QModelIndex m_sourceRoot; - }; - -} // End Avogadro QtGui namespace + } + // From http://kodeclutz.blogspot.com/2008/12/filtering-qtreeview.html + bool filterAcceptsRow(int sourceRow, const QModelIndex& sourceParent) const; + + // This is a hack to prevent us from becoming root-less + // See + // http://stackoverflow.com/questions/3212392/qtreeview-qfilesystemmodel-setrootpath-and-qsortfilterproxymodel-with-regexp-fo + void setSourceRoot(const QModelIndex& sourceRoot) + { + m_sourceRoot = sourceRoot; + } + +private: + QModelIndex m_sourceRoot; +}; + +} // namespace Avogadro::QtGui #endif diff --git a/avogadro/qtplugins/insertfragment/insertfragment.cpp b/avogadro/qtplugins/insertfragment/insertfragment.cpp index f2a4cba340..6a1cd8a7e6 100644 --- a/avogadro/qtplugins/insertfragment/insertfragment.cpp +++ b/avogadro/qtplugins/insertfragment/insertfragment.cpp @@ -5,8 +5,8 @@ #include "insertfragment.h" -#include #include +#include #include #include @@ -20,8 +20,8 @@ #include using Avogadro::Io::FileFormatManager; -using Avogadro::QtGui::Molecule; using Avogadro::QtGui::InsertFragmentDialog; +using Avogadro::QtGui::Molecule; namespace Avogadro::QtPlugins { @@ -123,4 +123,4 @@ void InsertFragment::performInsert(const QString& fileName, bool crystal) } } -} // namespace Avogadro +} // namespace Avogadro::QtPlugins diff --git a/avogadro/qtplugins/insertfragment/insertfragment.h b/avogadro/qtplugins/insertfragment/insertfragment.h index cfbe9ad33f..5db01c54f7 100644 --- a/avogadro/qtplugins/insertfragment/insertfragment.h +++ b/avogadro/qtplugins/insertfragment/insertfragment.h @@ -17,13 +17,13 @@ namespace Io { class FileFormat; } namespace QtGui { -class InsertFragmentDialog; +class InsertFragmentDialog; } namespace QtPlugins { /** - * @brief Load single-line molecule descriptors through an input dialog. + * @brief Load molecules through a tree browser. */ class InsertFragment : public QtGui::ExtensionPlugin { @@ -42,7 +42,7 @@ public slots: private slots: void showDialog(); - void performInsert(const QString &fileName, bool crystal); + void performInsert(const QString& fileName, bool crystal); private: QList m_actions; diff --git a/avogadro/qtplugins/templatetool/templatetoolwidget.cpp b/avogadro/qtplugins/templatetool/templatetoolwidget.cpp index 2eeee329e6..7191d61b7b 100644 --- a/avogadro/qtplugins/templatetool/templatetoolwidget.cpp +++ b/avogadro/qtplugins/templatetool/templatetoolwidget.cpp @@ -229,7 +229,8 @@ void TemplateToolWidget::ligandChanged(int index) m_ui->ligandPreview->setIcon(QIcon(":/icons/ligands/" + iconName + ".png")); } -void TemplateToolWidget::otherLigandInsert(const QString& fileName, bool crystal) +void TemplateToolWidget::otherLigandInsert(const QString& fileName, + bool crystal) { if (m_fragmentDialog == nullptr) return; @@ -249,7 +250,6 @@ void TemplateToolWidget::otherLigandInsert(const QString& fileName, bool crystal m_ui->ligandPreview->setIcon(QIcon(iconName)); } - void TemplateToolWidget::typeChanged(int index) { QSettings settings; diff --git a/avogadro/qtplugins/templatetool/templatetoolwidget.h b/avogadro/qtplugins/templatetool/templatetoolwidget.h index 5f209c96a0..1889a6ce10 100644 --- a/avogadro/qtplugins/templatetool/templatetoolwidget.h +++ b/avogadro/qtplugins/templatetool/templatetoolwidget.h @@ -12,7 +12,7 @@ namespace Avogadro { namespace QtGui { class PeriodicTableView; class InsertFragmentDialog; -} +} // namespace QtGui namespace QtPlugins { @@ -25,7 +25,7 @@ class TemplateToolWidget : public QWidget Q_OBJECT public: - explicit TemplateToolWidget(QWidget *parent_ = 0); + explicit TemplateToolWidget(QWidget* parent_ = 0); ~TemplateToolWidget(); void setAtomicNumber(unsigned char atomicNum); @@ -39,9 +39,9 @@ class TemplateToolWidget : public QWidget unsigned char ligand() const; QString ligandString() const; - + int denticity() const; - std::vector &selectedUIDs(); + std::vector& selectedUIDs(); private slots: void elementChanged(int index); @@ -49,9 +49,9 @@ private slots: void addUserElement(unsigned char element); void elementSelectedFromTable(int element); void selectElement(unsigned char element); - + void coordinationChanged(int index); - + void typeChanged(int index); void ligandChanged(int index); @@ -62,16 +62,16 @@ private slots: void buildBondOrders(); void saveElements(); - Ui::TemplateToolWidget *m_ui; - QtGui::InsertFragmentDialog *m_fragmentDialog; - QtGui::PeriodicTableView *m_elementSelector; + Ui::TemplateToolWidget* m_ui; + QtGui::InsertFragmentDialog* m_fragmentDialog; + QtGui::PeriodicTableView* m_elementSelector; QList m_defaultElements; QList m_userElements; unsigned char m_currentElement; QStringList m_centers; QStringList m_ligands; QString m_ligandPath; - + int m_denticity; std::vector m_selectedUIDs; }; From c3d124f561743d2aaf8b22c8bb3ba8a86ebcb962 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sun, 19 Nov 2023 08:32:15 -0500 Subject: [PATCH 10/56] Add better tooltip Signed-off-by: Geoff Hutchison --- avogadro/qtplugins/templatetool/templatetool.cpp | 8 ++++++++ avogadro/qtplugins/templatetool/templatetool.h | 15 +++++---------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/avogadro/qtplugins/templatetool/templatetool.cpp b/avogadro/qtplugins/templatetool/templatetool.cpp index 863026428d..6016c14b97 100644 --- a/avogadro/qtplugins/templatetool/templatetool.cpp +++ b/avogadro/qtplugins/templatetool/templatetool.cpp @@ -80,6 +80,14 @@ TemplateTool::TemplateTool(QObject* parent_) { m_activateAction->setText(tr("Template")); m_activateAction->setIcon(QIcon(":/icons/template.png")); + m_activateAction->setToolTip( + tr("Template Tool\n\n" + "Insert fragments, including metal centers.\n" + "Select an element and coordination geometry," + "then click to insert a fragment.\n\n" + "Select a ligand or functional group and click" + "on a hydrogen atom to attach it.")); + reset(); } diff --git a/avogadro/qtplugins/templatetool/templatetool.h b/avogadro/qtplugins/templatetool/templatetool.h index e8c1777fe7..5979c510ed 100644 --- a/avogadro/qtplugins/templatetool/templatetool.h +++ b/avogadro/qtplugins/templatetool/templatetool.h @@ -19,10 +19,11 @@ namespace QtPlugins { class TemplateToolWidget; /** - * @class TemplateTool templatetool.h + * @class TemplateTool templatetool.h + * @brief The Template tool inserts fragments, including metal centers. * @author Geoffrey R. Hutchison, Aritz, Erkiaga - + */ class TemplateTool : public QtGui::ToolPlugin { @@ -43,15 +44,9 @@ class TemplateTool : public QtGui::ToolPlugin m_molecule = mol->undoMolecule(); } - void setEditMolecule(QtGui::RWMolecule* mol) override - { - m_molecule = mol; - } + void setEditMolecule(QtGui::RWMolecule* mol) override { m_molecule = mol; } - void setGLWidget(QtOpenGL::GLWidget* widget) override - { - m_glWidget = widget; - } + void setGLWidget(QtOpenGL::GLWidget* widget) override { m_glWidget = widget; } void setGLRenderer(Rendering::GLRenderer* renderer) override { From b47cd1b29311df95794cd238d3bdbcd3142c53a7 Mon Sep 17 00:00:00 2001 From: ghutchis Date: Sun, 19 Nov 2023 14:57:55 +0000 Subject: [PATCH 11/56] Automated translation updates Signed-off-by: GitHub --- i18n/avogadrolibs.pot | 168 ++++++++++++++++++++++-------------------- 1 file changed, 89 insertions(+), 79 deletions(-) diff --git a/i18n/avogadrolibs.pot b/i18n/avogadrolibs.pot index 4c85805b98..546dff438c 100644 --- a/i18n/avogadrolibs.pot +++ b/i18n/avogadrolibs.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Avogadro 1.98.0\n" +"Project-Id-Version: Avogadro 1.98.1\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-10-29 02:01+0000\n" +"POT-Creation-Date: 2023-11-19 14:57+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -955,65 +955,60 @@ msgstr "" msgid "Select executable:" msgstr "" -#: qtgui/fileformatdialog.cpp:48 -msgid "" -"The file name contains invalid characters. Please choose another file name." -msgstr "" - -#: qtgui/fileformatdialog.cpp:60 +#: qtgui/fileformatdialog.cpp:52 msgid "Unable to find a suitable file reader for the selected file." msgstr "" -#: qtgui/fileformatdialog.cpp:108 +#: qtgui/fileformatdialog.cpp:100 msgid "" "The file extension is missing, so the format cannot be determined.Do you " "want to add it?" msgstr "" -#: qtgui/fileformatdialog.cpp:122 +#: qtgui/fileformatdialog.cpp:114 msgid "Unable to find a suitable file writer for the selected format." msgstr "" -#: qtgui/fileformatdialog.cpp:171 +#: qtgui/fileformatdialog.cpp:163 msgctxt "File handlers" msgid "handlers" msgstr "" -#: qtgui/fileformatdialog.cpp:172 +#: qtgui/fileformatdialog.cpp:164 msgctxt "e.g. file handlers that can 'handle' this file." msgid "handle" msgstr "" -#: qtgui/fileformatdialog.cpp:176 +#: qtgui/fileformatdialog.cpp:168 msgctxt "File readers" msgid "readers" msgstr "" -#: qtgui/fileformatdialog.cpp:177 +#: qtgui/fileformatdialog.cpp:169 msgctxt "e.g. file readers that can 'read' this file." msgid "read" msgstr "" -#: qtgui/fileformatdialog.cpp:181 +#: qtgui/fileformatdialog.cpp:173 msgctxt "File writers" msgid "writers" msgstr "" -#: qtgui/fileformatdialog.cpp:182 +#: qtgui/fileformatdialog.cpp:174 msgctxt "e.g. file writers that can 'write' this file." msgid "write" msgstr "" -#: qtgui/fileformatdialog.cpp:187 +#: qtgui/fileformatdialog.cpp:179 #, qt-format msgid "Multiple %1 found that can %2 this format. Which should be used?" msgstr "" -#: qtgui/fileformatdialog.cpp:287 +#: qtgui/fileformatdialog.cpp:279 msgid "All files" msgstr "" -#: qtgui/fileformatdialog.cpp:290 +#: qtgui/fileformatdialog.cpp:282 msgid "All supported formats" msgstr "" @@ -1288,7 +1283,7 @@ msgstr "" #. i18n: file: qtplugins/selectiontool/selectiontoolwidget.ui:39 #. i18n: ectx: property (text), widget (QLabel, label) #: qtgui/rwlayermanager.cpp:220 qtgui/rwlayermanager.cpp:223 -#: qtplugins/select/select.cpp:527 +#: qtplugins/select/select.cpp:548 #: qtplugins/selectiontool/selectiontool.cpp:254 :1567 msgid "Change Layer" msgstr "" @@ -1308,7 +1303,7 @@ msgstr "" #. i18n: file: qtplugins/editor/editortoolwidget.ui:43 #. i18n: ectx: property (text), widget (QCheckBox, adjustHydrogens) -#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114 :447 +#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114 :459 msgid "Adjust Hydrogens" msgstr "" @@ -1567,7 +1562,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsDialog) -#: qtplugins/apbs/apbs.h:31 :84 +#: qtplugins/apbs/apbs.h:31 :96 msgid "APBS" msgstr "" @@ -1630,7 +1625,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsoutputdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsOutputDialog) -#: qtplugins/apbs/apbsdialog.cpp:178 :144 +#: qtplugins/apbs/apbsdialog.cpp:178 :156 msgid "Success" msgstr "" @@ -1749,7 +1744,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:122 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:756 :171 rc.cpp:1615 +#: qtplugins/surfaces/surfaces.cpp:756 :183 rc.cpp:1615 msgctxt "colormap" msgid "Spectral" msgstr "" @@ -1759,7 +1754,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:169 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:124 -#: qtplugins/surfaces/surfaces.cpp:758 :168 rc.cpp:1612 +#: qtplugins/surfaces/surfaces.cpp:758 :180 rc.cpp:1612 msgctxt "colormap" msgid "Coolwarm" msgstr "" @@ -1769,7 +1764,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:159 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:126 -#: qtplugins/surfaces/surfaces.cpp:760 :162 rc.cpp:1606 +#: qtplugins/surfaces/surfaces.cpp:760 :174 rc.cpp:1606 msgctxt "colormap" msgid "Balance" msgstr "" @@ -1779,7 +1774,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:164 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:128 -#: qtplugins/surfaces/surfaces.cpp:762 :165 rc.cpp:1609 +#: qtplugins/surfaces/surfaces.cpp:762 :177 rc.cpp:1609 msgctxt "colormap" msgid "Blue-DarkRed" msgstr "" @@ -1791,7 +1786,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:130 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:764 :174 rc.cpp:1618 +#: qtplugins/surfaces/surfaces.cpp:764 :186 rc.cpp:1618 msgctxt "colormap" msgid "Turbo" msgstr "" @@ -1825,7 +1820,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:143 #. i18n: ectx: property (text), widget (QLabel, label_7) #: qtplugins/applycolors/applycolors.cpp:213 -#: qtplugins/applycolors/applycolors.cpp:305 :159 rc.cpp:1603 +#: qtplugins/applycolors/applycolors.cpp:305 :171 rc.cpp:1603 msgid "Colormap:" msgstr "" @@ -2038,7 +2033,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:265 #. i18n: ectx: property (suffix), widget (QDoubleSpinBox, resolutionDoubleSpinBox) #: qtplugins/closecontacts/closecontacts.cpp:215 -#: qtplugins/noncovalent/noncovalent.cpp:351 :189 rc.cpp:192 rc.cpp:369 +#: qtplugins/noncovalent/noncovalent.cpp:351 :201 rc.cpp:204 rc.cpp:381 msgid " Å" msgstr "" @@ -2293,7 +2288,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:108 #. i18n: ectx: property (text), widget (QToolButton, copy) -#: qtplugins/copypaste/copypaste.cpp:31 :240 +#: qtplugins/copypaste/copypaste.cpp:31 :252 msgid "Copy" msgstr "" @@ -2309,13 +2304,13 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:101 #. i18n: ectx: property (text), widget (QToolButton, cut) -#: qtplugins/copypaste/copypaste.cpp:34 :237 +#: qtplugins/copypaste/copypaste.cpp:34 :249 msgid "Cut" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:142 #. i18n: ectx: property (text), widget (QPushButton, clear) -#: qtplugins/copypaste/copypaste.cpp:35 :249 +#: qtplugins/copypaste/copypaste.cpp:35 :261 msgid "Clear" msgstr "" @@ -2658,6 +2653,14 @@ msgid "Editor tool" msgstr "" #: qtplugins/editor/editortoolwidget.cpp:129 +#: qtplugins/templatetool/templatetoolwidget.cpp:270 +#: qtplugins/templatetool/templatetoolwidget.cpp:283 +#: qtplugins/templatetool/templatetoolwidget.cpp:291 +#: qtplugins/templatetool/templatetoolwidget.cpp:299 +#: qtplugins/templatetool/templatetoolwidget.cpp:307 +#: qtplugins/templatetool/templatetoolwidget.cpp:315 +#: qtplugins/templatetool/templatetoolwidget.cpp:328 +#: qtplugins/templatetool/templatetoolwidget.cpp:390 msgid "Other…" msgstr "" @@ -2776,17 +2779,17 @@ msgstr "" msgid "&Calculate" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:288 qtplugins/openbabel/openbabel.cpp:45 +#: qtplugins/forcefield/forcefield.cpp:285 qtplugins/openbabel/openbabel.cpp:45 #: qtplugins/openbabel/openbabel.cpp:525 msgid "Optimize Geometry" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:329 +#: qtplugins/forcefield/forcefield.cpp:326 #, qt-format msgid "%1 Energy = %L2" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:330 +#: qtplugins/forcefield/forcefield.cpp:327 #: qtplugins/playertool/playertool.cpp:343 #: qtplugins/playertool/playertool.cpp:375 qtplugins/surfaces/surfaces.cpp:886 #: qtplugins/surfaces/surfaces.cpp:930 qtplugins/surfaces/surfaces.cpp:942 @@ -2987,7 +2990,7 @@ msgstr "" #. i18n: file: qtplugins/insertdna/insertdnadialog.ui:79 #. i18n: ectx: property (toolTip), widget (QToolButton, toolButton_TU) -#: qtplugins/insertdna/insertdna.cpp:168 :600 +#: qtplugins/insertdna/insertdna.cpp:168 :612 msgid "Thymine" msgstr "" @@ -3027,7 +3030,7 @@ msgstr "" #. i18n: file: qtplugins/crystal/importcrystaldialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ImportCrystalDialog) -#: qtplugins/insertfragment/insertfragment.cpp:117 :342 +#: qtplugins/insertfragment/insertfragment.cpp:117 :354 msgid "Import Crystal" msgstr "" @@ -4198,7 +4201,7 @@ msgstr "" msgid "Select None" msgstr "" -#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:516 +#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:537 msgid "Invert Selection" msgstr "" @@ -4226,11 +4229,11 @@ msgstr "" msgid "Select Water…" msgstr "" -#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:352 +#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:368 msgid "Enlarge Selection" msgstr "" -#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:387 +#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:404 msgid "Shrink Selection" msgstr "" @@ -4250,39 +4253,39 @@ msgstr "" msgid "Select Element" msgstr "" -#: qtplugins/select/select.cpp:216 +#: qtplugins/select/select.cpp:217 msgid "Select Water" msgstr "" -#: qtplugins/select/select.cpp:254 +#: qtplugins/select/select.cpp:266 msgid "Select Backbone" msgstr "" -#: qtplugins/select/select.cpp:288 +#: qtplugins/select/select.cpp:302 msgid "Select Sidechain" msgstr "" -#: qtplugins/select/select.cpp:409 +#: qtplugins/select/select.cpp:428 msgid "Select Atoms by Index" msgstr "" -#: qtplugins/select/select.cpp:410 +#: qtplugins/select/select.cpp:429 msgid "Atoms to Select:" msgstr "" -#: qtplugins/select/select.cpp:415 +#: qtplugins/select/select.cpp:434 msgid "Select Atom" msgstr "" -#: qtplugins/select/select.cpp:448 +#: qtplugins/select/select.cpp:469 msgid "Select Atoms by Residue" msgstr "" -#: qtplugins/select/select.cpp:449 +#: qtplugins/select/select.cpp:470 msgid "Residues to Select:" msgstr "" -#: qtplugins/select/select.cpp:454 +#: qtplugins/select/select.cpp:475 msgid "Select Residue" msgstr "" @@ -4623,23 +4626,30 @@ msgstr "" msgid "Template" msgstr "" -#: qtplugins/templatetool/templatetool.cpp:294 +#: qtplugins/templatetool/templatetool.cpp:84 +msgid "" +"Template Tool\n" +"\n" +"Insert fragments, including metal centers.\n" +"Select an element and coordination geometry,then click to insert a " +"fragment.\n" +"\n" +"Select a ligand or functional group and clickon a hydrogen atom to attach it." +msgstr "" + +#: qtplugins/templatetool/templatetool.cpp:302 msgid "Insert Template" msgstr "" -#: qtplugins/templatetool/templatetool.cpp:544 +#: qtplugins/templatetool/templatetool.cpp:559 msgid "Insert Ligand" msgstr "" -#: qtplugins/templatetool/templatetool.h:34 #: qtplugins/templatetool/templatetool.h:35 +#: qtplugins/templatetool/templatetool.h:36 msgid "Template tool" msgstr "" -#: qtplugins/templatetool/templatetoolwidget.cpp:288 -msgid "Other..." -msgstr "" - #: qtplugins/vanderwaals/vanderwaals.h:33 msgid "Simple display of VdW spheres." msgstr "" @@ -4854,6 +4864,28 @@ msgstr "" msgid "Rename Elements" msgstr "" +#. i18n: file: qtgui/insertfragmentdialog.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtGui::InsertFragmentDialog) +msgid "Insert Fragment…" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:22 +#. i18n: ectx: property (text), widget (QLabel, label) +msgid "Filter:" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:29 +#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) +msgid "Type a name or part of a name to show only matching files." +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:86 +#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) +#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 +#. i18n: ectx: property (text), widget (QPushButton, insertButton) +msgid "Insert" +msgstr "" + #. i18n: file: qtplugins/3dmol/3dmoldialog.ui:17 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ThreeDMolDialog) msgid "3DMol HTML Snippet" @@ -5694,28 +5726,6 @@ msgctxt "double-strand DNA" msgid "Double" msgstr "" -#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 -#. i18n: ectx: property (text), widget (QPushButton, insertButton) -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:86 -#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) -msgid "Insert" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::InsertFragmentDialog) -msgid "Insert Fragment…" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:22 -#. i18n: ectx: property (text), widget (QLabel, label) -msgid "Filter:" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:29 -#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) -msgid "Type a name or part of a name to show only matching files." -msgstr "" - #. i18n: file: qtplugins/lammpsinput/lammpsinputdialog.ui:20 #. i18n: ectx: property (windowTitle), widget (QDialog, LammpsInputDialog) msgid "LAMMPS Input" From 5916cbb948d747e1b2b1e6834985a7f4d1fbea58 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sun, 19 Nov 2023 11:48:23 -0500 Subject: [PATCH 12/56] [no-ci] Fix a few remaining cases of .. instead of ellipsis character Signed-off-by: Geoff Hutchison --- avogadro/qtplugins/coordinateeditor/coordinateeditordialog.ui | 2 +- avogadro/qtplugins/cp2kinput/cp2kinputdialog.ui | 4 ++-- avogadro/qtplugins/gamessinput/gamessinputdialog.ui | 4 ++-- avogadro/qtplugins/lammpsinput/lammpsinputdialog.ui | 2 +- avogadro/qtplugins/openmminput/openmminputdialog.ui | 2 +- avogadro/qtplugins/plugindownloader/downloaderwidget.ui | 2 +- avogadro/qtplugins/surfaces/surfacedialog.ui | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/avogadro/qtplugins/coordinateeditor/coordinateeditordialog.ui b/avogadro/qtplugins/coordinateeditor/coordinateeditordialog.ui index 1862a884e3..e7f65a9382 100644 --- a/avogadro/qtplugins/coordinateeditor/coordinateeditordialog.ui +++ b/avogadro/qtplugins/coordinateeditor/coordinateeditordialog.ui @@ -75,7 +75,7 @@ - Help... + Help… diff --git a/avogadro/qtplugins/cp2kinput/cp2kinputdialog.ui b/avogadro/qtplugins/cp2kinput/cp2kinputdialog.ui index fc9e912a5b..c957c72ee2 100644 --- a/avogadro/qtplugins/cp2kinput/cp2kinputdialog.ui +++ b/avogadro/qtplugins/cp2kinput/cp2kinputdialog.ui @@ -49,14 +49,14 @@ - Submit Calculation... + Submit Calculation… - Save File... + Save File… diff --git a/avogadro/qtplugins/gamessinput/gamessinputdialog.ui b/avogadro/qtplugins/gamessinput/gamessinputdialog.ui index c0ee47a4bc..0736d15a37 100644 --- a/avogadro/qtplugins/gamessinput/gamessinputdialog.ui +++ b/avogadro/qtplugins/gamessinput/gamessinputdialog.ui @@ -285,14 +285,14 @@ - Submit Calculation... + Submit Calculation… - Save File... + Save File… diff --git a/avogadro/qtplugins/lammpsinput/lammpsinputdialog.ui b/avogadro/qtplugins/lammpsinput/lammpsinputdialog.ui index 13982a7d2b..36edbd1066 100644 --- a/avogadro/qtplugins/lammpsinput/lammpsinputdialog.ui +++ b/avogadro/qtplugins/lammpsinput/lammpsinputdialog.ui @@ -945,7 +945,7 @@ p, li { white-space: pre-wrap; } - Generate... + Generate… diff --git a/avogadro/qtplugins/openmminput/openmminputdialog.ui b/avogadro/qtplugins/openmminput/openmminputdialog.ui index 0884f1015b..8b6c3540e3 100644 --- a/avogadro/qtplugins/openmminput/openmminputdialog.ui +++ b/avogadro/qtplugins/openmminput/openmminputdialog.ui @@ -1009,7 +1009,7 @@ - Generate... + Generate… diff --git a/avogadro/qtplugins/plugindownloader/downloaderwidget.ui b/avogadro/qtplugins/plugindownloader/downloaderwidget.ui index 9c3fb925f1..506e89f964 100644 --- a/avogadro/qtplugins/plugindownloader/downloaderwidget.ui +++ b/avogadro/qtplugins/plugindownloader/downloaderwidget.ui @@ -11,7 +11,7 @@ - Download Plugins... + Download Plugins… diff --git a/avogadro/qtplugins/surfaces/surfacedialog.ui b/avogadro/qtplugins/surfaces/surfacedialog.ui index 0b06d2410d..47a3a10c7d 100644 --- a/avogadro/qtplugins/surfaces/surfacedialog.ui +++ b/avogadro/qtplugins/surfaces/surfacedialog.ui @@ -525,7 +525,7 @@ false - Record Movie... + Record Movie… true From 573118a27671c909737016b40b9da168f8d6134a Mon Sep 17 00:00:00 2001 From: ghutchis Date: Sun, 19 Nov 2023 16:50:12 +0000 Subject: [PATCH 13/56] Automated translation updates Signed-off-by: GitHub --- i18n/avogadrolibs.pot | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/i18n/avogadrolibs.pot b/i18n/avogadrolibs.pot index 546dff438c..e52c697372 100644 --- a/i18n/avogadrolibs.pot +++ b/i18n/avogadrolibs.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Avogadro 1.98.1\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -3708,7 +3708,9 @@ msgstr "" msgid "Dynamic bonding?" msgstr "" -#: qtplugins/playertool/playertool.cpp:139 +#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 +#. i18n: ectx: property (text), widget (QPushButton, recordButton) +#: qtplugins/playertool/playertool.cpp:139 :1684 msgid "Record Movie…" msgstr "" @@ -3860,7 +3862,9 @@ msgstr "" msgid "Error while extracting: %1" msgstr "" -#: qtplugins/plugindownloader/plugindownloader.cpp:27 +#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) +#: qtplugins/plugindownloader/plugindownloader.cpp:27 :1540 msgid "Download Plugins…" msgstr "" @@ -4787,6 +4791,10 @@ msgstr "" #. i18n: file: molequeue/inputgeneratorwidget.ui:116 #. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) msgid "Submit Calculation…" msgstr "" @@ -5112,7 +5120,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) -msgid "Help..." +msgid "Help…" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:115 @@ -5149,18 +5157,11 @@ msgstr "" msgid "Defaults" msgstr "" -#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -msgid "Submit Calculation..." -msgstr "" - #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:59 #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:295 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Save File..." +msgid "Save File…" msgstr "" #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:95 @@ -6232,7 +6233,7 @@ msgstr "" #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/openmminput/openmminputdialog.ui:1012 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Generate..." +msgid "Generate…" msgstr "" #. i18n: file: qtplugins/lineformatinput/lineformatinputdialog.ui:41 @@ -6856,11 +6857,6 @@ msgstr "" msgid "Max 2*theta:" msgstr "" -#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) -msgid "Download Plugins..." -msgstr "" - #. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:20 #. i18n: ectx: property (text), widget (QPushButton, downloadButton) msgid "Download Selected" @@ -7005,11 +7001,6 @@ msgstr "" msgid "Calculate" msgstr "" -#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 -#. i18n: ectx: property (text), widget (QPushButton, recordButton) -msgid "Record Movie..." -msgstr "" - #. i18n: file: qtplugins/symmetry/symmetrywidget.ui:28 #. i18n: ectx: property (text), widget (QLabel, pointGroupLabel) msgid "C1" From bff25e6d98b9ac802f373e37facce8778d6dd003 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sun, 19 Nov 2023 16:42:22 +0000 Subject: [PATCH 14/56] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: Avogadro/avogadrolibs Translate-URL: https://hosted.weblate.org/projects/avogadro/avogadrolibs/ --- i18n/af.po | 166 ++++++++++++++------------- i18n/ar.po | 166 ++++++++++++++------------- i18n/bg.po | 166 ++++++++++++++------------- i18n/bs.po | 173 +++++++++++++++------------- i18n/ca.po | 175 +++++++++++++++------------- i18n/ca@valencia.po | 173 +++++++++++++++------------- i18n/cs.po | 175 +++++++++++++++------------- i18n/da.po | 177 +++++++++++++++------------- i18n/de.po | 171 ++++++++++++++------------- i18n/el.po | 177 +++++++++++++++------------- i18n/en_AU.po | 274 ++++++++++++++++++++++++-------------------- i18n/en_CA.po | 274 ++++++++++++++++++++++++-------------------- i18n/en_GB.po | 274 ++++++++++++++++++++++++-------------------- i18n/eo.po | 177 +++++++++++++++------------- i18n/es.po | 182 ++++++++++++++++------------- i18n/et.po | 166 ++++++++++++++------------- i18n/eu.po | 177 +++++++++++++++------------- i18n/fa.po | 166 ++++++++++++++------------- i18n/fi.po | 173 +++++++++++++++------------- i18n/fr.po | 173 +++++++++++++++------------- i18n/fr_CA.po | 166 ++++++++++++++------------- i18n/gl.po | 173 +++++++++++++++------------- i18n/he.po | 166 ++++++++++++++------------- i18n/hi.po | 166 ++++++++++++++------------- i18n/hr.po | 166 ++++++++++++++------------- i18n/hu.po | 182 ++++++++++++++++------------- i18n/id.po | 173 +++++++++++++++------------- i18n/it.po | 177 +++++++++++++++------------- i18n/ja.po | 169 ++++++++++++++------------- i18n/ka.po | 169 ++++++++++++++------------- i18n/kn.po | 166 ++++++++++++++------------- i18n/ko.po | 169 ++++++++++++++------------- i18n/ms.po | 173 +++++++++++++++------------- i18n/nb.po | 170 ++++++++++++++------------- i18n/nl.po | 173 +++++++++++++++------------- i18n/oc.po | 173 +++++++++++++++------------- i18n/pl.po | 168 ++++++++++++++------------- i18n/pt.po | 177 +++++++++++++++------------- i18n/pt_BR.po | 177 +++++++++++++++------------- i18n/ro.po | 166 ++++++++++++++------------- i18n/ru.po | 177 +++++++++++++++------------- i18n/sa.po | 166 ++++++++++++++------------- i18n/sk.po | 177 +++++++++++++++------------- i18n/sl.po | 173 +++++++++++++++------------- i18n/sq.po | 166 ++++++++++++++------------- i18n/sr.po | 177 +++++++++++++++------------- i18n/sv.po | 170 ++++++++++++++------------- i18n/ta.po | 166 ++++++++++++++------------- i18n/te.po | 166 ++++++++++++++------------- i18n/th.po | 166 ++++++++++++++------------- i18n/tr.po | 173 +++++++++++++++------------- i18n/ug.po | 169 ++++++++++++++------------- i18n/uk.po | 173 +++++++++++++++------------- i18n/vi.po | 173 +++++++++++++++------------- i18n/zh_CN.po | 173 +++++++++++++++------------- i18n/zh_TW.po | 173 +++++++++++++++------------- 56 files changed, 5307 insertions(+), 4605 deletions(-) diff --git a/i18n/af.po b/i18n/af.po index 539182a6de..d2a4a5c19c 100644 --- a/i18n/af.po +++ b/i18n/af.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Avogadro 1.90.0\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-10-29 02:01+0000\n" +"POT-Creation-Date: 2023-11-19 14:57+0000\n" "PO-Revision-Date: 2021-06-19 13:34+0000\n" "Last-Translator: Nathan \n" "Language-Team: Afrikaans \n" "Language-Team: Arabic \n" "Language-Team: Bulgarian \n" "Language-Team: Bosnian \n" "Language-Team: Catalan \n" "Language-Team: Catalan (Valencia) \n" @@ -958,67 +958,62 @@ msgstr "" msgid "Select executable:" msgstr "" -#: qtgui/fileformatdialog.cpp:48 -msgid "" -"The file name contains invalid characters. Please choose another file name." -msgstr "" - -#: qtgui/fileformatdialog.cpp:60 +#: qtgui/fileformatdialog.cpp:52 msgid "Unable to find a suitable file reader for the selected file." msgstr "" -#: qtgui/fileformatdialog.cpp:108 +#: qtgui/fileformatdialog.cpp:100 msgid "" "The file extension is missing, so the format cannot be determined.Do you " "want to add it?" msgstr "" -#: qtgui/fileformatdialog.cpp:122 +#: qtgui/fileformatdialog.cpp:114 msgid "Unable to find a suitable file writer for the selected format." msgstr "" -#: qtgui/fileformatdialog.cpp:171 +#: qtgui/fileformatdialog.cpp:163 msgctxt "File handlers" msgid "handlers" msgstr "" -#: qtgui/fileformatdialog.cpp:172 +#: qtgui/fileformatdialog.cpp:164 msgctxt "e.g. file handlers that can 'handle' this file." msgid "handle" msgstr "" -#: qtgui/fileformatdialog.cpp:176 +#: qtgui/fileformatdialog.cpp:168 msgctxt "File readers" msgid "readers" msgstr "" -#: qtgui/fileformatdialog.cpp:177 +#: qtgui/fileformatdialog.cpp:169 msgctxt "e.g. file readers that can 'read' this file." msgid "read" msgstr "" -#: qtgui/fileformatdialog.cpp:181 +#: qtgui/fileformatdialog.cpp:173 msgctxt "File writers" msgid "writers" msgstr "" -#: qtgui/fileformatdialog.cpp:182 +#: qtgui/fileformatdialog.cpp:174 msgctxt "e.g. file writers that can 'write' this file." msgid "write" msgstr "" -#: qtgui/fileformatdialog.cpp:187 +#: qtgui/fileformatdialog.cpp:179 #, qt-format msgid "Multiple %1 found that can %2 this format. Which should be used?" msgstr "" -#: qtgui/fileformatdialog.cpp:287 +#: qtgui/fileformatdialog.cpp:279 #, fuzzy #| msgid "All Files" msgid "All files" msgstr "Tots els fitxers" -#: qtgui/fileformatdialog.cpp:290 +#: qtgui/fileformatdialog.cpp:282 msgid "All supported formats" msgstr "" @@ -1305,7 +1300,7 @@ msgstr "" #. i18n: file: qtplugins/selectiontool/selectiontoolwidget.ui:39 #. i18n: ectx: property (text), widget (QLabel, label) #: qtgui/rwlayermanager.cpp:220 qtgui/rwlayermanager.cpp:223 -#: qtplugins/select/select.cpp:527 +#: qtplugins/select/select.cpp:548 #: qtplugins/selectiontool/selectiontool.cpp:254:1567 #, fuzzy msgid "Change Layer" @@ -1326,7 +1321,7 @@ msgstr "" #. i18n: file: qtplugins/editor/editortoolwidget.ui:43 #. i18n: ectx: property (text), widget (QCheckBox, adjustHydrogens) -#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:447 +#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:459 msgid "Adjust Hydrogens" msgstr "Ajusta els hidrògens" @@ -1610,7 +1605,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsDialog) -#: qtplugins/apbs/apbs.h:31:84 +#: qtplugins/apbs/apbs.h:31:96 msgid "APBS" msgstr "" @@ -1673,7 +1668,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsoutputdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsOutputDialog) -#: qtplugins/apbs/apbsdialog.cpp:178:144 +#: qtplugins/apbs/apbsdialog.cpp:178:156 #, fuzzy msgid "Success" msgstr "Èxit!" @@ -1801,7 +1796,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:122 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:756:171 rc.cpp:1615 +#: qtplugins/surfaces/surfaces.cpp:756:183 rc.cpp:1615 #, fuzzy #| msgid "Spectra" msgctxt "colormap" @@ -1813,7 +1808,7 @@ msgstr "Espectre" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:169 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:124 -#: qtplugins/surfaces/surfaces.cpp:758:168 rc.cpp:1612 +#: qtplugins/surfaces/surfaces.cpp:758:180 rc.cpp:1612 msgctxt "colormap" msgid "Coolwarm" msgstr "" @@ -1823,7 +1818,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:159 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:126 -#: qtplugins/surfaces/surfaces.cpp:760:162 rc.cpp:1606 +#: qtplugins/surfaces/surfaces.cpp:760:174 rc.cpp:1606 #, fuzzy #| msgid "Cancel" msgctxt "colormap" @@ -1835,7 +1830,7 @@ msgstr "Cancel·la" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:164 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:128 -#: qtplugins/surfaces/surfaces.cpp:762:165 rc.cpp:1609 +#: qtplugins/surfaces/surfaces.cpp:762:177 rc.cpp:1609 msgctxt "colormap" msgid "Blue-DarkRed" msgstr "" @@ -1847,7 +1842,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:130 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:764:174 rc.cpp:1618 +#: qtplugins/surfaces/surfaces.cpp:764:186 rc.cpp:1618 msgctxt "colormap" msgid "Turbo" msgstr "" @@ -1885,7 +1880,7 @@ msgstr "Colors seleccionats" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:143 #. i18n: ectx: property (text), widget (QLabel, label_7) #: qtplugins/applycolors/applycolors.cpp:213 -#: qtplugins/applycolors/applycolors.cpp:305:159 rc.cpp:1603 +#: qtplugins/applycolors/applycolors.cpp:305:171 rc.cpp:1603 #, fuzzy #| msgid "Color:" msgid "Colormap:" @@ -2122,7 +2117,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:265 #. i18n: ectx: property (suffix), widget (QDoubleSpinBox, resolutionDoubleSpinBox) #: qtplugins/closecontacts/closecontacts.cpp:215 -#: qtplugins/noncovalent/noncovalent.cpp:351:189 rc.cpp:192 rc.cpp:369 +#: qtplugins/noncovalent/noncovalent.cpp:351:201 rc.cpp:204 rc.cpp:381 msgid " Å" msgstr "" @@ -2396,7 +2391,7 @@ msgstr "Entrada turbomole" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:108 #. i18n: ectx: property (text), widget (QToolButton, copy) -#: qtplugins/copypaste/copypaste.cpp:31:240 +#: qtplugins/copypaste/copypaste.cpp:31:252 #, fuzzy msgid "Copy" msgstr "Copia-ho tot" @@ -2414,13 +2409,13 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:101 #. i18n: ectx: property (text), widget (QToolButton, cut) -#: qtplugins/copypaste/copypaste.cpp:34:237 +#: qtplugins/copypaste/copypaste.cpp:34:249 msgid "Cut" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:142 #. i18n: ectx: property (text), widget (QPushButton, clear) -#: qtplugins/copypaste/copypaste.cpp:35:249 +#: qtplugins/copypaste/copypaste.cpp:35:261 #, fuzzy msgid "Clear" msgstr "Suprimeix-ho tot" @@ -2774,6 +2769,14 @@ msgid "Editor tool" msgstr "" #: qtplugins/editor/editortoolwidget.cpp:129 +#: qtplugins/templatetool/templatetoolwidget.cpp:270 +#: qtplugins/templatetool/templatetoolwidget.cpp:283 +#: qtplugins/templatetool/templatetoolwidget.cpp:291 +#: qtplugins/templatetool/templatetoolwidget.cpp:299 +#: qtplugins/templatetool/templatetoolwidget.cpp:307 +#: qtplugins/templatetool/templatetoolwidget.cpp:315 +#: qtplugins/templatetool/templatetoolwidget.cpp:328 +#: qtplugins/templatetool/templatetoolwidget.cpp:390 #, fuzzy #| msgid "Other" msgid "Other…" @@ -2908,19 +2911,19 @@ msgstr "Fixa els àtoms seleccionats" msgid "&Calculate" msgstr "Calcula" -#: qtplugins/forcefield/forcefield.cpp:288 qtplugins/openbabel/openbabel.cpp:45 +#: qtplugins/forcefield/forcefield.cpp:285 qtplugins/openbabel/openbabel.cpp:45 #: qtplugins/openbabel/openbabel.cpp:525 #, fuzzy msgid "Optimize Geometry" msgstr "&Optimitza Geometria" -#: qtplugins/forcefield/forcefield.cpp:329 +#: qtplugins/forcefield/forcefield.cpp:326 #, fuzzy, qt-format #| msgid "Energy = %L1 %2" msgid "%1 Energy = %L2" msgstr "Energia = %L1 %2" -#: qtplugins/forcefield/forcefield.cpp:330 +#: qtplugins/forcefield/forcefield.cpp:327 #: qtplugins/playertool/playertool.cpp:343 #: qtplugins/playertool/playertool.cpp:375 qtplugins/surfaces/surfaces.cpp:886 #: qtplugins/surfaces/surfaces.cpp:930 qtplugins/surfaces/surfaces.cpp:942 @@ -3141,7 +3144,7 @@ msgstr "T" #. i18n: file: qtplugins/insertdna/insertdnadialog.ui:79 #. i18n: ectx: property (toolTip), widget (QToolButton, toolButton_TU) -#: qtplugins/insertdna/insertdna.cpp:168:600 +#: qtplugins/insertdna/insertdna.cpp:168:612 msgid "Thymine" msgstr "" @@ -3187,7 +3190,7 @@ msgstr "" #. i18n: file: qtplugins/crystal/importcrystaldialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ImportCrystalDialog) -#: qtplugins/insertfragment/insertfragment.cpp:117:342 +#: qtplugins/insertfragment/insertfragment.cpp:117:354 msgid "Import Crystal" msgstr "" @@ -4460,7 +4463,7 @@ msgstr "" msgid "Select None" msgstr "" -#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:516 +#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:537 msgid "Invert Selection" msgstr "" @@ -4496,13 +4499,13 @@ msgstr "Index d'àtoms" msgid "Select Water…" msgstr "Index d'àtoms" -#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:352 +#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:368 #, fuzzy #| msgid "Ignore Selection" msgid "Enlarge Selection" msgstr "Ignora la selecció" -#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:387 +#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:404 #, fuzzy #| msgid "Selection" msgid "Shrink Selection" @@ -4526,44 +4529,44 @@ msgstr "&Selecciona" msgid "Select Element" msgstr "Color per element" -#: qtplugins/select/select.cpp:216 +#: qtplugins/select/select.cpp:217 #, fuzzy msgid "Select Water" msgstr "Index d'àtoms" -#: qtplugins/select/select.cpp:254 +#: qtplugins/select/select.cpp:266 #, fuzzy msgid "Select Backbone" msgstr "Index d'àtoms" -#: qtplugins/select/select.cpp:288 +#: qtplugins/select/select.cpp:302 #, fuzzy msgid "Select Sidechain" msgstr "Index d'àtoms" -#: qtplugins/select/select.cpp:409 +#: qtplugins/select/select.cpp:428 msgid "Select Atoms by Index" msgstr "" -#: qtplugins/select/select.cpp:410 +#: qtplugins/select/select.cpp:429 msgid "Atoms to Select:" msgstr "" -#: qtplugins/select/select.cpp:415 +#: qtplugins/select/select.cpp:434 #, fuzzy #| msgid "Delete Atom" msgid "Select Atom" msgstr "Suprimeix l'àtom" -#: qtplugins/select/select.cpp:448 +#: qtplugins/select/select.cpp:469 msgid "Select Atoms by Residue" msgstr "" -#: qtplugins/select/select.cpp:449 +#: qtplugins/select/select.cpp:470 msgid "Residues to Select:" msgstr "" -#: qtplugins/select/select.cpp:454 +#: qtplugins/select/select.cpp:475 #, fuzzy #| msgid "Select by Residue..." msgid "Select Residue" @@ -4933,28 +4936,35 @@ msgstr "" msgid "Template" msgstr "Temperatura:" -#: qtplugins/templatetool/templatetool.cpp:294 +#: qtplugins/templatetool/templatetool.cpp:84 +msgid "" +"Template Tool\n" +"\n" +"Insert fragments, including metal centers.\n" +"Select an element and coordination geometry,then click to insert a " +"fragment.\n" +"\n" +"Select a ligand or functional group and clickon a hydrogen atom to attach it." +msgstr "" + +#: qtplugins/templatetool/templatetool.cpp:302 #, fuzzy #| msgid "Insert Peptide" msgid "Insert Template" msgstr "Insereix un pèptid" -#: qtplugins/templatetool/templatetool.cpp:544 +#: qtplugins/templatetool/templatetool.cpp:559 #, fuzzy #| msgid "Insert Peptide" msgid "Insert Ligand" msgstr "Insereix un pèptid" -#: qtplugins/templatetool/templatetool.h:34 #: qtplugins/templatetool/templatetool.h:35 +#: qtplugins/templatetool/templatetool.h:36 #, fuzzy msgid "Template tool" msgstr "Mesura" -#: qtplugins/templatetool/templatetoolwidget.cpp:288 -msgid "Other..." -msgstr "Altre..." - #: qtplugins/vanderwaals/vanderwaals.h:33 msgid "Simple display of VdW spheres." msgstr "" @@ -5174,6 +5184,30 @@ msgstr "" msgid "Rename Elements" msgstr "" +#. i18n: file: qtgui/insertfragmentdialog.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtGui::InsertFragmentDialog) +#, fuzzy +#| msgid "Insert Fragment" +msgid "Insert Fragment…" +msgstr "Insereix un fragment" + +#. i18n: file: qtgui/insertfragmentdialog.ui:22 +#. i18n: ectx: property (text), widget (QLabel, label) +msgid "Filter:" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:29 +#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) +msgid "Type a name or part of a name to show only matching files." +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:86 +#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) +#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 +#. i18n: ectx: property (text), widget (QPushButton, insertButton) +msgid "Insert" +msgstr "" + #. i18n: file: qtplugins/3dmol/3dmoldialog.ui:17 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ThreeDMolDialog) msgid "3DMol HTML Snippet" @@ -6048,30 +6082,6 @@ msgctxt "double-strand DNA" msgid "Double" msgstr "Doble" -#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 -#. i18n: ectx: property (text), widget (QPushButton, insertButton) -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:86 -#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) -msgid "Insert" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::InsertFragmentDialog) -#, fuzzy -#| msgid "Insert Fragment" -msgid "Insert Fragment…" -msgstr "Insereix un fragment" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:22 -#. i18n: ectx: property (text), widget (QLabel, label) -msgid "Filter:" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:29 -#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) -msgid "Type a name or part of a name to show only matching files." -msgstr "" - #. i18n: file: qtplugins/lammpsinput/lammpsinputdialog.ui:20 #. i18n: ectx: property (windowTitle), widget (QDialog, LammpsInputDialog) msgid "LAMMPS Input" @@ -7801,6 +7811,9 @@ msgstr "" "devel@lists.sourceforge.net,,el.libre@gmail.com,,,avogadro-devel@lists." "sourceforge.net,,el.libre@gmail.com" +#~ msgid "Other..." +#~ msgstr "Altre..." + #, fuzzy #~ msgid "Filename" #~ msgstr "Nom de fitxer:" diff --git a/i18n/cs.po b/i18n/cs.po index 86f82446ce..b758c94697 100644 --- a/i18n/cs.po +++ b/i18n/cs.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-10-29 02:01+0000\n" +"POT-Creation-Date: 2023-11-19 14:57+0000\n" "PO-Revision-Date: 2023-10-31 11:02+0000\n" "Last-Translator: Martin Slavík \n" "Language-Team: Czech \n" "Language-Team: Danish \n" @@ -956,67 +956,62 @@ msgstr "" msgid "Select executable:" msgstr "" -#: qtgui/fileformatdialog.cpp:48 -msgid "" -"The file name contains invalid characters. Please choose another file name." -msgstr "" - -#: qtgui/fileformatdialog.cpp:60 +#: qtgui/fileformatdialog.cpp:52 msgid "Unable to find a suitable file reader for the selected file." msgstr "" -#: qtgui/fileformatdialog.cpp:108 +#: qtgui/fileformatdialog.cpp:100 msgid "" "The file extension is missing, so the format cannot be determined.Do you " "want to add it?" msgstr "" -#: qtgui/fileformatdialog.cpp:122 +#: qtgui/fileformatdialog.cpp:114 msgid "Unable to find a suitable file writer for the selected format." msgstr "" -#: qtgui/fileformatdialog.cpp:171 +#: qtgui/fileformatdialog.cpp:163 msgctxt "File handlers" msgid "handlers" msgstr "" -#: qtgui/fileformatdialog.cpp:172 +#: qtgui/fileformatdialog.cpp:164 msgctxt "e.g. file handlers that can 'handle' this file." msgid "handle" msgstr "" -#: qtgui/fileformatdialog.cpp:176 +#: qtgui/fileformatdialog.cpp:168 msgctxt "File readers" msgid "readers" msgstr "" -#: qtgui/fileformatdialog.cpp:177 +#: qtgui/fileformatdialog.cpp:169 msgctxt "e.g. file readers that can 'read' this file." msgid "read" msgstr "" -#: qtgui/fileformatdialog.cpp:181 +#: qtgui/fileformatdialog.cpp:173 msgctxt "File writers" msgid "writers" msgstr "" -#: qtgui/fileformatdialog.cpp:182 +#: qtgui/fileformatdialog.cpp:174 msgctxt "e.g. file writers that can 'write' this file." msgid "write" msgstr "" -#: qtgui/fileformatdialog.cpp:187 +#: qtgui/fileformatdialog.cpp:179 #, qt-format msgid "Multiple %1 found that can %2 this format. Which should be used?" msgstr "" -#: qtgui/fileformatdialog.cpp:287 +#: qtgui/fileformatdialog.cpp:279 #, fuzzy #| msgid "All Files" msgid "All files" msgstr "Alle filer" -#: qtgui/fileformatdialog.cpp:290 +#: qtgui/fileformatdialog.cpp:282 msgid "All supported formats" msgstr "" @@ -1300,7 +1295,7 @@ msgstr "" #. i18n: file: qtplugins/selectiontool/selectiontoolwidget.ui:39 #. i18n: ectx: property (text), widget (QLabel, label) #: qtgui/rwlayermanager.cpp:220 qtgui/rwlayermanager.cpp:223 -#: qtplugins/select/select.cpp:527 +#: qtplugins/select/select.cpp:548 #: qtplugins/selectiontool/selectiontool.cpp:254:1567 #, fuzzy msgid "Change Layer" @@ -1321,7 +1316,7 @@ msgstr "" #. i18n: file: qtplugins/editor/editortoolwidget.ui:43 #. i18n: ectx: property (text), widget (QCheckBox, adjustHydrogens) -#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:447 +#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:459 msgid "Adjust Hydrogens" msgstr "Juster brintatomer" @@ -1604,7 +1599,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsDialog) -#: qtplugins/apbs/apbs.h:31:84 +#: qtplugins/apbs/apbs.h:31:96 msgid "APBS" msgstr "" @@ -1667,7 +1662,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsoutputdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsOutputDialog) -#: qtplugins/apbs/apbsdialog.cpp:178:144 +#: qtplugins/apbs/apbsdialog.cpp:178:156 #, fuzzy msgid "Success" msgstr "Succes!" @@ -1794,7 +1789,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:122 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:756:171 rc.cpp:1615 +#: qtplugins/surfaces/surfaces.cpp:756:183 rc.cpp:1615 #, fuzzy #| msgid "Spectra" msgctxt "colormap" @@ -1806,7 +1801,7 @@ msgstr "Spektre" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:169 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:124 -#: qtplugins/surfaces/surfaces.cpp:758:168 rc.cpp:1612 +#: qtplugins/surfaces/surfaces.cpp:758:180 rc.cpp:1612 msgctxt "colormap" msgid "Coolwarm" msgstr "" @@ -1816,7 +1811,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:159 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:126 -#: qtplugins/surfaces/surfaces.cpp:760:162 rc.cpp:1606 +#: qtplugins/surfaces/surfaces.cpp:760:174 rc.cpp:1606 #, fuzzy #| msgid "Cancel" msgctxt "colormap" @@ -1828,7 +1823,7 @@ msgstr "Annullér" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:164 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:128 -#: qtplugins/surfaces/surfaces.cpp:762:165 rc.cpp:1609 +#: qtplugins/surfaces/surfaces.cpp:762:177 rc.cpp:1609 msgctxt "colormap" msgid "Blue-DarkRed" msgstr "" @@ -1840,7 +1835,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:130 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:764:174 rc.cpp:1618 +#: qtplugins/surfaces/surfaces.cpp:764:186 rc.cpp:1618 msgctxt "colormap" msgid "Turbo" msgstr "" @@ -1878,7 +1873,7 @@ msgstr "Valgte farver" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:143 #. i18n: ectx: property (text), widget (QLabel, label_7) #: qtplugins/applycolors/applycolors.cpp:213 -#: qtplugins/applycolors/applycolors.cpp:305:159 rc.cpp:1603 +#: qtplugins/applycolors/applycolors.cpp:305:171 rc.cpp:1603 #, fuzzy msgid "Colormap:" msgstr "Farver:" @@ -2110,7 +2105,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:265 #. i18n: ectx: property (suffix), widget (QDoubleSpinBox, resolutionDoubleSpinBox) #: qtplugins/closecontacts/closecontacts.cpp:215 -#: qtplugins/noncovalent/noncovalent.cpp:351:189 rc.cpp:192 rc.cpp:369 +#: qtplugins/noncovalent/noncovalent.cpp:351:201 rc.cpp:204 rc.cpp:381 msgid " Å" msgstr "" @@ -2379,7 +2374,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:108 #. i18n: ectx: property (text), widget (QToolButton, copy) -#: qtplugins/copypaste/copypaste.cpp:31:240 +#: qtplugins/copypaste/copypaste.cpp:31:252 msgid "Copy" msgstr "" @@ -2396,13 +2391,13 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:101 #. i18n: ectx: property (text), widget (QToolButton, cut) -#: qtplugins/copypaste/copypaste.cpp:34:237 +#: qtplugins/copypaste/copypaste.cpp:34:249 msgid "Cut" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:142 #. i18n: ectx: property (text), widget (QPushButton, clear) -#: qtplugins/copypaste/copypaste.cpp:35:249 +#: qtplugins/copypaste/copypaste.cpp:35:261 msgid "Clear" msgstr "" @@ -2762,6 +2757,14 @@ msgid "Editor tool" msgstr "" #: qtplugins/editor/editortoolwidget.cpp:129 +#: qtplugins/templatetool/templatetoolwidget.cpp:270 +#: qtplugins/templatetool/templatetoolwidget.cpp:283 +#: qtplugins/templatetool/templatetoolwidget.cpp:291 +#: qtplugins/templatetool/templatetoolwidget.cpp:299 +#: qtplugins/templatetool/templatetoolwidget.cpp:307 +#: qtplugins/templatetool/templatetoolwidget.cpp:315 +#: qtplugins/templatetool/templatetoolwidget.cpp:328 +#: qtplugins/templatetool/templatetoolwidget.cpp:390 #, fuzzy #| msgid "Other..." msgid "Other…" @@ -2895,19 +2898,19 @@ msgstr "Ret valgte atomer" msgid "&Calculate" msgstr "Udregn energi" -#: qtplugins/forcefield/forcefield.cpp:288 qtplugins/openbabel/openbabel.cpp:45 +#: qtplugins/forcefield/forcefield.cpp:285 qtplugins/openbabel/openbabel.cpp:45 #: qtplugins/openbabel/openbabel.cpp:525 #, fuzzy msgid "Optimize Geometry" msgstr "&Optimer geometri" -#: qtplugins/forcefield/forcefield.cpp:329 +#: qtplugins/forcefield/forcefield.cpp:326 #, fuzzy, qt-format #| msgid "Energy = %L1 %2" msgid "%1 Energy = %L2" msgstr "Energi = %L1 %2" -#: qtplugins/forcefield/forcefield.cpp:330 +#: qtplugins/forcefield/forcefield.cpp:327 #: qtplugins/playertool/playertool.cpp:343 #: qtplugins/playertool/playertool.cpp:375 qtplugins/surfaces/surfaces.cpp:886 #: qtplugins/surfaces/surfaces.cpp:930 qtplugins/surfaces/surfaces.cpp:942 @@ -3124,7 +3127,7 @@ msgstr "" #. i18n: file: qtplugins/insertdna/insertdnadialog.ui:79 #. i18n: ectx: property (toolTip), widget (QToolButton, toolButton_TU) -#: qtplugins/insertdna/insertdna.cpp:168:600 +#: qtplugins/insertdna/insertdna.cpp:168:612 msgid "Thymine" msgstr "" @@ -3171,7 +3174,7 @@ msgstr "" #. i18n: file: qtplugins/crystal/importcrystaldialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ImportCrystalDialog) -#: qtplugins/insertfragment/insertfragment.cpp:117:342 +#: qtplugins/insertfragment/insertfragment.cpp:117:354 msgid "Import Crystal" msgstr "" @@ -4427,7 +4430,7 @@ msgstr "" msgid "Select None" msgstr "" -#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:516 +#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:537 msgid "Invert Selection" msgstr "" @@ -4463,13 +4466,13 @@ msgstr "Atom nummer" msgid "Select Water…" msgstr "Atom nummer" -#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:352 +#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:368 #, fuzzy #| msgid "Ignore Selection" msgid "Enlarge Selection" msgstr "Ignorér markering" -#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:387 +#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:404 #, fuzzy #| msgid "Selection" msgid "Shrink Selection" @@ -4493,44 +4496,44 @@ msgstr "&Vælg" msgid "Select Element" msgstr "Vælg efter rest..." -#: qtplugins/select/select.cpp:216 +#: qtplugins/select/select.cpp:217 #, fuzzy msgid "Select Water" msgstr "Atom nummer" -#: qtplugins/select/select.cpp:254 +#: qtplugins/select/select.cpp:266 #, fuzzy msgid "Select Backbone" msgstr "Atom nummer" -#: qtplugins/select/select.cpp:288 +#: qtplugins/select/select.cpp:302 #, fuzzy msgid "Select Sidechain" msgstr "Atom nummer" -#: qtplugins/select/select.cpp:409 +#: qtplugins/select/select.cpp:428 msgid "Select Atoms by Index" msgstr "" -#: qtplugins/select/select.cpp:410 +#: qtplugins/select/select.cpp:429 msgid "Atoms to Select:" msgstr "" -#: qtplugins/select/select.cpp:415 +#: qtplugins/select/select.cpp:434 #, fuzzy #| msgid "Delete Atom" msgid "Select Atom" msgstr "Slet atom" -#: qtplugins/select/select.cpp:448 +#: qtplugins/select/select.cpp:469 msgid "Select Atoms by Residue" msgstr "" -#: qtplugins/select/select.cpp:449 +#: qtplugins/select/select.cpp:470 msgid "Residues to Select:" msgstr "" -#: qtplugins/select/select.cpp:454 +#: qtplugins/select/select.cpp:475 #, fuzzy #| msgid "Select by Residue..." msgid "Select Residue" @@ -4897,30 +4900,35 @@ msgstr "" msgid "Template" msgstr "" -#: qtplugins/templatetool/templatetool.cpp:294 +#: qtplugins/templatetool/templatetool.cpp:84 +msgid "" +"Template Tool\n" +"\n" +"Insert fragments, including metal centers.\n" +"Select an element and coordination geometry,then click to insert a " +"fragment.\n" +"\n" +"Select a ligand or functional group and clickon a hydrogen atom to attach it." +msgstr "" + +#: qtplugins/templatetool/templatetool.cpp:302 #, fuzzy #| msgid "Insert Peptide" msgid "Insert Template" msgstr "Indsæt peptid" -#: qtplugins/templatetool/templatetool.cpp:544 +#: qtplugins/templatetool/templatetool.cpp:559 #, fuzzy #| msgid "Insert Peptide" msgid "Insert Ligand" msgstr "Indsæt peptid" -#: qtplugins/templatetool/templatetool.h:34 #: qtplugins/templatetool/templatetool.h:35 +#: qtplugins/templatetool/templatetool.h:36 #, fuzzy msgid "Template tool" msgstr "Mål" -#: qtplugins/templatetool/templatetoolwidget.cpp:288 -#, fuzzy -#| msgid "Other..." -msgid "Other..." -msgstr "Andet..." - #: qtplugins/vanderwaals/vanderwaals.h:33 msgid "Simple display of VdW spheres." msgstr "" @@ -5137,6 +5145,30 @@ msgstr "" msgid "Rename Elements" msgstr "" +#. i18n: file: qtgui/insertfragmentdialog.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtGui::InsertFragmentDialog) +#, fuzzy +#| msgid "Insert Fragment" +msgid "Insert Fragment…" +msgstr "Indsæt fragment" + +#. i18n: file: qtgui/insertfragmentdialog.ui:22 +#. i18n: ectx: property (text), widget (QLabel, label) +msgid "Filter:" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:29 +#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) +msgid "Type a name or part of a name to show only matching files." +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:86 +#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) +#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 +#. i18n: ectx: property (text), widget (QPushButton, insertButton) +msgid "Insert" +msgstr "" + #. i18n: file: qtplugins/3dmol/3dmoldialog.ui:17 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ThreeDMolDialog) msgid "3DMol HTML Snippet" @@ -5996,30 +6028,6 @@ msgctxt "double-strand DNA" msgid "Double" msgstr "Dobbelt" -#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 -#. i18n: ectx: property (text), widget (QPushButton, insertButton) -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:86 -#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) -msgid "Insert" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::InsertFragmentDialog) -#, fuzzy -#| msgid "Insert Fragment" -msgid "Insert Fragment…" -msgstr "Indsæt fragment" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:22 -#. i18n: ectx: property (text), widget (QLabel, label) -msgid "Filter:" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:29 -#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) -msgid "Type a name or part of a name to show only matching files." -msgstr "" - #. i18n: file: qtplugins/lammpsinput/lammpsinputdialog.ui:20 #. i18n: ectx: property (windowTitle), widget (QDialog, LammpsInputDialog) msgid "LAMMPS Input" @@ -7742,6 +7750,11 @@ msgstr "" "devel@lists.sourceforge.net,,olegb@omgwtf.dk,,loniedavid@gmail.com,jvd@tuta." "io," +#, fuzzy +#~| msgid "Other..." +#~ msgid "Other..." +#~ msgstr "Andet..." + #, fuzzy #~ msgid "Filename" #~ msgstr "Filnavn:" diff --git a/i18n/de.po b/i18n/de.po index 186695b1e0..1f7be26da8 100644 --- a/i18n/de.po +++ b/i18n/de.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: _avogadro-de\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-10-29 02:01+0000\n" +"POT-Creation-Date: 2023-11-19 14:57+0000\n" "PO-Revision-Date: 2023-08-17 15:50+0000\n" "Last-Translator: Norwid Behrnd \n" "Language-Team: German \n" "Language-Team: Greek \n" "Language-Team: English (United Kingdom)

Number of processor cores to reserve for this job." msgstr "" -"

Number of processor cores to reserve for this " -"job.

" +"

Number of processor cores to reserve for this job." #. i18n: file: molequeue/molequeuewidget.ui:88 #. i18n: ectx: property (text), widget (QLabel, label_7) @@ -4986,8 +4996,8 @@ msgid "" "body>" msgstr "" "

Delete remote working files upon job completion. " -"Results will still be copied to the local MoleQueue job cache " -"first.

" +"Results will still be copied to the local MoleQueue job cache first.

" #. i18n: file: molequeue/molequeuewidget.ui:128 #. i18n: ectx: property (text), widget (QLabel, label) @@ -5032,6 +5042,28 @@ msgstr "Open output when finished:" msgid "Rename Elements" msgstr "Rename Elements" +#. i18n: file: qtgui/insertfragmentdialog.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtGui::InsertFragmentDialog) +msgid "Insert Fragment…" +msgstr "Insert Fragment…" + +#. i18n: file: qtgui/insertfragmentdialog.ui:22 +#. i18n: ectx: property (text), widget (QLabel, label) +msgid "Filter:" +msgstr "Filter:" + +#. i18n: file: qtgui/insertfragmentdialog.ui:29 +#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) +msgid "Type a name or part of a name to show only matching files." +msgstr "Type a name or part of a name to show only matching files." + +#. i18n: file: qtgui/insertfragmentdialog.ui:86 +#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) +#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 +#. i18n: ectx: property (text), widget (QPushButton, insertButton) +msgid "Insert" +msgstr "Insert" + #. i18n: file: qtplugins/3dmol/3dmoldialog.ui:17 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ThreeDMolDialog) msgid "3DMol HTML Snippet" @@ -5261,20 +5293,20 @@ msgstr "" "span> - Atomic number (e.g. \"6\" for carbon)
G - GAMESS-style atomic number (e.g. \"6.0\" for " "carbon)
N - Element name (e.g. " -"\"Carbon\")
S - Element symbol (" -"e.g. \"C\" for carbon)
L - Atom " -"label (e.g., \"C2\" for second carbon atom, \"H1\" for first hydrogen)
x - X position coordinate
S - Element symbol " +"(e.g. \"C\" for carbon)
L - " +"Atom label (e.g., \"C2\" for second carbon atom, \"H1\" for first hydrogen) " +"
x - X position coordinate
y - Y position coordinate
z - Z position coordinate
a - 'a' lattice coordinate (" -"crystals only)
b - 'b' lattice " +">a - 'a' lattice coordinate " +"(crystals only)
b - 'b' lattice " "coordinate (crystals only)
c - " -"'c' lattice coordinate (crystals only)
_ - A literal space (\" \"), useful for alignment
0 - A literal 0 (\"0\"), useful for optimization " -"flags
1 - A literal 1 (\"1\"), " -"useful for optimization flags

" +"'c' lattice coordinate (crystals only)
_ - A literal space (\" \"), useful for alignment
0 - A literal 0 (\"0\"), useful for " +"optimization flags
1 - A " +"literal 1 (\"1\"), useful for optimization flags

" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) @@ -5892,28 +5924,6 @@ msgctxt "double-strand DNA" msgid "Double" msgstr "Double" -#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 -#. i18n: ectx: property (text), widget (QPushButton, insertButton) -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:86 -#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) -msgid "Insert" -msgstr "Insert" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::InsertFragmentDialog) -msgid "Insert Fragment…" -msgstr "Insert Fragment…" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:22 -#. i18n: ectx: property (text), widget (QLabel, label) -msgid "Filter:" -msgstr "Filter:" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:29 -#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) -msgid "Type a name or part of a name to show only matching files." -msgstr "Type a name or part of a name to show only matching files." - #. i18n: file: qtplugins/lammpsinput/lammpsinputdialog.ui:20 #. i18n: ectx: property (windowTitle), widget (QDialog, LammpsInputDialog) msgid "LAMMPS Input" @@ -7020,8 +7030,8 @@ msgid "" "

The broadening of the peak at the base (in degrees)." msgstr "" -"

The broadening of the peak at the base (in " -"degrees).

" +"

The broadening of the peak at the base (in degrees)." #. i18n: file: qtplugins/plotxrd/xrdoptionsdialog.ui:23 #. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spin_max2Theta) @@ -7029,8 +7039,8 @@ msgid "" "

The max 2theta value in degrees.

Default: " "162.00°

" msgstr "" -"

The max 2theta value in degrees.

Default: 162." -"00°

" +"

The max 2theta value in degrees.

Default: " +"162.00°

" #. i18n: file: qtplugins/plotxrd/xrdoptionsdialog.ui:45 #. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spin_peakWidth) @@ -7038,8 +7048,8 @@ msgid "" "

The broadening of the peaks at the base in degrees.

Default: 0.52958°

" msgstr "" -"

The broadening of the peaks at the base in " -"degrees.

Default: 0.52958°

" +"

The broadening of the peaks at the base in degrees.

Default: 0.52958°

" #. i18n: file: qtplugins/plotxrd/xrdoptionsdialog.ui:67 #. i18n: ectx: property (text), widget (QLabel, label_3) @@ -7062,8 +7072,8 @@ msgid "" "

The wavelength of the x-ray in Angstroms.

Default: 1.50560 Å

" msgstr "" -"

The wavelength of the x-ray in Ångstroms. " -"

Default: 1.50560 Å

" +"

The wavelength of the x-ray in Ångstroms.

Default: 1.50560 Å

" #. i18n: file: qtplugins/plotxrd/xrdoptionsdialog.ui:122 #. i18n: ectx: property (toolTip), widget (QSpinBox, spin_numDataPoints) @@ -7071,8 +7081,8 @@ msgid "" "

The number of 2theta points to generate.

Default: 1000

" msgstr "" -"

The number of 2theta points to generate.

Default:" -" 1000

" +"

The number of 2theta points to generate.

Default: 1000

" #. i18n: file: qtplugins/plotxrd/xrdoptionsdialog.ui:141 #. i18n: ectx: property (text), widget (QLabel, label_4) @@ -7507,8 +7517,8 @@ msgstr "" "addition, if a density-of-states calculation is performed, the Fermi level " "here will automatically be set to what was detected during the density-of-" "states calculation.

If this box is checked, be sure the correct Fermi " -"level is set in the spinbox on the right.

Default: " -"off

" +"level is set in the spinbox on the right.

Default: off

" #. i18n: file: qtplugins/yaehmop/banddialog.ui:58 #. i18n: ectx: property (text), widget (QCheckBox, cb_plotFermi) @@ -7523,8 +7533,8 @@ msgid "" "p>

Default: off

" msgstr "" "

Adjust the energies so that the zero is the Fermi? " -"Only available if we are plotting the Fermi level.


Default:" -" off

" +"Only available if we are plotting the Fermi level.


Default: off

" #. i18n: file: qtplugins/yaehmop/banddialog.ui:74 #. i18n: ectx: property (text), widget (QCheckBox, cb_zeroFermi) @@ -7567,16 +7577,16 @@ msgid "" "b) - that is taken into account automatically.

" msgstr "" "

Enter special k-points as such:

L 0.5 0.5 0.5

G 0.0 0.0 0.0

X 0.5 0.0 0.5

That is, <symbol> " -"<x> <y> <z> where x, y, and z are fractional reciprocal " -"space coordinates. Lines will be drawn connecting these k-points on the " -"graph in the order you put them in. Please note that the orientation of your " -"cell may have an effect on the locations of these reciprocal space points.

If the space group of the crystal has been perceived or set, the " -"special k points will be automatically filled up with the primitive cell " -"high symmetry points for that space group. There are a few space groups will " -"different high symmetry points depending on the lattice (such as if a > b " -"or a < b) - that is taken into account automatically.

" +"p>

G 0.0 0.0 0.0

X 0.5 0.0 0.5

That is, <symbol> <" +"x> <y> <z> where x, y, and z are fractional reciprocal space " +"coordinates. Lines will be drawn connecting these k-points on the graph in " +"the order you put them in. Please note that the orientation of your cell may " +"have an effect on the locations of these reciprocal space points.

If " +"the space group of the crystal has been perceived or set, the special k " +"points will be automatically filled up with the primitive cell high symmetry " +"points for that space group. There are a few space groups will different " +"high symmetry points depending on the lattice (such as if a > b or a < " +"b) - that is taken into account automatically.

" #. i18n: file: qtplugins/yaehmop/banddialog.ui:149 #. i18n: ectx: property (html), widget (QTextEdit, edit_specialKPoints) @@ -7594,8 +7604,8 @@ msgid "" msgstr "" "\n" -"\n" @@ -7620,8 +7630,8 @@ msgid "" "

Limit the y-range in the plot?

Default: off

" msgstr "" -"

Limit the y-range in the plot?

Default: " -"off

" +"

Limit the y-range in the plot?

Default: off

" #. i18n: file: qtplugins/yaehmop/banddialog.ui:181 #. i18n: ectx: property (text), widget (QCheckBox, cb_limitY) @@ -7707,6 +7717,16 @@ msgstr "" "odell@googlemail.com,,,,,avogadro-devel@lists.sourceforge.net,bburns@aundae." "com,cwoollard@gmail.com,,,,joseph.odell@googlemail.com" +#~ msgid "" +#~ "The file name contains invalid characters. Please choose another file " +#~ "name." +#~ msgstr "" +#~ "The file name contains invalid characters. Please choose another file " +#~ "name." + +#~ msgid "Other..." +#~ msgstr "Other..." + #~ msgid "Connection failed" #~ msgstr "Connection failed" diff --git a/i18n/en_CA.po b/i18n/en_CA.po index f0562530e8..a3a81d2f7f 100644 --- a/i18n/en_CA.po +++ b/i18n/en_CA.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: _avogadro-en_GB\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-10-29 02:01+0000\n" +"POT-Creation-Date: 2023-11-19 14:57+0000\n" "PO-Revision-Date: 2023-11-08 19:34+0000\n" "Last-Translator: matterhorn103 \n" "Language-Team: English (United Kingdom)

Number of processor cores to reserve for this job." msgstr "" -"

Number of processor cores to reserve for this " -"job.

" +"

Number of processor cores to reserve for this job." #. i18n: file: molequeue/molequeuewidget.ui:88 #. i18n: ectx: property (text), widget (QLabel, label_7) @@ -4986,8 +4996,8 @@ msgid "" "body>" msgstr "" "

Delete remote working files upon job completion. " -"Results will still be copied to the local MoleQueue job cache " -"first.

" +"Results will still be copied to the local MoleQueue job cache first.

" #. i18n: file: molequeue/molequeuewidget.ui:128 #. i18n: ectx: property (text), widget (QLabel, label) @@ -5032,6 +5042,28 @@ msgstr "Open output when finished:" msgid "Rename Elements" msgstr "Rename Elements" +#. i18n: file: qtgui/insertfragmentdialog.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtGui::InsertFragmentDialog) +msgid "Insert Fragment…" +msgstr "Insert Fragment…" + +#. i18n: file: qtgui/insertfragmentdialog.ui:22 +#. i18n: ectx: property (text), widget (QLabel, label) +msgid "Filter:" +msgstr "Filter:" + +#. i18n: file: qtgui/insertfragmentdialog.ui:29 +#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) +msgid "Type a name or part of a name to show only matching files." +msgstr "Type a name or part of a name to show only matching files." + +#. i18n: file: qtgui/insertfragmentdialog.ui:86 +#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) +#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 +#. i18n: ectx: property (text), widget (QPushButton, insertButton) +msgid "Insert" +msgstr "Insert" + #. i18n: file: qtplugins/3dmol/3dmoldialog.ui:17 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ThreeDMolDialog) msgid "3DMol HTML Snippet" @@ -5261,20 +5293,20 @@ msgstr "" "span> - Atomic number (e.g. \"6\" for carbon)
G - GAMESS-style atomic number (e.g. \"6.0\" for " "carbon)
N - Element name (e.g. " -"\"Carbon\")
S - Element symbol (" -"e.g. \"C\" for carbon)
L - Atom " -"label (e.g., \"C2\" for second carbon atom, \"H1\" for first hydrogen)
x - X position coordinate
S - Element symbol " +"(e.g. \"C\" for carbon)
L - " +"Atom label (e.g., \"C2\" for second carbon atom, \"H1\" for first hydrogen) " +"
x - X position coordinate
y - Y position coordinate
z - Z position coordinate
a - 'a' lattice coordinate (" -"crystals only)
b - 'b' lattice " +">a - 'a' lattice coordinate " +"(crystals only)
b - 'b' lattice " "coordinate (crystals only)
c - " -"'c' lattice coordinate (crystals only)
_ - A literal space (\" \"), useful for alignment
0 - A literal 0 (\"0\"), useful for optimization " -"flags
1 - A literal 1 (\"1\"), " -"useful for optimization flags

" +"'c' lattice coordinate (crystals only)
_ - A literal space (\" \"), useful for alignment
0 - A literal 0 (\"0\"), useful for " +"optimization flags
1 - A " +"literal 1 (\"1\"), useful for optimization flags

" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) @@ -5892,28 +5924,6 @@ msgctxt "double-strand DNA" msgid "Double" msgstr "Double" -#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 -#. i18n: ectx: property (text), widget (QPushButton, insertButton) -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:86 -#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) -msgid "Insert" -msgstr "Insert" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::InsertFragmentDialog) -msgid "Insert Fragment…" -msgstr "Insert Fragment…" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:22 -#. i18n: ectx: property (text), widget (QLabel, label) -msgid "Filter:" -msgstr "Filter:" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:29 -#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) -msgid "Type a name or part of a name to show only matching files." -msgstr "Type a name or part of a name to show only matching files." - #. i18n: file: qtplugins/lammpsinput/lammpsinputdialog.ui:20 #. i18n: ectx: property (windowTitle), widget (QDialog, LammpsInputDialog) msgid "LAMMPS Input" @@ -7020,8 +7030,8 @@ msgid "" "

The broadening of the peak at the base (in degrees)." msgstr "" -"

The broadening of the peak at the base (in " -"degrees).

" +"

The broadening of the peak at the base (in degrees)." #. i18n: file: qtplugins/plotxrd/xrdoptionsdialog.ui:23 #. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spin_max2Theta) @@ -7029,8 +7039,8 @@ msgid "" "

The max 2theta value in degrees.

Default: " "162.00°

" msgstr "" -"

The max 2theta value in degrees.

Default: 162." -"00°

" +"

The max 2theta value in degrees.

Default: " +"162.00°

" #. i18n: file: qtplugins/plotxrd/xrdoptionsdialog.ui:45 #. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spin_peakWidth) @@ -7038,8 +7048,8 @@ msgid "" "

The broadening of the peaks at the base in degrees.

Default: 0.52958°

" msgstr "" -"

The broadening of the peaks at the base in " -"degrees.

Default: 0.52958°

" +"

The broadening of the peaks at the base in degrees.

Default: 0.52958°

" #. i18n: file: qtplugins/plotxrd/xrdoptionsdialog.ui:67 #. i18n: ectx: property (text), widget (QLabel, label_3) @@ -7062,8 +7072,8 @@ msgid "" "

The wavelength of the x-ray in Angstroms.

Default: 1.50560 Å

" msgstr "" -"

The wavelength of the x-ray in Ångstroms. " -"

Default: 1.50560 Å

" +"

The wavelength of the x-ray in Ångstroms.

Default: 1.50560 Å

" #. i18n: file: qtplugins/plotxrd/xrdoptionsdialog.ui:122 #. i18n: ectx: property (toolTip), widget (QSpinBox, spin_numDataPoints) @@ -7071,8 +7081,8 @@ msgid "" "

The number of 2theta points to generate.

Default: 1000

" msgstr "" -"

The number of 2theta points to generate.

Default:" -" 1000

" +"

The number of 2theta points to generate.

Default: 1000

" #. i18n: file: qtplugins/plotxrd/xrdoptionsdialog.ui:141 #. i18n: ectx: property (text), widget (QLabel, label_4) @@ -7507,8 +7517,8 @@ msgstr "" "addition, if a density-of-states calculation is performed, the Fermi level " "here will automatically be set to what was detected during the density-of-" "states calculation.

If this box is checked, be sure the correct Fermi " -"level is set in the spinbox on the right.

Default: " -"off

" +"level is set in the spinbox on the right.

Default: off

" #. i18n: file: qtplugins/yaehmop/banddialog.ui:58 #. i18n: ectx: property (text), widget (QCheckBox, cb_plotFermi) @@ -7523,8 +7533,8 @@ msgid "" "p>

Default: off

" msgstr "" "

Adjust the energies so that the zero is the Fermi? " -"Only available if we are plotting the Fermi level.


Default:" -" off

" +"Only available if we are plotting the Fermi level.


Default: off

" #. i18n: file: qtplugins/yaehmop/banddialog.ui:74 #. i18n: ectx: property (text), widget (QCheckBox, cb_zeroFermi) @@ -7567,16 +7577,16 @@ msgid "" "b) - that is taken into account automatically.

" msgstr "" "

Enter special k-points as such:

L 0.5 0.5 0.5

G 0.0 0.0 0.0

X 0.5 0.0 0.5

That is, <symbol> " -"<x> <y> <z> where x, y, and z are fractional reciprocal " -"space coordinates. Lines will be drawn connecting these k-points on the " -"graph in the order you put them in. Please note that the orientation of your " -"cell may have an effect on the locations of these reciprocal space points.

If the space group of the crystal has been perceived or set, the " -"special k points will be automatically filled up with the primitive cell " -"high symmetry points for that space group. There are a few space groups will " -"different high symmetry points depending on the lattice (such as if a > b " -"or a < b) - that is taken into account automatically.

" +"p>

G 0.0 0.0 0.0

X 0.5 0.0 0.5

That is, <symbol> <" +"x> <y> <z> where x, y, and z are fractional reciprocal space " +"coordinates. Lines will be drawn connecting these k-points on the graph in " +"the order you put them in. Please note that the orientation of your cell may " +"have an effect on the locations of these reciprocal space points.

If " +"the space group of the crystal has been perceived or set, the special k " +"points will be automatically filled up with the primitive cell high symmetry " +"points for that space group. There are a few space groups will different " +"high symmetry points depending on the lattice (such as if a > b or a < " +"b) - that is taken into account automatically.

" #. i18n: file: qtplugins/yaehmop/banddialog.ui:149 #. i18n: ectx: property (html), widget (QTextEdit, edit_specialKPoints) @@ -7594,8 +7604,8 @@ msgid "" msgstr "" "\n" -"\n" @@ -7620,8 +7630,8 @@ msgid "" "

Limit the y-range in the plot?

Default: off

" msgstr "" -"

Limit the y-range in the plot?

Default: " -"off

" +"

Limit the y-range in the plot?

Default: off

" #. i18n: file: qtplugins/yaehmop/banddialog.ui:181 #. i18n: ectx: property (text), widget (QCheckBox, cb_limitY) @@ -7707,6 +7717,16 @@ msgstr "" "odell@googlemail.com,,,,,avogadro-devel@lists.sourceforge.net,bburns@aundae." "com,cwoollard@gmail.com,,,,joseph.odell@googlemail.com" +#~ msgid "" +#~ "The file name contains invalid characters. Please choose another file " +#~ "name." +#~ msgstr "" +#~ "The file name contains invalid characters. Please choose another file " +#~ "name." + +#~ msgid "Other..." +#~ msgstr "Other..." + #~ msgid "Connection failed" #~ msgstr "Connection failed" diff --git a/i18n/en_GB.po b/i18n/en_GB.po index f0562530e8..a3a81d2f7f 100644 --- a/i18n/en_GB.po +++ b/i18n/en_GB.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: _avogadro-en_GB\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-10-29 02:01+0000\n" +"POT-Creation-Date: 2023-11-19 14:57+0000\n" "PO-Revision-Date: 2023-11-08 19:34+0000\n" "Last-Translator: matterhorn103 \n" "Language-Team: English (United Kingdom)

Number of processor cores to reserve for this job." msgstr "" -"

Number of processor cores to reserve for this " -"job.

" +"

Number of processor cores to reserve for this job." #. i18n: file: molequeue/molequeuewidget.ui:88 #. i18n: ectx: property (text), widget (QLabel, label_7) @@ -4986,8 +4996,8 @@ msgid "" "body>" msgstr "" "

Delete remote working files upon job completion. " -"Results will still be copied to the local MoleQueue job cache " -"first.

" +"Results will still be copied to the local MoleQueue job cache first.

" #. i18n: file: molequeue/molequeuewidget.ui:128 #. i18n: ectx: property (text), widget (QLabel, label) @@ -5032,6 +5042,28 @@ msgstr "Open output when finished:" msgid "Rename Elements" msgstr "Rename Elements" +#. i18n: file: qtgui/insertfragmentdialog.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtGui::InsertFragmentDialog) +msgid "Insert Fragment…" +msgstr "Insert Fragment…" + +#. i18n: file: qtgui/insertfragmentdialog.ui:22 +#. i18n: ectx: property (text), widget (QLabel, label) +msgid "Filter:" +msgstr "Filter:" + +#. i18n: file: qtgui/insertfragmentdialog.ui:29 +#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) +msgid "Type a name or part of a name to show only matching files." +msgstr "Type a name or part of a name to show only matching files." + +#. i18n: file: qtgui/insertfragmentdialog.ui:86 +#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) +#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 +#. i18n: ectx: property (text), widget (QPushButton, insertButton) +msgid "Insert" +msgstr "Insert" + #. i18n: file: qtplugins/3dmol/3dmoldialog.ui:17 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ThreeDMolDialog) msgid "3DMol HTML Snippet" @@ -5261,20 +5293,20 @@ msgstr "" "span> - Atomic number (e.g. \"6\" for carbon)
G - GAMESS-style atomic number (e.g. \"6.0\" for " "carbon)
N - Element name (e.g. " -"\"Carbon\")
S - Element symbol (" -"e.g. \"C\" for carbon)
L - Atom " -"label (e.g., \"C2\" for second carbon atom, \"H1\" for first hydrogen)
x - X position coordinate
S - Element symbol " +"(e.g. \"C\" for carbon)
L - " +"Atom label (e.g., \"C2\" for second carbon atom, \"H1\" for first hydrogen) " +"
x - X position coordinate
y - Y position coordinate
z - Z position coordinate
a - 'a' lattice coordinate (" -"crystals only)
b - 'b' lattice " +">a - 'a' lattice coordinate " +"(crystals only)
b - 'b' lattice " "coordinate (crystals only)
c - " -"'c' lattice coordinate (crystals only)
_ - A literal space (\" \"), useful for alignment
0 - A literal 0 (\"0\"), useful for optimization " -"flags
1 - A literal 1 (\"1\"), " -"useful for optimization flags

" +"'c' lattice coordinate (crystals only)
_ - A literal space (\" \"), useful for alignment
0 - A literal 0 (\"0\"), useful for " +"optimization flags
1 - A " +"literal 1 (\"1\"), useful for optimization flags

" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) @@ -5892,28 +5924,6 @@ msgctxt "double-strand DNA" msgid "Double" msgstr "Double" -#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 -#. i18n: ectx: property (text), widget (QPushButton, insertButton) -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:86 -#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) -msgid "Insert" -msgstr "Insert" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::InsertFragmentDialog) -msgid "Insert Fragment…" -msgstr "Insert Fragment…" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:22 -#. i18n: ectx: property (text), widget (QLabel, label) -msgid "Filter:" -msgstr "Filter:" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:29 -#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) -msgid "Type a name or part of a name to show only matching files." -msgstr "Type a name or part of a name to show only matching files." - #. i18n: file: qtplugins/lammpsinput/lammpsinputdialog.ui:20 #. i18n: ectx: property (windowTitle), widget (QDialog, LammpsInputDialog) msgid "LAMMPS Input" @@ -7020,8 +7030,8 @@ msgid "" "

The broadening of the peak at the base (in degrees)." msgstr "" -"

The broadening of the peak at the base (in " -"degrees).

" +"

The broadening of the peak at the base (in degrees)." #. i18n: file: qtplugins/plotxrd/xrdoptionsdialog.ui:23 #. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spin_max2Theta) @@ -7029,8 +7039,8 @@ msgid "" "

The max 2theta value in degrees.

Default: " "162.00°

" msgstr "" -"

The max 2theta value in degrees.

Default: 162." -"00°

" +"

The max 2theta value in degrees.

Default: " +"162.00°

" #. i18n: file: qtplugins/plotxrd/xrdoptionsdialog.ui:45 #. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spin_peakWidth) @@ -7038,8 +7048,8 @@ msgid "" "

The broadening of the peaks at the base in degrees.

Default: 0.52958°

" msgstr "" -"

The broadening of the peaks at the base in " -"degrees.

Default: 0.52958°

" +"

The broadening of the peaks at the base in degrees.

Default: 0.52958°

" #. i18n: file: qtplugins/plotxrd/xrdoptionsdialog.ui:67 #. i18n: ectx: property (text), widget (QLabel, label_3) @@ -7062,8 +7072,8 @@ msgid "" "

The wavelength of the x-ray in Angstroms.

Default: 1.50560 Å

" msgstr "" -"

The wavelength of the x-ray in Ångstroms. " -"

Default: 1.50560 Å

" +"

The wavelength of the x-ray in Ångstroms.

Default: 1.50560 Å

" #. i18n: file: qtplugins/plotxrd/xrdoptionsdialog.ui:122 #. i18n: ectx: property (toolTip), widget (QSpinBox, spin_numDataPoints) @@ -7071,8 +7081,8 @@ msgid "" "

The number of 2theta points to generate.

Default: 1000

" msgstr "" -"

The number of 2theta points to generate.

Default:" -" 1000

" +"

The number of 2theta points to generate.

Default: 1000

" #. i18n: file: qtplugins/plotxrd/xrdoptionsdialog.ui:141 #. i18n: ectx: property (text), widget (QLabel, label_4) @@ -7507,8 +7517,8 @@ msgstr "" "addition, if a density-of-states calculation is performed, the Fermi level " "here will automatically be set to what was detected during the density-of-" "states calculation.

If this box is checked, be sure the correct Fermi " -"level is set in the spinbox on the right.

Default: " -"off

" +"level is set in the spinbox on the right.

Default: off

" #. i18n: file: qtplugins/yaehmop/banddialog.ui:58 #. i18n: ectx: property (text), widget (QCheckBox, cb_plotFermi) @@ -7523,8 +7533,8 @@ msgid "" "p>

Default: off

" msgstr "" "

Adjust the energies so that the zero is the Fermi? " -"Only available if we are plotting the Fermi level.


Default:" -" off

" +"Only available if we are plotting the Fermi level.


Default: off

" #. i18n: file: qtplugins/yaehmop/banddialog.ui:74 #. i18n: ectx: property (text), widget (QCheckBox, cb_zeroFermi) @@ -7567,16 +7577,16 @@ msgid "" "b) - that is taken into account automatically.

" msgstr "" "

Enter special k-points as such:

L 0.5 0.5 0.5

G 0.0 0.0 0.0

X 0.5 0.0 0.5

That is, <symbol> " -"<x> <y> <z> where x, y, and z are fractional reciprocal " -"space coordinates. Lines will be drawn connecting these k-points on the " -"graph in the order you put them in. Please note that the orientation of your " -"cell may have an effect on the locations of these reciprocal space points.

If the space group of the crystal has been perceived or set, the " -"special k points will be automatically filled up with the primitive cell " -"high symmetry points for that space group. There are a few space groups will " -"different high symmetry points depending on the lattice (such as if a > b " -"or a < b) - that is taken into account automatically.

" +"p>

G 0.0 0.0 0.0

X 0.5 0.0 0.5

That is, <symbol> <" +"x> <y> <z> where x, y, and z are fractional reciprocal space " +"coordinates. Lines will be drawn connecting these k-points on the graph in " +"the order you put them in. Please note that the orientation of your cell may " +"have an effect on the locations of these reciprocal space points.

If " +"the space group of the crystal has been perceived or set, the special k " +"points will be automatically filled up with the primitive cell high symmetry " +"points for that space group. There are a few space groups will different " +"high symmetry points depending on the lattice (such as if a > b or a < " +"b) - that is taken into account automatically.

" #. i18n: file: qtplugins/yaehmop/banddialog.ui:149 #. i18n: ectx: property (html), widget (QTextEdit, edit_specialKPoints) @@ -7594,8 +7604,8 @@ msgid "" msgstr "" "\n" -"\n" @@ -7620,8 +7630,8 @@ msgid "" "

Limit the y-range in the plot?

Default: off

" msgstr "" -"

Limit the y-range in the plot?

Default: " -"off

" +"

Limit the y-range in the plot?

Default: off

" #. i18n: file: qtplugins/yaehmop/banddialog.ui:181 #. i18n: ectx: property (text), widget (QCheckBox, cb_limitY) @@ -7707,6 +7717,16 @@ msgstr "" "odell@googlemail.com,,,,,avogadro-devel@lists.sourceforge.net,bburns@aundae." "com,cwoollard@gmail.com,,,,joseph.odell@googlemail.com" +#~ msgid "" +#~ "The file name contains invalid characters. Please choose another file " +#~ "name." +#~ msgstr "" +#~ "The file name contains invalid characters. Please choose another file " +#~ "name." + +#~ msgid "Other..." +#~ msgstr "Other..." + #~ msgid "Connection failed" #~ msgstr "Connection failed" diff --git a/i18n/eo.po b/i18n/eo.po index 3ef9bae8b7..a248b92859 100644 --- a/i18n/eo.po +++ b/i18n/eo.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Avogadro 1.93.0\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-10-29 02:01+0000\n" +"POT-Creation-Date: 2023-11-19 14:57+0000\n" "PO-Revision-Date: 2021-09-26 12:57+0000\n" "Last-Translator: phlostically \n" "Language-Team: Esperanto \n" "Language-Team: Spanish \n" "Language-Team: Estonian \n" @@ -955,65 +955,60 @@ msgstr "" msgid "Select executable:" msgstr "" -#: qtgui/fileformatdialog.cpp:48 -msgid "" -"The file name contains invalid characters. Please choose another file name." -msgstr "" - -#: qtgui/fileformatdialog.cpp:60 +#: qtgui/fileformatdialog.cpp:52 msgid "Unable to find a suitable file reader for the selected file." msgstr "" -#: qtgui/fileformatdialog.cpp:108 +#: qtgui/fileformatdialog.cpp:100 msgid "" "The file extension is missing, so the format cannot be determined.Do you " "want to add it?" msgstr "" -#: qtgui/fileformatdialog.cpp:122 +#: qtgui/fileformatdialog.cpp:114 msgid "Unable to find a suitable file writer for the selected format." msgstr "" -#: qtgui/fileformatdialog.cpp:171 +#: qtgui/fileformatdialog.cpp:163 msgctxt "File handlers" msgid "handlers" msgstr "" -#: qtgui/fileformatdialog.cpp:172 +#: qtgui/fileformatdialog.cpp:164 msgctxt "e.g. file handlers that can 'handle' this file." msgid "handle" msgstr "" -#: qtgui/fileformatdialog.cpp:176 +#: qtgui/fileformatdialog.cpp:168 msgctxt "File readers" msgid "readers" msgstr "" -#: qtgui/fileformatdialog.cpp:177 +#: qtgui/fileformatdialog.cpp:169 msgctxt "e.g. file readers that can 'read' this file." msgid "read" msgstr "" -#: qtgui/fileformatdialog.cpp:181 +#: qtgui/fileformatdialog.cpp:173 msgctxt "File writers" msgid "writers" msgstr "" -#: qtgui/fileformatdialog.cpp:182 +#: qtgui/fileformatdialog.cpp:174 msgctxt "e.g. file writers that can 'write' this file." msgid "write" msgstr "" -#: qtgui/fileformatdialog.cpp:187 +#: qtgui/fileformatdialog.cpp:179 #, qt-format msgid "Multiple %1 found that can %2 this format. Which should be used?" msgstr "" -#: qtgui/fileformatdialog.cpp:287 +#: qtgui/fileformatdialog.cpp:279 msgid "All files" msgstr "" -#: qtgui/fileformatdialog.cpp:290 +#: qtgui/fileformatdialog.cpp:282 msgid "All supported formats" msgstr "" @@ -1292,7 +1287,7 @@ msgstr "" #. i18n: file: qtplugins/selectiontool/selectiontoolwidget.ui:39 #. i18n: ectx: property (text), widget (QLabel, label) #: qtgui/rwlayermanager.cpp:220 qtgui/rwlayermanager.cpp:223 -#: qtplugins/select/select.cpp:527 +#: qtplugins/select/select.cpp:548 #: qtplugins/selectiontool/selectiontool.cpp:254:1567 msgid "Change Layer" msgstr "" @@ -1312,7 +1307,7 @@ msgstr "" #. i18n: file: qtplugins/editor/editortoolwidget.ui:43 #. i18n: ectx: property (text), widget (QCheckBox, adjustHydrogens) -#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:447 +#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:459 msgid "Adjust Hydrogens" msgstr "" @@ -1576,7 +1571,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsDialog) -#: qtplugins/apbs/apbs.h:31:84 +#: qtplugins/apbs/apbs.h:31:96 msgid "APBS" msgstr "" @@ -1639,7 +1634,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsoutputdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsOutputDialog) -#: qtplugins/apbs/apbsdialog.cpp:178:144 +#: qtplugins/apbs/apbsdialog.cpp:178:156 msgid "Success" msgstr "" @@ -1766,7 +1761,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:122 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:756:171 rc.cpp:1615 +#: qtplugins/surfaces/surfaces.cpp:756:183 rc.cpp:1615 msgctxt "colormap" msgid "Spectral" msgstr "" @@ -1776,7 +1771,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:169 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:124 -#: qtplugins/surfaces/surfaces.cpp:758:168 rc.cpp:1612 +#: qtplugins/surfaces/surfaces.cpp:758:180 rc.cpp:1612 msgctxt "colormap" msgid "Coolwarm" msgstr "" @@ -1786,7 +1781,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:159 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:126 -#: qtplugins/surfaces/surfaces.cpp:760:162 rc.cpp:1606 +#: qtplugins/surfaces/surfaces.cpp:760:174 rc.cpp:1606 msgctxt "colormap" msgid "Balance" msgstr "" @@ -1796,7 +1791,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:164 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:128 -#: qtplugins/surfaces/surfaces.cpp:762:165 rc.cpp:1609 +#: qtplugins/surfaces/surfaces.cpp:762:177 rc.cpp:1609 msgctxt "colormap" msgid "Blue-DarkRed" msgstr "" @@ -1808,7 +1803,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:130 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:764:174 rc.cpp:1618 +#: qtplugins/surfaces/surfaces.cpp:764:186 rc.cpp:1618 msgctxt "colormap" msgid "Turbo" msgstr "" @@ -1843,7 +1838,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:143 #. i18n: ectx: property (text), widget (QLabel, label_7) #: qtplugins/applycolors/applycolors.cpp:213 -#: qtplugins/applycolors/applycolors.cpp:305:159 rc.cpp:1603 +#: qtplugins/applycolors/applycolors.cpp:305:171 rc.cpp:1603 #, fuzzy msgid "Colormap:" msgstr "Kohandatud värv:" @@ -2063,7 +2058,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:265 #. i18n: ectx: property (suffix), widget (QDoubleSpinBox, resolutionDoubleSpinBox) #: qtplugins/closecontacts/closecontacts.cpp:215 -#: qtplugins/noncovalent/noncovalent.cpp:351:189 rc.cpp:192 rc.cpp:369 +#: qtplugins/noncovalent/noncovalent.cpp:351:201 rc.cpp:204 rc.cpp:381 msgid " Å" msgstr "" @@ -2326,7 +2321,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:108 #. i18n: ectx: property (text), widget (QToolButton, copy) -#: qtplugins/copypaste/copypaste.cpp:31:240 +#: qtplugins/copypaste/copypaste.cpp:31:252 msgid "Copy" msgstr "" @@ -2342,13 +2337,13 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:101 #. i18n: ectx: property (text), widget (QToolButton, cut) -#: qtplugins/copypaste/copypaste.cpp:34:237 +#: qtplugins/copypaste/copypaste.cpp:34:249 msgid "Cut" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:142 #. i18n: ectx: property (text), widget (QPushButton, clear) -#: qtplugins/copypaste/copypaste.cpp:35:249 +#: qtplugins/copypaste/copypaste.cpp:35:261 msgid "Clear" msgstr "" @@ -2695,6 +2690,14 @@ msgid "Editor tool" msgstr "" #: qtplugins/editor/editortoolwidget.cpp:129 +#: qtplugins/templatetool/templatetoolwidget.cpp:270 +#: qtplugins/templatetool/templatetoolwidget.cpp:283 +#: qtplugins/templatetool/templatetoolwidget.cpp:291 +#: qtplugins/templatetool/templatetoolwidget.cpp:299 +#: qtplugins/templatetool/templatetoolwidget.cpp:307 +#: qtplugins/templatetool/templatetoolwidget.cpp:315 +#: qtplugins/templatetool/templatetoolwidget.cpp:328 +#: qtplugins/templatetool/templatetoolwidget.cpp:390 msgid "Other…" msgstr "" @@ -2819,18 +2822,18 @@ msgstr "Impordi valitud aatomid" msgid "&Calculate" msgstr "Arvuta" -#: qtplugins/forcefield/forcefield.cpp:288 qtplugins/openbabel/openbabel.cpp:45 +#: qtplugins/forcefield/forcefield.cpp:285 qtplugins/openbabel/openbabel.cpp:45 #: qtplugins/openbabel/openbabel.cpp:525 msgid "Optimize Geometry" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:329 +#: qtplugins/forcefield/forcefield.cpp:326 #, fuzzy, qt-format #| msgid "Energy = %L1 %2" msgid "%1 Energy = %L2" msgstr "Energia = %L1 %2" -#: qtplugins/forcefield/forcefield.cpp:330 +#: qtplugins/forcefield/forcefield.cpp:327 #: qtplugins/playertool/playertool.cpp:343 #: qtplugins/playertool/playertool.cpp:375 qtplugins/surfaces/surfaces.cpp:886 #: qtplugins/surfaces/surfaces.cpp:930 qtplugins/surfaces/surfaces.cpp:942 @@ -3035,7 +3038,7 @@ msgstr "" #. i18n: file: qtplugins/insertdna/insertdnadialog.ui:79 #. i18n: ectx: property (toolTip), widget (QToolButton, toolButton_TU) -#: qtplugins/insertdna/insertdna.cpp:168:600 +#: qtplugins/insertdna/insertdna.cpp:168:612 msgid "Thymine" msgstr "" @@ -3075,7 +3078,7 @@ msgstr "" #. i18n: file: qtplugins/crystal/importcrystaldialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ImportCrystalDialog) -#: qtplugins/insertfragment/insertfragment.cpp:117:342 +#: qtplugins/insertfragment/insertfragment.cpp:117:354 msgid "Import Crystal" msgstr "" @@ -4302,7 +4305,7 @@ msgstr "" msgid "Select None" msgstr "" -#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:516 +#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:537 msgid "Invert Selection" msgstr "" @@ -4338,11 +4341,11 @@ msgstr "Aatomi number" msgid "Select Water…" msgstr "Aatomi number" -#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:352 +#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:368 msgid "Enlarge Selection" msgstr "" -#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:387 +#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:404 msgid "Shrink Selection" msgstr "" @@ -4364,44 +4367,44 @@ msgstr "" msgid "Select Element" msgstr "Vali jäägi järgi..." -#: qtplugins/select/select.cpp:216 +#: qtplugins/select/select.cpp:217 #, fuzzy msgid "Select Water" msgstr "Aatomi number" -#: qtplugins/select/select.cpp:254 +#: qtplugins/select/select.cpp:266 #, fuzzy msgid "Select Backbone" msgstr "Aatomi number" -#: qtplugins/select/select.cpp:288 +#: qtplugins/select/select.cpp:302 #, fuzzy msgid "Select Sidechain" msgstr "Aatomi number" -#: qtplugins/select/select.cpp:409 +#: qtplugins/select/select.cpp:428 msgid "Select Atoms by Index" msgstr "" -#: qtplugins/select/select.cpp:410 +#: qtplugins/select/select.cpp:429 msgid "Atoms to Select:" msgstr "" -#: qtplugins/select/select.cpp:415 +#: qtplugins/select/select.cpp:434 #, fuzzy #| msgid "Fix Selected Atoms" msgid "Select Atom" msgstr "Paranda valitud aatomid" -#: qtplugins/select/select.cpp:448 +#: qtplugins/select/select.cpp:469 msgid "Select Atoms by Residue" msgstr "" -#: qtplugins/select/select.cpp:449 +#: qtplugins/select/select.cpp:470 msgid "Residues to Select:" msgstr "" -#: qtplugins/select/select.cpp:454 +#: qtplugins/select/select.cpp:475 #, fuzzy #| msgid "Select by Residue..." msgid "Select Residue" @@ -4755,23 +4758,30 @@ msgstr "" msgid "Template" msgstr "" -#: qtplugins/templatetool/templatetool.cpp:294 +#: qtplugins/templatetool/templatetool.cpp:84 +msgid "" +"Template Tool\n" +"\n" +"Insert fragments, including metal centers.\n" +"Select an element and coordination geometry,then click to insert a " +"fragment.\n" +"\n" +"Select a ligand or functional group and clickon a hydrogen atom to attach it." +msgstr "" + +#: qtplugins/templatetool/templatetool.cpp:302 msgid "Insert Template" msgstr "" -#: qtplugins/templatetool/templatetool.cpp:544 +#: qtplugins/templatetool/templatetool.cpp:559 msgid "Insert Ligand" msgstr "" -#: qtplugins/templatetool/templatetool.h:34 #: qtplugins/templatetool/templatetool.h:35 +#: qtplugins/templatetool/templatetool.h:36 msgid "Template tool" msgstr "" -#: qtplugins/templatetool/templatetoolwidget.cpp:288 -msgid "Other..." -msgstr "" - #: qtplugins/vanderwaals/vanderwaals.h:33 msgid "Simple display of VdW spheres." msgstr "" @@ -4986,6 +4996,28 @@ msgstr "" msgid "Rename Elements" msgstr "" +#. i18n: file: qtgui/insertfragmentdialog.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtGui::InsertFragmentDialog) +msgid "Insert Fragment…" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:22 +#. i18n: ectx: property (text), widget (QLabel, label) +msgid "Filter:" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:29 +#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) +msgid "Type a name or part of a name to show only matching files." +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:86 +#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) +#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 +#. i18n: ectx: property (text), widget (QPushButton, insertButton) +msgid "Insert" +msgstr "" + #. i18n: file: qtplugins/3dmol/3dmoldialog.ui:17 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ThreeDMolDialog) msgid "3DMol HTML Snippet" @@ -5846,28 +5878,6 @@ msgctxt "double-strand DNA" msgid "Double" msgstr "" -#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 -#. i18n: ectx: property (text), widget (QPushButton, insertButton) -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:86 -#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) -msgid "Insert" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::InsertFragmentDialog) -msgid "Insert Fragment…" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:22 -#. i18n: ectx: property (text), widget (QLabel, label) -msgid "Filter:" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:29 -#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) -msgid "Type a name or part of a name to show only matching files." -msgstr "" - #. i18n: file: qtplugins/lammpsinput/lammpsinputdialog.ui:20 #. i18n: ectx: property (windowTitle), widget (QDialog, LammpsInputDialog) msgid "LAMMPS Input" diff --git a/i18n/eu.po b/i18n/eu.po index 7bca672fb8..eb937deb66 100644 --- a/i18n/eu.po +++ b/i18n/eu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-10-29 02:01+0000\n" +"POT-Creation-Date: 2023-11-19 14:57+0000\n" "PO-Revision-Date: 2022-06-22 19:15+0000\n" "Last-Translator: Julen Larrucea \n" "Language-Team: Basque \n" "Language-Team: Finnish \n" @@ -956,66 +956,61 @@ msgstr "" msgid "Select executable:" msgstr "" -#: qtgui/fileformatdialog.cpp:48 -msgid "" -"The file name contains invalid characters. Please choose another file name." -msgstr "" - -#: qtgui/fileformatdialog.cpp:60 +#: qtgui/fileformatdialog.cpp:52 msgid "Unable to find a suitable file reader for the selected file." msgstr "" -#: qtgui/fileformatdialog.cpp:108 +#: qtgui/fileformatdialog.cpp:100 msgid "" "The file extension is missing, so the format cannot be determined.Do you " "want to add it?" msgstr "" -#: qtgui/fileformatdialog.cpp:122 +#: qtgui/fileformatdialog.cpp:114 msgid "Unable to find a suitable file writer for the selected format." msgstr "" -#: qtgui/fileformatdialog.cpp:171 +#: qtgui/fileformatdialog.cpp:163 msgctxt "File handlers" msgid "handlers" msgstr "" -#: qtgui/fileformatdialog.cpp:172 +#: qtgui/fileformatdialog.cpp:164 msgctxt "e.g. file handlers that can 'handle' this file." msgid "handle" msgstr "" -#: qtgui/fileformatdialog.cpp:176 +#: qtgui/fileformatdialog.cpp:168 msgctxt "File readers" msgid "readers" msgstr "" -#: qtgui/fileformatdialog.cpp:177 +#: qtgui/fileformatdialog.cpp:169 msgctxt "e.g. file readers that can 'read' this file." msgid "read" msgstr "" -#: qtgui/fileformatdialog.cpp:181 +#: qtgui/fileformatdialog.cpp:173 msgctxt "File writers" msgid "writers" msgstr "" -#: qtgui/fileformatdialog.cpp:182 +#: qtgui/fileformatdialog.cpp:174 msgctxt "e.g. file writers that can 'write' this file." msgid "write" msgstr "" -#: qtgui/fileformatdialog.cpp:187 +#: qtgui/fileformatdialog.cpp:179 #, qt-format msgid "Multiple %1 found that can %2 this format. Which should be used?" msgstr "" -#: qtgui/fileformatdialog.cpp:287 +#: qtgui/fileformatdialog.cpp:279 #, fuzzy msgid "All files" msgstr "Kaikki tiedostot" -#: qtgui/fileformatdialog.cpp:290 +#: qtgui/fileformatdialog.cpp:282 msgid "All supported formats" msgstr "" @@ -1296,7 +1291,7 @@ msgstr "" #. i18n: file: qtplugins/selectiontool/selectiontoolwidget.ui:39 #. i18n: ectx: property (text), widget (QLabel, label) #: qtgui/rwlayermanager.cpp:220 qtgui/rwlayermanager.cpp:223 -#: qtplugins/select/select.cpp:527 +#: qtplugins/select/select.cpp:548 #: qtplugins/selectiontool/selectiontool.cpp:254:1567 #, fuzzy msgid "Change Layer" @@ -1317,7 +1312,7 @@ msgstr "" #. i18n: file: qtplugins/editor/editortoolwidget.ui:43 #. i18n: ectx: property (text), widget (QCheckBox, adjustHydrogens) -#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:447 +#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:459 msgid "Adjust Hydrogens" msgstr "Säädä vetyjä" @@ -1591,7 +1586,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsDialog) -#: qtplugins/apbs/apbs.h:31:84 +#: qtplugins/apbs/apbs.h:31:96 msgid "APBS" msgstr "" @@ -1654,7 +1649,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsoutputdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsOutputDialog) -#: qtplugins/apbs/apbsdialog.cpp:178:144 +#: qtplugins/apbs/apbsdialog.cpp:178:156 msgid "Success" msgstr "" @@ -1778,7 +1773,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:122 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:756:171 rc.cpp:1615 +#: qtplugins/surfaces/surfaces.cpp:756:183 rc.cpp:1615 #, fuzzy #| msgid "Neutral" msgctxt "colormap" @@ -1790,7 +1785,7 @@ msgstr "Neutraali" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:169 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:124 -#: qtplugins/surfaces/surfaces.cpp:758:168 rc.cpp:1612 +#: qtplugins/surfaces/surfaces.cpp:758:180 rc.cpp:1612 msgctxt "colormap" msgid "Coolwarm" msgstr "" @@ -1800,7 +1795,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:159 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:126 -#: qtplugins/surfaces/surfaces.cpp:760:162 rc.cpp:1606 +#: qtplugins/surfaces/surfaces.cpp:760:174 rc.cpp:1606 #, fuzzy #| msgid "Cancel" msgctxt "colormap" @@ -1812,7 +1807,7 @@ msgstr "Peruuta" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:164 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:128 -#: qtplugins/surfaces/surfaces.cpp:762:165 rc.cpp:1609 +#: qtplugins/surfaces/surfaces.cpp:762:177 rc.cpp:1609 msgctxt "colormap" msgid "Blue-DarkRed" msgstr "" @@ -1824,7 +1819,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:130 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:764:174 rc.cpp:1618 +#: qtplugins/surfaces/surfaces.cpp:764:186 rc.cpp:1618 msgctxt "colormap" msgid "Turbo" msgstr "" @@ -1859,7 +1854,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:143 #. i18n: ectx: property (text), widget (QLabel, label_7) #: qtplugins/applycolors/applycolors.cpp:213 -#: qtplugins/applycolors/applycolors.cpp:305:159 rc.cpp:1603 +#: qtplugins/applycolors/applycolors.cpp:305:171 rc.cpp:1603 #, fuzzy msgid "Colormap:" msgstr "Väri:" @@ -2085,7 +2080,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:265 #. i18n: ectx: property (suffix), widget (QDoubleSpinBox, resolutionDoubleSpinBox) #: qtplugins/closecontacts/closecontacts.cpp:215 -#: qtplugins/noncovalent/noncovalent.cpp:351:189 rc.cpp:192 rc.cpp:369 +#: qtplugins/noncovalent/noncovalent.cpp:351:201 rc.cpp:204 rc.cpp:381 msgid " Å" msgstr "" @@ -2354,7 +2349,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:108 #. i18n: ectx: property (text), widget (QToolButton, copy) -#: qtplugins/copypaste/copypaste.cpp:31:240 +#: qtplugins/copypaste/copypaste.cpp:31:252 msgid "Copy" msgstr "" @@ -2370,13 +2365,13 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:101 #. i18n: ectx: property (text), widget (QToolButton, cut) -#: qtplugins/copypaste/copypaste.cpp:34:237 +#: qtplugins/copypaste/copypaste.cpp:34:249 msgid "Cut" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:142 #. i18n: ectx: property (text), widget (QPushButton, clear) -#: qtplugins/copypaste/copypaste.cpp:35:249 +#: qtplugins/copypaste/copypaste.cpp:35:261 msgid "Clear" msgstr "" @@ -2722,6 +2717,14 @@ msgid "Editor tool" msgstr "" #: qtplugins/editor/editortoolwidget.cpp:129 +#: qtplugins/templatetool/templatetoolwidget.cpp:270 +#: qtplugins/templatetool/templatetoolwidget.cpp:283 +#: qtplugins/templatetool/templatetoolwidget.cpp:291 +#: qtplugins/templatetool/templatetoolwidget.cpp:299 +#: qtplugins/templatetool/templatetoolwidget.cpp:307 +#: qtplugins/templatetool/templatetoolwidget.cpp:315 +#: qtplugins/templatetool/templatetoolwidget.cpp:328 +#: qtplugins/templatetool/templatetoolwidget.cpp:390 #, fuzzy #| msgid "Other..." msgid "Other…" @@ -2853,17 +2856,17 @@ msgstr "Kiinnitä valitut atomit paikoilleen" msgid "&Calculate" msgstr "Laske energia" -#: qtplugins/forcefield/forcefield.cpp:288 qtplugins/openbabel/openbabel.cpp:45 +#: qtplugins/forcefield/forcefield.cpp:285 qtplugins/openbabel/openbabel.cpp:45 #: qtplugins/openbabel/openbabel.cpp:525 msgid "Optimize Geometry" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:329 +#: qtplugins/forcefield/forcefield.cpp:326 #, qt-format msgid "%1 Energy = %L2" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:330 +#: qtplugins/forcefield/forcefield.cpp:327 #: qtplugins/playertool/playertool.cpp:343 #: qtplugins/playertool/playertool.cpp:375 qtplugins/surfaces/surfaces.cpp:886 #: qtplugins/surfaces/surfaces.cpp:930 qtplugins/surfaces/surfaces.cpp:942 @@ -3074,7 +3077,7 @@ msgstr "" #. i18n: file: qtplugins/insertdna/insertdnadialog.ui:79 #. i18n: ectx: property (toolTip), widget (QToolButton, toolButton_TU) -#: qtplugins/insertdna/insertdna.cpp:168:600 +#: qtplugins/insertdna/insertdna.cpp:168:612 msgid "Thymine" msgstr "" @@ -3116,7 +3119,7 @@ msgstr "" #. i18n: file: qtplugins/crystal/importcrystaldialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ImportCrystalDialog) -#: qtplugins/insertfragment/insertfragment.cpp:117:342 +#: qtplugins/insertfragment/insertfragment.cpp:117:354 msgid "Import Crystal" msgstr "" @@ -4358,7 +4361,7 @@ msgstr "" msgid "Select None" msgstr "" -#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:516 +#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:537 msgid "Invert Selection" msgstr "" @@ -4391,13 +4394,13 @@ msgstr "Järjestysluku" msgid "Select Water…" msgstr "Järjestysluku" -#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:352 +#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:368 #, fuzzy #| msgid "Selection" msgid "Enlarge Selection" msgstr "Valinta" -#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:387 +#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:404 #, fuzzy #| msgid "Selection" msgid "Shrink Selection" @@ -4420,44 +4423,44 @@ msgstr "&Valitse" msgid "Select Element" msgstr "Alkuaine:" -#: qtplugins/select/select.cpp:216 +#: qtplugins/select/select.cpp:217 #, fuzzy msgid "Select Water" msgstr "Järjestysluku" -#: qtplugins/select/select.cpp:254 +#: qtplugins/select/select.cpp:266 #, fuzzy msgid "Select Backbone" msgstr "Järjestysluku" -#: qtplugins/select/select.cpp:288 +#: qtplugins/select/select.cpp:302 #, fuzzy msgid "Select Sidechain" msgstr "Järjestysluku" -#: qtplugins/select/select.cpp:409 +#: qtplugins/select/select.cpp:428 msgid "Select Atoms by Index" msgstr "" -#: qtplugins/select/select.cpp:410 +#: qtplugins/select/select.cpp:429 msgid "Atoms to Select:" msgstr "" -#: qtplugins/select/select.cpp:415 +#: qtplugins/select/select.cpp:434 #, fuzzy #| msgid "Fix Selected Atoms" msgid "Select Atom" msgstr "Kiinnitä valitut atomit paikoilleen" -#: qtplugins/select/select.cpp:448 +#: qtplugins/select/select.cpp:469 msgid "Select Atoms by Residue" msgstr "" -#: qtplugins/select/select.cpp:449 +#: qtplugins/select/select.cpp:470 msgid "Residues to Select:" msgstr "" -#: qtplugins/select/select.cpp:454 +#: qtplugins/select/select.cpp:475 #, fuzzy #| msgid "Selection Mode:" msgid "Select Residue" @@ -4815,28 +4818,33 @@ msgstr "" msgid "Template" msgstr "" -#: qtplugins/templatetool/templatetool.cpp:294 +#: qtplugins/templatetool/templatetool.cpp:84 +msgid "" +"Template Tool\n" +"\n" +"Insert fragments, including metal centers.\n" +"Select an element and coordination geometry,then click to insert a " +"fragment.\n" +"\n" +"Select a ligand or functional group and clickon a hydrogen atom to attach it." +msgstr "" + +#: qtplugins/templatetool/templatetool.cpp:302 #, fuzzy #| msgid "Molecule" msgid "Insert Template" msgstr "Molekyyli" -#: qtplugins/templatetool/templatetool.cpp:544 +#: qtplugins/templatetool/templatetool.cpp:559 msgid "Insert Ligand" msgstr "" -#: qtplugins/templatetool/templatetool.h:34 #: qtplugins/templatetool/templatetool.h:35 +#: qtplugins/templatetool/templatetool.h:36 #, fuzzy msgid "Template tool" msgstr "Mittaa" -#: qtplugins/templatetool/templatetoolwidget.cpp:288 -#, fuzzy -#| msgid "Other..." -msgid "Other..." -msgstr "Muu..." - #: qtplugins/vanderwaals/vanderwaals.h:33 msgid "Simple display of VdW spheres." msgstr "" @@ -5052,6 +5060,28 @@ msgstr "" msgid "Rename Elements" msgstr "" +#. i18n: file: qtgui/insertfragmentdialog.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtGui::InsertFragmentDialog) +msgid "Insert Fragment…" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:22 +#. i18n: ectx: property (text), widget (QLabel, label) +msgid "Filter:" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:29 +#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) +msgid "Type a name or part of a name to show only matching files." +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:86 +#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) +#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 +#. i18n: ectx: property (text), widget (QPushButton, insertButton) +msgid "Insert" +msgstr "" + #. i18n: file: qtplugins/3dmol/3dmoldialog.ui:17 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ThreeDMolDialog) msgid "3DMol HTML Snippet" @@ -5912,28 +5942,6 @@ msgctxt "double-strand DNA" msgid "Double" msgstr "Kaksoissidos" -#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 -#. i18n: ectx: property (text), widget (QPushButton, insertButton) -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:86 -#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) -msgid "Insert" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::InsertFragmentDialog) -msgid "Insert Fragment…" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:22 -#. i18n: ectx: property (text), widget (QLabel, label) -msgid "Filter:" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:29 -#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) -msgid "Type a name or part of a name to show only matching files." -msgstr "" - #. i18n: file: qtplugins/lammpsinput/lammpsinputdialog.ui:20 #. i18n: ectx: property (windowTitle), widget (QDialog, LammpsInputDialog) msgid "LAMMPS Input" @@ -7638,6 +7646,11 @@ msgstr "" "sourceforge.net,,,,avogadro-devel@lists.sourceforge.net,,,,,avogadro-" "devel@lists.sourceforge.net,,,,,avogadro-devel@lists.sourceforge.net,," +#, fuzzy +#~| msgid "Other..." +#~ msgid "Other..." +#~ msgstr "Muu..." + #, fuzzy #~ msgid "Filename" #~ msgstr "Tiedoston nimi:" diff --git a/i18n/fr.po b/i18n/fr.po index ac065511f8..df531e8d8a 100644 --- a/i18n/fr.po +++ b/i18n/fr.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-10-29 02:01+0000\n" +"POT-Creation-Date: 2023-11-19 14:57+0000\n" "PO-Revision-Date: 2023-11-06 11:35+0000\n" "Last-Translator: research11111 \n" "Language-Team: French \n" "Language-Team: Galician \n" @@ -956,67 +956,62 @@ msgstr "" msgid "Select executable:" msgstr "" -#: qtgui/fileformatdialog.cpp:48 -msgid "" -"The file name contains invalid characters. Please choose another file name." -msgstr "" - -#: qtgui/fileformatdialog.cpp:60 +#: qtgui/fileformatdialog.cpp:52 msgid "Unable to find a suitable file reader for the selected file." msgstr "" -#: qtgui/fileformatdialog.cpp:108 +#: qtgui/fileformatdialog.cpp:100 msgid "" "The file extension is missing, so the format cannot be determined.Do you " "want to add it?" msgstr "" -#: qtgui/fileformatdialog.cpp:122 +#: qtgui/fileformatdialog.cpp:114 msgid "Unable to find a suitable file writer for the selected format." msgstr "" -#: qtgui/fileformatdialog.cpp:171 +#: qtgui/fileformatdialog.cpp:163 msgctxt "File handlers" msgid "handlers" msgstr "" -#: qtgui/fileformatdialog.cpp:172 +#: qtgui/fileformatdialog.cpp:164 msgctxt "e.g. file handlers that can 'handle' this file." msgid "handle" msgstr "" -#: qtgui/fileformatdialog.cpp:176 +#: qtgui/fileformatdialog.cpp:168 msgctxt "File readers" msgid "readers" msgstr "" -#: qtgui/fileformatdialog.cpp:177 +#: qtgui/fileformatdialog.cpp:169 msgctxt "e.g. file readers that can 'read' this file." msgid "read" msgstr "" -#: qtgui/fileformatdialog.cpp:181 +#: qtgui/fileformatdialog.cpp:173 msgctxt "File writers" msgid "writers" msgstr "" -#: qtgui/fileformatdialog.cpp:182 +#: qtgui/fileformatdialog.cpp:174 msgctxt "e.g. file writers that can 'write' this file." msgid "write" msgstr "" -#: qtgui/fileformatdialog.cpp:187 +#: qtgui/fileformatdialog.cpp:179 #, qt-format msgid "Multiple %1 found that can %2 this format. Which should be used?" msgstr "" -#: qtgui/fileformatdialog.cpp:287 +#: qtgui/fileformatdialog.cpp:279 #, fuzzy #| msgid "All Files" msgid "All files" msgstr "Todos os ficheiros" -#: qtgui/fileformatdialog.cpp:290 +#: qtgui/fileformatdialog.cpp:282 msgid "All supported formats" msgstr "" @@ -1303,7 +1298,7 @@ msgstr "" #. i18n: file: qtplugins/selectiontool/selectiontoolwidget.ui:39 #. i18n: ectx: property (text), widget (QLabel, label) #: qtgui/rwlayermanager.cpp:220 qtgui/rwlayermanager.cpp:223 -#: qtplugins/select/select.cpp:527 +#: qtplugins/select/select.cpp:548 #: qtplugins/selectiontool/selectiontool.cpp:254:1567 #, fuzzy msgid "Change Layer" @@ -1324,7 +1319,7 @@ msgstr "" #. i18n: file: qtplugins/editor/editortoolwidget.ui:43 #. i18n: ectx: property (text), widget (QCheckBox, adjustHydrogens) -#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:447 +#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:459 msgid "Adjust Hydrogens" msgstr "Axustar os hidróxenos" @@ -1611,7 +1606,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsDialog) -#: qtplugins/apbs/apbs.h:31:84 +#: qtplugins/apbs/apbs.h:31:96 msgid "APBS" msgstr "" @@ -1674,7 +1669,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsoutputdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsOutputDialog) -#: qtplugins/apbs/apbsdialog.cpp:178:144 +#: qtplugins/apbs/apbsdialog.cpp:178:156 #, fuzzy msgid "Success" msgstr "Éxito" @@ -1802,7 +1797,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:122 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:756:171 rc.cpp:1615 +#: qtplugins/surfaces/surfaces.cpp:756:183 rc.cpp:1615 #, fuzzy #| msgid "Spectra" msgctxt "colormap" @@ -1814,7 +1809,7 @@ msgstr "Espectros" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:169 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:124 -#: qtplugins/surfaces/surfaces.cpp:758:168 rc.cpp:1612 +#: qtplugins/surfaces/surfaces.cpp:758:180 rc.cpp:1612 msgctxt "colormap" msgid "Coolwarm" msgstr "" @@ -1824,7 +1819,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:159 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:126 -#: qtplugins/surfaces/surfaces.cpp:760:162 rc.cpp:1606 +#: qtplugins/surfaces/surfaces.cpp:760:174 rc.cpp:1606 #, fuzzy #| msgid "Cancel" msgctxt "colormap" @@ -1836,7 +1831,7 @@ msgstr "Cancelar" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:164 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:128 -#: qtplugins/surfaces/surfaces.cpp:762:165 rc.cpp:1609 +#: qtplugins/surfaces/surfaces.cpp:762:177 rc.cpp:1609 msgctxt "colormap" msgid "Blue-DarkRed" msgstr "" @@ -1848,7 +1843,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:130 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:764:174 rc.cpp:1618 +#: qtplugins/surfaces/surfaces.cpp:764:186 rc.cpp:1618 msgctxt "colormap" msgid "Turbo" msgstr "" @@ -1886,7 +1881,7 @@ msgstr "Cores escollidas" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:143 #. i18n: ectx: property (text), widget (QLabel, label_7) #: qtplugins/applycolors/applycolors.cpp:213 -#: qtplugins/applycolors/applycolors.cpp:305:159 rc.cpp:1603 +#: qtplugins/applycolors/applycolors.cpp:305:171 rc.cpp:1603 #, fuzzy #| msgid "Color:" msgid "Colormap:" @@ -2123,7 +2118,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:265 #. i18n: ectx: property (suffix), widget (QDoubleSpinBox, resolutionDoubleSpinBox) #: qtplugins/closecontacts/closecontacts.cpp:215 -#: qtplugins/noncovalent/noncovalent.cpp:351:189 rc.cpp:192 rc.cpp:369 +#: qtplugins/noncovalent/noncovalent.cpp:351:201 rc.cpp:204 rc.cpp:381 msgid " Å" msgstr " Å" @@ -2398,7 +2393,7 @@ msgstr "Entrada do Turbomole" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:108 #. i18n: ectx: property (text), widget (QToolButton, copy) -#: qtplugins/copypaste/copypaste.cpp:31:240 +#: qtplugins/copypaste/copypaste.cpp:31:252 #, fuzzy msgid "Copy" msgstr "Copiar todo" @@ -2416,13 +2411,13 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:101 #. i18n: ectx: property (text), widget (QToolButton, cut) -#: qtplugins/copypaste/copypaste.cpp:34:237 +#: qtplugins/copypaste/copypaste.cpp:34:249 msgid "Cut" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:142 #. i18n: ectx: property (text), widget (QPushButton, clear) -#: qtplugins/copypaste/copypaste.cpp:35:249 +#: qtplugins/copypaste/copypaste.cpp:35:261 #, fuzzy msgid "Clear" msgstr "Limpar todo" @@ -2788,6 +2783,14 @@ msgid "Editor tool" msgstr "" #: qtplugins/editor/editortoolwidget.cpp:129 +#: qtplugins/templatetool/templatetoolwidget.cpp:270 +#: qtplugins/templatetool/templatetoolwidget.cpp:283 +#: qtplugins/templatetool/templatetoolwidget.cpp:291 +#: qtplugins/templatetool/templatetoolwidget.cpp:299 +#: qtplugins/templatetool/templatetoolwidget.cpp:307 +#: qtplugins/templatetool/templatetoolwidget.cpp:315 +#: qtplugins/templatetool/templatetoolwidget.cpp:328 +#: qtplugins/templatetool/templatetoolwidget.cpp:390 #, fuzzy #| msgid "Other" msgid "Other…" @@ -2922,19 +2925,19 @@ msgstr "Fixar os átomos escollidos" msgid "&Calculate" msgstr "Calcular" -#: qtplugins/forcefield/forcefield.cpp:288 qtplugins/openbabel/openbabel.cpp:45 +#: qtplugins/forcefield/forcefield.cpp:285 qtplugins/openbabel/openbabel.cpp:45 #: qtplugins/openbabel/openbabel.cpp:525 #, fuzzy msgid "Optimize Geometry" msgstr "&Optimizar a xeometría" -#: qtplugins/forcefield/forcefield.cpp:329 +#: qtplugins/forcefield/forcefield.cpp:326 #, fuzzy, qt-format #| msgid "Energy = %L1 %2" msgid "%1 Energy = %L2" msgstr "Enerxía = %L1 %2" -#: qtplugins/forcefield/forcefield.cpp:330 +#: qtplugins/forcefield/forcefield.cpp:327 #: qtplugins/playertool/playertool.cpp:343 #: qtplugins/playertool/playertool.cpp:375 qtplugins/surfaces/surfaces.cpp:886 #: qtplugins/surfaces/surfaces.cpp:930 qtplugins/surfaces/surfaces.cpp:942 @@ -3155,7 +3158,7 @@ msgstr "T" #. i18n: file: qtplugins/insertdna/insertdnadialog.ui:79 #. i18n: ectx: property (toolTip), widget (QToolButton, toolButton_TU) -#: qtplugins/insertdna/insertdna.cpp:168:600 +#: qtplugins/insertdna/insertdna.cpp:168:612 msgid "Thymine" msgstr "" @@ -3202,7 +3205,7 @@ msgstr "" #. i18n: file: qtplugins/crystal/importcrystaldialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ImportCrystalDialog) -#: qtplugins/insertfragment/insertfragment.cpp:117:342 +#: qtplugins/insertfragment/insertfragment.cpp:117:354 msgid "Import Crystal" msgstr "Importar cristal" @@ -4473,7 +4476,7 @@ msgstr "" msgid "Select None" msgstr "" -#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:516 +#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:537 msgid "Invert Selection" msgstr "" @@ -4509,13 +4512,13 @@ msgstr "Índices atómicos" msgid "Select Water…" msgstr "Índices atómicos" -#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:352 +#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:368 #, fuzzy #| msgid "Ignore Selection" msgid "Enlarge Selection" msgstr "Ignorar a selección" -#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:387 +#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:404 #, fuzzy #| msgid "Selection" msgid "Shrink Selection" @@ -4539,44 +4542,44 @@ msgstr "&Escoller" msgid "Select Element" msgstr "Cor segundo o elemento" -#: qtplugins/select/select.cpp:216 +#: qtplugins/select/select.cpp:217 #, fuzzy msgid "Select Water" msgstr "Índices atómicos" -#: qtplugins/select/select.cpp:254 +#: qtplugins/select/select.cpp:266 #, fuzzy msgid "Select Backbone" msgstr "Índices atómicos" -#: qtplugins/select/select.cpp:288 +#: qtplugins/select/select.cpp:302 #, fuzzy msgid "Select Sidechain" msgstr "Índices atómicos" -#: qtplugins/select/select.cpp:409 +#: qtplugins/select/select.cpp:428 msgid "Select Atoms by Index" msgstr "" -#: qtplugins/select/select.cpp:410 +#: qtplugins/select/select.cpp:429 msgid "Atoms to Select:" msgstr "" -#: qtplugins/select/select.cpp:415 +#: qtplugins/select/select.cpp:434 #, fuzzy #| msgid "Delete Atom" msgid "Select Atom" msgstr "Borrar o átomo" -#: qtplugins/select/select.cpp:448 +#: qtplugins/select/select.cpp:469 msgid "Select Atoms by Residue" msgstr "" -#: qtplugins/select/select.cpp:449 +#: qtplugins/select/select.cpp:470 msgid "Residues to Select:" msgstr "" -#: qtplugins/select/select.cpp:454 +#: qtplugins/select/select.cpp:475 #, fuzzy #| msgid "Select by Residue..." msgid "Select Residue" @@ -4958,28 +4961,35 @@ msgstr "" msgid "Template" msgstr "Temperatura:" -#: qtplugins/templatetool/templatetool.cpp:294 +#: qtplugins/templatetool/templatetool.cpp:84 +msgid "" +"Template Tool\n" +"\n" +"Insert fragments, including metal centers.\n" +"Select an element and coordination geometry,then click to insert a " +"fragment.\n" +"\n" +"Select a ligand or functional group and clickon a hydrogen atom to attach it." +msgstr "" + +#: qtplugins/templatetool/templatetool.cpp:302 #, fuzzy #| msgid "Insert Peptide" msgid "Insert Template" msgstr "Inserir in péptido" -#: qtplugins/templatetool/templatetool.cpp:544 +#: qtplugins/templatetool/templatetool.cpp:559 #, fuzzy #| msgid "Insert Peptide" msgid "Insert Ligand" msgstr "Inserir in péptido" -#: qtplugins/templatetool/templatetool.h:34 #: qtplugins/templatetool/templatetool.h:35 +#: qtplugins/templatetool/templatetool.h:36 #, fuzzy msgid "Template tool" msgstr "Medir" -#: qtplugins/templatetool/templatetoolwidget.cpp:288 -msgid "Other..." -msgstr "Outro..." - #: qtplugins/vanderwaals/vanderwaals.h:33 msgid "Simple display of VdW spheres." msgstr "" @@ -5201,6 +5211,30 @@ msgstr "" msgid "Rename Elements" msgstr "" +#. i18n: file: qtgui/insertfragmentdialog.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtGui::InsertFragmentDialog) +#, fuzzy +#| msgid "Insert Fragment" +msgid "Insert Fragment…" +msgstr "Inserir un fragmento" + +#. i18n: file: qtgui/insertfragmentdialog.ui:22 +#. i18n: ectx: property (text), widget (QLabel, label) +msgid "Filter:" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:29 +#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) +msgid "Type a name or part of a name to show only matching files." +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:86 +#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) +#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 +#. i18n: ectx: property (text), widget (QPushButton, insertButton) +msgid "Insert" +msgstr "" + #. i18n: file: qtplugins/3dmol/3dmoldialog.ui:17 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ThreeDMolDialog) msgid "3DMol HTML Snippet" @@ -6075,30 +6109,6 @@ msgctxt "double-strand DNA" msgid "Double" msgstr "Duplo" -#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 -#. i18n: ectx: property (text), widget (QPushButton, insertButton) -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:86 -#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) -msgid "Insert" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::InsertFragmentDialog) -#, fuzzy -#| msgid "Insert Fragment" -msgid "Insert Fragment…" -msgstr "Inserir un fragmento" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:22 -#. i18n: ectx: property (text), widget (QLabel, label) -msgid "Filter:" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:29 -#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) -msgid "Type a name or part of a name to show only matching files." -msgstr "" - #. i18n: file: qtplugins/lammpsinput/lammpsinputdialog.ui:20 #. i18n: ectx: property (windowTitle), widget (QDialog, LammpsInputDialog) msgid "LAMMPS Input" @@ -7825,6 +7835,9 @@ msgstr "" ",,mbouzada@gmail.com,,,,mbouzada@gmail.com,,,,mbouzada@gmail.com,,,," "mbouzada@gmail.com,,,,mbouzada@gmail.com," +#~ msgid "Other..." +#~ msgstr "Outro..." + #, fuzzy #~ msgid "Filename" #~ msgstr "Nome do ficheiro:" diff --git a/i18n/he.po b/i18n/he.po index e6272046fe..4632bea261 100644 --- a/i18n/he.po +++ b/i18n/he.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-10-29 02:01+0000\n" +"POT-Creation-Date: 2023-11-19 14:57+0000\n" "PO-Revision-Date: 2016-06-10 06:32+0000\n" "Last-Translator: Avogadro Team \n" "Language-Team: Hebrew \n" @@ -955,65 +955,60 @@ msgstr "" msgid "Select executable:" msgstr "" -#: qtgui/fileformatdialog.cpp:48 -msgid "" -"The file name contains invalid characters. Please choose another file name." -msgstr "" - -#: qtgui/fileformatdialog.cpp:60 +#: qtgui/fileformatdialog.cpp:52 msgid "Unable to find a suitable file reader for the selected file." msgstr "" -#: qtgui/fileformatdialog.cpp:108 +#: qtgui/fileformatdialog.cpp:100 msgid "" "The file extension is missing, so the format cannot be determined.Do you " "want to add it?" msgstr "" -#: qtgui/fileformatdialog.cpp:122 +#: qtgui/fileformatdialog.cpp:114 msgid "Unable to find a suitable file writer for the selected format." msgstr "" -#: qtgui/fileformatdialog.cpp:171 +#: qtgui/fileformatdialog.cpp:163 msgctxt "File handlers" msgid "handlers" msgstr "" -#: qtgui/fileformatdialog.cpp:172 +#: qtgui/fileformatdialog.cpp:164 msgctxt "e.g. file handlers that can 'handle' this file." msgid "handle" msgstr "" -#: qtgui/fileformatdialog.cpp:176 +#: qtgui/fileformatdialog.cpp:168 msgctxt "File readers" msgid "readers" msgstr "" -#: qtgui/fileformatdialog.cpp:177 +#: qtgui/fileformatdialog.cpp:169 msgctxt "e.g. file readers that can 'read' this file." msgid "read" msgstr "" -#: qtgui/fileformatdialog.cpp:181 +#: qtgui/fileformatdialog.cpp:173 msgctxt "File writers" msgid "writers" msgstr "" -#: qtgui/fileformatdialog.cpp:182 +#: qtgui/fileformatdialog.cpp:174 msgctxt "e.g. file writers that can 'write' this file." msgid "write" msgstr "" -#: qtgui/fileformatdialog.cpp:187 +#: qtgui/fileformatdialog.cpp:179 #, qt-format msgid "Multiple %1 found that can %2 this format. Which should be used?" msgstr "" -#: qtgui/fileformatdialog.cpp:287 +#: qtgui/fileformatdialog.cpp:279 msgid "All files" msgstr "" -#: qtgui/fileformatdialog.cpp:290 +#: qtgui/fileformatdialog.cpp:282 msgid "All supported formats" msgstr "" @@ -1294,7 +1289,7 @@ msgstr "" #. i18n: file: qtplugins/selectiontool/selectiontoolwidget.ui:39 #. i18n: ectx: property (text), widget (QLabel, label) #: qtgui/rwlayermanager.cpp:220 qtgui/rwlayermanager.cpp:223 -#: qtplugins/select/select.cpp:527 +#: qtplugins/select/select.cpp:548 #: qtplugins/selectiontool/selectiontool.cpp:254:1567 msgid "Change Layer" msgstr "" @@ -1314,7 +1309,7 @@ msgstr "" #. i18n: file: qtplugins/editor/editortoolwidget.ui:43 #. i18n: ectx: property (text), widget (QCheckBox, adjustHydrogens) -#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:447 +#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:459 msgid "Adjust Hydrogens" msgstr "" @@ -1576,7 +1571,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsDialog) -#: qtplugins/apbs/apbs.h:31:84 +#: qtplugins/apbs/apbs.h:31:96 msgid "APBS" msgstr "" @@ -1639,7 +1634,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsoutputdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsOutputDialog) -#: qtplugins/apbs/apbsdialog.cpp:178:144 +#: qtplugins/apbs/apbsdialog.cpp:178:156 msgid "Success" msgstr "" @@ -1762,7 +1757,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:122 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:756:171 rc.cpp:1615 +#: qtplugins/surfaces/surfaces.cpp:756:183 rc.cpp:1615 msgctxt "colormap" msgid "Spectral" msgstr "" @@ -1772,7 +1767,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:169 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:124 -#: qtplugins/surfaces/surfaces.cpp:758:168 rc.cpp:1612 +#: qtplugins/surfaces/surfaces.cpp:758:180 rc.cpp:1612 msgctxt "colormap" msgid "Coolwarm" msgstr "" @@ -1782,7 +1777,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:159 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:126 -#: qtplugins/surfaces/surfaces.cpp:760:162 rc.cpp:1606 +#: qtplugins/surfaces/surfaces.cpp:760:174 rc.cpp:1606 msgctxt "colormap" msgid "Balance" msgstr "" @@ -1792,7 +1787,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:164 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:128 -#: qtplugins/surfaces/surfaces.cpp:762:165 rc.cpp:1609 +#: qtplugins/surfaces/surfaces.cpp:762:177 rc.cpp:1609 msgctxt "colormap" msgid "Blue-DarkRed" msgstr "" @@ -1804,7 +1799,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:130 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:764:174 rc.cpp:1618 +#: qtplugins/surfaces/surfaces.cpp:764:186 rc.cpp:1618 msgctxt "colormap" msgid "Turbo" msgstr "" @@ -1840,7 +1835,7 @@ msgstr "בחר צבע לתוויות אטומים" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:143 #. i18n: ectx: property (text), widget (QLabel, label_7) #: qtplugins/applycolors/applycolors.cpp:213 -#: qtplugins/applycolors/applycolors.cpp:305:159 rc.cpp:1603 +#: qtplugins/applycolors/applycolors.cpp:305:171 rc.cpp:1603 msgid "Colormap:" msgstr "" @@ -2059,7 +2054,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:265 #. i18n: ectx: property (suffix), widget (QDoubleSpinBox, resolutionDoubleSpinBox) #: qtplugins/closecontacts/closecontacts.cpp:215 -#: qtplugins/noncovalent/noncovalent.cpp:351:189 rc.cpp:192 rc.cpp:369 +#: qtplugins/noncovalent/noncovalent.cpp:351:201 rc.cpp:204 rc.cpp:381 msgid " Å" msgstr "" @@ -2316,7 +2311,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:108 #. i18n: ectx: property (text), widget (QToolButton, copy) -#: qtplugins/copypaste/copypaste.cpp:31:240 +#: qtplugins/copypaste/copypaste.cpp:31:252 msgid "Copy" msgstr "" @@ -2332,13 +2327,13 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:101 #. i18n: ectx: property (text), widget (QToolButton, cut) -#: qtplugins/copypaste/copypaste.cpp:34:237 +#: qtplugins/copypaste/copypaste.cpp:34:249 msgid "Cut" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:142 #. i18n: ectx: property (text), widget (QPushButton, clear) -#: qtplugins/copypaste/copypaste.cpp:35:249 +#: qtplugins/copypaste/copypaste.cpp:35:261 msgid "Clear" msgstr "" @@ -2682,6 +2677,14 @@ msgid "Editor tool" msgstr "" #: qtplugins/editor/editortoolwidget.cpp:129 +#: qtplugins/templatetool/templatetoolwidget.cpp:270 +#: qtplugins/templatetool/templatetoolwidget.cpp:283 +#: qtplugins/templatetool/templatetoolwidget.cpp:291 +#: qtplugins/templatetool/templatetoolwidget.cpp:299 +#: qtplugins/templatetool/templatetoolwidget.cpp:307 +#: qtplugins/templatetool/templatetoolwidget.cpp:315 +#: qtplugins/templatetool/templatetoolwidget.cpp:328 +#: qtplugins/templatetool/templatetoolwidget.cpp:390 msgid "Other…" msgstr "" @@ -2804,17 +2807,17 @@ msgstr "בחר צבע לתוויות אטומים" msgid "&Calculate" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:288 qtplugins/openbabel/openbabel.cpp:45 +#: qtplugins/forcefield/forcefield.cpp:285 qtplugins/openbabel/openbabel.cpp:45 #: qtplugins/openbabel/openbabel.cpp:525 msgid "Optimize Geometry" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:329 +#: qtplugins/forcefield/forcefield.cpp:326 #, qt-format msgid "%1 Energy = %L2" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:330 +#: qtplugins/forcefield/forcefield.cpp:327 #: qtplugins/playertool/playertool.cpp:343 #: qtplugins/playertool/playertool.cpp:375 qtplugins/surfaces/surfaces.cpp:886 #: qtplugins/surfaces/surfaces.cpp:930 qtplugins/surfaces/surfaces.cpp:942 @@ -3017,7 +3020,7 @@ msgstr "" #. i18n: file: qtplugins/insertdna/insertdnadialog.ui:79 #. i18n: ectx: property (toolTip), widget (QToolButton, toolButton_TU) -#: qtplugins/insertdna/insertdna.cpp:168:600 +#: qtplugins/insertdna/insertdna.cpp:168:612 msgid "Thymine" msgstr "" @@ -3057,7 +3060,7 @@ msgstr "" #. i18n: file: qtplugins/crystal/importcrystaldialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ImportCrystalDialog) -#: qtplugins/insertfragment/insertfragment.cpp:117:342 +#: qtplugins/insertfragment/insertfragment.cpp:117:354 msgid "Import Crystal" msgstr "" @@ -4244,7 +4247,7 @@ msgstr "" msgid "Select None" msgstr "" -#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:516 +#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:537 msgid "Invert Selection" msgstr "" @@ -4272,11 +4275,11 @@ msgstr "" msgid "Select Water…" msgstr "" -#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:352 +#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:368 msgid "Enlarge Selection" msgstr "" -#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:387 +#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:404 msgid "Shrink Selection" msgstr "" @@ -4298,43 +4301,43 @@ msgstr "" msgid "Select Element" msgstr "בחר צבע לתוויות אטומים" -#: qtplugins/select/select.cpp:216 +#: qtplugins/select/select.cpp:217 msgid "Select Water" msgstr "" -#: qtplugins/select/select.cpp:254 +#: qtplugins/select/select.cpp:266 #, fuzzy #| msgid "Select Bond Labels Font" msgid "Select Backbone" msgstr "בחר גופן תוויות קשרים" -#: qtplugins/select/select.cpp:288 +#: qtplugins/select/select.cpp:302 msgid "Select Sidechain" msgstr "" -#: qtplugins/select/select.cpp:409 +#: qtplugins/select/select.cpp:428 msgid "Select Atoms by Index" msgstr "" -#: qtplugins/select/select.cpp:410 +#: qtplugins/select/select.cpp:429 msgid "Atoms to Select:" msgstr "" -#: qtplugins/select/select.cpp:415 +#: qtplugins/select/select.cpp:434 #, fuzzy #| msgid "Select Atom Labels Color" msgid "Select Atom" msgstr "בחר צבע לתוויות אטומים" -#: qtplugins/select/select.cpp:448 +#: qtplugins/select/select.cpp:469 msgid "Select Atoms by Residue" msgstr "" -#: qtplugins/select/select.cpp:449 +#: qtplugins/select/select.cpp:470 msgid "Residues to Select:" msgstr "" -#: qtplugins/select/select.cpp:454 +#: qtplugins/select/select.cpp:475 msgid "Select Residue" msgstr "" @@ -4680,23 +4683,30 @@ msgstr "" msgid "Template" msgstr "" -#: qtplugins/templatetool/templatetool.cpp:294 +#: qtplugins/templatetool/templatetool.cpp:84 +msgid "" +"Template Tool\n" +"\n" +"Insert fragments, including metal centers.\n" +"Select an element and coordination geometry,then click to insert a " +"fragment.\n" +"\n" +"Select a ligand or functional group and clickon a hydrogen atom to attach it." +msgstr "" + +#: qtplugins/templatetool/templatetool.cpp:302 msgid "Insert Template" msgstr "" -#: qtplugins/templatetool/templatetool.cpp:544 +#: qtplugins/templatetool/templatetool.cpp:559 msgid "Insert Ligand" msgstr "" -#: qtplugins/templatetool/templatetool.h:34 #: qtplugins/templatetool/templatetool.h:35 +#: qtplugins/templatetool/templatetool.h:36 msgid "Template tool" msgstr "" -#: qtplugins/templatetool/templatetoolwidget.cpp:288 -msgid "Other..." -msgstr "" - #: qtplugins/vanderwaals/vanderwaals.h:33 msgid "Simple display of VdW spheres." msgstr "" @@ -4911,6 +4921,28 @@ msgstr "" msgid "Rename Elements" msgstr "" +#. i18n: file: qtgui/insertfragmentdialog.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtGui::InsertFragmentDialog) +msgid "Insert Fragment…" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:22 +#. i18n: ectx: property (text), widget (QLabel, label) +msgid "Filter:" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:29 +#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) +msgid "Type a name or part of a name to show only matching files." +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:86 +#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) +#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 +#. i18n: ectx: property (text), widget (QPushButton, insertButton) +msgid "Insert" +msgstr "" + #. i18n: file: qtplugins/3dmol/3dmoldialog.ui:17 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ThreeDMolDialog) msgid "3DMol HTML Snippet" @@ -5752,28 +5784,6 @@ msgctxt "double-strand DNA" msgid "Double" msgstr "" -#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 -#. i18n: ectx: property (text), widget (QPushButton, insertButton) -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:86 -#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) -msgid "Insert" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::InsertFragmentDialog) -msgid "Insert Fragment…" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:22 -#. i18n: ectx: property (text), widget (QLabel, label) -msgid "Filter:" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:29 -#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) -msgid "Type a name or part of a name to show only matching files." -msgstr "" - #. i18n: file: qtplugins/lammpsinput/lammpsinputdialog.ui:20 #. i18n: ectx: property (windowTitle), widget (QDialog, LammpsInputDialog) msgid "LAMMPS Input" diff --git a/i18n/hi.po b/i18n/hi.po index 96460a37c6..68d3b20313 100644 --- a/i18n/hi.po +++ b/i18n/hi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-10-29 02:01+0000\n" +"POT-Creation-Date: 2023-11-19 14:57+0000\n" "PO-Revision-Date: 2023-10-31 11:02+0000\n" "Last-Translator: Atharva Kanherkar \n" "Language-Team: Hindi \n" "Language-Team: Croatian \n" "Language-Team: Hungarian \n" "Language-Team: Indonesian \n" "Language-Team: Italian \n" "Language-Team: Japanese \n" "Language-Team: Georgian \n" "Language-Team: Kannada \n" "Language-Team: Korean \n" "Language-Team: Malay \n" "Language-Team: Norwegian Bokmål \n" "Language-Team: Dutch \n" "Language-Team: Occitan (post 1500) \n" @@ -956,66 +956,61 @@ msgstr "" msgid "Select executable:" msgstr "" -#: qtgui/fileformatdialog.cpp:48 -msgid "" -"The file name contains invalid characters. Please choose another file name." -msgstr "" - -#: qtgui/fileformatdialog.cpp:60 +#: qtgui/fileformatdialog.cpp:52 msgid "Unable to find a suitable file reader for the selected file." msgstr "" -#: qtgui/fileformatdialog.cpp:108 +#: qtgui/fileformatdialog.cpp:100 msgid "" "The file extension is missing, so the format cannot be determined.Do you " "want to add it?" msgstr "" -#: qtgui/fileformatdialog.cpp:122 +#: qtgui/fileformatdialog.cpp:114 msgid "Unable to find a suitable file writer for the selected format." msgstr "" -#: qtgui/fileformatdialog.cpp:171 +#: qtgui/fileformatdialog.cpp:163 msgctxt "File handlers" msgid "handlers" msgstr "" -#: qtgui/fileformatdialog.cpp:172 +#: qtgui/fileformatdialog.cpp:164 msgctxt "e.g. file handlers that can 'handle' this file." msgid "handle" msgstr "" -#: qtgui/fileformatdialog.cpp:176 +#: qtgui/fileformatdialog.cpp:168 msgctxt "File readers" msgid "readers" msgstr "" -#: qtgui/fileformatdialog.cpp:177 +#: qtgui/fileformatdialog.cpp:169 msgctxt "e.g. file readers that can 'read' this file." msgid "read" msgstr "" -#: qtgui/fileformatdialog.cpp:181 +#: qtgui/fileformatdialog.cpp:173 msgctxt "File writers" msgid "writers" msgstr "" -#: qtgui/fileformatdialog.cpp:182 +#: qtgui/fileformatdialog.cpp:174 msgctxt "e.g. file writers that can 'write' this file." msgid "write" msgstr "" -#: qtgui/fileformatdialog.cpp:187 +#: qtgui/fileformatdialog.cpp:179 #, qt-format msgid "Multiple %1 found that can %2 this format. Which should be used?" msgstr "" -#: qtgui/fileformatdialog.cpp:287 +#: qtgui/fileformatdialog.cpp:279 #, fuzzy msgid "All files" msgstr "Totes los fichièrs" -#: qtgui/fileformatdialog.cpp:290 +#: qtgui/fileformatdialog.cpp:282 msgid "All supported formats" msgstr "" @@ -1300,7 +1295,7 @@ msgstr "" #. i18n: file: qtplugins/selectiontool/selectiontoolwidget.ui:39 #. i18n: ectx: property (text), widget (QLabel, label) #: qtgui/rwlayermanager.cpp:220 qtgui/rwlayermanager.cpp:223 -#: qtplugins/select/select.cpp:527 +#: qtplugins/select/select.cpp:548 #: qtplugins/selectiontool/selectiontool.cpp:254:1567 #, fuzzy msgid "Change Layer" @@ -1321,7 +1316,7 @@ msgstr "" #. i18n: file: qtplugins/editor/editortoolwidget.ui:43 #. i18n: ectx: property (text), widget (QCheckBox, adjustHydrogens) -#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:447 +#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:459 msgid "Adjust Hydrogens" msgstr "" @@ -1600,7 +1595,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsDialog) -#: qtplugins/apbs/apbs.h:31:84 +#: qtplugins/apbs/apbs.h:31:96 msgid "APBS" msgstr "" @@ -1663,7 +1658,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsoutputdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsOutputDialog) -#: qtplugins/apbs/apbsdialog.cpp:178:144 +#: qtplugins/apbs/apbsdialog.cpp:178:156 #, fuzzy msgid "Success" msgstr "Òsca !" @@ -1789,7 +1784,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:122 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:756:171 rc.cpp:1615 +#: qtplugins/surfaces/surfaces.cpp:756:183 rc.cpp:1615 #, fuzzy #| msgid "Neutral" msgctxt "colormap" @@ -1801,7 +1796,7 @@ msgstr "Mejan" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:169 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:124 -#: qtplugins/surfaces/surfaces.cpp:758:168 rc.cpp:1612 +#: qtplugins/surfaces/surfaces.cpp:758:180 rc.cpp:1612 msgctxt "colormap" msgid "Coolwarm" msgstr "" @@ -1811,7 +1806,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:159 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:126 -#: qtplugins/surfaces/surfaces.cpp:760:162 rc.cpp:1606 +#: qtplugins/surfaces/surfaces.cpp:760:174 rc.cpp:1606 #, fuzzy #| msgid "Cancel" msgctxt "colormap" @@ -1823,7 +1818,7 @@ msgstr "Anullar" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:164 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:128 -#: qtplugins/surfaces/surfaces.cpp:762:165 rc.cpp:1609 +#: qtplugins/surfaces/surfaces.cpp:762:177 rc.cpp:1609 msgctxt "colormap" msgid "Blue-DarkRed" msgstr "" @@ -1835,7 +1830,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:130 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:764:174 rc.cpp:1618 +#: qtplugins/surfaces/surfaces.cpp:764:186 rc.cpp:1618 msgctxt "colormap" msgid "Turbo" msgstr "" @@ -1873,7 +1868,7 @@ msgstr "Causir la color..." #. i18n: file: qtplugins/surfaces/surfacedialog.ui:143 #. i18n: ectx: property (text), widget (QLabel, label_7) #: qtplugins/applycolors/applycolors.cpp:213 -#: qtplugins/applycolors/applycolors.cpp:305:159 rc.cpp:1603 +#: qtplugins/applycolors/applycolors.cpp:305:171 rc.cpp:1603 #, fuzzy msgid "Colormap:" msgstr "Colors :" @@ -2106,7 +2101,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:265 #. i18n: ectx: property (suffix), widget (QDoubleSpinBox, resolutionDoubleSpinBox) #: qtplugins/closecontacts/closecontacts.cpp:215 -#: qtplugins/noncovalent/noncovalent.cpp:351:189 rc.cpp:192 rc.cpp:369 +#: qtplugins/noncovalent/noncovalent.cpp:351:201 rc.cpp:204 rc.cpp:381 msgid " Å" msgstr "" @@ -2374,7 +2369,7 @@ msgstr "Entrada Turbomole" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:108 #. i18n: ectx: property (text), widget (QToolButton, copy) -#: qtplugins/copypaste/copypaste.cpp:31:240 +#: qtplugins/copypaste/copypaste.cpp:31:252 #, fuzzy msgid "Copy" msgstr "Copiar tot" @@ -2392,13 +2387,13 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:101 #. i18n: ectx: property (text), widget (QToolButton, cut) -#: qtplugins/copypaste/copypaste.cpp:34:237 +#: qtplugins/copypaste/copypaste.cpp:34:249 msgid "Cut" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:142 #. i18n: ectx: property (text), widget (QPushButton, clear) -#: qtplugins/copypaste/copypaste.cpp:35:249 +#: qtplugins/copypaste/copypaste.cpp:35:261 #, fuzzy msgid "Clear" msgstr "Escafar tot" @@ -2748,6 +2743,14 @@ msgid "Editor tool" msgstr "" #: qtplugins/editor/editortoolwidget.cpp:129 +#: qtplugins/templatetool/templatetoolwidget.cpp:270 +#: qtplugins/templatetool/templatetoolwidget.cpp:283 +#: qtplugins/templatetool/templatetoolwidget.cpp:291 +#: qtplugins/templatetool/templatetoolwidget.cpp:299 +#: qtplugins/templatetool/templatetoolwidget.cpp:307 +#: qtplugins/templatetool/templatetoolwidget.cpp:315 +#: qtplugins/templatetool/templatetoolwidget.cpp:328 +#: qtplugins/templatetool/templatetoolwidget.cpp:390 #, fuzzy #| msgid "Other" msgid "Other…" @@ -2880,18 +2883,18 @@ msgstr "Suprimir un atòm" msgid "&Calculate" msgstr "Calcular" -#: qtplugins/forcefield/forcefield.cpp:288 qtplugins/openbabel/openbabel.cpp:45 +#: qtplugins/forcefield/forcefield.cpp:285 qtplugins/openbabel/openbabel.cpp:45 #: qtplugins/openbabel/openbabel.cpp:525 msgid "Optimize Geometry" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:329 +#: qtplugins/forcefield/forcefield.cpp:326 #, fuzzy, qt-format #| msgid "Energy = %L1 %2" msgid "%1 Energy = %L2" msgstr "Energia = %L1 %2" -#: qtplugins/forcefield/forcefield.cpp:330 +#: qtplugins/forcefield/forcefield.cpp:327 #: qtplugins/playertool/playertool.cpp:343 #: qtplugins/playertool/playertool.cpp:375 qtplugins/surfaces/surfaces.cpp:886 #: qtplugins/surfaces/surfaces.cpp:930 qtplugins/surfaces/surfaces.cpp:942 @@ -3108,7 +3111,7 @@ msgstr "T" #. i18n: file: qtplugins/insertdna/insertdnadialog.ui:79 #. i18n: ectx: property (toolTip), widget (QToolButton, toolButton_TU) -#: qtplugins/insertdna/insertdna.cpp:168:600 +#: qtplugins/insertdna/insertdna.cpp:168:612 msgid "Thymine" msgstr "" @@ -3154,7 +3157,7 @@ msgstr "" #. i18n: file: qtplugins/crystal/importcrystaldialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ImportCrystalDialog) -#: qtplugins/insertfragment/insertfragment.cpp:117:342 +#: qtplugins/insertfragment/insertfragment.cpp:117:354 msgid "Import Crystal" msgstr "" @@ -4406,7 +4409,7 @@ msgstr "" msgid "Select None" msgstr "" -#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:516 +#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:537 msgid "Invert Selection" msgstr "" @@ -4442,13 +4445,13 @@ msgstr "Numèro de l'atòm" msgid "Select Water…" msgstr "Numèro de l'atòm" -#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:352 +#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:368 #, fuzzy #| msgid "Ignore Selection" msgid "Enlarge Selection" msgstr "Ignorar la seleccion" -#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:387 +#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:404 #, fuzzy #| msgid "Selection" msgid "Shrink Selection" @@ -4472,44 +4475,44 @@ msgstr "&Seleccionar" msgid "Select Element" msgstr "Coloriar segon l'element" -#: qtplugins/select/select.cpp:216 +#: qtplugins/select/select.cpp:217 #, fuzzy msgid "Select Water" msgstr "Numèro de l'atòm" -#: qtplugins/select/select.cpp:254 +#: qtplugins/select/select.cpp:266 #, fuzzy msgid "Select Backbone" msgstr "Numèro de l'atòm" -#: qtplugins/select/select.cpp:288 +#: qtplugins/select/select.cpp:302 #, fuzzy msgid "Select Sidechain" msgstr "Numèro de l'atòm" -#: qtplugins/select/select.cpp:409 +#: qtplugins/select/select.cpp:428 msgid "Select Atoms by Index" msgstr "" -#: qtplugins/select/select.cpp:410 +#: qtplugins/select/select.cpp:429 msgid "Atoms to Select:" msgstr "" -#: qtplugins/select/select.cpp:415 +#: qtplugins/select/select.cpp:434 #, fuzzy #| msgid "Delete Atom" msgid "Select Atom" msgstr "Suprimir un atòm" -#: qtplugins/select/select.cpp:448 +#: qtplugins/select/select.cpp:469 msgid "Select Atoms by Residue" msgstr "" -#: qtplugins/select/select.cpp:449 +#: qtplugins/select/select.cpp:470 msgid "Residues to Select:" msgstr "" -#: qtplugins/select/select.cpp:454 +#: qtplugins/select/select.cpp:475 #, fuzzy #| msgid "Select by Residue..." msgid "Select Residue" @@ -4872,28 +4875,35 @@ msgstr "" msgid "Template" msgstr "Temperatura :" -#: qtplugins/templatetool/templatetool.cpp:294 +#: qtplugins/templatetool/templatetool.cpp:84 +msgid "" +"Template Tool\n" +"\n" +"Insert fragments, including metal centers.\n" +"Select an element and coordination geometry,then click to insert a " +"fragment.\n" +"\n" +"Select a ligand or functional group and clickon a hydrogen atom to attach it." +msgstr "" + +#: qtplugins/templatetool/templatetool.cpp:302 #, fuzzy #| msgid "Molecule" msgid "Insert Template" msgstr "Molecula" -#: qtplugins/templatetool/templatetool.cpp:544 +#: qtplugins/templatetool/templatetool.cpp:559 #, fuzzy #| msgid "Insert Fragment" msgid "Insert Ligand" msgstr "Inserir un fragment" -#: qtplugins/templatetool/templatetool.h:34 #: qtplugins/templatetool/templatetool.h:35 +#: qtplugins/templatetool/templatetool.h:36 #, fuzzy msgid "Template tool" msgstr "Mesurar" -#: qtplugins/templatetool/templatetoolwidget.cpp:288 -msgid "Other..." -msgstr "Autres..." - #: qtplugins/vanderwaals/vanderwaals.h:33 msgid "Simple display of VdW spheres." msgstr "" @@ -5110,6 +5120,30 @@ msgstr "" msgid "Rename Elements" msgstr "" +#. i18n: file: qtgui/insertfragmentdialog.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtGui::InsertFragmentDialog) +#, fuzzy +#| msgid "Insert Fragment" +msgid "Insert Fragment…" +msgstr "Inserir un fragment" + +#. i18n: file: qtgui/insertfragmentdialog.ui:22 +#. i18n: ectx: property (text), widget (QLabel, label) +msgid "Filter:" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:29 +#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) +msgid "Type a name or part of a name to show only matching files." +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:86 +#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) +#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 +#. i18n: ectx: property (text), widget (QPushButton, insertButton) +msgid "Insert" +msgstr "" + #. i18n: file: qtplugins/3dmol/3dmoldialog.ui:17 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ThreeDMolDialog) msgid "3DMol HTML Snippet" @@ -5977,30 +6011,6 @@ msgctxt "double-strand DNA" msgid "Double" msgstr "Doble" -#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 -#. i18n: ectx: property (text), widget (QPushButton, insertButton) -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:86 -#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) -msgid "Insert" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::InsertFragmentDialog) -#, fuzzy -#| msgid "Insert Fragment" -msgid "Insert Fragment…" -msgstr "Inserir un fragment" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:22 -#. i18n: ectx: property (text), widget (QLabel, label) -msgid "Filter:" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:29 -#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) -msgid "Type a name or part of a name to show only matching files." -msgstr "" - #. i18n: file: qtplugins/lammpsinput/lammpsinputdialog.ui:20 #. i18n: ectx: property (windowTitle), widget (QDialog, LammpsInputDialog) msgid "LAMMPS Input" @@ -7726,6 +7736,9 @@ msgstr "" "avogadro-devel@lists.sourceforge.net,cvalmary@yahoo.fr,,,avogadro-" "devel@lists.sourceforge.net,cvalmary@yahoo.fr" +#~ msgid "Other..." +#~ msgstr "Autres..." + #, fuzzy #~ msgid "Filename" #~ msgstr "Nom de fichièr :" diff --git a/i18n/pl.po b/i18n/pl.po index e238aa59e2..1a506852d9 100644 --- a/i18n/pl.po +++ b/i18n/pl.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-10-29 02:01+0000\n" +"POT-Creation-Date: 2023-11-19 14:57+0000\n" "PO-Revision-Date: 2023-06-20 10:49+0000\n" "Last-Translator: Jakub Brzeski \n" "Language-Team: Polish \n" "Language-Team: Portuguese \n" "Language-Team: Portuguese (Brazil) \n" "Language-Team: Romanian \n" "Language-Team: Russian \n" "Language-Team: Sanskrit \n" "Language-Team: Slovak \n" @@ -955,67 +955,62 @@ msgstr "" msgid "Select executable:" msgstr "" -#: qtgui/fileformatdialog.cpp:48 -msgid "" -"The file name contains invalid characters. Please choose another file name." -msgstr "" - -#: qtgui/fileformatdialog.cpp:60 +#: qtgui/fileformatdialog.cpp:52 msgid "Unable to find a suitable file reader for the selected file." msgstr "" -#: qtgui/fileformatdialog.cpp:108 +#: qtgui/fileformatdialog.cpp:100 msgid "" "The file extension is missing, so the format cannot be determined.Do you " "want to add it?" msgstr "" -#: qtgui/fileformatdialog.cpp:122 +#: qtgui/fileformatdialog.cpp:114 msgid "Unable to find a suitable file writer for the selected format." msgstr "" -#: qtgui/fileformatdialog.cpp:171 +#: qtgui/fileformatdialog.cpp:163 msgctxt "File handlers" msgid "handlers" msgstr "" -#: qtgui/fileformatdialog.cpp:172 +#: qtgui/fileformatdialog.cpp:164 msgctxt "e.g. file handlers that can 'handle' this file." msgid "handle" msgstr "" -#: qtgui/fileformatdialog.cpp:176 +#: qtgui/fileformatdialog.cpp:168 msgctxt "File readers" msgid "readers" msgstr "" -#: qtgui/fileformatdialog.cpp:177 +#: qtgui/fileformatdialog.cpp:169 msgctxt "e.g. file readers that can 'read' this file." msgid "read" msgstr "" -#: qtgui/fileformatdialog.cpp:181 +#: qtgui/fileformatdialog.cpp:173 msgctxt "File writers" msgid "writers" msgstr "" -#: qtgui/fileformatdialog.cpp:182 +#: qtgui/fileformatdialog.cpp:174 msgctxt "e.g. file writers that can 'write' this file." msgid "write" msgstr "" -#: qtgui/fileformatdialog.cpp:187 +#: qtgui/fileformatdialog.cpp:179 #, qt-format msgid "Multiple %1 found that can %2 this format. Which should be used?" msgstr "" -#: qtgui/fileformatdialog.cpp:287 +#: qtgui/fileformatdialog.cpp:279 #, fuzzy #| msgid "All Files" msgid "All files" msgstr "Všetky súbory" -#: qtgui/fileformatdialog.cpp:290 +#: qtgui/fileformatdialog.cpp:282 msgid "All supported formats" msgstr "" @@ -1299,7 +1294,7 @@ msgstr "" #. i18n: file: qtplugins/selectiontool/selectiontoolwidget.ui:39 #. i18n: ectx: property (text), widget (QLabel, label) #: qtgui/rwlayermanager.cpp:220 qtgui/rwlayermanager.cpp:223 -#: qtplugins/select/select.cpp:527 +#: qtplugins/select/select.cpp:548 #: qtplugins/selectiontool/selectiontool.cpp:254:1567 #, fuzzy msgid "Change Layer" @@ -1320,7 +1315,7 @@ msgstr "" #. i18n: file: qtplugins/editor/editortoolwidget.ui:43 #. i18n: ectx: property (text), widget (QCheckBox, adjustHydrogens) -#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:447 +#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:459 msgid "Adjust Hydrogens" msgstr "Upravte Vodíky" @@ -1595,7 +1590,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsDialog) -#: qtplugins/apbs/apbs.h:31:84 +#: qtplugins/apbs/apbs.h:31:96 msgid "APBS" msgstr "" @@ -1658,7 +1653,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsoutputdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsOutputDialog) -#: qtplugins/apbs/apbsdialog.cpp:178:144 +#: qtplugins/apbs/apbsdialog.cpp:178:156 #, fuzzy msgid "Success" msgstr "Úspešné!" @@ -1784,7 +1779,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:122 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:756:171 rc.cpp:1615 +#: qtplugins/surfaces/surfaces.cpp:756:183 rc.cpp:1615 #, fuzzy #| msgid "Neutral" msgctxt "colormap" @@ -1796,7 +1791,7 @@ msgstr "Neutrálny" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:169 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:124 -#: qtplugins/surfaces/surfaces.cpp:758:168 rc.cpp:1612 +#: qtplugins/surfaces/surfaces.cpp:758:180 rc.cpp:1612 msgctxt "colormap" msgid "Coolwarm" msgstr "" @@ -1806,7 +1801,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:159 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:126 -#: qtplugins/surfaces/surfaces.cpp:760:162 rc.cpp:1606 +#: qtplugins/surfaces/surfaces.cpp:760:174 rc.cpp:1606 #, fuzzy #| msgid "Cancel" msgctxt "colormap" @@ -1818,7 +1813,7 @@ msgstr "Zrušiť" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:164 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:128 -#: qtplugins/surfaces/surfaces.cpp:762:165 rc.cpp:1609 +#: qtplugins/surfaces/surfaces.cpp:762:177 rc.cpp:1609 msgctxt "colormap" msgid "Blue-DarkRed" msgstr "" @@ -1830,7 +1825,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:130 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:764:174 rc.cpp:1618 +#: qtplugins/surfaces/surfaces.cpp:764:186 rc.cpp:1618 msgctxt "colormap" msgid "Turbo" msgstr "" @@ -1868,7 +1863,7 @@ msgstr "Vybrané Farby" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:143 #. i18n: ectx: property (text), widget (QLabel, label_7) #: qtplugins/applycolors/applycolors.cpp:213 -#: qtplugins/applycolors/applycolors.cpp:305:159 rc.cpp:1603 +#: qtplugins/applycolors/applycolors.cpp:305:171 rc.cpp:1603 #, fuzzy msgid "Colormap:" msgstr "Farby:" @@ -2099,7 +2094,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:265 #. i18n: ectx: property (suffix), widget (QDoubleSpinBox, resolutionDoubleSpinBox) #: qtplugins/closecontacts/closecontacts.cpp:215 -#: qtplugins/noncovalent/noncovalent.cpp:351:189 rc.cpp:192 rc.cpp:369 +#: qtplugins/noncovalent/noncovalent.cpp:351:201 rc.cpp:204 rc.cpp:381 msgid " Å" msgstr "" @@ -2372,7 +2367,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:108 #. i18n: ectx: property (text), widget (QToolButton, copy) -#: qtplugins/copypaste/copypaste.cpp:31:240 +#: qtplugins/copypaste/copypaste.cpp:31:252 msgid "Copy" msgstr "" @@ -2389,13 +2384,13 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:101 #. i18n: ectx: property (text), widget (QToolButton, cut) -#: qtplugins/copypaste/copypaste.cpp:34:237 +#: qtplugins/copypaste/copypaste.cpp:34:249 msgid "Cut" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:142 #. i18n: ectx: property (text), widget (QPushButton, clear) -#: qtplugins/copypaste/copypaste.cpp:35:249 +#: qtplugins/copypaste/copypaste.cpp:35:261 msgid "Clear" msgstr "" @@ -2742,6 +2737,14 @@ msgid "Editor tool" msgstr "" #: qtplugins/editor/editortoolwidget.cpp:129 +#: qtplugins/templatetool/templatetoolwidget.cpp:270 +#: qtplugins/templatetool/templatetoolwidget.cpp:283 +#: qtplugins/templatetool/templatetoolwidget.cpp:291 +#: qtplugins/templatetool/templatetoolwidget.cpp:299 +#: qtplugins/templatetool/templatetoolwidget.cpp:307 +#: qtplugins/templatetool/templatetoolwidget.cpp:315 +#: qtplugins/templatetool/templatetoolwidget.cpp:328 +#: qtplugins/templatetool/templatetoolwidget.cpp:390 #, fuzzy #| msgid "Other..." msgid "Other…" @@ -2874,17 +2877,17 @@ msgstr "Fixovať vybrané atómy" msgid "&Calculate" msgstr "Vypočítať" -#: qtplugins/forcefield/forcefield.cpp:288 qtplugins/openbabel/openbabel.cpp:45 +#: qtplugins/forcefield/forcefield.cpp:285 qtplugins/openbabel/openbabel.cpp:45 #: qtplugins/openbabel/openbabel.cpp:525 msgid "Optimize Geometry" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:329 +#: qtplugins/forcefield/forcefield.cpp:326 #, qt-format msgid "%1 Energy = %L2" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:330 +#: qtplugins/forcefield/forcefield.cpp:327 #: qtplugins/playertool/playertool.cpp:343 #: qtplugins/playertool/playertool.cpp:375 qtplugins/surfaces/surfaces.cpp:886 #: qtplugins/surfaces/surfaces.cpp:930 qtplugins/surfaces/surfaces.cpp:942 @@ -3102,7 +3105,7 @@ msgstr "T" #. i18n: file: qtplugins/insertdna/insertdnadialog.ui:79 #. i18n: ectx: property (toolTip), widget (QToolButton, toolButton_TU) -#: qtplugins/insertdna/insertdna.cpp:168:600 +#: qtplugins/insertdna/insertdna.cpp:168:612 msgid "Thymine" msgstr "" @@ -3148,7 +3151,7 @@ msgstr "" #. i18n: file: qtplugins/crystal/importcrystaldialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ImportCrystalDialog) -#: qtplugins/insertfragment/insertfragment.cpp:117:342 +#: qtplugins/insertfragment/insertfragment.cpp:117:354 msgid "Import Crystal" msgstr "" @@ -4404,7 +4407,7 @@ msgstr "" msgid "Select None" msgstr "" -#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:516 +#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:537 msgid "Invert Selection" msgstr "" @@ -4440,13 +4443,13 @@ msgstr "Atómové číslo" msgid "Select Water…" msgstr "Atómové číslo" -#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:352 +#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:368 #, fuzzy #| msgid "Ignore Selection" msgid "Enlarge Selection" msgstr "Ignorovať výber" -#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:387 +#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:404 #, fuzzy #| msgid "Selection" msgid "Shrink Selection" @@ -4470,44 +4473,44 @@ msgstr "&Výber" msgid "Select Element" msgstr "Vybrať podľa Zvyšku..." -#: qtplugins/select/select.cpp:216 +#: qtplugins/select/select.cpp:217 #, fuzzy msgid "Select Water" msgstr "Atómové číslo" -#: qtplugins/select/select.cpp:254 +#: qtplugins/select/select.cpp:266 #, fuzzy msgid "Select Backbone" msgstr "Atómové číslo" -#: qtplugins/select/select.cpp:288 +#: qtplugins/select/select.cpp:302 #, fuzzy msgid "Select Sidechain" msgstr "Atómové číslo" -#: qtplugins/select/select.cpp:409 +#: qtplugins/select/select.cpp:428 msgid "Select Atoms by Index" msgstr "" -#: qtplugins/select/select.cpp:410 +#: qtplugins/select/select.cpp:429 msgid "Atoms to Select:" msgstr "" -#: qtplugins/select/select.cpp:415 +#: qtplugins/select/select.cpp:434 #, fuzzy #| msgid "Delete Atom" msgid "Select Atom" msgstr "Odstrániť Atóm" -#: qtplugins/select/select.cpp:448 +#: qtplugins/select/select.cpp:469 msgid "Select Atoms by Residue" msgstr "" -#: qtplugins/select/select.cpp:449 +#: qtplugins/select/select.cpp:470 msgid "Residues to Select:" msgstr "" -#: qtplugins/select/select.cpp:454 +#: qtplugins/select/select.cpp:475 #, fuzzy #| msgid "Select by Residue..." msgid "Select Residue" @@ -4870,30 +4873,35 @@ msgstr "" msgid "Template" msgstr "" -#: qtplugins/templatetool/templatetool.cpp:294 +#: qtplugins/templatetool/templatetool.cpp:84 +msgid "" +"Template Tool\n" +"\n" +"Insert fragments, including metal centers.\n" +"Select an element and coordination geometry,then click to insert a " +"fragment.\n" +"\n" +"Select a ligand or functional group and clickon a hydrogen atom to attach it." +msgstr "" + +#: qtplugins/templatetool/templatetool.cpp:302 #, fuzzy #| msgid "Insert Peptide" msgid "Insert Template" msgstr "Vložiť peptid" -#: qtplugins/templatetool/templatetool.cpp:544 +#: qtplugins/templatetool/templatetool.cpp:559 #, fuzzy #| msgid "Insert Peptide" msgid "Insert Ligand" msgstr "Vložiť peptid" -#: qtplugins/templatetool/templatetool.h:34 #: qtplugins/templatetool/templatetool.h:35 +#: qtplugins/templatetool/templatetool.h:36 #, fuzzy msgid "Template tool" msgstr "Rozsah" -#: qtplugins/templatetool/templatetoolwidget.cpp:288 -#, fuzzy -#| msgid "Other..." -msgid "Other..." -msgstr "Ďaľšie..." - #: qtplugins/vanderwaals/vanderwaals.h:33 msgid "Simple display of VdW spheres." msgstr "" @@ -5110,6 +5118,30 @@ msgstr "" msgid "Rename Elements" msgstr "" +#. i18n: file: qtgui/insertfragmentdialog.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtGui::InsertFragmentDialog) +#, fuzzy +#| msgid "Insert Fragment" +msgid "Insert Fragment…" +msgstr "Vložiť fragment" + +#. i18n: file: qtgui/insertfragmentdialog.ui:22 +#. i18n: ectx: property (text), widget (QLabel, label) +msgid "Filter:" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:29 +#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) +msgid "Type a name or part of a name to show only matching files." +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:86 +#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) +#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 +#. i18n: ectx: property (text), widget (QPushButton, insertButton) +msgid "Insert" +msgstr "" + #. i18n: file: qtplugins/3dmol/3dmoldialog.ui:17 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ThreeDMolDialog) msgid "3DMol HTML Snippet" @@ -5971,30 +6003,6 @@ msgctxt "double-strand DNA" msgid "Double" msgstr "Dvojitý" -#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 -#. i18n: ectx: property (text), widget (QPushButton, insertButton) -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:86 -#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) -msgid "Insert" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::InsertFragmentDialog) -#, fuzzy -#| msgid "Insert Fragment" -msgid "Insert Fragment…" -msgstr "Vložiť fragment" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:22 -#. i18n: ectx: property (text), widget (QLabel, label) -msgid "Filter:" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:29 -#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) -msgid "Type a name or part of a name to show only matching files." -msgstr "" - #. i18n: file: qtplugins/lammpsinput/lammpsinputdialog.ui:20 #. i18n: ectx: property (windowTitle), widget (QDialog, LammpsInputDialog) msgid "LAMMPS Input" @@ -7707,6 +7715,11 @@ msgstr "" "com,,,,avogadro-devel@lists.sourceforge.net,,,rayiner@protonmail.com,,,," "avogadro-devel@lists.sourceforge.net,,,rayiner@protonmail.com," +#, fuzzy +#~| msgid "Other..." +#~ msgid "Other..." +#~ msgstr "Ďaľšie..." + #, fuzzy #~ msgid "Filename" #~ msgstr "Nesprávny názov súboru" diff --git a/i18n/sl.po b/i18n/sl.po index 81a51bc73e..187058748d 100644 --- a/i18n/sl.po +++ b/i18n/sl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-10-29 02:01+0000\n" +"POT-Creation-Date: 2023-11-19 14:57+0000\n" "PO-Revision-Date: 2016-06-10 06:51+0000\n" "Last-Translator: Matej Urbančič \n" "Language-Team: Slovenian \n" @@ -960,67 +960,62 @@ msgstr "" msgid "Select executable:" msgstr "" -#: qtgui/fileformatdialog.cpp:48 -msgid "" -"The file name contains invalid characters. Please choose another file name." -msgstr "" - -#: qtgui/fileformatdialog.cpp:60 +#: qtgui/fileformatdialog.cpp:52 msgid "Unable to find a suitable file reader for the selected file." msgstr "" -#: qtgui/fileformatdialog.cpp:108 +#: qtgui/fileformatdialog.cpp:100 msgid "" "The file extension is missing, so the format cannot be determined.Do you " "want to add it?" msgstr "" -#: qtgui/fileformatdialog.cpp:122 +#: qtgui/fileformatdialog.cpp:114 msgid "Unable to find a suitable file writer for the selected format." msgstr "" -#: qtgui/fileformatdialog.cpp:171 +#: qtgui/fileformatdialog.cpp:163 msgctxt "File handlers" msgid "handlers" msgstr "" -#: qtgui/fileformatdialog.cpp:172 +#: qtgui/fileformatdialog.cpp:164 msgctxt "e.g. file handlers that can 'handle' this file." msgid "handle" msgstr "" -#: qtgui/fileformatdialog.cpp:176 +#: qtgui/fileformatdialog.cpp:168 msgctxt "File readers" msgid "readers" msgstr "" -#: qtgui/fileformatdialog.cpp:177 +#: qtgui/fileformatdialog.cpp:169 msgctxt "e.g. file readers that can 'read' this file." msgid "read" msgstr "" -#: qtgui/fileformatdialog.cpp:181 +#: qtgui/fileformatdialog.cpp:173 msgctxt "File writers" msgid "writers" msgstr "" -#: qtgui/fileformatdialog.cpp:182 +#: qtgui/fileformatdialog.cpp:174 msgctxt "e.g. file writers that can 'write' this file." msgid "write" msgstr "" -#: qtgui/fileformatdialog.cpp:187 +#: qtgui/fileformatdialog.cpp:179 #, qt-format msgid "Multiple %1 found that can %2 this format. Which should be used?" msgstr "" -#: qtgui/fileformatdialog.cpp:287 +#: qtgui/fileformatdialog.cpp:279 #, fuzzy #| msgid "All Files" msgid "All files" msgstr "Vse Datoteke" -#: qtgui/fileformatdialog.cpp:290 +#: qtgui/fileformatdialog.cpp:282 msgid "All supported formats" msgstr "" @@ -1307,7 +1302,7 @@ msgstr "" #. i18n: file: qtplugins/selectiontool/selectiontoolwidget.ui:39 #. i18n: ectx: property (text), widget (QLabel, label) #: qtgui/rwlayermanager.cpp:220 qtgui/rwlayermanager.cpp:223 -#: qtplugins/select/select.cpp:527 +#: qtplugins/select/select.cpp:548 #: qtplugins/selectiontool/selectiontool.cpp:254:1567 #, fuzzy msgid "Change Layer" @@ -1328,7 +1323,7 @@ msgstr "" #. i18n: file: qtplugins/editor/editortoolwidget.ui:43 #. i18n: ectx: property (text), widget (QCheckBox, adjustHydrogens) -#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:447 +#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:459 msgid "Adjust Hydrogens" msgstr "Samodejno dodaj vodike" @@ -1623,7 +1618,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsDialog) -#: qtplugins/apbs/apbs.h:31:84 +#: qtplugins/apbs/apbs.h:31:96 msgid "APBS" msgstr "" @@ -1686,7 +1681,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsoutputdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsOutputDialog) -#: qtplugins/apbs/apbsdialog.cpp:178:144 +#: qtplugins/apbs/apbsdialog.cpp:178:156 #, fuzzy msgid "Success" msgstr "Uspešno končano!" @@ -1814,7 +1809,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:122 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:756:171 rc.cpp:1615 +#: qtplugins/surfaces/surfaces.cpp:756:183 rc.cpp:1615 #, fuzzy #| msgid "Spectra" msgctxt "colormap" @@ -1826,7 +1821,7 @@ msgstr "Spektri" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:169 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:124 -#: qtplugins/surfaces/surfaces.cpp:758:168 rc.cpp:1612 +#: qtplugins/surfaces/surfaces.cpp:758:180 rc.cpp:1612 msgctxt "colormap" msgid "Coolwarm" msgstr "" @@ -1836,7 +1831,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:159 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:126 -#: qtplugins/surfaces/surfaces.cpp:760:162 rc.cpp:1606 +#: qtplugins/surfaces/surfaces.cpp:760:174 rc.cpp:1606 #, fuzzy #| msgid "Cancel" msgctxt "colormap" @@ -1848,7 +1843,7 @@ msgstr "Prekliči" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:164 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:128 -#: qtplugins/surfaces/surfaces.cpp:762:165 rc.cpp:1609 +#: qtplugins/surfaces/surfaces.cpp:762:177 rc.cpp:1609 msgctxt "colormap" msgid "Blue-DarkRed" msgstr "" @@ -1860,7 +1855,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:130 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:764:174 rc.cpp:1618 +#: qtplugins/surfaces/surfaces.cpp:764:186 rc.cpp:1618 msgctxt "colormap" msgid "Turbo" msgstr "" @@ -1898,7 +1893,7 @@ msgstr "Izbrane barve" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:143 #. i18n: ectx: property (text), widget (QLabel, label_7) #: qtplugins/applycolors/applycolors.cpp:213 -#: qtplugins/applycolors/applycolors.cpp:305:159 rc.cpp:1603 +#: qtplugins/applycolors/applycolors.cpp:305:171 rc.cpp:1603 #, fuzzy #| msgid "Color:" msgid "Colormap:" @@ -2155,7 +2150,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:265 #. i18n: ectx: property (suffix), widget (QDoubleSpinBox, resolutionDoubleSpinBox) #: qtplugins/closecontacts/closecontacts.cpp:215 -#: qtplugins/noncovalent/noncovalent.cpp:351:189 rc.cpp:192 rc.cpp:369 +#: qtplugins/noncovalent/noncovalent.cpp:351:201 rc.cpp:204 rc.cpp:381 msgid " Å" msgstr " Å" @@ -2430,7 +2425,7 @@ msgstr "Skript Turbomole" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:108 #. i18n: ectx: property (text), widget (QToolButton, copy) -#: qtplugins/copypaste/copypaste.cpp:31:240 +#: qtplugins/copypaste/copypaste.cpp:31:252 #, fuzzy msgid "Copy" msgstr "Kopiraj vse" @@ -2448,13 +2443,13 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:101 #. i18n: ectx: property (text), widget (QToolButton, cut) -#: qtplugins/copypaste/copypaste.cpp:34:237 +#: qtplugins/copypaste/copypaste.cpp:34:249 msgid "Cut" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:142 #. i18n: ectx: property (text), widget (QPushButton, clear) -#: qtplugins/copypaste/copypaste.cpp:35:249 +#: qtplugins/copypaste/copypaste.cpp:35:261 #, fuzzy msgid "Clear" msgstr "Počisti vse" @@ -2831,6 +2826,14 @@ msgid "Editor tool" msgstr "" #: qtplugins/editor/editortoolwidget.cpp:129 +#: qtplugins/templatetool/templatetoolwidget.cpp:270 +#: qtplugins/templatetool/templatetoolwidget.cpp:283 +#: qtplugins/templatetool/templatetoolwidget.cpp:291 +#: qtplugins/templatetool/templatetoolwidget.cpp:299 +#: qtplugins/templatetool/templatetoolwidget.cpp:307 +#: qtplugins/templatetool/templatetoolwidget.cpp:315 +#: qtplugins/templatetool/templatetoolwidget.cpp:328 +#: qtplugins/templatetool/templatetoolwidget.cpp:390 #, fuzzy #| msgid "Other" msgid "Other…" @@ -2966,19 +2969,19 @@ msgstr "Popravi izbrane atome" msgid "&Calculate" msgstr "Izračunaj" -#: qtplugins/forcefield/forcefield.cpp:288 qtplugins/openbabel/openbabel.cpp:45 +#: qtplugins/forcefield/forcefield.cpp:285 qtplugins/openbabel/openbabel.cpp:45 #: qtplugins/openbabel/openbabel.cpp:525 #, fuzzy msgid "Optimize Geometry" msgstr "&Prilagodi geometrijo" -#: qtplugins/forcefield/forcefield.cpp:329 +#: qtplugins/forcefield/forcefield.cpp:326 #, fuzzy, qt-format #| msgid "Energy = %L1 %2" msgid "%1 Energy = %L2" msgstr "Energija = %L1 %2" -#: qtplugins/forcefield/forcefield.cpp:330 +#: qtplugins/forcefield/forcefield.cpp:327 #: qtplugins/playertool/playertool.cpp:343 #: qtplugins/playertool/playertool.cpp:375 qtplugins/surfaces/surfaces.cpp:886 #: qtplugins/surfaces/surfaces.cpp:930 qtplugins/surfaces/surfaces.cpp:942 @@ -3196,7 +3199,7 @@ msgstr "T" #. i18n: file: qtplugins/insertdna/insertdnadialog.ui:79 #. i18n: ectx: property (toolTip), widget (QToolButton, toolButton_TU) -#: qtplugins/insertdna/insertdna.cpp:168:600 +#: qtplugins/insertdna/insertdna.cpp:168:612 msgid "Thymine" msgstr "Timin" @@ -3243,7 +3246,7 @@ msgstr "" #. i18n: file: qtplugins/crystal/importcrystaldialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ImportCrystalDialog) -#: qtplugins/insertfragment/insertfragment.cpp:117:342 +#: qtplugins/insertfragment/insertfragment.cpp:117:354 msgid "Import Crystal" msgstr "Uvozi kristal" @@ -4555,7 +4558,7 @@ msgstr "" msgid "Select None" msgstr "" -#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:516 +#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:537 msgid "Invert Selection" msgstr "" @@ -4591,13 +4594,13 @@ msgstr "Atomski indeksi" msgid "Select Water…" msgstr "Atomski indeksi" -#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:352 +#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:368 #, fuzzy #| msgid "Ignore Selection" msgid "Enlarge Selection" msgstr "Prezri izbor" -#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:387 +#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:404 #, fuzzy #| msgid "Selection" msgid "Shrink Selection" @@ -4621,44 +4624,44 @@ msgstr "&Izberi" msgid "Select Element" msgstr "Izbor po elementu ..." -#: qtplugins/select/select.cpp:216 +#: qtplugins/select/select.cpp:217 #, fuzzy msgid "Select Water" msgstr "Atomski indeksi" -#: qtplugins/select/select.cpp:254 +#: qtplugins/select/select.cpp:266 #, fuzzy msgid "Select Backbone" msgstr "Atomski indeksi" -#: qtplugins/select/select.cpp:288 +#: qtplugins/select/select.cpp:302 #, fuzzy msgid "Select Sidechain" msgstr "Atomski indeksi" -#: qtplugins/select/select.cpp:409 +#: qtplugins/select/select.cpp:428 msgid "Select Atoms by Index" msgstr "" -#: qtplugins/select/select.cpp:410 +#: qtplugins/select/select.cpp:429 msgid "Atoms to Select:" msgstr "" -#: qtplugins/select/select.cpp:415 +#: qtplugins/select/select.cpp:434 #, fuzzy #| msgid "Delete Atom" msgid "Select Atom" msgstr "Izbriši atom" -#: qtplugins/select/select.cpp:448 +#: qtplugins/select/select.cpp:469 msgid "Select Atoms by Residue" msgstr "" -#: qtplugins/select/select.cpp:449 +#: qtplugins/select/select.cpp:470 msgid "Residues to Select:" msgstr "" -#: qtplugins/select/select.cpp:454 +#: qtplugins/select/select.cpp:475 #, fuzzy #| msgid "Select by Residue..." msgid "Select Residue" @@ -5064,28 +5067,35 @@ msgstr "" msgid "Template" msgstr "Temperatura" -#: qtplugins/templatetool/templatetool.cpp:294 +#: qtplugins/templatetool/templatetool.cpp:84 +msgid "" +"Template Tool\n" +"\n" +"Insert fragments, including metal centers.\n" +"Select an element and coordination geometry,then click to insert a " +"fragment.\n" +"\n" +"Select a ligand or functional group and clickon a hydrogen atom to attach it." +msgstr "" + +#: qtplugins/templatetool/templatetool.cpp:302 #, fuzzy #| msgid "Insert Peptide" msgid "Insert Template" msgstr "Vstavi peptid" -#: qtplugins/templatetool/templatetool.cpp:544 +#: qtplugins/templatetool/templatetool.cpp:559 #, fuzzy #| msgid "Insert Peptide" msgid "Insert Ligand" msgstr "Vstavi peptid" -#: qtplugins/templatetool/templatetool.h:34 #: qtplugins/templatetool/templatetool.h:35 +#: qtplugins/templatetool/templatetool.h:36 #, fuzzy msgid "Template tool" msgstr "Izmeri" -#: qtplugins/templatetool/templatetoolwidget.cpp:288 -msgid "Other..." -msgstr "Drugo ..." - #: qtplugins/vanderwaals/vanderwaals.h:33 msgid "Simple display of VdW spheres." msgstr "" @@ -5307,6 +5317,30 @@ msgstr "" msgid "Rename Elements" msgstr "" +#. i18n: file: qtgui/insertfragmentdialog.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtGui::InsertFragmentDialog) +#, fuzzy +#| msgid "Insert Fragment" +msgid "Insert Fragment…" +msgstr "Vstavi molekulski delec" + +#. i18n: file: qtgui/insertfragmentdialog.ui:22 +#. i18n: ectx: property (text), widget (QLabel, label) +msgid "Filter:" +msgstr "Filter:" + +#. i18n: file: qtgui/insertfragmentdialog.ui:29 +#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) +msgid "Type a name or part of a name to show only matching files." +msgstr "Z vpisom imena ali dela imena se pokažejo filtrirani zadetki." + +#. i18n: file: qtgui/insertfragmentdialog.ui:86 +#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) +#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 +#. i18n: ectx: property (text), widget (QPushButton, insertButton) +msgid "Insert" +msgstr "Vstavi" + #. i18n: file: qtplugins/3dmol/3dmoldialog.ui:17 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ThreeDMolDialog) msgid "3DMol HTML Snippet" @@ -6167,30 +6201,6 @@ msgctxt "double-strand DNA" msgid "Double" msgstr "Dvojna" -#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 -#. i18n: ectx: property (text), widget (QPushButton, insertButton) -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:86 -#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) -msgid "Insert" -msgstr "Vstavi" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::InsertFragmentDialog) -#, fuzzy -#| msgid "Insert Fragment" -msgid "Insert Fragment…" -msgstr "Vstavi molekulski delec" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:22 -#. i18n: ectx: property (text), widget (QLabel, label) -msgid "Filter:" -msgstr "Filter:" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:29 -#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) -msgid "Type a name or part of a name to show only matching files." -msgstr "Z vpisom imena ali dela imena se pokažejo filtrirani zadetki." - #. i18n: file: qtplugins/lammpsinput/lammpsinputdialog.ui:20 #. i18n: ectx: property (windowTitle), widget (QDialog, LammpsInputDialog) msgid "LAMMPS Input" @@ -7908,6 +7918,9 @@ msgstr "" ",,,mateju@svn.gnome.org,,,,mateju@svn.gnome.org,,,,mateju@svn.gnome.org,,,," "mateju@svn.gnome.org" +#~ msgid "Other..." +#~ msgstr "Drugo ..." + #, fuzzy #~ msgid "Filename" #~ msgstr "Ime datoteke:" diff --git a/i18n/sq.po b/i18n/sq.po index 2b9fd4365d..569ff7cb1b 100644 --- a/i18n/sq.po +++ b/i18n/sq.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-10-29 02:01+0000\n" +"POT-Creation-Date: 2023-11-19 14:57+0000\n" "PO-Revision-Date: 2021-06-16 17:34+0000\n" "Last-Translator: Dillon Schultz \n" "Language-Team: Albanian \n" "Language-Team: Serbian \n" "Language-Team: Swedish \n" @@ -955,65 +955,60 @@ msgstr "" msgid "Select executable:" msgstr "" -#: qtgui/fileformatdialog.cpp:48 -msgid "" -"The file name contains invalid characters. Please choose another file name." -msgstr "" - -#: qtgui/fileformatdialog.cpp:60 +#: qtgui/fileformatdialog.cpp:52 msgid "Unable to find a suitable file reader for the selected file." msgstr "" -#: qtgui/fileformatdialog.cpp:108 +#: qtgui/fileformatdialog.cpp:100 msgid "" "The file extension is missing, so the format cannot be determined.Do you " "want to add it?" msgstr "" -#: qtgui/fileformatdialog.cpp:122 +#: qtgui/fileformatdialog.cpp:114 msgid "Unable to find a suitable file writer for the selected format." msgstr "" -#: qtgui/fileformatdialog.cpp:171 +#: qtgui/fileformatdialog.cpp:163 msgctxt "File handlers" msgid "handlers" msgstr "" -#: qtgui/fileformatdialog.cpp:172 +#: qtgui/fileformatdialog.cpp:164 msgctxt "e.g. file handlers that can 'handle' this file." msgid "handle" msgstr "" -#: qtgui/fileformatdialog.cpp:176 +#: qtgui/fileformatdialog.cpp:168 msgctxt "File readers" msgid "readers" msgstr "" -#: qtgui/fileformatdialog.cpp:177 +#: qtgui/fileformatdialog.cpp:169 msgctxt "e.g. file readers that can 'read' this file." msgid "read" msgstr "" -#: qtgui/fileformatdialog.cpp:181 +#: qtgui/fileformatdialog.cpp:173 msgctxt "File writers" msgid "writers" msgstr "" -#: qtgui/fileformatdialog.cpp:182 +#: qtgui/fileformatdialog.cpp:174 msgctxt "e.g. file writers that can 'write' this file." msgid "write" msgstr "" -#: qtgui/fileformatdialog.cpp:187 +#: qtgui/fileformatdialog.cpp:179 #, qt-format msgid "Multiple %1 found that can %2 this format. Which should be used?" msgstr "" -#: qtgui/fileformatdialog.cpp:287 +#: qtgui/fileformatdialog.cpp:279 msgid "All files" msgstr "" -#: qtgui/fileformatdialog.cpp:290 +#: qtgui/fileformatdialog.cpp:282 msgid "All supported formats" msgstr "" @@ -1294,7 +1289,7 @@ msgstr "" #. i18n: file: qtplugins/selectiontool/selectiontoolwidget.ui:39 #. i18n: ectx: property (text), widget (QLabel, label) #: qtgui/rwlayermanager.cpp:220 qtgui/rwlayermanager.cpp:223 -#: qtplugins/select/select.cpp:527 +#: qtplugins/select/select.cpp:548 #: qtplugins/selectiontool/selectiontool.cpp:254:1567 msgid "Change Layer" msgstr "" @@ -1314,7 +1309,7 @@ msgstr "" #. i18n: file: qtplugins/editor/editortoolwidget.ui:43 #. i18n: ectx: property (text), widget (QCheckBox, adjustHydrogens) -#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:447 +#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:459 msgid "Adjust Hydrogens" msgstr "" @@ -1582,7 +1577,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsDialog) -#: qtplugins/apbs/apbs.h:31:84 +#: qtplugins/apbs/apbs.h:31:96 msgid "APBS" msgstr "" @@ -1645,7 +1640,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsoutputdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsOutputDialog) -#: qtplugins/apbs/apbsdialog.cpp:178:144 +#: qtplugins/apbs/apbsdialog.cpp:178:156 msgid "Success" msgstr "" @@ -1769,7 +1764,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:122 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:756:171 rc.cpp:1615 +#: qtplugins/surfaces/surfaces.cpp:756:183 rc.cpp:1615 msgctxt "colormap" msgid "Spectral" msgstr "" @@ -1779,7 +1774,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:169 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:124 -#: qtplugins/surfaces/surfaces.cpp:758:168 rc.cpp:1612 +#: qtplugins/surfaces/surfaces.cpp:758:180 rc.cpp:1612 msgctxt "colormap" msgid "Coolwarm" msgstr "" @@ -1789,7 +1784,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:159 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:126 -#: qtplugins/surfaces/surfaces.cpp:760:162 rc.cpp:1606 +#: qtplugins/surfaces/surfaces.cpp:760:174 rc.cpp:1606 msgctxt "colormap" msgid "Balance" msgstr "" @@ -1799,7 +1794,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:164 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:128 -#: qtplugins/surfaces/surfaces.cpp:762:165 rc.cpp:1609 +#: qtplugins/surfaces/surfaces.cpp:762:177 rc.cpp:1609 msgctxt "colormap" msgid "Blue-DarkRed" msgstr "" @@ -1811,7 +1806,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:130 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:764:174 rc.cpp:1618 +#: qtplugins/surfaces/surfaces.cpp:764:186 rc.cpp:1618 msgctxt "colormap" msgid "Turbo" msgstr "" @@ -1846,7 +1841,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:143 #. i18n: ectx: property (text), widget (QLabel, label_7) #: qtplugins/applycolors/applycolors.cpp:213 -#: qtplugins/applycolors/applycolors.cpp:305:159 rc.cpp:1603 +#: qtplugins/applycolors/applycolors.cpp:305:171 rc.cpp:1603 #, fuzzy msgid "Colormap:" msgstr "Rita atom" @@ -2067,7 +2062,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:265 #. i18n: ectx: property (suffix), widget (QDoubleSpinBox, resolutionDoubleSpinBox) #: qtplugins/closecontacts/closecontacts.cpp:215 -#: qtplugins/noncovalent/noncovalent.cpp:351:189 rc.cpp:192 rc.cpp:369 +#: qtplugins/noncovalent/noncovalent.cpp:351:201 rc.cpp:204 rc.cpp:381 msgid " Å" msgstr "" @@ -2325,7 +2320,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:108 #. i18n: ectx: property (text), widget (QToolButton, copy) -#: qtplugins/copypaste/copypaste.cpp:31:240 +#: qtplugins/copypaste/copypaste.cpp:31:252 msgid "Copy" msgstr "" @@ -2342,13 +2337,13 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:101 #. i18n: ectx: property (text), widget (QToolButton, cut) -#: qtplugins/copypaste/copypaste.cpp:34:237 +#: qtplugins/copypaste/copypaste.cpp:34:249 msgid "Cut" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:142 #. i18n: ectx: property (text), widget (QPushButton, clear) -#: qtplugins/copypaste/copypaste.cpp:35:249 +#: qtplugins/copypaste/copypaste.cpp:35:261 msgid "Clear" msgstr "" @@ -2695,6 +2690,14 @@ msgid "Editor tool" msgstr "" #: qtplugins/editor/editortoolwidget.cpp:129 +#: qtplugins/templatetool/templatetoolwidget.cpp:270 +#: qtplugins/templatetool/templatetoolwidget.cpp:283 +#: qtplugins/templatetool/templatetoolwidget.cpp:291 +#: qtplugins/templatetool/templatetoolwidget.cpp:299 +#: qtplugins/templatetool/templatetoolwidget.cpp:307 +#: qtplugins/templatetool/templatetoolwidget.cpp:315 +#: qtplugins/templatetool/templatetoolwidget.cpp:328 +#: qtplugins/templatetool/templatetoolwidget.cpp:390 msgid "Other…" msgstr "" @@ -2818,18 +2821,18 @@ msgstr "Animering..." msgid "&Calculate" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:288 qtplugins/openbabel/openbabel.cpp:45 +#: qtplugins/forcefield/forcefield.cpp:285 qtplugins/openbabel/openbabel.cpp:45 #: qtplugins/openbabel/openbabel.cpp:525 #, fuzzy msgid "Optimize Geometry" msgstr "&Optimera geometri" -#: qtplugins/forcefield/forcefield.cpp:329 +#: qtplugins/forcefield/forcefield.cpp:326 #, qt-format msgid "%1 Energy = %L2" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:330 +#: qtplugins/forcefield/forcefield.cpp:327 #: qtplugins/playertool/playertool.cpp:343 #: qtplugins/playertool/playertool.cpp:375 qtplugins/surfaces/surfaces.cpp:886 #: qtplugins/surfaces/surfaces.cpp:930 qtplugins/surfaces/surfaces.cpp:942 @@ -3039,7 +3042,7 @@ msgstr "" #. i18n: file: qtplugins/insertdna/insertdnadialog.ui:79 #. i18n: ectx: property (toolTip), widget (QToolButton, toolButton_TU) -#: qtplugins/insertdna/insertdna.cpp:168:600 +#: qtplugins/insertdna/insertdna.cpp:168:612 msgid "Thymine" msgstr "" @@ -3082,7 +3085,7 @@ msgstr "" #. i18n: file: qtplugins/crystal/importcrystaldialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ImportCrystalDialog) -#: qtplugins/insertfragment/insertfragment.cpp:117:342 +#: qtplugins/insertfragment/insertfragment.cpp:117:354 msgid "Import Crystal" msgstr "" @@ -4313,7 +4316,7 @@ msgstr "" msgid "Select None" msgstr "" -#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:516 +#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:537 msgid "Invert Selection" msgstr "" @@ -4345,11 +4348,11 @@ msgstr "Gundämne:" msgid "Select Water…" msgstr "Gundämne:" -#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:352 +#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:368 msgid "Enlarge Selection" msgstr "" -#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:387 +#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:404 msgid "Shrink Selection" msgstr "" @@ -4370,43 +4373,43 @@ msgstr "" msgid "Select Element" msgstr "Gundämne:" -#: qtplugins/select/select.cpp:216 +#: qtplugins/select/select.cpp:217 #, fuzzy msgid "Select Water" msgstr "Gundämne:" -#: qtplugins/select/select.cpp:254 +#: qtplugins/select/select.cpp:266 #, fuzzy msgid "Select Backbone" msgstr "Gundämne:" -#: qtplugins/select/select.cpp:288 +#: qtplugins/select/select.cpp:302 #, fuzzy msgid "Select Sidechain" msgstr "Gundämne:" -#: qtplugins/select/select.cpp:409 +#: qtplugins/select/select.cpp:428 msgid "Select Atoms by Index" msgstr "" -#: qtplugins/select/select.cpp:410 +#: qtplugins/select/select.cpp:429 msgid "Atoms to Select:" msgstr "" -#: qtplugins/select/select.cpp:415 +#: qtplugins/select/select.cpp:434 #, fuzzy msgid "Select Atom" msgstr "Animering..." -#: qtplugins/select/select.cpp:448 +#: qtplugins/select/select.cpp:469 msgid "Select Atoms by Residue" msgstr "" -#: qtplugins/select/select.cpp:449 +#: qtplugins/select/select.cpp:470 msgid "Residues to Select:" msgstr "" -#: qtplugins/select/select.cpp:454 +#: qtplugins/select/select.cpp:475 msgid "Select Residue" msgstr "" @@ -4756,28 +4759,35 @@ msgstr "" msgid "Template" msgstr "" -#: qtplugins/templatetool/templatetool.cpp:294 +#: qtplugins/templatetool/templatetool.cpp:84 +msgid "" +"Template Tool\n" +"\n" +"Insert fragments, including metal centers.\n" +"Select an element and coordination geometry,then click to insert a " +"fragment.\n" +"\n" +"Select a ligand or functional group and clickon a hydrogen atom to attach it." +msgstr "" + +#: qtplugins/templatetool/templatetool.cpp:302 #, fuzzy #| msgid "Insert Fragment" msgid "Insert Template" msgstr "Infoga fragment" -#: qtplugins/templatetool/templatetool.cpp:544 +#: qtplugins/templatetool/templatetool.cpp:559 #, fuzzy #| msgid "Insert Fragment" msgid "Insert Ligand" msgstr "Infoga fragment" -#: qtplugins/templatetool/templatetool.h:34 #: qtplugins/templatetool/templatetool.h:35 +#: qtplugins/templatetool/templatetool.h:36 #, fuzzy msgid "Template tool" msgstr "Mät" -#: qtplugins/templatetool/templatetoolwidget.cpp:288 -msgid "Other..." -msgstr "" - #: qtplugins/vanderwaals/vanderwaals.h:33 msgid "Simple display of VdW spheres." msgstr "" @@ -4992,6 +5002,30 @@ msgstr "" msgid "Rename Elements" msgstr "" +#. i18n: file: qtgui/insertfragmentdialog.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtGui::InsertFragmentDialog) +#, fuzzy +#| msgid "Insert Fragment" +msgid "Insert Fragment…" +msgstr "Infoga fragment" + +#. i18n: file: qtgui/insertfragmentdialog.ui:22 +#. i18n: ectx: property (text), widget (QLabel, label) +msgid "Filter:" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:29 +#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) +msgid "Type a name or part of a name to show only matching files." +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:86 +#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) +#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 +#. i18n: ectx: property (text), widget (QPushButton, insertButton) +msgid "Insert" +msgstr "" + #. i18n: file: qtplugins/3dmol/3dmoldialog.ui:17 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ThreeDMolDialog) msgid "3DMol HTML Snippet" @@ -5837,30 +5871,6 @@ msgctxt "double-strand DNA" msgid "Double" msgstr "Dubbel" -#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 -#. i18n: ectx: property (text), widget (QPushButton, insertButton) -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:86 -#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) -msgid "Insert" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::InsertFragmentDialog) -#, fuzzy -#| msgid "Insert Fragment" -msgid "Insert Fragment…" -msgstr "Infoga fragment" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:22 -#. i18n: ectx: property (text), widget (QLabel, label) -msgid "Filter:" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:29 -#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) -msgid "Type a name or part of a name to show only matching files." -msgstr "" - #. i18n: file: qtplugins/lammpsinput/lammpsinputdialog.ui:20 #. i18n: ectx: property (windowTitle), widget (QDialog, LammpsInputDialog) msgid "LAMMPS Input" diff --git a/i18n/ta.po b/i18n/ta.po index dc811fee0f..34a52de3b4 100644 --- a/i18n/ta.po +++ b/i18n/ta.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Avogadro 1.90.0\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-10-29 02:01+0000\n" +"POT-Creation-Date: 2023-11-19 14:57+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -954,65 +954,60 @@ msgstr "" msgid "Select executable:" msgstr "" -#: qtgui/fileformatdialog.cpp:48 -msgid "" -"The file name contains invalid characters. Please choose another file name." -msgstr "" - -#: qtgui/fileformatdialog.cpp:60 +#: qtgui/fileformatdialog.cpp:52 msgid "Unable to find a suitable file reader for the selected file." msgstr "" -#: qtgui/fileformatdialog.cpp:108 +#: qtgui/fileformatdialog.cpp:100 msgid "" "The file extension is missing, so the format cannot be determined.Do you " "want to add it?" msgstr "" -#: qtgui/fileformatdialog.cpp:122 +#: qtgui/fileformatdialog.cpp:114 msgid "Unable to find a suitable file writer for the selected format." msgstr "" -#: qtgui/fileformatdialog.cpp:171 +#: qtgui/fileformatdialog.cpp:163 msgctxt "File handlers" msgid "handlers" msgstr "" -#: qtgui/fileformatdialog.cpp:172 +#: qtgui/fileformatdialog.cpp:164 msgctxt "e.g. file handlers that can 'handle' this file." msgid "handle" msgstr "" -#: qtgui/fileformatdialog.cpp:176 +#: qtgui/fileformatdialog.cpp:168 msgctxt "File readers" msgid "readers" msgstr "" -#: qtgui/fileformatdialog.cpp:177 +#: qtgui/fileformatdialog.cpp:169 msgctxt "e.g. file readers that can 'read' this file." msgid "read" msgstr "" -#: qtgui/fileformatdialog.cpp:181 +#: qtgui/fileformatdialog.cpp:173 msgctxt "File writers" msgid "writers" msgstr "" -#: qtgui/fileformatdialog.cpp:182 +#: qtgui/fileformatdialog.cpp:174 msgctxt "e.g. file writers that can 'write' this file." msgid "write" msgstr "" -#: qtgui/fileformatdialog.cpp:187 +#: qtgui/fileformatdialog.cpp:179 #, qt-format msgid "Multiple %1 found that can %2 this format. Which should be used?" msgstr "" -#: qtgui/fileformatdialog.cpp:287 +#: qtgui/fileformatdialog.cpp:279 msgid "All files" msgstr "" -#: qtgui/fileformatdialog.cpp:290 +#: qtgui/fileformatdialog.cpp:282 msgid "All supported formats" msgstr "" @@ -1287,7 +1282,7 @@ msgstr "" #. i18n: file: qtplugins/selectiontool/selectiontoolwidget.ui:39 #. i18n: ectx: property (text), widget (QLabel, label) #: qtgui/rwlayermanager.cpp:220 qtgui/rwlayermanager.cpp:223 -#: qtplugins/select/select.cpp:527 +#: qtplugins/select/select.cpp:548 #: qtplugins/selectiontool/selectiontool.cpp:254:1567 msgid "Change Layer" msgstr "" @@ -1307,7 +1302,7 @@ msgstr "" #. i18n: file: qtplugins/editor/editortoolwidget.ui:43 #. i18n: ectx: property (text), widget (QCheckBox, adjustHydrogens) -#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:447 +#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:459 msgid "Adjust Hydrogens" msgstr "" @@ -1566,7 +1561,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsDialog) -#: qtplugins/apbs/apbs.h:31:84 +#: qtplugins/apbs/apbs.h:31:96 msgid "APBS" msgstr "" @@ -1629,7 +1624,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsoutputdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsOutputDialog) -#: qtplugins/apbs/apbsdialog.cpp:178:144 +#: qtplugins/apbs/apbsdialog.cpp:178:156 msgid "Success" msgstr "" @@ -1748,7 +1743,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:122 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:756:171 rc.cpp:1615 +#: qtplugins/surfaces/surfaces.cpp:756:183 rc.cpp:1615 msgctxt "colormap" msgid "Spectral" msgstr "" @@ -1758,7 +1753,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:169 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:124 -#: qtplugins/surfaces/surfaces.cpp:758:168 rc.cpp:1612 +#: qtplugins/surfaces/surfaces.cpp:758:180 rc.cpp:1612 msgctxt "colormap" msgid "Coolwarm" msgstr "" @@ -1768,7 +1763,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:159 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:126 -#: qtplugins/surfaces/surfaces.cpp:760:162 rc.cpp:1606 +#: qtplugins/surfaces/surfaces.cpp:760:174 rc.cpp:1606 msgctxt "colormap" msgid "Balance" msgstr "" @@ -1778,7 +1773,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:164 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:128 -#: qtplugins/surfaces/surfaces.cpp:762:165 rc.cpp:1609 +#: qtplugins/surfaces/surfaces.cpp:762:177 rc.cpp:1609 msgctxt "colormap" msgid "Blue-DarkRed" msgstr "" @@ -1790,7 +1785,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:130 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:764:174 rc.cpp:1618 +#: qtplugins/surfaces/surfaces.cpp:764:186 rc.cpp:1618 msgctxt "colormap" msgid "Turbo" msgstr "" @@ -1824,7 +1819,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:143 #. i18n: ectx: property (text), widget (QLabel, label_7) #: qtplugins/applycolors/applycolors.cpp:213 -#: qtplugins/applycolors/applycolors.cpp:305:159 rc.cpp:1603 +#: qtplugins/applycolors/applycolors.cpp:305:171 rc.cpp:1603 msgid "Colormap:" msgstr "" @@ -2037,7 +2032,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:265 #. i18n: ectx: property (suffix), widget (QDoubleSpinBox, resolutionDoubleSpinBox) #: qtplugins/closecontacts/closecontacts.cpp:215 -#: qtplugins/noncovalent/noncovalent.cpp:351:189 rc.cpp:192 rc.cpp:369 +#: qtplugins/noncovalent/noncovalent.cpp:351:201 rc.cpp:204 rc.cpp:381 msgid " Å" msgstr "" @@ -2292,7 +2287,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:108 #. i18n: ectx: property (text), widget (QToolButton, copy) -#: qtplugins/copypaste/copypaste.cpp:31:240 +#: qtplugins/copypaste/copypaste.cpp:31:252 msgid "Copy" msgstr "" @@ -2308,13 +2303,13 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:101 #. i18n: ectx: property (text), widget (QToolButton, cut) -#: qtplugins/copypaste/copypaste.cpp:34:237 +#: qtplugins/copypaste/copypaste.cpp:34:249 msgid "Cut" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:142 #. i18n: ectx: property (text), widget (QPushButton, clear) -#: qtplugins/copypaste/copypaste.cpp:35:249 +#: qtplugins/copypaste/copypaste.cpp:35:261 msgid "Clear" msgstr "" @@ -2657,6 +2652,14 @@ msgid "Editor tool" msgstr "" #: qtplugins/editor/editortoolwidget.cpp:129 +#: qtplugins/templatetool/templatetoolwidget.cpp:270 +#: qtplugins/templatetool/templatetoolwidget.cpp:283 +#: qtplugins/templatetool/templatetoolwidget.cpp:291 +#: qtplugins/templatetool/templatetoolwidget.cpp:299 +#: qtplugins/templatetool/templatetoolwidget.cpp:307 +#: qtplugins/templatetool/templatetoolwidget.cpp:315 +#: qtplugins/templatetool/templatetoolwidget.cpp:328 +#: qtplugins/templatetool/templatetoolwidget.cpp:390 msgid "Other…" msgstr "" @@ -2775,17 +2778,17 @@ msgstr "" msgid "&Calculate" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:288 qtplugins/openbabel/openbabel.cpp:45 +#: qtplugins/forcefield/forcefield.cpp:285 qtplugins/openbabel/openbabel.cpp:45 #: qtplugins/openbabel/openbabel.cpp:525 msgid "Optimize Geometry" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:329 +#: qtplugins/forcefield/forcefield.cpp:326 #, qt-format msgid "%1 Energy = %L2" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:330 +#: qtplugins/forcefield/forcefield.cpp:327 #: qtplugins/playertool/playertool.cpp:343 #: qtplugins/playertool/playertool.cpp:375 qtplugins/surfaces/surfaces.cpp:886 #: qtplugins/surfaces/surfaces.cpp:930 qtplugins/surfaces/surfaces.cpp:942 @@ -2986,7 +2989,7 @@ msgstr "" #. i18n: file: qtplugins/insertdna/insertdnadialog.ui:79 #. i18n: ectx: property (toolTip), widget (QToolButton, toolButton_TU) -#: qtplugins/insertdna/insertdna.cpp:168:600 +#: qtplugins/insertdna/insertdna.cpp:168:612 msgid "Thymine" msgstr "" @@ -3026,7 +3029,7 @@ msgstr "" #. i18n: file: qtplugins/crystal/importcrystaldialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ImportCrystalDialog) -#: qtplugins/insertfragment/insertfragment.cpp:117:342 +#: qtplugins/insertfragment/insertfragment.cpp:117:354 msgid "Import Crystal" msgstr "" @@ -4197,7 +4200,7 @@ msgstr "" msgid "Select None" msgstr "" -#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:516 +#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:537 msgid "Invert Selection" msgstr "" @@ -4225,11 +4228,11 @@ msgstr "" msgid "Select Water…" msgstr "" -#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:352 +#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:368 msgid "Enlarge Selection" msgstr "" -#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:387 +#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:404 msgid "Shrink Selection" msgstr "" @@ -4249,39 +4252,39 @@ msgstr "" msgid "Select Element" msgstr "" -#: qtplugins/select/select.cpp:216 +#: qtplugins/select/select.cpp:217 msgid "Select Water" msgstr "" -#: qtplugins/select/select.cpp:254 +#: qtplugins/select/select.cpp:266 msgid "Select Backbone" msgstr "" -#: qtplugins/select/select.cpp:288 +#: qtplugins/select/select.cpp:302 msgid "Select Sidechain" msgstr "" -#: qtplugins/select/select.cpp:409 +#: qtplugins/select/select.cpp:428 msgid "Select Atoms by Index" msgstr "" -#: qtplugins/select/select.cpp:410 +#: qtplugins/select/select.cpp:429 msgid "Atoms to Select:" msgstr "" -#: qtplugins/select/select.cpp:415 +#: qtplugins/select/select.cpp:434 msgid "Select Atom" msgstr "" -#: qtplugins/select/select.cpp:448 +#: qtplugins/select/select.cpp:469 msgid "Select Atoms by Residue" msgstr "" -#: qtplugins/select/select.cpp:449 +#: qtplugins/select/select.cpp:470 msgid "Residues to Select:" msgstr "" -#: qtplugins/select/select.cpp:454 +#: qtplugins/select/select.cpp:475 msgid "Select Residue" msgstr "" @@ -4622,23 +4625,30 @@ msgstr "" msgid "Template" msgstr "" -#: qtplugins/templatetool/templatetool.cpp:294 +#: qtplugins/templatetool/templatetool.cpp:84 +msgid "" +"Template Tool\n" +"\n" +"Insert fragments, including metal centers.\n" +"Select an element and coordination geometry,then click to insert a " +"fragment.\n" +"\n" +"Select a ligand or functional group and clickon a hydrogen atom to attach it." +msgstr "" + +#: qtplugins/templatetool/templatetool.cpp:302 msgid "Insert Template" msgstr "" -#: qtplugins/templatetool/templatetool.cpp:544 +#: qtplugins/templatetool/templatetool.cpp:559 msgid "Insert Ligand" msgstr "" -#: qtplugins/templatetool/templatetool.h:34 #: qtplugins/templatetool/templatetool.h:35 +#: qtplugins/templatetool/templatetool.h:36 msgid "Template tool" msgstr "" -#: qtplugins/templatetool/templatetoolwidget.cpp:288 -msgid "Other..." -msgstr "" - #: qtplugins/vanderwaals/vanderwaals.h:33 msgid "Simple display of VdW spheres." msgstr "" @@ -4853,6 +4863,28 @@ msgstr "" msgid "Rename Elements" msgstr "" +#. i18n: file: qtgui/insertfragmentdialog.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtGui::InsertFragmentDialog) +msgid "Insert Fragment…" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:22 +#. i18n: ectx: property (text), widget (QLabel, label) +msgid "Filter:" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:29 +#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) +msgid "Type a name or part of a name to show only matching files." +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:86 +#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) +#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 +#. i18n: ectx: property (text), widget (QPushButton, insertButton) +msgid "Insert" +msgstr "" + #. i18n: file: qtplugins/3dmol/3dmoldialog.ui:17 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ThreeDMolDialog) msgid "3DMol HTML Snippet" @@ -5693,28 +5725,6 @@ msgctxt "double-strand DNA" msgid "Double" msgstr "" -#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 -#. i18n: ectx: property (text), widget (QPushButton, insertButton) -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:86 -#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) -msgid "Insert" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::InsertFragmentDialog) -msgid "Insert Fragment…" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:22 -#. i18n: ectx: property (text), widget (QLabel, label) -msgid "Filter:" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:29 -#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) -msgid "Type a name or part of a name to show only matching files." -msgstr "" - #. i18n: file: qtplugins/lammpsinput/lammpsinputdialog.ui:20 #. i18n: ectx: property (windowTitle), widget (QDialog, LammpsInputDialog) msgid "LAMMPS Input" diff --git a/i18n/te.po b/i18n/te.po index 303a4df825..ee66a9ada6 100644 --- a/i18n/te.po +++ b/i18n/te.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Avogadro 1.90.0\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-10-29 02:01+0000\n" +"POT-Creation-Date: 2023-11-19 14:57+0000\n" "PO-Revision-Date: 2023-10-11 16:27+0000\n" "Last-Translator: Balavamsi Krishna \n" "Language-Team: Telugu \n" "Language-Team: Thai \n" @@ -955,65 +955,60 @@ msgstr "" msgid "Select executable:" msgstr "" -#: qtgui/fileformatdialog.cpp:48 -msgid "" -"The file name contains invalid characters. Please choose another file name." -msgstr "" - -#: qtgui/fileformatdialog.cpp:60 +#: qtgui/fileformatdialog.cpp:52 msgid "Unable to find a suitable file reader for the selected file." msgstr "" -#: qtgui/fileformatdialog.cpp:108 +#: qtgui/fileformatdialog.cpp:100 msgid "" "The file extension is missing, so the format cannot be determined.Do you " "want to add it?" msgstr "" -#: qtgui/fileformatdialog.cpp:122 +#: qtgui/fileformatdialog.cpp:114 msgid "Unable to find a suitable file writer for the selected format." msgstr "" -#: qtgui/fileformatdialog.cpp:171 +#: qtgui/fileformatdialog.cpp:163 msgctxt "File handlers" msgid "handlers" msgstr "" -#: qtgui/fileformatdialog.cpp:172 +#: qtgui/fileformatdialog.cpp:164 msgctxt "e.g. file handlers that can 'handle' this file." msgid "handle" msgstr "" -#: qtgui/fileformatdialog.cpp:176 +#: qtgui/fileformatdialog.cpp:168 msgctxt "File readers" msgid "readers" msgstr "" -#: qtgui/fileformatdialog.cpp:177 +#: qtgui/fileformatdialog.cpp:169 msgctxt "e.g. file readers that can 'read' this file." msgid "read" msgstr "" -#: qtgui/fileformatdialog.cpp:181 +#: qtgui/fileformatdialog.cpp:173 msgctxt "File writers" msgid "writers" msgstr "" -#: qtgui/fileformatdialog.cpp:182 +#: qtgui/fileformatdialog.cpp:174 msgctxt "e.g. file writers that can 'write' this file." msgid "write" msgstr "" -#: qtgui/fileformatdialog.cpp:187 +#: qtgui/fileformatdialog.cpp:179 #, qt-format msgid "Multiple %1 found that can %2 this format. Which should be used?" msgstr "" -#: qtgui/fileformatdialog.cpp:287 +#: qtgui/fileformatdialog.cpp:279 msgid "All files" msgstr "" -#: qtgui/fileformatdialog.cpp:290 +#: qtgui/fileformatdialog.cpp:282 msgid "All supported formats" msgstr "" @@ -1288,7 +1283,7 @@ msgstr "" #. i18n: file: qtplugins/selectiontool/selectiontoolwidget.ui:39 #. i18n: ectx: property (text), widget (QLabel, label) #: qtgui/rwlayermanager.cpp:220 qtgui/rwlayermanager.cpp:223 -#: qtplugins/select/select.cpp:527 +#: qtplugins/select/select.cpp:548 #: qtplugins/selectiontool/selectiontool.cpp:254:1567 msgid "Change Layer" msgstr "" @@ -1308,7 +1303,7 @@ msgstr "" #. i18n: file: qtplugins/editor/editortoolwidget.ui:43 #. i18n: ectx: property (text), widget (QCheckBox, adjustHydrogens) -#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:447 +#: qtgui/rwmolecule.cpp:106 qtgui/rwmolecule.cpp:114:459 msgid "Adjust Hydrogens" msgstr "" @@ -1567,7 +1562,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsDialog) -#: qtplugins/apbs/apbs.h:31:84 +#: qtplugins/apbs/apbs.h:31:96 msgid "APBS" msgstr "" @@ -1630,7 +1625,7 @@ msgstr "" #. i18n: file: qtplugins/apbs/apbsoutputdialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, ApbsOutputDialog) -#: qtplugins/apbs/apbsdialog.cpp:178:144 +#: qtplugins/apbs/apbsdialog.cpp:178:156 msgid "Success" msgstr "" @@ -1750,7 +1745,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:122 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:756:171 rc.cpp:1615 +#: qtplugins/surfaces/surfaces.cpp:756:183 rc.cpp:1615 msgctxt "colormap" msgid "Spectral" msgstr "" @@ -1760,7 +1755,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:169 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:124 -#: qtplugins/surfaces/surfaces.cpp:758:168 rc.cpp:1612 +#: qtplugins/surfaces/surfaces.cpp:758:180 rc.cpp:1612 msgctxt "colormap" msgid "Coolwarm" msgstr "" @@ -1770,7 +1765,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:159 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:126 -#: qtplugins/surfaces/surfaces.cpp:760:162 rc.cpp:1606 +#: qtplugins/surfaces/surfaces.cpp:760:174 rc.cpp:1606 msgctxt "colormap" msgid "Balance" msgstr "" @@ -1780,7 +1775,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:164 #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:128 -#: qtplugins/surfaces/surfaces.cpp:762:165 rc.cpp:1609 +#: qtplugins/surfaces/surfaces.cpp:762:177 rc.cpp:1609 msgctxt "colormap" msgid "Blue-DarkRed" msgstr "" @@ -1792,7 +1787,7 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:130 #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 -#: qtplugins/surfaces/surfaces.cpp:764:174 rc.cpp:1618 +#: qtplugins/surfaces/surfaces.cpp:764:186 rc.cpp:1618 msgctxt "colormap" msgid "Turbo" msgstr "" @@ -1826,7 +1821,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:143 #. i18n: ectx: property (text), widget (QLabel, label_7) #: qtplugins/applycolors/applycolors.cpp:213 -#: qtplugins/applycolors/applycolors.cpp:305:159 rc.cpp:1603 +#: qtplugins/applycolors/applycolors.cpp:305:171 rc.cpp:1603 msgid "Colormap:" msgstr "" @@ -2039,7 +2034,7 @@ msgstr "" #. i18n: file: qtplugins/surfaces/surfacedialog.ui:265 #. i18n: ectx: property (suffix), widget (QDoubleSpinBox, resolutionDoubleSpinBox) #: qtplugins/closecontacts/closecontacts.cpp:215 -#: qtplugins/noncovalent/noncovalent.cpp:351:189 rc.cpp:192 rc.cpp:369 +#: qtplugins/noncovalent/noncovalent.cpp:351:201 rc.cpp:204 rc.cpp:381 msgid " Å" msgstr "" @@ -2294,7 +2289,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:108 #. i18n: ectx: property (text), widget (QToolButton, copy) -#: qtplugins/copypaste/copypaste.cpp:31:240 +#: qtplugins/copypaste/copypaste.cpp:31:252 msgid "Copy" msgstr "" @@ -2310,13 +2305,13 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:101 #. i18n: ectx: property (text), widget (QToolButton, cut) -#: qtplugins/copypaste/copypaste.cpp:34:237 +#: qtplugins/copypaste/copypaste.cpp:34:249 msgid "Cut" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:142 #. i18n: ectx: property (text), widget (QPushButton, clear) -#: qtplugins/copypaste/copypaste.cpp:35:249 +#: qtplugins/copypaste/copypaste.cpp:35:261 msgid "Clear" msgstr "" @@ -2659,6 +2654,14 @@ msgid "Editor tool" msgstr "" #: qtplugins/editor/editortoolwidget.cpp:129 +#: qtplugins/templatetool/templatetoolwidget.cpp:270 +#: qtplugins/templatetool/templatetoolwidget.cpp:283 +#: qtplugins/templatetool/templatetoolwidget.cpp:291 +#: qtplugins/templatetool/templatetoolwidget.cpp:299 +#: qtplugins/templatetool/templatetoolwidget.cpp:307 +#: qtplugins/templatetool/templatetoolwidget.cpp:315 +#: qtplugins/templatetool/templatetoolwidget.cpp:328 +#: qtplugins/templatetool/templatetoolwidget.cpp:390 msgid "Other…" msgstr "" @@ -2777,17 +2780,17 @@ msgstr "" msgid "&Calculate" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:288 qtplugins/openbabel/openbabel.cpp:45 +#: qtplugins/forcefield/forcefield.cpp:285 qtplugins/openbabel/openbabel.cpp:45 #: qtplugins/openbabel/openbabel.cpp:525 msgid "Optimize Geometry" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:329 +#: qtplugins/forcefield/forcefield.cpp:326 #, qt-format msgid "%1 Energy = %L2" msgstr "" -#: qtplugins/forcefield/forcefield.cpp:330 +#: qtplugins/forcefield/forcefield.cpp:327 #: qtplugins/playertool/playertool.cpp:343 #: qtplugins/playertool/playertool.cpp:375 qtplugins/surfaces/surfaces.cpp:886 #: qtplugins/surfaces/surfaces.cpp:930 qtplugins/surfaces/surfaces.cpp:942 @@ -2988,7 +2991,7 @@ msgstr "" #. i18n: file: qtplugins/insertdna/insertdnadialog.ui:79 #. i18n: ectx: property (toolTip), widget (QToolButton, toolButton_TU) -#: qtplugins/insertdna/insertdna.cpp:168:600 +#: qtplugins/insertdna/insertdna.cpp:168:612 msgid "Thymine" msgstr "" @@ -3028,7 +3031,7 @@ msgstr "" #. i18n: file: qtplugins/crystal/importcrystaldialog.ui:14 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ImportCrystalDialog) -#: qtplugins/insertfragment/insertfragment.cpp:117:342 +#: qtplugins/insertfragment/insertfragment.cpp:117:354 msgid "Import Crystal" msgstr "" @@ -4199,7 +4202,7 @@ msgstr "" msgid "Select None" msgstr "" -#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:516 +#: qtplugins/select/select.cpp:48 qtplugins/select/select.cpp:537 msgid "Invert Selection" msgstr "" @@ -4227,11 +4230,11 @@ msgstr "" msgid "Select Water…" msgstr "" -#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:352 +#: qtplugins/select/select.cpp:88 qtplugins/select/select.cpp:368 msgid "Enlarge Selection" msgstr "" -#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:387 +#: qtplugins/select/select.cpp:93 qtplugins/select/select.cpp:404 msgid "Shrink Selection" msgstr "" @@ -4251,39 +4254,39 @@ msgstr "" msgid "Select Element" msgstr "" -#: qtplugins/select/select.cpp:216 +#: qtplugins/select/select.cpp:217 msgid "Select Water" msgstr "" -#: qtplugins/select/select.cpp:254 +#: qtplugins/select/select.cpp:266 msgid "Select Backbone" msgstr "" -#: qtplugins/select/select.cpp:288 +#: qtplugins/select/select.cpp:302 msgid "Select Sidechain" msgstr "" -#: qtplugins/select/select.cpp:409 +#: qtplugins/select/select.cpp:428 msgid "Select Atoms by Index" msgstr "" -#: qtplugins/select/select.cpp:410 +#: qtplugins/select/select.cpp:429 msgid "Atoms to Select:" msgstr "" -#: qtplugins/select/select.cpp:415 +#: qtplugins/select/select.cpp:434 msgid "Select Atom" msgstr "" -#: qtplugins/select/select.cpp:448 +#: qtplugins/select/select.cpp:469 msgid "Select Atoms by Residue" msgstr "" -#: qtplugins/select/select.cpp:449 +#: qtplugins/select/select.cpp:470 msgid "Residues to Select:" msgstr "" -#: qtplugins/select/select.cpp:454 +#: qtplugins/select/select.cpp:475 msgid "Select Residue" msgstr "" @@ -4624,23 +4627,30 @@ msgstr "" msgid "Template" msgstr "" -#: qtplugins/templatetool/templatetool.cpp:294 +#: qtplugins/templatetool/templatetool.cpp:84 +msgid "" +"Template Tool\n" +"\n" +"Insert fragments, including metal centers.\n" +"Select an element and coordination geometry,then click to insert a " +"fragment.\n" +"\n" +"Select a ligand or functional group and clickon a hydrogen atom to attach it." +msgstr "" + +#: qtplugins/templatetool/templatetool.cpp:302 msgid "Insert Template" msgstr "" -#: qtplugins/templatetool/templatetool.cpp:544 +#: qtplugins/templatetool/templatetool.cpp:559 msgid "Insert Ligand" msgstr "" -#: qtplugins/templatetool/templatetool.h:34 #: qtplugins/templatetool/templatetool.h:35 +#: qtplugins/templatetool/templatetool.h:36 msgid "Template tool" msgstr "" -#: qtplugins/templatetool/templatetoolwidget.cpp:288 -msgid "Other..." -msgstr "" - #: qtplugins/vanderwaals/vanderwaals.h:33 msgid "Simple display of VdW spheres." msgstr "" @@ -4855,6 +4865,28 @@ msgstr "" msgid "Rename Elements" msgstr "" +#. i18n: file: qtgui/insertfragmentdialog.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtGui::InsertFragmentDialog) +msgid "Insert Fragment…" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:22 +#. i18n: ectx: property (text), widget (QLabel, label) +msgid "Filter:" +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:29 +#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) +msgid "Type a name or part of a name to show only matching files." +msgstr "" + +#. i18n: file: qtgui/insertfragmentdialog.ui:86 +#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) +#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 +#. i18n: ectx: property (text), widget (QPushButton, insertButton) +msgid "Insert" +msgstr "" + #. i18n: file: qtplugins/3dmol/3dmoldialog.ui:17 #. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::ThreeDMolDialog) msgid "3DMol HTML Snippet" @@ -5695,28 +5727,6 @@ msgctxt "double-strand DNA" msgid "Double" msgstr "" -#. i18n: file: qtplugins/insertdna/insertdnadialog.ui:227 -#. i18n: ectx: property (text), widget (QPushButton, insertButton) -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:86 -#. i18n: ectx: property (text), widget (QPushButton, insertFragmentButton) -msgid "Insert" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, Avogadro::QtPlugins::InsertFragmentDialog) -msgid "Insert Fragment…" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:22 -#. i18n: ectx: property (text), widget (QLabel, label) -msgid "Filter:" -msgstr "" - -#. i18n: file: qtplugins/insertfragment/insertfragmentdialog.ui:29 -#. i18n: ectx: property (toolTip), widget (QLineEdit, filterLineEdit) -msgid "Type a name or part of a name to show only matching files." -msgstr "" - #. i18n: file: qtplugins/lammpsinput/lammpsinputdialog.ui:20 #. i18n: ectx: property (windowTitle), widget (QDialog, LammpsInputDialog) msgid "LAMMPS Input" diff --git a/i18n/tr.po b/i18n/tr.po index ce623e5cf0..24dfe62dd6 100644 --- a/i18n/tr.po +++ b/i18n/tr.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-10-29 02:01+0000\n" +"POT-Creation-Date: 2023-11-19 14:57+0000\n" "PO-Revision-Date: 2023-05-20 18:51+0000\n" "Last-Translator: Hıncal Gökhan BAKIR \n" "Language-Team: Turkish \n" "Language-Team: Uyghur \n" "Language-Team: Ukrainian \n" "Language-Team: Vietnamese \n" "Language-Team: Chinese (Simplified) \n" "Language-Team: Chinese (Traditional) Date: Sun, 19 Nov 2023 16:55:33 +0000 Subject: [PATCH 15/56] Translated using Weblate (Spanish) Currently translated at 100.0% (1472 of 1472 strings) Translation: Avogadro/avogadrolibs Translate-URL: https://hosted.weblate.org/projects/avogadro/avogadrolibs/es/ --- i18n/es.po | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/i18n/es.po b/i18n/es.po index 19141db285..3f56093b33 100644 --- a/i18n/es.po +++ b/i18n/es.po @@ -14,8 +14,8 @@ msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2023-11-19 14:57+0000\n" -"PO-Revision-Date: 2023-10-31 11:02+0000\n" -"Last-Translator: Alejandro Díaz-Moscoso \n" +"PO-Revision-Date: 2023-11-19 16:57+0000\n" +"Last-Translator: gallegonovato \n" "Language-Team: Spanish \n" "Language: es\n" @@ -23,7 +23,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.2-dev\n" +"X-Generator: Weblate 5.2\n" "X-Launchpad-Export-Date: 2018-04-13 16:01+0000\n" #: molequeue/batchjob.cpp:70 @@ -4857,6 +4857,14 @@ msgid "" "\n" "Select a ligand or functional group and clickon a hydrogen atom to attach it." msgstr "" +"Herramienta de la plantilla\n" +"\n" +"Inserte los fragmentos, incluidos los centros metálicos.\n" +"Seleccione un elemento y una geometría de coordinación y haga clic para " +"insertar un fragmento.\n" +"\n" +"Seleccione un ligante o grupo funcional y haga clic en un átomo de hidrógeno " +"para unirlo." #: qtplugins/templatetool/templatetool.cpp:302 msgid "Insert Template" From c59f7ad965e8cf5cba6d863978fa36e31c7001fc Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sun, 19 Nov 2023 16:57:21 +0000 Subject: [PATCH 16/56] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: Avogadro/avogadrolibs Translate-URL: https://hosted.weblate.org/projects/avogadro/avogadrolibs/ --- i18n/af.po | 37 +++++++++++----------------- i18n/ar.po | 40 ++++++++++++------------------ i18n/bg.po | 40 ++++++++++++------------------ i18n/bs.po | 40 ++++++++++++------------------ i18n/ca.po | 40 ++++++++++++------------------ i18n/ca@valencia.po | 40 ++++++++++++------------------ i18n/cs.po | 40 ++++++++++++------------------ i18n/da.po | 40 ++++++++++++------------------ i18n/de.po | 59 ++++++++++++++++++++++++-------------------- i18n/el.po | 40 ++++++++++++------------------ i18n/en_AU.po | 60 ++++++++++++++++++++++++++------------------- i18n/en_CA.po | 60 ++++++++++++++++++++++++++------------------- i18n/en_GB.po | 60 ++++++++++++++++++++++++++------------------- i18n/eo.po | 60 ++++++++++++++++++++++++++------------------- i18n/es.po | 60 ++++++++++++++++++++++++++------------------- i18n/et.po | 37 +++++++++++----------------- i18n/eu.po | 40 ++++++++++++------------------ i18n/fa.po | 37 +++++++++++----------------- i18n/fi.po | 40 ++++++++++++------------------ i18n/fr.po | 60 ++++++++++++++++++++++++++------------------- i18n/fr_CA.po | 37 +++++++++++----------------- i18n/gl.po | 40 ++++++++++++------------------ i18n/he.po | 40 ++++++++++++------------------ i18n/hi.po | 37 +++++++++++----------------- i18n/hr.po | 37 +++++++++++----------------- i18n/hu.po | 60 ++++++++++++++++++++++++++------------------- i18n/id.po | 45 +++++++++++++++------------------- i18n/it.po | 43 ++++++++++++++------------------ i18n/ja.po | 49 ++++++++++++++++++------------------ i18n/ka.po | 54 +++++++++++++++++++++------------------- i18n/kn.po | 37 +++++++++++----------------- i18n/ko.po | 60 ++++++++++++++++++++++++++------------------- i18n/ms.po | 40 ++++++++++++------------------ i18n/nb.po | 47 +++++++++++++++++------------------ i18n/nl.po | 40 ++++++++++++------------------ i18n/oc.po | 40 ++++++++++++------------------ i18n/pl.po | 40 ++++++++++++------------------ i18n/pt.po | 59 ++++++++++++++++++++++++-------------------- i18n/pt_BR.po | 59 ++++++++++++++++++++++++-------------------- i18n/ro.po | 37 +++++++++++----------------- i18n/ru.po | 40 ++++++++++++------------------ i18n/sa.po | 37 +++++++++++----------------- i18n/sk.po | 40 ++++++++++++------------------ i18n/sl.po | 40 ++++++++++++------------------ i18n/sq.po | 37 +++++++++++----------------- i18n/sr.po | 60 ++++++++++++++++++++++++++------------------- i18n/sv.po | 37 +++++++++++----------------- i18n/ta.po | 37 +++++++++++----------------- i18n/te.po | 37 +++++++++++----------------- i18n/th.po | 37 +++++++++++----------------- i18n/tr.po | 48 +++++++++++++++++------------------- i18n/ug.po | 40 ++++++++++++------------------ i18n/uk.po | 40 ++++++++++++------------------ i18n/vi.po | 40 ++++++++++++------------------ i18n/zh_CN.po | 43 ++++++++++++++------------------ i18n/zh_TW.po | 40 ++++++++++++------------------ 56 files changed, 1134 insertions(+), 1350 deletions(-) diff --git a/i18n/af.po b/i18n/af.po index d2a4a5c19c..35b63af2b5 100644 --- a/i18n/af.po +++ b/i18n/af.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Avogadro 1.90.0\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2021-06-19 13:34+0000\n" "Last-Translator: Nathan \n" "Language-Team: Afrikaans 1" diff --git a/i18n/ar.po b/i18n/ar.po index e10ec2f7c3..3e902667bc 100644 --- a/i18n/ar.po +++ b/i18n/ar.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2021-06-16 17:34+0000\n" "Last-Translator: Lihan Zhu \n" "Language-Team: Arabic 1" diff --git a/i18n/bg.po b/i18n/bg.po index d7d4bf981a..1648bf9fbb 100644 --- a/i18n/bg.po +++ b/i18n/bg.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-08-05 21:51+0000\n" "Last-Translator: Salif Mehmed \n" "Language-Team: Bulgarian 1" diff --git a/i18n/bs.po b/i18n/bs.po index ead6b6fdab..1a21377207 100644 --- a/i18n/bs.po +++ b/i18n/bs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2021-07-12 15:33+0000\n" "Last-Translator: Emin Macanović \n" "Language-Team: Bosnian 1" diff --git a/i18n/ca.po b/i18n/ca.po index dc1991318e..fab6b54000 100644 --- a/i18n/ca.po +++ b/i18n/ca.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: _avogadro-ca\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-03-20 18:38+0000\n" "Last-Translator: victor dargallo \n" "Language-Team: Catalan 1" diff --git a/i18n/ca@valencia.po b/i18n/ca@valencia.po index a5983d79d5..e7984a5f44 100644 --- a/i18n/ca@valencia.po +++ b/i18n/ca@valencia.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: _avogadro-ca\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2016-06-10 06:28+0000\n" "Last-Translator: Avogadro Team \n" "Language-Team: Catalan (Valencia) \n" @@ -3922,7 +3922,9 @@ msgstr "" msgid "Dynamic bonding?" msgstr "Enllaços dinàmics" -#: qtplugins/playertool/playertool.cpp:139 +#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 +#. i18n: ectx: property (text), widget (QPushButton, recordButton) +#: qtplugins/playertool/playertool.cpp:139:1684 msgid "Record Movie…" msgstr "" @@ -4075,7 +4077,9 @@ msgstr "" msgid "Error while extracting: %1" msgstr "" -#: qtplugins/plugindownloader/plugindownloader.cpp:27 +#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) +#: qtplugins/plugindownloader/plugindownloader.cpp:27:1540 msgid "Download Plugins…" msgstr "" @@ -5106,6 +5110,10 @@ msgstr "" #. i18n: file: molequeue/inputgeneratorwidget.ui:116 #. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) msgid "Submit Calculation…" msgstr "" @@ -5440,7 +5448,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) -msgid "Help..." +msgid "Help…" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:115 @@ -5477,19 +5485,13 @@ msgstr "Reinicia-ho tot" msgid "Defaults" msgstr "Paràmetres per defecte" -#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -msgid "Submit Calculation..." -msgstr "" - #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:59 #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:295 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Save File..." -msgstr "" +#, fuzzy +msgid "Save File…" +msgstr "Alça el fitxer de vídeo" #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:95 #. i18n: ectx: attribute (title), widget (QWidget, basicWidget) @@ -6588,7 +6590,7 @@ msgstr "Utilitza la forma" #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/openmminput/openmminputdialog.ui:1012 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Generate..." +msgid "Generate…" msgstr "" #. i18n: file: qtplugins/lineformatinput/lineformatinputdialog.ui:41 @@ -7223,11 +7225,6 @@ msgstr "" msgid "Max 2*theta:" msgstr "" -#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) -msgid "Download Plugins..." -msgstr "" - #. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:20 #. i18n: ectx: property (text), widget (QPushButton, downloadButton) msgid "Download Selected" @@ -7385,11 +7382,6 @@ msgstr "Estronci" msgid "Calculate" msgstr "Calcula" -#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 -#. i18n: ectx: property (text), widget (QPushButton, recordButton) -msgid "Record Movie..." -msgstr "" - #. i18n: file: qtplugins/symmetry/symmetrywidget.ui:28 #. i18n: ectx: property (text), widget (QLabel, pointGroupLabel) msgid "C1" diff --git a/i18n/cs.po b/i18n/cs.po index b758c94697..f39c2ae20f 100644 --- a/i18n/cs.po +++ b/i18n/cs.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-10-31 11:02+0000\n" "Last-Translator: Martin Slavík \n" "Language-Team: Czech 1" diff --git a/i18n/da.po b/i18n/da.po index aff6e6eed8..b885435c70 100644 --- a/i18n/da.po +++ b/i18n/da.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2016-06-10 06:28+0000\n" "Last-Translator: jvd \n" "Language-Team: Danish \n" @@ -3896,7 +3896,9 @@ msgstr "" msgid "Dynamic bonding?" msgstr "" -#: qtplugins/playertool/playertool.cpp:139 +#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 +#. i18n: ectx: property (text), widget (QPushButton, recordButton) +#: qtplugins/playertool/playertool.cpp:139:1684 msgid "Record Movie…" msgstr "" @@ -4049,7 +4051,9 @@ msgstr "" msgid "Error while extracting: %1" msgstr "" -#: qtplugins/plugindownloader/plugindownloader.cpp:27 +#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) +#: qtplugins/plugindownloader/plugindownloader.cpp:27:1540 msgid "Download Plugins…" msgstr "" @@ -5068,6 +5072,10 @@ msgstr "" #. i18n: file: molequeue/inputgeneratorwidget.ui:116 #. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) msgid "Submit Calculation…" msgstr "" @@ -5398,7 +5406,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) -msgid "Help..." +msgid "Help…" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:115 @@ -5435,19 +5443,13 @@ msgstr "" msgid "Defaults" msgstr "" -#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -msgid "Submit Calculation..." -msgstr "" - #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:59 #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:295 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Save File..." -msgstr "" +#, fuzzy +msgid "Save File…" +msgstr "Gem video fil" #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:95 #. i18n: ectx: attribute (title), widget (QWidget, basicWidget) @@ -6534,7 +6536,7 @@ msgstr "" #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/openmminput/openmminputdialog.ui:1012 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Generate..." +msgid "Generate…" msgstr "" #. i18n: file: qtplugins/lineformatinput/lineformatinputdialog.ui:41 @@ -7164,11 +7166,6 @@ msgstr "" msgid "Max 2*theta:" msgstr "" -#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) -msgid "Download Plugins..." -msgstr "" - #. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:20 #. i18n: ectx: property (text), widget (QPushButton, downloadButton) msgid "Download Selected" @@ -7323,11 +7320,6 @@ msgstr "Strontium" msgid "Calculate" msgstr "" -#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 -#. i18n: ectx: property (text), widget (QPushButton, recordButton) -msgid "Record Movie..." -msgstr "" - #. i18n: file: qtplugins/symmetry/symmetrywidget.ui:28 #. i18n: ectx: property (text), widget (QLabel, pointGroupLabel) msgid "C1" diff --git a/i18n/de.po b/i18n/de.po index 1f7be26da8..ae3d53e745 100644 --- a/i18n/de.po +++ b/i18n/de.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: _avogadro-de\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-08-17 15:50+0000\n" "Last-Translator: Norwid Behrnd \n" "Language-Team: German 1" @@ -7761,6 +7756,18 @@ msgstr "" "niku18@web.de,,,,,tobannert@gmail.com,cniehaus@gmx.de,,,simon@ochsenreither." "de,," +#~ msgid "Help..." +#~ msgstr "Hilfe..." + +#~ msgid "Save File..." +#~ msgstr "Datei speichern..." + +#~ msgid "Download Plugins..." +#~ msgstr "Plugins herunterladen..." + +#~ msgid "Record Movie..." +#~ msgstr "Video aufzeichnen …" + #~ msgid "Other..." #~ msgstr "Anderes …" diff --git a/i18n/el.po b/i18n/el.po index 49c73497db..872ede7274 100644 --- a/i18n/el.po +++ b/i18n/el.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2021-02-13 01:19+0000\n" "Last-Translator: Michalis \n" "Language-Team: Greek 1" diff --git a/i18n/en_AU.po b/i18n/en_AU.po index a3a81d2f7f..d33302a64e 100644 --- a/i18n/en_AU.po +++ b/i18n/en_AU.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: _avogadro-en_GB\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-11-08 19:34+0000\n" "Last-Translator: matterhorn103 \n" "Language-Team: English (United Kingdom) 1" @@ -7717,6 +7712,21 @@ msgstr "" "odell@googlemail.com,,,,,avogadro-devel@lists.sourceforge.net,bburns@aundae." "com,cwoollard@gmail.com,,,,joseph.odell@googlemail.com" +#~ msgid "Help..." +#~ msgstr "Help..." + +#~ msgid "Submit Calculation..." +#~ msgstr "Submit Calculation..." + +#~ msgid "Save File..." +#~ msgstr "Save File..." + +#~ msgid "Download Plugins..." +#~ msgstr "Download Plugins..." + +#~ msgid "Record Movie..." +#~ msgstr "Record Movie..." + #~ msgid "" #~ "The file name contains invalid characters. Please choose another file " #~ "name." diff --git a/i18n/en_CA.po b/i18n/en_CA.po index a3a81d2f7f..d33302a64e 100644 --- a/i18n/en_CA.po +++ b/i18n/en_CA.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: _avogadro-en_GB\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-11-08 19:34+0000\n" "Last-Translator: matterhorn103 \n" "Language-Team: English (United Kingdom) 1" @@ -7717,6 +7712,21 @@ msgstr "" "odell@googlemail.com,,,,,avogadro-devel@lists.sourceforge.net,bburns@aundae." "com,cwoollard@gmail.com,,,,joseph.odell@googlemail.com" +#~ msgid "Help..." +#~ msgstr "Help..." + +#~ msgid "Submit Calculation..." +#~ msgstr "Submit Calculation..." + +#~ msgid "Save File..." +#~ msgstr "Save File..." + +#~ msgid "Download Plugins..." +#~ msgstr "Download Plugins..." + +#~ msgid "Record Movie..." +#~ msgstr "Record Movie..." + #~ msgid "" #~ "The file name contains invalid characters. Please choose another file " #~ "name." diff --git a/i18n/en_GB.po b/i18n/en_GB.po index a3a81d2f7f..d33302a64e 100644 --- a/i18n/en_GB.po +++ b/i18n/en_GB.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: _avogadro-en_GB\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-11-08 19:34+0000\n" "Last-Translator: matterhorn103 \n" "Language-Team: English (United Kingdom) 1" @@ -7717,6 +7712,21 @@ msgstr "" "odell@googlemail.com,,,,,avogadro-devel@lists.sourceforge.net,bburns@aundae." "com,cwoollard@gmail.com,,,,joseph.odell@googlemail.com" +#~ msgid "Help..." +#~ msgstr "Help..." + +#~ msgid "Submit Calculation..." +#~ msgstr "Submit Calculation..." + +#~ msgid "Save File..." +#~ msgstr "Save File..." + +#~ msgid "Download Plugins..." +#~ msgstr "Download Plugins..." + +#~ msgid "Record Movie..." +#~ msgstr "Record Movie..." + #~ msgid "" #~ "The file name contains invalid characters. Please choose another file " #~ "name." diff --git a/i18n/eo.po b/i18n/eo.po index a248b92859..d4d70ef94b 100644 --- a/i18n/eo.po +++ b/i18n/eo.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Avogadro 1.93.0\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2021-09-26 12:57+0000\n" "Last-Translator: phlostically \n" "Language-Team: Esperanto 1" @@ -8071,6 +8066,21 @@ msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "phlostically@example.com" +#~ msgid "Help..." +#~ msgstr "Helpo…" + +#~ msgid "Submit Calculation..." +#~ msgstr "Submeti Kalkulon…" + +#~ msgid "Save File..." +#~ msgstr "Konservi Dosieron…" + +#~ msgid "Download Plugins..." +#~ msgstr "Elŝuti kromprogramojn…" + +#~ msgid "Record Movie..." +#~ msgstr "Registri Filmeton…" + #, fuzzy #~| msgid "Other..." #~ msgid "Other..." diff --git a/i18n/es.po b/i18n/es.po index 3f56093b33..18fb0db457 100644 --- a/i18n/es.po +++ b/i18n/es.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-11-19 16:57+0000\n" "Last-Translator: gallegonovato \n" "Language-Team: Spanish 1" @@ -7878,6 +7873,21 @@ msgstr "" "tres.14159@gmail.com,monkey.libre@gmail.com,nzahlut@live.com,,paco@byasl." "com,,victorhera@gmail.com,memaljo@yahoo.com," +#~ msgid "Help..." +#~ msgstr "Ayuda…" + +#~ msgid "Submit Calculation..." +#~ msgstr "Enviar Cálculos…" + +#~ msgid "Save File..." +#~ msgstr "Guardar Archivo…" + +#~ msgid "Download Plugins..." +#~ msgstr "Descargar Complementos…" + +#~ msgid "Record Movie..." +#~ msgstr "Grabar Película…" + #~ msgid "" #~ "The file name contains invalid characters. Please choose another file " #~ "name." diff --git a/i18n/et.po b/i18n/et.po index 1f77f8b025..efaf475c4a 100644 --- a/i18n/et.po +++ b/i18n/et.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2016-06-10 06:31+0000\n" "Last-Translator: Avogadro Team \n" "Language-Team: Estonian \n" @@ -3778,7 +3778,9 @@ msgstr "" msgid "Dynamic bonding?" msgstr "" -#: qtplugins/playertool/playertool.cpp:139 +#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 +#. i18n: ectx: property (text), widget (QPushButton, recordButton) +#: qtplugins/playertool/playertool.cpp:139:1684 msgid "Record Movie…" msgstr "" @@ -3931,7 +3933,9 @@ msgstr "" msgid "Error while extracting: %1" msgstr "" -#: qtplugins/plugindownloader/plugindownloader.cpp:27 +#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) +#: qtplugins/plugindownloader/plugindownloader.cpp:27:1540 msgid "Download Plugins…" msgstr "" @@ -4919,6 +4923,10 @@ msgstr "" #. i18n: file: molequeue/inputgeneratorwidget.ui:116 #. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) msgid "Submit Calculation…" msgstr "" @@ -5247,7 +5255,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) -msgid "Help..." +msgid "Help…" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:115 @@ -5284,18 +5292,11 @@ msgstr "" msgid "Defaults" msgstr "" -#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -msgid "Submit Calculation..." -msgstr "" - #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:59 #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:295 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Save File..." +msgid "Save File…" msgstr "" #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:95 @@ -6384,7 +6385,7 @@ msgstr "" #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/openmminput/openmminputdialog.ui:1012 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Generate..." +msgid "Generate…" msgstr "" #. i18n: file: qtplugins/lineformatinput/lineformatinputdialog.ui:41 @@ -7008,11 +7009,6 @@ msgstr "" msgid "Max 2*theta:" msgstr "" -#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) -msgid "Download Plugins..." -msgstr "" - #. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:20 #. i18n: ectx: property (text), widget (QPushButton, downloadButton) msgid "Download Selected" @@ -7161,11 +7157,6 @@ msgstr "Strontsium" msgid "Calculate" msgstr "Arvuta" -#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 -#. i18n: ectx: property (text), widget (QPushButton, recordButton) -msgid "Record Movie..." -msgstr "" - #. i18n: file: qtplugins/symmetry/symmetrywidget.ui:28 #. i18n: ectx: property (text), widget (QLabel, pointGroupLabel) msgid "C1" diff --git a/i18n/eu.po b/i18n/eu.po index eb937deb66..f302fc3534 100644 --- a/i18n/eu.po +++ b/i18n/eu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2022-06-22 19:15+0000\n" "Last-Translator: Julen Larrucea \n" "Language-Team: Basque 1" diff --git a/i18n/fa.po b/i18n/fa.po index 42bce45bcf..b3cceab521 100644 --- a/i18n/fa.po +++ b/i18n/fa.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Avogadro 1.93.0\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -3707,7 +3707,9 @@ msgstr "" msgid "Dynamic bonding?" msgstr "" -#: qtplugins/playertool/playertool.cpp:139 +#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 +#. i18n: ectx: property (text), widget (QPushButton, recordButton) +#: qtplugins/playertool/playertool.cpp:139:1684 msgid "Record Movie…" msgstr "" @@ -3859,7 +3861,9 @@ msgstr "" msgid "Error while extracting: %1" msgstr "" -#: qtplugins/plugindownloader/plugindownloader.cpp:27 +#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) +#: qtplugins/plugindownloader/plugindownloader.cpp:27:1540 msgid "Download Plugins…" msgstr "" @@ -4786,6 +4790,10 @@ msgstr "" #. i18n: file: molequeue/inputgeneratorwidget.ui:116 #. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) msgid "Submit Calculation…" msgstr "" @@ -5111,7 +5119,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) -msgid "Help..." +msgid "Help…" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:115 @@ -5148,18 +5156,11 @@ msgstr "" msgid "Defaults" msgstr "" -#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -msgid "Submit Calculation..." -msgstr "" - #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:59 #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:295 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Save File..." +msgid "Save File…" msgstr "" #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:95 @@ -6231,7 +6232,7 @@ msgstr "" #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/openmminput/openmminputdialog.ui:1012 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Generate..." +msgid "Generate…" msgstr "" #. i18n: file: qtplugins/lineformatinput/lineformatinputdialog.ui:41 @@ -6855,11 +6856,6 @@ msgstr "" msgid "Max 2*theta:" msgstr "" -#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) -msgid "Download Plugins..." -msgstr "" - #. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:20 #. i18n: ectx: property (text), widget (QPushButton, downloadButton) msgid "Download Selected" @@ -7004,11 +7000,6 @@ msgstr "" msgid "Calculate" msgstr "" -#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 -#. i18n: ectx: property (text), widget (QPushButton, recordButton) -msgid "Record Movie..." -msgstr "" - #. i18n: file: qtplugins/symmetry/symmetrywidget.ui:28 #. i18n: ectx: property (text), widget (QLabel, pointGroupLabel) msgid "C1" diff --git a/i18n/fi.po b/i18n/fi.po index a57f2b2d95..cd2a535223 100644 --- a/i18n/fi.po +++ b/i18n/fi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2016-06-10 06:32+0000\n" "Last-Translator: Avogadro Team \n" "Language-Team: Finnish \n" @@ -3830,7 +3830,9 @@ msgstr "" msgid "Dynamic bonding?" msgstr "" -#: qtplugins/playertool/playertool.cpp:139 +#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 +#. i18n: ectx: property (text), widget (QPushButton, recordButton) +#: qtplugins/playertool/playertool.cpp:139:1684 msgid "Record Movie…" msgstr "" @@ -3983,7 +3985,9 @@ msgstr "" msgid "Error while extracting: %1" msgstr "" -#: qtplugins/plugindownloader/plugindownloader.cpp:27 +#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) +#: qtplugins/plugindownloader/plugindownloader.cpp:27:1540 msgid "Download Plugins…" msgstr "" @@ -4983,6 +4987,10 @@ msgstr "" #. i18n: file: molequeue/inputgeneratorwidget.ui:116 #. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) msgid "Submit Calculation…" msgstr "" @@ -5312,7 +5320,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) -msgid "Help..." +msgid "Help…" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:115 @@ -5349,19 +5357,13 @@ msgstr "" msgid "Defaults" msgstr "Oletusasetukset" -#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -msgid "Submit Calculation..." -msgstr "" - #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:59 #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:295 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Save File..." -msgstr "" +#, fuzzy +msgid "Save File…" +msgstr "Tallenna" #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:95 #. i18n: ectx: attribute (title), widget (QWidget, basicWidget) @@ -6448,7 +6450,7 @@ msgstr "" #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/openmminput/openmminputdialog.ui:1012 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Generate..." +msgid "Generate…" msgstr "" #. i18n: file: qtplugins/lineformatinput/lineformatinputdialog.ui:41 @@ -7075,11 +7077,6 @@ msgstr "" msgid "Max 2*theta:" msgstr "" -#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) -msgid "Download Plugins..." -msgstr "" - #. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:20 #. i18n: ectx: property (text), widget (QPushButton, downloadButton) msgid "Download Selected" @@ -7229,11 +7226,6 @@ msgstr "Strontium" msgid "Calculate" msgstr "" -#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 -#. i18n: ectx: property (text), widget (QPushButton, recordButton) -msgid "Record Movie..." -msgstr "" - #. i18n: file: qtplugins/symmetry/symmetrywidget.ui:28 #. i18n: ectx: property (text), widget (QLabel, pointGroupLabel) msgid "C1" diff --git a/i18n/fr.po b/i18n/fr.po index df531e8d8a..eeda0f8251 100644 --- a/i18n/fr.po +++ b/i18n/fr.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-11-06 11:35+0000\n" "Last-Translator: research11111 \n" "Language-Team: French 1" @@ -7746,6 +7741,21 @@ msgstr "" "com, jacob.benoit.1@gmail.com, nizarus@nizarus.org, nizarus@nizarus.tn, " "pierre.slamich@gmail.com, etc" +#~ msgid "Help..." +#~ msgstr "Aide..." + +#~ msgid "Submit Calculation..." +#~ msgstr "Soumettre calcul..." + +#~ msgid "Save File..." +#~ msgstr "Enregistrer le fichier..." + +#~ msgid "Download Plugins..." +#~ msgstr "Télécharger des greffons..." + +#~ msgid "Record Movie..." +#~ msgstr "Enregistrer vidéo..." + #~ msgid "Other..." #~ msgstr "Autre..." diff --git a/i18n/fr_CA.po b/i18n/fr_CA.po index afd7b578ab..0b8912e0d6 100644 --- a/i18n/fr_CA.po +++ b/i18n/fr_CA.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Avogadro 1.90.0\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -3707,7 +3707,9 @@ msgstr "" msgid "Dynamic bonding?" msgstr "" -#: qtplugins/playertool/playertool.cpp:139 +#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 +#. i18n: ectx: property (text), widget (QPushButton, recordButton) +#: qtplugins/playertool/playertool.cpp:139:1684 msgid "Record Movie…" msgstr "" @@ -3859,7 +3861,9 @@ msgstr "" msgid "Error while extracting: %1" msgstr "" -#: qtplugins/plugindownloader/plugindownloader.cpp:27 +#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) +#: qtplugins/plugindownloader/plugindownloader.cpp:27:1540 msgid "Download Plugins…" msgstr "" @@ -4786,6 +4790,10 @@ msgstr "" #. i18n: file: molequeue/inputgeneratorwidget.ui:116 #. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) msgid "Submit Calculation…" msgstr "" @@ -5111,7 +5119,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) -msgid "Help..." +msgid "Help…" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:115 @@ -5148,18 +5156,11 @@ msgstr "" msgid "Defaults" msgstr "" -#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -msgid "Submit Calculation..." -msgstr "" - #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:59 #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:295 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Save File..." +msgid "Save File…" msgstr "" #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:95 @@ -6231,7 +6232,7 @@ msgstr "" #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/openmminput/openmminputdialog.ui:1012 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Generate..." +msgid "Generate…" msgstr "" #. i18n: file: qtplugins/lineformatinput/lineformatinputdialog.ui:41 @@ -6855,11 +6856,6 @@ msgstr "" msgid "Max 2*theta:" msgstr "" -#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) -msgid "Download Plugins..." -msgstr "" - #. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:20 #. i18n: ectx: property (text), widget (QPushButton, downloadButton) msgid "Download Selected" @@ -7004,11 +7000,6 @@ msgstr "" msgid "Calculate" msgstr "" -#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 -#. i18n: ectx: property (text), widget (QPushButton, recordButton) -msgid "Record Movie..." -msgstr "" - #. i18n: file: qtplugins/symmetry/symmetrywidget.ui:28 #. i18n: ectx: property (text), widget (QLabel, pointGroupLabel) msgid "C1" diff --git a/i18n/gl.po b/i18n/gl.po index 6c1f0ad40a..271c5625f5 100644 --- a/i18n/gl.po +++ b/i18n/gl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Avogadro 1.1.0\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2016-06-10 06:32+0000\n" "Last-Translator: Miguel Anxo Bouzada \n" "Language-Team: Galician \n" @@ -3935,7 +3935,9 @@ msgstr "" msgid "Dynamic bonding?" msgstr "Enlaces dinámicos" -#: qtplugins/playertool/playertool.cpp:139 +#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 +#. i18n: ectx: property (text), widget (QPushButton, recordButton) +#: qtplugins/playertool/playertool.cpp:139:1684 msgid "Record Movie…" msgstr "" @@ -4088,7 +4090,9 @@ msgstr "" msgid "Error while extracting: %1" msgstr "" -#: qtplugins/plugindownloader/plugindownloader.cpp:27 +#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) +#: qtplugins/plugindownloader/plugindownloader.cpp:27:1540 msgid "Download Plugins…" msgstr "" @@ -5131,6 +5135,10 @@ msgstr "" #. i18n: file: molequeue/inputgeneratorwidget.ui:116 #. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) #, fuzzy #| msgid "Running Abinit calculation..." msgid "Submit Calculation…" @@ -5467,7 +5475,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) -msgid "Help..." +msgid "Help…" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:115 @@ -5504,19 +5512,13 @@ msgstr "Restaurar todo" msgid "Defaults" msgstr "Predeterminados" -#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -msgid "Submit Calculation..." -msgstr "" - #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:59 #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:295 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Save File..." -msgstr "" +#, fuzzy +msgid "Save File…" +msgstr "Gardar o ficheiro de vídeo" #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:95 #. i18n: ectx: attribute (title), widget (QWidget, basicWidget) @@ -6615,7 +6617,7 @@ msgstr "Usar a forma" #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/openmminput/openmminputdialog.ui:1012 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Generate..." +msgid "Generate…" msgstr "" #. i18n: file: qtplugins/lineformatinput/lineformatinputdialog.ui:41 @@ -7252,11 +7254,6 @@ msgstr "" msgid "Max 2*theta:" msgstr "" -#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) -msgid "Download Plugins..." -msgstr "" - #. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:20 #. i18n: ectx: property (text), widget (QPushButton, downloadButton) msgid "Download Selected" @@ -7414,11 +7411,6 @@ msgstr "Estroncio" msgid "Calculate" msgstr "Calcular" -#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 -#. i18n: ectx: property (text), widget (QPushButton, recordButton) -msgid "Record Movie..." -msgstr "" - #. i18n: file: qtplugins/symmetry/symmetrywidget.ui:28 #. i18n: ectx: property (text), widget (QLabel, pointGroupLabel) msgid "C1" diff --git a/i18n/he.po b/i18n/he.po index 4632bea261..2a1ef9ed7e 100644 --- a/i18n/he.po +++ b/i18n/he.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2016-06-10 06:32+0000\n" "Last-Translator: Avogadro Team \n" "Language-Team: Hebrew \n" @@ -3745,7 +3745,9 @@ msgstr "" msgid "Dynamic bonding?" msgstr "" -#: qtplugins/playertool/playertool.cpp:139 +#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 +#. i18n: ectx: property (text), widget (QPushButton, recordButton) +#: qtplugins/playertool/playertool.cpp:139:1684 msgid "Record Movie…" msgstr "" @@ -3898,7 +3900,9 @@ msgstr "" msgid "Error while extracting: %1" msgstr "" -#: qtplugins/plugindownloader/plugindownloader.cpp:27 +#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) +#: qtplugins/plugindownloader/plugindownloader.cpp:27:1540 msgid "Download Plugins…" msgstr "" @@ -4844,6 +4848,10 @@ msgstr "" #. i18n: file: molequeue/inputgeneratorwidget.ui:116 #. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) msgid "Submit Calculation…" msgstr "" @@ -5170,7 +5178,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) -msgid "Help..." +msgid "Help…" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:115 @@ -5207,19 +5215,13 @@ msgstr "" msgid "Defaults" msgstr "" -#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -msgid "Submit Calculation..." -msgstr "" - #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:59 #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:295 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Save File..." -msgstr "" +#, fuzzy +msgid "Save File…" +msgstr "שמור קובץ וידאו" #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:95 #. i18n: ectx: attribute (title), widget (QWidget, basicWidget) @@ -6290,7 +6292,7 @@ msgstr "" #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/openmminput/openmminputdialog.ui:1012 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Generate..." +msgid "Generate…" msgstr "" #. i18n: file: qtplugins/lineformatinput/lineformatinputdialog.ui:41 @@ -6914,11 +6916,6 @@ msgstr "" msgid "Max 2*theta:" msgstr "" -#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) -msgid "Download Plugins..." -msgstr "" - #. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:20 #. i18n: ectx: property (text), widget (QPushButton, downloadButton) msgid "Download Selected" @@ -7065,11 +7062,6 @@ msgstr "סטרונציום" msgid "Calculate" msgstr "" -#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 -#. i18n: ectx: property (text), widget (QPushButton, recordButton) -msgid "Record Movie..." -msgstr "" - #. i18n: file: qtplugins/symmetry/symmetrywidget.ui:28 #. i18n: ectx: property (text), widget (QLabel, pointGroupLabel) msgid "C1" diff --git a/i18n/hi.po b/i18n/hi.po index 68d3b20313..88e453cb08 100644 --- a/i18n/hi.po +++ b/i18n/hi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-10-31 11:02+0000\n" "Last-Translator: Atharva Kanherkar \n" "Language-Team: Hindi 1" diff --git a/i18n/hr.po b/i18n/hr.po index ea75719e2c..cd7eabe350 100644 --- a/i18n/hr.po +++ b/i18n/hr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Avogadro 1.90.0\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-09-26 15:02+0000\n" "Last-Translator: Milo Ivir \n" "Language-Team: Croatian 1" diff --git a/i18n/hu.po b/i18n/hu.po index a04f740aee..7efd8a3f59 100644 --- a/i18n/hu.po +++ b/i18n/hu.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-10-31 11:02+0000\n" "Last-Translator: ovari \n" "Language-Team: Hungarian 1" @@ -7746,6 +7741,21 @@ msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "E-mail-címek" +#~ msgid "Help..." +#~ msgstr "Súgó…" + +#~ msgid "Submit Calculation..." +#~ msgstr "Számítás elküldése…" + +#~ msgid "Save File..." +#~ msgstr "Fájl mentése…" + +#~ msgid "Download Plugins..." +#~ msgstr "Beépülő modulok letöltése…" + +#~ msgid "Record Movie..." +#~ msgstr "Rajzfilmfájl felvétele…" + #~ msgid "" #~ "The file name contains invalid characters. Please choose another file " #~ "name." diff --git a/i18n/id.po b/i18n/id.po index f9cbea717d..8c4fbb0c03 100644 --- a/i18n/id.po +++ b/i18n/id.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2021-12-22 05:54+0000\n" "Last-Translator: Reza Almanda \n" "Language-Team: Indonesian 1" diff --git a/i18n/it.po b/i18n/it.po index e6a518f010..ee1afb9be3 100644 --- a/i18n/it.po +++ b/i18n/it.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-10-13 13:02+0000\n" "Last-Translator: nicola zanna \n" "Language-Team: Italian 1" @@ -7924,6 +7916,9 @@ msgstr "" "primes2h@ubuntu.com,vito.fasano@gmail.com,mcarlo.95@gmail.com,,," "lexluxsox@hotmail.it" +#~ msgid "Submit Calculation..." +#~ msgstr "Invia calcolo..." + #~ msgid "Other..." #~ msgstr "Altro..." diff --git a/i18n/ja.po b/i18n/ja.po index 949f131748..4cb036b0f2 100644 --- a/i18n/ja.po +++ b/i18n/ja.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-09-05 07:55+0000\n" "Last-Translator: Eisuke Kawashima \n" "Language-Team: Japanese 1" @@ -7766,6 +7759,12 @@ msgstr "" "com,,,,,avogadro-devel@lists.sourceforge.net,,ktns.87@gmail.com,ken." "i54k@gmail.com,,iwao.aoyama@gmail.com,," +#~ msgid "Help..." +#~ msgstr "ヘルプ..." + +#~ msgid "Save File..." +#~ msgstr "ファイルの保存" + #~ msgid "Other..." #~ msgstr "その他..." diff --git a/i18n/ka.po b/i18n/ka.po index 1ec19410bd..d2fca9d677 100644 --- a/i18n/ka.po +++ b/i18n/ka.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Avogadro 1.95.1\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-11-10 06:36+0000\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian 1" @@ -7420,6 +7415,15 @@ msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "Temuri.doghonadze@gmail.com" +#~ msgid "Help..." +#~ msgstr "დახმარება..." + +#~ msgid "Save File..." +#~ msgstr "ფაილის შენახვა..." + +#~ msgid "Download Plugins..." +#~ msgstr "დამატებების გადმოწერა…" + #~ msgid "Other..." #~ msgstr "სხვები…" diff --git a/i18n/kn.po b/i18n/kn.po index f7146981d5..7a1d1a5b2e 100644 --- a/i18n/kn.po +++ b/i18n/kn.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-07-02 10:48+0000\n" "Last-Translator: Ajith \n" "Language-Team: Kannada 1" diff --git a/i18n/ko.po b/i18n/ko.po index 66d14f35a6..7bab5342a0 100644 --- a/i18n/ko.po +++ b/i18n/ko.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-10-07 12:12+0000\n" "Last-Translator: Hoseok Seo \n" "Language-Team: Korean 1" @@ -7703,6 +7698,21 @@ msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "loniedavid@gmail.com, an6207@gmail.com" +#~ msgid "Help..." +#~ msgstr "도움말..." + +#~ msgid "Submit Calculation..." +#~ msgstr "계산 제출..." + +#~ msgid "Save File..." +#~ msgstr "파일 저장..." + +#~ msgid "Download Plugins..." +#~ msgstr "플러그인 다운로드..." + +#~ msgid "Record Movie..." +#~ msgstr "동영상 녹화..." + #~ msgid "Other..." #~ msgstr "기타..." diff --git a/i18n/ms.po b/i18n/ms.po index 456ecef052..83bde9f932 100644 --- a/i18n/ms.po +++ b/i18n/ms.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2021-04-04 15:26+0000\n" "Last-Translator: Kazuki278 \n" "Language-Team: Malay 1" diff --git a/i18n/nb.po b/i18n/nb.po index 884fcad2e4..5e851960b3 100644 --- a/i18n/nb.po +++ b/i18n/nb.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-04-27 21:50+0000\n" "Last-Translator: Allan Nordhøy \n" "Language-Team: Norwegian Bokmål 1" @@ -7731,6 +7725,9 @@ msgstr "" "epost@anotheragency.no, anders.oftedal@gmail.com, simen@simenh.com, " "simenheg@gmail.com, sol-moe@online.no" +#~ msgid "Download Plugins..." +#~ msgstr "Laster ned programtillegg …" + #~ msgid "S&erver" #~ msgstr "T&jener" diff --git a/i18n/nl.po b/i18n/nl.po index 80694ad4a7..6699b0ea6c 100644 --- a/i18n/nl.po +++ b/i18n/nl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2022-10-14 10:56+0000\n" "Last-Translator: Koen Roggemans \n" "Language-Team: Dutch 1" diff --git a/i18n/oc.po b/i18n/oc.po index df5c085d61..4a875a84de 100644 --- a/i18n/oc.po +++ b/i18n/oc.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2016-06-10 06:57+0000\n" "Last-Translator: Cédric VALMARY (Tot en òc) \n" "Language-Team: Occitan (post 1500) \n" @@ -3872,7 +3872,9 @@ msgstr "" msgid "Dynamic bonding?" msgstr "" -#: qtplugins/playertool/playertool.cpp:139 +#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 +#. i18n: ectx: property (text), widget (QPushButton, recordButton) +#: qtplugins/playertool/playertool.cpp:139:1684 msgid "Record Movie…" msgstr "" @@ -4025,7 +4027,9 @@ msgstr "" msgid "Error while extracting: %1" msgstr "" -#: qtplugins/plugindownloader/plugindownloader.cpp:27 +#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) +#: qtplugins/plugindownloader/plugindownloader.cpp:27:1540 msgid "Download Plugins…" msgstr "" @@ -5042,6 +5046,10 @@ msgstr "" #. i18n: file: molequeue/inputgeneratorwidget.ui:116 #. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) msgid "Submit Calculation…" msgstr "" @@ -5375,7 +5383,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) -msgid "Help..." +msgid "Help…" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:115 @@ -5412,19 +5420,13 @@ msgstr "" msgid "Defaults" msgstr "Valors per defaut" -#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -msgid "Submit Calculation..." -msgstr "" - #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:59 #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:295 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Save File..." -msgstr "" +#, fuzzy +msgid "Save File…" +msgstr "Enregistrar lo fichièr vidèo" #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:95 #. i18n: ectx: attribute (title), widget (QWidget, basicWidget) @@ -6517,7 +6519,7 @@ msgstr "" #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/openmminput/openmminputdialog.ui:1012 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Generate..." +msgid "Generate…" msgstr "" #. i18n: file: qtplugins/lineformatinput/lineformatinputdialog.ui:41 @@ -7150,11 +7152,6 @@ msgstr "" msgid "Max 2*theta:" msgstr "" -#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) -msgid "Download Plugins..." -msgstr "" - #. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:20 #. i18n: ectx: property (text), widget (QPushButton, downloadButton) msgid "Download Selected" @@ -7309,11 +7306,6 @@ msgstr "Estronci" msgid "Calculate" msgstr "Calcular" -#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 -#. i18n: ectx: property (text), widget (QPushButton, recordButton) -msgid "Record Movie..." -msgstr "" - #. i18n: file: qtplugins/symmetry/symmetrywidget.ui:28 #. i18n: ectx: property (text), widget (QLabel, pointGroupLabel) msgid "C1" diff --git a/i18n/pl.po b/i18n/pl.po index 1a506852d9..440c82152d 100644 --- a/i18n/pl.po +++ b/i18n/pl.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-06-20 10:49+0000\n" "Last-Translator: Jakub Brzeski \n" "Language-Team: Polish 1" diff --git a/i18n/pt.po b/i18n/pt.po index 91d5adbdde..77d99d0d93 100644 --- a/i18n/pt.po +++ b/i18n/pt.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-01-11 10:11+0000\n" "Last-Translator: ssantos \n" "Language-Team: Portuguese 1" @@ -8086,6 +8081,18 @@ msgstr "" "pt,,,,,avogadro-devel@lists.sourceforge.net,david.rodrigues@gmail.com,,," "ivoxavier.8@gmail.com,manuel.n.silva@gmail.com,,,,,,danielagostinho@sapo.pt" +#~ msgid "Help..." +#~ msgstr "Ajuda..." + +#~ msgid "Submit Calculation..." +#~ msgstr "Submeter Cálculo..." + +#~ msgid "Save File..." +#~ msgstr "Gravar Ficheiro..." + +#~ msgid "Record Movie..." +#~ msgstr "Gravar Vídeo..." + #~ msgid "Other..." #~ msgstr "Outro..." diff --git a/i18n/pt_BR.po b/i18n/pt_BR.po index b2c33f39b8..1a2412516a 100644 --- a/i18n/pt_BR.po +++ b/i18n/pt_BR.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2022-11-27 00:47+0000\n" "Last-Translator: Gustavo Sousa Jr \n" "Language-Team: Portuguese (Brazil) 1" @@ -8073,6 +8068,18 @@ msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "Seus e-mails" +#~ msgid "Help..." +#~ msgstr "Ajuda..." + +#~ msgid "Submit Calculation..." +#~ msgstr "Submeter Cálculo..." + +#~ msgid "Save File..." +#~ msgstr "Salvar Arquivo..." + +#~ msgid "Record Movie..." +#~ msgstr "Gravar Vídeo..." + #~ msgid "Other..." #~ msgstr "Outro..." diff --git a/i18n/ro.po b/i18n/ro.po index 871e03bc51..c0e3e0175e 100644 --- a/i18n/ro.po +++ b/i18n/ro.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Avogadro 1.90.0\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2021-02-13 01:19+0000\n" "Last-Translator: Irina Puscas \n" "Language-Team: Romanian 1" diff --git a/i18n/ru.po b/i18n/ru.po index 120538d73d..561ae91e55 100644 --- a/i18n/ru.po +++ b/i18n/ru.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-11-03 21:33+0000\n" "Last-Translator: Ivanushka \n" "Language-Team: Russian 1" diff --git a/i18n/sa.po b/i18n/sa.po index de0351ba70..1dfb1cedbf 100644 --- a/i18n/sa.po +++ b/i18n/sa.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Avogadro 1.93.0\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2021-06-01 14:30+0000\n" "Last-Translator: rahul bahuguna \n" "Language-Team: Sanskrit 1" diff --git a/i18n/sk.po b/i18n/sk.po index a08b2961d2..0adf74cd3f 100644 --- a/i18n/sk.po +++ b/i18n/sk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2016-06-10 06:52+0000\n" "Last-Translator: Avogadro Team \n" "Language-Team: Slovak \n" @@ -3875,7 +3875,9 @@ msgstr "" msgid "Dynamic bonding?" msgstr "" -#: qtplugins/playertool/playertool.cpp:139 +#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 +#. i18n: ectx: property (text), widget (QPushButton, recordButton) +#: qtplugins/playertool/playertool.cpp:139:1684 msgid "Record Movie…" msgstr "" @@ -4028,7 +4030,9 @@ msgstr "" msgid "Error while extracting: %1" msgstr "" -#: qtplugins/plugindownloader/plugindownloader.cpp:27 +#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) +#: qtplugins/plugindownloader/plugindownloader.cpp:27:1540 msgid "Download Plugins…" msgstr "" @@ -5041,6 +5045,10 @@ msgstr "" #. i18n: file: molequeue/inputgeneratorwidget.ui:116 #. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) msgid "Submit Calculation…" msgstr "" @@ -5371,7 +5379,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) -msgid "Help..." +msgid "Help…" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:115 @@ -5408,19 +5416,13 @@ msgstr "Obnoviť Všetko" msgid "Defaults" msgstr "Predvolené" -#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -msgid "Submit Calculation..." -msgstr "" - #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:59 #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:295 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Save File..." -msgstr "" +#, fuzzy +msgid "Save File…" +msgstr "Uložiť video súbor" #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:95 #. i18n: ectx: attribute (title), widget (QWidget, basicWidget) @@ -6509,7 +6511,7 @@ msgstr "Použite formulár" #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/openmminput/openmminputdialog.ui:1012 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Generate..." +msgid "Generate…" msgstr "" #. i18n: file: qtplugins/lineformatinput/lineformatinputdialog.ui:41 @@ -7137,11 +7139,6 @@ msgstr "" msgid "Max 2*theta:" msgstr "" -#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) -msgid "Download Plugins..." -msgstr "" - #. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:20 #. i18n: ectx: property (text), widget (QPushButton, downloadButton) msgid "Download Selected" @@ -7293,11 +7290,6 @@ msgstr "Stroncium" msgid "Calculate" msgstr "Vypočítať" -#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 -#. i18n: ectx: property (text), widget (QPushButton, recordButton) -msgid "Record Movie..." -msgstr "" - #. i18n: file: qtplugins/symmetry/symmetrywidget.ui:28 #. i18n: ectx: property (text), widget (QLabel, pointGroupLabel) msgid "C1" diff --git a/i18n/sl.po b/i18n/sl.po index 187058748d..47ff9d3c9e 100644 --- a/i18n/sl.po +++ b/i18n/sl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2016-06-10 06:51+0000\n" "Last-Translator: Matej Urbančič \n" "Language-Team: Slovenian \n" @@ -4019,7 +4019,9 @@ msgstr "" msgid "Dynamic bonding?" msgstr "Dinamične vezi" -#: qtplugins/playertool/playertool.cpp:139 +#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 +#. i18n: ectx: property (text), widget (QPushButton, recordButton) +#: qtplugins/playertool/playertool.cpp:139:1684 msgid "Record Movie…" msgstr "" @@ -4172,7 +4174,9 @@ msgstr "" msgid "Error while extracting: %1" msgstr "" -#: qtplugins/plugindownloader/plugindownloader.cpp:27 +#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) +#: qtplugins/plugindownloader/plugindownloader.cpp:27:1540 msgid "Download Plugins…" msgstr "" @@ -5237,6 +5241,10 @@ msgstr "" #. i18n: file: molequeue/inputgeneratorwidget.ui:116 #. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) #, fuzzy #| msgid "Calculation:" msgid "Submit Calculation…" @@ -5573,7 +5581,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) -msgid "Help..." +msgid "Help…" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:115 @@ -5610,19 +5618,13 @@ msgstr "Ponastavi vse" msgid "Defaults" msgstr "Privzeto" -#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -msgid "Submit Calculation..." -msgstr "" - #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:59 #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:295 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Save File..." -msgstr "" +#, fuzzy +msgid "Save File…" +msgstr "Shrani datoteko posnetka" #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:95 #. i18n: ectx: attribute (title), widget (QWidget, basicWidget) @@ -6707,7 +6709,7 @@ msgstr "Uporabi obrazec" #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/openmminput/openmminputdialog.ui:1012 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Generate..." +msgid "Generate…" msgstr "" #. i18n: file: qtplugins/lineformatinput/lineformatinputdialog.ui:41 @@ -7337,11 +7339,6 @@ msgstr "" msgid "Max 2*theta:" msgstr "" -#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) -msgid "Download Plugins..." -msgstr "" - #. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:20 #. i18n: ectx: property (text), widget (QPushButton, downloadButton) msgid "Download Selected" @@ -7499,11 +7496,6 @@ msgstr "stroncij" msgid "Calculate" msgstr "Izračunaj" -#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 -#. i18n: ectx: property (text), widget (QPushButton, recordButton) -msgid "Record Movie..." -msgstr "" - #. i18n: file: qtplugins/symmetry/symmetrywidget.ui:28 #. i18n: ectx: property (text), widget (QLabel, pointGroupLabel) msgid "C1" diff --git a/i18n/sq.po b/i18n/sq.po index 569ff7cb1b..7ccfc32be5 100644 --- a/i18n/sq.po +++ b/i18n/sq.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2021-06-16 17:34+0000\n" "Last-Translator: Dillon Schultz \n" "Language-Team: Albanian 1" diff --git a/i18n/sr.po b/i18n/sr.po index 45adb48b7e..6dc6369cb3 100644 --- a/i18n/sr.po +++ b/i18n/sr.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2021-08-20 01:04+0000\n" "Last-Translator: Nikola Matić \n" "Language-Team: Serbian 1" @@ -8218,6 +8213,21 @@ msgstr "" "\"miroslavnikolic@rocketmail.com\",\"ivanstar61@gmail.com\"," "\"nikolamatic225@gmail.com\"" +#~ msgid "Help..." +#~ msgstr "Pomoć..." + +#~ msgid "Submit Calculation..." +#~ msgstr "Predloži proračun ..." + +#~ msgid "Save File..." +#~ msgstr "Sačuvaj Datoteku..." + +#~ msgid "Download Plugins..." +#~ msgstr "Preuzmite dodatke ..." + +#~ msgid "Record Movie..." +#~ msgstr "Snimi film..." + #~ msgid "Other..." #~ msgstr "Drugo..." diff --git a/i18n/sv.po b/i18n/sv.po index 2297b99c02..16e96d06e4 100644 --- a/i18n/sv.po +++ b/i18n/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2016-06-10 06:44+0000\n" "Last-Translator: Dostojevskji \n" "Language-Team: Swedish \n" @@ -3791,7 +3791,9 @@ msgstr "" msgid "Dynamic bonding?" msgstr "" -#: qtplugins/playertool/playertool.cpp:139 +#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 +#. i18n: ectx: property (text), widget (QPushButton, recordButton) +#: qtplugins/playertool/playertool.cpp:139:1684 msgid "Record Movie…" msgstr "" @@ -3943,7 +3945,9 @@ msgstr "" msgid "Error while extracting: %1" msgstr "" -#: qtplugins/plugindownloader/plugindownloader.cpp:27 +#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) +#: qtplugins/plugindownloader/plugindownloader.cpp:27:1540 msgid "Download Plugins…" msgstr "" @@ -4925,6 +4929,10 @@ msgstr "" #. i18n: file: molequeue/inputgeneratorwidget.ui:116 #. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) msgid "Submit Calculation…" msgstr "" @@ -5253,7 +5261,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) -msgid "Help..." +msgid "Help…" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:115 @@ -5290,18 +5298,11 @@ msgstr "" msgid "Defaults" msgstr "" -#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -msgid "Submit Calculation..." -msgstr "" - #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:59 #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:295 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Save File..." +msgid "Save File…" msgstr "" #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:95 @@ -6377,7 +6378,7 @@ msgstr "" #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/openmminput/openmminputdialog.ui:1012 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Generate..." +msgid "Generate…" msgstr "" #. i18n: file: qtplugins/lineformatinput/lineformatinputdialog.ui:41 @@ -7006,11 +7007,6 @@ msgstr "" msgid "Max 2*theta:" msgstr "" -#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) -msgid "Download Plugins..." -msgstr "" - #. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:20 #. i18n: ectx: property (text), widget (QPushButton, downloadButton) msgid "Download Selected" @@ -7157,11 +7153,6 @@ msgstr "Strontium" msgid "Calculate" msgstr "" -#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 -#. i18n: ectx: property (text), widget (QPushButton, recordButton) -msgid "Record Movie..." -msgstr "" - #. i18n: file: qtplugins/symmetry/symmetrywidget.ui:28 #. i18n: ectx: property (text), widget (QLabel, pointGroupLabel) msgid "C1" diff --git a/i18n/ta.po b/i18n/ta.po index 34a52de3b4..43b328b499 100644 --- a/i18n/ta.po +++ b/i18n/ta.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Avogadro 1.90.0\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -3707,7 +3707,9 @@ msgstr "" msgid "Dynamic bonding?" msgstr "" -#: qtplugins/playertool/playertool.cpp:139 +#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 +#. i18n: ectx: property (text), widget (QPushButton, recordButton) +#: qtplugins/playertool/playertool.cpp:139:1684 msgid "Record Movie…" msgstr "" @@ -3859,7 +3861,9 @@ msgstr "" msgid "Error while extracting: %1" msgstr "" -#: qtplugins/plugindownloader/plugindownloader.cpp:27 +#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) +#: qtplugins/plugindownloader/plugindownloader.cpp:27:1540 msgid "Download Plugins…" msgstr "" @@ -4786,6 +4790,10 @@ msgstr "" #. i18n: file: molequeue/inputgeneratorwidget.ui:116 #. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) msgid "Submit Calculation…" msgstr "" @@ -5111,7 +5119,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) -msgid "Help..." +msgid "Help…" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:115 @@ -5148,18 +5156,11 @@ msgstr "" msgid "Defaults" msgstr "" -#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -msgid "Submit Calculation..." -msgstr "" - #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:59 #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:295 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Save File..." +msgid "Save File…" msgstr "" #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:95 @@ -6231,7 +6232,7 @@ msgstr "" #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/openmminput/openmminputdialog.ui:1012 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Generate..." +msgid "Generate…" msgstr "" #. i18n: file: qtplugins/lineformatinput/lineformatinputdialog.ui:41 @@ -6855,11 +6856,6 @@ msgstr "" msgid "Max 2*theta:" msgstr "" -#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) -msgid "Download Plugins..." -msgstr "" - #. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:20 #. i18n: ectx: property (text), widget (QPushButton, downloadButton) msgid "Download Selected" @@ -7004,11 +7000,6 @@ msgstr "" msgid "Calculate" msgstr "" -#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 -#. i18n: ectx: property (text), widget (QPushButton, recordButton) -msgid "Record Movie..." -msgstr "" - #. i18n: file: qtplugins/symmetry/symmetrywidget.ui:28 #. i18n: ectx: property (text), widget (QLabel, pointGroupLabel) msgid "C1" diff --git a/i18n/te.po b/i18n/te.po index ee66a9ada6..cb48dbeb3e 100644 --- a/i18n/te.po +++ b/i18n/te.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Avogadro 1.90.0\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-10-11 16:27+0000\n" "Last-Translator: Balavamsi Krishna \n" "Language-Team: Telugu 1" diff --git a/i18n/th.po b/i18n/th.po index b8a65b162d..6758bfd767 100644 --- a/i18n/th.po +++ b/i18n/th.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2016-06-10 06:42+0000\n" "Last-Translator: Rockworld \n" "Language-Team: Thai \n" @@ -3709,7 +3709,9 @@ msgstr "" msgid "Dynamic bonding?" msgstr "" -#: qtplugins/playertool/playertool.cpp:139 +#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 +#. i18n: ectx: property (text), widget (QPushButton, recordButton) +#: qtplugins/playertool/playertool.cpp:139:1684 msgid "Record Movie…" msgstr "" @@ -3861,7 +3863,9 @@ msgstr "" msgid "Error while extracting: %1" msgstr "" -#: qtplugins/plugindownloader/plugindownloader.cpp:27 +#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 +#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) +#: qtplugins/plugindownloader/plugindownloader.cpp:27:1540 msgid "Download Plugins…" msgstr "" @@ -4788,6 +4792,10 @@ msgstr "" #. i18n: file: molequeue/inputgeneratorwidget.ui:116 #. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) +#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 +#. i18n: ectx: property (text), widget (QPushButton, computeButton) msgid "Submit Calculation…" msgstr "" @@ -5113,7 +5121,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) -msgid "Help..." +msgid "Help…" msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:115 @@ -5150,18 +5158,11 @@ msgstr "" msgid "Defaults" msgstr "" -#. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:52 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -#. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:288 -#. i18n: ectx: property (text), widget (QPushButton, computeButton) -msgid "Submit Calculation..." -msgstr "" - #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:59 #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:295 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Save File..." +msgid "Save File…" msgstr "" #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:95 @@ -6233,7 +6234,7 @@ msgstr "" #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/openmminput/openmminputdialog.ui:1012 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -msgid "Generate..." +msgid "Generate…" msgstr "" #. i18n: file: qtplugins/lineformatinput/lineformatinputdialog.ui:41 @@ -6857,11 +6858,6 @@ msgstr "" msgid "Max 2*theta:" msgstr "" -#. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:14 -#. i18n: ectx: property (windowTitle), widget (QDialog, DownloaderWidget) -msgid "Download Plugins..." -msgstr "" - #. i18n: file: qtplugins/plugindownloader/downloaderwidget.ui:20 #. i18n: ectx: property (text), widget (QPushButton, downloadButton) msgid "Download Selected" @@ -7006,11 +7002,6 @@ msgstr "" msgid "Calculate" msgstr "" -#. i18n: file: qtplugins/surfaces/surfacedialog.ui:528 -#. i18n: ectx: property (text), widget (QPushButton, recordButton) -msgid "Record Movie..." -msgstr "" - #. i18n: file: qtplugins/symmetry/symmetrywidget.ui:28 #. i18n: ectx: property (text), widget (QLabel, pointGroupLabel) msgid "C1" diff --git a/i18n/tr.po b/i18n/tr.po index 24dfe62dd6..e5e415f034 100644 --- a/i18n/tr.po +++ b/i18n/tr.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-05-20 18:51+0000\n" "Last-Translator: Hıncal Gökhan BAKIR \n" "Language-Team: Turkish 1" @@ -7815,6 +7810,9 @@ msgstr "" "ciftci@linux.org.tr,,,,,kudretemre@hotmail.com,apshalasha@gmail.com,rainman." "neu@gmail.com,para4360@gmail.com,,ytopcu@gmail.com,,hhaydarakdag@gmail.com," +#~ msgid "Record Movie..." +#~ msgstr "Film Kaydet..." + #, fuzzy #~| msgid "Other…" #~ msgid "Other..." diff --git a/i18n/ug.po b/i18n/ug.po index 3b0bc41143..555c4aef31 100644 --- a/i18n/ug.po +++ b/i18n/ug.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2021-10-14 18:33+0000\n" "Last-Translator: ejatjon amar <3395087980@qq.com>\n" "Language-Team: Uyghur 1" diff --git a/i18n/uk.po b/i18n/uk.po index ebdce21a18..b84eeafce5 100644 --- a/i18n/uk.po +++ b/i18n/uk.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2022-07-05 23:51+0000\n" "Last-Translator: Artem \n" "Language-Team: Ukrainian 1" diff --git a/i18n/vi.po b/i18n/vi.po index 259c1dc353..7c680de043 100644 --- a/i18n/vi.po +++ b/i18n/vi.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2022-11-27 00:47+0000\n" "Last-Translator: Minh P \n" "Language-Team: Vietnamese 1" diff --git a/i18n/zh_CN.po b/i18n/zh_CN.po index e7119440d9..3e84ba550e 100644 --- a/i18n/zh_CN.po +++ b/i18n/zh_CN.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2023-02-16 16:36+0000\n" "Last-Translator: Shusong Zhang \n" "Language-Team: Chinese (Simplified) 1" @@ -7906,6 +7898,9 @@ msgstr "" "chaofeng111@gmail.com,,,,allen19920930@gmail.com,skyxxzc@gmail.com," "cuiweicui1985@gmail.com,,yjjart@gmail.com,sihanzheng@gmail.com" +#~ msgid "Submit Calculation..." +#~ msgstr "提交计算..." + #~ msgid "Other..." #~ msgstr "其它..." diff --git a/i18n/zh_TW.po b/i18n/zh_TW.po index 37beb6989f..4ae12d7cba 100644 --- a/i18n/zh_TW.po +++ b/i18n/zh_TW.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2023-11-19 14:57+0000\n" +"POT-Creation-Date: 2023-11-19 16:50+0000\n" "PO-Revision-Date: 2021-01-25 09:32+0000\n" "Last-Translator: crlambda \n" "Language-Team: Chinese (Traditional) 1" From a68636acd89f3e283ec49c644761e8a51d6e89c7 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Tue, 21 Nov 2023 13:43:18 -0500 Subject: [PATCH 17/56] Don't show PNG files in the filter dialog Signed-off-by: Geoff Hutchison --- avogadro/qtgui/sortfiltertreeproxymodel.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/avogadro/qtgui/sortfiltertreeproxymodel.cpp b/avogadro/qtgui/sortfiltertreeproxymodel.cpp index 7eb1a07572..54786153f5 100644 --- a/avogadro/qtgui/sortfiltertreeproxymodel.cpp +++ b/avogadro/qtgui/sortfiltertreeproxymodel.cpp @@ -23,6 +23,11 @@ bool SortFilterTreeProxyModel::filterAcceptsRow( return true; // true root, always accept } + QString data = sourceModel()->data(sourceIndex).toString(); + // ignore any image files + if (data.endsWith(".png")) + return false; + // Now we see if we're a child of the root // If not, we accept -- only filter under *our* tree // Along the way, we'll see if a parent matches the filter @@ -48,7 +53,6 @@ bool SortFilterTreeProxyModel::filterAcceptsRow( // else, sourceParent is a root, so we're good to filter // Check if the data for this row matches. If so, the default is to accept - QString data = sourceModel()->data(sourceIndex).toString(); if (data.contains(filterRegExp())) return true; From af234bf30d6e2714ce0908cb2a7a49db898a5d6b Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Fri, 24 Nov 2023 11:29:51 -0500 Subject: [PATCH 18/56] Add support for "message" return to pop up a dialog Signed-off-by: Geoff Hutchison --- avogadro/qtgui/interfacescript.cpp | 33 ++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/avogadro/qtgui/interfacescript.cpp b/avogadro/qtgui/interfacescript.cpp index 2e01d793ef..d5737cbe70 100644 --- a/avogadro/qtgui/interfacescript.cpp +++ b/avogadro/qtgui/interfacescript.cpp @@ -21,6 +21,8 @@ #include #include +#include + namespace Avogadro::QtGui { using QtGui::GenericHighlighter; @@ -271,6 +273,25 @@ bool InterfaceScript::processCommand(Core::Molecule* mol) } guiMol->emitChanged(Molecule::Atoms); } + + // check if there are messages for the user + if (obj.contains("message")) { + QString message; + + if (obj["message"].isString()) + message = obj["message"].toString(); + else if (obj["message"].isArray()) { + QJsonArray messageList = obj["message"].toArray(); + for (int i = 0; i < messageList.size(); ++i) { + if (messageList[i].isString()) + message += messageList[i].toString() + "\n"; + } + } + if (!message.isEmpty()) { + QMessageBox::information(qobject_cast(parent()), + tr("%1 Message").arg(m_displayName), message); + } + } } return result; } @@ -505,9 +526,11 @@ bool InterfaceScript::insertMolecule(QJsonObject& json, Io::FileFormatManager& formats = Io::FileFormatManager::instance(); QScopedPointer format( formats.newFormatFromFileExtension(m_moleculeExtension.toStdString())); - QScopedPointer cjsonFormat(formats.newFormatFromFileExtension("cjson")); + QScopedPointer cjsonFormat( + formats.newFormatFromFileExtension("cjson")); - // If we want something *other* than CJSON, check that we can supply that format + // If we want something *other* than CJSON, check that we can supply that + // format if (format.isNull()) { m_errors << tr("Error writing molecule representation to string: " "Unrecognized file format: %1") @@ -522,12 +545,14 @@ bool InterfaceScript::insertMolecule(QJsonObject& json, return false; } + // if we need a different format, insert it if (m_moleculeExtension != QLatin1String("cjson")) { json.insert(m_moleculeExtension, QJsonValue(QString::fromStdString(str))); } - // And we *always* write the CJSON representation - // Embed CJSON as actual JSON, rather than a string, so we have to parse it again + // We will *always* write the CJSON representation + // Embed CJSON as actual JSON, rather than a string, + // .. so we'll have to re-parse it cjsonFormat->writeString(str, mol); QJsonParseError error; QJsonDocument doc = QJsonDocument::fromJson(str.c_str(), &error); From 609884b3daca88d11dc367234e1c2614828eee77 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sat, 25 Nov 2023 09:52:23 -0500 Subject: [PATCH 19/56] Add support for saving partial charges Signed-off-by: Geoff Hutchison --- avogadro/io/cjsonformat.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/avogadro/io/cjsonformat.cpp b/avogadro/io/cjsonformat.cpp index aa73d5e6cb..fb578b55fc 100644 --- a/avogadro/io/cjsonformat.cpp +++ b/avogadro/io/cjsonformat.cpp @@ -915,6 +915,20 @@ bool CjsonFormat::serialize(std::ostream& file, const Molecule& molecule, if (hasCustomColors) root["atoms"]["colors"] = colors; + // check for partial charges + auto partialCharges = molecule.partialChargeTypes(); + if (!partialCharges.empty()) { + // add them to the atoms object + for (const auto& type : partialCharges) { + MatrixX chargesMatrix = molecule.partialCharges(type); + json charges; + for (Index i = 0; i < molecule.atomCount(); ++i) { + charges.push_back(chargesMatrix(i, 0)); + } + root["atoms"]["partialCharges"][type] = charges; + } + } + // 3d positions: if (molecule.atomPositions3d().size() == molecule.atomCount()) { // everything gets real-space Cartesians From e2980fa5867d6ef543e7a5720e478199bc5a97bc Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sat, 25 Nov 2023 11:42:34 -0500 Subject: [PATCH 20/56] Ensure partial charges are read and retained Signed-off-by: Geoff Hutchison --- avogadro/io/cjsonformat.cpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/avogadro/io/cjsonformat.cpp b/avogadro/io/cjsonformat.cpp index fb578b55fc..2d2363487b 100644 --- a/avogadro/io/cjsonformat.cpp +++ b/avogadro/io/cjsonformat.cpp @@ -214,21 +214,6 @@ bool CjsonFormat::deserialize(std::istream& file, Molecule& molecule, } } - // Partial charges are optional, but if present should be loaded. - json partialCharges = atoms["partialCharges"]; - if (partialCharges.is_object()) { - // keys are types, values are arrays of charges - for (auto& kv : partialCharges.items()) { - MatrixX charges(atomCount, 1); - if (isNumericArray(kv.value()) && kv.value().size() == atomCount) { - for (size_t i = 0; i < kv.value().size(); ++i) { - charges(i, 0) = kv.value()[i]; - } - molecule.setPartialCharges(kv.key(), charges); - } - } - } - // Bonds are optional, but if present should be loaded. json bonds = jsonRoot["bonds"]; if (bonds.is_object() && isNumericArray(bonds["connections"]["index"])) { @@ -609,6 +594,21 @@ bool CjsonFormat::deserialize(std::istream& file, Molecule& molecule, } } + // Partial charges are optional, but if present should be loaded. + json partialCharges = atoms["partialCharges"]; + if (partialCharges.is_object()) { + // keys are types, values are arrays of charges + for (auto& kv : partialCharges.items()) { + MatrixX charges(atomCount, 1); + if (isNumericArray(kv.value()) && kv.value().size() == atomCount) { + for (size_t i = 0; i < kv.value().size(); ++i) { + charges(i, 0) = kv.value()[i]; + } + molecule.setPartialCharges(kv.key(), charges); + } + } + } + if (jsonRoot.find("layer") != jsonRoot.end()) { auto names = LayerManager::getMoleculeInfo(&molecule); json visible = jsonRoot["layer"]["visible"]; From 36a38e41b287819c997a537b0fd7d55f4c387b33 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sat, 25 Nov 2023 12:22:51 -0500 Subject: [PATCH 21/56] Fix empty window showing up for commands without an option dialog Thanks to the forum for reporting Signed-off-by: Geoff Hutchison --- avogadro/qtgui/jsonwidget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/avogadro/qtgui/jsonwidget.cpp b/avogadro/qtgui/jsonwidget.cpp index 424c85444e..78abdb1303 100644 --- a/avogadro/qtgui/jsonwidget.cpp +++ b/avogadro/qtgui/jsonwidget.cpp @@ -32,7 +32,7 @@ namespace Avogadro::QtGui { JsonWidget::JsonWidget(QWidget* parent_) : QWidget(parent_), m_molecule(nullptr), m_currentLayout(nullptr), - m_centralWidget(nullptr) + m_centralWidget(nullptr), m_empty(true), m_batchMode(false) { } From dd3ef4e51d514aaf02954f4321dfc8a7f81368d6 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sat, 25 Nov 2023 20:16:32 -0500 Subject: [PATCH 22/56] Fix commands - rotate uses degrees, so no need to pre-convert Needs fix from avogadroapp as well Signed-off-by: Geoff Hutchison --- avogadro/qtplugins/navigator/navigator.cpp | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/avogadro/qtplugins/navigator/navigator.cpp b/avogadro/qtplugins/navigator/navigator.cpp index cd55a466c5..331aaf2a86 100644 --- a/avogadro/qtplugins/navigator/navigator.cpp +++ b/avogadro/qtplugins/navigator/navigator.cpp @@ -59,35 +59,31 @@ void Navigator::registerCommands() bool Navigator::handleCommand(const QString& command, const QVariantMap& options) { - qDebug() << "Navigator::handleCommand: " << command; - qDebug() << (m_renderer == nullptr); - qDebug() << (m_glWidget == nullptr); - qDebug() << (m_molecule == nullptr); - if (m_renderer == nullptr) return false; // No camera if (command == "rotateScene") { - float x = options.value("x").toFloat() * DEG_TO_RAD; - float y = options.value("y").toFloat() * DEG_TO_RAD; - float z = options.value("z").toFloat() * DEG_TO_RAD; + float x = options.value("x").toFloat(); + float y = options.value("y").toFloat(); + float z = options.value("z").toFloat(); rotate(m_renderer->camera().focus(), x, y, z); + m_glWidget->requestUpdate(); - qDebug() << "rotateScene: " << x << y << z; - return true; } else if (command == "zoomScene") { float d = options.value("delta").toFloat(); zoom(m_renderer->camera().focus(), d); m_glWidget->requestUpdate(); - return true; } else if (command == "translateScene") { float x = options.value("x").toFloat(); float y = options.value("y").toFloat(); translate(m_renderer->camera().focus(), x, y); m_glWidget->requestUpdate(); - return true; + } else { + qDebug() << "Unknown command: " << command; + return false; } - return false; + + return true; } Navigator::~Navigator() {} From a96a1acfdf4dbed4fb81cc682734f25e22225494 Mon Sep 17 00:00:00 2001 From: gallegonovato Date: Sun, 19 Nov 2023 17:11:52 +0000 Subject: [PATCH 23/56] Translated using Weblate (Spanish) Currently translated at 100.0% (1469 of 1469 strings) Translation: Avogadro/avogadrolibs Translate-URL: https://hosted.weblate.org/projects/avogadro/avogadrolibs/es/ --- i18n/es.po | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/i18n/es.po b/i18n/es.po index 18fb0db457..5a062b1c31 100644 --- a/i18n/es.po +++ b/i18n/es.po @@ -14,7 +14,7 @@ msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2023-11-19 16:50+0000\n" -"PO-Revision-Date: 2023-11-19 16:57+0000\n" +"PO-Revision-Date: 2023-11-20 18:03+0000\n" "Last-Translator: gallegonovato \n" "Language-Team: Spanish \n" @@ -5387,7 +5387,7 @@ msgstr "" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:78 #. i18n: ectx: property (text), widget (QToolButton, help) msgid "Help…" -msgstr "" +msgstr "Auxilio…" #. i18n: file: qtplugins/coordinateeditor/coordinateeditordialog.ui:115 #. i18n: ectx: property (text), widget (QToolButton, paste) @@ -5427,10 +5427,8 @@ msgstr "Predeterminados" #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/gamessinput/gamessinputdialog.ui:295 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -#, fuzzy -#| msgid "Save File" msgid "Save File…" -msgstr "Guardar Archivo" +msgstr "Guardar el archivo…" #. i18n: file: qtplugins/cp2kinput/cp2kinputdialog.ui:95 #. i18n: ectx: attribute (title), widget (QWidget, basicWidget) @@ -6533,8 +6531,6 @@ msgstr "Utilizar Formulario" #. i18n: ectx: property (text), widget (QPushButton, generateButton) #. i18n: file: qtplugins/openmminput/openmminputdialog.ui:1012 #. i18n: ectx: property (text), widget (QPushButton, generateButton) -#, fuzzy -#| msgid "Generate..." msgid "Generate…" msgstr "Generar…" From ad7fd3f8c588edf3d00961daf81861712fea578e Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sat, 25 Nov 2023 22:32:28 -0500 Subject: [PATCH 24/56] [skip-ci] Fix linear template Fix #1469 - 1-lin.cjson wasn't valid JSON Signed-off-by: Geoff Hutchison --- .../templatetool/centers/1-lin.cjson | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/avogadro/qtplugins/templatetool/centers/1-lin.cjson b/avogadro/qtplugins/templatetool/centers/1-lin.cjson index b9e8304677..b83addc66f 100644 --- a/avogadro/qtplugins/templatetool/centers/1-lin.cjson +++ b/avogadro/qtplugins/templatetool/centers/1-lin.cjson @@ -1,21 +1,22 @@ { + "chemicalJson": 1, "atoms": { "coords": { "3d": [ - -2.3474931716918945, - 0.4155503213405609, - -3.9696692510915454e-07, - -2.2536088043600566, - 1.283863887971495, - -1.2275600077714488 + -0.21242, + 0.76221, + 0.0, + 1.78758, + 0.76221, + 0.0 ] }, "elements": { "number": [ - 77, + 26, 1 ] - }, + } }, "bonds": { "connections": { @@ -27,6 +28,5 @@ "order": [ 1 ] - }, - "chemicalJson": 1 + } } From 01a141338e5c98ef29cb7710f182eeb6a102a00c Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sun, 26 Nov 2023 22:18:39 -0500 Subject: [PATCH 25/56] Add readProperties method for copying basis, etc. but not atoms Signed-off-by: Geoff Hutchison --- avogadro/core/molecule.cpp | 34 ++++++++++++++++++++++++++++++++++ avogadro/core/molecule.h | 7 +++++++ 2 files changed, 41 insertions(+) diff --git a/avogadro/core/molecule.cpp b/avogadro/core/molecule.cpp index 3b0484cb87..01541ac0cc 100644 --- a/avogadro/core/molecule.cpp +++ b/avogadro/core/molecule.cpp @@ -9,6 +9,7 @@ #include "color3f.h" #include "cube.h" #include "elements.h" +#include "gaussianset.h" #include "layermanager.h" #include "mdlvalence_p.h" #include "mesh.h" @@ -74,6 +75,39 @@ Molecule::Molecule(const Molecule& other) } } +void Molecule::readProperties(const Molecule& other) +{ + m_data = other.m_data; + m_partialCharges = other.m_partialCharges; + m_label = other.m_label; + m_colors = other.m_colors; + + // copy orbital information + GaussianSet *gaussianSet = dynamic_cast(other.m_basisSet); + if (gaussianSet) { + m_basisSet = gaussianSet->clone(); + m_basisSet->setMolecule(this); + } + + // copy spectra information + m_vibrationFrequencies = other.m_vibrationFrequencies; + m_vibrationIRIntensities = other.m_vibrationIRIntensities; + m_vibrationRamanIntensities = other.m_vibrationRamanIntensities; + m_vibrationLx = other.m_vibrationLx; + + // Copy over any meshes + for (Index i = 0; i < other.meshCount(); ++i) { + Mesh* m = addMesh(); + *m = *other.mesh(i); + } + + // Copy over any cubes + for (Index i = 0; i < other.cubeCount(); ++i) { + Cube* c = addCube(); + *c = *other.cube(i); + } +} + Molecule::Molecule(Molecule&& other) noexcept : m_data(other.m_data), m_partialCharges(std::move(other.m_partialCharges)), m_customElementMap(std::move(other.m_customElementMap)), diff --git a/avogadro/core/molecule.h b/avogadro/core/molecule.h index b4c61297d3..91797875b4 100644 --- a/avogadro/core/molecule.h +++ b/avogadro/core/molecule.h @@ -73,6 +73,13 @@ class AVOGADROCORE_EXPORT Molecule /** Destroys the molecule object. */ virtual ~Molecule(); + /** + * Adds the properties from the supplied + * molecule to this molecule. Does not otherwise + * modify atoms / bonds / residues, etc. + */ + void readProperties(const Molecule& other); + /** Sets the data value with @p name to @p value. */ void setData(const std::string& name, const Variant& value); From baafcc35998bd0dc7318810731381e6b7d7104ee Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sun, 26 Nov 2023 22:19:13 -0500 Subject: [PATCH 26/56] Use readProperties from scripts Doesn't completely work, since extensions need to know Signed-off-by: Geoff Hutchison --- avogadro/qtgui/interfacescript.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/avogadro/qtgui/interfacescript.cpp b/avogadro/qtgui/interfacescript.cpp index d5737cbe70..c6163186aa 100644 --- a/avogadro/qtgui/interfacescript.cpp +++ b/avogadro/qtgui/interfacescript.cpp @@ -252,8 +252,12 @@ bool InterfaceScript::processCommand(Core::Molecule* mol) newMol.perceiveBondOrders(); } - // just append some new bits - if (obj["append"].toBool()) { + // how do we handle this result? + if (obj["readProperties"].toBool()) { + qDebug() << " reading properties"; + guiMol->readProperties(newMol); + guiMol->emitChanged(Molecule::Atoms); + } else if (obj["append"].toBool()) { guiMol->undoMolecule()->appendMolecule(newMol, m_displayName); } else { // replace the whole molecule Molecule::MoleculeChanges changes = (Molecule::Atoms | Molecule::Bonds | From 88d885a3f0e31a9d5a2e6cbf4cd6cc4d5a4c48dc Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sun, 26 Nov 2023 22:44:48 -0500 Subject: [PATCH 27/56] Fix formatting Signed-off-by: Geoff Hutchison --- avogadro/core/molecule.cpp | 33 ++++++++++++++++----------------- avogadro/core/molecule.h | 8 ++++---- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/avogadro/core/molecule.cpp b/avogadro/core/molecule.cpp index 01541ac0cc..da5597d09e 100644 --- a/avogadro/core/molecule.cpp +++ b/avogadro/core/molecule.cpp @@ -83,7 +83,7 @@ void Molecule::readProperties(const Molecule& other) m_colors = other.m_colors; // copy orbital information - GaussianSet *gaussianSet = dynamic_cast(other.m_basisSet); + GaussianSet* gaussianSet = dynamic_cast(other.m_basisSet); if (gaussianSet) { m_basisSet = gaussianSet->clone(); m_basisSet->setMolecule(this); @@ -311,20 +311,20 @@ void Molecule::setFrozenAtom(Index atomId, bool frozen) return; // check if we need to resize - unsigned int size = m_frozenAtomMask.rows(); - if (m_frozenAtomMask.rows() != 3*m_atomicNumbers.size()) - m_frozenAtomMask.conservativeResize(3*m_atomicNumbers.size()); + unsigned int size = m_frozenAtomMask.rows(); + if (m_frozenAtomMask.rows() != 3 * m_atomicNumbers.size()) + m_frozenAtomMask.conservativeResize(3 * m_atomicNumbers.size()); // do we need to initialize new values? if (m_frozenAtomMask.rows() > size) for (unsigned int i = size; i < m_frozenAtomMask.rows(); ++i) m_frozenAtomMask[i] = 1.0; - + float value = frozen ? 0.0 : 1.0; if (atomId * 3 <= m_frozenAtomMask.rows() - 3) { - m_frozenAtomMask[atomId*3] = value; - m_frozenAtomMask[atomId*3+1] = value; - m_frozenAtomMask[atomId*3+2] = value; + m_frozenAtomMask[atomId * 3] = value; + m_frozenAtomMask[atomId * 3 + 1] = value; + m_frozenAtomMask[atomId * 3 + 2] = value; } } @@ -332,9 +332,9 @@ bool Molecule::frozenAtom(Index atomId) const { bool frozen = false; if (atomId * 3 <= m_frozenAtomMask.rows() - 3) { - frozen = (m_frozenAtomMask[atomId*3] == 0.0 && - m_frozenAtomMask[atomId*3+1] == 0.0 && - m_frozenAtomMask[atomId*3+2] == 0.0); + frozen = (m_frozenAtomMask[atomId * 3] == 0.0 && + m_frozenAtomMask[atomId * 3 + 1] == 0.0 && + m_frozenAtomMask[atomId * 3 + 2] == 0.0); } return frozen; } @@ -342,22 +342,21 @@ bool Molecule::frozenAtom(Index atomId) const void Molecule::setFrozenAtomAxis(Index atomId, int axis, bool frozen) { // check if we need to resize - unsigned int size = m_frozenAtomMask.rows(); - if (m_frozenAtomMask.rows() != 3*m_atomicNumbers.size()) - m_frozenAtomMask.conservativeResize(3*m_atomicNumbers.size()); + unsigned int size = m_frozenAtomMask.rows(); + if (m_frozenAtomMask.rows() != 3 * m_atomicNumbers.size()) + m_frozenAtomMask.conservativeResize(3 * m_atomicNumbers.size()); // do we need to initialize new values? if (m_frozenAtomMask.rows() > size) for (unsigned int i = size; i < m_frozenAtomMask.rows(); ++i) m_frozenAtomMask[i] = 1.0; - + float value = frozen ? 0.0 : 1.0; if (atomId * 3 <= m_frozenAtomMask.rows() - 3) { - m_frozenAtomMask[atomId*3 + axis] = value; + m_frozenAtomMask[atomId * 3 + axis] = value; } } - void Molecule::setData(const std::string& name, const Variant& value) { m_data.setValue(name, value); diff --git a/avogadro/core/molecule.h b/avogadro/core/molecule.h index 91797875b4..a242be6ed7 100644 --- a/avogadro/core/molecule.h +++ b/avogadro/core/molecule.h @@ -73,7 +73,7 @@ class AVOGADROCORE_EXPORT Molecule /** Destroys the molecule object. */ virtual ~Molecule(); - /** + /** * Adds the properties from the supplied * molecule to this molecule. Does not otherwise * modify atoms / bonds / residues, etc. @@ -702,12 +702,12 @@ class AVOGADROCORE_EXPORT Molecule /** * Freeze or unfreeze an atom for optimization - */ + */ void setFrozenAtom(Index atomId, bool frozen); /** * Get the frozen status of an atom - */ + */ bool frozenAtom(Index atomId) const; /** @@ -715,7 +715,7 @@ class AVOGADROCORE_EXPORT Molecule * @param atomId The index of the atom to modify. * @param axis The axis to freeze (0, 1, or 2 for X, Y, or Z) * @param frozen True to freeze, false to unfreeze - */ + */ void setFrozenAtomAxis(Index atomId, int axis, bool frozen); Eigen::VectorXd frozenAtomMask() const { return m_frozenAtomMask; } From 323086e566f3dfadd2ff59aa7b537341218508c2 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sun, 26 Nov 2023 22:45:03 -0500 Subject: [PATCH 28/56] Add property change flags and use them Signed-off-by: Geoff Hutchison --- avogadro/qtgui/interfacescript.cpp | 3 +-- avogadro/qtgui/molecule.h | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/avogadro/qtgui/interfacescript.cpp b/avogadro/qtgui/interfacescript.cpp index c6163186aa..88195882fd 100644 --- a/avogadro/qtgui/interfacescript.cpp +++ b/avogadro/qtgui/interfacescript.cpp @@ -254,9 +254,8 @@ bool InterfaceScript::processCommand(Core::Molecule* mol) // how do we handle this result? if (obj["readProperties"].toBool()) { - qDebug() << " reading properties"; guiMol->readProperties(newMol); - guiMol->emitChanged(Molecule::Atoms); + guiMol->emitChanged(Molecule::Properties | Molecule::Added); } else if (obj["append"].toBool()) { guiMol->undoMolecule()->appendMolecule(newMol, m_displayName); } else { // replace the whole molecule diff --git a/avogadro/qtgui/molecule.h b/avogadro/qtgui/molecule.h index 9eb86ff981..816e77c538 100644 --- a/avogadro/qtgui/molecule.h +++ b/avogadro/qtgui/molecule.h @@ -73,6 +73,7 @@ class AVOGADROQTGUI_EXPORT Molecule : public QObject, public Core::Molecule UnitCell = 0x04, Selection = 0x08, Layers = 0x16, + Properties = 0x32, /** Operations that can affect the above types. */ Added = 0x1024, Removed = 0x2048, @@ -93,7 +94,8 @@ class AVOGADROQTGUI_EXPORT Molecule : public QObject, public Core::Molecule */ virtual AtomType addAtom(unsigned char atomicNumber, Index uniqueId); - AtomType addAtom(unsigned char number, Vector3 position3d, Index uniqueId = MaxIndex); + AtomType addAtom(unsigned char number, Vector3 position3d, + Index uniqueId = MaxIndex); /** * @brief Remove the specified atom from the molecule. From 55628fb746e570f6f94914639e01ad3c4359db05 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sun, 26 Nov 2023 22:45:25 -0500 Subject: [PATCH 29/56] Connect to molecule changes (e.g., in basis sets) Signed-off-by: Geoff Hutchison --- avogadro/qtplugins/surfaces/surfaces.cpp | 16 ++++++++++++++++ avogadro/qtplugins/surfaces/surfaces.h | 1 + 2 files changed, 17 insertions(+) diff --git a/avogadro/qtplugins/surfaces/surfaces.cpp b/avogadro/qtplugins/surfaces/surfaces.cpp index 3aed3eaef7..375af870b8 100644 --- a/avogadro/qtplugins/surfaces/surfaces.cpp +++ b/avogadro/qtplugins/surfaces/surfaces.cpp @@ -224,6 +224,10 @@ bool Surfaces::handleCommand(const QString& command, const QVariantMap& options) void Surfaces::setMolecule(QtGui::Molecule* mol) { + if (m_molecule != nullptr) { + m_molecule->disconnect(this); + } + if (mol->basisSet()) { m_basis = mol->basisSet(); } else if (mol->cubes().size() != 0) { @@ -234,6 +238,18 @@ void Surfaces::setMolecule(QtGui::Molecule* mol) m_mesh1 = nullptr; m_mesh2 = nullptr; m_molecule = mol; + + if (m_molecule != nullptr) { + connect(m_molecule, SIGNAL(changed(uint)), SLOT(moleculeChanged(uint))); + } +} + +void Surfaces::moleculeChanged(unsigned int changes) +{ + if (changes & Molecule::Added || changes & Molecule::Removed) { + m_cubes = m_molecule->cubes(); + m_basis = m_molecule->basisSet(); + } } QList Surfaces::actions() const diff --git a/avogadro/qtplugins/surfaces/surfaces.h b/avogadro/qtplugins/surfaces/surfaces.h index d25df78c11..ee476ca3da 100644 --- a/avogadro/qtplugins/surfaces/surfaces.h +++ b/avogadro/qtplugins/surfaces/surfaces.h @@ -85,6 +85,7 @@ class Surfaces : public QtGui::ExtensionPlugin public slots: bool handleCommand(const QString& command, const QVariantMap& options) override; + void moleculeChanged(unsigned int changes); private slots: void surfacesActivated(); From aa356fc5c362870a24b78834e1471919e1dec859 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sun, 26 Nov 2023 23:54:21 -0500 Subject: [PATCH 30/56] Write to a temporary file if no filename is available Solves problems reading "g98" from XTB scripts Signed-off-by: Geoff Hutchison --- avogadro/qtplugins/openbabel/obfileformat.cpp | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/avogadro/qtplugins/openbabel/obfileformat.cpp b/avogadro/qtplugins/openbabel/obfileformat.cpp index d0e6410340..5f6a582f5c 100644 --- a/avogadro/qtplugins/openbabel/obfileformat.cpp +++ b/avogadro/qtplugins/openbabel/obfileformat.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include using json = nlohmann::json; @@ -73,7 +74,8 @@ OBFileFormat::OBFileFormat(const std::string& name_, m_identifier(identifier_), m_name(name_), m_specificationUrl(specificationUrl_), m_defaultFormat(defaultFormat_), m_fileOnly(fileOnly_) -{} +{ +} OBFileFormat::~OBFileFormat() {} @@ -122,7 +124,6 @@ bool OBFileFormat::read(std::istream& in, Core::Molecule& molecule) // default is CML or CJSON QString format = QString::fromStdString(opts.value("format", m_defaultFormat)); - qDebug() << "Reading to format: " << format << m_defaultFormat.c_str(); if (!m_fileOnly) { // Determine length of data @@ -149,6 +150,26 @@ bool OBFileFormat::read(std::istream& in, Core::Molecule& molecule) } else { // Can only read files. Need absolute path. QString filename = QString::fromStdString(fileName()); + if (filename.isEmpty()) { + // no choice but to write to a temporary file + in.seekg(0, std::ios_base::end); + std::istream::pos_type length = in.tellg(); + in.seekg(0, std::ios_base::beg); + in.clear(); + + // Extract data, hope it's not big + QByteArray input; + input.resize(static_cast(length)); + in.read(input.data(), length); + + QTemporaryFile tmpFile; + tmpFile.setAutoRemove(false); + tmpFile.open(); + tmpFile.write(input.data()); + tmpFile.close(); + filename = tmpFile.fileName(); + } + if (!QFileInfo(filename).isAbsolute()) { appendError("Internal error -- filename must be absolute! " + filename.toStdString()); @@ -281,6 +302,6 @@ Io::FileFormat* OBFileFormat::newInstance() const m_defaultFormat, m_fileOnly); } -} // namespace Avogadro +} // namespace Avogadro::QtPlugins #include "obfileformat.moc" From a7248796650ed908a7e048d9fb5ef85999a3148b Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sun, 26 Nov 2023 23:55:01 -0500 Subject: [PATCH 31/56] Connect to the molecule changes that affect vibrations Probably should have been doing this anyway (e.g., edits) Signed-off-by: Geoff Hutchison --- avogadro/qtplugins/spectra/spectra.cpp | 22 ++++++++++++++++++++++ avogadro/qtplugins/spectra/spectra.h | 1 + 2 files changed, 23 insertions(+) diff --git a/avogadro/qtplugins/spectra/spectra.cpp b/avogadro/qtplugins/spectra/spectra.cpp index d893d4e0be..d3e1341a7d 100644 --- a/avogadro/qtplugins/spectra/spectra.cpp +++ b/avogadro/qtplugins/spectra/spectra.cpp @@ -45,6 +45,9 @@ QStringList Spectra::menuPath(QAction*) const void Spectra::setMolecule(QtGui::Molecule* mol) { + if (m_molecule != nullptr) + m_molecule->disconnect(this); + bool isVibrational(false); if (mol->vibrationFrequencies().size()) isVibrational = true; @@ -56,6 +59,25 @@ void Spectra::setMolecule(QtGui::Molecule* mol) if (isVibrational) openDialog(); + + connect(m_molecule, SIGNAL(changed(unsigned int)), + SLOT(moleculeChanged(unsigned int))); +} + +void Spectra::moleculeChanged(unsigned int changes) +{ + if (m_molecule == nullptr) + return; + + bool currentVibrational = m_actions[0]->isEnabled(); + bool isVibrational = (m_molecule->vibrationFrequencies().size() > 0); + if (currentVibrational != isVibrational) { + m_actions[0]->setEnabled(isVibrational); + if (m_dialog) + m_dialog->setMolecule(m_molecule); // update the dialog + if (isVibrational) + openDialog(); + } } void Spectra::registerCommands() diff --git a/avogadro/qtplugins/spectra/spectra.h b/avogadro/qtplugins/spectra/spectra.h index 588210a66a..e3c2a42b6f 100644 --- a/avogadro/qtplugins/spectra/spectra.h +++ b/avogadro/qtplugins/spectra/spectra.h @@ -53,6 +53,7 @@ public slots: void startVibrationAnimation(); void stopVibrationAnimation(); void openDialog(); + void moleculeChanged(unsigned int changes); private slots: void advanceFrame(); From b01f90581a10d39e9c274938989326d225ad595f Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Mon, 27 Nov 2023 09:51:18 -0500 Subject: [PATCH 32/56] Make sure to merge properties, not override If the new molecule doesn't have orbitals or vibrations .. don't ignore our current data Signed-off-by: Geoff Hutchison --- avogadro/core/molecule.cpp | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/avogadro/core/molecule.cpp b/avogadro/core/molecule.cpp index da5597d09e..c5db08ae19 100644 --- a/avogadro/core/molecule.cpp +++ b/avogadro/core/molecule.cpp @@ -15,6 +15,7 @@ #include "mesh.h" #include "neighborperceiver.h" #include "residue.h" +#include "slaterset.h" #include "unitcell.h" #include @@ -77,23 +78,38 @@ Molecule::Molecule(const Molecule& other) void Molecule::readProperties(const Molecule& other) { - m_data = other.m_data; - m_partialCharges = other.m_partialCharges; m_label = other.m_label; m_colors = other.m_colors; + // merge data maps by iterating through other's map + for (auto it = other.m_data.begin(); it != other.m_data.end(); ++it) { + // even if we have the same key, we want to overwrite + m_data.setValue(it.key(), it.value()); + } + // merge partial charge maps + for (auto it = other.m_partialCharges.begin(); + it != other.m_partialCharges.end(); ++it) { + m_partialCharges[it.key()] = it.value(); + } // copy orbital information + SlaterSet* slaterSet = dynamic_cast(other.m_basisSet); + if (slaterSet != nullptr) { + m_basisSet = slaterSet->clone(); + m_basisSet->setMolecule(this); + } GaussianSet* gaussianSet = dynamic_cast(other.m_basisSet); - if (gaussianSet) { + if (gaussianSet != nullptr) { m_basisSet = gaussianSet->clone(); m_basisSet->setMolecule(this); } - // copy spectra information - m_vibrationFrequencies = other.m_vibrationFrequencies; - m_vibrationIRIntensities = other.m_vibrationIRIntensities; - m_vibrationRamanIntensities = other.m_vibrationRamanIntensities; - m_vibrationLx = other.m_vibrationLx; + // copy over spectra information + if (other.m_vibrationFrequencies.size() > 0) { + m_vibrationFrequencies = other.m_vibrationFrequencies; + m_vibrationIRIntensities = other.m_vibrationIRIntensities; + m_vibrationRamanIntensities = other.m_vibrationRamanIntensities; + m_vibrationLx = other.m_vibrationLx; + } // Copy over any meshes for (Index i = 0; i < other.meshCount(); ++i) { From 360dcee38edd2c54d82b71180bf7b6f595e194f3 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Mon, 27 Nov 2023 10:02:30 -0500 Subject: [PATCH 33/56] Fix compile error Signed-off-by: Geoff Hutchison --- avogadro/core/molecule.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/avogadro/core/molecule.cpp b/avogadro/core/molecule.cpp index c5db08ae19..e064e8ca44 100644 --- a/avogadro/core/molecule.cpp +++ b/avogadro/core/molecule.cpp @@ -81,14 +81,14 @@ void Molecule::readProperties(const Molecule& other) m_label = other.m_label; m_colors = other.m_colors; // merge data maps by iterating through other's map - for (auto it = other.m_data.begin(); it != other.m_data.end(); ++it) { + for (auto it = other.m_data.constBegin(); it != other.m_data.constEnd(); ++it) { // even if we have the same key, we want to overwrite - m_data.setValue(it.key(), it.value()); + m_data.setValue(it->first, it->second); } // merge partial charge maps - for (auto it = other.m_partialCharges.begin(); - it != other.m_partialCharges.end(); ++it) { - m_partialCharges[it.key()] = it.value(); + for (auto it = other.m_partialCharges.cbegin(); + it != other.m_partialCharges.cend(); ++it) { + m_partialCharges[it->first] = it->second; } // copy orbital information From d7a5d31b5b4d836f45168f80d681dd5a06de1cdc Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Tue, 28 Nov 2023 12:44:24 -0500 Subject: [PATCH 34/56] Generate the density matrix if needed for the electron density surface Fix #1480 and the bug report on the forum: https://discuss.avogadro.cc/t/visualize-electron-density-from-orca-molden-file/3750 Signed-off-by: Geoff Hutchison --- avogadro/core/gaussiansettools.cpp | 9 ++++++++- .../qtplugins/surfaces/gaussiansetconcurrent.cpp | 12 +++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/avogadro/core/gaussiansettools.cpp b/avogadro/core/gaussiansettools.cpp index 72382090f5..b15b8df117 100644 --- a/avogadro/core/gaussiansettools.cpp +++ b/avogadro/core/gaussiansettools.cpp @@ -55,7 +55,13 @@ double GaussianSetTools::calculateMolecularOrbital(const Vector3& position, } bool GaussianSetTools::calculateElectronDensity(Cube& cube) const -{ +{ + const MatrixX& matrix = m_basis->densityMatrix(); + if (matrix.rows() == 0 || matrix.cols() == 0) { + // we don't have a density matrix, so generate one + m_basis->generateDensityMatrix(); + } + for (size_t i = 0; i < cube.data()->size(); ++i) { Vector3 pos = cube.position(i); cube.setValue(i, calculateElectronDensity(pos)); @@ -67,6 +73,7 @@ double GaussianSetTools::calculateElectronDensity(const Vector3& position) const { const MatrixX& matrix = m_basis->densityMatrix(); int matrixSize(static_cast(m_basis->moMatrix().rows())); + if (matrix.rows() != matrixSize || matrix.cols() != matrixSize) { return 0.0; } diff --git a/avogadro/qtplugins/surfaces/gaussiansetconcurrent.cpp b/avogadro/qtplugins/surfaces/gaussiansetconcurrent.cpp index 7c3771fee1..099fc7dacd 100644 --- a/avogadro/qtplugins/surfaces/gaussiansetconcurrent.cpp +++ b/avogadro/qtplugins/surfaces/gaussiansetconcurrent.cpp @@ -56,8 +56,8 @@ void GaussianSetConcurrent::setMolecule(Core::Molecule* mol) if (!mol) return; m_set = dynamic_cast(mol->basisSet()); - - delete m_tools; + + delete m_tools; m_tools = new GaussianSetTools(mol); } @@ -76,6 +76,12 @@ bool GaussianSetConcurrent::calculateMolecularOrbital(Core::Cube* cube, bool GaussianSetConcurrent::calculateElectronDensity(Core::Cube* cube) { + const MatrixX& matrix = m_set->densityMatrix(); + if (matrix.rows() == 0 || matrix.cols() == 0) { + // we don't have a density matrix, so calculate one + m_set->generateDensityMatrix(); + } + return setUpCalculation(cube, 0, GaussianSetConcurrent::processDensity); } @@ -141,4 +147,4 @@ void GaussianSetConcurrent::processSpinDensity(GaussianShell& shell) Vector3 pos = shell.tCube->position(shell.pos); shell.tCube->setValue(shell.pos, shell.tools->calculateSpinDensity(pos)); } -} +} // namespace Avogadro::QtPlugins From 2a8b6d4d69ff26eb0a4fe64a4761ab6693b14a1f Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Tue, 28 Nov 2023 13:31:31 -0500 Subject: [PATCH 35/56] Fix formatting Signed-off-by: Geoff Hutchison --- avogadro/core/gaussiansettools.cpp | 30 +++++++++--------------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/avogadro/core/gaussiansettools.cpp b/avogadro/core/gaussiansettools.cpp index b15b8df117..140032f980 100644 --- a/avogadro/core/gaussiansettools.cpp +++ b/avogadro/core/gaussiansettools.cpp @@ -11,7 +11,6 @@ #include - using std::vector; namespace Avogadro::Core { @@ -22,9 +21,7 @@ GaussianSetTools::GaussianSetTools(Molecule* mol) : m_molecule(mol) m_basis = dynamic_cast(m_molecule->basisSet()); } -GaussianSetTools::~GaussianSetTools() -{ -} +GaussianSetTools::~GaussianSetTools() {} bool GaussianSetTools::calculateMolecularOrbital(Cube& cube, int moNumber) const { @@ -55,7 +52,7 @@ double GaussianSetTools::calculateMolecularOrbital(const Vector3& position, } bool GaussianSetTools::calculateElectronDensity(Cube& cube) const -{ +{ const MatrixX& matrix = m_basis->densityMatrix(); if (matrix.rows() == 0 || matrix.cols() == 0) { // we don't have a density matrix, so generate one @@ -160,7 +157,7 @@ inline vector GaussianSetTools::calculateValues( // Calculate the deltas for the position for (Index i = 0; i < atomsSize; ++i) { deltas.emplace_back(pos - - (m_molecule->atom(i).position3d() * ANGSTROM_TO_BOHR)); + (m_molecule->atom(i).position3d() * ANGSTROM_TO_BOHR)); dr2.push_back(deltas[i].squaredNorm()); } @@ -253,7 +250,7 @@ inline void GaussianSetTools::pointD(unsigned int moIndex, const Vector3& delta, i < m_basis->gtoIndices()[moIndex + 1]; ++i) { // Calculate the common factor double tmpGTO = exp(-gtoA[i] * dr2); - for (double & component : components) + for (double& component : components) component += gtoCN[cIndex++] * tmpGTO; } @@ -286,7 +283,7 @@ inline void GaussianSetTools::pointD5(unsigned int moIndex, i < m_basis->gtoIndices()[moIndex + 1]; ++i) { // Calculate the common factor double tmpGTO = exp(-gtoA[i] * dr2); - for (double & component : components) + for (double& component : components) component += gtoCN[cIndex++] * tmpGTO; } @@ -325,7 +322,7 @@ inline void GaussianSetTools::pointF(unsigned int moIndex, const Vector3& delta, i < m_basis->gtoIndices()[moIndex + 1]; ++i) { // Calculate the common factor double tmpGTO = exp(-gtoA[i] * dr2); - for (double & component : components) + for (double& component : components) component += gtoCN[cIndex++] * tmpGTO; } @@ -343,16 +340,7 @@ inline void GaussianSetTools::pointF(unsigned int moIndex, const Vector3& delta, double componentsF[10] = { // molden order // e.g https://gau2grid.readthedocs.io/en/latest/order.html - xxx, - yyy, - zzz, - xyy, - xxy, - xxz, - xzz, - yzz, - yyz, - xyz + xxx, yyy, zzz, xyy, xxy, xxz, xzz, yzz, yyz, xyz }; for (int i = 0; i < 10; ++i) @@ -378,7 +366,7 @@ inline void GaussianSetTools::pointF7(unsigned int moIndex, i < m_basis->gtoIndices()[moIndex + 1]; ++i) { // Calculate the common factor double tmpGTO = exp(-gtoA[i] * dr2); - for (double & component : components) + for (double& component : components) component += gtoCN[cIndex++] * tmpGTO; } @@ -425,4 +413,4 @@ final normalization values[baseIndex + i] += components[i] * componentsF[i]; } -} // End Avogadro namespace +} // namespace Avogadro::Core From 55331c406dfc70bd3c0e0a59e83dda89ac8595f5 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Wed, 29 Nov 2023 15:05:31 -0500 Subject: [PATCH 36/56] Update README.md Added tweaks to ensure download / citations (etc) are up-to-date Signed-off-by: Geoff Hutchison --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4699a107cc..d95a889f09 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # ![Avogadro 2][Avogadro2Logo] Avogadro 2 [![Latest Release](https://img.shields.io/github/v/release/openchemistry/avogadrolibs)](https://github.com/OpenChemistry/avogadrolibs/releases) [![BSD License](https://img.shields.io/github/license/openchemistry/avogadrolibs)](https://github.com/OpenChemistry/avogadrolibs/blob/master/LICENSE) [![Build Status](https://img.shields.io/github/actions/workflow/status/openchemistry/avogadrolibs/build_cmake.yml?branch=master)](https://github.com/OpenChemistry/avogadrolibs/actions) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/44bb12662c564ed8a27ee8a7fd89ed50)](https://app.codacy.com/gh/OpenChemistry/avogadrolibs/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade) -[![Download Count](https://avogadro.cc/downloads.svg)](https://github.com/OpenChemistry/avogadrolibs/releases) [![Citation Count](https://avogadro.cc/citations.svg)](http://doi.org/10.1186/1758-2946-4-17) +[![Download Count](https://avogadro.cc/downloads.svg?readme)](https://github.com/OpenChemistry/avogadrolibs/releases) [![Citation Count](https://avogadro.cc/citations.svg?readme)](http://doi.org/10.1186/1758-2946-4-17) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](http://makeapullrequest.com) [![GitHub contributors](https://img.shields.io/github/contributors/openchemistry/avogadrolibs.svg?style=flat&color=0bf)](https://github.com/OpenChemistry/avogadrolibs/graphs/contributors) [![OpenCollective Backers](https://img.shields.io/opencollective/all/open-chemistry)](https://opencollective.com/open-chemistry) ## Introduction From f0458e8280e7ad3a0db4ecee5ed669592998b0e8 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Thu, 30 Nov 2023 21:41:51 -0500 Subject: [PATCH 37/56] Fix vibration animation Fixes #1445 - animation would "wiggle" from previous frames Optimization steps are now cleared before vibrational modes added Signed-off-by: Geoff Hutchison --- avogadro/core/molecule.cpp | 8 +++++++- avogadro/core/molecule.h | 5 +++++ avogadro/qtplugins/spectra/spectra.cpp | 3 ++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/avogadro/core/molecule.cpp b/avogadro/core/molecule.cpp index e064e8ca44..f82d5a3b44 100644 --- a/avogadro/core/molecule.cpp +++ b/avogadro/core/molecule.cpp @@ -81,7 +81,8 @@ void Molecule::readProperties(const Molecule& other) m_label = other.m_label; m_colors = other.m_colors; // merge data maps by iterating through other's map - for (auto it = other.m_data.constBegin(); it != other.m_data.constEnd(); ++it) { + for (auto it = other.m_data.constBegin(); it != other.m_data.constEnd(); + ++it) { // even if we have the same key, we want to overwrite m_data.setValue(it->first, it->second); } @@ -1218,6 +1219,11 @@ bool Molecule::setCoordinate3d(int coord) return false; } +void Molecule::clearCoordinate3d() +{ + m_coordinates3d.clear(); +} + Array Molecule::coordinate3d(int index) const { return m_coordinates3d[index]; diff --git a/avogadro/core/molecule.h b/avogadro/core/molecule.h index a242be6ed7..cf05ca2ba3 100644 --- a/avogadro/core/molecule.h +++ b/avogadro/core/molecule.h @@ -553,6 +553,11 @@ class AVOGADROCORE_EXPORT Molecule Array coordinate3d(int index) const; bool setCoordinate3d(const Array& coords, int index); + /** + * Clear coordinate sets (except the default set) + */ + void clearCoordinate3d(); + /** * Timestep property is used when molecular dynamics trajectories are read */ diff --git a/avogadro/qtplugins/spectra/spectra.cpp b/avogadro/qtplugins/spectra/spectra.cpp index d3e1341a7d..09c7e25ee3 100644 --- a/avogadro/qtplugins/spectra/spectra.cpp +++ b/avogadro/qtplugins/spectra/spectra.cpp @@ -139,10 +139,11 @@ void Spectra::setMode(int mode) m_molecule->setForceVector(atom, v); ++atom; } - m_molecule->emitChanged(QtGui::Molecule::Atoms | QtGui::Molecule::Added); + // m_molecule->emitChanged(QtGui::Molecule::Atoms | QtGui::Molecule::Added); int frames = 5; // TODO: needs an option int frameCounter = 0; + m_molecule->clearCoordinate3d(); m_molecule->setCoordinate3d(atomPositions, frameCounter++); // Current coords + displacement. From 65d3144dddf512593c511726fabb3e6599ff4757 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sat, 2 Dec 2023 14:39:51 -0500 Subject: [PATCH 38/56] Add a "text" option for scripts to add text labels / help Signed-off-by: Geoff Hutchison --- avogadro/qtgui/jsonwidget.cpp | 38 +++++++++++++++++++++++++++++++++++ avogadro/qtgui/jsonwidget.h | 2 ++ 2 files changed, 40 insertions(+) diff --git a/avogadro/qtgui/jsonwidget.cpp b/avogadro/qtgui/jsonwidget.cpp index 78abdb1303..d65ec3cdbf 100644 --- a/avogadro/qtgui/jsonwidget.cpp +++ b/avogadro/qtgui/jsonwidget.cpp @@ -347,6 +347,8 @@ QWidget* JsonWidget::createOptionWidget(const QJsonValue& option) return createFloatWidget(obj); else if (type == QLatin1String("boolean")) return createBooleanWidget(obj); + else if (type == QLatin1String("text")) + return createTextWidget(obj); qDebug() << "Unrecognized option type:" << type; return nullptr; @@ -398,6 +400,19 @@ QWidget* JsonWidget::createStringWidget(const QJsonObject& obj) return edit; } +QWidget* JsonWidget::createTextWidget(const QJsonObject& obj) +{ + auto* text = new QLabel(this); + text->setWordWrap(true); + + if (obj.contains(QStringLiteral("toolTip")) && + obj.value(QStringLiteral("toolTip")).isString()) { + text->setToolTip(obj[QStringLiteral("toolTip")].toString()); + } + + return text; +} + QWidget* JsonWidget::createFilePathWidget(const QJsonObject& obj) { auto* fileBrowse = new QtGui::FileBrowseWidget(this); @@ -551,6 +566,8 @@ void JsonWidget::setOption(const QString& name, const QJsonValue& defaultValue) return setFloatOption(name, defaultValue); else if (type == QLatin1String("boolean")) return setBooleanOption(name, defaultValue); + else if (type == QLatin1String("text")) + return setTextOption(name, defaultValue); qWarning() << tr("Unrecognized option type '%1' for option '%2'.").arg(type).arg(name); @@ -614,6 +631,27 @@ void JsonWidget::setStringOption(const QString& name, const QJsonValue& value) lineEdit->setText(value.toString()); } +void JsonWidget::setTextOption(const QString& name, const QJsonValue& value) +{ + auto* text = qobject_cast(m_widgets.value(name, nullptr)); + if (text == nullptr) { + qWarning() << tr("Error setting default for option '%1'. " + "Bad widget type.") + .arg(name); + return; + } + + if (!value.isString()) { + qWarning() << tr("Error setting default for option '%1'. " + "Bad default value:") + .arg(name) + << value; + return; + } + + text->setText(value.toString()); +} + void JsonWidget::setFilePathOption(const QString& name, const QJsonValue& value) { auto* fileBrowse = diff --git a/avogadro/qtgui/jsonwidget.h b/avogadro/qtgui/jsonwidget.h index f182ea7675..653a376303 100644 --- a/avogadro/qtgui/jsonwidget.h +++ b/avogadro/qtgui/jsonwidget.h @@ -92,6 +92,7 @@ class AVOGADROQTGUI_EXPORT JsonWidget : public QWidget QWidget* createIntegerWidget(const QJsonObject& obj); QWidget* createFloatWidget(const QJsonObject& obj); QWidget* createBooleanWidget(const QJsonObject& obj); + QWidget* createTextWidget(const QJsonObject& obj); /**@}*/ /** @@ -106,6 +107,7 @@ class AVOGADROQTGUI_EXPORT JsonWidget : public QWidget void setIntegerOption(const QString& name, const QJsonValue& value); void setFloatOption(const QString& name, const QJsonValue& value); void setBooleanOption(const QString& name, const QJsonValue& value); + void setTextOption(const QString& name, const QJsonValue& value); /**@}*/ /** From 11bff12d49e347e3dc34c6f318fd8548556977aa Mon Sep 17 00:00:00 2001 From: Makiah Bennett Date: Sun, 3 Dec 2023 19:13:19 -0600 Subject: [PATCH 39/56] Avoid segfaulting while manipulating carbon bonds and associated hydrogens Signed-off-by: Makiah Bennett --- avogadro/qtgui/hydrogentools.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/avogadro/qtgui/hydrogentools.cpp b/avogadro/qtgui/hydrogentools.cpp index 3187889dbf..b7b5266b2d 100644 --- a/avogadro/qtgui/hydrogentools.cpp +++ b/avogadro/qtgui/hydrogentools.cpp @@ -134,6 +134,9 @@ void HydrogenTools::adjustHydrogens(RWAtom& atom, Adjustment adjustment) // convenience RWMolecule* molecule = atom.molecule(); + if (molecule == nullptr) + return; + if (doRemove) { // get the list of hydrogens connected to this std::vector badHIndices; From 27c14a5c948185644d2f910362c3c826f70f8811 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Sun, 3 Dec 2023 21:21:18 -0500 Subject: [PATCH 40/56] Add specialization for char* and MatrixXf types Implicit conversion does not work for these types Signed-off-by: Geoff Hutchison --- avogadro/core/variant-inline.h | 20 +++++++++++++++----- avogadro/core/variant.h | 10 ++++++++-- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/avogadro/core/variant-inline.h b/avogadro/core/variant-inline.h index 4b6426d2ab..6706e4cf5e 100644 --- a/avogadro/core/variant-inline.h +++ b/avogadro/core/variant-inline.h @@ -13,9 +13,7 @@ namespace Avogadro { namespace Core { -inline Variant::Variant() : m_type(Null) -{ -} +inline Variant::Variant() : m_type(Null) {} template inline Variant::Variant(T v) : m_type(Null) @@ -23,6 +21,18 @@ inline Variant::Variant(T v) : m_type(Null) setValue(v); } +inline Variant::Variant(const char* v) : m_type(String) +{ + m_value.string = new std::string(v); +} + +inline Variant::Variant(const MatrixXf& v) : m_type(Matrix) +{ + MatrixX* m = new MatrixX(v.rows(), v.cols()); + *m = v.cast(); + m_value.matrix = m; +} + inline Variant::Variant(const Variant& variant) : m_type(variant.type()) { if (m_type == String) @@ -444,7 +454,7 @@ inline T Variant::lexical_cast(const std::string& str) return value; } -} // end Core namespace -} // end Avogadro namespace +} // namespace Core +} // namespace Avogadro #endif // AVOGADRO_CORE_VARIANT_INLINE_H diff --git a/avogadro/core/variant.h b/avogadro/core/variant.h index 3f171aebfc..c2b08bd56c 100644 --- a/avogadro/core/variant.h +++ b/avogadro/core/variant.h @@ -48,6 +48,12 @@ class AVOGADROCORE_EXPORT Variant template Variant(T value); + /** Creates a std::string variant to store @p value */ + Variant(const char* value); + + /** Creates a MatrixX variant to store @p value */ + Variant(const MatrixXf& value); + /** Creates a new copy of @p variant. */ inline Variant(const Variant& variant); @@ -146,8 +152,8 @@ class AVOGADROCORE_EXPORT Variant } m_value; }; -} // end Core namespace -} // end Avogadro namespace +} // namespace Core +} // namespace Avogadro #include "variant-inline.h" From 9de7c420c2372770b3b8083abc11b9b0d5b33021 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Mon, 4 Dec 2023 11:49:55 -0500 Subject: [PATCH 41/56] Fix potential crashes in selection commands Check that molecules have atoms before doing something Hat tip to Kiran_Vasave on the forum Signed-off-by: Geoff Hutchison --- avogadro/qtplugins/select/select.cpp | 30 +++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/avogadro/qtplugins/select/select.cpp b/avogadro/qtplugins/select/select.cpp index d4987c1fea..be76ac0fb8 100644 --- a/avogadro/qtplugins/select/select.cpp +++ b/avogadro/qtplugins/select/select.cpp @@ -139,7 +139,7 @@ bool Select::evalSelect(bool input, Index index) const void Select::selectAll() { - if (m_molecule) { + if (m_molecule && m_molecule->atomCount() > 0) { for (Index i = 0; i < m_molecule->atomCount(); ++i) { m_molecule->undoMolecule()->setAtomSelected(i, evalSelect(true, i)); } @@ -150,7 +150,7 @@ void Select::selectAll() void Select::selectNone() { - if (m_molecule) { + if (m_molecule && m_molecule->atomCount() > 0) { for (Index i = 0; i < m_molecule->atomCount(); ++i) m_molecule->undoMolecule()->setAtomSelected(i, false); @@ -160,7 +160,7 @@ void Select::selectNone() void Select::selectElement() { - if (!m_molecule) + if (m_molecule == nullptr || m_molecule->atomCount() == 0) return; if (m_elements == nullptr) { @@ -174,7 +174,7 @@ void Select::selectElement() void Select::selectElement(int element) { - if (!m_molecule) + if (m_molecule == nullptr || m_molecule->atomCount() == 0) return; QString undoText = tr("Select Element"); @@ -211,7 +211,7 @@ bool Select::isWaterOxygen(Index i) void Select::selectWater() { - if (!m_molecule) + if (m_molecule == nullptr || m_molecule->atomCount() == 0) return; QString undoText = tr("Select Water"); @@ -260,6 +260,9 @@ void Select::selectWater() void Select::selectBackboneAtoms() { + if (m_molecule == nullptr || m_molecule->atomCount() == 0) + return; + // unselect everything selectNone(); @@ -296,6 +299,9 @@ void Select::selectBackboneAtoms() void Select::selectSidechainAtoms() { + if (m_molecule == nullptr || m_molecule->atomCount() == 0) + return; + // unselect everything selectNone(); @@ -350,6 +356,9 @@ Vector3 Select::getSelectionCenter() void Select::enlargeSelection() { + if (m_molecule == nullptr || m_molecule->atomCount() == 0) + return; + Vector3 center = getSelectionCenter(); // find the current max distance of the selection Real maxDistance = 0.0; @@ -384,6 +393,9 @@ void Select::enlargeSelection() void Select::shrinkSelection() { + if (m_molecule == nullptr || m_molecule->atomCount() == 0) + return; + Vector3 center = getSelectionCenter(); // find the current max distance of the selection Real maxDistance = 0.0; @@ -420,7 +432,7 @@ void Select::shrinkSelection() void Select::selectAtomIndex() { - if (!m_molecule) + if (m_molecule == nullptr || m_molecule->atomCount() == 0) return; bool ok; @@ -461,7 +473,7 @@ void Select::selectAtomIndex() void Select::selectResidue() { - if (!m_molecule) + if (m_molecule == nullptr || m_molecule->atomCount() == 0) return; bool ok; @@ -531,7 +543,7 @@ void Select::selectResidue() void Select::invertSelection() { - if (m_molecule) { + if (m_molecule && m_molecule->atomCount() > 0) { for (Index i = 0; i < m_molecule->atomCount(); ++i) m_molecule->undoMolecule()->setAtomSelected( i, evalSelect(!m_molecule->atomSelected(i), i), tr("Invert Selection")); @@ -541,7 +553,7 @@ void Select::invertSelection() void Select::createLayerFromSelection() { - if (!m_molecule) + if (m_molecule == nullptr || m_molecule->atomCount() == 0) return; QtGui::RWMolecule* rwmol = m_molecule->undoMolecule(); From 1260e1a03fa72ae0b3b3b6fa9323e5084dfde313 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Mon, 4 Dec 2023 12:39:29 -0500 Subject: [PATCH 42/56] Better to use template specialization Signed-off-by: Geoff Hutchison --- avogadro/core/variant-inline.h | 2 ++ avogadro/core/variant.h | 6 ------ 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/avogadro/core/variant-inline.h b/avogadro/core/variant-inline.h index 6706e4cf5e..16836f4dcb 100644 --- a/avogadro/core/variant-inline.h +++ b/avogadro/core/variant-inline.h @@ -21,11 +21,13 @@ inline Variant::Variant(T v) : m_type(Null) setValue(v); } +template <> inline Variant::Variant(const char* v) : m_type(String) { m_value.string = new std::string(v); } +template <> inline Variant::Variant(const MatrixXf& v) : m_type(Matrix) { MatrixX* m = new MatrixX(v.rows(), v.cols()); diff --git a/avogadro/core/variant.h b/avogadro/core/variant.h index c2b08bd56c..84eda3186d 100644 --- a/avogadro/core/variant.h +++ b/avogadro/core/variant.h @@ -48,12 +48,6 @@ class AVOGADROCORE_EXPORT Variant template Variant(T value); - /** Creates a std::string variant to store @p value */ - Variant(const char* value); - - /** Creates a MatrixX variant to store @p value */ - Variant(const MatrixXf& value); - /** Creates a new copy of @p variant. */ inline Variant(const Variant& variant); From f230d55866c3050f7b4432e54853fd296190dcff Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Mon, 4 Dec 2023 19:57:14 -0500 Subject: [PATCH 43/56] Check menu path for {} priority numbers Signed-off-by: Geoff Hutchison --- avogadro/qtplugins/commandscripts/command.cpp | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/avogadro/qtplugins/commandscripts/command.cpp b/avogadro/qtplugins/commandscripts/command.cpp index dc247fb19a..0e4410813b 100644 --- a/avogadro/qtplugins/commandscripts/command.cpp +++ b/avogadro/qtplugins/commandscripts/command.cpp @@ -76,6 +76,27 @@ QStringList Command::menuPath(QAction* action) const return path; } + // look for {number} in the last part of the path + // (this is a priority integer) + QString lastPart = path.takeLast(); + int priority = 0; + int braceIndex = lastPart.indexOf('{'); + int endBraceIndex = lastPart.indexOf('}'); + if (braceIndex >= 0 && endBraceIndex >= 0 && endBraceIndex > braceIndex) { + bool ok = false; + size_t len = endBraceIndex - braceIndex - 1; + priority = lastPart.mid(braceIndex + 1, len).toInt(&ok); + if (ok) { + lastPart = lastPart.left(braceIndex); + } + } + // add it back to the path + path << lastPart; + + if (priority != 0) { + action->setProperty("menu priority", priority); + } + // try to translate each part of the path // not ideal, but menus should already be in the translation file QStringList translatedPath; @@ -306,4 +327,4 @@ void Command::addAction(const QString& label, const QString& scriptFilePath) m_actions << action; } -} // namespace Avogadro +} // namespace Avogadro::QtPlugins From 66f230b0295b62141c111043613dc10d318ff27e Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Mon, 4 Dec 2023 21:18:16 -0500 Subject: [PATCH 44/56] If no partial charges are assigned, set them Signed-off-by: Geoff Hutchison --- .../qtplugins/propertytables/CMakeLists.txt | 2 ++ .../propertytables/propertymodel.cpp | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/avogadro/qtplugins/propertytables/CMakeLists.txt b/avogadro/qtplugins/propertytables/CMakeLists.txt index 18170b789a..8a73d2bc98 100644 --- a/avogadro/qtplugins/propertytables/CMakeLists.txt +++ b/avogadro/qtplugins/propertytables/CMakeLists.txt @@ -5,3 +5,5 @@ avogadro_plugin(PropertyTables PropertyTables "propertytables.cpp;propertymodel.cpp;propertyview.cpp" ) + +target_link_libraries(PropertyTables PRIVATE Avogadro::Calc) \ No newline at end of file diff --git a/avogadro/qtplugins/propertytables/propertymodel.cpp b/avogadro/qtplugins/propertytables/propertymodel.cpp index 9793106ca4..e1d2a79cc5 100644 --- a/avogadro/qtplugins/propertytables/propertymodel.cpp +++ b/avogadro/qtplugins/propertytables/propertymodel.cpp @@ -5,6 +5,7 @@ #include "propertymodel.h" +#include #include #include #include @@ -135,6 +136,28 @@ QString partialCharge(Molecule* molecule, int atom) auto first = types.cbegin(); MatrixX charges = molecule->partialCharges((*first)); charge = charges(atom, 0); + } else { + // find something + const auto options = + Calc::ChargeManager::instance().identifiersForMolecule(*molecule); + if (options.size() > 0) { + // look for GFN2 or AM1BCC, then MMFF94 then Gasteiger + std::string type; + if (options.find("GFN2") != options.end()) + type = "GFN2"; + else if (options.find("am1bcc") != options.end()) + type = "am1bcc"; + else if (options.find("mmff94") != options.end()) + type = "mmff94"; + else if (options.find("gasteiger") != options.end()) + type = "gasteiger"; + else + type = *options.begin(); + + MatrixX charges = + Calc::ChargeManager::instance().partialCharges(type, *molecule); + charge = charges(atom, 0); + } } return QString("%L1").arg(charge, 0, 'f', 3); } From ea531ac574948b122e51214bb037e2e5fa563a96 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Mon, 4 Dec 2023 21:32:32 -0500 Subject: [PATCH 45/56] If userOptions specifies an order, use that to sort the form Fix #1498 Signed-off-by: Geoff Hutchison --- avogadro/qtgui/jsonwidget.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/avogadro/qtgui/jsonwidget.cpp b/avogadro/qtgui/jsonwidget.cpp index d65ec3cdbf..9d4302803d 100644 --- a/avogadro/qtgui/jsonwidget.cpp +++ b/avogadro/qtgui/jsonwidget.cpp @@ -208,10 +208,26 @@ void JsonWidget::buildOptionGui() } // Add remaining keys at bottom. + // look for "order" key to determine order + QStringList keys; for (QJsonObject::const_iterator it = userOptions.constBegin(), itEnd = userOptions.constEnd(); it != itEnd; ++it) { - addOptionRow(it.key(), it.key(), it.value()); + if (it.value().isObject()) { + QJsonObject obj = it.value().toObject(); + if (obj.contains("order") && obj.value("order").isDouble()) { + keys.insert(obj.value("order").toInt(), it.key()); + } else { + keys.append(it.key()); + } + } else { + keys.append(it.key()); + } + } + + // now loop over keys and add them + for (const QString& key : keys) { + addOptionRow(key, key, userOptions.take(key)); } // Make connections for standard options: From 41580061e194678e35f7e499729d6a0e00ecce69 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Mon, 4 Dec 2023 21:55:32 -0500 Subject: [PATCH 46/56] Fix include of avogadrocoreexport.h Fix #1476 Signed-off-by: Geoff Hutchison --- avogadro/core/coordinateblockgenerator.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/avogadro/core/coordinateblockgenerator.h b/avogadro/core/coordinateblockgenerator.h index 44f0f266de..216e6e3fe0 100644 --- a/avogadro/core/coordinateblockgenerator.h +++ b/avogadro/core/coordinateblockgenerator.h @@ -6,7 +6,7 @@ #ifndef AVOGADRO_CORE_COORDINATEBLOCKGENERATOR_H #define AVOGADRO_CORE_COORDINATEBLOCKGENERATOR_H -#include +#include "avogadrocoreexport.h" #include #include From b8ae295004973d08133250b512ba644183e59db2 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Mon, 4 Dec 2023 22:57:46 -0500 Subject: [PATCH 47/56] Use a map to sort by order if available Signed-off-by: Geoff Hutchison --- avogadro/qtgui/jsonwidget.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/avogadro/qtgui/jsonwidget.cpp b/avogadro/qtgui/jsonwidget.cpp index 9d4302803d..b04e502ee4 100644 --- a/avogadro/qtgui/jsonwidget.cpp +++ b/avogadro/qtgui/jsonwidget.cpp @@ -209,26 +209,27 @@ void JsonWidget::buildOptionGui() // Add remaining keys at bottom. // look for "order" key to determine order - QStringList keys; + QMap keys; + int order = 0; for (QJsonObject::const_iterator it = userOptions.constBegin(), itEnd = userOptions.constEnd(); it != itEnd; ++it) { if (it.value().isObject()) { QJsonObject obj = it.value().toObject(); if (obj.contains("order") && obj.value("order").isDouble()) { - keys.insert(obj.value("order").toInt(), it.key()); - } else { - keys.append(it.key()); + order = obj.value("order").toInt(); + keys.insert(order, it.key()); + } else { // object doesn't contain "order" + keys.insert(order++, it.key()); } } else { - keys.append(it.key()); + keys.insert(order++, it.key()); } } // now loop over keys and add them - for (const QString& key : keys) { + for (QString key : std::as_const(keys)) addOptionRow(key, key, userOptions.take(key)); - } // Make connections for standard options: if (auto* combo = qobject_cast( From c00454446fcdeddf9fefda8ba1fcf1ad48f8a26c Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Tue, 5 Dec 2023 09:42:07 -0500 Subject: [PATCH 48/56] Remove duplicate include Signed-off-by: Geoff Hutchison --- avogadro/core/atomutilities.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/avogadro/core/atomutilities.h b/avogadro/core/atomutilities.h index 2170df97b1..64be896f19 100644 --- a/avogadro/core/atomutilities.h +++ b/avogadro/core/atomutilities.h @@ -8,8 +8,6 @@ #include "avogadrocoreexport.h" -#include "avogadrocoreexport.h" - #include #include From 6e89723b41e85a245c679e23cabfb9e128d62359 Mon Sep 17 00:00:00 2001 From: Norwid Behrnd Date: Wed, 29 Nov 2023 15:32:15 +0000 Subject: [PATCH 49/56] Translated using Weblate (German) Currently translated at 74.4% (1093 of 1469 strings) Translation: Avogadro/avogadrolibs Translate-URL: https://hosted.weblate.org/projects/avogadro/avogadrolibs/de/ --- i18n/de.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/de.po b/i18n/de.po index ae3d53e745..9d215b7593 100644 --- a/i18n/de.po +++ b/i18n/de.po @@ -12,7 +12,7 @@ msgstr "" "Project-Id-Version: _avogadro-de\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2023-11-19 16:50+0000\n" -"PO-Revision-Date: 2023-08-17 15:50+0000\n" +"PO-Revision-Date: 2023-11-30 16:05+0000\n" "Last-Translator: Norwid Behrnd \n" "Language-Team: German \n" @@ -21,7 +21,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.3-dev\n" "X-Launchpad-Export-Date: 2018-04-13 16:01+0000\n" #: molequeue/batchjob.cpp:70 @@ -684,7 +684,7 @@ msgstr "Zirconium" #: qtgui/elementtranslator.cpp:139 msgid "Niobium" -msgstr "Niob (Columbium)" +msgstr "Niob" #: qtgui/elementtranslator.cpp:142 msgid "Molybdenum" @@ -852,7 +852,7 @@ msgstr "Blei" #: qtgui/elementtranslator.cpp:265 msgid "Bismuth" -msgstr "Bismut (Wismut)" +msgstr "Bismut" #: qtgui/elementtranslator.cpp:268 msgid "Polonium" From ce728f9bc4d37d30f439d00e74c776bcd5db3868 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hakk=C4=B1=20Konu?= Date: Sat, 2 Dec 2023 00:45:04 +0000 Subject: [PATCH 50/56] Translated using Weblate (Turkish) Currently translated at 51.3% (755 of 1469 strings) Translation: Avogadro/avogadrolibs Translate-URL: https://hosted.weblate.org/projects/avogadro/avogadrolibs/tr/ --- i18n/tr.po | 169 +++++++++++++++++++++++++---------------------------- 1 file changed, 80 insertions(+), 89 deletions(-) diff --git a/i18n/tr.po b/i18n/tr.po index e5e415f034..2af2f811fa 100644 --- a/i18n/tr.po +++ b/i18n/tr.po @@ -9,13 +9,14 @@ # udo pton , 2021. # Acun , 2021. # Hıncal Gökhan BAKIR , 2023. +# Hakkı Konu , 2023. msgid "" msgstr "" "Project-Id-Version: avogadro\n" "Report-Msgid-Bugs-To: avogadro-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2023-11-19 16:50+0000\n" -"PO-Revision-Date: 2023-05-20 18:51+0000\n" -"Last-Translator: Hıncal Gökhan BAKIR \n" +"PO-Revision-Date: 2023-12-02 21:28+0000\n" +"Last-Translator: Hakkı Konu \n" "Language-Team: Turkish \n" "Language: tr\n" @@ -23,7 +24,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.18-dev\n" +"X-Generator: Weblate 5.3-dev\n" "X-Launchpad-Export-Date: 2018-04-13 16:01+0000\n" #: molequeue/batchjob.cpp:70 @@ -42,6 +43,8 @@ msgid "" "Received:\n" "%1" msgstr "" +"script --print-options çıktısı en üst düzeyde bir JSON nesnesi olmalıdır.\n" +"%1" #: molequeue/inputgenerator.cpp:175 qtgui/interfacescript.cpp:208 #: qtgui/interfacescript.cpp:319 @@ -1023,6 +1026,8 @@ msgid "" "The file extension is missing, so the format cannot be determined.Do you " "want to add it?" msgstr "" +"Dosya uzantısı eksik, bu nedenle format belirlenemiyor Eklemek istiyor " +"musunuz?" #: qtgui/fileformatdialog.cpp:114 msgid "Unable to find a suitable file writer for the selected format." @@ -1064,16 +1069,12 @@ msgid "Multiple %1 found that can %2 this format. Which should be used?" msgstr "Bu biçimi %2 yapabilen birden çok %1 bulundu. Hangisi kullanılmalı?" #: qtgui/fileformatdialog.cpp:279 -#, fuzzy -#| msgid "All Files" msgid "All files" -msgstr "Bütün Dosyalar" +msgstr "Bütün dosyalar" #: qtgui/fileformatdialog.cpp:282 -#, fuzzy -#| msgid "All supported formats (%1);;" msgid "All supported formats" -msgstr "Desteklenen tüm formatlar (%1) ;;" +msgstr "Desteklenen tüm formatlar" #: qtgui/interfacescript.cpp:225 #, qt-format @@ -1144,7 +1145,7 @@ msgstr "Temel" #: qtgui/jsonwidget.cpp:200 qtgui/jsonwidget.cpp:204 msgid "Charge" -msgstr "" +msgstr "Yük" #: qtgui/jsonwidget.cpp:201 qtgui/jsonwidget.cpp:206 msgid "Multiplicity" @@ -1158,13 +1159,13 @@ msgstr "Hata: '%1' anahtarı için değer nesne olmalıdır." #: qtgui/jsonwidget.cpp:556 #, qt-format msgid "Unrecognized option type '%1' for option '%2'." -msgstr "" +msgstr "'%2' seçeneği için tanınmayan seçenek türü '%1'." #: qtgui/jsonwidget.cpp:565 qtgui/jsonwidget.cpp:600 qtgui/jsonwidget.cpp:622 #: qtgui/jsonwidget.cpp:643 qtgui/jsonwidget.cpp:665 qtgui/jsonwidget.cpp:686 #, qt-format msgid "Error setting default for option '%1'. Bad widget type." -msgstr "" +msgstr "'%1' seçeneği için varsayılan ayar hatası. Hatalı widget türü." #: qtgui/jsonwidget.cpp:572 qtgui/jsonwidget.cpp:607 qtgui/jsonwidget.cpp:629 #: qtgui/jsonwidget.cpp:650 qtgui/jsonwidget.cpp:672 qtgui/jsonwidget.cpp:693 @@ -1184,7 +1185,7 @@ msgstr "" #: qtgui/jsonwidget.cpp:754 #, qt-format msgid "Unhandled widget in collectOptions for option '%1'." -msgstr "" +msgstr "'%1' seçeneği için collectOptions içinde işlenmemiş widget." #: qtgui/jsonwidget.cpp:796 qtplugins/cp2kinput/cp2kinputdialog.cpp:455 #: qtplugins/gamessinput/gamessinputdialog.cpp:395 @@ -1192,27 +1193,23 @@ msgid "[no molecule]" msgstr "[molekül yok]" #: qtgui/layermodel.cpp:85 -#, fuzzy, qt-format -#| msgid "Layer" +#, qt-format msgid "Layer %1" -msgstr "Katman" +msgstr "Katman %1" #: qtgui/layermodel.cpp:135 qtplugins/ballandstick/ballandstick.h:29 msgid "Ball and Stick" msgstr "Top ve Çubuk" #: qtgui/layermodel.cpp:137 qtplugins/cartoons/cartoons.h:30 -#, fuzzy -#| msgctxt "protein rendering style" -#| msgid "Cartoon" msgctxt "protein ribbon / cartoon rendering" msgid "Cartoons" -msgstr "Karikatür" +msgstr "Karikatürler" #: qtgui/layermodel.cpp:139 qtplugins/closecontacts/closecontacts.h:30 msgctxt "rendering of non-covalent close contacts" msgid "Close Contacts" -msgstr "" +msgstr "Yakın Temaslar" #: qtgui/layermodel.cpp:141 qtplugins/crystal/crystalscene.h:31 msgid "Crystal Lattice" @@ -1227,19 +1224,17 @@ msgid "Labels" msgstr "Etiketler" #: qtgui/layermodel.cpp:147 qtplugins/licorice/licorice.h:29 -#, fuzzy -#| msgid "Licorice" msgctxt "stick / licorice rendering" msgid "Licorice" msgstr "Meyan kökü" #: qtgui/layermodel.cpp:149 qtplugins/meshes/meshes.h:29 msgid "Meshes" -msgstr "" +msgstr "Ağlar" #: qtgui/layermodel.cpp:151 qtplugins/noncovalent/noncovalent.h:30 msgid "Non-Covalent" -msgstr "" +msgstr "Kovalent Olmayan" #: qtgui/layermodel.cpp:153 #, fuzzy @@ -1250,7 +1245,7 @@ msgstr "QTAIM (MAKT)" #: qtgui/layermodel.cpp:155 qtplugins/symmetry/symmetryscene.h:33 msgid "Symmetry Elements" -msgstr "" +msgstr "Simetri Unsurları" #: qtgui/layermodel.cpp:157 qtplugins/surfaces/surfacedialog.cpp:25 #: qtplugins/vanderwaals/vanderwaals.h:29 @@ -1318,11 +1313,9 @@ msgstr "" "%6" #: qtgui/pythonscript.cpp:145 -#, fuzzy, qt-format -#| msgctxt "arg is an executable file." -#| msgid "Starting %1…" +#, qt-format msgid "Warning '%1'" -msgstr "%1 başlatılıyor…" +msgstr "Uyarı '%1'" #: qtgui/pythonscript.cpp:267 msgid "Script failed to start." @@ -1487,7 +1480,7 @@ msgstr "Temel Ögeye İndirge" #: qtgui/rwmolecule.cpp:628 qtplugins/spacegroup/spacegroup.cpp:62 #: qtplugins/spacegroup/spacegroup.cpp:240 msgid "Conventionalize Cell" -msgstr "" +msgstr "Hücreyi Konvansiyonelleştirin" #: qtgui/rwmolecule.cpp:653 qtplugins/spacegroup/spacegroup.cpp:265 msgid "Symmetrize Cell" @@ -1502,10 +1495,8 @@ msgid "Reduce Cell to Asymmetric Unit" msgstr "Hücreyi Asimetrik Birime İndirge" #: qtgui/rwmolecule.h:214 -#, fuzzy -#| msgid "Change Atom Hybridization" msgid "Change Atom Positions" -msgstr "Atom Hibridizasyonunu Değiştir" +msgstr "Atom Konumlarını Değiştirme" #: qtgui/rwmolecule.h:224 #, fuzzy @@ -1538,11 +1529,11 @@ msgstr "Dosya kaydedilemiyor %1." #: qtgui/scriptloader.cpp:68 #, qt-format msgid "Checking for %1 scripts in path %2" -msgstr "" +msgstr "%2 dizininde %1 komut dosyası olup olmadığı kontrol ediliyor" #: qtplugins/3dmol/3dmol.cpp:41 msgid "3DMol HTML Block." -msgstr "" +msgstr "3DMol HTML Bloğu." #: qtplugins/3dmol/3dmol.cpp:51 qtplugins/fetchpdb/fetchpdb.cpp:41 #: qtplugins/importpqr/importpqr.cpp:43 @@ -1565,9 +1556,10 @@ msgstr "" #: qtplugins/aligntool/aligntool.cpp:53 qtplugins/aligntool/aligntool.cpp:88 msgid "Align" -msgstr "" +msgstr "Hizala" #: qtplugins/aligntool/aligntool.cpp:56 +#, fuzzy msgid "" "Align Molecules\n" "\n" @@ -1577,42 +1569,41 @@ msgid "" "Right Mouse: \tReset alignment.\n" "Double-Click: \tCenter the atom at the origin." msgstr "" +"Molekülleri Hizala\n" +"\n" +"Sol Fare: En fazla iki atom seçin.\n" +"\tİlk atom orijinde ortalanır.\n" +"\tİkinci atom seçilen eksene hizalanır.\n" +"Sağ Fare: Hizalamayı sıfırlayın.\n" +"Çift Tıklama: \tAtomu orijinde ortalar." #: qtplugins/aligntool/aligntool.cpp:75 -#, fuzzy -#| msgid "X Axis" msgid "Axis:" -msgstr "X Ekseni" +msgstr "X Ekseni:" #: qtplugins/aligntool/aligntool.cpp:152 msgid "Align at Origin" -msgstr "" +msgstr "Başlangıçta Hizala" #: qtplugins/aligntool/aligntool.cpp:188 -#, fuzzy -#| msgid "Align View to Axes" msgid "Align to Axis" -msgstr "Görünümü Eksene Hizala" +msgstr "Eksene Hizala" #: qtplugins/aligntool/aligntool.cpp:304 -#, fuzzy -#| msgid "Renders the x, y, and z axes at the origin" msgid "Center the atom at the origin." -msgstr "Merkezdeki x, y, ve x eksenlerini kaplar" +msgstr "Atomu orijinde ortalayın." #: qtplugins/aligntool/aligntool.cpp:307 msgid "Rotate the molecule to align the atom to the specified axis." -msgstr "" +msgstr "Atomu belirtilen eksene hizalamak için molekülü döndürün." #: qtplugins/aligntool/aligntool.h:30 -#, fuzzy -#| msgid "Navigate tool" msgid "Align tool" -msgstr "Gezinme aracı" +msgstr "Hizalama aracı" #: qtplugins/aligntool/aligntool.h:33 msgid "Align molecules to a Cartesian axis" -msgstr "" +msgstr "Molekülleri bir Kartezyen eksene hizalama" #: qtplugins/apbs/apbs.cpp:31 msgid "Run APBS…" @@ -1762,10 +1753,8 @@ msgid "By Chain" msgstr "Zincire Göre" #: qtplugins/applycolors/applycolors.cpp:74 -#, fuzzy -#| msgid "Partial Charge" msgid "By Partial Charge…" -msgstr "Kısmi Yük" +msgstr "Kısmi Talep ile…" #: qtplugins/applycolors/applycolors.cpp:79 msgid "By Secondary Structure" @@ -1785,25 +1774,25 @@ msgstr "Şekil Düzenine Göre" #: qtplugins/surfaces/surfaces.cpp:738 msgctxt "colormap" msgid "Parula" -msgstr "" +msgstr "Parula" #: qtplugins/applycolors/applycolors.cpp:106 #: qtplugins/surfaces/surfaces.cpp:740 msgctxt "colormap" msgid "Heat" -msgstr "" +msgstr "Isı" #: qtplugins/applycolors/applycolors.cpp:108 #: qtplugins/surfaces/surfaces.cpp:742 msgctxt "colormap" msgid "Hot" -msgstr "" +msgstr "Sıcak" #: qtplugins/applycolors/applycolors.cpp:110 #: qtplugins/surfaces/surfaces.cpp:744 msgctxt "colormap" msgid "Gray" -msgstr "" +msgstr "Gri" #: qtplugins/applycolors/applycolors.cpp:112 #: qtplugins/applycolors/applycolors.cpp:207 @@ -1811,7 +1800,7 @@ msgstr "" #: qtplugins/surfaces/surfaces.cpp:746 msgctxt "colormap" msgid "Magma" -msgstr "" +msgstr "Magma" #: qtplugins/applycolors/applycolors.cpp:114 #: qtplugins/applycolors/applycolors.cpp:208 @@ -1819,7 +1808,7 @@ msgstr "" #: qtplugins/surfaces/surfaces.cpp:748 msgctxt "colormap" msgid "Inferno" -msgstr "" +msgstr "Cehennem" #: qtplugins/applycolors/applycolors.cpp:116 #: qtplugins/applycolors/applycolors.cpp:208 @@ -1827,7 +1816,7 @@ msgstr "" #: qtplugins/surfaces/surfaces.cpp:750 msgctxt "colormap" msgid "Plasma" -msgstr "" +msgstr "Plazma" #: qtplugins/applycolors/applycolors.cpp:118 #: qtplugins/applycolors/applycolors.cpp:209 @@ -1835,7 +1824,7 @@ msgstr "" #: qtplugins/surfaces/surfaces.cpp:752 msgctxt "colormap" msgid "Viridis" -msgstr "" +msgstr "Viridis" #: qtplugins/applycolors/applycolors.cpp:120 #: qtplugins/applycolors/applycolors.cpp:209 @@ -1843,7 +1832,7 @@ msgstr "" #: qtplugins/surfaces/surfaces.cpp:754 msgctxt "colormap" msgid "Cividis" -msgstr "" +msgstr "Cividis" #. i18n: file: qtplugins/applycolors/chargedialog.ui:50 #. i18n: ectx: property (text), item, widget (QComboBox, colorMapCombo) @@ -1853,11 +1842,9 @@ msgstr "" #: qtplugins/applycolors/applycolors.cpp:210 #: qtplugins/applycolors/applycolors.cpp:302 #: qtplugins/surfaces/surfaces.cpp:756:183 rc.cpp:1615 -#, fuzzy -#| msgid "Neutral" msgctxt "colormap" msgid "Spectral" -msgstr "Nötr" +msgstr "Spektral" #. i18n: file: qtplugins/applycolors/chargedialog.ui:45 #. i18n: ectx: property (text), item, widget (QComboBox, colorMapCombo) @@ -1867,7 +1854,7 @@ msgstr "Nötr" #: qtplugins/surfaces/surfaces.cpp:758:180 rc.cpp:1612 msgctxt "colormap" msgid "Coolwarm" -msgstr "" +msgstr "Soğuk sıcak" #. i18n: file: qtplugins/applycolors/chargedialog.ui:35 #. i18n: ectx: property (text), item, widget (QComboBox, colorMapCombo) @@ -1875,11 +1862,9 @@ msgstr "" #. i18n: ectx: property (text), item, widget (QComboBox, colormapCombo) #: qtplugins/applycolors/applycolors.cpp:126 #: qtplugins/surfaces/surfaces.cpp:760:174 rc.cpp:1606 -#, fuzzy -#| msgid "Cancel" msgctxt "colormap" msgid "Balance" -msgstr "İptal" +msgstr "Denge" #. i18n: file: qtplugins/applycolors/chargedialog.ui:40 #. i18n: ectx: property (text), item, widget (QComboBox, colorMapCombo) @@ -1889,7 +1874,7 @@ msgstr "İptal" #: qtplugins/surfaces/surfaces.cpp:762:177 rc.cpp:1609 msgctxt "colormap" msgid "Blue-DarkRed" -msgstr "" +msgstr "Mavi-Koyu Kırmızı" #. i18n: file: qtplugins/applycolors/chargedialog.ui:55 #. i18n: ectx: property (text), item, widget (QComboBox, colorMapCombo) @@ -1901,7 +1886,7 @@ msgstr "" #: qtplugins/surfaces/surfaces.cpp:764:186 rc.cpp:1618 msgctxt "colormap" msgid "Turbo" -msgstr "" +msgstr "Turbo" #: qtplugins/applycolors/applycolors.cpp:138 msgid "Apply color schemes to atoms and residues." @@ -1971,6 +1956,7 @@ msgid "Bond-Centric Manipulation" msgstr "Bağ Merkezli Yönlendirme" #: qtplugins/bondcentrictool/bondcentrictool.cpp:124 +#, fuzzy msgid "" "Bond Centric Manipulation Tool\n" "\n" @@ -1983,6 +1969,17 @@ msgid "" "Left Click & Drag one of the Atoms in the Bond to change the angle\n" "Right Click & Drag one of the Atoms in the Bond to change the length" msgstr "" +"Tahvil Merkezli Manipülasyon Aracı\n" +"\n" +"Sol Fare: Görünümü döndürmek için tıklayın ve sürükleyin.\n" +"Orta Fare: Yakınlaştırmak veya uzaklaştırmak için tıklayın ve sürükleyin.\n" +"Sağ Fare: Görünümü taşımak için tıklayın ve sürükleyin.\n" +"Çift Tıklama: \tGörünümü sıfırlayın.\n" +"\n" +"Manipülasyon Düzlemini ayarlamak için bir Bağın üzerine Sol Tıklayıp " +"Sürükleyin:\n" +"Açıyı değiştirmek için Bağdaki Atomlardan birini Sol Tıklayıp Sürükleyin\n" +"Uzunluğu değiştirmek için Bağdaki Atomlardan birine Sağ Tıklayıp Sürükleyin" #: qtplugins/bondcentrictool/bondcentrictool.cpp:776 #: qtplugins/bondcentrictool/bondcentrictool.cpp:864 @@ -2052,11 +2049,11 @@ msgstr "Bağ" #: qtplugins/bonding/bonding.cpp:74 msgid "Remove bonds from all or selected atoms." -msgstr "" +msgstr "Tüm atomlardan veya seçilen atomlardan bağları kaldırın." #: qtplugins/bonding/bonding.cpp:76 msgid "Create bonds between all or selected atoms." -msgstr "" +msgstr "Tüm atomlar veya seçilen atomlar arasında bağlar oluşturun." #: qtplugins/bonding/bonding.cpp:77 #, fuzzy @@ -2109,7 +2106,7 @@ msgstr "İp" #: qtplugins/cartoons/cartoons.h:34 msgid "Display of biomolecule ribbons / cartoons." -msgstr "" +msgstr "Biyomolekül şeritlerinin / karikatürlerinin gösterimi." #: qtplugins/centroid/centroid.cpp:20 #, fuzzy @@ -2119,12 +2116,12 @@ msgstr "Kısıtlama ekle" #: qtplugins/centroid/centroid.cpp:21 msgid "Add Center of Mass" -msgstr "" +msgstr "Kütle Merkezi Ekleme" #: qtplugins/centroid/centroid.cpp:23 msgctxt "add a point normal to the plane of the molecule" msgid "Add Perpendicular" -msgstr "" +msgstr "Dikme Ekle" #: qtplugins/centroid/centroid.h:26 #, fuzzy @@ -2134,7 +2131,7 @@ msgstr "Ortala" #: qtplugins/centroid/centroid.h:30 msgid "Add centroids and center-of-mass." -msgstr "" +msgstr "Merkezleri ve kütle merkezini ekleyin." #. i18n: file: qtplugins/bonding/bondingdialog.ui:41 #. i18n: ectx: property (suffix), widget (QDoubleSpinBox, toleranceSpinBox) @@ -3505,10 +3502,8 @@ msgstr "[molekül yok]" #. i18n: ectx: property (text), widget (QLabel, label_3) #: qtplugins/molecularproperties/molecularpropertiesdialog.cpp:217 #: qtplugins/molecularproperties/molecularpropertiesdialog.cpp:228:1111 -#, fuzzy -#| msgid "Molecular Dynamics" msgid "Molecule Name:" -msgstr "Molekül Dinamikleri" +msgstr "Molekül Adı:" #. i18n: file: qtplugins/molecularproperties/molecularpropertiesdialog.ui:35 #. i18n: ectx: property (text), widget (QLabel, label_4) @@ -3582,10 +3577,8 @@ msgid " °" msgstr "" #: qtplugins/noncovalent/noncovalent.cpp:368 -#, fuzzy -#| msgid "Set Tolerance…" msgid "Angle tolerance:" -msgstr "Toleransı Ayarla…" +msgstr "Açı toleransı:" #: qtplugins/noncovalent/noncovalent.h:34 msgid "Render a few non-covalent interactions." @@ -5789,10 +5782,8 @@ msgstr "" #. i18n: file: qtplugins/forcefield/forcefielddialog.ui:45 #. i18n: ectx: property (text), widget (QLabel, label_2) -#, fuzzy -#| msgid "Energy and Forces" msgid "Energy convergence:" -msgstr "Enerji ve Kuvvetler" +msgstr "Enerji yakınsaması:" #. i18n: file: qtplugins/forcefield/forcefielddialog.ui:52 #. i18n: ectx: property (text), widget (QLabel, label_5) @@ -5922,7 +5913,7 @@ msgstr "" #. i18n: file: qtplugins/importpqr/pqrwidget.ui:106 #. i18n: ectx: property (text), widget (QLabel, label_5) msgid "Formula:" -msgstr "" +msgstr "Formül:" #. i18n: file: qtplugins/importpqr/pqrwidget.ui:132 #. i18n: ectx: property (text), widget (QPushButton, downloadButton) From 9aaf50383f236e8acc737465bc5aebbd4c56f305 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Tue, 5 Dec 2023 12:41:56 -0500 Subject: [PATCH 51/56] Add initial support for copy from tables Should add a context menu too Signed-off-by: Geoff Hutchison --- .../qtplugins/propertytables/propertyview.cpp | 43 ++++++++++++++++++- .../qtplugins/propertytables/propertyview.h | 4 ++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/avogadro/qtplugins/propertytables/propertyview.cpp b/avogadro/qtplugins/propertytables/propertyview.cpp index f9591e4d09..182bbed6d2 100644 --- a/avogadro/qtplugins/propertytables/propertyview.cpp +++ b/avogadro/qtplugins/propertytables/propertyview.cpp @@ -7,9 +7,13 @@ #include +#include +#include #include #include -#include +#include +#include + #include #include #include @@ -145,4 +149,41 @@ void PropertyView::hideEvent(QHideEvent*) this->deleteLater(); } +void PropertyView::keyPressEvent(QKeyEvent* event) +{ + // handle copy event + // thanks to https://www.walletfox.com/course/qtableviewcopypaste.php + if (!event->matches(QKeySequence::Copy)) { + QTableView::keyPressEvent(event); + return; + } + + // get the selected rows (if any) + QModelIndexList selectedRows = selectionModel()->selectedRows(); + + // if nothing is selected, copy everything to the clipboard + QString text; + if (selectedRows.isEmpty()) { + // iterate through every row and column and copy the data + for (int i = 0; i < model()->rowCount(); ++i) { + QStringList rowContents; + for (int j = 0; j < model()->columnCount(); ++j) + rowContents << model()->index(i, j).data().toString(); + text += rowContents.join("\t"); + text += "\n"; + } + } else { + // copy the selected rows to the clipboard + QItemSelectionRange range = selectionModel()->selection().first(); + for (auto i = range.top(); i <= range.bottom(); ++i) { + QStringList rowContents; + for (auto j = range.left(); j <= range.right(); ++j) + rowContents << model()->index(i, j).data().toString(); + text += rowContents.join("\t"); + text += "\n"; + } + } + QApplication::clipboard()->setText(text); +} + } // end namespace Avogadro diff --git a/avogadro/qtplugins/propertytables/propertyview.h b/avogadro/qtplugins/propertytables/propertyview.h index c0d2c90c5f..b6cfba77ac 100644 --- a/avogadro/qtplugins/propertytables/propertyview.h +++ b/avogadro/qtplugins/propertytables/propertyview.h @@ -30,6 +30,10 @@ class PropertyView : public QTableView void setSourceModel(PropertyModel* model) { m_model = model; } void hideEvent(QHideEvent* event); +protected: + // copy the selected properties to the clipboard + void keyPressEvent(QKeyEvent *event); + private: PropertyType m_type; QtGui::Molecule* m_molecule; From 36cf5c4dc2c08fb718e24a3ef2763ac1a6338a8f Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Tue, 5 Dec 2023 12:46:00 -0500 Subject: [PATCH 52/56] Fix formatting Signed-off-by: Geoff Hutchison --- avogadro/qtplugins/propertytables/propertyview.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/avogadro/qtplugins/propertytables/propertyview.h b/avogadro/qtplugins/propertytables/propertyview.h index b6cfba77ac..19323ce582 100644 --- a/avogadro/qtplugins/propertytables/propertyview.h +++ b/avogadro/qtplugins/propertytables/propertyview.h @@ -13,7 +13,7 @@ class QProgressDialog; namespace Avogadro { -namespace QtGui{ +namespace QtGui { class Molecule; } @@ -21,7 +21,6 @@ class PropertyView : public QTableView { Q_OBJECT public: - explicit PropertyView(PropertyType type, QWidget* parent = 0); void selectionChanged(const QItemSelection& selected, @@ -32,7 +31,7 @@ class PropertyView : public QTableView protected: // copy the selected properties to the clipboard - void keyPressEvent(QKeyEvent *event); + void keyPressEvent(QKeyEvent* event); private: PropertyType m_type; From 548ac3cba0be6c7bfcd9d97fdb0a9e3728388245 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Wed, 6 Dec 2023 11:56:15 -0500 Subject: [PATCH 53/56] Make sure to automatically load the "Meshes" display type Signed-off-by: Geoff Hutchison --- avogadro/qtplugins/surfaces/surfaces.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/avogadro/qtplugins/surfaces/surfaces.cpp b/avogadro/qtplugins/surfaces/surfaces.cpp index 375af870b8..bb4b070cf7 100644 --- a/avogadro/qtplugins/surfaces/surfaces.cpp +++ b/avogadro/qtplugins/surfaces/surfaces.cpp @@ -728,6 +728,10 @@ void Surfaces::displayMesh() m_meshGenerator1->start(); m_meshGenerator2->start(); + QStringList displayTypes; + displayTypes << tr("Meshes"); + requestActiveDisplayTypes(displayTypes); + // Track how many meshes are left to show. m_meshesLeft = 2; } From 3931456f764e0754cc164cf016afee168225f995 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Wed, 6 Dec 2023 11:57:40 -0500 Subject: [PATCH 54/56] Add conformer search box (#1507) * Add conformer search dialog from Avogadro v1 Connect dialog to obprocess with appropriate options Signed-off-by: Geoff Hutchison --- avogadro/qtplugins/openbabel/CMakeLists.txt | 2 + .../openbabel/conformersearchdialog.cpp | 172 ++++++++++++ .../openbabel/conformersearchdialog.h | 50 ++++ .../openbabel/conformersearchdialog.ui | 253 ++++++++++++++++++ avogadro/qtplugins/openbabel/obprocess.cpp | 96 ++++++- avogadro/qtplugins/openbabel/obprocess.h | 24 +- avogadro/qtplugins/openbabel/openbabel.cpp | 213 ++++++++++++++- avogadro/qtplugins/openbabel/openbabel.h | 15 +- 8 files changed, 794 insertions(+), 31 deletions(-) create mode 100644 avogadro/qtplugins/openbabel/conformersearchdialog.cpp create mode 100644 avogadro/qtplugins/openbabel/conformersearchdialog.h create mode 100644 avogadro/qtplugins/openbabel/conformersearchdialog.ui diff --git a/avogadro/qtplugins/openbabel/CMakeLists.txt b/avogadro/qtplugins/openbabel/CMakeLists.txt index 25073c7c95..126601023f 100644 --- a/avogadro/qtplugins/openbabel/CMakeLists.txt +++ b/avogadro/qtplugins/openbabel/CMakeLists.txt @@ -3,6 +3,7 @@ if(QT_VERSION EQUAL 6) endif() set(openbabel_srcs + conformersearchdialog.cpp obcharges.cpp obfileformat.cpp obforcefielddialog.cpp @@ -11,6 +12,7 @@ set(openbabel_srcs ) set(openbabel_uis + conformersearchdialog.ui obforcefielddialog.ui ) diff --git a/avogadro/qtplugins/openbabel/conformersearchdialog.cpp b/avogadro/qtplugins/openbabel/conformersearchdialog.cpp new file mode 100644 index 0000000000..af7e0769b9 --- /dev/null +++ b/avogadro/qtplugins/openbabel/conformersearchdialog.cpp @@ -0,0 +1,172 @@ +/****************************************************************************** + This source file is part of the Avogadro project. + This source code is released under the 3-Clause BSD License, (see "LICENSE"). +******************************************************************************/ + +#include "conformersearchdialog.h" + +#include +#include +#include + +namespace Avogadro { + +ConformerSearchDialog::ConformerSearchDialog(QWidget* parent, Qt::WindowFlags f) + : QDialog(parent, f) +{ + ui.setupUi(this); + + connect(ui.systematicRadio, SIGNAL(toggled(bool)), this, + SLOT(systematicToggled(bool))); + connect(ui.randomRadio, SIGNAL(toggled(bool)), this, + SLOT(randomToggled(bool))); + connect(ui.weightedRadio, SIGNAL(toggled(bool)), this, + SLOT(weightedToggled(bool))); + connect(ui.geneticRadio, SIGNAL(toggled(bool)), this, + SLOT(geneticToggled(bool))); + + connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton*)), this, + SLOT(buttonClicked(QAbstractButton*))); + + m_method = 1; // systematic + m_numConformers = 100; + + ui.numSpin->setValue(0); + ui.systematicRadio->setChecked(true); + ui.randomRadio->setChecked(false); + ui.weightedRadio->setChecked(false); + ui.geneticRadio->setChecked(false); + ui.childrenSpinBox->setEnabled(false); + ui.mutabilitySpinBox->setEnabled(false); + ui.convergenceSpinBox->setEnabled(false); + ui.scoringComboBox->setEnabled(false); +} + +ConformerSearchDialog::~ConformerSearchDialog() {} + +void ConformerSearchDialog::buttonClicked(QAbstractButton* button) +{ + if (button == ui.buttonBox->button(QDialogButtonBox::Ok)) { + emit accepted(); + } + close(); +} + +QStringList ConformerSearchDialog::options() const +{ + QStringList options; + + // in OB v3.2 + options << "--steps" << QString::number(ui.optimizationStepsSpinBox->value()); + + if (ui.systematicRadio->isChecked()) + options << "--systematic"; + else if (ui.randomRadio->isChecked()) { + options << "--random"; + options << "--nconf" << QString::number(ui.numSpin->value()); + } else if (ui.weightedRadio->isChecked()) { + options << "--weighted"; + options << "--nconf" << QString::number(ui.numSpin->value()); + } else if (ui.geneticRadio->isChecked()) { + // genetic is the default, no need to specify + options << "--nconf" << QString::number(ui.numSpin->value()); + options << "--children" << QString::number(ui.childrenSpinBox->value()); + options << "--mutability" << QString::number(ui.mutabilitySpinBox->value()); + options << "--convergence" + << QString::number(ui.convergenceSpinBox->value()); + options << "--scoring" << ui.scoringComboBox->currentText(); + } + + return options; +} + +void ConformerSearchDialog::systematicToggled(bool checked) +{ + if (checked) { + m_method = 1; + ui.systematicRadio->setChecked(true); + ui.randomRadio->setChecked(false); + ui.weightedRadio->setChecked(false); + ui.geneticRadio->setChecked(false); + ui.childrenSpinBox->setEnabled(false); + ui.mutabilitySpinBox->setEnabled(false); + ui.convergenceSpinBox->setEnabled(false); + ui.scoringComboBox->setEnabled(false); + + ui.numSpin->setEnabled(false); + ui.numSpin->setValue(0); + } +} + +void ConformerSearchDialog::randomToggled(bool checked) +{ + if (checked) { + m_method = 2; + ui.systematicRadio->setChecked(false); + ui.randomRadio->setChecked(true); + ui.weightedRadio->setChecked(false); + ui.geneticRadio->setChecked(false); + ui.childrenSpinBox->setEnabled(false); + ui.mutabilitySpinBox->setEnabled(false); + ui.convergenceSpinBox->setEnabled(false); + ui.scoringComboBox->setEnabled(false); + ui.numSpin->setEnabled(true); + ui.numSpin->setValue(100); + } +} + +void ConformerSearchDialog::weightedToggled(bool checked) +{ + if (checked) { + m_method = 3; + ui.systematicRadio->setChecked(false); + ui.randomRadio->setChecked(false); + ui.weightedRadio->setChecked(true); + ui.geneticRadio->setChecked(false); + ui.childrenSpinBox->setEnabled(false); + ui.mutabilitySpinBox->setEnabled(false); + ui.convergenceSpinBox->setEnabled(false); + ui.scoringComboBox->setEnabled(false); + ui.numSpin->setEnabled(true); + ui.numSpin->setValue(100); + } +} + +void ConformerSearchDialog::geneticToggled(bool checked) +{ + if (checked) { + m_method = 4; + ui.systematicRadio->setChecked(false); + ui.randomRadio->setChecked(false); + ui.weightedRadio->setChecked(false); + ui.geneticRadio->setChecked(true); + ui.childrenSpinBox->setEnabled(true); + ui.mutabilitySpinBox->setEnabled(true); + ui.convergenceSpinBox->setEnabled(true); + ui.scoringComboBox->setEnabled(true); + ui.numSpin->setEnabled(true); + ui.numSpin->setValue(100); + } +} + +void ConformerSearchDialog::accept() +{ + m_numConformers = ui.numSpin->value(); + hide(); +} + +void ConformerSearchDialog::reject() +{ + hide(); +} + +int ConformerSearchDialog::numConformers() +{ + return m_numConformers; +} + +int ConformerSearchDialog::method() +{ + return m_method; +} +} // namespace Avogadro diff --git a/avogadro/qtplugins/openbabel/conformersearchdialog.h b/avogadro/qtplugins/openbabel/conformersearchdialog.h new file mode 100644 index 0000000000..82742db83d --- /dev/null +++ b/avogadro/qtplugins/openbabel/conformersearchdialog.h @@ -0,0 +1,50 @@ +/****************************************************************************** + This source file is part of the Avogadro project. + This source code is released under the 3-Clause BSD License, (see "LICENSE"). +******************************************************************************/ + +#ifndef CONFORMERSEARCHDIALOG_H +#define CONFORMERSEARCHDIALOG_H + +#include + +#include "ui_conformersearchdialog.h" + +namespace Avogadro { +class ConformerSearchDialog : public QDialog +{ + Q_OBJECT + +public: + //! Constructor + explicit ConformerSearchDialog(QWidget* parent = 0, Qt::WindowFlags f = 0); + //! Desconstructor + ~ConformerSearchDialog(); + + int method(); + int numConformers(); + + QStringList options() const; + +public slots: + void accept(); + void reject(); + void systematicToggled(bool checked); + void randomToggled(bool checked); + void weightedToggled(bool checked); + void geneticToggled(bool checked); + + void buttonClicked(QAbstractButton* button); + +signals: + void accepted(); + +private: + Ui::ConformerSearchDialog ui; + + int m_method; + int m_numConformers; +}; +} // namespace Avogadro + +#endif diff --git a/avogadro/qtplugins/openbabel/conformersearchdialog.ui b/avogadro/qtplugins/openbabel/conformersearchdialog.ui new file mode 100644 index 0000000000..86542e79f4 --- /dev/null +++ b/avogadro/qtplugins/openbabel/conformersearchdialog.ui @@ -0,0 +1,253 @@ + + + ConformerSearchDialog + + + + 0 + 0 + 338 + 400 + + + + Conformer Search + + + + + + Method + + + + + + Number of conformers: + + + + + + + 10000 + + + + + + + Systematic rotor search + + + + + + + Random rotor search + + + + + + + Weighted rotor search + + + + + + + Genetic algorithm search + + + + + + + Optimization per conformer: + + + + + + + steps + + + 5 + + + 250 + + + 25 + + + + + + + + + + Genetic Algorithm Options + + + + + + + + number of children for each parent geometry + + + Children: + + + + + + + number of children for each parent geometry + + + 1 + + + 9999 + + + 5 + + + + + + + mutation frequency (lower = more frequent mutations) + + + Mutability: + + + + + + + mutation frequency (lower = more frequent mutations) + + + 1 + + + 9999 + + + 5 + + + + + + + number of identical generations before convergence is reached + + + Convergence: + + + + + + + number of identical generations before convergence is reached + + + 2 + + + 999 + + + 25 + + + + + + + Scoring method: + + + + + + + scoring method for the genetic algorithm (RMSD = geometric distance, energy = lowest energies) + + + + RMSD + + + + + Energy + + + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + ConformerSearchDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + ConformerSearchDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/avogadro/qtplugins/openbabel/obprocess.cpp b/avogadro/qtplugins/openbabel/obprocess.cpp index 30cb3f5222..78a1de0793 100644 --- a/avogadro/qtplugins/openbabel/obprocess.cpp +++ b/avogadro/qtplugins/openbabel/obprocess.cpp @@ -232,8 +232,8 @@ void OBProcess::convertPrepareOutput() // Check for errors. QString errorOutput = QString::fromLatin1(m_process->readAllStandardError()); QRegularExpression errorChecker("\\b0 molecules converted\\b" - "|" - "obabel: cannot read input format!"); + "|" + "obabel: cannot read input format!"); if (!errorOutput.contains(errorChecker)) { if (m_process->exitStatus() == QProcess::NormalExit) output = m_process->readAllStandardOutput(); @@ -342,9 +342,7 @@ bool OBProcess::calculateCharges(const QByteArray& mol, realOptions << "-icml"; } realOptions << "-onul" // ignore the output - << "--partialcharge" - << type.c_str() - << "--print"; + << "--partialcharge" << type.c_str() << "--print"; // Start the optimization executeObabel(realOptions, this, SLOT(chargesPrepareOutput()), mol); @@ -364,8 +362,8 @@ void OBProcess::chargesPrepareOutput() // Check for errors. QString errorOutput = QString::fromLatin1(m_process->readAllStandardError()); QRegularExpression errorChecker("\\b0 molecules converted\\b" - "|" - "obabel: cannot read input format!"); + "|" + "obabel: cannot read input format!"); if (!errorOutput.contains(errorChecker)) { if (m_process->exitStatus() == QProcess::NormalExit) output = m_process->readAllStandardOutput(); @@ -384,7 +382,7 @@ void OBProcess::chargesPrepareOutput() double charge = line.toDouble(&ok); if (!ok) break; - + charges.push_back(charge); } @@ -426,6 +424,40 @@ bool OBProcess::optimizeGeometry(const QByteArray& mol, return true; } +bool OBProcess::generateConformers(const QByteArray& mol, + const QStringList& options, + const std::string format) +{ + if (!tryLockProcess()) { + qWarning() << "OBProcess::generateConformers(): process already in use."; + return false; + } + + QStringList realOptions; + if (format == "cjson") { + realOptions << "-icjson" + << "-ocjson"; + } else { + realOptions << "-icml" + << "-ocml"; + } + realOptions << "--conformer" + << "--noh" // new in OB 3.0.1 + << "--log" << options; + + // We'll need to read the log (printed to stderr) to update progress + connect(m_process, SIGNAL(readyReadStandardError()), + SLOT(conformerReadLog())); + + // Initialize the log reader ivars + m_optimizeGeometryLog.clear(); + m_maxConformers = -1; + + // Start the optimization + executeObabel(realOptions, this, SLOT(conformerPrepare()), mol); + return true; +} + void OBProcess::optimizeGeometryPrepare() { if (m_aborted) { @@ -439,6 +471,19 @@ void OBProcess::optimizeGeometryPrepare() emit optimizeGeometryFinished(result); } +void OBProcess::conformerPrepare() +{ + if (m_aborted) { + releaseProcess(); + return; + } + + QByteArray result = m_process->readAllStandardOutput(); + + releaseProcess(); + emit generateConformersFinished(result); +} + void OBProcess::optimizeGeometryReadLog() { // Append the current stderr to the log @@ -468,13 +513,44 @@ void OBProcess::optimizeGeometryReadLog() } } +void OBProcess::conformerReadLog() +{ + // Append the current stderr to the log + // (we're grabbing the log from the geometry optimization) + m_optimizeGeometryLog += + QString::fromLatin1(m_process->readAllStandardError()); + + // Search for the maximum number of steps if we haven't found it yet + if (m_optimizeGeometryMaxSteps < 0) { + QRegExp maxStepsParser("\nSTEPS = ([0-9]+)\n\n"); + if (maxStepsParser.indexIn(m_optimizeGeometryLog) != -1) { + m_optimizeGeometryMaxSteps = maxStepsParser.cap(1).toInt(); + emit optimizeGeometryStatusUpdate(0, m_optimizeGeometryMaxSteps, 0.0, + 0.0); + } + } + + // Emit the last printed step + if (m_optimizeGeometryMaxSteps >= 0) { + QRegExp lastStepParser(R"(\n\s*([0-9]+)\s+([-0-9.]+)\s+([-0-9.]+)\n)"); + if (lastStepParser.lastIndexIn(m_optimizeGeometryLog) != -1) { + int step = lastStepParser.cap(1).toInt(); + double energy = lastStepParser.cap(2).toDouble(); + double lastEnergy = lastStepParser.cap(3).toDouble(); + emit optimizeGeometryStatusUpdate(step, m_optimizeGeometryMaxSteps, + energy, lastEnergy); + } + } +} + void OBProcess::executeObabel(const QStringList& options, QObject* receiver, const char* slot, const QByteArray& obabelStdin) { // Setup exit handler if (receiver) { connect(m_process, SIGNAL(finished(int)), receiver, slot); - connect(m_process, SIGNAL(errorOccurred(QProcess::ProcessError)), receiver, slot); + connect(m_process, SIGNAL(errorOccurred(QProcess::ProcessError)), receiver, + slot); connect(m_process, SIGNAL(errorOccurred(QProcess::ProcessError)), this, SLOT(obError())); } @@ -498,4 +574,4 @@ void OBProcess::resetState() connect(this, SIGNAL(aborted()), m_process, SLOT(kill())); } -} // namespace Avogadro +} // namespace Avogadro::QtPlugins diff --git a/avogadro/qtplugins/openbabel/obprocess.h b/avogadro/qtplugins/openbabel/obprocess.h index 94aeedd7ba..bbafcf11ee 100644 --- a/avogadro/qtplugins/openbabel/obprocess.h +++ b/avogadro/qtplugins/openbabel/obprocess.h @@ -3,7 +3,6 @@ This source code is released under the 3-Clause BSD License, (see "LICENSE"). ******************************************************************************/ - #ifndef AVOGADRO_QTPLUGINS_OBPROCESS_H #define AVOGADRO_QTPLUGINS_OBPROCESS_H @@ -271,7 +270,7 @@ public slots: * optimization finishes, optimizeGeometryFinished will be emitted with the * result of the optimization. * - * The optimization is started with, e.g. + * The optimization is started with, e.g. * `obabel -icml -ocml --minimize ` * * The standard output is recorded and returned by optimizeGeometryFinished. @@ -281,13 +280,17 @@ public slots: * * @return True if the process started successfully, false otherwise. */ - bool optimizeGeometry(const QByteArray& cml, const QStringList& options, std::string format = "cml"); + bool optimizeGeometry(const QByteArray& cml, const QStringList& options, + std::string format = "cml"); + bool generateConformers(const QByteArray& cml, const QStringList& options, + std::string format = "cml"); signals: /** * Emitted with the standard output of the process when it finishes. * If an error occurs, the argument will not be valid CML. */ void optimizeGeometryFinished(const QByteArray& cml); + void generateConformersFinished(const QByteArray& cml); /** * Emitted every 10 steps of the optimization to indicate the current * progress. @@ -300,9 +303,14 @@ public slots: */ void optimizeGeometryStatusUpdate(int step, int maxSteps, double currentEnergy, double lastEnergy); + + void conformerStatusUpdate(int step, int maxSteps, double currentEnergy, + double lastEnergy); private slots: void optimizeGeometryPrepare(); void optimizeGeometryReadLog(); + void conformerPrepare(); + void conformerReadLog(); // end Force Fields doxygen group /**@}*/ @@ -331,7 +339,7 @@ public slots: */ bool queryCharges(); - signals: +signals: /** * Triggered when the process started by queryCharges() completes. * @param charges The charge models supported by OpenBabel. Keys @@ -359,11 +367,14 @@ public slots: * indicate return status along with the charges as text. * * The process is performed as: - * `obabel -i -onul --partialcharge --print < input > output` + * `obabel -i -onul --partialcharge --print < input > + * output` * * @return True if the process started successfully, false otherwise. */ - bool calculateCharges(const QByteArray& input, const std::string& inFormat = "cml", const std::string& type = "mmff94"); + bool calculateCharges(const QByteArray& input, + const std::string& inFormat = "cml", + const std::string& type = "mmff94"); private slots: void chargesPrepareOutput(); @@ -423,6 +434,7 @@ executeObabel(options, this, SLOT(mySlot())); // Optimize geometry ivars: int m_optimizeGeometryMaxSteps; + unsigned m_maxConformers; QString m_optimizeGeometryLog; }; diff --git a/avogadro/qtplugins/openbabel/openbabel.cpp b/avogadro/qtplugins/openbabel/openbabel.cpp index c461ccc73d..6abb19b2cc 100644 --- a/avogadro/qtplugins/openbabel/openbabel.cpp +++ b/avogadro/qtplugins/openbabel/openbabel.cpp @@ -5,6 +5,7 @@ #include "openbabel.h" +#include "conformersearchdialog.h" #include "obcharges.h" #include "obfileformat.h" #include "obforcefielddialog.h" @@ -38,7 +39,8 @@ namespace Avogadro::QtPlugins { OpenBabel::OpenBabel(QObject* p) : ExtensionPlugin(p), m_molecule(nullptr), m_process(new OBProcess(this)), m_readFormatsPending(true), m_writeFormatsPending(true), - m_defaultFormat("cjson"), m_progress(nullptr) + m_defaultFormat("cml"), m_progress(nullptr), + m_conformerSearchDialog(nullptr) { auto* action = new QAction(this); action->setEnabled(true); @@ -53,6 +55,12 @@ OpenBabel::OpenBabel(QObject* p) connect(action, SIGNAL(triggered()), SLOT(onConfigureGeometryOptimization())); m_actions.push_back(action); + action = new QAction(this); + action->setEnabled(true); + action->setText(tr("Conformer Search…")); + connect(action, SIGNAL(triggered()), SLOT(onConfigureConformerSearch())); + m_actions.push_back(action); + action = new QAction(this); action->setEnabled(true); action->setText(tr("Perceive Bonds")); @@ -83,16 +91,14 @@ OpenBabel::OpenBabel(QObject* p) refreshCharges(); QString info = openBabelInfo(); - /* if (info.isEmpty()) { qWarning() << tr("%1 not found! Disabling Open Babel plugin actions.") .arg(OBProcess().obabelExecutable()); foreach (QAction* a, m_actions) a->setEnabled(false); } else { - */ - qDebug() << OBProcess().obabelExecutable() << " found: " << info; - // } + qDebug() << OBProcess().obabelExecutable() << " found: " << info; + } } OpenBabel::~OpenBabel() {} @@ -129,7 +135,6 @@ QList OpenBabel::fileFormats() const auto toSet = [&](const QList& list) { return QSet(list.begin(), list.end()); }; - QSet formatDescriptions; formatDescriptions.unite(toSet(m_readFormats.uniqueKeys())); formatDescriptions.unite(toSet(m_writeFormats.uniqueKeys())); @@ -259,9 +264,11 @@ void OpenBabel::handleReadFormatUpdate(const QMultiMap& fmts) emit fileFormatsReady(); // Update the default format if cjson is available - if (!m_readFormats.contains("Chemical JSON") && - !m_writeFormats.contains("Chemical JSON")) { - m_defaultFormat = "cml"; + if (m_readFormats.contains("Chemical JSON") && + m_writeFormats.contains("Chemical JSON")) { + m_defaultFormat = "cjson"; + + qDebug() << "Setting default format to cjson."; } } } @@ -294,9 +301,10 @@ void OpenBabel::handleWriteFormatUpdate(const QMultiMap& fmts) emit fileFormatsReady(); // Update the default format if cjson is available - if (!m_readFormats.contains("Chemical JSON") && - !m_writeFormats.contains("Chemical JSON")) { - m_defaultFormat = "cml"; + if (m_readFormats.contains("Chemical JSON") && + m_writeFormats.contains("Chemical JSON")) { + m_defaultFormat = "cjson"; + qDebug() << "Setting default format to cjson."; } } } @@ -382,6 +390,33 @@ void OpenBabel::onConfigureGeometryOptimization() settings.setValue("openbabel/optimizeGeometry/lastOptions", options); } +void OpenBabel::onConfigureConformerSearch() +{ + // If the force field map is empty, there is probably a problem with the + // obabel executable. Warn the user and return. + if (m_forceFields.isEmpty()) { + QMessageBox::critical(qobject_cast(parent()), tr("Error"), + tr("An error occurred while retrieving the list of " + "supported forcefields. (using '%1').") + .arg(m_process->obabelExecutable()), + QMessageBox::Ok); + return; + } + + QSettings settings; + QStringList options = + settings.value("openbabel/conformerSearch/lastOptions").toStringList(); + + if (m_conformerSearchDialog == nullptr) { + m_conformerSearchDialog = + new ConformerSearchDialog(qobject_cast(parent())); + connect(m_conformerSearchDialog, SIGNAL(accepted()), this, + SLOT(onGenerateConformers())); + } + // todo set options from last run + m_conformerSearchDialog->show(); +} + void OpenBabel::onOptimizeGeometry() { if (!m_molecule || m_molecule->atomCount() == 0) { @@ -430,7 +465,7 @@ void OpenBabel::onOptimizeGeometry() // Setup progress dialog initializeProgressDialog(tr("Optimizing Geometry (Open Babel)"), - tr("Generating MDL…"), 0, 0, 0); + tr("Generating…"), 0, 0, 0); // Connect process disconnect(m_process); @@ -527,6 +562,158 @@ void OpenBabel::onOptimizeGeometryFinished(const QByteArray& output) m_progress->reset(); } +void OpenBabel::onGenerateConformers() +{ + if (!m_molecule || m_molecule->atomCount() == 0) { + QMessageBox::critical(qobject_cast(parent()), tr("Error"), + tr("Molecule invalid. Cannot generate conformers."), + QMessageBox::Ok); + return; + } + + // If the force field map is empty, there is probably a problem with the + // obabel executable. Warn the user and return. + if (m_forceFields.isEmpty()) { + QMessageBox::critical(qobject_cast(parent()), tr("Error"), + tr("An error occurred while retrieving the list of " + "supported forcefields. (using '%1').") + .arg(m_process->obabelExecutable()), + QMessageBox::Ok); + return; + } + + // Fail here if the process is already in use + if (m_process->inUse()) { + showProcessInUseError(tr("Cannot generate conformers with Open Babel.")); + return; + } + + if (m_conformerSearchDialog == nullptr) { + return; // should't happen + } + + QSettings settings; + QStringList options = m_conformerSearchDialog->options(); + + QStringList ffOptions = + settings.value("openbabel/optimizeGeometry/lastOptions").toStringList(); + bool autoDetect = + settings.value("openbabel/optimizeGeometry/autoDetect", true).toBool(); + + if (autoDetect) { + QString ff = autoDetectForceField(); + int ffIndex = ffOptions.indexOf("--ff"); + if (ffIndex >= 0) { + // Shouldn't happen, but just to be safe... + if (ffIndex + 1 == ffOptions.size()) + ffOptions << ff; + else + ffOptions[ffIndex + 1] = ff; + } else { + ffOptions << "--ff" << ff; + } + } + + options << ffOptions; + + // Setup progress dialog + initializeProgressDialog(tr("Generating Conformers (Open Babel)"), + tr("Generating…"), 0, 0, 0); + + // Connect process + disconnect(m_process); + m_process->disconnect(this); + connect(m_progress, SIGNAL(canceled()), m_process, SLOT(abort())); + connect(m_process, SIGNAL(conformerStatusUpdate(int, int, double, double)), + SLOT(onConformerStatusUpdate(int, int, double, double))); + connect(m_process, SIGNAL(generateConformersFinished(QByteArray)), + SLOT(onGenerateConformersFinished(QByteArray))); + + std::string mol; + if (!Io::FileFormatManager::instance().writeString(*m_molecule, mol, + m_defaultFormat)) { + m_progress->reset(); + QMessageBox::critical( + qobject_cast(parent()), tr("Error"), + tr("An internal error occurred while generating an " + "Open Babel representation of the current molecule."), + QMessageBox::Ok); + return; + } + + m_progress->setLabelText(tr("Starting %1…", "arg is an executable file.") + .arg(m_process->obabelExecutable())); + + // Run obabel + m_process->generateConformers(QByteArray(mol.c_str()), options, + m_defaultFormat); +} + +void OpenBabel::onConformerStatusUpdate(int step, int numSteps, double energy, + double lastEnergy) +{ + QString status; + + if (step == 0) { + status = tr("Step %1 of %2\nCurrent energy: %3\ndE: %4") + .arg(step) + .arg(numSteps) + .arg(fabs(energy) > 1e-10 ? QString::number(energy, 'g', 5) + : QString("(pending)")) + .arg("(pending)"); + } else { + double dE = energy - lastEnergy; + status = tr("Step %1 of %2\nCurrent energy: %3\ndE: %4") + .arg(step) + .arg(numSteps) + .arg(energy, 0, 'g', 5) + .arg(dE, 0, 'g', 5); + } + + m_progress->setRange(0, numSteps); + m_progress->setValue(step); + m_progress->setLabelText(status); +} + +void OpenBabel::onGenerateConformersFinished(const QByteArray& output) +{ + m_progress->setLabelText(tr("Updating molecule…")); + + // output --> molecule + Core::Molecule mol; + if (!Io::FileFormatManager::instance().readString(mol, output.constData(), + m_defaultFormat)) { + m_progress->reset(); + QMessageBox::critical(qobject_cast(parent()), tr("Error"), + tr("Error interpreting Open Babel output."), + QMessageBox::Ok); + qDebug() << "Open Babel:" << output; + return; + } + + /// @todo cache a pointer to the current molecule in the above slot, and + /// verify that we're still operating on the same molecule. + + // Check that the atom count hasn't changed: + if (mol.atomCount() != m_molecule->atomCount()) { + m_progress->reset(); + QMessageBox::critical(qobject_cast(parent()), tr("Error"), + tr("Number of atoms in obabel output (%1) does not " + "match the number of atoms in the original " + "molecule (%2).") + .arg(mol.atomCount()) + .arg(m_molecule->atomCount()), + QMessageBox::Ok); + return; + } + + //@todo .. multiple coordinate sets + m_molecule->undoMolecule()->setAtomPositions3d(mol.atomPositions3d(), + tr("Generate Conformers")); + m_molecule->emitChanged(QtGui::Molecule::Atoms | QtGui::Molecule::Modified); + m_progress->reset(); +} + void OpenBabel::onPerceiveBonds() { // Fail here if the process is already in use diff --git a/avogadro/qtplugins/openbabel/openbabel.h b/avogadro/qtplugins/openbabel/openbabel.h index fd647ffd19..d2c353983f 100644 --- a/avogadro/qtplugins/openbabel/openbabel.h +++ b/avogadro/qtplugins/openbabel/openbabel.h @@ -6,6 +6,8 @@ #ifndef AVOGADRO_QTPLUGINS_OPENBABEL_H #define AVOGADRO_QTPLUGINS_OPENBABEL_H +#include "conformersearchdialog.h" + #include #include @@ -67,12 +69,18 @@ private slots: void handleChargesUpdate(const QMultiMap& chargeMap); void onConfigureGeometryOptimization(); + void onConfigureConformerSearch(); void onOptimizeGeometry(); void onOptimizeGeometryStatusUpdate(int step, int numSteps, double energy, double lastEnergy); void onOptimizeGeometryFinished(const QByteArray& output); + void onGenerateConformers(); + void onConformerStatusUpdate(int step, int numSteps, double energy, + double lastEnergy); + void onGenerateConformersFinished(const QByteArray& output); + void onPerceiveBonds(); void onPerceiveBondsFinished(const QByteArray& output); @@ -100,8 +108,11 @@ private slots: QMultiMap m_charges; std::string m_defaultFormat; QProgressDialog* m_progress; + + ConformerSearchDialog* m_conformerSearchDialog; }; -} -} + +} // namespace QtPlugins +} // namespace Avogadro #endif // AVOGADRO_QTPLUGINS_OPENBABEL_H From fab7265bee5fc10c63f05d58c32ff3f30bf517c9 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Wed, 6 Dec 2023 12:24:01 -0500 Subject: [PATCH 55/56] Only compute one mesh for VdW, etc. and enable mesh at the end Signed-off-by: Geoff Hutchison --- avogadro/qtplugins/surfaces/surfaces.cpp | 49 ++++++++++++++---------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/avogadro/qtplugins/surfaces/surfaces.cpp b/avogadro/qtplugins/surfaces/surfaces.cpp index bb4b070cf7..fc27fc25d3 100644 --- a/avogadro/qtplugins/surfaces/surfaces.cpp +++ b/avogadro/qtplugins/surfaces/surfaces.cpp @@ -65,6 +65,7 @@ using namespace tinycolormap; namespace Avogadro::QtPlugins { using Core::Array; +using Core::Cube; using Core::GaussianSet; using Core::NeighborPerceiver; using QtGui::Molecule; @@ -707,33 +708,36 @@ void Surfaces::displayMesh() } m_meshGenerator1->initialize(m_cube, m_mesh1, -m_isoValue, m_smoothingPasses); - // TODO - only do this if we're generating an orbital - // and we need two meshes - // How do we know? - likely ask the cube if it's an MO? - qDebug() << "Cube " << m_cube->name().c_str() << " type " - << m_cube->cubeType(); + bool isMO = false; + // if it's from a file we should "play it safe" + if (m_cube->cubeType() == Cube::Type::MO || + m_cube->cubeType() == Cube::Type::FromFile) { + isMO = true; + } - if (!m_mesh2) - m_mesh2 = m_molecule->addMesh(); - if (!m_meshGenerator2) { - m_meshGenerator2 = new QtGui::MeshGenerator; - connect(m_meshGenerator2, SIGNAL(finished()), SLOT(meshFinished())); + if (isMO) { + if (!m_mesh2) + m_mesh2 = m_molecule->addMesh(); + if (!m_meshGenerator2) { + m_meshGenerator2 = new QtGui::MeshGenerator; + connect(m_meshGenerator2, SIGNAL(finished()), SLOT(meshFinished())); + } + m_meshGenerator2->initialize(m_cube, m_mesh2, m_isoValue, m_smoothingPasses, + true); } - m_meshGenerator2->initialize(m_cube, m_mesh2, m_isoValue, m_smoothingPasses, - true); // Start the mesh generation - this needs an improved mutex with a read lock // to function as expected. Write locks are exclusive, read locks can have // many read locks but no write lock. m_meshGenerator1->start(); - m_meshGenerator2->start(); - - QStringList displayTypes; - displayTypes << tr("Meshes"); - requestActiveDisplayTypes(displayTypes); + if (isMO) + m_meshGenerator2->start(); // Track how many meshes are left to show. - m_meshesLeft = 2; + if (isMO) + m_meshesLeft = 2; + else + m_meshesLeft = 1; } Core::Color3f Surfaces::chargeGradient(double value, double clamp, @@ -829,6 +833,12 @@ void Surfaces::meshFinished() --m_meshesLeft; if (m_meshesLeft == 0) { colorMesh(); + + // finished, so request to enable the mesh display type + QStringList displayTypes; + displayTypes << tr("Meshes"); + requestActiveDisplayTypes(displayTypes); + if (m_recordingMovie) { // Move to the next frame. qDebug() << "Let's get to the next frame…"; @@ -838,12 +848,9 @@ void Surfaces::meshFinished() if (m_dialog != nullptr) m_dialog->reenableCalculateButton(); - qDebug() << " mesh finished"; - m_molecule->emitChanged(QtGui::Molecule::Added); } } - // TODO: enable the mesh display type } void Surfaces::recordMovie() From 0bdf8c4be483c2596ebe609e29038fe52efd6f27 Mon Sep 17 00:00:00 2001 From: Geoff Hutchison Date: Wed, 6 Dec 2023 12:48:39 -0500 Subject: [PATCH 56/56] Turn down the default smoothing level for speed Signed-off-by: Geoff Hutchison --- avogadro/qtplugins/surfaces/surfacedialog.cpp | 7 ++----- avogadro/qtplugins/surfaces/surfacedialog.ui | 6 +++--- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/avogadro/qtplugins/surfaces/surfacedialog.cpp b/avogadro/qtplugins/surfaces/surfacedialog.cpp index bb9db140e4..bdb455e482 100644 --- a/avogadro/qtplugins/surfaces/surfacedialog.cpp +++ b/avogadro/qtplugins/surfaces/surfacedialog.cpp @@ -120,10 +120,6 @@ void SurfaceDialog::smoothingComboChanged(int n) m_ui->smoothingPassesSpinBox->setValue(0); m_ui->smoothingPassesSpinBox->setEnabled(false); break; - case 1: // Light smoothing - m_ui->smoothingPassesSpinBox->setValue(1); - m_ui->smoothingPassesSpinBox->setEnabled(false); - break; case 2: // Medium smoothing m_ui->smoothingPassesSpinBox->setValue(5); m_ui->smoothingPassesSpinBox->setEnabled(false); @@ -136,8 +132,9 @@ void SurfaceDialog::smoothingComboChanged(int n) m_ui->smoothingPassesSpinBox->setValue(5); m_ui->smoothingPassesSpinBox->setEnabled(true); break; + case 1: // Light smoothing default: - m_ui->smoothingPassesSpinBox->setValue(5); + m_ui->smoothingPassesSpinBox->setValue(1); m_ui->smoothingPassesSpinBox->setEnabled(false); break; } diff --git a/avogadro/qtplugins/surfaces/surfacedialog.ui b/avogadro/qtplugins/surfaces/surfacedialog.ui index 47a3a10c7d..9dd2275271 100644 --- a/avogadro/qtplugins/surfaces/surfacedialog.ui +++ b/avogadro/qtplugins/surfaces/surfacedialog.ui @@ -360,10 +360,10 @@ true
- Medium + Light - 2 + 1 @@ -407,7 +407,7 @@ 1 - 5 + 1