24 #include "transportlistview.h"
25 #include "transport.h"
26 #include "transportmanager.h"
27 #include "transporttype.h"
29 #include <QHeaderView>
33 #include <KLocalizedString>
35 using namespace MailTransport;
37 TransportListView::TransportListView( QWidget *parent )
38 : QTreeWidget( parent )
40 setHeaderLabels( QStringList()
41 << i18nc(
"@title:column email transport name",
"Name" )
42 << i18nc(
"@title:column email transport type",
"Type" ) );
43 setRootIsDecorated(
false );
44 header()->setMovable(
false );
45 header()->setResizeMode( QHeaderView::ResizeToContents );
46 setAllColumnsShowFocus(
true );
47 setAlternatingRowColors(
true );
48 setSortingEnabled(
true );
49 sortByColumn( 0, Qt::AscendingOrder );
50 setSelectionMode( SingleSelection );
54 this, SLOT(fillTransportList()) );
57 void TransportListView::editItem( QTreeWidgetItem *item,
int column )
60 if ( column == 0 && item ) {
61 Qt::ItemFlags oldFlags = item->flags();
62 item->setFlags( oldFlags | Qt::ItemIsEditable );
63 QTreeWidget::editItem( item, 0 );
64 item->setFlags( oldFlags );
65 const int id = item->data( 0, Qt::UserRole ).toInt();
68 kWarning() <<
"Transport" <<
id <<
"not known by manager.";
72 item->setText( 0, t->name() );
77 void TransportListView::commitData( QWidget *editor )
79 if ( selectedItems().isEmpty() ) {
81 kDebug() <<
"No selected item.";
84 QTreeWidgetItem *item = selectedItems().first();
85 QLineEdit *edit =
dynamic_cast<QLineEdit*
>( editor );
88 const int id = item->data( 0, Qt::UserRole ).toInt();
91 kWarning() <<
"Transport" <<
id <<
"not known by manager.";
94 kDebug() <<
"Renaming transport" <<
id <<
"to" << edit->text();
95 t->setName( edit->text() );
100 void TransportListView::fillTransportList()
104 if ( currentItem() ) {
105 selected = currentItem()->data( 0, Qt::UserRole ).toInt();
110 QTreeWidgetItem *item =
new QTreeWidgetItem(
this );
111 item->setData( 0, Qt::UserRole, t->id() );
112 QString name = t->name();
114 name += i18nc(
"@label the default mail transport",
" (Default)" );
115 QFont font( item->font(0) );
116 font.setBold(
true );
117 item->setFont( 0, font );
119 item->setText( 0, name );
121 if ( t->id() == selected ) {
122 setCurrentItem( item );
QString name() const
Returns the i18n'ed name of the transport type.
static TransportManager * self()
Returns the TransportManager instance.
void forceUniqueName()
Makes sure the transport has a unique name.
Represents the settings of a specific mail transport.
Transport * transportById(int id, bool def=true) const
Returns the Transport object with the given id.
TransportType transportType() const
Returns the type of this transport.