Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kstars for openSUSE:Factory checked 
in at 2023-02-10 14:35:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kstars (Old)
 and      /work/SRC/openSUSE:Factory/.kstars.new.1848 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kstars"

Fri Feb 10 14:35:42 2023 rev:133 rq:1064154 version:3.6.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/kstars/kstars.changes    2023-02-01 
16:46:34.320318775 +0100
+++ /work/SRC/openSUSE:Factory/.kstars.new.1848/kstars.changes  2023-02-10 
14:35:43.306064453 +0100
@@ -1,0 +2,11 @@
+Wed Feb  8 15:20:21 UTC 2023 - Paolo Stivanin <i...@paolostivanin.com>
+
+- Backport multiple fixes from the master branch, because there won't be
+  a new release for the next two months:
+  * Add fix-dir-separator.patch
+  * Add fix-indi-timestamp.patch
+  * Add fix-placeholder-path-part1.patch
+  * Add fix-placeholder-path-part2.patch
+  * Add fix-scheduler.patch
+
+-------------------------------------------------------------------

New:
----
  fix-dir-separator.patch
  fix-indi-timestamp.patch
  fix-placeholder-path-part1.patch
  fix-placeholder-path-part2.patch
  fix-scheduler.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kstars.spec ++++++
--- /var/tmp/diff_new_pack.7UT1eI/_old  2023-02-10 14:35:43.786067321 +0100
+++ /var/tmp/diff_new_pack.7UT1eI/_new  2023-02-10 14:35:43.790067345 +0100
@@ -33,6 +33,11 @@
 Source0:        
https://download.kde.org/stable/%{name}/%{name}-%{version}.tar.xz
 Source1:        
https://download.kde.org/stable/%{name}/%{name}-%{version}.tar.xz.sig
 Source2:        %{name}.keyring
+Patch0:         fix-dir-separator.patch
+Patch1:         fix-indi-timestamp.patch
+Patch2:         fix-placeholder-path-part1.patch
+Patch3:         fix-placeholder-path-part2.patch
+Patch4:         fix-scheduler.patch
 BuildRequires:  Mesa-devel
 BuildRequires:  extra-cmake-modules
 BuildRequires:  fdupes

++++++ fix-dir-separator.patch ++++++
>From 2851932b86752893b9195ef288dbbc8ffcc932d3 Mon Sep 17 00:00:00 2001
From: Jasem Mutlaq <mutla...@ikarustech.com>
Date: Sun, 5 Feb 2023 12:03:35 +0300
Subject: [PATCH] Fix separator replacement mistake

---
 kstars/indi/indicamera.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kstars/indi/indicamera.cpp b/kstars/indi/indicamera.cpp
index 32860f1aa..cbfa070ee 100644
--- a/kstars/indi/indicamera.cpp
+++ b/kstars/indi/indicamera.cpp
@@ -1112,7 +1112,8 @@ void Camera::updateUploadSettings(const QString 
&remoteDir)
         if (uploadT && remoteDir.isEmpty() == false)
         {
             auto uploadDir = remoteDir;
-            uploadDir.replace("/", "\\");
+            // N.B. Need to convert any Windows directory separators / to 
Posix separators /
+            uploadDir.replace("\\", "/");
             IUSaveText(uploadT, uploadDir.toLatin1().constData());
         }
 
-- 
GitLab



++++++ fix-indi-timestamp.patch ++++++
>From 1dbdae3e9082b76be49b9644b5d6669465b03c95 Mon Sep 17 00:00:00 2001
From: Jasem Mutlaq <mutla...@ikarustech.com>
Date: Sun, 5 Feb 2023 11:08:18 +0300
Subject: [PATCH] Use indi_timestamp from INDI GIT

---
 kstars/ekos/align/remoteastrometryparser.cpp |  2 +-
 kstars/indi/indiproperty.cpp                 | 36 ++------------------
 2 files changed, 3 insertions(+), 35 deletions(-)

