FolderTreeItem.cpp

Go to the documentation of this file.
00001 #include "FolderTreeItem.h"
00002 #include "icons/closedFolder.xpm"
00003 #include "icons/openedFolder.xpm"
00004 
00005 FolderTreeItem::FolderTreeItem( VocabTreeView* parent, Folder* folder, Preferences& prefs, PropertiesPanel* propsPanel )
00006     : TreeItem( (QListView*) parent, "FolderTreeItem", CheckBox ), folder( folder ), prefs( prefs ), propsPanel( propsPanel ) {
00007     setText( 0, folder->getTitle() );
00008     setOn( folder->isMarkedForStudy() );
00009     //setOpen( prefs.isFolderOpen( folder->getId() ) );
00010 }
00011 
00012 FolderTreeItem::FolderTreeItem( QListViewItem* parent, Folder* folder, Preferences& prefs, PropertiesPanel* propsPanel )
00013     : TreeItem( parent, "FolderTreeItem", CheckBox ), folder( folder ), prefs( prefs ), propsPanel( propsPanel ) {
00014     setText( 0, folder->getTitle() );
00015     setOn( folder->isMarkedForStudy() );
00016 }
00017 
00018 FolderTreeItem::~FolderTreeItem() {
00019 }
00020 
00021 bool FolderTreeItem::isFolder() const {
00022     return( true );
00023 }
00024 
00025 void FolderTreeItem::setPropertiesPanel( PropertiesPanel* propsPanel ) {
00026     this->propsPanel = propsPanel;
00027 }
00028 
00029 void FolderTreeItem::setOpen( bool isOpened ) {
00030     // Ignore close event for root.
00031     if( parent() || isOpened ) {
00032         QCheckListItem::setOpen( isOpened );
00033         setPixmap( 0, ( isOpened ? ZPIXMAP( openedFolder_xpm ) : ZPIXMAP( closedFolder_xpm ) ) );
00034         prefs.setFolderOpen( folder->getId(), isOpened );
00035     }
00036 }
00037 
00038 void FolderTreeItem::setOn( bool isOn ) {
00039     // We clear the selection in order to effectively reset it after
00040     // changing the state of the item.  This is needed because the
00041     // item is updated when a selection event occurs.
00042     bool isUpdateHackEnabled = listView()->isUpdatesEnabled();
00043     if( isUpdateHackEnabled )
00044         listView()->clearSelection();
00045     QCheckListItem::setOn( isOn );
00046     folder->setMarkedForStudy( isOn );
00047     // Force updating the event.
00048     if( isUpdateHackEnabled )
00049         listView()->setSelected( this, true );
00050 }
00051 
00052 Folder* FolderTreeItem::getFolder() {
00053     return( folder );
00054 }
00055 
00056 void FolderTreeItem::update() {
00057     if( propsPanel )
00058         propsPanel->updateCounters();
00059 }

Generated on Sun Mar 1 17:30:47 2009 for toMOTko by  doxygen 1.5.6