X-Git-Url: https://git.ralfj.de/lilass.git/blobdiff_plain/6895277c1f24aa9381822a0cbb20259b97cd075f..27f354daddc74c3859fdaee2bfab43f3282522b8:/gui.py diff --git a/gui.py b/gui.py index b6906e1..0f83c23 100644 --- a/gui.py +++ b/gui.py @@ -12,25 +12,28 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program (gpl.txt); if not, write to the Free Software +# along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# This file bstracts GUI stuff away, so that the actual dsl.py does not have to deal with it +# This file abstracts GUI stuff away, so that the actual dsl.py does not have to deal with it import sys -from PyQt4 import QtGui -from qt_dialogue import PositionSelection -app = QtGui.QApplication(sys.argv) + +qt_available = True +try: + from PyQt4 import QtGui + from qt_dialogue import PositionSelection + app = QtGui.QApplication(sys.argv) +except Exception, e: + from zenity_dialogue import run as zenity_run + qt_available = False def error(message): '''Displays a fatal error to the user''' QtGui.QMessageBox.critical(None, 'Fatal error', message) -def getDialogue(externalName, internalResolutions, externalResolutions): - '''Returns a class implementing the following functions: - * run() opens the dialogue. returns True if it was accepted, False otherwise - * getRelativeScreenPosition() returns one of the RelativeScreenPosition values (see dsl.py) - * getIntResolutionIndex() returns the index of an element in the internalResolutions list - * getExtResolutionIndex() returns the index of an element in the externalResolutions list - * externalIsPrimary() returns whether the external screen is the primary one (True) or the internal one (False) - ''' - return PositionSelection(externalName, internalResolutions, externalResolutions) +def setup(internalResolutions, externalResolutions): + '''Returns a ScreenSetup instance, or None if the user canceled''' + if qt_available: + return PositionSelection(internalResolutions, externalResolutions).run() + else: + return zenity_run(internalResolutions, externalResolutions)