Source code for lib.app_utils

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

""" Module app_utils: This module contains useful methods for dealing with Mari. """

# noinspection PyUnresolvedReferences
import mari

from PySide.QtGui import QApplication


[docs]class MariAppUtils(object): """ This class contains useful methods for interacting with the Mari application. """ #: Defining Mari version release constants MARI_2_6v3_VERSION_NUMBER = 20603300 # MARI 2.6v3 MARI_3_0v1_VERSION_NUMBER = 30001210 # MARI 3.0v1b10 @classmethod
[docs] def checkSupportedMariVersion(cls, mari_version='MARI_2_6v3_VERSION_NUMBER'): """ This method checks for a Mari version that is supported by the plugin. :param mari_version: ``str`` or ``int`` that is constant defining the version of Mari to check against. return: ``bool`` determining if the current Mari version is supported. rtype: ``bool`` """ current_mari_version = mari.app.version().number() if isinstance(mari_version, str) and mari_version in dir(cls): mari_version = getattr(cls, mari_version) if current_mari_version >= mari_version: return True else: return False
@classmethod
[docs] def getMariQApplicationInstance(cls): """ This method returns the current Mari QApplication instance. :return: ``PySide.QtCore.QApplication`` object that is the Mari top-level instance. :rtype: ``PySide.QtCore.QApplication`` """ # noinspection PyArgumentList app = QApplication.instance if not app: app = QApplication([]) return app