Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 from __future__ import division
00036
00037 from python_qt_binding.QtCore import Qt
00038 from python_qt_binding.QtGui import QStandardItemModel
00039 import rospy
00040
00041 from . import logging
00042
00043
00044 class TreenodeItemModel(QStandardItemModel):
00045 """
00046 This class is made only for this purpose; to hold QStandardItem instances
00047 associated with QModelIndex. QStandardItemModel has methods to return it
00048 by index called itemFromIndex, but in some cases the method doesn't work
00049 for unknown reasons. Ref. question asked:
00050 http://stackoverflow.com/questions/14646979/strange-index-values-from-qstandarditemmodel
00051
00052 :author: Isaac Saito
00053 """
00054
00055 def __init__(self, parent=None):
00056 super(TreenodeItemModel, self).__init__(parent)
00057 self._parent = parent
00058
00059 self._indexes = {}
00060
00061 def get_index_from_grn(self, grn):
00062 """
00063
00064 :type grn: str
00065 :rtype: QPersistentModelIndex. None if the corresponding item isn't
00066 found.
00067 """
00068 logging.debug('get_index_from_grn all item={}'.format(
00069 self._indexes))
00070 return self._indexes.get(grn)
00071
00072 def set_item_from_index(self, grn, qpindex):
00073 """
00074 :type grn: str
00075 :type qpindex: QPersistentModelIndex
00076 """
00077 logging.debug('set_item_from_index grn={} qpindex={}'.format(
00078 grn, qpindex))
00079 self._indexes[grn] = qpindex