23#include "transportmanagementwidget.h"
24#include "ui_transportmanagementwidget.h"
25#include "transportmanager.h"
32using namespace MailTransport;
34class TransportManagementWidget::Private
40 Ui::TransportManagementWidget ui;
44 void defaultClicked();
49 void updateButtonState();
50 void slotCustomContextMenuRequested(
const QPoint & );
59 : QWidget( parent ), d( new Private( this ) )
61 KGlobal::locale()->insertCatalog( QString::fromLatin1(
"libmailtransport" ) );
62 d->ui.setupUi(
this );
63 d->updateButtonState();
65 d->ui.transportList->setContextMenuPolicy( Qt::CustomContextMenu );
66 connect( d->ui.transportList, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),
67 SLOT(updateButtonState()) );
68 connect( d->ui.transportList, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,
int)),
69 SLOT(editClicked()) );
70 connect( d->ui.addButton, SIGNAL(clicked()), SLOT(addClicked()) );
71 connect( d->ui.editButton, SIGNAL(clicked()), SLOT(editClicked()) );
72 connect( d->ui.renameButton, SIGNAL(clicked()), SLOT(renameClicked()) );
73 connect( d->ui.removeButton, SIGNAL(clicked()), SLOT(removeClicked()) );
74 connect( d->ui.defaultButton, SIGNAL(clicked()), SLOT(defaultClicked()) );
75 connect( d->ui.transportList, SIGNAL(customContextMenuRequested(QPoint)),
76 SLOT(slotCustomContextMenuRequested(QPoint)) );
84void TransportManagementWidget::Private::updateButtonState()
87 if ( !ui.transportList->currentItem() ) {
88 ui.editButton->setEnabled(
false );
89 ui.renameButton->setEnabled(
false );
90 ui.removeButton->setEnabled(
false );
91 ui.defaultButton->setEnabled(
false );
93 ui.editButton->setEnabled(
true );
94 ui.renameButton->setEnabled(
true );
95 ui.removeButton->setEnabled(
true );
96 if ( ui.transportList->currentItem()->data( 0, Qt::UserRole ) ==
98 ui.defaultButton->setEnabled(
false );
100 ui.defaultButton->setEnabled(
true );
105void TransportManagementWidget::Private::addClicked()
110void TransportManagementWidget::Private::editClicked()
112 if ( !ui.transportList->currentItem() ) {
116 const int currentId = ui.transportList->currentItem()->data( 0, Qt::UserRole ).toInt();
121void TransportManagementWidget::Private::renameClicked()
123 if ( !ui.transportList->currentItem() ) {
127 ui.transportList->editItem( ui.transportList->currentItem(), 0 );
130void TransportManagementWidget::Private::removeClicked()
132 if ( !ui.transportList->currentItem() ) {
136 KMessageBox::questionYesNo(
138 i18n(
"Do you want to remove outgoing account '%1'?",
139 ui.transportList->currentItem()->text( 0 ) ),
140 i18n(
"Remove outgoing account?" ) );
141 if ( rc == KMessageBox::No ) {
146 ui.transportList->currentItem()->data( 0, Qt::UserRole ).toInt() );
149void TransportManagementWidget::Private::defaultClicked()
151 if ( !ui.transportList->currentItem() ) {
156 ui.transportList->currentItem()->data( 0, Qt::UserRole ).toInt() );
159void TransportManagementWidget::Private::slotCustomContextMenuRequested(
const QPoint &pos )
161 KMenu *menu =
new KMenu( q );
162 menu->addAction( i18n(
"Add..." ), q, SLOT(addClicked()) );
163 QTreeWidgetItem *item = ui.transportList->itemAt( pos );
165 menu->addAction( i18n(
"Modify..." ), q, SLOT(editClicked()) );
166 menu->addAction( i18n(
"Rename" ), q, SLOT(renameClicked()) );
167 menu->addAction( i18n(
"Remove" ), q, SLOT(removeClicked()) );
169 menu->addSeparator();
170 menu->addAction( i18n(
"Set as Default" ), q, SLOT(defaultClicked()) );
173 menu->exec( ui.transportList->viewport()->mapToGlobal( pos ) );
177#include "moc_transportmanagementwidget.cpp"
Transport * transportById(int id, bool def=true) const
Returns the Transport object with the given id.
Q_SCRIPTABLE void removeTransport(int id)
Deletes the specified transport.
bool configureTransport(Transport *transport, QWidget *parent)
Open a configuration dialog for an existing transport.
Q_SCRIPTABLE void setDefaultTransport(int id)
Sets the default transport.
static TransportManager * self()
Returns the TransportManager instance.
bool showTransportCreationDialog(QWidget *parent, ShowCondition showCondition=Always)
Shows a dialog for creating and configuring a new transport.
Q_SCRIPTABLE int defaultTransportId() const
Returns the default transport identifier.
Represents the settings of a specific mail transport.