diff --git a/kstars/ekos/align/remoteastrometryparser.cpp 
b/kstars/ekos/align/remoteastrometryparser.cpp
index 8da379886..0d347db72 100644
--- a/kstars/ekos/align/remoteastrometryparser.cpp
+++ b/kstars/ekos/align/remoteastrometryparser.cpp
@@ -93,7 +93,7 @@ bool RemoteAstrometryParser::startSolver(const QString 
&filename, const QStringL
     solverRunning = true;
 
     
m_RemoteAstrometry->getDriverInfo()->getClientManager()->startBlob(solverBLOB->getDeviceName(),
 solverBLOB->getName(),
-            timestamp());
+            indi_timestamp());
 
     m_RemoteAstrometry->getDriverInfo()->getClientManager()->sendOneBlob(bp);
 
diff --git a/kstars/indi/indiproperty.cpp b/kstars/indi/indiproperty.cpp
index 1a5f839b7..230d44493 100644
--- a/kstars/indi/indiproperty.cpp
+++ b/kstars/indi/indiproperty.cpp
@@ -552,8 +552,6 @@ void INDI_P::processSetButton()
 
 void INDI_P::sendBlob()
 {
-    //int index=0;
-    //bool openingTag=false;
     auto bvp = dataProp.getBLOB();
 
     if (!bvp)
@@ -561,44 +559,14 @@ void INDI_P::sendBlob()
 
     bvp->setState(IPS_BUSY);
 
-    pg->getDevice()->getClientManager()->startBlob(bvp->getDeviceName(), 
bvp->getName(), timestamp());
+    pg->getDevice()->getClientManager()->startBlob(bvp->getDeviceName(), 
bvp->getName(), indi_timestamp());
 
     for (int i = 0; i < elementList.count(); i++)
     {
-        INDI::WidgetView<IBLOB> *bp = bvp->at(i);
-#if (INDI_VERSION_MINOR >= 4 && INDI_VERSION_RELEASE >= 2)
+        auto bp = bvp->at(i);
         pg->getDevice()->getClientManager()->sendOneBlob(bp);
-#else
-        pg->getDevice()->getClientManager()->sendOneBlob(bp->getName(), 
bp->getSize(), bp->getFormat(),
-                const_cast<void *>(bp->getBlob()));
-#endif
     }
 
-    // JM: Why we need dirty here? We should be able to upload multiple time
-    /*foreach(INDI_E *ep, elementList)
-    {
-        if (ep->getBLOBDirty() == true)
-        {
-
-            if (openingTag == false)
-            {
-                pg->getDevice()->getClientManager()->startBlob(bvp->device, 
bvp->name, timestamp());
-                openingTag = true;
-            }
-
-            IBLOB *bp = &(bvp->bp[index]);
-            ep->setBLOBDirty(false);
-
-            //qDebug() << Q_FUNC_INFO << "SENDING BLOB " << bp->name << " has 
size of " << bp->size << " and bloblen of " << bp->bloblen << Qt::endl;
-            pg->getDevice()->getClientManager()->sendOneBlob(bp->name, 
bp->size, bp->format, bp->blob);
-
-        }
-
-        index++;
-
-    }*/
-
-    //if (openingTag)
     pg->getDevice()->getClientManager()->finishBlob();
 
     updateStateLED();
-- 
GitLab



++++++ fix-placeholder-path-part1.patch ++++++
>From ce303ea71075bd687acde19c5f5be504647ec801 Mon Sep 17 00:00:00 2001
From: Jasem Mutlaq <mutla...@ikarustech.com>
Date: Mon, 6 Feb 2023 10:43:13 +0300
Subject: [PATCH] Fix placeholder path on Windows due to hardcoded POSIX
 separators

---
 kstars/auxiliary/ksutils.cpp            | 12 ++++++++++--
 kstars/auxiliary/xplanetimageviewer.cpp |  7 +++----
 kstars/ekos/capture/capture.cpp         | 11 ++++++-----
 kstars/ekos/capture/placeholderpath.cpp |  7 ++-----
 kstars/ekos/focus/focus.cpp             |  2 +-
 kstars/fitsviewer/fitsdata.cpp          |  2 +-
 kstars/indi/indicamera.cpp              |  5 +++--
 kstars/kstars.kcfg                      |  2 +-
 8 files changed, 27 insertions(+), 21 deletions(-)

diff --git a/kstars/auxiliary/ksutils.cpp b/kstars/auxiliary/ksutils.cpp
index 8f4b30f58..664bbcca8 100644
--- a/kstars/auxiliary/ksutils.cpp
+++ b/kstars/auxiliary/ksutils.cpp
@@ -931,11 +931,11 @@ void Logging::UseFile()
         QDir dir;
         QString path =
             
QDir(KSPaths::writableLocation(QStandardPaths::AppLocalDataLocation))
-            .filePath("logs/" + 
QDateTime::currentDateTime().toString("yyyy-MM-dd"));
+                .filePath("logs" + QDir::separator() + 
QDateTime::currentDateTime().toString("yyyy-MM-dd"));
         dir.mkpath(path);
         QString name =
             "log_" + QDateTime::currentDateTime().toString("HH-mm-ss") + 
".txt";
-        _filename = path + QStringLiteral("/") + name;
+        _filename = path + QDir::separator() + name;
 
         // Clear file contents
         QFile file(_filename);
@@ -1131,6 +1131,14 @@ QString getDefaultPath(const QString &option)
 #endif
         return prefix + "/bin/indiserver";
     }
