diff options
Diffstat (limited to 'kompare/libdialogpages/filespage.cpp')
-rw-r--r-- | kompare/libdialogpages/filespage.cpp | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/kompare/libdialogpages/filespage.cpp b/kompare/libdialogpages/filespage.cpp new file mode 100644 index 00000000..9e15a129 --- /dev/null +++ b/kompare/libdialogpages/filespage.cpp @@ -0,0 +1,170 @@ +/*************************************************************************** + filespage.cpp + ------------------- + begin : Sun Apr 18 2004 + copyright : (C) 2004 Otto Bruggeman + email : otto.bruggeman@home.nl + +****************************************************************************/ + +/*************************************************************************** +** +** This program is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 2 of the License, or +** (at your option) any later version. +** +***************************************************************************/ + +#include <qlayout.h> +#include <qgroupbox.h> + +#include <kapplication.h> +#include <kcharsets.h> +#include <kconfig.h> +#include <kdebug.h> +#include <kdialog.h> +#include <klocale.h> +#include <kurlcombobox.h> +#include <kurlrequester.h> + +#include "filessettings.h" +#include "filespage.h" + +FilesPage::FilesPage( QWidget* parent ) : PageBase( parent ), m_URLChanged( false ) +{ + QWidget* page = new QWidget( this ); + QVBoxLayout* layout = new QVBoxLayout( page ); + layout->setSpacing( KDialog::spacingHint() ); + layout->setMargin( KDialog::marginHint() ); + + m_firstGB = new QGroupBox( 1, Qt::Vertical, "You have to set this moron :)", page ); + m_firstURLComboBox = new KURLComboBox( KURLComboBox::Both, true, m_firstGB, "SourceURLComboBox" ); + m_firstURLRequester = new KURLRequester( m_firstURLComboBox, m_firstGB ); + m_firstURLRequester->setFocus(); + + m_secondGB = new QGroupBox( 1, Qt::Vertical, "This too moron !", page ); + m_secondURLComboBox = new KURLComboBox( KURLComboBox::Both, true, m_secondGB, "DestURLComboBox" ); + m_secondURLRequester = new KURLRequester( m_secondURLComboBox, m_secondGB ); + + connect( m_firstURLRequester, SIGNAL( urlSelected( const QString & ) ), SLOT( setSecondURL( const QString & ) ) ); + connect( m_secondURLRequester, SIGNAL( urlSelected( const QString & ) ), SLOT( setFirstURL( const QString & ) ) ); + + m_thirdGB = new QGroupBox( 1, Qt::Vertical, i18n( "Encoding" ), page ); + m_encodingComboBox = new QComboBox( false, m_thirdGB, "encoding_combobox" ); + m_encodingComboBox->insertStringList( KGlobal::charsets()->availableEncodingNames() ); + + layout->addWidget( m_firstGB ); + layout->addWidget( m_secondGB ); + layout->addWidget( m_thirdGB ); + + layout->addStretch( 1 ); + page->setMinimumSize( sizeHintForWidget( page ) ); + + addTab( page, i18n( "&Files" ) ); +} + +FilesPage::~FilesPage() +{ + m_settings = 0; +} + +KURLRequester* FilesPage::firstURLRequester() const +{ + return m_firstURLRequester; +} + +KURLRequester* FilesPage::secondURLRequester() const +{ + return m_secondURLRequester; +} + +QString FilesPage::encoding() const +{ + return m_encodingComboBox->currentText(); +} + +void FilesPage::setFirstGroupBoxTitle( const QString& title ) +{ + m_firstGB->setTitle( title ); +} + +void FilesPage::setSecondGroupBoxTitle( const QString& title ) +{ + m_secondGB->setTitle( title ); +} + +void FilesPage::setURLsInComboBoxes() +{ +// kdDebug() << "first : " << m_firstURLComboBox->currentText() << endl; +// kdDebug() << "second: " << m_secondURLComboBox->currentText() << endl; + m_firstURLComboBox->setURL( KURL( m_firstURLComboBox->currentText() ) ); + m_secondURLComboBox->setURL( KURL( m_secondURLComboBox->currentText() ) ); +} + + +void FilesPage::setFirstURLRequesterMode( unsigned int mode ) +{ + m_firstURLRequester->setMode( mode ); +} + +void FilesPage::setSecondURLRequesterMode( unsigned int mode ) +{ + m_secondURLRequester->setMode( mode ); +} + +void FilesPage::setSettings( FilesSettings* settings ) +{ + m_settings = settings; + + m_firstURLComboBox->setURLs( m_settings->m_recentSources ); + m_firstURLComboBox->setURL( KURL( m_settings->m_lastChosenSourceURL ) ); + m_secondURLComboBox->setURLs( m_settings->m_recentDestinations ); + m_secondURLComboBox->setURL( KURL( m_settings->m_lastChosenDestinationURL ) ); + m_encodingComboBox->setCurrentText( m_settings->m_encoding ); +} + +void FilesPage::restore() +{ + // this shouldn't do a thing... +} + +void FilesPage::apply() +{ + m_settings->m_recentSources = m_firstURLComboBox->urls(); + m_settings->m_lastChosenSourceURL = m_firstURLComboBox->currentText(); + m_settings->m_recentDestinations = m_secondURLComboBox->urls(); + m_settings->m_lastChosenDestinationURL = m_secondURLComboBox->currentText(); + m_settings->m_encoding = m_encodingComboBox->currentText(); +} + +void FilesPage::setDefaults() +{ + m_firstURLComboBox->setURLs( "" ); + m_firstURLComboBox->setURL( KURL( "" ) ); + m_secondURLComboBox->setURLs( "" ); + m_secondURLComboBox->setURL( KURL( "" ) ); + m_encodingComboBox->setCurrentText( "Default" ); +} + +void FilesPage::setFirstURL( const QString &url ) +{ + QString _url = url; + if ( !m_URLChanged ) + { + m_firstURLRequester->setURL( _url.remove( url.section( '/', -1 ) ) ); + m_URLChanged = true; + } +} + +void FilesPage::setSecondURL( const QString &url ) +{ + QString _url = url; + if ( !m_URLChanged ) + { + m_secondURLRequester->setURL( _url.remove( url.section( '/', -1 ) ) ); + m_URLChanged = true; + } +} + +#include "filespage.moc" |