docs: def read(self, relpath, rsc=None, mode='r', useFilepath=None):
          """
          Reads the contents for a given relative filepath.  This will call
          the load function and do a full read on the file contents.
          
          :param      relpath | <str>
                      rsc     | <str> || None
                      mode    | <str> | 'r' or 'rb'
          
          :return     <str>
          """
          f = self.load(relpath, rsc, mode, useFilepath=useFilepath)
          if f is None:
              return ''
          
          # use a QFile
          if isinstance(f, QtCore.QFile):
              if f.open(QtCore.QFile.ReadOnly):
                  data = nativestring(f.readAll())
                  f.close()
              else:
                  data = ''
          else:
              data = f.read()
              f.close()
          
          return data