File indexing completed on 2024-05-12 16:33:27
0001 /* This file is part of the KDE project 0002 0003 Copyright 2008 Johannes Simon <johannes.simon@gmail.com> 0004 0005 This library is free software; you can redistribute it and/or 0006 modify it under the terms of the GNU Library General Public 0007 License as published by the Free Software Foundation; either 0008 version 2 of the License, or (at your option) any later version. 0009 0010 This library is distributed in the hope that it will be useful, 0011 but WITHOUT ANY WARRANTY; without even the implied warranty of 0012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0013 Library General Public License for more details. 0014 0015 You should have received a copy of the GNU Library General Public License 0016 along with this library; see the file COPYING.LIB. If not, write to 0017 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 0018 * Boston, MA 02110-1301, USA. 0019 */ 0020 0021 // Own 0022 #include "CellRegionStringValidator.h" 0023 0024 // KoChart 0025 #include "CellRegion.h" 0026 0027 using namespace KoChart; 0028 0029 class CellRegionStringValidator::Private 0030 { 0031 public: 0032 Private(); 0033 ~Private(); 0034 0035 KoChart::ChartModel* model; 0036 // A regular expression that characterizes any possible 0037 // intermediate state of a valid cell region string 0038 QRegExp intermediatelyCorrectRegion; 0039 }; 0040 0041 CellRegionStringValidator::Private::Private() 0042 : intermediatelyCorrectRegion("[a-zA-Z0-9$.:;]*") 0043 { 0044 } 0045 0046 CellRegionStringValidator::Private::~Private() 0047 { 0048 } 0049 0050 CellRegionStringValidator::CellRegionStringValidator(KoChart::ChartModel *model) 0051 : QValidator(0), 0052 d(new Private) 0053 { 0054 d->model = model; 0055 } 0056 0057 CellRegionStringValidator::~CellRegionStringValidator() 0058 { 0059 delete d; 0060 } 0061 0062 QValidator::State CellRegionStringValidator::validate(QString &string, int &pos) const 0063 { 0064 Q_UNUSED(pos); 0065 0066 if (!d->intermediatelyCorrectRegion.exactMatch(string)) 0067 return QValidator::Invalid; 0068 0069 if (d->model->isCellRegionValid(string)) 0070 return QValidator::Acceptable; 0071 0072 return QValidator::Intermediate; 0073 }