From 2d6d0b6974f5409e5f26113894f762a2c217e2d6 Mon Sep 17 00:00:00 2001 From: Philippe Renon Date: Mon, 24 Apr 2017 09:34:10 +0200 Subject: [PATCH] LP-513 gcs: remove unused libs/qtconcurrent --- ground/gcs/src/libs/libs.pro | 1 - .../src/libs/qtconcurrent/QtConcurrentTools | 31 -- ground/gcs/src/libs/qtconcurrent/multitask.h | 199 --------- .../src/libs/qtconcurrent/qtconcurrent.pri | 1 - .../src/libs/qtconcurrent/qtconcurrent.pro | 10 - .../libs/qtconcurrent/qtconcurrent_global.h | 40 -- .../gcs/src/libs/qtconcurrent/runextensions.h | 377 ------------------ ground/gcs/src/libs/utils/filesearch.cpp | 267 ------------- ground/gcs/src/libs/utils/filesearch.h | 60 --- ground/gcs/src/libs/utils/utils.pro | 2 - 10 files changed, 988 deletions(-) delete mode 100644 ground/gcs/src/libs/qtconcurrent/QtConcurrentTools delete mode 100644 ground/gcs/src/libs/qtconcurrent/multitask.h delete mode 100644 ground/gcs/src/libs/qtconcurrent/qtconcurrent.pri delete mode 100644 ground/gcs/src/libs/qtconcurrent/qtconcurrent.pro delete mode 100644 ground/gcs/src/libs/qtconcurrent/qtconcurrent_global.h delete mode 100644 ground/gcs/src/libs/qtconcurrent/runextensions.h delete mode 100644 ground/gcs/src/libs/utils/filesearch.cpp delete mode 100644 ground/gcs/src/libs/utils/filesearch.h diff --git a/ground/gcs/src/libs/libs.pro b/ground/gcs/src/libs/libs.pro index e1b355cf2..975cd60e8 100644 --- a/ground/gcs/src/libs/libs.pro +++ b/ground/gcs/src/libs/libs.pro @@ -4,7 +4,6 @@ CONFIG += ordered SUBDIRS = \ version_info \ qscispinbox\ - qtconcurrent \ aggregation \ extensionsystem \ utils \ diff --git a/ground/gcs/src/libs/qtconcurrent/QtConcurrentTools b/ground/gcs/src/libs/qtconcurrent/QtConcurrentTools deleted file mode 100644 index b8c36c1dd..000000000 --- a/ground/gcs/src/libs/qtconcurrent/QtConcurrentTools +++ /dev/null @@ -1,31 +0,0 @@ -/************************************************************************** -** -** This file is part of Qt Creator -** -** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -** -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** Commercial Usage -** -** Licensees holding valid Qt Commercial licenses may use this file in -** accordance with the Qt Commercial License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Nokia. -** -** GNU Lesser General Public License Usage -** -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at http://qt.nokia.com/contact. -** -**************************************************************************/ - -#include "qtconcurrent/multitask.h" -#include "qtconcurrent/runextensions.h" diff --git a/ground/gcs/src/libs/qtconcurrent/multitask.h b/ground/gcs/src/libs/qtconcurrent/multitask.h deleted file mode 100644 index bd341b245..000000000 --- a/ground/gcs/src/libs/qtconcurrent/multitask.h +++ /dev/null @@ -1,199 +0,0 @@ -/** - ****************************************************************************** - * - * @file multitask.h - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * Parts by Nokia Corporation (qt-info@nokia.com) Copyright (C) 2009. - * @brief - * @see The GNU Public License (GPL) Version 3 - * @defgroup - * @{ - * - *****************************************************************************/ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef MULTITASK_H -#define MULTITASK_H - -#include "qtconcurrent_global.h" -#include "runextensions.h" - -#include -#include -#include -#include -#include -#include - -#include - -QT_BEGIN_NAMESPACE - -namespace QtConcurrent { -class QTCONCURRENT_EXPORT MultiTaskBase : public QObject, public QRunnable { - Q_OBJECT -protected slots: - virtual void cancelSelf() = 0; - virtual void setFinished() = 0; - virtual void setProgressRange(int min, int max) = 0; - virtual void setProgressValue(int value) = 0; - virtual void setProgressText(QString value) = 0; -}; - -template -class MultiTask : public MultiTaskBase { -public: - MultiTask(void(Class::*fn)(QFutureInterface &), const QList &objects) - : fn(fn), - objects(objects) - { - maxProgress = 100 * objects.size(); - } - - QFuture future() - { - futureInterface.reportStarted(); - return futureInterface.future(); - } - - void run() - { - QThreadPool::globalInstance()->releaseThread(); - - futureInterface.setProgressRange(0, maxProgress); - foreach(Class * object, objects) { - QFutureWatcher *watcher = new QFutureWatcher(); - watchers.insert(object, watcher); - finished.insert(watcher, false); - connect(watcher, SIGNAL(finished()), this, SLOT(setFinished())); - connect(watcher, SIGNAL(progressRangeChanged(int, int)), this, SLOT(setProgressRange(int, int))); - connect(watcher, SIGNAL(progressValueChanged(int)), this, SLOT(setProgressValue(int))); - connect(watcher, SIGNAL(progressTextChanged(QString)), this, SLOT(setProgressText(QString))); - watcher->setFuture(QtConcurrent::run(fn, object)); - } - selfWatcher = new QFutureWatcher(); - connect(selfWatcher, SIGNAL(canceled()), this, SLOT(cancelSelf())); - selfWatcher->setFuture(futureInterface.future()); - loop = new QEventLoop; - loop->exec(); - futureInterface.reportFinished(); - QThreadPool::globalInstance()->reserveThread(); - qDeleteAll(watchers.values()); - delete selfWatcher; - delete loop; - } -protected: - void cancelSelf() - { - foreach(QFutureWatcher *watcher, watchers) - watcher->future().cancel(); - } - - void setFinished() - { - updateProgress(); - QFutureWatcher *watcher = static_cast *>(sender()); - if (finished.contains(watcher)) { - finished[watcher] = true; - } - bool allFinished = true; - const QList finishedValues = finished.values(); - foreach(bool isFinished, finishedValues) { - if (!isFinished) { - allFinished = false; - break; - } - } - if (allFinished) { - loop->quit(); - } - } - - void setProgressRange(int min, int max) - { - Q_UNUSED(min) - Q_UNUSED(max) - updateProgress(); - } - - void setProgressValue(int value) - { - Q_UNUSED(value) - updateProgress(); - } - - void setProgressText(QString value) - { - Q_UNUSED(value) - updateProgressText(); - } -private: - void updateProgress() - { - int progressSum = 0; - const QList *> watchersValues = watchers.values(); - - foreach(QFutureWatcher *watcher, watchersValues) { - if (watcher->progressMinimum() == watcher->progressMaximum()) { - if (watcher->future().isFinished() && !watcher->future().isCanceled()) { - progressSum += 100; - } - } else { - progressSum += 100 * (watcher->progressValue() - watcher->progressMinimum()) / (watcher->progressMaximum() - watcher->progressMinimum()); - } - } - futureInterface.setProgressValue(progressSum); - } - - void updateProgressText() - { - QString text; - const QList *> watchersValues = watchers.values(); - - foreach(QFutureWatcher *watcher, watchersValues) { - if (!watcher->progressText().isEmpty()) { - text += watcher->progressText() + "\n"; - } - } - text = text.trimmed(); - futureInterface.setProgressValueAndText(futureInterface.progressValue(), text); - } - - QFutureInterface futureInterface; - void (Class::*fn)(QFutureInterface &); - QList objects; - - QFutureWatcher *selfWatcher; - QMap *> watchers; - QMap *, bool> finished; - QEventLoop *loop; - int maxProgress; -}; - -template -QFuture run(void (Class::*fn)(QFutureInterface &), const QList &objects, int priority = 0) -{ - MultiTask *task = new MultiTask(fn, objects); - QFuture future = task->future(); - QThreadPool::globalInstance()->start(task, priority); - return future; -} -} // namespace QtConcurrent - -QT_END_NAMESPACE - -#endif // MULTITASK_H diff --git a/ground/gcs/src/libs/qtconcurrent/qtconcurrent.pri b/ground/gcs/src/libs/qtconcurrent/qtconcurrent.pri deleted file mode 100644 index 141de8ee8..000000000 --- a/ground/gcs/src/libs/qtconcurrent/qtconcurrent.pri +++ /dev/null @@ -1 +0,0 @@ -LIBS *= -l$$qtLibraryName(QtConcurrent) diff --git a/ground/gcs/src/libs/qtconcurrent/qtconcurrent.pro b/ground/gcs/src/libs/qtconcurrent/qtconcurrent.pro deleted file mode 100644 index e5d1cda2b..000000000 --- a/ground/gcs/src/libs/qtconcurrent/qtconcurrent.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = lib -TARGET = QtConcurrent -DEFINES += BUILD_QTCONCURRENT - -include(../../library.pri) - -HEADERS += \ - qtconcurrent_global.h \ - multitask.h \ - runextensions.h diff --git a/ground/gcs/src/libs/qtconcurrent/qtconcurrent_global.h b/ground/gcs/src/libs/qtconcurrent/qtconcurrent_global.h deleted file mode 100644 index f1c048b57..000000000 --- a/ground/gcs/src/libs/qtconcurrent/qtconcurrent_global.h +++ /dev/null @@ -1,40 +0,0 @@ -/** - ****************************************************************************** - * - * @file qtconcurrent_global.h - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * Parts by Nokia Corporation (qt-info@nokia.com) Copyright (C) 2009. - * @brief - * @see The GNU Public License (GPL) Version 3 - * @defgroup - * @{ - * - *****************************************************************************/ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef QTCONCURRENT_GLOBAL_H -#define QTCONCURRENT_GLOBAL_H - -#include - -#if defined(BUILD_QTCONCURRENT) -# define QTCONCURRENT_EXPORT Q_DECL_EXPORT -#else -# define QTCONCURRENT_EXPORT Q_DECL_IMPORT -#endif - -#endif // QTCONCURRENT_GLOBAL_H diff --git a/ground/gcs/src/libs/qtconcurrent/runextensions.h b/ground/gcs/src/libs/qtconcurrent/runextensions.h deleted file mode 100644 index 01c8cd533..000000000 --- a/ground/gcs/src/libs/qtconcurrent/runextensions.h +++ /dev/null @@ -1,377 +0,0 @@ -/** - ****************************************************************************** - * - * @file runextensions.h - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * Parts by Nokia Corporation (qt-info@nokia.com) Copyright (C) 2009. - * @brief - * @see The GNU Public License (GPL) Version 3 - * @defgroup - * @{ - * - *****************************************************************************/ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef QTCONCURRENT_RUNEX_H -#define QTCONCURRENT_RUNEX_H - -#include -#include -#include - -QT_BEGIN_NAMESPACE - -namespace QtConcurrent { -template -class StoredInterfaceFunctionCall0 : public QRunnable { -public: - StoredInterfaceFunctionCall0(void(fn)(QFutureInterface &)) - : fn(fn) {} - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - fn(futureInterface); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; -}; -template -class StoredInterfaceMemberFunctionCall0 : public QRunnable { -public: - StoredInterfaceMemberFunctionCall0(void(Class::*fn)(QFutureInterface &), Class *object) - : fn(fn), object(object) {} - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - (object->*fn)(futureInterface); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Class *object; -}; - -template -class StoredInterfaceFunctionCall1 : public QRunnable { -public: - StoredInterfaceFunctionCall1(void(fn)(QFutureInterface &, Arg1), Arg1 arg1) - : fn(fn), arg1(arg1) {} - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - fn(futureInterface, arg1); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Arg1 arg1; -}; -template -class StoredInterfaceMemberFunctionCall1 : public QRunnable { -public: - StoredInterfaceMemberFunctionCall1(void(Class::*fn)(QFutureInterface &, Arg1), Class *object, Arg1 arg1) - : fn(fn), object(object), arg1(arg1) {} - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - (object->*fn)(futureInterface, arg1); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Class *object; - Arg1 arg1; -}; - -template -class StoredInterfaceFunctionCall2 : public QRunnable { -public: - StoredInterfaceFunctionCall2(void(fn)(QFutureInterface &, Arg1, Arg2), Arg1 arg1, Arg2 arg2) - : fn(fn), arg1(arg1), arg2(arg2) {} - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - fn(futureInterface, arg1, arg2); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Arg1 arg1; Arg2 arg2; -}; -template -class StoredInterfaceMemberFunctionCall2 : public QRunnable { -public: - StoredInterfaceMemberFunctionCall2(void(Class::*fn)(QFutureInterface &, Arg1, Arg2), Class *object, Arg1 arg1, Arg2 arg2) - : fn(fn), object(object), arg1(arg1), arg2(arg2) {} - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - (object->*fn)(futureInterface, arg1, arg2); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Class *object; - Arg1 arg1; Arg2 arg2; -}; - -template -class StoredInterfaceFunctionCall3 : public QRunnable { -public: - StoredInterfaceFunctionCall3(void(fn)(QFutureInterface &, Arg1, Arg2, Arg3), Arg1 arg1, Arg2 arg2, Arg3 arg3) - : fn(fn), arg1(arg1), arg2(arg2), arg3(arg3) {} - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - fn(futureInterface, arg1, arg2, arg3); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Arg1 arg1; Arg2 arg2; Arg3 arg3; -}; -template -class StoredInterfaceMemberFunctionCall3 : public QRunnable { -public: - StoredInterfaceMemberFunctionCall3(void(Class::*fn)(QFutureInterface &, Arg1, Arg2, Arg3), Class *object, Arg1 arg1, Arg2 arg2, Arg3 arg3) - : fn(fn), object(object), arg1(arg1), arg2(arg2), arg3(arg3) {} - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - (object->*fn)(futureInterface, arg1, arg2, arg3); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Class *object; - Arg1 arg1; Arg2 arg2; Arg3 arg3; -}; - -template -class StoredInterfaceFunctionCall4 : public QRunnable { -public: - StoredInterfaceFunctionCall4(void(fn)(QFutureInterface &, Arg1, Arg2, Arg3, Arg4), Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4) - : fn(fn), arg1(arg1), arg2(arg2), arg3(arg3), arg4(arg4) {} - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - fn(futureInterface, arg1, arg2, arg3, arg4); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; -}; -template -class StoredInterfaceMemberFunctionCall4 : public QRunnable { -public: - StoredInterfaceMemberFunctionCall4(void(Class::*fn)(QFutureInterface &, Arg1, Arg2, Arg3, Arg4), Class *object, Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4) - : fn(fn), object(object), arg1(arg1), arg2(arg2), arg3(arg3), arg4(arg4) {} - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - (object->*fn)(futureInterface, arg1, arg2, arg3, arg4); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Class *object; - Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; -}; - -template -class StoredInterfaceFunctionCall5 : public QRunnable { -public: - StoredInterfaceFunctionCall5(void(fn)(QFutureInterface &, Arg1, Arg2, Arg3, Arg4, Arg5), Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4, Arg5 arg5) - : fn(fn), arg1(arg1), arg2(arg2), arg3(arg3), arg4(arg4), arg5(arg5) {} - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - fn(futureInterface, arg1, arg2, arg3, arg4, arg5); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5; -}; -template -class StoredInterfaceMemberFunctionCall5 : public QRunnable { -public: - StoredInterfaceMemberFunctionCall5(void(Class::*fn)(QFutureInterface &, Arg1, Arg2, Arg3, Arg4, Arg5), Class *object, Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4, Arg5 arg5) - : fn(fn), object(object), arg1(arg1), arg2(arg2), arg3(arg3), arg4(arg4), arg5(arg5) {} - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - (object->*fn)(futureInterface, arg1, arg2, arg3, arg4, arg5); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Class *object; - Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5; -}; - -template -QFuture run(void (*functionPointer)(QFutureInterface &)) -{ - return (new StoredInterfaceFunctionCall0 &)>(functionPointer))->start(); -} -template -QFuture run(void (*functionPointer)(QFutureInterface &, Arg1), Arg1 arg1) -{ - return (new StoredInterfaceFunctionCall1 &, Arg1), Arg1>(functionPointer, arg1))->start(); -} -template -QFuture run(void (*functionPointer)(QFutureInterface &, Arg1, Arg2), Arg1 arg1, Arg2 arg2) -{ - return (new StoredInterfaceFunctionCall2 &, Arg1, Arg2), Arg1, Arg2>(functionPointer, arg1, arg2))->start(); -} -template -QFuture run(void (*functionPointer)(QFutureInterface &, Arg1, Arg2, Arg3), Arg1 arg1, Arg2 arg2, Arg3 arg3) -{ - return (new StoredInterfaceFunctionCall3 &, Arg1, Arg2, Arg3), Arg1, Arg2, Arg3>(functionPointer, arg1, arg2, arg3))->start(); -} -template -QFuture run(void (*functionPointer)(QFutureInterface &, Arg1, Arg2, Arg3, Arg4), Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4) -{ - return (new StoredInterfaceFunctionCall4 &, Arg1, Arg2, Arg3, Arg4), Arg1, Arg2, Arg3, Arg4>(functionPointer, arg1, arg2, arg3, arg4))->start(); -} -template -QFuture run(void (*functionPointer)(QFutureInterface &, Arg1, Arg2, Arg3, Arg4, Arg5), Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4, Arg5 arg5) -{ - return (new StoredInterfaceFunctionCall5 &, Arg1, Arg2, Arg3, Arg4, Arg5), Arg1, Arg2, Arg3, Arg4, Arg5>(functionPointer, arg1, arg2, arg3, arg4, arg5))->start(); -} - -template -QFuture run(void (Class::*fn)(QFutureInterface &), Class *object) -{ - return (new StoredInterfaceMemberFunctionCall0 &), Class>(fn, object))->start(); -} -} // namespace QtConcurrent - -QT_END_NAMESPACE - -#endif // QTCONCURRENT_RUNEX_H diff --git a/ground/gcs/src/libs/utils/filesearch.cpp b/ground/gcs/src/libs/utils/filesearch.cpp deleted file mode 100644 index 0c3249104..000000000 --- a/ground/gcs/src/libs/utils/filesearch.cpp +++ /dev/null @@ -1,267 +0,0 @@ -/** - ****************************************************************************** - * - * @file filesearch.cpp - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * Parts by Nokia Corporation (qt-info@nokia.com) Copyright (C) 2009. - * @brief - * @see The GNU Public License (GPL) Version 3 - * @defgroup - * @{ - * - *****************************************************************************/ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "filesearch.h" -#include - -#include -#include -#include -#include -#include -#include -#include - -#include - -using namespace Utils; - -static inline QString msgCanceled(const QString &searchTerm, int numMatches, int numFilesSearched) -{ - return QCoreApplication::translate("Utils::FileSearch", - "%1: canceled. %n occurrences found in %2 files.", - NULL, numMatches). - arg(searchTerm).arg(numFilesSearched); -} - -static inline QString msgFound(const QString &searchTerm, int numMatches, int numFilesSearched) -{ - return QCoreApplication::translate("Utils::FileSearch", - "%1: %n occurrences found in %2 files.", - NULL, numMatches). - arg(searchTerm).arg(numFilesSearched); -} - -static inline QString msgFound(const QString &searchTerm, int numMatches, int numFilesSearched, int filesSize) -{ - return QCoreApplication::translate("Utils::FileSearch", - "%1: %n occurrences found in %2 of %3 files.", - NULL, numMatches). - arg(searchTerm).arg(numFilesSearched).arg(filesSize); -} - -namespace { -void runFileSearch(QFutureInterface &future, - QString searchTerm, - QStringList files, - QTextDocument::FindFlags flags, - QMap fileToContentsMap) -{ - future.setProgressRange(0, files.size()); - int numFilesSearched = 0; - int numMatches = 0; - - bool caseInsensitive = !(flags & QTextDocument::FindCaseSensitively); - bool wholeWord = (flags & QTextDocument::FindWholeWords); - - QByteArray sa = searchTerm.toUtf8(); - int scMaxIndex = sa.length() - 1; - const char *sc = sa.constData(); - - QByteArray sal = searchTerm.toLower().toUtf8(); - const char *scl = sal.constData(); - - QByteArray sau = searchTerm.toUpper().toUtf8(); - const char *scu = sau.constData(); - - int chunkSize = qMax(100000, sa.length()); - - QFile file; - QBuffer buffer; - foreach(QString s, files) { - if (future.isPaused()) { - future.waitForResume(); - } - if (future.isCanceled()) { - future.setProgressValueAndText(numFilesSearched, msgCanceled(searchTerm, numMatches, numFilesSearched)); - break; - } - QIODevice *device; - if (fileToContentsMap.contains(s)) { - buffer.setData(fileToContentsMap.value(s).toLocal8Bit()); - device = &buffer; - } else { - file.setFileName(s); - device = &file; - } - if (!device->open(QIODevice::ReadOnly)) { - continue; - } - int lineNr = 1; - const char *startOfLastLine = NULL; - - bool firstChunk = true; - while (!device->atEnd()) { - if (!firstChunk) { - device->seek(device->pos() - sa.length() + 1); - } - - const QByteArray chunk = device->read(chunkSize); - const char *chunkPtr = chunk.constData(); - startOfLastLine = chunkPtr; - for (const char *regionPtr = chunkPtr; regionPtr < chunkPtr + chunk.length() - scMaxIndex; ++regionPtr) { - const char *regionEnd = regionPtr + scMaxIndex; - - if (*regionPtr == '\n') { - startOfLastLine = regionPtr + 1; - ++lineNr; - } else if ( - // case sensitive - (!caseInsensitive && *regionPtr == sc[0] && *regionEnd == sc[scMaxIndex]) - || - // case insensitive - (caseInsensitive && (*regionPtr == scl[0] || *regionPtr == scu[0]) - && (*regionEnd == scl[scMaxIndex] || *regionEnd == scu[scMaxIndex])) - ) { - const char *afterRegion = regionEnd + 1; - const char *beforeRegion = regionPtr - 1; - bool equal = true; - if (wholeWord && - (isalnum(*beforeRegion) - || (*beforeRegion == '_') - || isalnum(*afterRegion) - || (*afterRegion == '_'))) { - equal = false; - } - - int regionIndex = 1; - for (const char *regionCursor = regionPtr + 1; regionCursor < regionEnd; ++regionCursor, ++regionIndex) { - if ( // case sensitive - (!caseInsensitive && equal && *regionCursor != sc[regionIndex]) - || - // case insensitive - (caseInsensitive && equal && *regionCursor != sc[regionIndex] && *regionCursor != scl[regionIndex] && *regionCursor != scu[regionIndex]) - ) { - equal = false; - } - } - if (equal) { - int textLength = chunk.length() - (startOfLastLine - chunkPtr); - if (textLength > 0) { - QByteArray res; - res.reserve(256); - int i = 0; - int n = 0; - while (startOfLastLine[i] != '\n' && startOfLastLine[i] != '\r' && i < textLength && n++ < 256) { - res.append(startOfLastLine[i++]); - } - future.reportResult(FileSearchResult(s, lineNr, QString(res), - regionPtr - startOfLastLine, sa.length())); - ++numMatches; - } - } - } - } - firstChunk = false; - } - ++numFilesSearched; - future.setProgressValueAndText(numFilesSearched, msgFound(searchTerm, numMatches, numFilesSearched, files.size())); - device->close(); - } - if (!future.isCanceled()) { - future.setProgressValueAndText(numFilesSearched, msgFound(searchTerm, numMatches, numFilesSearched)); - } -} - -void runFileSearchRegExp(QFutureInterface &future, - QString searchTerm, - QStringList files, - QTextDocument::FindFlags flags, - QMap fileToContentsMap) -{ - future.setProgressRange(0, files.size()); - int numFilesSearched = 0; - int numMatches = 0; - if (flags & QTextDocument::FindWholeWords) { - searchTerm = QString::fromLatin1("\\b%1\\b").arg(searchTerm); - } - const Qt::CaseSensitivity caseSensitivity = (flags & QTextDocument::FindCaseSensitively) ? Qt::CaseSensitive : Qt::CaseInsensitive; - const QRegExp expression(searchTerm, caseSensitivity); - - QFile file; - QString str; - QTextStream stream; - foreach(const QString &s, files) { - if (future.isPaused()) { - future.waitForResume(); - } - if (future.isCanceled()) { - future.setProgressValueAndText(numFilesSearched, msgCanceled(searchTerm, numMatches, numFilesSearched)); - break; - } - - bool needsToCloseFile = false; - if (fileToContentsMap.contains(s)) { - str = fileToContentsMap.value(s); - stream.setString(&str); - } else { - file.setFileName(s); - if (!file.open(QIODevice::ReadOnly)) { - continue; - } - needsToCloseFile = true; - stream.setDevice(&file); - } - int lineNr = 1; - QString line; - while (!stream.atEnd()) { - line = stream.readLine(); - int pos = 0; - while ((pos = expression.indexIn(line, pos)) != -1) { - future.reportResult(FileSearchResult(s, lineNr, line, - pos, expression.matchedLength())); - pos += expression.matchedLength(); - } - ++lineNr; - } - ++numFilesSearched; - future.setProgressValueAndText(numFilesSearched, msgFound(searchTerm, numMatches, numFilesSearched, files.size())); - if (needsToCloseFile) { - file.close(); - } - } - if (!future.isCanceled()) { - future.setProgressValueAndText(numFilesSearched, msgFound(searchTerm, numMatches, numFilesSearched)); - } -} -} // namespace - - -QFuture Utils::findInFiles(const QString &searchTerm, const QStringList &files, - QTextDocument::FindFlags flags, QMap fileToContentsMap) -{ - return QtConcurrent::run > - (runFileSearch, searchTerm, files, flags, fileToContentsMap); -} - -QFuture Utils::findInFilesRegExp(const QString &searchTerm, const QStringList &files, - QTextDocument::FindFlags flags, QMap fileToContentsMap) -{ - return QtConcurrent::run > - (runFileSearchRegExp, searchTerm, files, flags, fileToContentsMap); -} diff --git a/ground/gcs/src/libs/utils/filesearch.h b/ground/gcs/src/libs/utils/filesearch.h deleted file mode 100644 index 223af426a..000000000 --- a/ground/gcs/src/libs/utils/filesearch.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - ****************************************************************************** - * - * @file filesearch.h - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * Parts by Nokia Corporation (qt-info@nokia.com) Copyright (C) 2009. - * @brief - * @see The GNU Public License (GPL) Version 3 - * @defgroup - * @{ - * - *****************************************************************************/ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef FILESEARCH_H -#define FILESEARCH_H - -#include "utils_global.h" - -#include -#include -#include -#include - -namespace Utils { -class QTCREATOR_UTILS_EXPORT FileSearchResult { -public: - FileSearchResult() {} - FileSearchResult(QString fileName, int lineNumber, QString matchingLine, int matchStart, int matchLength) - : fileName(fileName), lineNumber(lineNumber), matchingLine(matchingLine), matchStart(matchStart), matchLength(matchLength) - {} - QString fileName; - int lineNumber; - QString matchingLine; - int matchStart; - int matchLength; -}; - -QTCREATOR_UTILS_EXPORT QFuture findInFiles(const QString &searchTerm, const QStringList &files, - QTextDocument::FindFlags flags, QMap fileToContentsMap = QMap()); - -QTCREATOR_UTILS_EXPORT QFuture findInFilesRegExp(const QString &searchTerm, const QStringList &files, - QTextDocument::FindFlags flags, QMap fileToContentsMap = QMap()); -} // namespace Utils - -#endif // FILESEARCH_H diff --git a/ground/gcs/src/libs/utils/utils.pro b/ground/gcs/src/libs/utils/utils.pro index 3654582e6..60aa5d042 100644 --- a/ground/gcs/src/libs/utils/utils.pro +++ b/ground/gcs/src/libs/utils/utils.pro @@ -14,7 +14,6 @@ DEFINES += PLUGIN_REL_PATH=$$shell_quote(\"$$relative_path($$GCS_PLUGIN_PATH, $$ SOURCES += \ reloadpromptutils.cpp \ stringutils.cpp \ - filesearch.cpp \ pathchooser.cpp \ pathlisteditor.cpp \ filewizardpage.cpp \ @@ -73,7 +72,6 @@ HEADERS += \ utils_global.h \ reloadpromptutils.h \ stringutils.h \ - filesearch.h \ listutils.h \ pathchooser.h \ pathlisteditor.h \