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.
tellico/src/entryitem.cpp

56 lines
2.2 KiB

/***************************************************************************
copyright : (C) 2003-2007 by Robby Stephenson
email : robby@periapsis.org
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of version 2 of the GNU General Public License as *
* published by the Free Software Foundation; *
* *
***************************************************************************/
#include "entryitem.h"
#include "entry.h"
#include "gui/counteditem.h"
#include "collection.h"
#include "controller.h"
#include <kiconloader.h>
using Tellico::EntryItem;
EntryItem::EntryItem(GUI::ListView* parent, Data::EntryPtr entry)
: GUI::ListViewItem(parent), m_entry(entry), m_isDetailedList(true) {
}
EntryItem::EntryItem(GUI::CountedItem* parent_, Data::EntryPtr entry_)
: GUI::ListViewItem(parent_), m_entry(entry_), m_isDetailedList(false) {
setText(0, m_entry->title());
setPixmap(0, UserIcon(entry_->collection()->typeName()));
}
Tellico::Data::EntryPtr const EntryItem::entry() const {
return m_entry;
}
TQString EntryItem::key(int col_, bool) const {
// first column is always title unless it's a detailed list
// detailed list takes care of things on its own
bool checkArticles = (!m_isDetailedList && col_ == 0);
// there's some sort of painting bug if the key is identical for multiple entries
// probably a null string in the group view. TODO
// don't add the entry id if it's a detailed view cause that messes up secondary sorting
TQString key = (checkArticles ? Data::Field::sortKeyTitle(text(col_)) : text(col_));
return (m_isDetailedList ? key : key + TQString::number(m_entry->id()));
}
void EntryItem::doubleClicked() {
Controller::self()->editEntry(m_entry);
}
Tellico::Data::EntryVec EntryItem::entries() const {
return Data::EntryVec(entry());
}