knotes

knotehostdlg.cpp

00001 /*******************************************************************
00002  KNotes -- Notes for the KDE project
00003 
00004  Copyright (c) 2003, Daniel Martin <daniel.martin@pirack.com>
00005                2004, Michael Brade <brade@kde.org>
00006 
00007  This program is free software; you can redistribute it and/or
00008  modify it under the terms of the GNU General Public License
00009  as published by the Free Software Foundation; either version 2
00010  of the License, or (at your option) any later version.
00011 
00012  This program is distributed in the hope that it will be useful,
00013  but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  GNU General Public License for more details.
00016 
00017  You should have received a copy of the GNU General Public License
00018  along with this program; if not, write to the Free Software
00019  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00020 
00021  In addition, as a special exception, the copyright holders give
00022  permission to link the code of this program with any edition of
00023  the Qt library by Trolltech AS, Norway (or with modified versions
00024  of Qt that use the same license as Qt), and distribute linked
00025  combinations including the two.  You must obey the GNU General
00026  Public License in all respects for all of the code used other than
00027  Qt.  If you modify this file, you may extend this exception to
00028  your version of the file, but you are not obligated to do so.  If
00029  you do not wish to do so, delete this exception statement from
00030  your version.
00031 *******************************************************************/
00032 
00033 #include <qstring.h>
00034 #include <qstringlist.h>
00035 #include <qlabel.h>
00036 #include <qvbox.h>
00037 
00038 #include <kdebug.h>
00039 #include <kglobal.h>
00040 #include <klocale.h>
00041 #include <kstandarddirs.h>
00042 #include <ksimpleconfig.h>
00043 #include <kcombobox.h>
00044 
00045 #include "knotehostdlg.h"
00046 #include "knotesglobalconfig.h"
00047 
00048 
00049 KNoteHostDlg::KNoteHostDlg( const QString &caption, QWidget *parent, const char *name )
00050     : KDialogBase( parent, name, true, caption, Ok|Cancel, Ok, true )
00051 {
00052     QVBox *page = makeVBoxMainWidget();
00053     (void)new QLabel( i18n("Hostname or IP address:"), page );
00054 
00055     m_hostCombo = new KHistoryCombo( true, page );
00056     m_hostCombo->setMinimumWidth( fontMetrics().maxWidth() * 15 );
00057     m_hostCombo->setDuplicatesEnabled( false );
00058 
00059     // Read known hosts from configfile
00060     m_hostCombo->setHistoryItems( KNotesGlobalConfig::knownHosts(), true );
00061     m_hostCombo->setFocus();
00062     //m_hostCombo->completionObject()->setItems( KNotesGlobalConfig::hostCompletions() );
00063     connect( m_hostCombo->lineEdit(), SIGNAL( textChanged ( const QString & ) ),
00064              this, SLOT( slotTextChanged( const QString & ) ) );
00065     slotTextChanged( m_hostCombo->lineEdit()->text() );
00066 }
00067 
00068 KNoteHostDlg::~KNoteHostDlg()
00069 {
00070     if ( result() == Accepted )
00071         m_hostCombo->addToHistory( m_hostCombo->currentText().stripWhiteSpace() );
00072 
00073     // Write known hosts to configfile
00074     KNotesGlobalConfig::setKnownHosts( m_hostCombo->historyItems() );
00075     //KNotesGlobalConfig::setHostCompletions( m_hostCombo->completionObject()->items() );
00076     KNotesGlobalConfig::writeConfig();
00077 }
00078 
00079 void KNoteHostDlg::slotTextChanged( const QString& text )
00080 {
00081     enableButtonOK( !text.isEmpty() );
00082 }
00083 
00084 QString KNoteHostDlg::host() const
00085 {
00086     return m_hostCombo->currentText();
00087 }
00088 
00089 
00090 #include "knotehostdlg.moc"
KDE Home | KDE Accessibility Home | Description of Access Keys