00001 /****************************************************************************** 00002 * Copyright (C) 2015 by Ralf Kaestner * 00003 * ralf.kaestner@gmail.com * 00004 * * 00005 * This program is free software; you can redistribute it and/or modify * 00006 * it under the terms of the Lesser GNU General Public License as published by* 00007 * the Free Software Foundation; either version 3 of the License, or * 00008 * (at your option) any later version. * 00009 * * 00010 * This program is distributed in the hope that it will be useful, * 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00013 * Lesser GNU General Public License for more details. * 00014 * * 00015 * You should have received a copy of the Lesser GNU General Public License * 00016 * along with this program. If not, see <http://www.gnu.org/licenses/>. * 00017 ******************************************************************************/ 00018 00019 #include <QStringList> 00020 00021 #include "rqt_multiplot/MatchFilterCompleter.h" 00022 00023 namespace rqt_multiplot { 00024 00025 /*****************************************************************************/ 00026 /* Constructors and Destructor */ 00027 /*****************************************************************************/ 00028 00029 MatchFilterCompleter::MatchFilterCompleter(QObject* parent, Qt::MatchFlags 00030 filterMatchFlags) : 00031 QCompleter(parent), 00032 proxyModel_(new MatchFilterCompleterModel(this, filterMatchFlags)) { 00033 setCompletionMode(QCompleter::UnfilteredPopupCompletion); 00034 } 00035 00036 MatchFilterCompleter::~MatchFilterCompleter() { 00037 } 00038 00039 /*****************************************************************************/ 00040 /* Accessors */ 00041 /*****************************************************************************/ 00042 00043 void MatchFilterCompleter::setFilterMatchFlags(Qt::MatchFlags flags) { 00044 proxyModel_->setFilterMatchFlags(flags); 00045 } 00046 00047 Qt::MatchFlags MatchFilterCompleter::getFilterMatchFlags() const { 00048 return proxyModel_->getFilterMatchFlags(); 00049 } 00050 00051 void MatchFilterCompleter::setFilterCaseSensitivity(Qt::CaseSensitivity 00052 caseSensitivity) { 00053 proxyModel_->setFilterCaseSensitivity(caseSensitivity); 00054 } 00055 00056 Qt::CaseSensitivity MatchFilterCompleter::getFilterCaseSensitivity() const { 00057 return proxyModel_->filterCaseSensitivity(); 00058 } 00059 00060 /*****************************************************************************/ 00061 /* Methods */ 00062 /*****************************************************************************/ 00063 00064 QStringList MatchFilterCompleter::splitPath(const QString& path) const { 00065 QAbstractItemModel* sourceModel = model(); 00066 00067 if (sourceModel && (sourceModel != proxyModel_)) { 00068 sourceModel->setParent(proxyModel_); 00069 proxyModel_->setSourceModel(sourceModel); 00070 00071 const_cast<MatchFilterCompleter*>(this)->setModel(proxyModel_); 00072 } 00073 00074 proxyModel_->setFilterKey(path); 00075 00076 return QStringList(); 00077 } 00078 00079 }