+    else if (option == "PlaceholderFormat")
+    {
+#if defined(Q_OS_WIN)
+        return "\%t\%T\%F\%t_%T_%F";
+#else
+        return "/%t/%T/%F/%t_%T_%F";
+#endif
+    }
     else if (option == "INDIHubAgent")
     {
 #if defined(INDI_PREFIX)
diff --git a/kstars/auxiliary/xplanetimageviewer.cpp 
b/kstars/auxiliary/xplanetimageviewer.cpp
index a169f726e..1365e7fe7 100644
--- a/kstars/auxiliary/xplanetimageviewer.cpp
+++ b/kstars/auxiliary/xplanetimageviewer.cpp
@@ -783,11 +783,10 @@ bool XPlanetImageViewer::setupOutputFile()
     {
         if(m_File.fileName().contains("xplanetfifo") && m_File.exists())
             return true;
-        QDir 
kstarsTempDir(KSPaths::writableLocation(QStandardPaths::TempLocation) + "/" + 
qAppName());
+        QDir 
kstarsTempDir(KSPaths::writableLocation(QStandardPaths::TempLocation) + 
QDir::separator() + qAppName());
         kstarsTempDir.mkpath(".");
         
m_File.setFileName(kstarsTempDir.filePath(QString("xplanetfifo%1.png").arg(QUuid::createUuid().toString().mid(1,
 8)).toLatin1()));
-        int mkFifoSuccess = 0; //Note if the return value of the command is 0 
it succeeded, -1 means it failed.
-        if ((mkFifoSuccess = mkfifo(m_File.fileName().toLatin1(), S_IRUSR | 
S_IWUSR) < 0))
+        if (mkfifo(m_File.fileName().toLatin1(), S_IRUSR | S_IWUSR) < 0)
         {
             KSNotification::error(i18n("Error making FIFO file %1: %2.", 
m_File.fileName(), strerror(errno)));
             return false;
@@ -797,7 +796,7 @@ bool XPlanetImageViewer::setupOutputFile()
 #endif
 
     //If the user is using windows or has not selected to use FIFO, it uses 
files in the KStars data directory.
-    QDir 
xPlanetDirPath(KSPaths::writableLocation(QStandardPaths::AppLocalDataLocation) 
+ "/" + "xplanet");
+    QDir 
xPlanetDirPath(KSPaths::writableLocation(QStandardPaths::AppLocalDataLocation) 
+ QDir::separator() + "xplanet");
     xPlanetDirPath.mkpath(".");
     m_File.setFileName(xPlanetDirPath.filePath(m_ObjectName + ".png"));
     return true;
diff --git a/kstars/ekos/capture/capture.cpp b/kstars/ekos/capture/capture.cpp
index 0d3ff0c40..79fdbeab7 100644
--- a/kstars/ekos/capture/capture.cpp
+++ b/kstars/ekos/capture/capture.cpp
@@ -6859,11 +6859,12 @@ QString Capture::previewFilename(FilenamePreviewType 
previewType)
 {
     QString previewText;
     QString m_format;
+    auto separator = QDir::separator();
 
     if (previewType == LOCAL_PREVIEW)
     {
-        if(!fileDirectoryT->text().endsWith("/") && 
!placeholderFormatT->text().startsWith("/"))
-            placeholderFormatT->setText("/" + placeholderFormatT->text());
+        if(!fileDirectoryT->text().endsWith(separator) && 
!placeholderFormatT->text().startsWith(separator))
+            placeholderFormatT->setText(separator + 
placeholderFormatT->text());
         m_format = fileDirectoryT->text() + placeholderFormatT->text() + 
formatSuffixN->prefix() + formatSuffixN->cleanText();
     }
     else if (previewType == REMOTE_PREVIEW)
@@ -6882,8 +6883,8 @@ QString Capture::previewFilename(FilenamePreviewType 
previewType)
         QString previewSeq;
         if (m_SequenceURL.toLocalFile().isEmpty())
         {
-            if (m_format.startsWith("/"))
-                previewSeq = m_format.left(m_format.lastIndexOf("/"));
+            if (m_format.startsWith(separator))
+                previewSeq = m_format.left(m_format.lastIndexOf(separator));
         }
         else
             previewSeq = m_SequenceURL.toLocalFile();
@@ -6901,7 +6902,7 @@ QString Capture::previewFilename(FilenamePreviewType 
previewType)
 
     // Must change directory separate to UNIX style for remote
     if (previewType == REMOTE_PREVIEW)
-        previewText.replace("/", "\\");
+        previewText.replace(separator, "/");
 
     return previewText;
 }
diff --git a/kstars/ekos/capture/placeholderpath.cpp 
b/kstars/ekos/capture/placeholderpath.cpp
index a47ccaa80..2632121d6 100644
--- a/kstars/ekos/capture/placeholderpath.cpp
+++ b/kstars/ekos/capture/placeholderpath.cpp
@@ -316,10 +316,7 @@ QString PlaceholderPath::generateFilename(const QString 
&directory,
     if (batch_mode)
         currentDir = directory;
     else
-        currentDir = KSPaths::writableLocation(QStandardPaths::TempLocation) + 
QDir::separator() + "kstars/";
-
-    //    if (currentDir.endsWith(QDir::separator()) == false)
-    //        currentDir += QDir::separator();
+        currentDir = KSPaths::writableLocation(QStandardPaths::TempLocation) + 
QDir::separator() + "kstars" + QDir::separator();
 
     QString tempFormat = currentDir + format + "_%s" + 
QString::number(formatSuffix);
 
@@ -465,7 +462,7 @@ QList<int> PlaceholderPath::getCompletedFileIds(const 
SequenceJob &job, const QS
     QRegularExpressionMatch match;
     QRegularExpression re("^" + path_info.fileName() + "$");
     QList<int> ids = {};
-    for (auto name : matchingFiles)
+    for (auto &name : matchingFiles)
     {
         match = re.match(name);
         if (match.hasMatch())
diff --git a/kstars/ekos/focus/focus.cpp b/kstars/ekos/focus/focus.cpp
index e63514822..0a5b789c7 100644
--- a/kstars/ekos/focus/focus.cpp
+++ b/kstars/ekos/focus/focus.cpp
@@ -2229,7 +2229,7 @@ void Focus::setHFRComplete()
         // IS8601 contains colons but they are illegal under Windows OS, so 
replacing them with '-'
         // The timestamp is no longer ISO8601 but it should solve 
interoperality issues between different OS hosts
         QString name     = "autofocus_frame_" + now.toString("HH-mm-ss") + 
".fits.gz";
-        QString filename = path + QStringLiteral("/") + name + 
QStringLiteral("[compress R 100,100]");
+        QString filename = path + QDir::separator() + name + 
QStringLiteral("[compress R 100,100]");
         m_ImageData->saveImage(filename);
     }
 
diff --git a/kstars/fitsviewer/fitsdata.cpp b/kstars/fitsviewer/fitsdata.cpp
index bda15af98..78194e894 100644
--- a/kstars/fitsviewer/fitsdata.cpp
+++ b/kstars/fitsviewer/fitsdata.cpp
@@ -51,7 +51,7 @@
 
 QString getTemporaryPath()
 {
-    return QDir(KSPaths::writableLocation(QStandardPaths::TempLocation) + "/" +
+    return QDir(KSPaths::writableLocation(QStandardPaths::TempLocation) + 
QDir::separator() +
                 qAppName()).path();
 }
 
diff --git a/kstars/indi/indicamera.cpp b/kstars/indi/indicamera.cpp
index cbfa070ee..161e557a2 100644
--- a/kstars/indi/indicamera.cpp
+++ b/kstars/indi/indicamera.cpp
@@ -170,13 +170,14 @@ void Camera::registerProperty(INDI::Property prop)
         if (svp)
         {
             bool ok = false;
+            auto separator = QDir::separator();
             for (const auto &it : *svp)
             {
                 QString key = QString(it.getLabel());
                 double value = key.toDouble(&ok);
                 if (!ok)
                 {
-                    QStringList parts = key.split("/");
+                    QStringList parts = key.split(separator);
                     if (parts.count() == 2)
                     {
                         bool numOk = false, denOk = false;
@@ -1113,7 +1114,7 @@ void Camera::updateUploadSettings(const QString 
&remoteDir)
         {
             auto uploadDir = remoteDir;
             // N.B. Need to convert any Windows directory separators / to 
Posix separators /
-            uploadDir.replace("\\", "/");
+            uploadDir.replace(QDir::separator(), "/");
             IUSaveText(uploadT, uploadDir.toLatin1().constData());
         }
 
diff --git a/kstars/kstars.kcfg b/kstars/kstars.kcfg
index eafcd8890..eab887b28 100644
--- a/kstars/kstars.kcfg
+++ b/kstars/kstars.kcfg
@@ -1787,7 +1787,7 @@
       </entry>
       <entry name="PlaceholderFormat" type="String">
          <label>How to format captured image filename.</label>
-         <default>/%t/%T/%F/%t_%T_%F</default>
+         <default 
code="true">KSUtils::getDefaultPath("PlaceholderFormat")</default>
       </entry>
       <entry name="RemoteCaptureDirectory" type="String">
          <label>Path to remote capture directory to save images.</label>
-- 
GitLab



++++++ fix-placeholder-path-part2.patch ++++++
>From 1530d9eec6140b53bace3cb5afda8c831834c89c Mon Sep 17 00:00:00 2001
From: Jasem Mutlaq <mutla...@ikarustech.com>
Date: Mon, 6 Feb 2023 18:25:12 +0300
Subject: [PATCH] Fix placeholder sequence counter on Windows.

BUGS:465364
FIXED-IN:3.6.3
---
 kstars/auxiliary/ksutils.cpp            |  4 ++--
 kstars/ekos/capture/capture.cpp         |  8 +++-----
 kstars/ekos/capture/placeholderpath.cpp | 27 +++++++++++++++++++++----
 3 files changed, 28 insertions(+), 11 deletions(-)

diff --git a/kstars/auxiliary/ksutils.cpp b/kstars/auxiliary/ksutils.cpp
index 664bbcca8..a9e37efac 100644
--- a/kstars/auxiliary/ksutils.cpp
+++ b/kstars/auxiliary/ksutils.cpp
@@ -1120,7 +1120,7 @@ QString getDefaultPath(const QString &option)
 
     if (option == "fitsDir")
     {
-        return QDir::homePath();
+        return QDir::toNativeSeparators(QDir::homePath());
     }
     else if (option == "indiServer")
     {
@@ -1134,7 +1134,7 @@ QString getDefaultPath(const QString &option)
     else if (option == "PlaceholderFormat")
     {
 #if defined(Q_OS_WIN)
-        return "\%t\%T\%F\%t_%T_%F";
+        return "\\%t\\%T\\%F\\%t_%T_%F";
 #else
         return "/%t/%T/%F/%t_%T_%F";
 #endif
diff --git a/kstars/ekos/capture/capture.cpp b/kstars/ekos/capture/capture.cpp
index 79fdbeab7..2d758f804 100644
--- a/kstars/ekos/capture/capture.cpp
+++ b/kstars/ekos/capture/capture.cpp
@@ -444,7 +444,7 @@ Capture::Capture()
         fileDirectoryT->setText(Options::captureDirectory());
     else
     {
-        fileDirectoryT->setText(QDir::homePath() + QDir::separator() + 
"Pictures");
+        fileDirectoryT->setText(QDir::toNativeSeparators(QDir::homePath() + 
"/Pictures"));
         Options::setCaptureDirectory(fileDirectoryT->text());
     }
 
@@ -3741,13 +3741,11 @@ void Capture::syncTelescopeInfo()
 void Capture::saveFITSDirectory()
 {
     QString dir =
-        QFileDialog::getExistingDirectory(Manager::Instance(), 
i18nc("@title:window", "FITS Save Directory"),
-                                          dirPath.toLocalFile());
-
+        QFileDialog::getExistingDirectory(Manager::Instance(), 
i18nc("@title:window", "FITS Save Directory"),  dirPath.toLocalFile());
     if (dir.isEmpty())
         return;
 
-    fileDirectoryT->setText(dir);
+    fileDirectoryT->setText(QDir::toNativeSeparators(dir));
 }
 
 void Capture::loadSequenceQueue()
diff --git a/kstars/ekos/capture/placeholderpath.cpp 
b/kstars/ekos/capture/placeholderpath.cpp
index 2632121d6..97926b514 100644
--- a/kstars/ekos/capture/placeholderpath.cpp
+++ b/kstars/ekos/capture/placeholderpath.cpp
@@ -316,7 +316,7 @@ QString PlaceholderPath::generateFilename(const QString 
&directory,
     if (batch_mode)
         currentDir = directory;
     else
-        currentDir = KSPaths::writableLocation(QStandardPaths::TempLocation) + 
QDir::separator() + "kstars" + QDir::separator();
+        currentDir = 
QDir::toNativeSeparators(KSPaths::writableLocation(QStandardPaths::TempLocation)
 + "/kstars/");
 
     QString tempFormat = currentDir + format + "_%s" + 
QString::number(formatSuffix);
 
@@ -324,7 +324,12 @@ QString PlaceholderPath::generateFilename(const QString 
&directory,
     QRegularExpression
     // This is the original regex with %p & %d tags - disabled for now to 
simply
     // 
re("(?<replace>\\%(?<name>(filename|f|Datetime|D|Type|T|exposure|e|Filter|F|target|t|sequence|s|directory|d|path|p))(?<level>\\d+)?)(?<sep>[_/])?");
+#if defined(Q_OS_WIN)
+    
re("(?<replace>\\%(?<name>(filename|f|Datetime|D|Type|T|exposure|e|Filter|F|target|t|sequence|s))(?<level>\\d+)?)(?<sep>[_\\\\])?");
+#else
     
re("(?<replace>\\%(?<name>(filename|f|Datetime|D|Type|T|exposure|e|Filter|F|target|t|sequence|s))(?<level>\\d+)?)(?<sep>[_/])?");
+#endif
+
     while ((i = tempFormat.indexOf(re, i, &match)) != -1)
     {
         QString replacement = "";
@@ -408,6 +413,7 @@ QString PlaceholderPath::generateFilename(const QString 
&directory,
         }
         else
             qWarning() << "Unknown replacement string: " << 
match.captured("replace");
+
         if (replacement.isEmpty())
             tempFormat = tempFormat.replace(match.capturedStart(), 
match.capturedLength(), replacement);
         else
@@ -442,7 +448,11 @@ QStringList PlaceholderPath::remainingPlaceholders(const 
QString &filename)
 {
     QList<QString> placeholders = {};
     QRegularExpressionMatch match;
-    QRegularExpression 
re("(?<replace>\\%(?<name>[a-z])(?<level>\\d+)?)(?<sep>[_/])?");
+#if defined(Q_OS_WIN)
+    QRegularExpression 
re("(?<replace>\\%(?<name>[a-zA-Z])(?<level>\\d+)?)(?<sep>[_\\\\])+");
+#else
+    QRegularExpression 
re("(?<replace>%(?<name>[a-zA-Z])(?<level>\\d+)?)(?<sep>[_/])+");
+#endif
     int i = 0;
     while ((i = filename.indexOf(re, i, &match)) != -1)
     {
@@ -456,11 +466,20 @@ QStringList PlaceholderPath::remainingPlaceholders(const 
QString &filename)
 QList<int> PlaceholderPath::getCompletedFileIds(const SequenceJob &job, const 
QString &targetName)
 {
     QString path = generateFilename(job, targetName, true, true, 0, ".*", "", 
true);
-    QFileInfo path_info(path);
+    auto sanitizedPath = path;
+
+    // This is needed for Windows as the regular expression confuses path 
search
+    QString regexp = "(?<id>\\d+).*";
+    sanitizedPath.remove(regexp);
+    QFileInfo path_info(sanitizedPath);
     QDir dir(path_info.dir());
+
+    // e.g. Light_R_(?<id>\\d+).*
+    QString glob = path_info.fileName() + regexp;
+
     QStringList matchingFiles = dir.entryList(QDir::Files);
     QRegularExpressionMatch match;
-    QRegularExpression re("^" + path_info.fileName() + "$");
+    QRegularExpression re("^" + glob + "$");
     QList<int> ids = {};
     for (auto &name : matchingFiles)
     {
-- 
GitLab



++++++ fix-scheduler.patch ++++++
>From 608a13db2ab07f59b17d3a58fd698633f8fec8e5 Mon Sep 17 00:00:00 2001
From: Hy Murveit <h...@murveit.com>
Date: Sun, 5 Feb 2023 09:04:57 +0300
Subject: [PATCH] m_TargetName was being overwritten when the UI Element
 targetNameT was programmatically modified. This cause the signaling from the
 scheduler to capture to be missed (e.g. when targetNameT was set by reading a
 .esq file). This sets it so that m_TargetName is only overwritten when the
 user modifies the UI element, and not when it is changed programmatically.

---
 kstars/ekos/capture/capture.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/kstars/ekos/capture/capture.cpp b/kstars/ekos/capture/capture.cpp
index 7b5449095..0d3ff0c40 100644
--- a/kstars/ekos/capture/capture.cpp
+++ b/kstars/ekos/capture/capture.cpp
@@ -517,10 +517,11 @@ Capture::Capture()
     connect(formatSuffixN, QOverload<int>::of(&QSpinBox::valueChanged), this, 
&Capture::generatePreviewFilename);
     connect(captureExposureN, 
QOverload<double>::of(&QDoubleSpinBox::valueChanged), this,
             &Capture::generatePreviewFilename);
-    connect(targetNameT, &QLineEdit::textChanged, this, [ = ]()
+    connect(targetNameT, &QLineEdit::textEdited, this, [ = ]()
     {
         m_TargetName = targetNameT->text();
         generatePreviewFilename();
+        qCDebug(KSTARS_EKOS_CAPTURE) << "Changed target to" << m_TargetName << 
"because of user edit";
     });
     connect(captureTypeS, &QComboBox::currentTextChanged, this, 
&Capture::generatePreviewFilename);
 
@@ -4460,6 +4461,7 @@ void Capture::syncGUIToJob(SequenceJob * job)
     targetNameT->setText(jobTargetName);
     
captureCountN->setValue(job->getCoreProperty(SequenceJob::SJ_Count).toInt());
     
captureDelayN->setValue(job->getCoreProperty(SequenceJob::SJ_Delay).toInt() / 
1000);
+    
fileDirectoryT->setText(job->getCoreProperty(SequenceJob::SJ_LocalDirectory).toString());
     fileUploadModeS->setCurrentIndex(job->getUploadMode());
     fileRemoteDirT->setEnabled(fileUploadModeS->currentIndex() != 0);
     
fileRemoteDirT->setText(job->getCoreProperty(SequenceJob::SJ_RemoteDirectory).toString());
-- 
GitLab

Reply via email to