#
# -*- coding: utf-8 -*-
# Este script limpa todas as configurações do QGis incluindo:
# linguagem
# conexões a bases de dados como o Inteligeo e o Exército
# conexões a serviços de mapas
# habilitação de reprojeção automática do mapa
# plugins
# proxy
# sistemas de coordenadas
#
# Abra o QGis Desktop versao 2.16 ou superior e siga os seguintes passos:
# Abra a janela "plugins" -> "Python Console" ou "complementos" -> "Terminal Python"
# Arraste este arquivo para a janela do "Python Console" ou "Terminal Python"
# O esperado é que apareçam as mensagens de configuração de idioma, proxy, projeções, etc.
# Reinicie o QGis


import os
import sys
import shutil
import qgis

try:
    # includes QSettings
    from PyQt4.QtCore import *
    from PyQt4.Gui import *
    from PyQt4.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit, QDialog, QGridLayout, QVBoxLayout, QLabel, QPushButton, QRadioButton, QMessageBox, qApp
    print('Importadas biliotecas QGis 2.18')
except:
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit, QDialog, QGridLayout, QVBoxLayout, QLabel, QPushButton, QRadioButton, QMessageBox, qApp
    print('Importadas bibliotecas QGis 3.0 ou superior')

try:
    sys.stdout.write('.')
except:
    qgis.utils.iface.actionShowPythonDialog().trigger()

s = QSettings()
s.clear()
fp = os.path.realpath(qgis.core.QgsApplication.qgisUserDatabaseFilePath())
problem_files = []


def errorfunc(x, y, z):
    print('Erro apagando '+y)
    problem_files.append(y)


if os.path.isfile(fp):
    rp = fp.rsplit(os.sep, 1)[0]
    print('Apagando configuracoes do QGis armazenadas em '+rp)
    shutil.rmtree(rp, ignore_errors=False, onerror=errorfunc)
    if len(problem_files) == 0:
        print('Configuracoes apagadas. Reinicie o QGis.')
    else:
        print('Nao foi possivel apagar a configuracao. Feche o QGis e apague a pasta '+rp+' manualmente.')
else:
    print('Arquivo de configuracao nao encontrado. Reinicie o QGis.')
