mailtransport
transportmanagementwidget.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "transportmanagementwidget.h"
00024 #include "ui_transportmanagementwidget.h"
00025 #include "transportmanager.h"
00026 #include "transport.h"
00027
00028 using namespace MailTransport;
00029
00030 class TransportManagementWidget::Private
00031 {
00032 public:
00033
00034 Private( TransportManagementWidget *parent );
00035
00036 Ui::TransportManagementWidget ui;
00037 TransportManagementWidget *q;
00038
00039
00040 void defaultClicked();
00041 void removeClicked();
00042 void renameClicked();
00043 void editClicked();
00044 void addClicked();
00045 void updateButtonState();
00046 };
00047
00048 TransportManagementWidget::Private::Private( TransportManagementWidget *parent )
00049 : q( parent )
00050 {
00051 }
00052
00053 TransportManagementWidget::TransportManagementWidget( QWidget *parent )
00054 : QWidget( parent ), d( new Private( this ) )
00055 {
00056 KGlobal::locale()->insertCatalog( QString::fromLatin1( "libmailtransport" ) );
00057 d->ui.setupUi( this );
00058 d->updateButtonState();
00059
00060 connect( d->ui.transportList, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),
00061 SLOT(updateButtonState()) );
00062 connect( d->ui.transportList, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),
00063 SLOT(editClicked()) );
00064 connect( d->ui.addButton, SIGNAL(clicked()), SLOT(addClicked()) );
00065 connect( d->ui.editButton, SIGNAL(clicked()), SLOT(editClicked()) );
00066 connect( d->ui.renameButton, SIGNAL(clicked()), SLOT(renameClicked()) );
00067 connect( d->ui.removeButton, SIGNAL(clicked()), SLOT(removeClicked()) );
00068 connect( d->ui.defaultButton, SIGNAL(clicked()), SLOT(defaultClicked()) );
00069 }
00070
00071 TransportManagementWidget::~TransportManagementWidget()
00072 {
00073 delete d;
00074 }
00075
00076 void TransportManagementWidget::Private::updateButtonState()
00077 {
00078
00079 if ( !ui.transportList->currentItem() ) {
00080 ui.editButton->setEnabled( false );
00081 ui.renameButton->setEnabled( false );
00082 ui.removeButton->setEnabled( false );
00083 ui.defaultButton->setEnabled( false );
00084 } else {
00085 ui.editButton->setEnabled( true );
00086 ui.renameButton->setEnabled( true );
00087 ui.removeButton->setEnabled( true );
00088 if ( ui.transportList->currentItem()->data( 0, Qt::UserRole ) ==
00089 TransportManager::self()->defaultTransportId() ) {
00090 ui.defaultButton->setEnabled( false );
00091 } else {
00092 ui.defaultButton->setEnabled( true );
00093 }
00094 }
00095 }
00096
00097 void TransportManagementWidget::Private::addClicked()
00098 {
00099 TransportManager::self()->showTransportCreationDialog( q );
00100 }
00101
00102 void TransportManagementWidget::Private::editClicked()
00103 {
00104 if( !ui.transportList->currentItem() ) {
00105 return;
00106 }
00107
00108 int currentId = ui.transportList->currentItem()->data( 0, Qt::UserRole ).toInt();
00109 Transport *transport = TransportManager::self()->transportById( currentId );
00110 TransportManager::self()->configureTransport( transport, q );
00111 }
00112
00113 void TransportManagementWidget::Private::renameClicked()
00114 {
00115 if( !ui.transportList->currentItem() ) {
00116 return;
00117 }
00118
00119 ui.transportList->editItem( ui.transportList->currentItem(), 0 );
00120 }
00121
00122 void TransportManagementWidget::Private::removeClicked()
00123 {
00124 if( !ui.transportList->currentItem() ) {
00125 return;
00126 }
00127
00128 TransportManager::self()->removeTransport(
00129 ui.transportList->currentItem()->data( 0, Qt::UserRole ).toInt() );
00130 }
00131
00132 void TransportManagementWidget::Private::defaultClicked()
00133 {
00134 if( !ui.transportList->currentItem() ) {
00135 return;
00136 }
00137
00138 TransportManager::self()->setDefaultTransport(
00139 ui.transportList->currentItem()->data( 0, Qt::UserRole ).toInt() );
00140 }
00141
00142 #include "transportmanagementwidget.moc"