/** * * gPodder QML UI Reference Implementation * Copyright (c) 2013, Thomas Perl * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. * */ import QtQuick 2.0 import 'common/constants.js' as Constants import 'icons/icons.js' as Icons Dialog { id: confirmation property alias title: header.title property alias description: description.text property alias affirmativeAction: affirmativeButton.text property alias negativeAction: negativeButton.text property string icon property alias color: header.color property var callback: undefined contentHeight: contentColumn.height Column { id: contentColumn width: parent.width SlidePageHeader { id: header color: Constants.colors.destructive title: 'Confirmation' } PLabel { id: description width: parent.width - 30 * pgst.scalef anchors.horizontalCenter: parent.horizontalCenter wrapMode: Text.WordWrap visible: text } Item { width: parent.width; height: 10 * pgst.scalef } Row { width: parent.width - 30 * pgst.scalef height: 80 * pgst.scalef spacing: 30 * pgst.scalef anchors.horizontalCenter: parent.horizontalCenter ConfirmationButton { id: affirmativeButton width: (parent.width - parent.spacing) * 2 / 3 height: parent.height text: 'Yes' icon: confirmation.icon contentColor: header.color onClicked: { if (confirmation.callback !== undefined) { confirmation.callback(); confirmation.closePage(); } } } ConfirmationButton { id: negativeButton width: (parent.width - parent.spacing) * 1 / 3 height: parent.height text: 'Cancel' contentColor: Constants.colors.placeholder onClicked: { confirmation.closePage(); } } } Item { width: parent.width; height: 30 * pgst.scalef } } }