diff options
Diffstat (limited to 'languages/php/phpconfigdata.cpp')
-rw-r--r-- | languages/php/phpconfigdata.cpp | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/languages/php/phpconfigdata.cpp b/languages/php/phpconfigdata.cpp new file mode 100644 index 00000000..45f27a79 --- /dev/null +++ b/languages/php/phpconfigdata.cpp @@ -0,0 +1,88 @@ +/* + Copyright (C) 2005 by Nicolas Escuder <[email protected]> + Copyright (C) 2001 by [email protected] + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + version 2, License as published by the Free Software Foundation. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "kstandarddirs.h" +#include "phpconfigdata.h" +#include "domutil.h" +#include <iostream> + +PHPConfigData::PHPConfigData(QDomDocument* dom) { + QString file = KStandardDirs::findExe("php"); + + if (file.isEmpty()) + file = "/usr/local/bin/php"; + + document = dom; + invocationMode = (InvocationMode) DomUtil::readIntEntry(*dom, "/kdevphpsupport/general/invocationMode", Web); + + webURL = DomUtil::readEntry(*document, "/kdevphpsupport/webInvocation/weburl"); + + phpExePath = DomUtil::readEntry(*document, "/kdevphpsupport/shell/phpexe", file); + phpIniPath = DomUtil::readEntry(*document, "/kdevphpsupport/shell/phpini"); + + phpIncludePath = DomUtil::readEntry(*document, "/kdevphpsupport/options/phpincludepath"); + phpStartupFile = DomUtil::readEntry(*document, "/kdevphpsupport/options/defaultFile"); + phpStartupFileMode = (StartupFileMode)DomUtil::readIntEntry(*document, "/kdevphpsupport/options/startupFileMode", Current); + + m_codeCompletion = DomUtil::readBoolEntry(*document,"kdevphpsupport/codeHelp/codeCompletion", true); + m_codeHinting = DomUtil::readBoolEntry(*document,"kdevphpsupport/codeHelp/codeHinting", true); + m_realtimeParsing = DomUtil::readBoolEntry(*document,"kdevphpsupport/codeHelp/realtimeParsing", true); +} + +PHPConfigData::~PHPConfigData() { +} + +void PHPConfigData::storeConfig() { + DomUtil::writeIntEntry(*document, "/kdevphpsupport/general/invocationMode",(int) invocationMode); + + DomUtil::writeEntry(*document, "/kdevphpsupport/webInvocation/weburl",webURL); + + DomUtil::writeEntry(*document, "/kdevphpsupport/shell/phpexe",phpExePath); + DomUtil::writeEntry(*document, "/kdevphpsupport/shell/phpini",phpIniPath); + + DomUtil::writeEntry(*document, "/kdevphpsupport/options/phpincludepath",phpIncludePath); + DomUtil::writeEntry(*document, "/kdevphpsupport/options/defaultFile",phpStartupFile); + DomUtil::writeIntEntry(*document, "/kdevphpsupport/options/startupFileMode",(int) phpStartupFileMode); + + DomUtil::writeBoolEntry(*document,"kdevphpsupport/codeHelp/codeCompletion",m_codeCompletion); + DomUtil::writeBoolEntry(*document,"kdevphpsupport/codeHelp/codeHinting",m_codeHinting); + DomUtil::writeBoolEntry(*document,"kdevphpsupport/codeHelp/realtimeParsing",m_realtimeParsing); + emit configStored(); // inform all others +} + +bool PHPConfigData::validateConfig(){ + bool valid = false; + if (invocationMode == Web || invocationMode == Shell) { + valid = true; + } + if (valid) { + if (invocationMode == Web) { + if (!(!webURL.isEmpty() && (phpStartupFileMode == Default || phpStartupFileMode == Current))) { + valid = false; + } + } + if (invocationMode == Shell) { + if (phpExePath.isEmpty()) { + valid = false; + } + } + } + return valid; +} +#include "phpconfigdata.moc" |