summaryrefslogtreecommitdiffstats
path: root/ui/qt/recent_file_status.cpp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
commite4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch)
tree68cb5ef9081156392f1dd62a00c6ccc1451b93df /ui/qt/recent_file_status.cpp
parentInitial commit. (diff)
downloadwireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz
wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ui/qt/recent_file_status.cpp')
-rw-r--r--ui/qt/recent_file_status.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/ui/qt/recent_file_status.cpp b/ui/qt/recent_file_status.cpp
new file mode 100644
index 0000000..c26cf48
--- /dev/null
+++ b/ui/qt/recent_file_status.cpp
@@ -0,0 +1,36 @@
+/* recent_file_status.cpp
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include "recent_file_status.h"
+
+RecentFileStatus::RecentFileStatus(const QString filename, QObject *parent) :
+ QObject(parent),
+ // Force a deep copy.
+ filename_(QString::fromStdU16String(filename.toStdU16String()))
+{
+ // We're a QObject, which means that we emit a destroyed signal,
+ // which might happen at the wrong time when automatic deletion is
+ // enabled. This will trigger an assert in debug builds (bug 14279).
+ setAutoDelete(false);
+ // Qt::QueuedConnection creates a copy of our argument list. This
+ // squelches what appears to be a ThreadSanitizer false positive.
+ connect(this, SIGNAL(statusFound(QString, qint64, bool)),
+ parent, SLOT(itemStatusFinished(QString, qint64, bool)), Qt::QueuedConnection);
+}
+
+void RecentFileStatus::run() {
+ fileinfo_.setFile(filename_);
+
+ if (fileinfo_.isFile() && fileinfo_.isReadable()) {
+ emit statusFound(filename_, fileinfo_.size(), true);
+ } else {
+ emit statusFound(filename_, 0, false);
+ }
+ deleteLater();
+}