treenode_item_model.py
Go to the documentation of this file.
1 # Copyright (c) 2012, Willow Garage, Inc.
2 # All rights reserved.
3 #
4 # Software License Agreement (BSD License 2.0)
5 #
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
8 # are met:
9 #
10 # * Redistributions of source code must retain the above copyright
11 # notice, this list of conditions and the following disclaimer.
12 # * Redistributions in binary form must reproduce the above
13 # copyright notice, this list of conditions and the following
14 # disclaimer in the documentation and/or other materials provided
15 # with the distribution.
16 # * Neither the name of Willow Garage, Inc. nor the names of its
17 # contributors may be used to endorse or promote products derived
18 # from this software without specific prior written permission.
19 #
20 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 # POSSIBILITY OF SUCH DAMAGE.
32 #
33 # Author: Isaac Saito
34 
35 from __future__ import division
36 
37 from python_qt_binding.QtGui import QStandardItemModel
38 
39 from rqt_reconfigure import logging
40 
41 
42 class TreenodeItemModel(QStandardItemModel):
43  """
44  This class is made only for this purpose; to hold QStandardItem instances
45  associated with QModelIndex. QStandardItemModel has methods to return it
46  by index called itemFromIndex, but in some cases the method doesn't work
47  for unknown reasons. Ref. question asked:
48  http://stackoverflow.com/questions/14646979/strange-index-values-from-qstandarditemmodel
49 
50  :author: Isaac Saito
51  """
52 
53  def __init__(self, parent=None):
54  super(TreenodeItemModel, self).__init__(parent)
55  self._parent = parent
56 
57  self._indexes = {} # { str : QPersistentModelIndex }
58 
59  def get_index_from_grn(self, grn):
60  """
61 
62  :type grn: str
63  :rtype: QPersistentModelIndex. None if the corresponding item isn't
64  found.
65  """
66  logging.debug('get_index_from_grn all item={}'.format(self._indexes))
67  return self._indexes.get(grn)
68 
69  def set_item_from_index(self, grn, qpindex):
70  """
71  :type grn: str
72  :type qpindex: QPersistentModelIndex
73  """
74  logging.debug('set_item_from_index grn={} qpindex={}'.format(
75  grn, qpindex
76  ))
77  self._indexes[grn] = qpindex


rqt_reconfigure
Author(s): Isaac Saito, Ze'ev Klapow
autogenerated on Sat Mar 20 2021 02:51:58