docs: def viewportRect(self):
          """
          Returns the QRectF that represents the visible viewport rect for the
          current view.
          
          :return     <QRectF>
          """
          w = self.width()
          h = self.height()
          
          vbar = self.verticalScrollBar()
          hbar = self.horizontalScrollBar()
          
          if vbar.isVisible():
              w -= vbar.width()
          if hbar.isVisible():
              h -= hbar.height()
          
          top_l = self.mapToScene(QPoint(0, 0))
          bot_r = self.mapToScene(QPoint(w, h))
          
          return QRectF(top_l.x(), 
                        top_l.y(), 
                        bot_r.x() - top_l.x(), 
                        bot_r.y() - top_l.y())