summaryrefslogtreecommitdiffstats
path: root/languages/cpp/configproblemreporter.ui.h
blob: d5952b9535ad0e561dc8a51adc42df34679a1ef2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/****************************************************************************
** ui.h extension file, included from the uic-generated form implementation.
**
** If you wish to add, delete or rename slots use Qt Designer which will
** update this file, preserving your code. Create an init() slot in place of
** a constructor, and a destroy() slot in place of a destructor.
*****************************************************************************/

#include "cppsupportpart.h"

#include <kdevproject.h>

#include <kconfig.h>
#include <kapplication.h>
#include <klocale.h>
#include <kdebug.h>

#include <qfile.h>
#include <qtextstream.h>

void ConfigureProblemReporter::init()
{
	m_part = 0;
	KConfig* config = kapp->config();
	config->setGroup( "General Options" );
	problemReporterCheckbox->setChecked( config->readBoolEntry( "EnableProblemReporter", true ) );
	bgParserCheckbox->setChecked( config->readBoolEntry( "EnableCppBgParser", true ) );
	delaySlider->setEnabled( bgParserCheckbox->isChecked() );
	delaySlider->setValue( config->readNumEntry( "BgParserDelay", 500 ) );
	setDelayLabel( delaySlider->value() );
}

void ConfigureProblemReporter::destroy()
{}

void ConfigureProblemReporter::setPart( CppSupportPart* part )
{
	m_part = part;
	if ( !m_part )
		return ;

	QString conf_file_name = m_part->specialHeaderName();
	if ( QFile::exists( conf_file_name ) )
	{
		QFile f( conf_file_name );
		if ( f.open( IO_ReadOnly ) )
		{
			QTextStream stream( &f );
			specialHeader->setText( stream.read() );
			f.close();
		}
	}
}

void ConfigureProblemReporter::accept()
{
	KConfig * config = kapp->config();
	config->setGroup( "General Options" );
	config->writeEntry( "EnableProblemReporter", problemReporterCheckbox->isChecked() );
	config->writeEntry( "EnableCppBgParser", bgParserCheckbox->isChecked() );
	if ( bgParserCheckbox->isChecked() )
		config->writeEntry( "BgParserDelay", delaySlider->value() );
	config->sync();

	m_part->updateBackgroundParserConfig();
	
	
	if ( m_part && specialHeader->isModified() )
	{
		QString conf_file_name = m_part->specialHeaderName( true );
		QFile f( conf_file_name );
		if ( f.open( IO_WriteOnly ) )
		{
			QTextStream stream( &f );
			stream << specialHeader->text();
			f.close();

			m_part->updateParserConfiguration();
		}
	}
}

void ConfigureProblemReporter::bgParserCheckbox_toggled( bool b )
{
	delaySlider->setEnabled( b );
	if ( b == TRUE )
		delayLabel->show();
	else
		delayLabel->hide();
}


void ConfigureProblemReporter::setDelayLabel( int delay )
{
	delayLabel->setText( i18n( "delay: %1 msec" ).arg( delay ) );
}
// kate: indent-mode csands; tab-width 4;