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().size() < 1 ) {
81 kDebug() <<
"No selected item.";
84 QTreeWidgetItem *item = selectedItems()[0];
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));
117 item->setFont(0, font);
119 item->setText( 0, name );
121 if ( t->id() == selected ) {
122 setCurrentItem( item );