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
00042 class TreenodeItemModel(QStandardItemModel):
00043 """
00044 This class is made only for this purpose; to hold QStandardItem instances
00045 associated with QModelIndex. QStandardItemModel has methods to return it
00046 by index called itemFromIndex, but in some cases the method doesn't work
00047 for unknown reasons. Ref. question asked:
00048 http://stackoverflow.com/questions/14646979/strange-index-values-from-qstandarditemmodel
00049
00050 :author: Isaac Saito
00051 """
00052
00053 def __init__(self, parent=None):
00054 super(TreenodeItemModel, self).__init__(parent)
00055 self._parent = parent
00056
00057 self._indexes = {}
00058
00059 def get_index_from_grn(self, grn):
00060 """
00061
00062 :type grn: str
00063 :rtype: QPersistentModelIndex. None if the corresponding item isn't
00064 found.
00065 """
00066 rospy.logdebug('get_index_from_grn all item={}'.format(
00067 self._indexes))
00068 return self._indexes.get(grn)
00069
00070 def set_item_from_index(self, grn, qpindex):
00071 """
00072 :type grn: str
00073 :type qpindex: QPersistentModelIndex
00074 """
00075 rospy.logdebug('set_item_from_index grn={} qpindex={}'.format(
00076 grn, qpindex))
00077 self._indexes[grn] = qpindex