

import sys

from pyscreenshot.plugins import wxscreen, gtkpixbuf, qt4grabwindow, qt5grabwindow, \
    scrot, imagemagick, mac_quartz, mac_screencapture, pil, pyside_grabwindow, pyside2_grabwindow, qtpy_grabwindow, \
    gnome_screenshot, gdk3pixbuf

# external processes (scrot,imagemagick) are more safe (less conflicts) than library calls.
if sys.platform.startswith('linux'):
    BACKENDS = [
        scrot.ScrotWrapper,
        imagemagick.ImagemagickWrapper,

        wxscreen.WxScreen,
        gdk3pixbuf.Gdk3PixbufWrapper,
        qtpy_grabwindow.QtPyGrabWindow,
        qt5grabwindow.Qt5GrabWindow,
        qt4grabwindow.Qt4GrabWindow,
        pyside2_grabwindow.PySide2GrabWindow,
        pyside_grabwindow.PySideGrabWindow,
        gtkpixbuf.GtkPixbufWrapper,

        gnome_screenshot.GnomeScreenshotWrapper,
    ]
elif sys.platform == 'darwin':
    BACKENDS = [
        pil.PilWrapper,

        mac_screencapture.ScreencaptureWrapper,
        scrot.ScrotWrapper,
        imagemagick.ImagemagickWrapper,

        mac_quartz.MacQuartzWrapper,
        wxscreen.WxScreen,
        gdk3pixbuf.Gdk3PixbufWrapper,
        qtpy_grabwindow.QtPyGrabWindow,
        qt5grabwindow.Qt5GrabWindow,
        pyside2_grabwindow.PySide2GrabWindow,
        pyside_grabwindow.PySideGrabWindow,
        qt4grabwindow.Qt4GrabWindow,
        gtkpixbuf.GtkPixbufWrapper,
    ]
elif sys.platform == 'win32':
    BACKENDS = [
        pil.PilWrapper,

        wxscreen.WxScreen,
        gdk3pixbuf.Gdk3PixbufWrapper,
        qtpy_grabwindow.QtPyGrabWindow,
        qt5grabwindow.Qt5GrabWindow,
        pyside2_grabwindow.PySide2GrabWindow,
        pyside_grabwindow.PySideGrabWindow,
        qt4grabwindow.Qt4GrabWindow,
        gtkpixbuf.GtkPixbufWrapper,

        scrot.ScrotWrapper,
        imagemagick.ImagemagickWrapper,

    ]
else:
    BACKENDS = [
        pil.PilWrapper,

        scrot.ScrotWrapper,
        imagemagick.ImagemagickWrapper,

        wxscreen.WxScreen,
        gdk3pixbuf.Gdk3PixbufWrapper,
        qtpy_grabwindow.QtPyGrabWindow,
        qt5grabwindow.Qt5GrabWindow,
        pyside2_grabwindow.PySide2GrabWindow,
        pyside_grabwindow.PySideGrabWindow,
        qt4grabwindow.Qt4GrabWindow,
        gtkpixbuf.GtkPixbufWrapper,

        mac_screencapture.ScreencaptureWrapper,
        mac_quartz.MacQuartzWrapper,

        gnome_screenshot.GnomeScreenshotWrapper,
    ]


default_preference = [x.name for x in BACKENDS]

@@ -245,16 +245,220 @@
 pixbuf%0A%0A
+_qt_backends = %5B%0A    qtpy_grabwindow.QtPyGrabWindow,%0A    qt5grabwindow.Qt5GrabWindow,%0A    qt4grabwindow.Qt4GrabWindow,%0A    pyside2_grabwindow.PySide2GrabWindow,%0A    pyside_grabwindow.PySideGrabWindow,%0A%5D%0A%0A
 # extern
@@ -656,32 +656,54 @@
 magickWrapper,%0A%0A
+    %5D+_qt_backends+%5B%0A%0A
         wxscreen
@@ -755,212 +755,8 @@
 er,%0A
-        qtpy_grabwindow.QtPyGrabWindow,%0A        qt5grabwindow.Qt5GrabWindow,%0A        qt4grabwindow.Qt4GrabWindow,%0A        pyside2_grabwindow.PySide2GrabWindow,%0A        pyside_grabwindow.PySideGrabWindow,%0A
     
@@ -956,32 +956,70 @@
 captureWrapper,%0A
+        mac_quartz.MacQuartzWrapper,%0A%0A
         scrot.Sc
@@ -1079,40 +1079,25 @@
     
-    mac_quartz.MacQuartzWrapper,
+%5D+_qt_backends+%5B%0A
 %0A   
@@ -1162,212 +1162,8 @@
 er,%0A
-        qtpy_grabwindow.QtPyGrabWindow,%0A        qt5grabwindow.Qt5GrabWindow,%0A        pyside2_grabwindow.PySide2GrabWindow,%0A        pyside_grabwindow.PySideGrabWindow,%0A        qt4grabwindow.Qt4GrabWindow,%0A
     
@@ -1264,32 +1264,90 @@
 il.PilWrapper,%0A%0A
+    %5D+_qt_backends+%5B%0A        gtkpixbuf.GtkPixbufWrapper,%0A%0A
         wxscreen
@@ -1398,248 +1398,8 @@
 per,
-%0A        qtpy_grabwindow.QtPyGrabWindow,%0A        qt5grabwindow.Qt5GrabWindow,%0A        pyside2_grabwindow.PySide2GrabWindow,%0A        pyside_grabwindow.PySideGrabWindow,%0A        qt4grabwindow.Qt4GrabWindow,%0A        gtkpixbuf.GtkPixbufWrapper,
 %0A%0A  
@@ -1460,25 +1460,24 @@
 ickWrapper,%0A
-%0A
     %5D%0Aelse:%0A
@@ -1579,32 +1579,54 @@
 magickWrapper,%0A%0A
+    %5D+_qt_backends+%5B%0A%0A
         wxscreen
@@ -1628,32 +1628,32 @@
 creen.WxScreen,%0A
+
         gdk3pixb
@@ -1678,212 +1678,8 @@
 er,%0A
-        qtpy_grabwindow.QtPyGrabWindow,%0A        qt5grabwindow.Qt5GrabWindow,%0A        pyside2_grabwindow.PySide2GrabWindow,%0A        pyside_grabwindow.PySideGrabWindow,%0A        qt4grabwindow.Qt4GrabWindow,%0A
     

reorder backends