#!/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