/*************************************************************************** copyright : (C) 2001-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; * * * ***************************************************************************/ #ifndef TELLICO_ENTRYITEM_H #define TELLICO_ENTRYITEM_H #include "gui/listview.h" #include "datavectors.h" namespace Tellico { namespace GUI { class CountedItem; } /** * The EntryItem is a subclass of ListViewItem containing a pointer to an Entry. * * The entry pointer allows easy access to listview items which refer to a certain entry. * * @see Entry * * @author Robby Stephenson */ class EntryItem : public GUI::ListViewItem { public: /** * This constructor is for items which are direct children of a ListView object, * which is just the @ref DetailedListView. * * @param parent A pointer to the parent * @param entry A pointer to the entry to which the item refers */ EntryItem(GUI::ListView* parent, Data::EntryPtr entry); /** * This constructor is for items which have other KListViewItems as parents. It * initializes the text in the first column, as well. * * @param parent A pointer to the parent * @param text The text in the first column * @param entry A pointer to the entry to which the item refers */ EntryItem(GUI::CountedItem* parent, Data::EntryPtr entry); virtual bool isEntryItem() const { return true; } /** * Returns the key for the list item. The key is just the text, unless there is none, * in which case a tab character is returned if there is a non-null pixmap. * * @param col Column to compare * @return The key string */ virtual QString key(int col, bool) const; /** * Returns a const pointer to the entry to which the item refers * * @return The entry pointer */ Data::EntryPtr const entry() const; virtual void doubleClicked(); virtual Data::EntryVec entries() const; private: Data::EntryPtr m_entry; // if the parent is a DetailedListView // this way, I don't have to call listView()->isA("Tellico::DetailedListView") every time // when I want to do funky comparisons bool m_isDetailedList : 1; }; } // end namespace #endif