annotate libgui/languages/build_ts/octave-qt/qfileinfogatherer.cpp @ 31537:5ceb4bfcdb0f stable

add tools and files for updating the gui's language files for translation * libgui/languages/build_ts/README.md: readme for updating language files * libgui/languages/build_ts/octave-qsci: QScintilla source files for languages without translation provided by QScintilla * libgui/languages/build_ts/octave-qt: Qt source files for languages without translation provided by Qt
author Torsten Lilge <ttl-octave@mailbox.org>
date Thu, 24 Nov 2022 06:48:25 +0100
parents
children c8dd3da44e83
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31537
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
1 /****************************************************************************
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
2 **
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
3 ** Copyright (C) 2015 The Qt Company Ltd.
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
4 ** Contact: http://www.qt.io/licensing/
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
5 **
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
6 ** This file is part of the QtGui module of the Qt Toolkit.
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
7 **
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
8 ** $QT_BEGIN_LICENSE:LGPL$
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
9 ** Commercial License Usage
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
10 ** Licensees holding valid commercial Qt licenses may use this file in
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
11 ** accordance with the commercial license agreement provided with the
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
12 ** Software or, alternatively, in accordance with the terms contained in
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
13 ** a written agreement between you and The Qt Company. For licensing terms
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
14 ** and conditions see http://www.qt.io/terms-conditions. For further
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
15 ** information use the contact form at http://www.qt.io/contact-us.
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
16 **
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
17 ** GNU Lesser General Public License Usage
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
19 ** General Public License version 2.1 or version 3 as published by the Free
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
20 ** Software Foundation and appearing in the file LICENSE.LGPLv21 and
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
21 ** LICENSE.LGPLv3 included in the packaging of this file. Please review the
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
22 ** following information to ensure the GNU Lesser General Public License
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
23 ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
24 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
25 **
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
26 ** As a special exception, The Qt Company gives you certain additional
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
27 ** rights. These rights are described in The Qt Company LGPL Exception
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
28 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
29 **
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
30 ** GNU General Public License Usage
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
31 ** Alternatively, this file may be used under the terms of the GNU
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
32 ** General Public License version 3.0 as published by the Free Software
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
33 ** Foundation and appearing in the file LICENSE.GPL included in the
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
34 ** packaging of this file. Please review the following information to
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
35 ** ensure the GNU General Public License version 3.0 requirements will be
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
36 ** met: http://www.gnu.org/copyleft/gpl.html.
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
37 **
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
38 ** $QT_END_LICENSE$
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
39 **
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
40 ****************************************************************************/
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
41
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
42 #include "qfileinfogatherer_p.h"
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
43 #include <qdebug.h>
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
44 #include <qfsfileengine.h>
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
45 #include <qdiriterator.h>
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
46 #ifndef Q_OS_WIN
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
47 # include <unistd.h>
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
48 # include <sys/types.h>
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
49 #endif
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
50 #if defined(Q_OS_VXWORKS)
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
51 # include "qplatformdefs.h"
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
52 #endif
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
53
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
54 QT_BEGIN_NAMESPACE
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
55
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
56 #ifndef QT_NO_FILESYSTEMMODEL
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
57
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
58 #ifdef QT_BUILD_INTERNAL
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
59 static bool fetchedRoot = false;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
60 Q_AUTOTEST_EXPORT void qt_test_resetFetchedRoot()
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
61 {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
62 fetchedRoot = false;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
63 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
64
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
65 Q_AUTOTEST_EXPORT bool qt_test_isFetchedRoot()
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
66 {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
67 return fetchedRoot;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
68 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
69 #endif
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
70
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
71 /*!
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
72 Creates thread
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
73 */
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
74 QFileInfoGatherer::QFileInfoGatherer(QObject *parent)
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
75 : QThread(parent), abort(false),
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
76 #ifndef QT_NO_FILESYSTEMWATCHER
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
77 watcher(0),
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
78 #endif
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
79 m_resolveSymlinks(false), m_iconProvider(&defaultProvider)
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
80 {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
81 #ifdef Q_OS_WIN
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
82 m_resolveSymlinks = true;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
83 #elif !defined(Q_OS_INTEGRITY) && !defined(Q_OS_VXWORKS)
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
84 userId = getuid();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
85 groupId = getgid();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
86 #endif
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
87 #ifndef QT_NO_FILESYSTEMWATCHER
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
88 watcher = new QFileSystemWatcher(this);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
89 connect(watcher, SIGNAL(directoryChanged(QString)), this, SLOT(list(QString)));
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
90 connect(watcher, SIGNAL(fileChanged(QString)), this, SLOT(updateFile(QString)));
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
91 #endif
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
92 start(LowPriority);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
93 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
94
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
95 /*!
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
96 Destroys thread
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
97 */
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
98 QFileInfoGatherer::~QFileInfoGatherer()
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
99 {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
100 QMutexLocker locker(&mutex);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
101 abort = true;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
102 condition.wakeOne();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
103 locker.unlock();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
104 wait();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
105 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
106
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
107 void QFileInfoGatherer::setResolveSymlinks(bool enable)
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
108 {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
109 Q_UNUSED(enable);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
110 #ifdef Q_OS_WIN
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
111 QMutexLocker locker(&mutex);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
112 m_resolveSymlinks = enable;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
113 #endif
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
114 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
115
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
116 bool QFileInfoGatherer::resolveSymlinks() const
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
117 {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
118 return m_resolveSymlinks;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
119 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
120
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
121 void QFileInfoGatherer::setIconProvider(QFileIconProvider *provider)
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
122 {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
123 QMutexLocker locker(&mutex);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
124 m_iconProvider = provider;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
125 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
126
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
127 QFileIconProvider *QFileInfoGatherer::iconProvider() const
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
128 {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
129 return m_iconProvider;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
130 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
131
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
132 /*!
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
133 Fetch extended information for all \a files in \a path
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
134
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
135 \sa updateFile(), update(), resolvedName()
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
136 */
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
137 void QFileInfoGatherer::fetchExtendedInformation(const QString &path, const QStringList &files)
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
138 {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
139 QMutexLocker locker(&mutex);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
140 // See if we already have this dir/file in our que
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
141 int loc = this->path.lastIndexOf(path);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
142 while (loc > 0) {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
143 if (this->files.at(loc) == files) {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
144 return;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
145 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
146 loc = this->path.lastIndexOf(path, loc - 1);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
147 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
148 this->path.push(path);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
149 this->files.push(files);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
150 condition.wakeAll();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
151 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
152
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
153 /*!
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
154 Fetch extended information for all \a filePath
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
155
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
156 \sa fetchExtendedInformation()
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
157 */
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
158 void QFileInfoGatherer::updateFile(const QString &filePath)
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
159 {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
160 QString dir = filePath.mid(0, filePath.lastIndexOf(QDir::separator()));
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
161 QString fileName = filePath.mid(dir.length() + 1);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
162 fetchExtendedInformation(dir, QStringList(fileName));
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
163 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
164
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
165 /*
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
166 List all files in \a directoryPath
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
167
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
168 \sa listed()
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
169 */
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
170 void QFileInfoGatherer::clear()
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
171 {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
172 #ifndef QT_NO_FILESYSTEMWATCHER
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
173 QMutexLocker locker(&mutex);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
174 watcher->removePaths(watcher->files());
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
175 watcher->removePaths(watcher->directories());
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
176 #endif
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
177 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
178
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
179 /*
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
180 Remove a \a path from the watcher
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
181
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
182 \sa listed()
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
183 */
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
184 void QFileInfoGatherer::removePath(const QString &path)
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
185 {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
186 #ifndef QT_NO_FILESYSTEMWATCHER
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
187 QMutexLocker locker(&mutex);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
188 watcher->removePath(path);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
189 #endif
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
190 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
191
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
192 /*
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
193 List all files in \a directoryPath
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
194
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
195 \sa listed()
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
196 */
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
197 void QFileInfoGatherer::list(const QString &directoryPath)
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
198 {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
199 fetchExtendedInformation(directoryPath, QStringList());
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
200 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
201
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
202 /*
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
203 Until aborted wait to fetch a directory or files
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
204 */
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
205 void QFileInfoGatherer::run()
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
206 {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
207 forever {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
208 bool updateFiles = false;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
209 QMutexLocker locker(&mutex);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
210 if (abort) {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
211 return;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
212 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
213 if (this->path.isEmpty())
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
214 condition.wait(&mutex);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
215 QString path;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
216 QStringList list;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
217 if (!this->path.isEmpty()) {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
218 path = this->path.first();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
219 list = this->files.first();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
220 this->path.pop_front();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
221 this->files.pop_front();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
222 updateFiles = true;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
223 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
224 locker.unlock();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
225 if (updateFiles)
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
226 getFileInfos(path, list);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
227 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
228 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
229
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
230 QExtendedInformation QFileInfoGatherer::getInfo(const QFileInfo &fileInfo) const
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
231 {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
232 QExtendedInformation info(fileInfo);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
233 info.icon = m_iconProvider->icon(fileInfo);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
234 info.displayType = m_iconProvider->type(fileInfo);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
235 #ifndef QT_NO_FILESYSTEMWATCHER
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
236 // ### Not ready to listen all modifications
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
237 #if 0
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
238 // Enable the next two commented out lines to get updates when the file sizes change...
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
239 if (!fileInfo.exists() && !fileInfo.isSymLink()) {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
240 info.size = -1;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
241 //watcher->removePath(fileInfo.absoluteFilePath());
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
242 } else {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
243 if (!fileInfo.absoluteFilePath().isEmpty() && fileInfo.exists() && fileInfo.isReadable()
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
244 && !watcher->files().contains(fileInfo.absoluteFilePath())) {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
245 //watcher->addPath(fileInfo.absoluteFilePath());
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
246 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
247 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
248 #endif
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
249 #endif
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
250
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
251 if (m_resolveSymlinks && info.isSymLink(/* ignoreNtfsSymLinks = */ true)) {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
252 QFileInfo resolvedInfo(fileInfo.symLinkTarget());
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
253 resolvedInfo = resolvedInfo.canonicalFilePath();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
254 if (resolvedInfo.exists()) {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
255 emit nameResolved(fileInfo.filePath(), resolvedInfo.fileName());
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
256 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
257 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
258 return info;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
259 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
260
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
261 QString QFileInfoGatherer::translateDriveName(const QFileInfo &drive) const
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
262 {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
263 QString driveName = drive.absoluteFilePath();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
264 #if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
265 if (driveName.startsWith(QLatin1Char('/'))) // UNC host
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
266 return drive.fileName();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
267 #endif
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
268 #if (defined(Q_OS_WIN) && !defined(Q_OS_WINCE)) || defined(Q_OS_SYMBIAN)
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
269 if (driveName.endsWith(QLatin1Char('/')))
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
270 driveName.chop(1);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
271 #endif
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
272 return driveName;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
273 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
274
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
275 /*
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
276 Get specific file info's, batch the files so update when we have 100
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
277 items and every 200ms after that
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
278 */
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
279 void QFileInfoGatherer::getFileInfos(const QString &path, const QStringList &files)
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
280 {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
281 #ifndef QT_NO_FILESYSTEMWATCHER
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
282 if (files.isEmpty()
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
283 && !watcher->directories().contains(path)
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
284 && !path.isEmpty()
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
285 && !path.startsWith(QLatin1String("//")) /*don't watch UNC path*/) {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
286 watcher->addPath(path);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
287 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
288 #endif
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
289
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
290 // List drives
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
291 if (path.isEmpty()) {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
292 #ifdef QT_BUILD_INTERNAL
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
293 fetchedRoot = true;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
294 #endif
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
295 QFileInfoList infoList;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
296 if (files.isEmpty()) {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
297 infoList = QDir::drives();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
298 } else {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
299 for (int i = 0; i < files.count(); ++i)
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
300 infoList << QFileInfo(files.at(i));
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
301 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
302 for (int i = infoList.count() - 1; i >= 0; --i) {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
303 QString driveName = translateDriveName(infoList.at(i));
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
304 QList<QPair<QString,QFileInfo> > updatedFiles;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
305 updatedFiles.append(QPair<QString,QFileInfo>(driveName, infoList.at(i)));
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
306 emit updates(path, updatedFiles);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
307 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
308 return;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
309 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
310
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
311 QElapsedTimer base;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
312 base.start();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
313 QFileInfo fileInfo;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
314 bool firstTime = true;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
315 QList<QPair<QString, QFileInfo> > updatedFiles;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
316 QStringList filesToCheck = files;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
317
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
318 QString itPath = QDir::fromNativeSeparators(files.isEmpty() ? path : QLatin1String(""));
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
319 QDirIterator dirIt(itPath, QDir::AllEntries | QDir::System | QDir::Hidden);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
320 QStringList allFiles;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
321 while(!abort && dirIt.hasNext()) {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
322 dirIt.next();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
323 fileInfo = dirIt.fileInfo();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
324 allFiles.append(fileInfo.fileName());
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
325 fetch(fileInfo, base, firstTime, updatedFiles, path);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
326 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
327 if (!allFiles.isEmpty())
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
328 emit newListOfFiles(path, allFiles);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
329
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
330 QStringList::const_iterator filesIt = filesToCheck.constBegin();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
331 while(!abort && filesIt != filesToCheck.constEnd()) {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
332 fileInfo.setFile(path + QDir::separator() + *filesIt);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
333 ++filesIt;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
334 fetch(fileInfo, base, firstTime, updatedFiles, path);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
335 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
336 if (!updatedFiles.isEmpty())
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
337 emit updates(path, updatedFiles);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
338 emit directoryLoaded(path);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
339 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
340
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
341 void QFileInfoGatherer::fetch(const QFileInfo &fileInfo, QElapsedTimer &base, bool &firstTime, QList<QPair<QString, QFileInfo> > &updatedFiles, const QString &path) {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
342 updatedFiles.append(QPair<QString, QFileInfo>(fileInfo.fileName(), fileInfo));
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
343 QElapsedTimer current;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
344 current.start();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
345 if ((firstTime && updatedFiles.count() > 100) || base.msecsTo(current) > 1000) {
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
346 emit updates(path, updatedFiles);
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
347 updatedFiles.clear();
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
348 base = current;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
349 firstTime = false;
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
350 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
351 }
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
352
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
353 #endif // QT_NO_FILESYSTEMMODEL
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
354
5ceb4bfcdb0f add tools and files for updating the gui's language files for translation
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff changeset
355 QT_END_NAMESPACE