You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdewebdev/kimagemapeditor/mapslistview.cpp

175 lines
5.2 KiB

/***************************************************************************
mapslistview.cpp - description
-------------------
begin : Weg Feb 26 2003
copyright : (C) 2003 by Jan SchÃ?fer
email : janschaefer@users.sourceforge.net
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
// KDE
#include <klistview.h>
#include <klocale.h>
#include <kdebug.h>
// locale
#include "mapslistview.h"
MapsListView::MapsListView(TQWidget *parent, const char *name)
: TQVBox(parent, name) {
_listView = new KListView(this);
_listView->addColumn(i18n("Maps"));
_listView->setFullWidth(true);
_listView->setSelectionMode(TQListView::Single);
_listView->setItemsRenameable(true);
connect( _listView, TQT_SIGNAL( selectionChanged(TQListViewItem*)),
this, TQT_SLOT( slotSelectionChanged(TQListViewItem*)));
connect( _listView, TQT_SIGNAL( itemRenamed(TQListViewItem*)),
this, TQT_SLOT( slotItemRenamed(TQListViewItem*)));
}
MapsListView::~MapsListView() {
}
void MapsListView::addMap(const TQString & name = TQString()) {
new TQListViewItem(_listView,name);
//kdDebug() << "MapsListView::addMap : Added map '" << name << "'" << endl;
}
void MapsListView::addMaps(TQPtrList<MapTag> * maps) {
for (MapTag *tag = maps->first(); tag!=0L; tag=maps->next()) {
addMap(tag->name);
}
}
void MapsListView::selectMap(const TQString & name) {
TQListViewItem* item = _listView->findItem(name,0);
if (item) {
selectMap(item);
} else
kdWarning() << "MapsListView::selectMap : Couldn't found map '" << name << "'" << endl;
}
void MapsListView::selectMap(TQListViewItem* item) {
if (item)
_listView->setSelected(item,true);
}
TQString MapsListView::selectedMap() {
TQString result;
TQListViewItem* item = _listView->selectedItem();
if (item)
result = item->text(0);
else
kdWarning() << "MapsListView::selectedMap : No map selected !" << endl;
return result;
}
void MapsListView::removeMap(const TQString & name) {
TQListViewItem* item = _listView->findItem(name,0);
if (item) {
_listView->takeItem(item);
_listView->setSelected(_listView->currentItem(),true);
// kdDebug() << "MapsListView::removeMap : Removed map '" << name << "'" << endl;
} else
kdWarning() << "MapsListView::removeMap : Couldn't found map '" << name << "'" << endl;
}
void MapsListView::clear() {
_listView->clear();
}
void MapsListView::slotSelectionChanged(TQListViewItem* item) {
TQString name = item->text(0);
emit mapSelected(name);
}
void MapsListView::slotItemRenamed(TQListViewItem* item) {
TQString name = item->text(0);
emit mapRenamed(name);
}
void MapsListView::changeMapName(const TQString & oldName, const TQString & newName) {
// kdDebug() << "MapsListView::changeMapName : " << oldName << " to " << newName << endl;
TQListViewItem* item = _listView->findItem(oldName,0);
if (item) {
item->setText(0,newName);
// kdDebug() << "MapsListView::changeMapName : successful" << endl;
}
else {
kdWarning() << "MapsListView::changeMapName : Chouldn't find map with name '" << oldName << "'" << endl;
}
}
bool MapsListView::nameAlreadyExists(const TQString & name) {
// kdDebug() << "MapsListView::nameAlreadyExists : " << name << " ? " << endl;
bool result = false;
TQListViewItem* item = 0L;
for(item = _listView->firstChild(); item; item = item->nextSibling()) {
TQString otherMap = item->text(0);
if(name == otherMap) {
result = true;
break;
}
}
// kdDebug() << "MapsListView::nameAlreadyExists : " << name << " : " << result << endl;
return result;
}
TQStringList MapsListView::getMaps() {
TQStringList result;
TQListViewItem* item = 0L;
for(item = _listView->firstChild(); item; item = item->nextSibling()) {
TQString map = item->text(0);
result << map;
}
return result;
}
TQString MapsListView::getUnusedMapName() {
TQString result;
TQString attempt;
int i=0;
while(result.isEmpty()) {
i++;
attempt = i18n("unnamed");
attempt += TQString::number(i);
if (nameAlreadyExists(attempt))
continue;
result = attempt;
}
// kdDebug() << "MapsListView::getUnusedMapName : Found an unused name : '" << result << "'" << endl;
return result;
}
uint MapsListView::count() {
return _listView->childCount();
}
#include "mapslistview.moc"