/****************************************************************************
**
** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
** This file is part of the fontmanager application.
**
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
****************************************************************************/
// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
import com.nokia.meego 1.0
import 'functions.js' as Tool
import 'UIConstants.js' as UI
Page {
tools: installedFontTools
property variant fontInfo
function saveConfig()
{
if (fontProperty.modified) {
fontProperty.save()
controller.updateFontsConf(fontInfo)
// controller.saveFontsConf()
}
}
PageHeader {
id: pageHeader
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Installed Font Info")
}
Flickable {
id: view
anchors.top: pageHeader.bottom
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
anchors.margins: UI.DEFAULT_MARGIN / 2
clip: true
// contentWidth: contentColumn.width
contentHeight: contentColumn.height
Column {
id: contentColumn
width: parent.width
spacing: UI.DEFAULT_MARGIN
Label {
width: parent.width
text: qsTr("Family: %1").arg(fontInfo.localefamily)
}
Label {
width: parent.width
text: qsTr("Example: ")
}
Label {
width: parent.width - UI.DEFAULT_MARGIN * 2
x: UI.DEFAULT_MARGIN
text: qsTr("The quick brown fox jumps over the lazy dog")
font.family: fontInfo.enfamily
font.bold: /*(fontInfo.enstyle.match(/bold/i) ? true : false) ||*/ (fontInfo.weight >= 200)
font.italic: /*(fontInfo.enstyle.match(/italic/i) ? true : false) ||*/ (fontInfo.slant !== 0)
}
Label {
width: parent.width
text: qsTr("Style: %1").arg(fontInfo.localestyle)
}
Label {
width: parent.width
text: qsTr("Full Name: %1").arg(fontInfo.localefullname)
}
Label {
width: parent.width
text: qsTr("Slant: %1").arg(fontInfo.slant)
}
Label {
width: parent.width
text: qsTr("Weight: %1").arg(fontInfo.weight)
}
Label {
width: parent.width
text: qsTr("Width: %1").arg(fontInfo.width)
}
Label {
width: parent.width
text: qsTr("Foundry: %1").arg(fontInfo.foundry)
}
Label {
width: parent.width
text: qsTr("File: %1").arg(fontInfo.file)
}
Label {
width: parent.width
text: qsTr("Outline: %1").arg(Tool.boolToString(fontInfo.outline))
}
Label {
width: parent.width
text: qsTr("Scalable: %1").arg(Tool.boolToString(fontInfo.scalable))
}
Label {
width: parent.width
text: qsTr("Language: %1").arg(Tool.toString(fontInfo.lang))
}
Item { width: 1; height: 10 }
Label {
width: parent.width
text: qsTr("System Font: %1").arg(Tool.boolToString(fontInfo.systemFont))
}
Item { width: 1; height: 10 }
Label {
width: parent.width
text: qsTr("Fonts Config")
}
FontsConfProperties {
id: fontProperty
width: parent.width
fontconf: fontInfo.fontProperty()
}
}
}
function openDeleteConfirmDialog(fontcount, fontlist)
{
queryDialog.titleText = qsTr("Delete Font?")
if (fontcount > 1)
queryDialog.message = qsTr("This Font has %1 families(%2). Do you really want to remove these fonts now?").arg(fontcount).arg(fontlist ? fontlist.join(qsTr(', ')) : qsTr("Unknown"))
else
queryDialog.message = qsTr("Do you really want to remove this font now?")
queryDialog.acceptButtonText = qsTr("OK")
queryDialog.rejectButtonText = qsTr("Cancel")
queryDialog.accepted.connect(uninstallFont)
queryDialog.open()
}
function uninstallFont()
{
queryDialog.accepted.disconnect(uninstallFont)
controller.uninstallFont(fontInfo.file)
}
ToolBarLayout {
id: installedFontTools
visible: true
ToolIcon {
platformIconId: "toolbar-back"
onClicked: {
saveConfig()
pageStack.pop()
}
}
ToolIcon {
platformIconId: "toolbar-delete"
anchors.horizontalCenter: parent.horizontalCenter
onClicked: {
var fontlist = controller.fontCount(fontInfo.file)
openDeleteConfirmDialog(fontlist.length, fontlist)
}
}
}
}