20 #include "kopeteproperty.h"
21 #include "kopeteglobal.h"
22 #include "kopeteappearancesettings.h"
24 #include <QStringList>
25 #include <QApplication>
26 #include <QToolButton>
27 #include <QStandardItemModel>
28 #include <QSortFilterProxyModel>
30 #include <kiconloader.h>
36 setCaption( i18n(
"Tooltip Editor") );
37 setButtons( KDialog::Ok | KDialog::Cancel );
38 setDefaultButton(KDialog::Ok);
39 showButtonSeparator(
true);
41 mMainWidget =
new QWidget(
this);
45 setMainWidget(mMainWidget);
53 const Kopete::PropertyTmpl::Map propmap(
54 Kopete::Global::Properties::self()->templateMap());
55 const QStringList usedKeys = Kopete::AppearanceSettings::self()->toolTipContents();
58 foreach(
const QString &usedProp, usedKeys)
60 if(propmap.contains(usedProp) && !propmap[usedProp].isPrivate())
70 Kopete::PropertyTmpl::Map::ConstIterator it;
71 for(it = propmap.begin(); it != propmap.end(); ++it)
73 if((usedKeys.
contains(it.key())==0) && (!it.value().isPrivate()))
84 proxyModel->
sort( 0, Qt::AscendingOrder );
85 unusedItemsListView->setModel( proxyModel );
86 usedItemsListView->setModel( mUsedEntries );
95 connect(unusedItemsListView, SIGNAL(doubleClicked(
QModelIndex)),
this, SLOT(slotAddButton()));
96 connect(usedItemsListView, SIGNAL(doubleClicked(
QModelIndex)),
this, SLOT(slotRemoveButton()));
98 tbUp->setIcon(KIcon(
"go-up"));
99 tbUp->setEnabled(
false);
100 tbUp->setAutoRepeat(
true);
101 connect(tbUp, SIGNAL(clicked()), SLOT(slotUpButton()));
103 tbDown->setIcon(KIcon(
"go-down"));
104 tbDown->setEnabled(
false);
105 tbDown->setAutoRepeat(
true);
106 connect(tbDown, SIGNAL(clicked()), SLOT(slotDownButton()));
108 KIcon left = KIcon(
"go-previous");
109 KIcon right = KIcon(
"go-next");
112 tbAdd->setEnabled(
false);
113 connect(tbAdd, SIGNAL(clicked()), SLOT(slotAddButton()));
116 tbRemove->setEnabled(
false);
117 connect(tbRemove, SIGNAL(clicked()), SLOT(slotRemoveButton()));
119 connect(
this, SIGNAL(okClicked()),
this, SLOT(slotOkClicked()));
121 resize(
QSize(450, 450));
124 void TooltipEditDialog::slotOkClicked()
126 QStringList oldList = Kopete::AppearanceSettings::self()->toolTipContents();
131 int max = mUsedEntries->
rowCount( );
132 for (
int i=0; i < max; i++ )
141 if(oldList != newList)
143 Kopete::AppearanceSettings::self()->setToolTipContents(newList);
145 kDebug(14000) <<
"tooltip fields changed, emitting changed()";
150 void TooltipEditDialog::slotUnusedSelected(
const QItemSelection& selected)
152 tbAdd->setEnabled(selected.
indexes().count());
155 void TooltipEditDialog::slotUsedSelected(
const QItemSelection& selected)
157 tbRemove->setEnabled( selected.
indexes().count() );
158 tbUp->setEnabled( selected.
indexes().count() );
159 tbDown->setEnabled( selected.
indexes().count() );
161 if ( !selected.
indexes().count() )
165 if ( selected.
indexes().first().row() == 0 )
166 tbUp->setEnabled(
false );
168 tbUp->setEnabled(
true );
171 tbDown->setEnabled(
false );
173 tbDown->setEnabled(
true );
176 void TooltipEditDialog::slotUpButton()
178 QModelIndexList indexList = usedItemsListView->selectionModel()->selectedIndexes();
179 usedItemsListView->selectionModel()->clear();
183 int row = index.
row();
192 usedItemsListView->selectionModel()->select( mUsedEntries->
index( row - 1, 0 ) , QItemSelectionModel::Select );
193 usedItemsListView->scrollTo( mUsedEntries->
index( row - 1, 0 ) );
197 tbUp->setEnabled(
false );
198 tbDown->setEnabled(
true );
202 void TooltipEditDialog::slotDownButton()
204 QModelIndexList indexList = usedItemsListView->selectionModel()->selectedIndexes();
205 usedItemsListView->selectionModel()->clear();
208 int row = index.
row();
210 if ( row + 1 > mUsedEntries->
rowCount() )
217 usedItemsListView->selectionModel()->select( mUsedEntries->
index( row + 1, 0 ) , QItemSelectionModel::Select );
218 usedItemsListView->scrollTo( mUsedEntries->
index( row + 1, 0 ) );
222 if ( row + 1 == mUsedEntries->
rowCount() - 1 )
223 tbDown->setEnabled(
false );
224 tbUp->setEnabled(
true );
228 void TooltipEditDialog::slotAddButton()
230 QModelIndexList indexList = unusedItemsListView->selectionModel()->selectedIndexes();
239 if ( !usedItemsListView->selectionModel()->selectedIndexes().isEmpty() )
240 insertAfter = usedItemsListView->selectionModel()->selectedIndexes().last();
242 insertAfter = mUsedEntries->
index( mUsedEntries->
rowCount() - 1, 0 );
249 usedItemsListView->setCurrentIndex( newIndex );
253 void TooltipEditDialog::slotRemoveButton()
255 QModelIndexList indexList = usedItemsListView->selectionModel()->selectedIndexes();
259 int row = index.
row();
266 usedItemsListView->selectionModel()->select( mUsedEntries->
index( row - 1, 0 ), QItemSelectionModel::Select );
268 usedItemsListView->selectionModel()->select( mUsedEntries->
index( row, 0 ), QItemSelectionModel::Select );
273 #include "tooltipeditdialog.moc"
QModelIndexList indexes() const
virtual QModelIndex index(int row, int column, const QModelIndex &parent) const
virtual void sort(int column, Qt::SortOrder order)
virtual void setSourceModel(QAbstractItemModel *sourceModel)
bool contains(const QString &str, Qt::CaseSensitivity cs) const
virtual void setData(const QVariant &value, int role)
void setObjectName(const QString &name)
void insertRow(int row, const QList< QStandardItem * > &items)
QStandardItem * item(int row, int column) const
QList< QStandardItem * > takeRow(int row)
virtual int rowCount(const QModelIndex &parent) const
void appendRow(const QList< QStandardItem * > &items)
virtual QVariant data(int role) const