Skip to content
Snippets Groups Projects
main.qml 2.14 KiB
Newer Older
  • Learn to ignore specific revisions
  • akiraohgaki's avatar
    akiraohgaki committed
    import QtQuick 2.0
    
    akiraohgaki's avatar
    akiraohgaki committed
    import QtQuick.Window 2.0
    
    akiraohgaki's avatar
    akiraohgaki committed
    import QtQuick.Dialogs 1.1
    
    akiraohgaki's avatar
    akiraohgaki committed
    
    
    akiraohgaki's avatar
    akiraohgaki committed
    Window {
    
    akiraohgaki's avatar
    akiraohgaki committed
        id: root
        title: Qt.application.name
    
    akiraohgaki's avatar
    akiraohgaki committed
    
    
    akiraohgaki's avatar
    akiraohgaki committed
        MessageDialog {
            id: confirmDialog
            title: root.title
            text: ''
    
    akiraohgaki's avatar
    akiraohgaki committed
            detailedText: ''
    
    akiraohgaki's avatar
    akiraohgaki committed
            icon: StandardIcon.Question
            standardButtons: StandardButton.Ok | StandardButton.Cancel
            onAccepted: xdgUrlHandler.process()
            onRejected: Qt.quit()
        }
    
        MessageDialog {
            id: infoDialog
            title: root.title
            text: ''
    
    akiraohgaki's avatar
    akiraohgaki committed
            detailedText: ''
    
    akiraohgaki's avatar
    akiraohgaki committed
            icon: StandardIcon.Information
            onAccepted: Qt.quit()
        }
    
        MessageDialog {
            id: errorDialog
            title: root.title
            text: ''
    
    akiraohgaki's avatar
    akiraohgaki committed
            detailedText: ''
    
    akiraohgaki's avatar
    akiraohgaki committed
            icon: StandardIcon.Warning
            onAccepted: Qt.quit()
    
    akiraohgaki's avatar
    akiraohgaki committed
        }
    
    
    akiraohgaki's avatar
    akiraohgaki committed
        Component.onCompleted: {
            xdgUrlHandler.finished.connect(function(result) {
                result = JSON.parse(result);
                var messages = {
                    'download_success': 'Download finished',
                    'install_success': 'Installation finished',
                    'validation_error': 'Invalid XDG-URL',
                    'network_error': 'Download failed',
                    'filetype_error': 'Incorrect file type',
                    'save_error': 'Saving file failed',
                    'install_error': 'Installation failed'
                };
                if (result.success) {
                    infoDialog.text = messages[result.success];
    
    akiraohgaki's avatar
    akiraohgaki committed
                    infoDialog.detailedText = xdgUrlHandler.getXdgUrl();
    
    akiraohgaki's avatar
    akiraohgaki committed
                    infoDialog.open();
                }
                else if (result.error) {
                    errorDialog.text = messages[result.error];
    
    akiraohgaki's avatar
    akiraohgaki committed
                    errorDialog.detailedText = xdgUrlHandler.getXdgUrl();
    
    akiraohgaki's avatar
    akiraohgaki committed
                    errorDialog.open();
                }
            });
    
            if (xdgUrlHandler.isValid()) {
                confirmDialog.text = 'Do you want to continue?';
    
    akiraohgaki's avatar
    akiraohgaki committed
                confirmDialog.detailedText = xdgUrlHandler.getXdgUrl();
    
    akiraohgaki's avatar
    akiraohgaki committed
                confirmDialog.open();
            }
            else {
                errorDialog.text = 'Invalid XDG-URL';
    
    akiraohgaki's avatar
    akiraohgaki committed
                errorDialog.detailedText = xdgUrlHandler.getXdgUrl();
    
    akiraohgaki's avatar
    akiraohgaki committed
                errorDialog.open();
            }
        }
    
    akiraohgaki's avatar
    akiraohgaki committed
    }