23 #include "transportmanagementwidget.h"
24 #include "ui_transportmanagementwidget.h"
25 #include "transportmanager.h"
26 #include "transport.h"
28 #include <KMessageBox>
31 using namespace MailTransport;
33 class TransportManagementWidget::Private
39 Ui::TransportManagementWidget ui;
43 void defaultClicked();
48 void updateButtonState();
49 void slotCustomContextMenuRequested(
const QPoint & );
58 : QWidget( parent ), d( new Private( this ) )
60 KGlobal::locale()->insertCatalog( QString::fromLatin1(
"libmailtransport" ) );
61 d->ui.setupUi(
this );
62 d->updateButtonState();
64 d->ui.transportList->setContextMenuPolicy( Qt::CustomContextMenu );
65 connect( d->ui.transportList, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),
66 SLOT(updateButtonState()) );
67 connect( d->ui.transportList, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,
int)),
68 SLOT(editClicked()) );
69 connect( d->ui.addButton, SIGNAL(clicked()), SLOT(addClicked()) );
70 connect( d->ui.editButton, SIGNAL(clicked()), SLOT(editClicked()) );
71 connect( d->ui.renameButton, SIGNAL(clicked()), SLOT(renameClicked()) );
72 connect( d->ui.removeButton, SIGNAL(clicked()), SLOT(removeClicked()) );
73 connect( d->ui.defaultButton, SIGNAL(clicked()), SLOT(defaultClicked()) );
74 connect( d->ui.transportList, SIGNAL(customContextMenuRequested(QPoint)),
75 SLOT(slotCustomContextMenuRequested(QPoint)) );
83 void TransportManagementWidget::Private::updateButtonState()
86 if ( !ui.transportList->currentItem() ) {
87 ui.editButton->setEnabled(
false );
88 ui.renameButton->setEnabled(
false );
89 ui.removeButton->setEnabled(
false );
90 ui.defaultButton->setEnabled(
false );
92 ui.editButton->setEnabled(
true );
93 ui.renameButton->setEnabled(
true );
94 ui.removeButton->setEnabled(
true );
95 if ( ui.transportList->currentItem()->data( 0, Qt::UserRole ) ==
97 ui.defaultButton->setEnabled(
false );
99 ui.defaultButton->setEnabled(
true );
104 void TransportManagementWidget::Private::addClicked()
109 void TransportManagementWidget::Private::editClicked()
111 if ( !ui.transportList->currentItem() ) {
115 const int currentId = ui.transportList->currentItem()->data( 0, Qt::UserRole ).toInt();
120 void TransportManagementWidget::Private::renameClicked()
122 if ( !ui.transportList->currentItem() ) {
126 ui.transportList->editItem( ui.transportList->currentItem(), 0 );
129 void TransportManagementWidget::Private::removeClicked()
131 if ( !ui.transportList->currentItem() ) {
135 KMessageBox::questionYesNo(
137 i18n(
"Do you want to remove outgoing account '%1'?",
138 ui.transportList->currentItem()->text( 0 ) ),
139 i18n(
"Remove outgoing account?" ) );
140 if ( rc == KMessageBox::No ) {
145 ui.transportList->currentItem()->data( 0, Qt::UserRole ).toInt() );
148 void TransportManagementWidget::Private::defaultClicked()
150 if ( !ui.transportList->currentItem() ) {
155 ui.transportList->currentItem()->data( 0, Qt::UserRole ).toInt() );
158 void TransportManagementWidget::Private::slotCustomContextMenuRequested(
const QPoint &pos )
160 KMenu *menu =
new KMenu( q );
161 menu->addAction( i18n(
"Add..." ), q, SLOT(addClicked()) );
162 QTreeWidgetItem *item = ui.transportList->itemAt( pos );
164 menu->addAction( i18n(
"Edit..." ), q, SLOT(editClicked()) );
165 menu->addAction( i18n(
"Rename" ), q, SLOT(renameClicked()) );
166 menu->addAction( i18n(
"Remove" ), q, SLOT(removeClicked()) );
168 menu->addSeparator();
169 menu->addAction( i18n(
"Set as Default" ), q, SLOT(defaultClicked()) );
172 menu->exec( ui.transportList->viewport()->mapToGlobal( pos ) );
176 #include "moc_transportmanagementwidget.cpp"