From 8ebc71609e5263d096f7331a5e0fa95b41eb1d77 Mon Sep 17 00:00:00 2001 From: andyq Date: Sat, 28 Sep 2002 23:22:41 +0000 Subject: *** empty log message *** --- (limited to 'noncore/settings/aqpkg/inputdlg.cpp') diff --git a/noncore/settings/aqpkg/inputdlg.cpp b/noncore/settings/aqpkg/inputdlg.cpp new file mode 100644 index 0000000..724a891 --- a/dev/null +++ b/noncore/settings/aqpkg/inputdlg.cpp @@ -0,0 +1,121 @@ +/*************************************************************************** + inputdlg.h - description + ------------------- + begin : Mon Aug 26 2002 + copyright : (C) 2002 by Andy Qua + email : andy.qua@blueyonder.co.uk + ***************************************************************************/ + +/*************************************************************************** + * * + * 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 +#include +#include +#include +#include +#include +#include +#include +#include + +#include "inputdlg.h" +#include "global.h" + + +InputDialog :: InputDialog( const QString &label, QWidget* parent, const char* name, + bool modal ) + : QDialog( parent, name, modal ) +{ + lineEdit = 0; + + QVBoxLayout *vbox = new QVBoxLayout( this, 6, 6 ); + + QLabel* l = new QLabel( label, this ); + vbox->addWidget( l ); + + lineEdit = new QLineEdit( this ); + vbox->addWidget( lineEdit ); + + QHBoxLayout *hbox = new QHBoxLayout( 6 ); + vbox->addLayout( hbox, AlignRight ); + + ok = new QPushButton( tr( "&OK" ), this ); + ok->setDefault( TRUE ); + QPushButton *cancel = new QPushButton( tr( "&Cancel" ), this ); + + QSize bs( ok->sizeHint() ); + if ( cancel->sizeHint().width() > bs.width() ) + bs.setWidth( cancel->sizeHint().width() ); + + ok->setFixedSize( bs ); + cancel->setFixedSize( bs ); + + hbox->addWidget( new QWidget( this ) ); + hbox->addWidget( ok ); + hbox->addWidget( cancel ); + + connect( lineEdit, SIGNAL( returnPressed() ), + this, SLOT( tryAccept() ) ); + connect( lineEdit, SIGNAL( textChanged( const QString & ) ), + this, SLOT( textChanged( const QString & ) ) ); + + connect( ok, SIGNAL( clicked() ), this, SLOT( accept() ) ); + connect( cancel, SIGNAL( clicked() ), this, SLOT( reject() ) ); + + resize( QMAX( sizeHint().width(), 240 ), sizeHint().height() ); +} + +/*! + Destructor. +*/ + +InputDialog::~InputDialog() +{ +} + +void InputDialog :: setText( const QString &text ) +{ + lineEdit->setText( text ); + lineEdit->selectAll(); +} + +QString InputDialog :: getText() +{ + return lineEdit->text(); +} + +QString InputDialog::getText( const QString &caption, const QString &label, + const QString &text, bool *ok, QWidget *parent, + const char *name ) +{ + InputDialog *dlg = new InputDialog( label, parent, name, true ); + dlg->setCaption( caption ); + dlg->setText( text ); + + QString result; + *ok = dlg->exec() == QDialog::Accepted; + if ( *ok ) + result = dlg->getText(); + + delete dlg; + return result; +} + + + +void InputDialog :: textChanged( const QString &s ) +{ + ok->setEnabled( !s.isEmpty() ); +} + +void InputDialog :: tryAccept() +{ + if ( !lineEdit->text().isEmpty() ) + accept(); +} -- cgit v0.9.0.2