21 #include <QtGui/QCheckBox>
22 #include <QtGui/QLabel>
23 #include <QtGui/QRadioButton>
24 #include <QtGui/QSpinBox>
27 #include <kfiledialog.h>
28 #include <kurlrequester.h>
30 #include "diffsettings.h"
33 DiffSettings * settings,
QWidget * parent )
36 , m_destination( destination )
37 , m_FormatBG( new QButtonGroup(this) )
39 setObjectName(
"save options");
41 m_settings = settings;
43 m_directoryRequester->setMode(
44 KFile::ExistingOnly | KFile::Directory | KFile::LocalOnly );
48 sourceURL.setPath( source );
49 destinationURL.setPath( destination );
52 KUrl root( sourceURL );
53 while( root.isValid() && !root.isParentOf( destinationURL ) && root != root.upUrl() ) {
59 if( root.isValid() && root != root.upUrl() ) {
60 m_directoryRequester->setUrl( root.url() );
67 connect( m_IgnoreEmptyLinesCB, SIGNAL(toggled(
bool)), SLOT(
updateCommandLine()) );
68 connect( m_IgnoreWhiteSpaceCB, SIGNAL(toggled(
bool)), SLOT(
updateCommandLine()) );
78 connect( m_ContextLinesSB, SIGNAL(valueChanged(
int)), SLOT(
updateCommandLine()) );
79 connect( m_directoryRequester, SIGNAL(textChanged(
const QString&)), SLOT(
updateCommandLine()) );
81 m_FormatBG->setExclusive(
true);
82 m_FormatBG->addButton(m_ContextRB, Kompare::Context);
83 m_FormatBG->addButton(m_EdRB, Kompare::Ed);
84 m_FormatBG->addButton(m_NormalRB, Kompare::Normal);
85 m_FormatBG->addButton(m_UnifiedRB, Kompare::Unified);
86 m_FormatBG->addButton(m_RCSRB, Kompare::RCS);
87 m_FormatBG->addButton(m_SideBySideRB, Kompare::SideBySide);
99 return KUrl( m_directoryRequester->url() ).toLocalFile();
104 QString cmdLine =
"diff";
106 QString options =
"";
108 switch( static_cast<Kompare::Format>( m_FormatBG->checkedId() ) ) {
109 case Kompare::Unified :
110 cmdLine +=
" -U " + QString::number( m_ContextLinesSB->value() );
112 case Kompare::Context :
113 cmdLine +=
" -C " + QString::number( m_ContextLinesSB->value() );
121 case Kompare::SideBySide:
124 case Kompare::Normal :
125 case Kompare::UnknownFormat :
130 if ( m_SmallerChangesCB->isChecked() ) {
134 if ( m_LargeFilesCB->isChecked() ) {
138 if ( m_IgnoreCaseCB->isChecked() ){
142 if ( m_ExpandTabsCB->isChecked() ) {
146 if ( m_IgnoreEmptyLinesCB->isChecked() ) {
150 if ( m_IgnoreWhiteSpaceCB->isChecked() ) {
154 if ( m_FunctionNamesCB->isChecked() ) {
162 if ( m_RecursiveCB->isChecked() ) {
166 if( m_NewFilesCB->isChecked() ) {
174 if( options.length() > 0 ) {
175 cmdLine +=
" -" + options;
179 cmdLine += constructRelativePath( m_directoryRequester->url().pathOrUrl(), m_source );
181 cmdLine += constructRelativePath( m_directoryRequester->url().pathOrUrl(), m_destination );
183 m_CommandLineLabel->setText( cmdLine );
186 void KompareSaveOptionsWidget::loadOptions()
188 m_SmallerChangesCB->setChecked ( m_settings->m_createSmallerDiff );
189 m_LargeFilesCB->setChecked ( m_settings->m_largeFiles );
190 m_IgnoreCaseCB->setChecked ( m_settings->m_ignoreChangesInCase );
191 m_ExpandTabsCB->setChecked ( m_settings->m_convertTabsToSpaces );
192 m_IgnoreEmptyLinesCB->setChecked( m_settings->m_ignoreEmptyLines );
193 m_IgnoreWhiteSpaceCB->setChecked( m_settings->m_ignoreWhiteSpace );
194 m_FunctionNamesCB->setChecked ( m_settings->m_showCFunctionChange );
195 m_RecursiveCB->setChecked ( m_settings->m_recursive );
196 m_NewFilesCB->setChecked ( m_settings->m_newFiles );
199 m_ContextLinesSB->setValue ( m_settings->m_linesOfContext );
201 m_FormatBG->button(m_settings->m_format)->setChecked(
true);
208 m_settings->m_createSmallerDiff = m_SmallerChangesCB->isChecked();
209 m_settings->m_largeFiles = m_LargeFilesCB->isChecked();
210 m_settings->m_ignoreChangesInCase = m_IgnoreCaseCB->isChecked();
211 m_settings->m_convertTabsToSpaces = m_ExpandTabsCB->isChecked();
212 m_settings->m_ignoreEmptyLines = m_IgnoreEmptyLinesCB->isChecked();
213 m_settings->m_ignoreWhiteSpace = m_IgnoreWhiteSpaceCB->isChecked();
214 m_settings->m_showCFunctionChange = m_FunctionNamesCB->isChecked();
215 m_settings->m_recursive = m_RecursiveCB->isChecked();
216 m_settings->m_newFiles = m_NewFilesCB->isChecked();
219 m_settings->m_linesOfContext = m_ContextLinesSB->value();
221 m_settings->m_format =
static_cast<Kompare::Format
>( m_FormatBG->checkedId() );
225 #include "komparesaveoptionswidget.moc"