ccconfigwidget.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include <qtabwidget.h>
00013 #include <qbuttongroup.h>
00014 #include <qcheckbox.h>
00015 #include <qlineedit.h>
00016 #include <qspinbox.h>
00017 #include <qradiobutton.h>
00018 #include <qcombobox.h>
00019 #include <qmultilineedit.h>
00020 #include <qslider.h>
00021 #include <qheader.h>
00022
00023
00024 #include <kdevproject.h>
00025 #include <kfiledialog.h>
00026 #include <klocale.h>
00027 #include <kmessagebox.h>
00028 #include <kdebug.h>
00029 #include <kstandarddirs.h>
00030 #include <kfileitem.h>
00031 #include <kurlrequester.h>
00032 #include <klistview.h>
00033 #include <knuminput.h>
00034 #include <kmainwindow.h>
00035
00036
00037 #include <domutil.h>
00038 #include <kdevcoderepository.h>
00039 #include <kdevmainwindow.h>
00040 #include <kdevcoderepository.h>
00041 #include <catalog.h>
00042
00043 #include "ccconfigwidget.h"
00044 #include "cppsupportpart.h"
00045 #include "cppcodecompletionconfig.h"
00046 #include "createpcsdialog.h"
00047
00048 using namespace std;
00049
00050
00051 CCConfigWidget::CCConfigWidget( CppSupportPart* part, QWidget* parent, const char* name )
00052 : CCConfigWidgetBase( parent, name )
00053 {
00054 m_pPart = part;
00055 connect( m_pPart->codeRepository(), SIGNAL(catalogRegistered(Catalog* )), this, SLOT(catalogRegistered(Catalog* )) );
00056 connect( m_pPart->codeRepository(), SIGNAL(catalogUnregistered(Catalog* )), this, SLOT(catalogUnregistered(Catalog* )) );
00057
00058 initFileTemplatesTab( );
00059 initCodeCompletionTab( );
00060
00061 inputCodeCompletion->setRange( 0, 2000, 100 );
00062 inputArgumentsHint->setRange( 0, 2000, 100 );
00063 }
00064
00065 void CCConfigWidget::initFileTemplatesTab( )
00066 {
00067 QDomDocument dom = *m_pPart->projectDom();
00068 interface_suffix->setText(DomUtil::readEntry(dom, "/cppsupportpart/filetemplates/interfacesuffix", ".h"));
00069 implementation_suffix->setText(DomUtil::readEntry(dom, "/cppsupportpart/filetemplates/implementationsuffix", ".cpp"));
00070 }
00071
00072 CCConfigWidget::~CCConfigWidget( )
00073 {
00074 }
00075
00076 void CCConfigWidget::accept( )
00077 {
00078 saveFileTemplatesTab();
00079 saveCodeCompletionTab();
00080 }
00081
00082 void CCConfigWidget::saveFileTemplatesTab( )
00083 {
00084 QDomDocument dom = *m_pPart->projectDom();
00085 DomUtil::writeEntry(dom, "/cppsupportpart/filetemplates/interfacesuffix",interface_suffix->text());
00086 DomUtil::writeEntry(dom, "/cppsupportpart/filetemplates/implementationsuffix",implementation_suffix->text());
00087 }
00088
00089 void CCConfigWidget::initCodeCompletionTab( )
00090 {
00091 advancedOptions->header()->hide();
00092
00093 CppCodeCompletionConfig* c = m_pPart->codeCompletionConfig();
00094
00095 inputCodeCompletion->setValue( c->codeCompletionDelay() );
00096 inputArgumentsHint->setValue( c->argumentsHintDelay() );
00097 checkAutomaticCodeCompletion->setChecked( c->automaticCodeCompletion() );
00098 checkAutomaticArgumentsHint->setChecked( c->automaticArgumentsHint() );
00099
00100 QListViewItem* codeCompletionOptions = new QListViewItem( advancedOptions, i18n("Code Completion Options") );
00101 codeCompletionOptions->setExpandable( true );
00102
00103
00104
00105 m_includeGlobalFunctions = new QCheckListItem( codeCompletionOptions, i18n("Include Global Functions"), QCheckListItem::CheckBox );
00106 m_includeGlobalFunctions->setOn( c->includeGlobalFunctions() );
00107
00108 m_includeTypes = new QCheckListItem( codeCompletionOptions, i18n("Include Types"), QCheckListItem::CheckBox );
00109 m_includeTypes->setOn( c->includeTypes() );
00110
00111 m_includeEnums = new QCheckListItem( codeCompletionOptions, i18n("Include Enums"), QCheckListItem::CheckBox );
00112 m_includeEnums->setOn( c->includeEnums() );
00113
00114 m_includeTypedefs = new QCheckListItem( codeCompletionOptions, i18n("Include Typedefs"), QCheckListItem::CheckBox );
00115 m_includeTypedefs->setOn( c->includeTypedefs() );
00116
00117 m_pcsOptions = new QListViewItem( advancedOptions, i18n("Persistant Class Store") );
00118 QValueList<Catalog*> catalogs = m_pPart->codeRepository()->registeredCatalogs();
00119 for( QValueList<Catalog*>::Iterator it=catalogs.begin(); it!=catalogs.end(); ++it )
00120 {
00121 Catalog* c = *it;
00122 QFileInfo dbInfo( c->dbName() );
00123 QCheckListItem* item = new QCheckListItem( m_pcsOptions, dbInfo.baseName(), QCheckListItem::CheckBox );
00124 item->setOn( c->enabled() );
00125
00126 m_catalogs[ item ] = c;
00127 }
00128 }
00129
00130 void CCConfigWidget::saveCodeCompletionTab( )
00131 {
00132 CppCodeCompletionConfig* c = m_pPart->codeCompletionConfig();
00133
00134 c->setCodeCompletionDelay( inputCodeCompletion->value() );
00135 c->setArgumentsHintDelay( inputArgumentsHint->value() );
00136
00137 c->setAutomaticCodeCompletion( checkAutomaticCodeCompletion->isChecked() );
00138 c->setAutomaticArgumentsHint( checkAutomaticArgumentsHint->isChecked() );
00139
00140 c->setIncludeGlobalFunctions( m_includeGlobalFunctions->isOn() );
00141 c->setIncludeTypes( m_includeTypes->isOn() );
00142 c->setIncludeEnums( m_includeEnums->isOn() );
00143 c->setIncludeTypedefs( m_includeTypedefs->isOn() );
00144
00145 for( QMap<QCheckListItem*, Catalog*>::Iterator it=m_catalogs.begin(); it!=m_catalogs.end(); ++it )
00146 {
00147 it.data()->setEnabled( it.key()->isOn() );
00148 }
00149
00150 c->store();
00151 }
00152
00153 void CCConfigWidget::slotNewPCS( )
00154 {
00155 CreatePCSDialog dlg( m_pPart, m_pPart->mainWindow()->main() );
00156 dlg.importerListView->setFocus();
00157 dlg.exec();
00158 }
00159
00160 void CCConfigWidget::catalogRegistered( Catalog * c )
00161 {
00162 QFileInfo dbInfo( c->dbName() );
00163 QCheckListItem* item = new QCheckListItem( m_pcsOptions, dbInfo.baseName(), QCheckListItem::CheckBox );
00164 item->setOn( c->enabled() );
00165
00166 m_catalogs[ item ] = c;
00167 }
00168
00169 void CCConfigWidget::catalogUnregistered( Catalog * c )
00170 {
00171 for( QMap<QCheckListItem*, Catalog*>::Iterator it=m_catalogs.begin(); it!=m_catalogs.end(); ++it )
00172 {
00173 if( it.data() == c ){
00174 QCheckListItem* item = it.key();
00175 delete( item );
00176 m_catalogs.remove( it );
00177 break;
00178 }
00179 }
00180 }
00181
00182 #include "ccconfigwidget.moc"
This file is part of the documentation for KDevelop Version 3.1.2.