phpconfigwidget.cpp
Go to the documentation of this file.00001 #include "domutil.h"
00002 #include <kprocess.h>
00003 #include <qlineedit.h>
00004 #include <qmultilineedit.h>
00005 #include <qcstring.h>
00006 #include <iostream>
00007 #include <qradiobutton.h>
00008 #include <kfiledialog.h>
00009
00010 #include "phpinfodlg.h"
00011 #include "phpconfigwidget.h"
00012 #include "phpconfigdata.h"
00013
00014 using namespace std;
00015
00016 PHPConfigWidget::PHPConfigWidget(PHPConfigData* data,QWidget* parent, const char* name, WFlags fl )
00017 : PHPConfigWidgetBase( parent, name, fl )
00018 {
00019 configData = data;
00020 m_phpInfo="";
00021
00022 PHPConfigData::InvocationMode mode = configData->getInvocationMode();
00023
00024
00025 if(mode == PHPConfigData::Shell){
00026 callPHPDirectly_radio->setChecked(true);
00027 }
00028 if(mode == PHPConfigData::Web){
00029 callWebserver_radio->setChecked(true);
00030 }
00031
00032
00033 QString weburl = configData->getWebURL();
00034 PHPConfigData::WebFileMode webFileMode = configData->getWebFileMode();
00035 QString webDefaultFile = configData->getWebDefaultFile();
00036
00037 if(weburl.isEmpty()) weburl = "http://localhost/";
00038 weburl_edit->setText(weburl);
00039 useDefaultFile_edit->setText(webDefaultFile);
00040
00041 if(webFileMode == PHPConfigData::Current){
00042 useCurrentFile_radio->setChecked(true);
00043 }
00044 if(webFileMode == PHPConfigData::Default){
00045 useDefaultFile_radio->setChecked(true);
00046 }
00047
00048
00050 QString exepath = configData->getPHPExecPath();
00051 if(exepath.isEmpty()) exepath = "/usr/local/bin/php";
00052 exe_edit->setText(exepath);
00053 }
00054
00055
00056
00057
00058 PHPConfigWidget::~PHPConfigWidget()
00059 {
00060
00061 }
00062
00063 void PHPConfigWidget::accept()
00064 {
00065 cerr << endl << "PHPConfigWidget::accept()";
00066
00067 if(callPHPDirectly_radio->isChecked()){
00068 configData->setInvocationMode(PHPConfigData::Shell);
00069 }
00070 if(callWebserver_radio->isChecked()){
00071 configData->setInvocationMode(PHPConfigData::Web);
00072 }
00073
00074
00075 configData->setWebURL(weburl_edit->text());
00076 configData->setWebDefaultFile(useDefaultFile_edit->text());
00077
00078 if(useCurrentFile_radio->isChecked()){
00079 configData->setWebFileMode(PHPConfigData::Current);
00080 }
00081 if(useDefaultFile_radio->isChecked()){
00082 configData->setWebFileMode(PHPConfigData::Default);
00083 }
00084
00085
00086 configData->setPHPExePath(exe_edit->text());
00087
00088 configData->storeConfig();
00089
00090 }
00091 void PHPConfigWidget::slotZendButtonClicked()
00092 {
00093 qWarning( "PHPConfigWidgetBase::slotZendButtonClicked(): Not implemented yet!" );
00094 }
00095
00096 void PHPConfigWidget::slotAboutClicked()
00097 {
00098 qWarning( "PHPConfigWidget::slotAboutClicked()" );
00099 KShellProcess proc("/bin/sh");
00100 proc << exe_edit->text();
00101 proc << "-m";
00102
00103 connect(&proc, SIGNAL(receivedStdout (KProcess*, char*, int)),
00104 this, SLOT(slotReceivedPHPInfo (KProcess*, char*, int)));
00105 proc.start(KProcess::Block,KProcess::Stdout);
00106 PHPInfoDlg dlg(this,"phpinfo",true);
00107 dlg.php_edit->setText(m_phpInfo);
00108 dlg.exec();
00109 m_phpInfo="";
00110 }
00111
00112 void PHPConfigWidget::slotReceivedPHPInfo (KProcess* , char* buffer, int buflen){
00113 m_phpInfo += QCString(buffer,buflen+1);
00114 }
00115 void PHPConfigWidget::slotPHPExeButtonClicked(){
00116 QString exe = KFileDialog::getOpenFileName(QFileInfo(exe_edit->text()).filePath());
00117 if(!exe.isEmpty()){
00118 exe_edit->setText(exe);
00119 }
00120 }
00121
00122 void PHPConfigWidget::slotPHPIniButtonClicked()
00123 {
00124 qWarning( "PHPConfigWidget::slotPHPIniButtonClicked(): Not implemented yet!" );
00125 }
00126
00127 #include "phpconfigwidget.moc"
This file is part of the documentation for KDevelop Version 3.1.2.