19 #include <QtGui/QHeaderView>
21 #include "kopeteonlinestatusmanager.h"
23 #include "kopetestatusmanager.h"
24 #include "kopetestatusitems.h"
26 class StatusConfig_Manager::Private
31 Kopete::Status::StatusGroup *rootGroup;
35 :
QWidget( parent ), d( new Private() )
39 pbAddStatus->setIcon( KIcon(
"list-add") );
40 pbRemove->setIcon( KIcon(
"edit-delete") );
41 pbAddGroup->setIcon( KIcon(
"folder-new") );
47 d->rootGroup = Kopete::StatusManager::self()->copyRootGroup();
49 d->statusModel->setSupportedDragActions( Qt::MoveAction );
50 statusView->setModel( d->statusModel );
53 KIcon
icon = Kopete::OnlineStatusManager::pixmapForCategory( Kopete::OnlineStatusManager::Online );
54 cbStatusCategory->addItem( icon, i18n(
"Online"), Kopete::OnlineStatusManager::Online );
55 icon = Kopete::OnlineStatusManager::pixmapForCategory( Kopete::OnlineStatusManager::FreeForChat );
56 cbStatusCategory->addItem( icon, i18n(
"Free For Chat"), Kopete::OnlineStatusManager::FreeForChat );
57 icon = Kopete::OnlineStatusManager::pixmapForCategory( Kopete::OnlineStatusManager::Away );
58 cbStatusCategory->addItem( icon, i18n(
"Away"), Kopete::OnlineStatusManager::Away );
59 icon = Kopete::OnlineStatusManager::pixmapForCategory( Kopete::OnlineStatusManager::ExtendedAway );
60 cbStatusCategory->addItem( icon, i18n(
"Extended Away"), Kopete::OnlineStatusManager::ExtendedAway );
61 icon = Kopete::OnlineStatusManager::pixmapForCategory( Kopete::OnlineStatusManager::Busy );
62 cbStatusCategory->addItem( icon, i18n(
"Busy"), Kopete::OnlineStatusManager::Busy );
63 icon = Kopete::OnlineStatusManager::pixmapForCategory( Kopete::OnlineStatusManager::Idle );
64 cbStatusCategory->addItem( icon, i18n(
"Idle"), Kopete::OnlineStatusManager::Idle );
65 icon = Kopete::OnlineStatusManager::pixmapForCategory( Kopete::OnlineStatusManager::Invisible );
66 cbStatusCategory->addItem( icon, i18n(
"Invisible"), Kopete::OnlineStatusManager::Invisible );
67 icon = Kopete::OnlineStatusManager::pixmapForCategory( Kopete::OnlineStatusManager::Offline );
68 cbStatusCategory->addItem( icon, i18n(
"Offline"), Kopete::OnlineStatusManager::Offline );
69 icon = Kopete::OnlineStatusManager::pixmapForCategory( 0x00 );
70 cbStatusCategory->addItem( icon, i18n(
"Do Not Change"), 0x00 );
72 statusView->expandAll();
75 connect( cbStatusCategory, SIGNAL(currentIndexChanged(
int)),
this, SLOT(editTypeChanged(
int)) );
76 connect( teStatusMessage, SIGNAL(textChanged()),
this, SLOT(editMessageChanged()) );
88 delete d->statusModel;
99 Kopete::Status::StatusGroup *group = qobject_cast<Kopete::Status::StatusGroup *>(d->rootGroup->copy());
100 Kopete::StatusManager::self()->setRootGroup( group );
101 Kopete::StatusManager::self()->saveXML();
106 Kopete::Status::Status *status =
new Kopete::Status::Status();
107 status->setTitle( i18n(
"New Status" ) );
108 status->setCategory( Kopete::OnlineStatusManager::Online );
110 QModelIndex index = statusView->selectionModel()->currentIndex();
111 QModelIndex newIndex = d->statusModel->insertItem( index, status );
114 statusView->setCurrentIndex( newIndex );
121 Kopete::Status::StatusGroup *group =
new Kopete::Status::StatusGroup();
122 group->setTitle( i18n(
"New Group" ) );
123 group->setCategory( Kopete::OnlineStatusManager::Online );
125 QModelIndex index = statusView->selectionModel()->currentIndex();
126 QModelIndex newIndex = d->statusModel->insertItem( index, group );
130 statusView->setCurrentIndex( newIndex );
131 statusView->setExpanded( newIndex,
true );
139 QModelIndex index = statusView->selectionModel()->currentIndex();
142 d->statusModel->removeRow( index.
row(), index.
parent() );
147 leStatusTitle->blockSignals(
true );
148 cbStatusCategory->blockSignals(
true );
149 teStatusMessage->blockSignals(
true );
153 statusGroupBox->setEnabled(
true );
154 pbRemove->setEnabled(
true );
156 cbStatusCategory->setCurrentIndex( categoryIndex );
161 lblStatusMessage->setEnabled(
false );
162 teStatusMessage->setEnabled(
false );
163 teStatusMessage->clear();
167 lblStatusMessage->setEnabled(
true );
168 teStatusMessage->setEnabled(
true );
174 statusGroupBox->setEnabled(
false );
175 pbRemove->setEnabled(
false );
176 cbStatusCategory->setCurrentIndex( 0 );
177 leStatusTitle->clear();
178 teStatusMessage->clear();
181 leStatusTitle->blockSignals(
false );
182 cbStatusCategory->blockSignals(
false );
183 teStatusMessage->blockSignals(
false );
186 void StatusConfig_Manager::editTitleEdited(
const QString &text )
188 QModelIndex modelIndex = statusView->selectionModel()->currentIndex();
192 void StatusConfig_Manager::editMessageChanged()
194 QModelIndex modelIndex = statusView->selectionModel()->currentIndex();
198 void StatusConfig_Manager::editTypeChanged(
int index )
200 QModelIndex modelIndex = statusView->selectionModel()->currentIndex();
204 #include "statusconfig_manager.moc"
QModelIndex currentIndex() const
QModelIndex parent() const
StatusConfig_Manager(QWidget *parent=0)
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)