diff options
Diffstat (limited to 'tdeio/tdeio/passdlg.h')
-rw-r--r-- | tdeio/tdeio/passdlg.h | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/tdeio/tdeio/passdlg.h b/tdeio/tdeio/passdlg.h new file mode 100644 index 000000000..864023398 --- /dev/null +++ b/tdeio/tdeio/passdlg.h @@ -0,0 +1,175 @@ +/* This file is part of the KDE libraries + Copyright (C) 2000 David Faure <faure@kde.org> + Copyright (C) 2000 Dawit Alemayehu <adawit@kde.org> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License version 2 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; see the file COPYING.LIB. If + not, write to the Free Software Foundation, Inc., 51 Franklin Street, + Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#ifndef __kio_pass_dlg_h__ +#define __kio_pass_dlg_h__ + +#include <kdialogbase.h> + +class TQGridLayout; + +namespace TDEIO { + +/** + * A dialog for requesting a login and a password from the end user. + * + * KIO-Slave authors are encouraged to use SlaveBase::openPassDlg + * instead of directly instantiating this dialog. + * @short dialog for requesting login and password from the end user + */ +class TDEIO_EXPORT PasswordDialog : public KDialogBase +{ + Q_OBJECT + +public: + /** + * Create a password dialog. + * + * @param prompt instructional text to be shown. + * @param user username, if known initially. + * @param enableKeep if true, shows checkbox that makes password persistent until KDE is shutdown. + * @param modal if true, the dialog will be modal (default:true). + * @param parent the parent widget (default:NULL). + * @param name the dialog name (default:NULL). + */ + PasswordDialog( const TQString& prompt, const TQString& user, + bool enableKeep = false, bool modal=true, + TQWidget* parent=0, const char* name=0 ); + + /** + * Destructor + */ + ~PasswordDialog(); + + /** + * Sets the prompt to show to the user. + * @param prompt instructional text to be shown. + */ + void setPrompt( const TQString& prompt ); + + /** + * Adds a comment line to the dialog. + * + * This function allows you to add one additional comment + * line to this widget. Calling this function after a + * comment has already been added will not have any effect. + * + * @param label label for comment (ex:"Command:") + * @param comment the actual comment text. + */ + void addCommentLine( const TQString& label, const TQString comment ); + + /** + * Returns the password entered by the user. + * @return the password + */ + TQString password() const; + + /** + * Returns the username entered by the user. + * @return the user name + */ + TQString username() const; + + /** + * Determines whether supplied authorization should + * persist even after the application has been closed. + * @return true to keep the password + */ + bool keepPassword() const; + + /** + * Check or uncheck the "keep password" checkbox. + * This can be used to check it before showing the dialog, to tell + * the user that the password is stored already (e.g. in the wallet). + * enableKeep must have been set to true in the constructor. + */ + void setKeepPassword( bool b ); + + /** + * Sets the username field read-only and sets the + * focus to the password field. + * + * @param readOnly true to set the user field to read-only + */ + void setUserReadOnly( bool readOnly ); + + /** + * @deprecated. Use setUserReadOnly(bool). + */ + KDE_DEPRECATED void setEnableUserField( bool enable, bool=false ) { + setUserReadOnly( !enable ); + }; + + /** + * Presets the password. + * @param password the password to set + * @since 3.1 + */ + void setPassword( const TQString& password ); + + /** + * Presets a number of login+password pairs that the user can choose from. + * The passwords can be empty if you simply want to offer usernames to choose from. + * This is incompatible with setUserReadOnly(true). + * @param knownLogins map of known logins: the keys are usernames, the values are passwords. + * @since 3.4 + */ + void setKnownLogins( const TQMap<TQString, TQString>& knownLogins ); + + /** + * A convienence static method for obtaining authorization + * information from the end user. + * + * + * @param user username + * @param pass password + * @param keep pointer to flag that indicates whether to keep password (can be null) + * @param prompt text to display to user. + * @param readOnly make the username field read-only. + * @param caption set the title bar to given text. + * @param comment extra comment to display to user. + * @param label optinal label for extra comment. + * + * @return Accepted/Rejected based on the user choice. + */ + static int getNameAndPassword( TQString& user, TQString& pass, bool* keep, + const TQString& prompt = TQString::null, + bool readOnly = false, + const TQString& caption = TQString::null, + const TQString& comment = TQString::null, + const TQString& label = TQString::null ); + +private slots: + void slotKeep( bool ); + void slotActivated( const TQString& userName ); + +private: + void init( const TQString&, const TQString&, bool ); + +protected: + virtual void virtual_hook( int id, void* data ); +private: + struct PasswordDialogPrivate; + PasswordDialogPrivate* d; +}; + +} + +#endif |