#!/usr/bin/python3
"""
@file
@ingroup widgets_showcasepy
@copyright ESO - European Southern Observatory

@brief showcasepy `main` source file

"""
import os
qt_api = os.environ.get("QT_API", None)
if(qt_api is None):
    os.environ["QT_API"] = "pyside6"
import sys
import click
import taurus
import taurus.cli.common
from taurus.qt.qtgui.application import TaurusApplication
from cutwidgetsshowcasepy.mainappwindow import MainAppWindow
from cutwidgetsshowcasepy.applicationconfiguration import ApplicationConfiguration


@click.command("widgetsshowcasepy")
@taurus.cli.common.log_level
@click.option(
    "--memory-oldb",
    "-m",
    default=ApplicationConfiguration.default_memory_oldb,
    is_flag=True,
    help="Uses in memory OLDB, disregarding remote OLDB.",
    show_default=True,
)
def widgetsshowcasepy(log_level, memory_oldb: bool):
    """Widget showcase application. Intended to allows developers understand
    the different widgets offered by CUT.
    """
    configuration = ApplicationConfiguration()
    configuration.memory_oldb = memory_oldb
    configuration.log_level = getattr(taurus, log_level)
    taurus.setLogLevel(configuration.log_level)
    app = TaurusApplication(
        app_name="CUT Widgets Showcase Py",
        app_version='3.2.0',
        org_name='ESO',
        org_domain='eso.org',
        )
    window = MainAppWindow(configuration)

    window.show()
    sys.exit(app.exec_())


if __name__ == '__main__':
    widgetsshowcasepy()
