kmdbentry.cpp
00001 /* 00002 * This file is part of the KDE libraries 00003 * Copyright (c) 2001 Michael Goffioul <kdeprint@swing.be> 00004 * 00005 * This library is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU Library General Public 00007 * License version 2 as published by the Free Software Foundation. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Library General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Library General Public License 00015 * along with this library; see the file COPYING.LIB. If not, write to 00016 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00017 * Boston, MA 02110-1301, USA. 00018 **/ 00019 00020 #include "kmdbentry.h" 00021 #include "kmfactory.h" 00022 #include "kmmanager.h" 00023 00024 KMDBEntry::KMDBEntry() : recommended(false) 00025 { 00026 } 00027 00028 bool KMDBEntry::validate(bool checkIt) 00029 { 00030 // check model: if one of "model" or "modelname" is empty, replace 00031 // by the other one. At the end, "model" must be non empty. 00032 if (model.isEmpty()) 00033 { 00034 model = modelname; 00035 } 00036 if (modelname.isEmpty()) 00037 { 00038 modelname = model; 00039 } 00040 if (model.isEmpty()) 00041 return false; 00042 00043 // check manufacturer 00044 if (manufacturer.isEmpty()) 00045 { 00046 int p = model.find(' ',0); 00047 if (p != -1) manufacturer = model.left(p); 00048 if (manufacturer.isEmpty()) return false; 00049 } 00050 00051 // extract manufacturer from model 00052 if (model.find(manufacturer,0,false) == 0) 00053 { 00054 model = model.right(model.length()-manufacturer.length()-1).stripWhiteSpace(); 00055 if (model.isEmpty()) return false; 00056 } 00057 00058 if (checkIt) 00059 return KMFactory::self()->manager()->validateDbDriver(this); 00060 else 00061 return true; 00062 }