You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
141 lines
3.7 KiB
141 lines
3.7 KiB
/*
|
|
kopeteawaydialog.cpp - Kopete Away Dialog
|
|
|
|
Copyright (c) 2002 by Hendrik vom Lehn <hvl@linux-4-ever.de>
|
|
Copyright (c) 2003 by Martijn Klingens <klingens@kde.org>
|
|
|
|
Kopete (c) 2002-2003 by the Kopete developers <kopete-devel@kde.org>
|
|
|
|
*************************************************************************
|
|
* *
|
|
* This library is free software; you can redistribute it and/or *
|
|
* modify it under the terms of the GNU Lesser General Public *
|
|
* License as published by the Free Software Foundation; either *
|
|
* version 2 of the License, or (at your option) any later version. *
|
|
* *
|
|
*************************************************************************
|
|
*/
|
|
|
|
#include "kopeteawaydialog.h"
|
|
|
|
#include <kcombobox.h>
|
|
#include <kdebug.h>
|
|
#include <klineedit.h>
|
|
#include <tdelocale.h>
|
|
#include <kstringhandler.h>
|
|
|
|
#include "kopeteaway.h"
|
|
#include "kopeteawaydialogbase.h"
|
|
|
|
class KopeteAwayDialogPrivate
|
|
{
|
|
public:
|
|
KopeteAwayDialog_Base *base;
|
|
};
|
|
|
|
KopeteAwayDialog::KopeteAwayDialog( TQWidget *parent, const char *name )
|
|
: KDialogBase( parent, name, true, i18n( "Global Away Message" ),
|
|
KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok, true )
|
|
{
|
|
//kdDebug( 14010 ) << k_funcinfo << "Building KopeteAwayDialog..." << endl;
|
|
|
|
d = new KopeteAwayDialogPrivate;
|
|
|
|
d->base = new KopeteAwayDialog_Base( this );
|
|
setMainWidget( d->base );
|
|
|
|
TQObject::connect( d->base->cmbHistory, TQ_SIGNAL( activated( int ) ), this, TQ_SLOT( slotComboBoxSelection( int ) ) );
|
|
|
|
awayInstance = Kopete::Away::getInstance();
|
|
mExtendedAwayType = 0;
|
|
init();
|
|
|
|
//kdDebug( 14010 ) << k_funcinfo << "KopeteAwayDialog created." << endl;
|
|
}
|
|
|
|
KopeteAwayDialog::~KopeteAwayDialog()
|
|
{
|
|
delete d;
|
|
}
|
|
|
|
void KopeteAwayDialog::slotComboBoxSelection( int index )
|
|
{
|
|
// If they selected something out of the combo box
|
|
// They probably want to use it
|
|
d->base->txtOneShot->setText( awayInstance->getMessage(index) );
|
|
d->base->txtOneShot->setCursorPosition( 0 );
|
|
}
|
|
|
|
void KopeteAwayDialog::show()
|
|
{
|
|
// When this show is called, set the
|
|
// mExtendedAwayType to the empty string
|
|
mExtendedAwayType = 0;
|
|
|
|
// Reinit the GUI
|
|
init();
|
|
|
|
//kdDebug( 14010 ) << k_funcinfo << "Showing Dialog with no extended away type" << endl;
|
|
|
|
KDialogBase::show();
|
|
}
|
|
|
|
void KopeteAwayDialog::show( int awayType )
|
|
{
|
|
mExtendedAwayType = awayType;
|
|
|
|
// Reinit the GUI to set it up correctly
|
|
init();
|
|
|
|
kdDebug( 14010 ) << k_funcinfo << "Showing Dialog with extended away type " << awayType << endl;
|
|
|
|
KDialogBase::show();
|
|
}
|
|
|
|
void KopeteAwayDialog::cancelAway( int /* awayType */ )
|
|
{
|
|
/* Empty default implementation */
|
|
}
|
|
|
|
void KopeteAwayDialog::init()
|
|
{
|
|
TQStringList awayMessages = awayInstance->getMessages();
|
|
for( TQStringList::iterator it = awayMessages.begin(); it != awayMessages.end(); ++it )
|
|
{
|
|
*it = KStringHandler::rsqueeze( *it );
|
|
}
|
|
|
|
d->base->cmbHistory->clear();
|
|
d->base->cmbHistory->insertStringList( awayMessages );
|
|
d->base->txtOneShot->setText( awayMessages[0] );
|
|
|
|
d->base->txtOneShot->setFocus();
|
|
d->base->txtOneShot->setCursorPosition( 0 );
|
|
}
|
|
|
|
TQString KopeteAwayDialog::getSelectedAwayMessage()
|
|
{
|
|
mLastUserAwayMessage = d->base->txtOneShot->text();
|
|
return mLastUserAwayMessage;
|
|
}
|
|
|
|
void KopeteAwayDialog::slotOk()
|
|
{
|
|
// Save the text the user typed
|
|
mLastUserTypedMessage = d->base->txtOneShot->text();
|
|
|
|
setAway( mExtendedAwayType );
|
|
|
|
KDialogBase::slotOk();
|
|
}
|
|
|
|
void KopeteAwayDialog::slotCancel()
|
|
{
|
|
// Call the virtual function with the type of away
|
|
cancelAway( mExtendedAwayType );
|
|
|
|
KDialogBase::slotCancel();
|
|
}
|
|
|
|
#include "kopeteawaydialog.moc"
|