OSDN Git Service

Version: 0.2
[fontmanager/fontmanager.git] / qml / fontmanager / InstalledFontInfoPage.qml
1 /****************************************************************************
2 **
3 ** Copyright (C) 2011 Takumi Asaki
4 ** All rights reserved.
5 ** Contact: Takumi Asaki (takumi.asaki@gmail.com)
6 **
7 ** This file is part of the fontmanager application.
8 **
9 ** You may use this file under the terms of the BSD license as follows:
10 **
11 ** "Redistribution and use in source and binary forms, with or without
12 ** modification, are permitted provided that the following conditions are
13 ** met:
14 **   * Redistributions of source code must retain the above copyright
15 **     notice, this list of conditions and the following disclaimer.
16 **   * Redistributions in binary form must reproduce the above copyright
17 **     notice, this list of conditions and the following disclaimer in
18 **     the documentation and/or other materials provided with the
19 **     distribution.
20 **   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
21 **     the names of its contributors may be used to endorse or promote
22 **     products derived from this software without specific prior written
23 **     permission.
24 **
25 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
36 **
37 ****************************************************************************/
38
39 // import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
40 import QtQuick 1.1
41 import com.nokia.meego 1.0
42 import 'functions.js' as Tool
43 import 'UIConstants.js' as UI
44
45 Page {
46     tools: installedFontTools
47     property variant fontInfo
48
49     function saveConfig()
50     {
51         if (fontProperty.modified) {
52             fontProperty.save()
53             controller.updateFontsConf(fontInfo)
54             controller.saveFontsConf()
55         }
56     }
57
58     Label {
59         id: pageHeader
60         anchors.top: parent.top
61         anchors.horizontalCenter: parent.horizontalCenter
62         anchors.margins: UI.DEFAULT_MARGIN
63
64         horizontalAlignment: Text.AlignHCenter
65         font.pixelSize: UI.FONT_LARGE
66         font.bold: true
67         text: qsTr("Installed Font Info")
68     }
69
70     Flickable {
71         id: view
72         anchors.top: pageHeader.bottom
73         anchors.bottom: parent.bottom
74         anchors.left: parent.left
75         anchors.right: parent.right
76         anchors.margins: UI.DEFAULT_MARGIN
77         clip: true
78
79 //        contentWidth: contentColumn.width
80         contentHeight: contentColumn.height
81
82         Column {
83             id: contentColumn
84             width: parent.width
85             spacing: UI.DEFAULT_MARGIN
86             Label {
87                 width: parent.width
88                 text: qsTr("<b>Family</b>: %1").arg(fontInfo.localefamily)
89             }
90             Label {
91                 width: parent.width
92                 text: qsTr("<b>Example</b>: ")
93             }
94             Label {
95                 width: parent.width - UI.DEFAULT_MARGIN * 2
96                 x: UI.DEFAULT_MARGIN
97                 text: qsTr("The quick brown fox jumps over the lazy dog")
98                 font.family: fontInfo.enfamily
99             }
100             Label {
101                 width: parent.width
102                 text: qsTr("<b>Style</b>: %1").arg(fontInfo.localestyle)
103             }
104             Label {
105                 width: parent.width
106                 text: qsTr("<b>Full Name</b>: %1").arg(fontInfo.localefullname)
107             }
108             Label {
109                 width: parent.width
110                 text: qsTr("<b>Slant</b>: %1").arg(fontInfo.slant)
111             }
112             Label {
113                 width: parent.width
114                 text: qsTr("<b>Weight</b>: %1").arg(fontInfo.weight)
115             }
116             Label {
117                 width: parent.width
118                 text: qsTr("<b>Width</b>: %1").arg(fontInfo.width)
119             }
120             Label {
121                 width: parent.width
122                 text: qsTr("<b>Foundry</b>: %1").arg(fontInfo.foundry)
123             }
124             Label {
125                 width: parent.width
126                 text: qsTr("<b>File</b>: %1").arg(fontInfo.file)
127             }
128             Label {
129                 width: parent.width
130                 text: qsTr("<b>Outline</b>: %1").arg(Tool.boolToString(fontInfo.outline))
131             }
132             Label {
133                 width: parent.width
134                 text: qsTr("<b>Scalable</b>: %1").arg(Tool.boolToString(fontInfo.scalable))
135             }
136             Label {
137                 width: parent.width
138                 text: qsTr("<b>Language</b>: %1").arg(Tool.toString(fontInfo.lang))
139             }
140             Item { width: 1; height: 10 }
141             Label {
142                 width: parent.width
143                 text: qsTr("<b>System Font</b>: %1").arg(Tool.boolToString(fontInfo.systemFont))
144             }
145             Item { width: 1; height: 10 }
146             Label {
147                 width: parent.width
148                 text: qsTr("<b>Fonts Config</b>")
149             }
150             FontsConfProperties {
151                 id: fontProperty
152                 width: parent.width
153                 fontconf: fontInfo.fontProperty()
154             }
155         }
156     }
157
158     QueryDialog {
159         id: confirmDialog
160         property int fontcount: 1
161         property variant fontlist
162         titleText: qsTr("Delete Font?")
163         message: fontcount > 1 ?
164                      qsTr("This Font has %1 families(%2).\nDo you really want to remove these fonts now?").arg(fontcount).arg(fontlist.join(qsTr(', '))) :
165                      qsTr("Do you really want to remove this font now?")
166         acceptButtonText: qsTr("OK")
167         rejectButtonText: qsTr("Cancel")
168         onAccepted: {
169             controller.uninstallFont(fontInfo.file)
170         }
171     }
172
173     ToolBarLayout {
174         id: installedFontTools
175         visible: true
176         ToolIcon {
177             platformIconId: "toolbar-back"
178             onClicked: {
179                 saveConfig()
180                 pageStack.pop()
181             }
182         }
183         ToolIcon {
184             platformIconId: "toolbar-delete"
185             onClicked: {
186                 var fontlist = controller.fontCount(fontInfo.file)
187                 confirmDialog.fontcount = fontlist.length
188                 confirmDialog.fontlist = fontlist
189                 confirmDialog.open()
190             }
191         }
192     }
193
194 }