From 53abfcee86d03676ae5e3b648d6c7cee69c2f4e1 Mon Sep 17 00:00:00 2001 From: Kate Alhola Date: Wed, 11 Apr 2012 21:48:16 +0300 Subject: [PATCH] components for android added --- mardrone/deploy.pri | 137 +++++ .../imports/Qt/labs/components.1.1/Checkable.qml | 85 +++ .../Qt/labs/components.1.1/CheckableGroup.js | 171 ++++++ .../Qt/labs/components.1.1/CheckableGroup.qml | 58 ++ mardrone/imports/Qt/labs/components.1.1/qmldir | 3 + .../Qt/labs/components/native/AbstractMenu.qml | 316 +++++++++++ .../labs/components/native/ApplicationWindow.qml | 49 ++ .../components/native/ApplicationWindowStyle.qml | 48 ++ .../imports/Qt/labs/components/native/BasicRow.js | 98 ++++ .../imports/Qt/labs/components/native/BasicRow.qml | 65 +++ .../Qt/labs/components/native/BusyIndicator.qml | 98 ++++ .../labs/components/native/BusyIndicatorStyle.qml | 53 ++ .../imports/Qt/labs/components/native/Button.qml | 146 +++++ .../Qt/labs/components/native/ButtonColumn.qml | 81 +++ .../Qt/labs/components/native/ButtonGroup.js | 263 +++++++++ .../Qt/labs/components/native/ButtonRow.qml | 94 ++++ .../Qt/labs/components/native/ButtonStyle.qml | 93 ++++ .../imports/Qt/labs/components/native/CheckBox.qml | 136 +++++ .../Qt/labs/components/native/CheckBoxStyle.qml | 57 ++ .../Qt/labs/components/native/CommonDialog.qml | 164 ++++++ .../Qt/labs/components/native/ContextMenu.qml | 118 ++++ .../Qt/labs/components/native/ContextMenuStyle.qml | 62 +++ .../imports/Qt/labs/components/native/Dialog.qml | 323 +++++++++++ .../Qt/labs/components/native/DialogStyle.qml | 70 +++ .../Qt/labs/components/native/EditBubble.js | 228 ++++++++ .../Qt/labs/components/native/EditBubble.qml | 218 ++++++++ .../Qt/labs/components/native/EditBubbleButton.qml | 106 ++++ .../components/native/EditBubbleButtonStyle.qml | 83 +++ .../Qt/labs/components/native/EditBubbleStyle.qml | 61 +++ .../imports/Qt/labs/components/native/Fader.qml | 202 +++++++ .../Qt/labs/components/native/GroupButtonStyle.qml | 47 ++ .../imports/Qt/labs/components/native/Label.qml | 58 ++ .../Qt/labs/components/native/LabelStyle.qml | 51 ++ .../imports/Qt/labs/components/native/Magnifier.js | 102 ++++ .../Qt/labs/components/native/Magnifier.qml | 170 ++++++ .../imports/Qt/labs/components/native/Menu.qml | 106 ++++ .../imports/Qt/labs/components/native/MenuItem.qml | 118 ++++ .../Qt/labs/components/native/MenuItemStyle.qml | 71 +++ .../Qt/labs/components/native/MenuLayout.qml | 63 +++ .../Qt/labs/components/native/MenuStyle.qml | 74 +++ .../Qt/labs/components/native/MouseAreaDebug.qml | 53 ++ .../labs/components/native/MultiSelectionDialog.js | 114 ++++ .../components/native/MultiSelectionDialog.qml | 233 ++++++++ .../labs/components/native/NotificationBanner.qml | 255 +++++++++ .../imports/Qt/labs/components/native/Page.qml | 124 +++++ .../imports/Qt/labs/components/native/PageStack.js | 219 ++++++++ .../Qt/labs/components/native/PageStack.qml | 324 +++++++++++ .../Qt/labs/components/native/PageStackWindow.qml | 158 ++++++ .../components/native/PageStackWindowStyle.qml | 57 ++ .../imports/Qt/labs/components/native/Popup.qml | 124 +++++ .../Qt/labs/components/native/ProgressBar.qml | 154 ++++++ .../Qt/labs/components/native/ProgressBarStyle.qml | 52 ++ .../Qt/labs/components/native/QueryDialog.qml | 384 +++++++++++++ .../Qt/labs/components/native/QueryDialogStyle.qml | 78 +++ .../Qt/labs/components/native/RadioButton.qml | 59 ++ .../Qt/labs/components/native/RadioButtonStyle.qml | 56 ++ .../Qt/labs/components/native/ScrollDecorator.qml | 256 +++++++++ .../components/native/ScrollDecoratorSizer.qml | 71 +++ .../components/native/ScrollDecoratorStyle.qml | 49 ++ .../Qt/labs/components/native/SectionScroller.js | 107 ++++ .../Qt/labs/components/native/SectionScroller.qml | 331 ++++++++++++ .../components/native/SectionScrollerLabel.qml | 98 ++++ .../components/native/SectionScrollerStyle.qml | 56 ++ .../Qt/labs/components/native/SelectionDialog.qml | 178 ++++++ .../components/native/SelectionDialogStyle.qml | 105 ++++ .../imports/Qt/labs/components/native/Sheet.qml | 230 ++++++++ .../Qt/labs/components/native/SheetButton.qml | 56 ++ .../components/native/SheetButtonAccentStyle.qml | 65 +++ .../Qt/labs/components/native/SheetButtonStyle.qml | 63 +++ .../Qt/labs/components/native/SheetStyle.qml | 55 ++ .../Qt/labs/components/native/SipSimulator.qml | 67 +++ .../imports/Qt/labs/components/native/Slider.qml | 167 ++++++ .../Qt/labs/components/native/SliderStyle.qml | 68 +++ .../Qt/labs/components/native/SliderTemplate.qml | 327 +++++++++++ .../labs/components/native/SoftwareInputPanel.qml | 61 +++ .../Qt/labs/components/native/StatusBar.qml | 104 ++++ .../imports/Qt/labs/components/native/Style.qml | 55 ++ .../imports/Qt/labs/components/native/Switch.qml | 182 +++++++ .../Qt/labs/components/native/SwitchStyle.qml | 63 +++ .../Qt/labs/components/native/TabBarLayout.qml | 90 +++ .../Qt/labs/components/native/TabButton.qml | 74 +++ .../Qt/labs/components/native/TabButtonStyle.qml | 68 +++ .../imports/Qt/labs/components/native/TabGroup.qml | 78 +++ .../imports/Qt/labs/components/native/TextArea.qml | 545 +++++++++++++++++++ .../Qt/labs/components/native/TextAreaHelper.js | 279 ++++++++++ .../Qt/labs/components/native/TextAreaStyle.qml | 43 ++ .../Qt/labs/components/native/TextField.qml | 571 ++++++++++++++++++++ .../Qt/labs/components/native/TextFieldStyle.qml | 74 +++ .../imports/Qt/labs/components/native/ToolBar.qml | 305 +++++++++++ .../Qt/labs/components/native/ToolBarLayout.js | 164 ++++++ .../Qt/labs/components/native/ToolBarLayout.qml | 59 ++ .../Qt/labs/components/native/ToolBarStyle.qml | 53 ++ .../Qt/labs/components/native/ToolButton.qml | 59 ++ .../Qt/labs/components/native/ToolButtonRow.qml | 53 ++ .../Qt/labs/components/native/ToolButtonStyle.qml | 64 +++ .../imports/Qt/labs/components/native/ToolIcon.qml | 90 +++ .../imports/Qt/labs/components/native/ToolItem.qml | 50 ++ .../Qt/labs/components/native/ToolItemStyle.qml | 47 ++ .../Qt/labs/components/native/UIConstants.js | 120 ++++ .../imports/Qt/labs/components/native/Utils.js | 107 ++++ .../imports/Qt/labs/components/native/Window.qml | 273 ++++++++++ mardrone/imports/Qt/labs/components/native/qmldir | 72 +++ mardrone/imports/com/meego/AbstractMenu.qml | 316 +++++++++++ mardrone/imports/com/meego/ApplicationWindow.qml | 49 ++ .../imports/com/meego/ApplicationWindowStyle.qml | 48 ++ mardrone/imports/com/meego/BasicRow.js | 98 ++++ mardrone/imports/com/meego/BasicRow.qml | 65 +++ mardrone/imports/com/meego/BusyIndicator.qml | 98 ++++ mardrone/imports/com/meego/BusyIndicatorStyle.qml | 53 ++ mardrone/imports/com/meego/Button.qml | 146 +++++ mardrone/imports/com/meego/ButtonColumn.qml | 81 +++ mardrone/imports/com/meego/ButtonGroup.js | 263 +++++++++ mardrone/imports/com/meego/ButtonRow.qml | 94 ++++ mardrone/imports/com/meego/ButtonStyle.qml | 93 ++++ mardrone/imports/com/meego/CheckBox.qml | 136 +++++ mardrone/imports/com/meego/CheckBoxStyle.qml | 57 ++ mardrone/imports/com/meego/CommonDialog.qml | 164 ++++++ mardrone/imports/com/meego/ContextMenu.qml | 118 ++++ mardrone/imports/com/meego/ContextMenuStyle.qml | 62 +++ mardrone/imports/com/meego/Dialog.qml | 323 +++++++++++ mardrone/imports/com/meego/DialogStyle.qml | 70 +++ mardrone/imports/com/meego/EditBubble.js | 228 ++++++++ mardrone/imports/com/meego/EditBubble.qml | 218 ++++++++ mardrone/imports/com/meego/EditBubbleButton.qml | 106 ++++ .../imports/com/meego/EditBubbleButtonStyle.qml | 83 +++ mardrone/imports/com/meego/EditBubbleStyle.qml | 61 +++ mardrone/imports/com/meego/Fader.qml | 202 +++++++ mardrone/imports/com/meego/GroupButtonStyle.qml | 47 ++ mardrone/imports/com/meego/Label.qml | 58 ++ mardrone/imports/com/meego/LabelStyle.qml | 51 ++ mardrone/imports/com/meego/Magnifier.js | 102 ++++ mardrone/imports/com/meego/Magnifier.qml | 170 ++++++ mardrone/imports/com/meego/Menu.qml | 106 ++++ mardrone/imports/com/meego/MenuItem.qml | 118 ++++ mardrone/imports/com/meego/MenuItemStyle.qml | 71 +++ mardrone/imports/com/meego/MenuLayout.qml | 63 +++ mardrone/imports/com/meego/MenuStyle.qml | 74 +++ mardrone/imports/com/meego/MouseAreaDebug.qml | 53 ++ mardrone/imports/com/meego/MultiSelectionDialog.js | 114 ++++ .../imports/com/meego/MultiSelectionDialog.qml | 233 ++++++++ mardrone/imports/com/meego/NotificationBanner.qml | 255 +++++++++ mardrone/imports/com/meego/Page.qml | 124 +++++ mardrone/imports/com/meego/PageStack.js | 219 ++++++++ mardrone/imports/com/meego/PageStack.qml | 324 +++++++++++ mardrone/imports/com/meego/PageStackWindow.qml | 158 ++++++ .../imports/com/meego/PageStackWindowStyle.qml | 57 ++ mardrone/imports/com/meego/Popup.qml | 124 +++++ mardrone/imports/com/meego/ProgressBar.qml | 154 ++++++ mardrone/imports/com/meego/ProgressBarStyle.qml | 52 ++ mardrone/imports/com/meego/QueryDialog.qml | 384 +++++++++++++ mardrone/imports/com/meego/QueryDialogStyle.qml | 78 +++ mardrone/imports/com/meego/RadioButton.qml | 59 ++ mardrone/imports/com/meego/RadioButtonStyle.qml | 56 ++ mardrone/imports/com/meego/ScrollDecorator.qml | 256 +++++++++ .../imports/com/meego/ScrollDecoratorSizer.qml | 71 +++ .../imports/com/meego/ScrollDecoratorStyle.qml | 49 ++ mardrone/imports/com/meego/SectionScroller.js | 107 ++++ mardrone/imports/com/meego/SectionScroller.qml | 331 ++++++++++++ .../imports/com/meego/SectionScrollerLabel.qml | 98 ++++ .../imports/com/meego/SectionScrollerStyle.qml | 56 ++ mardrone/imports/com/meego/SelectionDialog.qml | 178 ++++++ .../imports/com/meego/SelectionDialogStyle.qml | 105 ++++ mardrone/imports/com/meego/Sheet.qml | 230 ++++++++ mardrone/imports/com/meego/SheetButton.qml | 56 ++ .../imports/com/meego/SheetButtonAccentStyle.qml | 65 +++ mardrone/imports/com/meego/SheetButtonStyle.qml | 63 +++ mardrone/imports/com/meego/SheetStyle.qml | 55 ++ mardrone/imports/com/meego/SipSimulator.qml | 67 +++ mardrone/imports/com/meego/Slider.qml | 167 ++++++ mardrone/imports/com/meego/SliderStyle.qml | 68 +++ mardrone/imports/com/meego/SliderTemplate.qml | 327 +++++++++++ mardrone/imports/com/meego/SoftwareInputPanel.qml | 61 +++ mardrone/imports/com/meego/StatusBar.qml | 104 ++++ mardrone/imports/com/meego/Style.qml | 55 ++ mardrone/imports/com/meego/Switch.qml | 182 +++++++ mardrone/imports/com/meego/SwitchStyle.qml | 63 +++ mardrone/imports/com/meego/TabBarLayout.qml | 90 +++ mardrone/imports/com/meego/TabButton.qml | 74 +++ mardrone/imports/com/meego/TabButtonStyle.qml | 68 +++ mardrone/imports/com/meego/TabGroup.qml | 78 +++ mardrone/imports/com/meego/TextArea.qml | 545 +++++++++++++++++++ mardrone/imports/com/meego/TextAreaHelper.js | 279 ++++++++++ mardrone/imports/com/meego/TextAreaStyle.qml | 43 ++ mardrone/imports/com/meego/TextField.qml | 571 ++++++++++++++++++++ mardrone/imports/com/meego/TextFieldStyle.qml | 74 +++ mardrone/imports/com/meego/ToolBar.qml | 305 +++++++++++ mardrone/imports/com/meego/ToolBarLayout.js | 164 ++++++ mardrone/imports/com/meego/ToolBarLayout.qml | 59 ++ mardrone/imports/com/meego/ToolBarStyle.qml | 53 ++ mardrone/imports/com/meego/ToolButton.qml | 59 ++ mardrone/imports/com/meego/ToolButtonRow.qml | 53 ++ mardrone/imports/com/meego/ToolButtonStyle.qml | 64 +++ mardrone/imports/com/meego/ToolIcon.qml | 90 +++ mardrone/imports/com/meego/ToolItem.qml | 50 ++ mardrone/imports/com/meego/ToolItemStyle.qml | 47 ++ mardrone/imports/com/meego/UIConstants.js | 120 ++++ mardrone/imports/com/meego/Utils.js | 107 ++++ mardrone/imports/com/meego/Window.qml | 273 ++++++++++ mardrone/imports/com/meego/extras/CountBubble.qml | 112 ++++ .../imports/com/meego/extras/DatePickerDialog.qml | 332 ++++++++++++ mardrone/imports/com/meego/extras/InfoBanner.qml | 216 ++++++++ mardrone/imports/com/meego/extras/ListButton.qml | 151 ++++++ .../imports/com/meego/extras/ListButtonStyle.qml | 47 ++ mardrone/imports/com/meego/extras/ListDelegate.qml | 119 ++++ .../imports/com/meego/extras/MoreIndicator.qml | 56 ++ .../com/meego/extras/NegativeButtonStyle.qml | 58 ++ .../imports/com/meego/extras/NetPromoterScore.qml | 472 ++++++++++++++++ .../imports/com/meego/extras/PageIndicator.qml | 157 ++++++ .../com/meego/extras/PositiveButtonStyle.qml | 58 ++ .../imports/com/meego/extras/RatingIndicator.qml | 134 +++++ mardrone/imports/com/meego/extras/SystemBanner.qml | 50 ++ .../imports/com/meego/extras/TimePickerDialog.qml | 291 ++++++++++ mardrone/imports/com/meego/extras/Tumbler.js | 137 +++++ mardrone/imports/com/meego/extras/Tumbler.qml | 158 ++++++ .../imports/com/meego/extras/TumblerButton.qml | 140 +++++ .../com/meego/extras/TumblerButtonStyle.qml | 55 ++ .../imports/com/meego/extras/TumblerColumn.qml | 52 ++ .../imports/com/meego/extras/TumblerDialog.qml | 154 ++++++ .../imports/com/meego/extras/TumblerDialogNew.qml | 45 ++ .../imports/com/meego/extras/TumblerIndexHelper.js | 65 +++ mardrone/imports/com/meego/extras/TumblerNew.qml | 45 ++ .../imports/com/meego/extras/TumblerTemplate.qml | 219 ++++++++ mardrone/imports/com/meego/extras/constants.js | 106 ++++ mardrone/imports/com/meego/extras/qmldir | 43 ++ mardrone/imports/com/meego/qmldir | 144 +++++ mardrone/imports/com/nokia/extras/CountBubble.qml | 112 ++++ .../imports/com/nokia/extras/DatePickerDialog.qml | 332 ++++++++++++ mardrone/imports/com/nokia/extras/InfoBanner.qml | 216 ++++++++ mardrone/imports/com/nokia/extras/ListButton.qml | 151 ++++++ .../imports/com/nokia/extras/ListButtonStyle.qml | 47 ++ mardrone/imports/com/nokia/extras/ListDelegate.qml | 119 ++++ .../imports/com/nokia/extras/MoreIndicator.qml | 56 ++ .../com/nokia/extras/NegativeButtonStyle.qml | 58 ++ .../imports/com/nokia/extras/NetPromoterScore.qml | 472 ++++++++++++++++ .../imports/com/nokia/extras/PageIndicator.qml | 157 ++++++ .../com/nokia/extras/PositiveButtonStyle.qml | 58 ++ .../imports/com/nokia/extras/RatingIndicator.qml | 134 +++++ mardrone/imports/com/nokia/extras/SystemBanner.qml | 50 ++ .../imports/com/nokia/extras/TimePickerDialog.qml | 291 ++++++++++ mardrone/imports/com/nokia/extras/Tumbler.js | 137 +++++ mardrone/imports/com/nokia/extras/Tumbler.qml | 158 ++++++ .../imports/com/nokia/extras/TumblerButton.qml | 140 +++++ .../com/nokia/extras/TumblerButtonStyle.qml | 55 ++ .../imports/com/nokia/extras/TumblerColumn.qml | 52 ++ .../imports/com/nokia/extras/TumblerDialog.qml | 154 ++++++ .../imports/com/nokia/extras/TumblerDialogNew.qml | 45 ++ .../imports/com/nokia/extras/TumblerIndexHelper.js | 65 +++ mardrone/imports/com/nokia/extras/TumblerNew.qml | 45 ++ .../imports/com/nokia/extras/TumblerTemplate.qml | 219 ++++++++ mardrone/imports/com/nokia/extras/constants.js | 106 ++++ mardrone/imports/com/nokia/extras/qmldir | 43 ++ mardrone/imports/com/nokia/meego/AbstractMenu.qml | 316 +++++++++++ .../imports/com/nokia/meego/ApplicationWindow.qml | 49 ++ .../com/nokia/meego/ApplicationWindowStyle.qml | 48 ++ mardrone/imports/com/nokia/meego/BasicRow.js | 98 ++++ mardrone/imports/com/nokia/meego/BasicRow.qml | 65 +++ mardrone/imports/com/nokia/meego/BusyIndicator.qml | 98 ++++ .../imports/com/nokia/meego/BusyIndicatorStyle.qml | 53 ++ mardrone/imports/com/nokia/meego/Button.qml | 146 +++++ mardrone/imports/com/nokia/meego/ButtonColumn.qml | 81 +++ mardrone/imports/com/nokia/meego/ButtonGroup.js | 263 +++++++++ mardrone/imports/com/nokia/meego/ButtonRow.qml | 94 ++++ mardrone/imports/com/nokia/meego/ButtonStyle.qml | 93 ++++ mardrone/imports/com/nokia/meego/CheckBox.qml | 136 +++++ mardrone/imports/com/nokia/meego/CheckBoxStyle.qml | 57 ++ mardrone/imports/com/nokia/meego/CommonDialog.qml | 164 ++++++ mardrone/imports/com/nokia/meego/ContextMenu.qml | 118 ++++ .../imports/com/nokia/meego/ContextMenuStyle.qml | 62 +++ mardrone/imports/com/nokia/meego/Dialog.qml | 323 +++++++++++ mardrone/imports/com/nokia/meego/DialogStyle.qml | 70 +++ mardrone/imports/com/nokia/meego/EditBubble.js | 228 ++++++++ mardrone/imports/com/nokia/meego/EditBubble.qml | 218 ++++++++ .../imports/com/nokia/meego/EditBubbleButton.qml | 106 ++++ .../com/nokia/meego/EditBubbleButtonStyle.qml | 83 +++ .../imports/com/nokia/meego/EditBubbleStyle.qml | 61 +++ mardrone/imports/com/nokia/meego/Fader.qml | 202 +++++++ .../imports/com/nokia/meego/GroupButtonStyle.qml | 47 ++ mardrone/imports/com/nokia/meego/Label.qml | 58 ++ mardrone/imports/com/nokia/meego/LabelStyle.qml | 51 ++ mardrone/imports/com/nokia/meego/Magnifier.js | 102 ++++ mardrone/imports/com/nokia/meego/Magnifier.qml | 170 ++++++ mardrone/imports/com/nokia/meego/Menu.qml | 106 ++++ mardrone/imports/com/nokia/meego/MenuItem.qml | 118 ++++ mardrone/imports/com/nokia/meego/MenuItemStyle.qml | 71 +++ mardrone/imports/com/nokia/meego/MenuLayout.qml | 63 +++ mardrone/imports/com/nokia/meego/MenuStyle.qml | 74 +++ .../imports/com/nokia/meego/MouseAreaDebug.qml | 53 ++ .../com/nokia/meego/MultiSelectionDialog.js | 114 ++++ .../com/nokia/meego/MultiSelectionDialog.qml | 233 ++++++++ .../imports/com/nokia/meego/NotificationBanner.qml | 255 +++++++++ mardrone/imports/com/nokia/meego/Page.qml | 124 +++++ mardrone/imports/com/nokia/meego/PageStack.js | 219 ++++++++ mardrone/imports/com/nokia/meego/PageStack.qml | 324 +++++++++++ .../imports/com/nokia/meego/PageStackWindow.qml | 158 ++++++ .../com/nokia/meego/PageStackWindowStyle.qml | 57 ++ mardrone/imports/com/nokia/meego/Popup.qml | 124 +++++ mardrone/imports/com/nokia/meego/ProgressBar.qml | 154 ++++++ .../imports/com/nokia/meego/ProgressBarStyle.qml | 52 ++ mardrone/imports/com/nokia/meego/QueryDialog.qml | 384 +++++++++++++ .../imports/com/nokia/meego/QueryDialogStyle.qml | 78 +++ mardrone/imports/com/nokia/meego/RadioButton.qml | 59 ++ .../imports/com/nokia/meego/RadioButtonStyle.qml | 56 ++ .../imports/com/nokia/meego/ScrollDecorator.qml | 256 +++++++++ .../com/nokia/meego/ScrollDecoratorSizer.qml | 71 +++ .../com/nokia/meego/ScrollDecoratorStyle.qml | 49 ++ .../imports/com/nokia/meego/SectionScroller.js | 107 ++++ .../imports/com/nokia/meego/SectionScroller.qml | 331 ++++++++++++ .../com/nokia/meego/SectionScrollerLabel.qml | 98 ++++ .../com/nokia/meego/SectionScrollerStyle.qml | 56 ++ .../imports/com/nokia/meego/SelectionDialog.qml | 178 ++++++ .../com/nokia/meego/SelectionDialogStyle.qml | 105 ++++ mardrone/imports/com/nokia/meego/Sheet.qml | 230 ++++++++ mardrone/imports/com/nokia/meego/SheetButton.qml | 56 ++ .../com/nokia/meego/SheetButtonAccentStyle.qml | 65 +++ .../imports/com/nokia/meego/SheetButtonStyle.qml | 63 +++ mardrone/imports/com/nokia/meego/SheetStyle.qml | 55 ++ mardrone/imports/com/nokia/meego/SipSimulator.qml | 67 +++ mardrone/imports/com/nokia/meego/Slider.qml | 167 ++++++ mardrone/imports/com/nokia/meego/SliderStyle.qml | 68 +++ .../imports/com/nokia/meego/SliderTemplate.qml | 327 +++++++++++ .../imports/com/nokia/meego/SoftwareInputPanel.qml | 61 +++ mardrone/imports/com/nokia/meego/StatusBar.qml | 104 ++++ mardrone/imports/com/nokia/meego/Style.qml | 55 ++ mardrone/imports/com/nokia/meego/Switch.qml | 182 +++++++ mardrone/imports/com/nokia/meego/SwitchStyle.qml | 63 +++ mardrone/imports/com/nokia/meego/TabBarLayout.qml | 90 +++ mardrone/imports/com/nokia/meego/TabButton.qml | 74 +++ .../imports/com/nokia/meego/TabButtonStyle.qml | 68 +++ mardrone/imports/com/nokia/meego/TabGroup.qml | 78 +++ mardrone/imports/com/nokia/meego/TextArea.qml | 545 +++++++++++++++++++ mardrone/imports/com/nokia/meego/TextAreaHelper.js | 279 ++++++++++ mardrone/imports/com/nokia/meego/TextAreaStyle.qml | 43 ++ mardrone/imports/com/nokia/meego/TextField.qml | 571 ++++++++++++++++++++ .../imports/com/nokia/meego/TextFieldStyle.qml | 74 +++ mardrone/imports/com/nokia/meego/ToolBar.qml | 305 +++++++++++ mardrone/imports/com/nokia/meego/ToolBarLayout.js | 164 ++++++ mardrone/imports/com/nokia/meego/ToolBarLayout.qml | 59 ++ mardrone/imports/com/nokia/meego/ToolBarStyle.qml | 53 ++ mardrone/imports/com/nokia/meego/ToolButton.qml | 59 ++ mardrone/imports/com/nokia/meego/ToolButtonRow.qml | 53 ++ .../imports/com/nokia/meego/ToolButtonStyle.qml | 64 +++ mardrone/imports/com/nokia/meego/ToolIcon.qml | 90 +++ mardrone/imports/com/nokia/meego/ToolItem.qml | 50 ++ mardrone/imports/com/nokia/meego/ToolItemStyle.qml | 47 ++ mardrone/imports/com/nokia/meego/UIConstants.js | 120 ++++ mardrone/imports/com/nokia/meego/Utils.js | 107 ++++ mardrone/imports/com/nokia/meego/Window.qml | 273 ++++++++++ mardrone/imports/com/nokia/meego/qmldir | 144 +++++ mardrone/plugins/libmeegoextrasplugin.so | Bin 0 -> 391295 bytes mardrone/plugins/libmeegoplugin.so | Bin 0 -> 6322938 bytes mardrone/plugins/libqtcomponentsplugin_1_1.so | Bin 0 -> 582959 bytes .../icons/MeegoTouchStatusThemeTemplateHelper.png | Bin 0 -> 2708 bytes .../icons/MeegoTouchSwithThemeTemplateHelper.png | Bin 0 -> 2029 bytes .../icons/MeegotouchListThemeTemplateHelper.png | Bin 0 -> 7159 bytes .../themes/base/meegotouch/icons/helperyeah.png | Bin 0 -> 1631 bytes .../icons/icon-m-toolbar-back-dimmed.png | Bin 0 -> 571 bytes .../icons/icon-m-toolbar-back-selected.png | Bin 0 -> 386 bytes .../icons/icon-m-toolbar-back-white-selected.png | Bin 0 -> 327 bytes .../meegotouch/icons/icon-m-toolbar-back-white.png | Bin 0 -> 602 bytes .../base/meegotouch/icons/icon-m-toolbar-back.png | Bin 0 -> 554 bytes .../icon-m-toolbar-backspace-dimmed-white.png | Bin 0 -> 1025 bytes .../icons/icon-m-toolbar-backspace-dimmed.png | Bin 0 -> 782 bytes .../icons/icon-m-toolbar-backspace-selected.png | Bin 0 -> 595 bytes .../icon-m-toolbar-backspace-white-selected.png | Bin 0 -> 520 bytes .../icons/icon-m-toolbar-backspace-white.png | Bin 0 -> 1000 bytes .../meegotouch/icons/icon-m-toolbar-backspace.png | Bin 0 -> 777 bytes .../icons/icon-m-toolbar-close-dimmed-white.png | Bin 0 -> 812 bytes .../icons/icon-m-toolbar-close-dimmed.png | Bin 0 -> 745 bytes .../icons/icon-m-toolbar-close-selected.png | Bin 0 -> 397 bytes .../icons/icon-m-toolbar-close-white-selected.png | Bin 0 -> 369 bytes .../icons/icon-m-toolbar-close-white.png | Bin 0 -> 807 bytes .../base/meegotouch/icons/icon-m-toolbar-close.png | Bin 0 -> 738 bytes .../icons/icon-m-toolbar-home-dimmed-white.png | Bin 0 -> 587 bytes .../icons/icon-m-toolbar-home-dimmed.png | Bin 0 -> 565 bytes .../icons/icon-m-toolbar-home-selected.png | Bin 0 -> 427 bytes .../icons/icon-m-toolbar-home-white-selected.png | Bin 0 -> 367 bytes .../meegotouch/icons/icon-m-toolbar-home-white.png | Bin 0 -> 580 bytes .../base/meegotouch/icons/icon-m-toolbar-home.png | Bin 0 -> 554 bytes .../icon-m-toolbar-view-menu-dimmed-white.png | Bin 0 -> 433 bytes .../icons/icon-m-toolbar-view-menu-dimmed.png | Bin 0 -> 450 bytes .../icons/icon-m-toolbar-view-menu-selected.png | Bin 0 -> 418 bytes .../icon-m-toolbar-view-menu-white-selected.png | Bin 0 -> 370 bytes .../icons/icon-m-toolbar-view-menu-white.png | Bin 0 -> 467 bytes .../meegotouch/icons/icon-m-toolbar-view-menu.png | Bin 0 -> 478 bytes ...otouch-applicationwindow-corner-bottom-left.png | Bin 0 -> 172 bytes ...touch-applicationwindow-corner-bottom-right.png | Bin 0 -> 170 bytes ...eegotouch-applicationwindow-corner-top-left.png | Bin 0 -> 179 bytes ...egotouch-applicationwindow-corner-top-right.png | Bin 0 -> 180 bytes ...eegotouch-button-accent-background-disabled.png | Bin 0 -> 555 bytes ...meegotouch-button-accent-background-pressed.png | Bin 0 -> 542 bytes .../icons/meegotouch-button-accent-background.png | Bin 0 -> 549 bytes ...-button-accent-inverted-background-disabled.png | Bin 0 -> 563 bytes ...h-button-accent-inverted-background-pressed.png | Bin 0 -> 544 bytes ...eegotouch-button-accent-inverted-background.png | Bin 0 -> 551 bytes ...utton-background-disabled-horizontal-center.png | Bin 0 -> 190 bytes ...-button-background-disabled-horizontal-left.png | Bin 0 -> 391 bytes ...button-background-disabled-horizontal-right.png | Bin 0 -> 370 bytes ...gotouch-button-background-disabled-selected.png | Bin 0 -> 569 bytes ...-button-background-disabled-vertical-bottom.png | Bin 0 -> 374 bytes ...-button-background-disabled-vertical-center.png | Bin 0 -> 194 bytes ...uch-button-background-disabled-vertical-top.png | Bin 0 -> 408 bytes .../meegotouch-button-background-disabled.png | Bin 0 -> 563 bytes ...gotouch-button-background-horizontal-center.png | Bin 0 -> 181 bytes ...eegotouch-button-background-horizontal-left.png | Bin 0 -> 402 bytes ...egotouch-button-background-horizontal-right.png | Bin 0 -> 368 bytes ...button-background-pressed-horizontal-center.png | Bin 0 -> 168 bytes ...h-button-background-pressed-horizontal-left.png | Bin 0 -> 346 bytes ...-button-background-pressed-horizontal-right.png | Bin 0 -> 368 bytes ...h-button-background-pressed-vertical-bottom.png | Bin 0 -> 369 bytes ...h-button-background-pressed-vertical-center.png | Bin 0 -> 163 bytes ...ouch-button-background-pressed-vertical-top.png | Bin 0 -> 379 bytes .../icons/meegotouch-button-background-pressed.png | Bin 0 -> 519 bytes ...utton-background-selected-horizontal-center.png | Bin 0 -> 163 bytes ...-button-background-selected-horizontal-left.png | Bin 0 -> 362 bytes ...button-background-selected-horizontal-right.png | Bin 0 -> 378 bytes ...-button-background-selected-vertical-bottom.png | Bin 0 -> 384 bytes ...-button-background-selected-vertical-center.png | Bin 0 -> 165 bytes ...uch-button-background-selected-vertical-top.png | Bin 0 -> 392 bytes .../meegotouch-button-background-selected.png | Bin 0 -> 553 bytes ...eegotouch-button-background-vertical-bottom.png | Bin 0 -> 373 bytes ...eegotouch-button-background-vertical-center.png | Bin 0 -> 181 bytes .../meegotouch-button-background-vertical-top.png | Bin 0 -> 401 bytes .../icons/meegotouch-button-background.png | Bin 0 -> 540 bytes ...gotouch-button-checkbox-background-disabled.png | Bin 0 -> 520 bytes ...egotouch-button-checkbox-background-pressed.png | Bin 0 -> 922 bytes ...utton-checkbox-background-selected-disabled.png | Bin 0 -> 912 bytes ...gotouch-button-checkbox-background-selected.png | Bin 0 -> 917 bytes .../meegotouch-button-checkbox-background.png | Bin 0 -> 960 bytes ...utton-checkbox-inverted-background-disabled.png | Bin 0 -> 520 bytes ...button-checkbox-inverted-background-pressed.png | Bin 0 -> 951 bytes ...ckbox-inverted-background-selected-disabled.png | Bin 0 -> 937 bytes ...utton-checkbox-inverted-background-selected.png | Bin 0 -> 917 bytes ...gotouch-button-checkbox-inverted-background.png | Bin 0 -> 967 bytes ...erted-background-disabled-horizontal-center.png | Bin 0 -> 192 bytes ...nverted-background-disabled-horizontal-left.png | Bin 0 -> 341 bytes ...verted-background-disabled-horizontal-right.png | Bin 0 -> 384 bytes ...utton-inverted-background-disabled-selected.png | Bin 0 -> 577 bytes ...nverted-background-disabled-vertical-bottom.png | Bin 0 -> 351 bytes ...nverted-background-disabled-vertical-center.png | Bin 0 -> 179 bytes ...n-inverted-background-disabled-vertical-top.png | Bin 0 -> 386 bytes ...gotouch-button-inverted-background-disabled.png | Bin 0 -> 525 bytes ...utton-inverted-background-horizontal-center.png | Bin 0 -> 177 bytes ...-button-inverted-background-horizontal-left.png | Bin 0 -> 343 bytes ...button-inverted-background-horizontal-right.png | Bin 0 -> 364 bytes ...verted-background-pressed-horizontal-center.png | Bin 0 -> 135 bytes ...inverted-background-pressed-horizontal-left.png | Bin 0 -> 344 bytes ...nverted-background-pressed-horizontal-right.png | Bin 0 -> 356 bytes ...inverted-background-pressed-vertical-bottom.png | Bin 0 -> 327 bytes ...inverted-background-pressed-vertical-center.png | Bin 0 -> 160 bytes ...on-inverted-background-pressed-vertical-top.png | Bin 0 -> 358 bytes ...egotouch-button-inverted-background-pressed.png | Bin 0 -> 527 bytes ...erted-background-selected-horizontal-center.png | Bin 0 -> 169 bytes ...nverted-background-selected-horizontal-left.png | Bin 0 -> 385 bytes ...verted-background-selected-horizontal-right.png | Bin 0 -> 370 bytes ...nverted-background-selected-vertical-bottom.png | Bin 0 -> 380 bytes ...nverted-background-selected-vertical-center.png | Bin 0 -> 165 bytes ...n-inverted-background-selected-vertical-top.png | Bin 0 -> 388 bytes ...gotouch-button-inverted-background-selected.png | Bin 0 -> 555 bytes ...-button-inverted-background-vertical-bottom.png | Bin 0 -> 351 bytes ...-button-inverted-background-vertical-center.png | Bin 0 -> 179 bytes ...uch-button-inverted-background-vertical-top.png | Bin 0 -> 386 bytes .../meegotouch-button-inverted-background.png | Bin 0 -> 535 bytes ...ton-navigationbar-button-background-pressed.png | Bin 0 -> 483 bytes ...on-navigationbar-button-background-selected.png | Bin 0 -> 501 bytes ...ouch-button-navigationbar-button-background.png | Bin 0 -> 489 bytes ...-landscape-tab-background-horizontal-center.png | Bin 0 -> 158 bytes ...ar-landscape-tab-background-horizontal-left.png | Bin 0 -> 158 bytes ...r-landscape-tab-background-horizontal-right.png | Bin 0 -> 154 bytes ...pe-tab-background-pressed-horizontal-center.png | Bin 0 -> 158 bytes ...cape-tab-background-pressed-horizontal-left.png | Bin 0 -> 158 bytes ...ape-tab-background-pressed-horizontal-right.png | Bin 0 -> 154 bytes ...e-tab-background-selected-horizontal-center.png | Bin 0 -> 154 bytes ...ape-tab-background-selected-horizontal-left.png | Bin 0 -> 154 bytes ...pe-tab-background-selected-horizontal-right.png | Bin 0 -> 154 bytes ...cape-tab-label-background-horizontal-center.png | Bin 0 -> 180 bytes ...dscape-tab-label-background-horizontal-left.png | Bin 0 -> 179 bytes ...scape-tab-label-background-horizontal-right.png | Bin 0 -> 175 bytes ...-label-background-pressed-horizontal-center.png | Bin 0 -> 180 bytes ...ab-label-background-pressed-horizontal-left.png | Bin 0 -> 179 bytes ...b-label-background-pressed-horizontal-right.png | Bin 0 -> 175 bytes ...label-background-selected-horizontal-center.png | Bin 0 -> 176 bytes ...b-label-background-selected-horizontal-left.png | Bin 0 -> 175 bytes ...-label-background-selected-horizontal-right.png | Bin 0 -> 175 bytes ...dscape-top-tab-background-horizontal-center.png | Bin 0 -> 158 bytes ...andscape-top-tab-background-horizontal-left.png | Bin 0 -> 158 bytes ...ndscape-top-tab-background-horizontal-right.png | Bin 0 -> 154 bytes ...op-tab-background-pressed-horizontal-center.png | Bin 0 -> 158 bytes ...-top-tab-background-pressed-horizontal-left.png | Bin 0 -> 158 bytes ...top-tab-background-pressed-horizontal-right.png | Bin 0 -> 154 bytes ...p-tab-background-selected-horizontal-center.png | Bin 0 -> 154 bytes ...top-tab-background-selected-horizontal-left.png | Bin 0 -> 154 bytes ...op-tab-background-selected-horizontal-right.png | Bin 0 -> 154 bytes ...-top-tab-label-background-horizontal-center.png | Bin 0 -> 180 bytes ...pe-top-tab-label-background-horizontal-left.png | Bin 0 -> 179 bytes ...e-top-tab-label-background-horizontal-right.png | Bin 0 -> 175 bytes ...-label-background-pressed-horizontal-center.png | Bin 0 -> 179 bytes ...ab-label-background-pressed-horizontal-left.png | Bin 0 -> 179 bytes ...b-label-background-pressed-horizontal-right.png | Bin 0 -> 176 bytes ...label-background-selected-horizontal-center.png | Bin 0 -> 175 bytes ...b-label-background-selected-horizontal-left.png | Bin 0 -> 175 bytes ...-label-background-selected-horizontal-right.png | Bin 0 -> 175 bytes ...r-portrait-tab-background-horizontal-center.png | Bin 0 -> 168 bytes ...bar-portrait-tab-background-horizontal-left.png | Bin 0 -> 168 bytes ...ar-portrait-tab-background-horizontal-right.png | Bin 0 -> 164 bytes ...it-tab-background-pressed-horizontal-center.png | Bin 0 -> 168 bytes ...rait-tab-background-pressed-horizontal-left.png | Bin 0 -> 168 bytes ...ait-tab-background-pressed-horizontal-right.png | Bin 0 -> 164 bytes ...t-tab-background-selected-horizontal-center.png | Bin 0 -> 164 bytes ...ait-tab-background-selected-horizontal-left.png | Bin 0 -> 164 bytes ...it-tab-background-selected-horizontal-right.png | Bin 0 -> 164 bytes ...rait-tab-label-background-horizontal-center.png | Bin 0 -> 190 bytes ...rtrait-tab-label-background-horizontal-left.png | Bin 0 -> 190 bytes ...trait-tab-label-background-horizontal-right.png | Bin 0 -> 186 bytes ...-label-background-pressed-horizontal-center.png | Bin 0 -> 190 bytes ...ab-label-background-pressed-horizontal-left.png | Bin 0 -> 190 bytes ...b-label-background-pressed-horizontal-right.png | Bin 0 -> 186 bytes ...label-background-selected-horizontal-center.png | Bin 0 -> 186 bytes ...b-label-background-selected-horizontal-left.png | Bin 0 -> 186 bytes ...-label-background-selected-horizontal-right.png | Bin 0 -> 186 bytes ...rtrait-top-tab-background-horizontal-center.png | Bin 0 -> 168 bytes ...portrait-top-tab-background-horizontal-left.png | Bin 0 -> 168 bytes ...ortrait-top-tab-background-horizontal-right.png | Bin 0 -> 164 bytes ...op-tab-background-pressed-horizontal-center.png | Bin 0 -> 168 bytes ...-top-tab-background-pressed-horizontal-left.png | Bin 0 -> 168 bytes ...top-tab-background-pressed-horizontal-right.png | Bin 0 -> 164 bytes ...p-tab-background-selected-horizontal-center.png | Bin 0 -> 164 bytes ...top-tab-background-selected-horizontal-left.png | Bin 0 -> 164 bytes ...op-tab-background-selected-horizontal-right.png | Bin 0 -> 165 bytes ...-top-tab-label-background-horizontal-center.png | Bin 0 -> 190 bytes ...it-top-tab-label-background-horizontal-left.png | Bin 0 -> 190 bytes ...t-top-tab-label-background-horizontal-right.png | Bin 0 -> 186 bytes ...-label-background-pressed-horizontal-center.png | Bin 0 -> 190 bytes ...ab-label-background-pressed-horizontal-left.png | Bin 0 -> 190 bytes ...b-label-background-pressed-horizontal-right.png | Bin 0 -> 186 bytes ...label-background-selected-horizontal-center.png | Bin 0 -> 186 bytes ...b-label-background-selected-horizontal-left.png | Bin 0 -> 186 bytes ...-label-background-selected-horizontal-right.png | Bin 0 -> 186 bytes ...bar-tab-button-background-horizontal-center.png | Bin 0 -> 170 bytes ...onbar-tab-button-background-horizontal-left.png | Bin 0 -> 364 bytes ...nbar-tab-button-background-horizontal-right.png | Bin 0 -> 410 bytes ...button-background-pressed-horizontal-center.png | Bin 0 -> 169 bytes ...b-button-background-pressed-horizontal-left.png | Bin 0 -> 360 bytes ...-button-background-pressed-horizontal-right.png | Bin 0 -> 391 bytes ...navigationbar-tab-button-background-pressed.png | Bin 0 -> 500 bytes ...utton-background-selected-horizontal-center.png | Bin 0 -> 170 bytes ...-button-background-selected-horizontal-left.png | Bin 0 -> 389 bytes ...button-background-selected-horizontal-right.png | Bin 0 -> 385 bytes ...avigationbar-tab-button-background-selected.png | Bin 0 -> 525 bytes ...-button-navigationbar-tab-button-background.png | Bin 0 -> 506 bytes ...gotouch-button-negative-background-disabled.png | Bin 0 -> 555 bytes ...egotouch-button-negative-background-pressed.png | Bin 0 -> 543 bytes .../meegotouch-button-negative-background.png | Bin 0 -> 551 bytes ...utton-negative-inverted-background-disabled.png | Bin 0 -> 562 bytes ...button-negative-inverted-background-pressed.png | Bin 0 -> 547 bytes ...gotouch-button-negative-inverted-background.png | Bin 0 -> 540 bytes ...gotouch-button-positive-background-disabled.png | Bin 0 -> 555 bytes ...egotouch-button-positive-background-pressed.png | Bin 0 -> 548 bytes .../meegotouch-button-positive-background.png | Bin 0 -> 550 bytes ...utton-positive-inverted-background-disabled.png | Bin 0 -> 567 bytes ...button-positive-inverted-background-pressed.png | Bin 0 -> 552 bytes ...gotouch-button-positive-inverted-background.png | Bin 0 -> 562 bytes ...ouch-button-radiobutton-background-disabled.png | Bin 0 -> 1177 bytes ...touch-button-radiobutton-background-pressed.png | Bin 0 -> 1187 bytes ...on-radiobutton-background-selected-disabled.png | Bin 0 -> 1127 bytes ...ouch-button-radiobutton-background-selected.png | Bin 0 -> 1109 bytes .../meegotouch-button-radiobutton-background.png | Bin 0 -> 1180 bytes ...on-radiobutton-inverted-background-disabled.png | Bin 0 -> 1192 bytes ...ton-radiobutton-inverted-background-pressed.png | Bin 0 -> 1202 bytes ...utton-inverted-background-selected-disabled.png | Bin 0 -> 1127 bytes ...on-radiobutton-inverted-background-selected.png | Bin 0 -> 1109 bytes ...ouch-button-radiobutton-inverted-background.png | Bin 0 -> 1163 bytes .../icons/meegotouch-button-switch-background.png | Bin 0 -> 430 bytes ...meegotouch-button-switch-colorstripe-active.png | Bin 0 -> 159 bytes ...meegotouch-button-switch-colorstripe-normal.png | Bin 0 -> 157 bytes .../icons/meegotouch-button-switch-mask.png | Bin 0 -> 479 bytes .../meegotouch-button-switch-off-inverted.png | Bin 0 -> 615 bytes .../icons/meegotouch-button-switch-on-inverted.png | Bin 0 -> 304 bytes .../icons/meegotouch-button-switch-on-off.png | Bin 0 -> 1179 bytes .../icons/meegotouch-button-switch-on.png | Bin 0 -> 1230 bytes .../icons/meegotouch-button-switch-thumb.png | Bin 0 -> 309 bytes .../meegotouch-calendar-monthgrid-daylabel.png | Bin 0 -> 130 bytes .../meegotouch-calendar-monthgrid-weeknumber.png | Bin 0 -> 146 bytes .../meegotouch-combobox-indicator-disabled.png | Bin 0 -> 283 bytes ...otouch-combobox-indicator-inverted-disabled.png | Bin 0 -> 244 bytes ...gotouch-combobox-indicator-inverted-pressed.png | Bin 0 -> 244 bytes .../meegotouch-combobox-indicator-inverted.png | Bin 0 -> 186 bytes .../meegotouch-combobox-indicator-pressed.png | Bin 0 -> 276 bytes .../icons/meegotouch-combobox-indicator.png | Bin 0 -> 282 bytes .../meegotouch-completer-background-pressed.png | Bin 0 -> 364 bytes .../icons/meegotouch-completer-background.png | Bin 0 -> 568 bytes .../icons/meegotouch-completer-button-pressed.png | Bin 0 -> 518 bytes .../icons/meegotouch-completer-button.png | Bin 0 -> 541 bytes .../base/meegotouch/icons/meegotouch-container.png | Bin 0 -> 2150 bytes ...-overlay-navigationbar-landscape-background.png | Bin 0 -> 196 bytes ...t-overlay-navigationbar-portrait-background.png | Bin 0 -> 209 bytes .../meegotouch-dialog-button-negative-pressed.png | Bin 0 -> 568 bytes .../icons/meegotouch-dialog-button-negative.png | Bin 0 -> 535 bytes .../meegotouch-dialog-button-positive-pressed.png | Bin 0 -> 555 bytes .../icons/meegotouch-dialog-button-positive.png | Bin 0 -> 535 bytes .../base/meegotouch/icons/meegotouch-dialog.png | Bin 0 -> 11944 bytes .../meegotouch-fast-scroll-handle-inverted.png | Bin 0 -> 297 bytes .../icons/meegotouch-fast-scroll-handle.png | Bin 0 -> 281 bytes .../meegotouch-fast-scroll-magnifier-inverted.png | Bin 0 -> 213 bytes .../icons/meegotouch-fast-scroll-magnifier.png | Bin 0 -> 228 bytes .../icons/meegotouch-fast-scroll-rail-inverted.png | Bin 0 -> 197 bytes .../icons/meegotouch-fast-scroll-rail.png | Bin 0 -> 196 bytes .../icons/meegotouch-fastscroll-background.png | Bin 0 -> 235 bytes .../icons/meegotouch-launcher-spinner.png | Bin 0 -> 35339 bytes .../meegotouch-list-background-bottom-center.png | Bin 0 -> 193 bytes .../meegotouch-list-background-bottom-left.png | Bin 0 -> 328 bytes .../meegotouch-list-background-bottom-right.png | Bin 0 -> 316 bytes .../meegotouch-list-background-center-left.png | Bin 0 -> 187 bytes .../meegotouch-list-background-center-right.png | Bin 0 -> 186 bytes .../icons/meegotouch-list-background-center.png | Bin 0 -> 193 bytes ...eegotouch-list-background-horizontal-center.png | Bin 0 -> 190 bytes .../meegotouch-list-background-horizontal-left.png | Bin 0 -> 406 bytes ...meegotouch-list-background-horizontal-right.png | Bin 0 -> 406 bytes ...gotouch-list-background-pressed-bottom-left.png | Bin 0 -> 316 bytes ...otouch-list-background-pressed-bottom-right.png | Bin 0 -> 319 bytes ...touch-list-background-pressed-center-bottom.png | Bin 0 -> 184 bytes ...gotouch-list-background-pressed-center-left.png | Bin 0 -> 185 bytes ...otouch-list-background-pressed-center-right.png | Bin 0 -> 185 bytes .../meegotouch-list-background-pressed-center.png | Bin 0 -> 184 bytes ...h-list-background-pressed-horizontal-center.png | Bin 0 -> 184 bytes ...uch-list-background-pressed-horizontal-left.png | Bin 0 -> 407 bytes ...ch-list-background-pressed-horizontal-right.png | Bin 0 -> 433 bytes ...egotouch-list-background-pressed-top-center.png | Bin 0 -> 185 bytes ...meegotouch-list-background-pressed-top-left.png | Bin 0 -> 313 bytes ...eegotouch-list-background-pressed-top-right.png | Bin 0 -> 339 bytes ...uch-list-background-pressed-vertical-bottom.png | Bin 0 -> 301 bytes ...uch-list-background-pressed-vertical-center.png | Bin 0 -> 196 bytes ...otouch-list-background-pressed-vertical-top.png | Bin 0 -> 309 bytes .../icons/meegotouch-list-background-pressed.png | Bin 0 -> 372 bytes ...otouch-list-background-selected-bottom-left.png | Bin 0 -> 473 bytes ...touch-list-background-selected-bottom-right.png | Bin 0 -> 435 bytes .../meegotouch-list-background-selected-bottom.png | Bin 0 -> 361 bytes ...otouch-list-background-selected-center-left.png | Bin 0 -> 310 bytes ...touch-list-background-selected-center-right.png | Bin 0 -> 295 bytes .../meegotouch-list-background-selected-center.png | Bin 0 -> 355 bytes ...-list-background-selected-horizontal-center.png | Bin 0 -> 355 bytes ...ch-list-background-selected-horizontal-left.png | Bin 0 -> 555 bytes ...h-list-background-selected-horizontal-right.png | Bin 0 -> 567 bytes ...gotouch-list-background-selected-top-center.png | Bin 0 -> 355 bytes ...eegotouch-list-background-selected-top-left.png | Bin 0 -> 429 bytes ...egotouch-list-background-selected-top-right.png | Bin 0 -> 475 bytes ...ch-list-background-selected-vertical-bottom.png | Bin 0 -> 487 bytes ...ch-list-background-selected-vertical-center.png | Bin 0 -> 248 bytes ...touch-list-background-selected-vertical-top.png | Bin 0 -> 470 bytes .../icons/meegotouch-list-background-selected.png | Bin 0 -> 656 bytes .../meegotouch-list-background-top-center.png | Bin 0 -> 193 bytes .../icons/meegotouch-list-background-top-left.png | Bin 0 -> 308 bytes .../icons/meegotouch-list-background-top-right.png | Bin 0 -> 322 bytes .../meegotouch-list-background-vertical-bottom.png | Bin 0 -> 382 bytes .../meegotouch-list-background-vertical-center.png | Bin 0 -> 184 bytes .../meegotouch-list-background-vertical-top.png | Bin 0 -> 387 bytes .../icons/meegotouch-list-background.png | Bin 0 -> 524 bytes ...uch-list-fullwidth-background-bottom-center.png | Bin 0 -> 190 bytes ...touch-list-fullwidth-background-bottom-left.png | Bin 0 -> 187 bytes ...ouch-list-fullwidth-background-bottom-right.png | Bin 0 -> 187 bytes ...touch-list-fullwidth-background-center-left.png | Bin 0 -> 187 bytes ...ouch-list-fullwidth-background-center-right.png | Bin 0 -> 183 bytes ...meegotouch-list-fullwidth-background-center.png | Bin 0 -> 190 bytes ...list-fullwidth-background-horizontal-center.png | Bin 0 -> 193 bytes ...h-list-fullwidth-background-horizontal-left.png | Bin 0 -> 187 bytes ...-list-fullwidth-background-horizontal-right.png | Bin 0 -> 183 bytes ...-fullwidth-background-pressed-bottom-center.png | Bin 0 -> 185 bytes ...st-fullwidth-background-pressed-bottom-left.png | Bin 0 -> 185 bytes ...t-fullwidth-background-pressed-bottom-right.png | Bin 0 -> 184 bytes ...st-fullwidth-background-pressed-center-left.png | Bin 0 -> 185 bytes ...t-fullwidth-background-pressed-center-right.png | Bin 0 -> 184 bytes ...ch-list-fullwidth-background-pressed-center.png | Bin 0 -> 187 bytes ...lwidth-background-pressed-horizontal-center.png | Bin 0 -> 185 bytes ...ullwidth-background-pressed-horizontal-left.png | Bin 0 -> 184 bytes ...llwidth-background-pressed-horizontal-right.png | Bin 0 -> 184 bytes ...ist-fullwidth-background-pressed-top-center.png | Bin 0 -> 185 bytes ...-list-fullwidth-background-pressed-top-left.png | Bin 0 -> 185 bytes ...list-fullwidth-background-pressed-top-right.png | Bin 0 -> 185 bytes ...ullwidth-background-pressed-vertical-bottom.png | Bin 0 -> 184 bytes ...ullwidth-background-pressed-vertical-center.png | Bin 0 -> 210 bytes ...st-fullwidth-background-pressed-vetical-top.png | Bin 0 -> 184 bytes ...eegotouch-list-fullwidth-background-pressed.png | Bin 0 -> 185 bytes ...fullwidth-background-selected-bottom-center.png | Bin 0 -> 355 bytes ...t-fullwidth-background-selected-bottom-left.png | Bin 0 -> 310 bytes ...-fullwidth-background-selected-bottom-right.png | Bin 0 -> 294 bytes ...t-fullwidth-background-selected-center-left.png | Bin 0 -> 310 bytes ...-fullwidth-background-selected-center-right.png | Bin 0 -> 295 bytes ...h-list-fullwidth-background-selected-center.png | Bin 0 -> 355 bytes ...width-background-selected-horizontal-center.png | Bin 0 -> 355 bytes ...llwidth-background-selected-horizontal-left.png | Bin 0 -> 310 bytes ...lwidth-background-selected-horizontal-right.png | Bin 0 -> 295 bytes ...st-fullwidth-background-selected-top-center.png | Bin 0 -> 355 bytes ...list-fullwidth-background-selected-top-left.png | Bin 0 -> 310 bytes ...ist-fullwidth-background-selected-top-right.png | Bin 0 -> 295 bytes ...llwidth-background-selected-vertical-bottom.png | Bin 0 -> 295 bytes ...llwidth-background-selected-vertical-center.png | Bin 0 -> 355 bytes ...-fullwidth-background-selected-vertical-top.png | Bin 0 -> 310 bytes ...egotouch-list-fullwidth-background-selected.png | Bin 0 -> 241 bytes ...otouch-list-fullwidth-background-top-center.png | Bin 0 -> 190 bytes ...egotouch-list-fullwidth-background-top-left.png | Bin 0 -> 187 bytes ...gotouch-list-fullwidth-background-top-right.png | Bin 0 -> 187 bytes ...h-list-fullwidth-background-vertical-bottom.png | Bin 0 -> 187 bytes ...h-list-fullwidth-background-vertical-center.png | Bin 0 -> 190 bytes ...ouch-list-fullwidth-background-vertical-top.png | Bin 0 -> 187 bytes .../icons/meegotouch-list-fullwidth-background.png | Bin 0 -> 184 bytes .../icons/meegotouch-list-header-background.png | Bin 0 -> 181 bytes .../meegotouch-live-filter-bar-background.png | Bin 0 -> 175 bytes .../icons/meegotouch-menu-background.png | Bin 0 -> 176 bytes .../meegotouch/icons/meegotouch-menu-dimmer.png | Bin 0 -> 701 bytes .../icons/meegotouch-menu-shadow-bottom.png | Bin 0 -> 149 bytes .../icons/meegotouch-menu-shadow-left.png | Bin 0 -> 144 bytes .../icons/meegotouch-menu-shadow-right.png | Bin 0 -> 150 bytes .../icons/meegotouch-menu-shadow-top.png | Bin 0 -> 144 bytes ...onthgrid-daycell-current-day-eventindicator.png | Bin 0 -> 147 bytes .../meegotouch-monthgrid-daycell-current-day.png | Bin 0 -> 198 bytes ...hgrid-daycell-othermonth-day-eventindicator.png | Bin 0 -> 147 bytes ...onthgrid-daycell-regular-day-eventindicator.png | Bin 0 -> 147 bytes .../meegotouch-monthgrid-daycell-regular-day.png | Bin 0 -> 201 bytes ...ouch-monthgrid-daycell-selected-day-current.png | Bin 0 -> 230 bytes ...nthgrid-daycell-selected-day-eventindicator.png | Bin 0 -> 145 bytes .../meegotouch-monthgrid-daycell-selected-day.png | Bin 0 -> 186 bytes ...egotouch-navigationbar-landscape-background.png | Bin 0 -> 175 bytes ...ape-bottom-tab-background-horizontal-center.png | Bin 0 -> 204 bytes ...scape-bottom-tab-background-horizontal-left.png | Bin 0 -> 401 bytes ...cape-bottom-tab-background-horizontal-right.png | Bin 0 -> 396 bytes ...om-tab-background-pressed-horizontal-center.png | Bin 0 -> 200 bytes ...ttom-tab-background-pressed-horizontal-left.png | Bin 0 -> 395 bytes ...tom-tab-background-pressed-horizontal-right.png | Bin 0 -> 396 bytes ...m-tab-background-selected-horizontal-center.png | Bin 0 -> 266 bytes ...tom-tab-background-selected-horizontal-left.png | Bin 0 -> 385 bytes ...om-tab-background-selected-horizontal-right.png | Bin 0 -> 418 bytes ...dscape-top-tab-background-horizontal-center.png | Bin 0 -> 207 bytes ...andscape-top-tab-background-horizontal-left.png | Bin 0 -> 392 bytes ...ndscape-top-tab-background-horizontal-right.png | Bin 0 -> 387 bytes ...op-tab-background-pressed-horizontal-center.png | Bin 0 -> 201 bytes ...-top-tab-background-pressed-horizontal-left.png | Bin 0 -> 401 bytes ...top-tab-background-pressed-horizontal-right.png | Bin 0 -> 415 bytes ...p-tab-background-selected-horizontal-center.png | Bin 0 -> 266 bytes ...top-tab-background-selected-horizontal-left.png | Bin 0 -> 385 bytes ...op-tab-background-selected-horizontal-right.png | Bin 0 -> 418 bytes ...eegotouch-navigationbar-portrait-background.png | Bin 0 -> 186 bytes ...ait-bottom-tab-background-horizontal-center.png | Bin 0 -> 215 bytes ...trait-bottom-tab-background-horizontal-left.png | Bin 0 -> 404 bytes ...ttom-tab-background-horizontal-pressed-left.png | Bin 0 -> 411 bytes ...rait-bottom-tab-background-horizontal-right.png | Bin 0 -> 413 bytes ...om-tab-background-pressed-horizontal-center.png | Bin 0 -> 213 bytes ...tom-tab-background-pressed-horizontal-right.png | Bin 0 -> 408 bytes ...m-tab-background-selected-horizontal-center.png | Bin 0 -> 283 bytes ...tom-tab-background-selected-horizontal-left.png | Bin 0 -> 399 bytes ...om-tab-background-selected-horizontal-right.png | Bin 0 -> 430 bytes ...avigationbar-portrait-bottom-tab-background.png | Bin 0 -> 186 bytes ...tab-icon-label-background-horizontal-center.png | Bin 0 -> 254 bytes ...m-tab-icon-label-background-horizontal-left.png | Bin 0 -> 454 bytes ...-tab-icon-label-background-horizontal-right.png | Bin 0 -> 459 bytes ...-label-background-pressed-horizontal-center.png | Bin 0 -> 251 bytes ...on-label-background-pressed-horizontal-left.png | Bin 0 -> 453 bytes ...n-label-background-pressed-horizontal-right.png | Bin 0 -> 473 bytes ...label-background-selected-horizontal-center.png | Bin 0 -> 307 bytes ...n-label-background-selected-horizontal-left.png | Bin 0 -> 439 bytes ...-label-background-selected-horizontal-right.png | Bin 0 -> 474 bytes ...r-portrait-bottom-tab-icon-label-background.png | Bin 0 -> 224 bytes ...rtrait-top-tab-background-horizontal-center.png | Bin 0 -> 215 bytes ...portrait-top-tab-background-horizontal-left.png | Bin 0 -> 414 bytes ...-top-tab-background-horizontal-pressed-left.png | Bin 0 -> 411 bytes ...ortrait-top-tab-background-horizontal-right.png | Bin 0 -> 413 bytes ...op-tab-background-pressed-horizontal-center.png | Bin 0 -> 213 bytes ...top-tab-background-pressed-horizontal-right.png | Bin 0 -> 426 bytes ...p-tab-background-selected-horizontal-center.png | Bin 0 -> 284 bytes ...top-tab-background-selected-horizontal-left.png | Bin 0 -> 399 bytes ...op-tab-background-selected-horizontal-right.png | Bin 0 -> 429 bytes ...h-navigationbar-portrait-top-tab-background.png | Bin 0 -> 186 bytes ...tab-icon-label-background-horizontal-center.png | Bin 0 -> 254 bytes ...p-tab-icon-label-background-horizontal-left.png | Bin 0 -> 454 bytes ...-tab-icon-label-background-horizontal-right.png | Bin 0 -> 459 bytes ...-label-background-pressed-horizontal-center.png | Bin 0 -> 251 bytes ...on-label-background-pressed-horizontal-left.png | Bin 0 -> 453 bytes ...n-label-background-pressed-horizontal-right.png | Bin 0 -> 473 bytes ...label-background-selected-horizontal-center.png | Bin 0 -> 307 bytes ...n-label-background-selected-horizontal-left.png | Bin 0 -> 439 bytes ...-label-background-selected-horizontal-right.png | Bin 0 -> 474 bytes ...nbar-portrait-top-tab-icon-label-background.png | Bin 0 -> 224 bytes ...uch-positionindicator-background-horizontal.png | Bin 0 -> 118 bytes .../meegotouch-positionindicator-background.png | Bin 0 -> 117 bytes ...ouch-positionindicator-indicator-horizontal.png | Bin 0 -> 118 bytes .../meegotouch-positionindicator-indicator.png | Bin 0 -> 114 bytes ...ionindicator-inverted-background-horizontal.png | Bin 0 -> 119 bytes ...touch-positionindicator-inverted-background.png | Bin 0 -> 117 bytes ...tionindicator-inverted-indicator-horizontal.png | Bin 0 -> 118 bytes ...otouch-positionindicator-inverted-indicator.png | Bin 0 -> 115 bytes .../meegotouch-progress-spinner-experimental.png | Bin 0 -> 11873 bytes ...meegotouch-progressindicator-bar-background.png | Bin 0 -> 179 bytes ...gotouch-progressindicator-bar-known-texture.png | Bin 0 -> 117 bytes .../meegotouch-progressindicator-bar-mask.png | Bin 0 -> 191 bytes ...touch-progressindicator-bar-unknown-texture.png | Bin 0 -> 163 bytes ...h-progressindicator-inverted-bar-background.png | Bin 0 -> 195 bytes ...rogressindicator-inverted-bar-known-texture.png | Bin 0 -> 117 bytes ...gotouch-progressindicator-inverted-bar-mask.png | Bin 0 -> 191 bytes ...gressindicator-inverted-bar-unknown-texture.png | Bin 0 -> 163 bytes ...rogressindicator-inverted-spinner-large-off.png | Bin 0 -> 313 bytes ...progressindicator-inverted-spinner-large-on.png | Bin 0 -> 353 bytes ...ogressindicator-inverted-spinner-medium-off.png | Bin 0 -> 245 bytes ...rogressindicator-inverted-spinner-medium-on.png | Bin 0 -> 257 bytes ...rogressindicator-inverted-spinner-small-off.png | Bin 0 -> 201 bytes ...progressindicator-inverted-spinner-small-on.png | Bin 0 -> 232 bytes ...gotouch-progressindicator-spinner-large-off.png | Bin 0 -> 353 bytes ...egotouch-progressindicator-spinner-large-on.png | Bin 0 -> 369 bytes ...otouch-progressindicator-spinner-medium-off.png | Bin 0 -> 260 bytes ...gotouch-progressindicator-spinner-medium-on.png | Bin 0 -> 266 bytes ...gotouch-progressindicator-spinner-small-off.png | Bin 0 -> 250 bytes ...egotouch-progressindicator-spinner-small-on.png | Bin 0 -> 232 bytes .../meegotouch-scroll-bubble-arrow-inverted.png | Bin 0 -> 174 bytes .../icons/meegotouch-scroll-bubble-arrow.png | Bin 0 -> 190 bytes ...eegotouch-scroll-bubble-background-inverted.png | Bin 0 -> 313 bytes .../icons/meegotouch-scroll-bubble-background.png | Bin 0 -> 403 bytes .../meegotouch-scroll-bubble-divider-inverted.png | Bin 0 -> 115 bytes .../icons/meegotouch-scroll-bubble-divider.png | Bin 0 -> 122 bytes ...gotouch-seeker-handle-background-horizontal.png | Bin 0 -> 171 bytes ...eegotouch-seeker-handle-background-vertical.png | Bin 0 -> 171 bytes ...eeker-handle-inverted-background-horizontal.png | Bin 0 -> 160 bytes ...-seeker-handle-inverted-background-vertical.png | Bin 0 -> 171 bytes .../meegotouch-slider-background-horizontal.png | Bin 0 -> 178 bytes .../meegotouch-slider-background-vertical.png | Bin 0 -> 196 bytes ...otouch-slider-elapsed-background-horizontal.png | Bin 0 -> 179 bytes ...egotouch-slider-elapsed-background-vertical.png | Bin 0 -> 196 bytes ...ider-elapsed-inverted-background-horizontal.png | Bin 0 -> 188 bytes ...slider-elapsed-inverted-background-vertical.png | Bin 0 -> 196 bytes ...gotouch-slider-handle-background-horizontal.png | Bin 0 -> 610 bytes ...slider-handle-background-pressed-horizontal.png | Bin 0 -> 607 bytes ...h-slider-handle-background-pressed-vertical.png | Bin 0 -> 589 bytes ...eegotouch-slider-handle-background-vertical.png | Bin 0 -> 610 bytes ...lider-handle-inverted-background-horizontal.png | Bin 0 -> 582 bytes ...ndle-inverted-background-pressed-horizontal.png | Bin 0 -> 606 bytes ...handle-inverted-background-pressed-vertical.png | Bin 0 -> 606 bytes ...-slider-handle-inverted-background-vertical.png | Bin 0 -> 582 bytes ...uch-slider-handle-label-arrow-down-inverted.png | Bin 0 -> 130 bytes .../meegotouch-slider-handle-label-arrow-down.png | Bin 0 -> 151 bytes ...uch-slider-handle-label-arrow-left-inverted.png | Bin 0 -> 135 bytes .../meegotouch-slider-handle-label-arrow-left.png | Bin 0 -> 137 bytes ...ch-slider-handle-label-arrow-right-inverted.png | Bin 0 -> 137 bytes .../meegotouch-slider-handle-label-arrow-right.png | Bin 0 -> 145 bytes ...touch-slider-handle-label-arrow-up-inverted.png | Bin 0 -> 129 bytes .../meegotouch-slider-handle-label-arrow-up.png | Bin 0 -> 146 bytes .../meegotouch-slider-handle-value-background.png | Bin 0 -> 246 bytes ...uch-slider-handle-value-inverted-background.png | Bin 0 -> 265 bytes ...touch-slider-inverted-background-horizontal.png | Bin 0 -> 187 bytes ...gotouch-slider-inverted-background-vertical.png | Bin 0 -> 204 bytes ...touch-slider-received-background-horizontal.png | Bin 0 -> 188 bytes ...gotouch-slider-received-background-vertical.png | Bin 0 -> 196 bytes ...der-received-inverted-background-horizontal.png | Bin 0 -> 195 bytes ...lider-received-inverted-background-vertical.png | Bin 0 -> 204 bytes .../meegotouch-statusmenu-drawer-background.png | Bin 0 -> 128 bytes .../icons/meegotouch-statusmenu-drawer-grip.png | Bin 0 -> 198 bytes ...ackground-disabled-selected-horizontal-left.png | Bin 0 -> 370 bytes .../meegotouch-textedit-background-disabled.png | Bin 0 -> 601 bytes .../icons/meegotouch-textedit-background-error.png | Bin 0 -> 550 bytes ...gotouch-textedit-background-horizontal-left.png | Bin 0 -> 375 bytes ...extedit-background-selected-horizontal-left.png | Bin 0 -> 348 bytes .../meegotouch-textedit-background-selected.png | Bin 0 -> 534 bytes .../icons/meegotouch-textedit-background.png | Bin 0 -> 582 bytes ...button-background-disabled-horizontal-right.png | Bin 0 -> 378 bytes ...textedit-button-background-horizontal-right.png | Bin 0 -> 405 bytes ...-button-background-pressed-horizontal-right.png | Bin 0 -> 401 bytes ...button-background-selected-horizontal-right.png | Bin 0 -> 380 bytes ...ackground-selected-pressed-horizontal-right.png | Bin 0 -> 414 bytes ...gotouch-textedit-button-background-selected.png | Bin 0 -> 534 bytes ...verted-background-disabled-horizontal-right.png | Bin 0 -> 386 bytes ...button-inverted-background-horizontal-right.png | Bin 0 -> 384 bytes ...nverted-background-pressed-horizontal-right.png | Bin 0 -> 396 bytes ...textedit-button-inverted-background-pressed.png | Bin 0 -> 502 bytes ...verted-background-selected-horizontal-right.png | Bin 0 -> 389 bytes ...ackground-selected-pressed-horizontal-right.png | Bin 0 -> 389 bytes ...extedit-button-inverted-background-selected.png | Bin 0 -> 535 bytes ...gotouch-textedit-button-inverted-background.png | Bin 0 -> 512 bytes ...ackground-disabled-selected-horizontal-left.png | Bin 0 -> 374 bytes ...touch-textedit-inverted-background-disabled.png | Bin 0 -> 603 bytes ...egotouch-textedit-inverted-background-error.png | Bin 0 -> 527 bytes ...extedit-inverted-background-horizontal-left.png | Bin 0 -> 371 bytes ...nverted-background-selected-horizontal-left.png | Bin 0 -> 346 bytes ...touch-textedit-inverted-background-selected.png | Bin 0 -> 534 bytes .../meegotouch-textedit-inverted-background.png | Bin 0 -> 569 bytes .../icons/meegotouch-textfield-button-combo.png | Bin 0 -> 7394 bytes .../icons/organiserthemetemplatehelper.png | Bin 0 -> 5058 bytes .../meegotouch-applicationpage-background.jpg | Bin 0 -> 129238 bytes ...gotouch-applicationpage-portrait-background.jpg | Bin 0 -> 124975 bytes ...otouch-applicationwindow-corner-bottom-left.png | Bin 0 -> 172 bytes ...touch-applicationwindow-corner-bottom-right.png | Bin 0 -> 170 bytes ...eegotouch-applicationwindow-corner-top-left.png | Bin 0 -> 179 bytes ...egotouch-applicationwindow-corner-top-right.png | Bin 0 -> 180 bytes ...gotouch-avatar-placeholder-background-large.png | Bin 0 -> 787 bytes .../meegotouch-avatar-placeholder-background.png | Bin 0 -> 636 bytes ...eegotouch-button-accent-background-disabled.png | Bin 0 -> 1247 bytes ...meegotouch-button-accent-background-pressed.png | Bin 0 -> 1883 bytes .../images/meegotouch-button-accent-background.png | Bin 0 -> 1310 bytes ...-button-accent-inverted-background-disabled.png | Bin 0 -> 1243 bytes ...h-button-accent-inverted-background-pressed.png | Bin 0 -> 2058 bytes ...eegotouch-button-accent-inverted-background.png | Bin 0 -> 1304 bytes ...utton-background-disabled-horizontal-center.png | Bin 0 -> 235 bytes ...-button-background-disabled-horizontal-left.png | Bin 0 -> 828 bytes ...gotouch-button-background-disabled-selected.png | Bin 0 -> 2008 bytes ...-button-background-disabled-vertical-bottom.png | Bin 0 -> 770 bytes ...-button-background-disabled-vertical-center.png | Bin 0 -> 188 bytes ...uch-button-background-disabled-vertical-top.png | Bin 0 -> 649 bytes .../meegotouch-button-background-disabled.png | Bin 0 -> 1200 bytes ...gotouch-button-background-horizontal-center.png | Bin 0 -> 234 bytes ...button-background-horizontal-disabled-right.png | Bin 0 -> 790 bytes ...eegotouch-button-background-horizontal-left.png | Bin 0 -> 902 bytes ...egotouch-button-background-horizontal-right.png | Bin 0 -> 826 bytes ...button-background-pressed-horizontal-center.png | Bin 0 -> 291 bytes ...h-button-background-pressed-horizontal-left.png | Bin 0 -> 867 bytes ...-button-background-pressed-horizontal-right.png | Bin 0 -> 811 bytes ...h-button-background-pressed-vertical-bottom.png | Bin 0 -> 822 bytes ...h-button-background-pressed-vertical-center.png | Bin 0 -> 193 bytes ...ouch-button-background-pressed-vertical-top.png | Bin 0 -> 730 bytes .../meegotouch-button-background-pressed.png | Bin 0 -> 1998 bytes ...utton-background-selected-horizontal-center.png | Bin 0 -> 273 bytes ...-button-background-selected-horizontal-left.png | Bin 0 -> 890 bytes ...button-background-selected-horizontal-right.png | Bin 0 -> 864 bytes ...-button-background-selected-vertical-bottom.png | Bin 0 -> 851 bytes ...-button-background-selected-vertical-center.png | Bin 0 -> 194 bytes ...uch-button-background-selected-vertical-top.png | Bin 0 -> 759 bytes .../meegotouch-button-background-selected.png | Bin 0 -> 2155 bytes ...eegotouch-button-background-vertical-bottom.png | Bin 0 -> 821 bytes ...eegotouch-button-background-vertical-center.png | Bin 0 -> 187 bytes .../meegotouch-button-background-vertical-top.png | Bin 0 -> 656 bytes .../images/meegotouch-button-background.png | Bin 0 -> 1259 bytes ...gotouch-button-checkbox-background-disabled.png | Bin 0 -> 1272 bytes ...egotouch-button-checkbox-background-pressed.png | Bin 0 -> 2294 bytes ...utton-checkbox-background-selected-disabled.png | Bin 0 -> 2143 bytes ...gotouch-button-checkbox-background-selected.png | Bin 0 -> 2314 bytes .../meegotouch-button-checkbox-background.png | Bin 0 -> 1339 bytes ...utton-checkbox-inverted-background-disabled.png | Bin 0 -> 1045 bytes ...button-checkbox-inverted-background-pressed.png | Bin 0 -> 2073 bytes ...ckbox-inverted-background-selected-disabled.png | Bin 0 -> 2071 bytes ...utton-checkbox-inverted-background-selected.png | Bin 0 -> 2248 bytes ...gotouch-button-checkbox-inverted-background.png | Bin 0 -> 1079 bytes ...erted-background-disabled-horizontal-center.png | Bin 0 -> 231 bytes ...nverted-background-disabled-horizontal-left.png | Bin 0 -> 797 bytes ...verted-background-disabled-horizontal-right.png | Bin 0 -> 834 bytes ...utton-inverted-background-disabled-selected.png | Bin 0 -> 2095 bytes ...nverted-background-disabled-vertical-bottom.png | Bin 0 -> 659 bytes ...nverted-background-disabled-vertical-center.png | Bin 0 -> 191 bytes ...n-inverted-background-disabled-vertical-top.png | Bin 0 -> 786 bytes ...gotouch-button-inverted-background-disabled.png | Bin 0 -> 1231 bytes ...utton-inverted-background-horizontal-center.png | Bin 0 -> 231 bytes ...-button-inverted-background-horizontal-left.png | Bin 0 -> 850 bytes ...button-inverted-background-horizontal-right.png | Bin 0 -> 894 bytes ...verted-background-pressed-horizontal-center.png | Bin 0 -> 293 bytes ...inverted-background-pressed-horizontal-left.png | Bin 0 -> 948 bytes ...nverted-background-pressed-horizontal-right.png | Bin 0 -> 920 bytes ...inverted-background-pressed-vertical-bottom.png | Bin 0 -> 789 bytes ...inverted-background-pressed-vertical-center.png | Bin 0 -> 193 bytes ...on-inverted-background-pressed-vertical-top.png | Bin 0 -> 831 bytes ...egotouch-button-inverted-background-pressed.png | Bin 0 -> 2030 bytes ...erted-background-selected-horizontal-center.png | Bin 0 -> 276 bytes ...nverted-background-selected-horizontal-left.png | Bin 0 -> 923 bytes ...verted-background-selected-horizontal-right.png | Bin 0 -> 888 bytes ...nverted-background-selected-vertical-bottom.png | Bin 0 -> 774 bytes ...nverted-background-selected-vertical-center.png | Bin 0 -> 195 bytes ...n-inverted-background-selected-vertical-top.png | Bin 0 -> 840 bytes ...gotouch-button-inverted-background-selected.png | Bin 0 -> 2164 bytes ...-button-inverted-background-vertical-bottom.png | Bin 0 -> 733 bytes ...-button-inverted-background-vertical-center.png | Bin 0 -> 191 bytes ...uch-button-inverted-background-vertical-top.png | Bin 0 -> 836 bytes .../meegotouch-button-inverted-background.png | Bin 0 -> 1325 bytes ...eegotouch-button-inverted-switch-background.png | Bin 0 -> 432 bytes ...h-button-inverted-switch-colorstripe-active.png | Bin 0 -> 201 bytes ...h-button-inverted-switch-colorstripe-normal.png | Bin 0 -> 157 bytes .../meegotouch-button-inverted-switch-mask.png | Bin 0 -> 466 bytes .../meegotouch-button-inverted-switch-thumb.png | Bin 0 -> 312 bytes ...ton-navigationbar-button-background-pressed.png | Bin 0 -> 1463 bytes ...on-navigationbar-button-background-selected.png | Bin 0 -> 995 bytes ...ouch-button-navigationbar-button-background.png | Bin 0 -> 1267 bytes ...-landscape-tab-background-horizontal-center.png | Bin 0 -> 278 bytes ...ar-landscape-tab-background-horizontal-left.png | Bin 0 -> 416 bytes ...r-landscape-tab-background-horizontal-right.png | Bin 0 -> 311 bytes ...pe-tab-background-pressed-horizontal-center.png | Bin 0 -> 300 bytes ...cape-tab-background-pressed-horizontal-left.png | Bin 0 -> 435 bytes ...ape-tab-background-pressed-horizontal-right.png | Bin 0 -> 311 bytes ...e-tab-background-selected-horizontal-center.png | Bin 0 -> 355 bytes ...ape-tab-background-selected-horizontal-left.png | Bin 0 -> 449 bytes ...pe-tab-background-selected-horizontal-right.png | Bin 0 -> 421 bytes ...cape-tab-label-background-horizontal-center.png | Bin 0 -> 331 bytes ...dscape-tab-label-background-horizontal-left.png | Bin 0 -> 474 bytes ...scape-tab-label-background-horizontal-right.png | Bin 0 -> 324 bytes ...-label-background-pressed-horizontal-center.png | Bin 0 -> 363 bytes ...ab-label-background-pressed-horizontal-left.png | Bin 0 -> 491 bytes ...b-label-background-pressed-horizontal-right.png | Bin 0 -> 354 bytes ...label-background-selected-horizontal-center.png | Bin 0 -> 397 bytes ...b-label-background-selected-horizontal-left.png | Bin 0 -> 503 bytes ...-label-background-selected-horizontal-right.png | Bin 0 -> 456 bytes ...dscape-top-tab-background-horizontal-center.png | Bin 0 -> 280 bytes ...andscape-top-tab-background-horizontal-left.png | Bin 0 -> 403 bytes ...ndscape-top-tab-background-horizontal-right.png | Bin 0 -> 346 bytes ...op-tab-background-pressed-horizontal-center.png | Bin 0 -> 302 bytes ...-top-tab-background-pressed-horizontal-left.png | Bin 0 -> 425 bytes ...top-tab-background-pressed-horizontal-right.png | Bin 0 -> 363 bytes ...p-tab-background-selected-horizontal-center.png | Bin 0 -> 355 bytes ...top-tab-background-selected-horizontal-left.png | Bin 0 -> 429 bytes ...op-tab-background-selected-horizontal-right.png | Bin 0 -> 450 bytes ...-top-tab-label-background-horizontal-center.png | Bin 0 -> 333 bytes ...pe-top-tab-label-background-horizontal-left.png | Bin 0 -> 475 bytes ...e-top-tab-label-background-horizontal-right.png | Bin 0 -> 372 bytes ...-label-background-pressed-horizontal-center.png | Bin 0 -> 365 bytes ...ab-label-background-pressed-horizontal-left.png | Bin 0 -> 475 bytes ...b-label-background-pressed-horizontal-right.png | Bin 0 -> 419 bytes ...label-background-selected-horizontal-center.png | Bin 0 -> 397 bytes ...b-label-background-selected-horizontal-left.png | Bin 0 -> 463 bytes ...-label-background-selected-horizontal-right.png | Bin 0 -> 483 bytes ...r-portrait-tab-background-horizontal-center.png | Bin 0 -> 301 bytes ...bar-portrait-tab-background-horizontal-left.png | Bin 0 -> 438 bytes ...ar-portrait-tab-background-horizontal-right.png | Bin 0 -> 307 bytes ...it-tab-background-pressed-horizontal-center.png | Bin 0 -> 332 bytes ...rait-tab-background-pressed-horizontal-left.png | Bin 0 -> 457 bytes ...ait-tab-background-pressed-horizontal-right.png | Bin 0 -> 327 bytes ...t-tab-background-selected-horizontal-center.png | Bin 0 -> 369 bytes ...ait-tab-background-selected-horizontal-left.png | Bin 0 -> 462 bytes ...it-tab-background-selected-horizontal-right.png | Bin 0 -> 426 bytes ...rait-tab-label-background-horizontal-center.png | Bin 0 -> 362 bytes ...rtrait-tab-label-background-horizontal-left.png | Bin 0 -> 505 bytes ...trait-tab-label-background-horizontal-right.png | Bin 0 -> 358 bytes ...-label-background-pressed-horizontal-center.png | Bin 0 -> 367 bytes ...ab-label-background-pressed-horizontal-left.png | Bin 0 -> 502 bytes ...b-label-background-pressed-horizontal-right.png | Bin 0 -> 368 bytes ...label-background-selected-horizontal-center.png | Bin 0 -> 396 bytes ...b-label-background-selected-horizontal-left.png | Bin 0 -> 505 bytes ...-label-background-selected-horizontal-right.png | Bin 0 -> 463 bytes ...rtrait-top-tab-background-horizontal-center.png | Bin 0 -> 303 bytes ...portrait-top-tab-background-horizontal-left.png | Bin 0 -> 428 bytes ...ortrait-top-tab-background-horizontal-right.png | Bin 0 -> 361 bytes ...op-tab-background-pressed-horizontal-center.png | Bin 0 -> 321 bytes ...-top-tab-background-pressed-horizontal-left.png | Bin 0 -> 432 bytes ...top-tab-background-pressed-horizontal-right.png | Bin 0 -> 388 bytes ...p-tab-background-selected-horizontal-center.png | Bin 0 -> 369 bytes ...top-tab-background-selected-horizontal-left.png | Bin 0 -> 445 bytes ...op-tab-background-selected-horizontal-right.png | Bin 0 -> 464 bytes ...-top-tab-label-background-horizontal-center.png | Bin 0 -> 360 bytes ...it-top-tab-label-background-horizontal-left.png | Bin 0 -> 487 bytes ...t-top-tab-label-background-horizontal-right.png | Bin 0 -> 406 bytes ...-label-background-pressed-horizontal-center.png | Bin 0 -> 371 bytes ...ab-label-background-pressed-horizontal-left.png | Bin 0 -> 488 bytes ...b-label-background-pressed-horizontal-right.png | Bin 0 -> 426 bytes ...label-background-selected-horizontal-center.png | Bin 0 -> 396 bytes ...b-label-background-selected-horizontal-left.png | Bin 0 -> 469 bytes ...-label-background-selected-horizontal-right.png | Bin 0 -> 490 bytes ...bar-tab-button-background-horizontal-center.png | Bin 0 -> 304 bytes ...onbar-tab-button-background-horizontal-left.png | Bin 0 -> 1098 bytes ...nbar-tab-button-background-horizontal-right.png | Bin 0 -> 941 bytes ...button-background-pressed-horizontal-center.png | Bin 0 -> 343 bytes ...b-button-background-pressed-horizontal-left.png | Bin 0 -> 1136 bytes ...-button-background-pressed-horizontal-right.png | Bin 0 -> 1152 bytes ...navigationbar-tab-button-background-pressed.png | Bin 0 -> 1744 bytes ...utton-background-selected-horizontal-center.png | Bin 0 -> 359 bytes ...-button-background-selected-horizontal-left.png | Bin 0 -> 861 bytes ...button-background-selected-horizontal-right.png | Bin 0 -> 836 bytes ...avigationbar-tab-button-background-selected.png | Bin 0 -> 1153 bytes ...-button-navigationbar-tab-button-background.png | Bin 0 -> 1564 bytes ...gotouch-button-negative-background-disabled.png | Bin 0 -> 1249 bytes ...egotouch-button-negative-background-pressed.png | Bin 0 -> 1759 bytes .../meegotouch-button-negative-background.png | Bin 0 -> 1291 bytes ...utton-negative-inverted-background-disabled.png | Bin 0 -> 1212 bytes ...button-negative-inverted-background-pressed.png | Bin 0 -> 2036 bytes ...gotouch-button-negative-inverted-background.png | Bin 0 -> 1266 bytes ...ground-background-selected-horizontal-right.png | Bin 0 -> 221 bytes ...-button-objectmenu-background-bottom-center.png | Bin 0 -> 145 bytes ...ch-button-objectmenu-background-bottom-left.png | Bin 0 -> 145 bytes ...h-button-objectmenu-background-bottom-right.png | Bin 0 -> 145 bytes ...ch-button-objectmenu-background-center-left.png | Bin 0 -> 135 bytes ...h-button-objectmenu-background-center-right.png | Bin 0 -> 135 bytes ...gotouch-button-objectmenu-background-center.png | Bin 0 -> 135 bytes ...ton-objectmenu-background-horizontal-center.png | Bin 0 -> 158 bytes ...utton-objectmenu-background-horizontal-left.png | Bin 0 -> 158 bytes ...tton-objectmenu-background-horizontal-right.png | Bin 0 -> 158 bytes ...objectmenu-background-pressed-bottom-center.png | Bin 0 -> 204 bytes ...n-objectmenu-background-pressed-bottom-left.png | Bin 0 -> 204 bytes ...-objectmenu-background-pressed-bottom-right.png | Bin 0 -> 204 bytes ...n-objectmenu-background-pressed-center-left.png | Bin 0 -> 197 bytes ...-objectmenu-background-pressed-center-right.png | Bin 0 -> 197 bytes ...button-objectmenu-background-pressed-center.png | Bin 0 -> 197 bytes ...ctmenu-background-pressed-horizontal-center.png | Bin 0 -> 209 bytes ...jectmenu-background-pressed-horizontal-left.png | Bin 0 -> 209 bytes ...ectmenu-background-pressed-horizontal-right.png | Bin 0 -> 209 bytes ...on-objectmenu-background-pressed-top-center.png | Bin 0 -> 204 bytes ...tton-objectmenu-background-pressed-top-left.png | Bin 0 -> 205 bytes ...ton-objectmenu-background-pressed-top-right.png | Bin 0 -> 204 bytes ...jectmenu-background-pressed-vertical-bottom.png | Bin 0 -> 204 bytes ...jectmenu-background-pressed-vertical-center.png | Bin 0 -> 197 bytes ...-objectmenu-background-pressed-vertical-top.png | Bin 0 -> 204 bytes ...otouch-button-objectmenu-background-pressed.png | Bin 0 -> 209 bytes ...bjectmenu-background-selected-bottom-center.png | Bin 0 -> 221 bytes ...-objectmenu-background-selected-bottom-left.png | Bin 0 -> 221 bytes ...objectmenu-background-selected-bottom-right.png | Bin 0 -> 221 bytes ...-objectmenu-background-selected-center-left.png | Bin 0 -> 221 bytes ...objectmenu-background-selected-center-right.png | Bin 0 -> 221 bytes ...utton-objectmenu-background-selected-center.png | Bin 0 -> 221 bytes ...tmenu-background-selected-horizontal-center.png | Bin 0 -> 221 bytes ...ectmenu-background-selected-horizontal-left.png | Bin 0 -> 221 bytes ...n-objectmenu-background-selected-top-center.png | Bin 0 -> 221 bytes ...ton-objectmenu-background-selected-top-left.png | Bin 0 -> 221 bytes ...on-objectmenu-background-selected-top-right.png | Bin 0 -> 221 bytes ...ectmenu-background-selected-vertical-bottom.png | Bin 0 -> 221 bytes ...ectmenu-background-selected-vertical-center.png | Bin 0 -> 221 bytes ...objectmenu-background-selected-vertical-top.png | Bin 0 -> 221 bytes ...touch-button-objectmenu-background-selected.png | Bin 0 -> 221 bytes ...uch-button-objectmenu-background-top-center.png | Bin 0 -> 141 bytes ...touch-button-objectmenu-background-top-left.png | Bin 0 -> 141 bytes ...ouch-button-objectmenu-background-top-right.png | Bin 0 -> 141 bytes ...utton-objectmenu-background-vertical-bottom.png | Bin 0 -> 157 bytes ...utton-objectmenu-background-vertical-center.png | Bin 0 -> 136 bytes ...h-button-objectmenu-background-vertical-top.png | Bin 0 -> 151 bytes .../meegotouch-button-objectmenu-background.png | Bin 0 -> 146 bytes ...gotouch-button-positive-background-disabled.png | Bin 0 -> 1262 bytes ...egotouch-button-positive-background-pressed.png | Bin 0 -> 1692 bytes .../meegotouch-button-positive-background.png | Bin 0 -> 1328 bytes ...utton-positive-inverted-background-disabled.png | Bin 0 -> 1257 bytes ...button-positive-inverted-background-pressed.png | Bin 0 -> 1763 bytes ...gotouch-button-positive-inverted-background.png | Bin 0 -> 1360 bytes ...ouch-button-radiobutton-background-disabled.png | Bin 0 -> 1641 bytes ...touch-button-radiobutton-background-pressed.png | Bin 0 -> 2182 bytes ...on-radiobutton-background-selected-disabled.png | Bin 0 -> 1948 bytes ...ouch-button-radiobutton-background-selected.png | Bin 0 -> 2090 bytes .../meegotouch-button-radiobutton-background.png | Bin 0 -> 1718 bytes ...on-radiobutton-inverted-background-disabled.png | Bin 0 -> 1317 bytes ...ton-radiobutton-inverted-background-pressed.png | Bin 0 -> 2095 bytes ...utton-inverted-background-selected-disabled.png | Bin 0 -> 1864 bytes ...on-radiobutton-inverted-background-selected.png | Bin 0 -> 2002 bytes ...ouch-button-radiobutton-inverted-background.png | Bin 0 -> 1349 bytes .../images/meegotouch-button-switch-background.png | Bin 0 -> 432 bytes ...meegotouch-button-switch-colorstripe-active.png | Bin 0 -> 201 bytes ...meegotouch-button-switch-colorstripe-normal.png | Bin 0 -> 158 bytes .../images/meegotouch-button-switch-mask.png | Bin 0 -> 453 bytes .../images/meegotouch-button-switch-thumb.png | Bin 0 -> 312 bytes ...ch-callui-dialler-button-background-pressed.png | Bin 0 -> 991 bytes ...meegotouch-callui-dialler-button-background.png | Bin 0 -> 783 bytes ...allui-dialler-ok-button-background-disabled.png | Bin 0 -> 983 bytes ...callui-dialler-ok-button-background-pressed.png | Bin 0 -> 1032 bytes ...gotouch-callui-dialler-ok-button-background.png | Bin 0 -> 997 bytes .../meegotouch-combobox-indicator-inverted.png | Bin 0 -> 223 bytes .../images/meegotouch-combobox-indicator.png | Bin 0 -> 274 bytes .../meegotouch-completer-background-pressed.png | Bin 0 -> 795 bytes .../images/meegotouch-completer-background.png | Bin 0 -> 455 bytes .../images/meegotouch-completer-button-pressed.png | Bin 0 -> 567 bytes .../images/meegotouch-completer-button.png | Bin 0 -> 507 bytes .../images/meegotouch-completer-countbubble.png | Bin 0 -> 457 bytes .../images/meegotouch-contact-card-background.png | Bin 0 -> 345 bytes .../images/meegotouch-contactsui-avatar-frame.png | Bin 0 -> 1736 bytes .../images/meegotouch-contactsui-avatar-mask.png | Bin 0 -> 672 bytes ...gotouch-container-header-divider-background.png | Bin 0 -> 197 bytes ...ontainer-header-divider-inverted-background.png | Bin 0 -> 233 bytes ...-overlay-navigationbar-landscape-background.png | Bin 0 -> 395 bytes ...t-overlay-navigationbar-portrait-background.png | Bin 0 -> 421 bytes .../meegotouch-countbubble-background-large.png | Bin 0 -> 493 bytes .../images/meegotouch-countbubble-background.png | Bin 0 -> 392 bytes ...touch-countbubble-inverted-background-large.png | Bin 0 -> 315 bytes .../meegotouch-countbubble-inverted-background.png | Bin 0 -> 295 bytes .../images/meegotouch-dialog-background.png | Bin 0 -> 140 bytes .../meegotouch-dialog-button-area-background.png | Bin 0 -> 144 bytes .../images/meegotouch-dialog-header-background.png | Bin 0 -> 140 bytes .../images/meegotouch-dialog-query-background.png | Bin 0 -> 129 bytes ...gotouch-dialog-query-button-area-background.png | Bin 0 -> 144 bytes .../images/meegotouch-fastscroll-background.png | Bin 0 -> 258 bytes .../meegotouch-fastscroll-inverted-background.png | Bin 0 -> 247 bytes ...otouch-groupseparator-background-horizontal.png | Bin 0 -> 166 bytes ...groupseparator-header-background-horizontal.png | Bin 0 -> 175 bytes ...rator-header-inverted-background-horizontal.png | Bin 0 -> 123 bytes ...oupseparator-inverted-background-horizontal.png | Bin 0 -> 182 bytes .../meegotouch-home-event-background-pressed.png | Bin 0 -> 392 bytes .../images/meegotouch-home-event-background.png | Bin 0 -> 144 bytes ...gotouch-inverted-pageindicator-page-current.png | Bin 0 -> 145 bytes .../meegotouch-inverted-pageindicator-page.png | Bin 0 -> 160 bytes ...otouch-keyboard-accent-magnifier-background.png | Bin 0 -> 1005 bytes ...ouch-keyboard-accent-magnifier-key-selected.png | Bin 0 -> 726 bytes .../meegotouch-keyboard-accent-magnifier-key.png | Bin 0 -> 332 bytes .../images/meegotouch-keyboard-background.png | Bin 0 -> 254 bytes .../images/meegotouch-keyboard-border-top.png | Bin 0 -> 197 bytes ...ouch-keyboard-function-key-pressed-selected.png | Bin 0 -> 804 bytes .../meegotouch-keyboard-function-key-pressed.png | Bin 0 -> 639 bytes .../meegotouch-keyboard-function-key-selected.png | Bin 0 -> 830 bytes .../images/meegotouch-keyboard-function-key.png | Bin 0 -> 663 bytes .../meegotouch-keyboard-handle-background.png | Bin 0 -> 126 bytes .../meegotouch-keyboard-handle-decoration.png | Bin 0 -> 153 bytes .../meegotouch-keyboard-key-pressed-selected.png | Bin 0 -> 776 bytes .../images/meegotouch-keyboard-key-pressed.png | Bin 0 -> 672 bytes .../images/meegotouch-keyboard-key-selected.png | Bin 0 -> 797 bytes .../meegotouch/images/meegotouch-keyboard-key.png | Bin 0 -> 712 bytes .../meegotouch-keyboard-magnifier-background.png | Bin 0 -> 1101 bytes .../meegotouch-keyboard-magnifier-focuspoint.png | Bin 0 -> 1038 bytes ...egotouch-keyboard-paging-indicator-selected.png | Bin 0 -> 142 bytes .../meegotouch-keyboard-paging-indicator.png | Bin 0 -> 158 bytes ...gotouch-keyboard-toolbar-action-key-pressed.png | Bin 0 -> 776 bytes .../meegotouch-keyboard-toolbar-action-key.png | Bin 0 -> 797 bytes .../meegotouch-keyboard-toolbar-background.png | Bin 0 -> 204 bytes ...ch-keyboard-toolbar-button-pressed-selected.png | Bin 0 -> 750 bytes .../meegotouch-keyboard-toolbar-button-pressed.png | Bin 0 -> 689 bytes ...meegotouch-keyboard-toolbar-button-selected.png | Bin 0 -> 822 bytes .../images/meegotouch-keyboard-toolbar-button.png | Bin 0 -> 712 bytes .../meegotouch-list-background-bottom-center.png | Bin 0 -> 215 bytes .../meegotouch-list-background-bottom-left.png | Bin 0 -> 552 bytes .../meegotouch-list-background-bottom-right.png | Bin 0 -> 556 bytes .../meegotouch-list-background-center-left.png | Bin 0 -> 206 bytes .../meegotouch-list-background-center-right.png | Bin 0 -> 209 bytes .../images/meegotouch-list-background-center.png | Bin 0 -> 178 bytes ...eegotouch-list-background-horizontal-center.png | Bin 0 -> 242 bytes .../meegotouch-list-background-horizontal-left.png | Bin 0 -> 854 bytes ...meegotouch-list-background-horizontal-right.png | Bin 0 -> 891 bytes ...touch-list-background-pressed-bottom-center.png | Bin 0 -> 214 bytes ...gotouch-list-background-pressed-bottom-left.png | Bin 0 -> 551 bytes ...otouch-list-background-pressed-bottom-right.png | Bin 0 -> 547 bytes ...gotouch-list-background-pressed-center-left.png | Bin 0 -> 206 bytes ...otouch-list-background-pressed-center-right.png | Bin 0 -> 209 bytes .../meegotouch-list-background-pressed-center.png | Bin 0 -> 178 bytes ...h-list-background-pressed-horizontal-center.png | Bin 0 -> 245 bytes ...uch-list-background-pressed-horizontal-left.png | Bin 0 -> 855 bytes ...ch-list-background-pressed-horizontal-right.png | Bin 0 -> 877 bytes ...egotouch-list-background-pressed-top-center.png | Bin 0 -> 236 bytes ...meegotouch-list-background-pressed-top-left.png | Bin 0 -> 534 bytes ...eegotouch-list-background-pressed-top-right.png | Bin 0 -> 573 bytes ...uch-list-background-pressed-vertical-bottom.png | Bin 0 -> 849 bytes ...uch-list-background-pressed-vertical-center.png | Bin 0 -> 213 bytes ...otouch-list-background-pressed-vertical-top.png | Bin 0 -> 775 bytes .../images/meegotouch-list-background-pressed.png | Bin 0 -> 1356 bytes ...ouch-list-background-selected-bottom-center.png | Bin 0 -> 264 bytes ...otouch-list-background-selected-bottom-left.png | Bin 0 -> 636 bytes ...touch-list-background-selected-bottom-right.png | Bin 0 -> 597 bytes ...otouch-list-background-selected-center-left.png | Bin 0 -> 263 bytes ...touch-list-background-selected-center-right.png | Bin 0 -> 265 bytes .../meegotouch-list-background-selected-center.png | Bin 0 -> 233 bytes ...-list-background-selected-horizontal-center.png | Bin 0 -> 267 bytes ...ch-list-background-selected-horizontal-left.png | Bin 0 -> 878 bytes ...h-list-background-selected-horizontal-right.png | Bin 0 -> 872 bytes ...gotouch-list-background-selected-top-center.png | Bin 0 -> 260 bytes ...eegotouch-list-background-selected-top-left.png | Bin 0 -> 543 bytes ...egotouch-list-background-selected-top-right.png | Bin 0 -> 568 bytes ...ch-list-background-selected-vertical-bottom.png | Bin 0 -> 914 bytes ...ch-list-background-selected-vertical-center.png | Bin 0 -> 272 bytes ...touch-list-background-selected-vertical-top.png | Bin 0 -> 779 bytes .../images/meegotouch-list-background-selected.png | Bin 0 -> 1378 bytes .../meegotouch-list-background-top-center.png | Bin 0 -> 229 bytes .../images/meegotouch-list-background-top-left.png | Bin 0 -> 544 bytes .../meegotouch-list-background-top-right.png | Bin 0 -> 583 bytes .../meegotouch-list-background-vertical-bottom.png | Bin 0 -> 840 bytes .../meegotouch-list-background-vertical-center.png | Bin 0 -> 213 bytes .../meegotouch-list-background-vertical-top.png | Bin 0 -> 760 bytes .../images/meegotouch-list-background.png | Bin 0 -> 1337 bytes ...uch-list-fullwidth-background-bottom-center.png | Bin 0 -> 204 bytes ...touch-list-fullwidth-background-bottom-left.png | Bin 0 -> 204 bytes ...ouch-list-fullwidth-background-bottom-right.png | Bin 0 -> 138 bytes ...touch-list-fullwidth-background-center-left.png | Bin 0 -> 204 bytes ...ouch-list-fullwidth-background-center-right.png | Bin 0 -> 138 bytes ...meegotouch-list-fullwidth-background-center.png | Bin 0 -> 204 bytes ...list-fullwidth-background-horizontal-center.png | Bin 0 -> 204 bytes ...h-list-fullwidth-background-horizontal-left.png | Bin 0 -> 204 bytes ...-list-fullwidth-background-horizontal-right.png | Bin 0 -> 138 bytes ...-fullwidth-background-pressed-bottom-center.png | Bin 0 -> 206 bytes ...st-fullwidth-background-pressed-bottom-left.png | Bin 0 -> 206 bytes ...t-fullwidth-background-pressed-bottom-right.png | Bin 0 -> 206 bytes ...st-fullwidth-background-pressed-center-left.png | Bin 0 -> 206 bytes ...t-fullwidth-background-pressed-center-right.png | Bin 0 -> 206 bytes ...ch-list-fullwidth-background-pressed-center.png | Bin 0 -> 206 bytes ...lwidth-background-pressed-horizontal-center.png | Bin 0 -> 206 bytes ...ullwidth-background-pressed-horizontal-left.png | Bin 0 -> 206 bytes ...llwidth-background-pressed-horizontal-right.png | Bin 0 -> 206 bytes ...ist-fullwidth-background-pressed-top-center.png | Bin 0 -> 206 bytes ...-list-fullwidth-background-pressed-top-left.png | Bin 0 -> 206 bytes ...list-fullwidth-background-pressed-top-right.png | Bin 0 -> 206 bytes ...ullwidth-background-pressed-vertical-bottom.png | Bin 0 -> 206 bytes ...ullwidth-background-pressed-vertical-center.png | Bin 0 -> 206 bytes ...st-fullwidth-background-pressed-vetical-top.png | Bin 0 -> 206 bytes ...eegotouch-list-fullwidth-background-pressed.png | Bin 0 -> 206 bytes ...fullwidth-background-selected-bottom-center.png | Bin 0 -> 233 bytes ...t-fullwidth-background-selected-bottom-left.png | Bin 0 -> 233 bytes ...-fullwidth-background-selected-bottom-right.png | Bin 0 -> 233 bytes ...t-fullwidth-background-selected-center-left.png | Bin 0 -> 233 bytes ...-fullwidth-background-selected-center-right.png | Bin 0 -> 233 bytes ...h-list-fullwidth-background-selected-center.png | Bin 0 -> 233 bytes ...width-background-selected-horizontal-center.png | Bin 0 -> 233 bytes ...llwidth-background-selected-horizontal-left.png | Bin 0 -> 233 bytes ...lwidth-background-selected-horizontal-right.png | Bin 0 -> 233 bytes ...st-fullwidth-background-selected-top-center.png | Bin 0 -> 233 bytes ...list-fullwidth-background-selected-top-left.png | Bin 0 -> 233 bytes ...ist-fullwidth-background-selected-top-right.png | Bin 0 -> 233 bytes ...llwidth-background-selected-vertical-bottom.png | Bin 0 -> 233 bytes ...llwidth-background-selected-vertical-center.png | Bin 0 -> 233 bytes ...-fullwidth-background-selected-vertical-top.png | Bin 0 -> 233 bytes ...egotouch-list-fullwidth-background-selected.png | Bin 0 -> 235 bytes ...otouch-list-fullwidth-background-top-center.png | Bin 0 -> 204 bytes ...egotouch-list-fullwidth-background-top-left.png | Bin 0 -> 204 bytes ...gotouch-list-fullwidth-background-top-right.png | Bin 0 -> 138 bytes ...h-list-fullwidth-background-vertical-bottom.png | Bin 0 -> 138 bytes ...h-list-fullwidth-background-vertical-center.png | Bin 0 -> 138 bytes ...ouch-list-fullwidth-background-vertical-top.png | Bin 0 -> 138 bytes .../meegotouch-list-fullwidth-background.png | Bin 0 -> 138 bytes ...fullwidth-inverted-background-bottom-center.png | Bin 0 -> 203 bytes ...t-fullwidth-inverted-background-bottom-left.png | Bin 0 -> 206 bytes ...-fullwidth-inverted-background-bottom-right.png | Bin 0 -> 138 bytes ...t-fullwidth-inverted-background-center-left.png | Bin 0 -> 203 bytes ...-fullwidth-inverted-background-center-right.png | Bin 0 -> 138 bytes ...h-list-fullwidth-inverted-background-center.png | Bin 0 -> 201 bytes ...width-inverted-background-horizontal-center.png | Bin 0 -> 206 bytes ...llwidth-inverted-background-horizontal-left.png | Bin 0 -> 203 bytes ...lwidth-inverted-background-horizontal-right.png | Bin 0 -> 138 bytes ...h-inverted-background-pressed-bottom-center.png | Bin 0 -> 203 bytes ...dth-inverted-background-pressed-bottom-left.png | Bin 0 -> 203 bytes ...th-inverted-background-pressed-bottom-right.png | Bin 0 -> 203 bytes ...dth-inverted-background-pressed-center-left.png | Bin 0 -> 203 bytes ...th-inverted-background-pressed-center-right.png | Bin 0 -> 203 bytes ...ullwidth-inverted-background-pressed-center.png | Bin 0 -> 203 bytes ...verted-background-pressed-horizontal-center.png | Bin 0 -> 203 bytes ...inverted-background-pressed-horizontal-left.png | Bin 0 -> 203 bytes ...nverted-background-pressed-horizontal-right.png | Bin 0 -> 203 bytes ...idth-inverted-background-pressed-top-center.png | Bin 0 -> 203 bytes ...lwidth-inverted-background-pressed-top-left.png | Bin 0 -> 203 bytes ...width-inverted-background-pressed-top-right.png | Bin 0 -> 203 bytes ...inverted-background-pressed-vertical-bottom.png | Bin 0 -> 202 bytes ...inverted-background-pressed-vertical-center.png | Bin 0 -> 203 bytes ...dth-inverted-background-pressed-vetical-top.png | Bin 0 -> 203 bytes ...-list-fullwidth-inverted-background-pressed.png | Bin 0 -> 203 bytes ...-inverted-background-selected-bottom-center.png | Bin 0 -> 233 bytes ...th-inverted-background-selected-bottom-left.png | Bin 0 -> 233 bytes ...h-inverted-background-selected-bottom-right.png | Bin 0 -> 233 bytes ...th-inverted-background-selected-center-left.png | Bin 0 -> 233 bytes ...h-inverted-background-selected-center-right.png | Bin 0 -> 233 bytes ...llwidth-inverted-background-selected-center.png | Bin 0 -> 233 bytes ...erted-background-selected-horizontal-center.png | Bin 0 -> 233 bytes ...nverted-background-selected-horizontal-left.png | Bin 0 -> 233 bytes ...verted-background-selected-horizontal-right.png | Bin 0 -> 233 bytes ...dth-inverted-background-selected-top-center.png | Bin 0 -> 233 bytes ...width-inverted-background-selected-top-left.png | Bin 0 -> 233 bytes ...idth-inverted-background-selected-top-right.png | Bin 0 -> 233 bytes ...nverted-background-selected-vertical-bottom.png | Bin 0 -> 233 bytes ...nverted-background-selected-vertical-center.png | Bin 0 -> 233 bytes ...h-inverted-background-selected-vertical-top.png | Bin 0 -> 233 bytes ...list-fullwidth-inverted-background-selected.png | Bin 0 -> 233 bytes ...st-fullwidth-inverted-background-top-center.png | Bin 0 -> 203 bytes ...list-fullwidth-inverted-background-top-left.png | Bin 0 -> 203 bytes ...ist-fullwidth-inverted-background-top-right.png | Bin 0 -> 138 bytes ...llwidth-inverted-background-vertical-bottom.png | Bin 0 -> 138 bytes ...llwidth-inverted-background-vertical-center.png | Bin 0 -> 199 bytes ...-fullwidth-inverted-background-vertical-top.png | Bin 0 -> 138 bytes ...egotouch-list-fullwidth-inverted-background.png | Bin 0 -> 138 bytes .../images/meegotouch-list-header-background.png | Bin 0 -> 163 bytes .../meegotouch-list-header-inverted-background.png | Bin 0 -> 161 bytes ...ouch-list-inverted-background-bottom-center.png | Bin 0 -> 207 bytes ...otouch-list-inverted-background-bottom-left.png | Bin 0 -> 513 bytes ...touch-list-inverted-background-bottom-right.png | Bin 0 -> 502 bytes ...otouch-list-inverted-background-center-left.png | Bin 0 -> 206 bytes ...touch-list-inverted-background-center-right.png | Bin 0 -> 209 bytes .../meegotouch-list-inverted-background-center.png | Bin 0 -> 178 bytes ...-list-inverted-background-horizontal-center.png | Bin 0 -> 254 bytes ...ch-list-inverted-background-horizontal-left.png | Bin 0 -> 858 bytes ...h-list-inverted-background-horizontal-right.png | Bin 0 -> 941 bytes ...t-inverted-background-pressed-bottom-center.png | Bin 0 -> 262 bytes ...ist-inverted-background-pressed-bottom-left.png | Bin 0 -> 603 bytes ...st-inverted-background-pressed-bottom-right.png | Bin 0 -> 583 bytes ...ist-inverted-background-pressed-center-left.png | Bin 0 -> 256 bytes ...st-inverted-background-pressed-center-right.png | Bin 0 -> 260 bytes ...uch-list-inverted-background-pressed-center.png | Bin 0 -> 226 bytes ...verted-background-pressed-horizontal-center.png | Bin 0 -> 267 bytes ...inverted-background-pressed-horizontal-left.png | Bin 0 -> 860 bytes ...nverted-background-pressed-horizontal-right.png | Bin 0 -> 855 bytes ...list-inverted-background-pressed-top-center.png | Bin 0 -> 261 bytes ...h-list-inverted-background-pressed-top-left.png | Bin 0 -> 535 bytes ...-list-inverted-background-pressed-top-right.png | Bin 0 -> 553 bytes ...inverted-background-pressed-vertical-bottom.png | Bin 0 -> 868 bytes ...inverted-background-pressed-vertical-center.png | Bin 0 -> 266 bytes ...st-inverted-background-pressed-vertical-top.png | Bin 0 -> 768 bytes ...meegotouch-list-inverted-background-pressed.png | Bin 0 -> 1325 bytes ...-inverted-background-selected-bottom-center.png | Bin 0 -> 264 bytes ...st-inverted-background-selected-bottom-left.png | Bin 0 -> 636 bytes ...t-inverted-background-selected-bottom-right.png | Bin 0 -> 597 bytes ...st-inverted-background-selected-center-left.png | Bin 0 -> 263 bytes ...t-inverted-background-selected-center-right.png | Bin 0 -> 265 bytes ...ch-list-inverted-background-selected-center.png | Bin 0 -> 233 bytes ...erted-background-selected-horizontal-center.png | Bin 0 -> 267 bytes ...nverted-background-selected-horizontal-left.png | Bin 0 -> 878 bytes ...verted-background-selected-horizontal-right.png | Bin 0 -> 872 bytes ...ist-inverted-background-selected-top-center.png | Bin 0 -> 260 bytes ...-list-inverted-background-selected-top-left.png | Bin 0 -> 543 bytes ...list-inverted-background-selected-top-right.png | Bin 0 -> 565 bytes ...nverted-background-selected-vertical-bottom.png | Bin 0 -> 914 bytes ...nverted-background-selected-vertical-center.png | Bin 0 -> 272 bytes ...t-inverted-background-selected-vertical-top.png | Bin 0 -> 779 bytes ...eegotouch-list-inverted-background-selected.png | Bin 0 -> 1378 bytes ...gotouch-list-inverted-background-top-center.png | Bin 0 -> 249 bytes ...eegotouch-list-inverted-background-top-left.png | Bin 0 -> 594 bytes ...egotouch-list-inverted-background-top-right.png | Bin 0 -> 673 bytes ...ch-list-inverted-background-vertical-bottom.png | Bin 0 -> 718 bytes ...ch-list-inverted-background-vertical-center.png | Bin 0 -> 212 bytes ...touch-list-inverted-background-vertical-top.png | Bin 0 -> 920 bytes .../images/meegotouch-list-inverted-background.png | Bin 0 -> 1389 bytes .../meegotouch-live-filter-bar-background.png | Bin 0 -> 176 bytes ...gotouch-live-filter-bar-inverted-background.png | Bin 0 -> 176 bytes .../images/meegotouch-lockscreen-alarmhint.png | Bin 0 -> 117 bytes .../images/meegotouch-lockscreen-bottom.png | Bin 0 -> 324 bytes .../images/meegotouch-lockscreen-callhint.png | Bin 0 -> 117 bytes .../images/meegotouch-lockscreen-slidehint.png | Bin 0 -> 192 bytes .../images/meegotouch-lockscreen-top.png | Bin 0 -> 796 bytes ...meegotouch-messaging-bubble-info-background.png | Bin 0 -> 287 bytes ...ch-messaging-bubble-service-icon-background.png | Bin 0 -> 398 bytes ...touch-messaging-bubble-timestamp-background.png | Bin 0 -> 402 bytes ...saging-conversation-bubble-incoming1-normal.png | Bin 0 -> 1206 bytes ...aging-conversation-bubble-incoming1-pressed.png | Bin 0 -> 1187 bytes ...saging-conversation-bubble-incoming2-normal.png | Bin 0 -> 1186 bytes ...aging-conversation-bubble-incoming2-pressed.png | Bin 0 -> 1201 bytes ...saging-conversation-bubble-incoming3-normal.png | Bin 0 -> 1178 bytes ...aging-conversation-bubble-incoming3-pressed.png | Bin 0 -> 1208 bytes ...saging-conversation-bubble-incoming4-normal.png | Bin 0 -> 1187 bytes ...aging-conversation-bubble-incoming4-pressed.png | Bin 0 -> 1173 bytes ...saging-conversation-bubble-outgoing1-normal.png | Bin 0 -> 1015 bytes ...aging-conversation-bubble-outgoing1-pressed.png | Bin 0 -> 1067 bytes ...saging-conversation-bubble-outgoing2-normal.png | Bin 0 -> 988 bytes ...aging-conversation-bubble-outgoing2-pressed.png | Bin 0 -> 885 bytes ...saging-conversation-bubble-outgoing3-normal.png | Bin 0 -> 1049 bytes ...aging-conversation-bubble-outgoing3-pressed.png | Bin 0 -> 1036 bytes .../meegotouch-messaging-header-large-floating.png | Bin 0 -> 506 bytes .../meegotouch-messaging-header-large-list.png | Bin 0 -> 505 bytes .../meegotouch-messaging-header-small-floating.png | Bin 0 -> 364 bytes .../meegotouch-messaging-header-small-list.png | Bin 0 -> 465 bytes .../meegotouch-messaging-header-xlarge-list.png | Bin 0 -> 681 bytes .../meegotouch-messaging-list-bubble-read.png | Bin 0 -> 915 bytes .../meegotouch-messaging-list-bubble-unread.png | Bin 0 -> 992 bytes ...messaging-recipient-bubble-ambiguous-normal.png | Bin 0 -> 515 bytes ...essaging-recipient-bubble-ambiguous-pressed.png | Bin 0 -> 539 bytes ...-messaging-recipient-bubble-resolved-normal.png | Bin 0 -> 522 bytes ...messaging-recipient-bubble-resolved-pressed.png | Bin 0 -> 537 bytes ...h-messaging-recipient-bubble-unknown-normal.png | Bin 0 -> 466 bytes ...-messaging-recipient-bubble-unknown-pressed.png | Bin 0 -> 500 bytes ...essaging-recipient-bubble-unresolved-normal.png | Bin 0 -> 505 bytes ...ssaging-recipient-bubble-unresolved-pressed.png | Bin 0 -> 519 bytes ...egotouch-messagingui-contactcard-background.png | Bin 0 -> 522 bytes ...egotouch-navigationbar-landscape-background.png | Bin 0 -> 447 bytes ...eegotouch-navigationbar-portrait-background.png | Bin 0 -> 479 bytes ...gotouch-navigationbar-statusarea-background.png | Bin 0 -> 148 bytes ...gotouch-navigationbar-statusarea-dropshadow.png | Bin 0 -> 150 bytes ...eegotouch-navigationbar-viewmenu-background.png | Bin 0 -> 146 bytes ...touch-new-items-counter-background-combined.png | Bin 0 -> 342 bytes ...otouch-new-items-counter-background-regular.png | Bin 0 -> 323 bytes ...touch-notification-event-background-pressed.png | Bin 0 -> 480 bytes .../meegotouch-notification-event-background.png | Bin 0 -> 494 bytes ...notification-information-background-pressed.png | Bin 0 -> 480 bytes ...gotouch-notification-information-background.png | Bin 0 -> 494 bytes ...egotouch-notification-lockscreen-background.png | Bin 0 -> 530 bytes .../meegotouch-notification-system-background.png | Bin 0 -> 494 bytes .../meegotouch-pageindicator-page-current.png | Bin 0 -> 161 bytes .../images/meegotouch-pageindicator-page.png | Bin 0 -> 164 bytes .../images/meegotouch-panel-background-pressed.png | Bin 0 -> 200 bytes .../meegotouch-panel-background-selected.png | Bin 0 -> 221 bytes .../images/meegotouch-panel-background.png | Bin 0 -> 135 bytes ...eegotouch-panel-inverted-background-pressed.png | Bin 0 -> 196 bytes ...egotouch-panel-inverted-background-selected.png | Bin 0 -> 221 bytes .../meegotouch-panel-inverted-background.png | Bin 0 -> 135 bytes .../meegotouch-pin-button-background-pressed.png | Bin 0 -> 997 bytes .../images/meegotouch-pin-button-background.png | Bin 0 -> 783 bytes ...uch-positionindicator-background-horizontal.png | Bin 0 -> 110 bytes .../meegotouch-positionindicator-background.png | Bin 0 -> 113 bytes ...ouch-positionindicator-indicator-horizontal.png | Bin 0 -> 178 bytes .../meegotouch-positionindicator-indicator.png | Bin 0 -> 174 bytes ...ionindicator-inverted-background-horizontal.png | Bin 0 -> 110 bytes ...touch-positionindicator-inverted-background.png | Bin 0 -> 110 bytes ...tionindicator-inverted-indicator-horizontal.png | Bin 0 -> 163 bytes ...otouch-positionindicator-inverted-indicator.png | Bin 0 -> 162 bytes ...meegotouch-progressindicator-bar-background.png | Bin 0 -> 437 bytes ...gotouch-progressindicator-bar-known-texture.png | Bin 0 -> 157 bytes .../meegotouch-progressindicator-bar-mask.png | Bin 0 -> 226 bytes ...touch-progressindicator-bar-unknown-texture.png | Bin 0 -> 314 bytes ...h-progressindicator-inverted-bar-background.png | Bin 0 -> 324 bytes ...rogressindicator-inverted-bar-known-texture.png | Bin 0 -> 159 bytes ...gotouch-progressindicator-inverted-bar-mask.png | Bin 0 -> 181 bytes ...gressindicator-inverted-bar-unknown-texture.png | Bin 0 -> 332 bytes ...rogressindicator-inverted-spinner-large-off.png | Bin 0 -> 311 bytes ...progressindicator-inverted-spinner-large-on.png | Bin 0 -> 513 bytes ...ogressindicator-inverted-spinner-medium-off.png | Bin 0 -> 240 bytes ...rogressindicator-inverted-spinner-medium-on.png | Bin 0 -> 345 bytes ...rogressindicator-inverted-spinner-small-off.png | Bin 0 -> 207 bytes ...progressindicator-inverted-spinner-small-on.png | Bin 0 -> 282 bytes ...ogressindicator-spinner-background-inverted.png | Bin 0 -> 898 bytes ...otouch-progressindicator-spinner-background.png | Bin 0 -> 1033 bytes ...ndicator-spinner-hollow-background-inverted.png | Bin 0 -> 1629 bytes ...or-spinner-hollow-background-small-inverted.png | Bin 0 -> 1033 bytes ...ssindicator-spinner-hollow-background-small.png | Bin 0 -> 768 bytes ...progressindicator-spinner-hollow-background.png | Bin 0 -> 1280 bytes ...sindicator-spinner-hollow-progress-inverted.png | Bin 0 -> 1063 bytes ...ator-spinner-hollow-progress-small-inverted.png | Bin 0 -> 594 bytes ...ressindicator-spinner-hollow-progress-small.png | Bin 0 -> 556 bytes ...h-progressindicator-spinner-hollow-progress.png | Bin 0 -> 902 bytes ...gotouch-progressindicator-spinner-large-off.png | Bin 0 -> 352 bytes ...egotouch-progressindicator-spinner-large-on.png | Bin 0 -> 526 bytes ...otouch-progressindicator-spinner-medium-off.png | Bin 0 -> 266 bytes ...gotouch-progressindicator-spinner-medium-on.png | Bin 0 -> 331 bytes ...progressindicator-spinner-progress-inverted.png | Bin 0 -> 647 bytes ...egotouch-progressindicator-spinner-progress.png | Bin 0 -> 753 bytes ...gotouch-progressindicator-spinner-small-off.png | Bin 0 -> 250 bytes ...egotouch-progressindicator-spinner-small-on.png | Bin 0 -> 287 bytes .../meegotouch-scroll-bubble-arrow-inverted.png | Bin 0 -> 171 bytes .../images/meegotouch-scroll-bubble-arrow.png | Bin 0 -> 158 bytes ...eegotouch-scroll-bubble-background-inverted.png | Bin 0 -> 313 bytes .../images/meegotouch-scroll-bubble-background.png | Bin 0 -> 315 bytes .../meegotouch-scroll-bubble-divider-inverted.png | Bin 0 -> 115 bytes .../images/meegotouch-scroll-bubble-divider.png | Bin 0 -> 122 bytes .../meegotouch-seattle-magnifier-frame-mask.png | Bin 0 -> 1298 bytes .../images/meegotouch-seattle-magnifier-frame.png | Bin 0 -> 5211 bytes ...gotouch-seeker-handle-background-horizontal.png | Bin 0 -> 160 bytes ...eegotouch-seeker-handle-background-vertical.png | Bin 0 -> 165 bytes ...eeker-handle-inverted-background-horizontal.png | Bin 0 -> 171 bytes ...-seeker-handle-inverted-background-vertical.png | Bin 0 -> 165 bytes .../meegotouch-separator-background-horizontal.png | Bin 0 -> 112 bytes .../meegotouch-separator-background-vertical.png | Bin 0 -> 115 bytes ...ch-separator-inverted-background-horizontal.png | Bin 0 -> 113 bytes ...ouch-separator-inverted-background-vertical.png | Bin 0 -> 115 bytes .../meegotouch-slider-background-horizontal.png | Bin 0 -> 437 bytes .../meegotouch-slider-background-vertical.png | Bin 0 -> 410 bytes ...otouch-slider-elapsed-background-horizontal.png | Bin 0 -> 330 bytes ...egotouch-slider-elapsed-background-vertical.png | Bin 0 -> 327 bytes ...ider-elapsed-inverted-background-horizontal.png | Bin 0 -> 353 bytes ...slider-elapsed-inverted-background-vertical.png | Bin 0 -> 359 bytes ...gotouch-slider-handle-background-horizontal.png | Bin 0 -> 1171 bytes ...slider-handle-background-pressed-horizontal.png | Bin 0 -> 1371 bytes ...h-slider-handle-background-pressed-vertical.png | Bin 0 -> 1371 bytes ...eegotouch-slider-handle-background-vertical.png | Bin 0 -> 1171 bytes ...lider-handle-inverted-background-horizontal.png | Bin 0 -> 1161 bytes ...ndle-inverted-background-pressed-horizontal.png | Bin 0 -> 1421 bytes ...handle-inverted-background-pressed-vertical.png | Bin 0 -> 1421 bytes ...-slider-handle-inverted-background-vertical.png | Bin 0 -> 1161 bytes ...uch-slider-handle-label-arrow-down-inverted.png | Bin 0 -> 153 bytes .../meegotouch-slider-handle-label-arrow-down.png | Bin 0 -> 175 bytes ...uch-slider-handle-label-arrow-left-inverted.png | Bin 0 -> 141 bytes .../meegotouch-slider-handle-label-arrow-left.png | Bin 0 -> 157 bytes ...ch-slider-handle-label-arrow-right-inverted.png | Bin 0 -> 140 bytes .../meegotouch-slider-handle-label-arrow-right.png | Bin 0 -> 156 bytes ...touch-slider-handle-label-arrow-up-inverted.png | Bin 0 -> 142 bytes .../meegotouch-slider-handle-label-arrow-up.png | Bin 0 -> 160 bytes .../meegotouch-slider-handle-value-background.png | Bin 0 -> 403 bytes ...uch-slider-handle-value-inverted-background.png | Bin 0 -> 313 bytes ...touch-slider-inverted-background-horizontal.png | Bin 0 -> 318 bytes ...gotouch-slider-inverted-background-vertical.png | Bin 0 -> 436 bytes ...touch-slider-received-background-horizontal.png | Bin 0 -> 330 bytes ...gotouch-slider-received-background-vertical.png | Bin 0 -> 327 bytes ...der-received-inverted-background-horizontal.png | Bin 0 -> 353 bytes ...lider-received-inverted-background-vertical.png | Bin 0 -> 359 bytes .../meegotouch-startup-landscape-background.png | Bin 0 -> 12187 bytes .../meegotouch-startup-portrait-background.png | Bin 0 -> 11145 bytes .../images/meegotouch-switch-off-inverted.png | Bin 0 -> 1135 bytes .../meegotouch/images/meegotouch-switch-off.png | Bin 0 -> 1315 bytes .../images/meegotouch-switch-on-inverted.png | Bin 0 -> 1467 bytes .../meegotouch/images/meegotouch-switch-on.png | Bin 0 -> 1498 bytes .../images/meegotouch-switch-shadow-inverted.png | Bin 0 -> 475 bytes .../meegotouch/images/meegotouch-switch-shadow.png | Bin 0 -> 481 bytes .../meegotouch-switch-thumb-disabled-inverted.png | Bin 0 -> 322 bytes .../images/meegotouch-switch-thumb-disabled.png | Bin 0 -> 346 bytes .../images/meegotouch-switch-thumb-inverted.png | Bin 0 -> 312 bytes .../meegotouch-switch-thumb-pressed-inverted.png | Bin 0 -> 430 bytes .../images/meegotouch-switch-thumb-pressed.png | Bin 0 -> 461 bytes .../meegotouch/images/meegotouch-switch-thumb.png | Bin 0 -> 312 bytes .../base/meegotouch/images/meegotouch-tap.png | Bin 0 -> 628 bytes .../images/meegotouch-text-frame-background.png | Bin 0 -> 362 bytes .../meegotouch-text-frame-inverted-background.png | Bin 0 -> 379 bytes ...ackground-disabled-selected-horizontal-left.png | Bin 0 -> 745 bytes .../meegotouch-textedit-background-disabled.png | Bin 0 -> 1250 bytes .../meegotouch-textedit-background-error.png | Bin 0 -> 1721 bytes ...gotouch-textedit-background-horizontal-left.png | Bin 0 -> 758 bytes ...extedit-background-selected-horizontal-left.png | Bin 0 -> 769 bytes .../meegotouch-textedit-background-selected.png | Bin 0 -> 1707 bytes .../images/meegotouch-textedit-background.png | Bin 0 -> 1278 bytes ...button-background-disabled-horizontal-right.png | Bin 0 -> 765 bytes ...textedit-button-background-horizontal-right.png | Bin 0 -> 811 bytes ...-button-background-pressed-horizontal-right.png | Bin 0 -> 797 bytes ...egotouch-textedit-button-background-pressed.png | Bin 0 -> 1194 bytes ...gotouch-textedit-button-background-selected.png | Bin 0 -> 1215 bytes .../meegotouch-textedit-button-background.png | Bin 0 -> 1021 bytes ...verted-background-disabled-horizontal-right.png | Bin 0 -> 765 bytes ...button-inverted-background-horizontal-right.png | Bin 0 -> 811 bytes ...nverted-background-pressed-horizontal-right.png | Bin 0 -> 787 bytes ...textedit-button-inverted-background-pressed.png | Bin 0 -> 1130 bytes ...extedit-button-inverted-background-selected.png | Bin 0 -> 1114 bytes ...gotouch-textedit-button-inverted-background.png | Bin 0 -> 1188 bytes ...ackground-disabled-selected-horizontal-left.png | Bin 0 -> 764 bytes ...touch-textedit-inverted-background-disabled.png | Bin 0 -> 1250 bytes ...egotouch-textedit-inverted-background-error.png | Bin 0 -> 1721 bytes ...extedit-inverted-background-horizontal-left.png | Bin 0 -> 758 bytes ...nverted-background-selected-horizontal-left.png | Bin 0 -> 761 bytes ...touch-textedit-inverted-background-selected.png | Bin 0 -> 1707 bytes .../meegotouch-textedit-inverted-background.png | Bin 0 -> 1278 bytes .../images/meegotouch-theme-preview-landscape.jpg | Bin 0 -> 28674 bytes .../images/meegotouch-theme-preview-portrait.jpg | Bin 0 -> 37660 bytes .../meegotouch-toolbar-landscape-background.png | Bin 0 -> 175 bytes ...touch-toolbar-landscape-inverted-background.png | Bin 0 -> 175 bytes .../meegotouch-toolbar-portrait-background.png | Bin 0 -> 186 bytes ...otouch-toolbar-portrait-inverted-background.png | Bin 0 -> 186 bytes .../meegotouch-unread-panel-background-pressed.png | Bin 0 -> 212 bytes ...meegotouch-unread-panel-background-selected.png | Bin 0 -> 296 bytes .../images/meegotouch-unread-panel-background.png | Bin 0 -> 212 bytes ...ch-unread-panel-inverted-background-pressed.png | Bin 0 -> 212 bytes ...h-unread-panel-inverted-background-selected.png | Bin 0 -> 296 bytes ...meegotouch-unread-panel-inverted-background.png | Bin 0 -> 212 bytes .../meegotouch-view-header-colored-inverted.png | Bin 0 -> 524 bytes .../images/meegotouch-view-header-colored.png | Bin 0 -> 522 bytes .../meegotouch-view-header-interactive-pressed.png | Bin 0 -> 523 bytes .../images/meegotouch-view-header-interactive.png | Bin 0 -> 508 bytes ...ch-view-header-inverted-interactive-pressed.png | Bin 0 -> 555 bytes ...meegotouch-view-header-inverted-interactive.png | Bin 0 -> 522 bytes .../images/meegotouch-view-header-inverted.png | Bin 0 -> 469 bytes .../images/meegotouch-view-header-overlay.png | Bin 0 -> 162 bytes .../meegotouch/images/meegotouch-view-header.png | Bin 0 -> 450 bytes ...eegotouch-viewmenu-background-bottom-center.png | Bin 0 -> 145 bytes .../meegotouch-viewmenu-background-bottom-left.png | Bin 0 -> 145 bytes ...meegotouch-viewmenu-background-bottom-right.png | Bin 0 -> 145 bytes .../meegotouch-viewmenu-background-center-left.png | Bin 0 -> 135 bytes ...meegotouch-viewmenu-background-center-right.png | Bin 0 -> 135 bytes .../meegotouch-viewmenu-background-center.png | Bin 0 -> 135 bytes ...touch-viewmenu-background-horizontal-center.png | Bin 0 -> 146 bytes ...gotouch-viewmenu-background-horizontal-left.png | Bin 0 -> 146 bytes ...otouch-viewmenu-background-horizontal-right.png | Bin 0 -> 146 bytes ...h-viewmenu-background-pressed-bottom-center.png | Bin 0 -> 204 bytes ...uch-viewmenu-background-pressed-bottom-left.png | Bin 0 -> 204 bytes ...ch-viewmenu-background-pressed-bottom-right.png | Bin 0 -> 204 bytes ...uch-viewmenu-background-pressed-center-left.png | Bin 0 -> 197 bytes ...ch-viewmenu-background-pressed-center-right.png | Bin 0 -> 197 bytes ...egotouch-viewmenu-background-pressed-center.png | Bin 0 -> 197 bytes ...ewmenu-background-pressed-horizontal-center.png | Bin 0 -> 209 bytes ...viewmenu-background-pressed-horizontal-left.png | Bin 0 -> 209 bytes ...iewmenu-background-pressed-horizontal-right.png | Bin 0 -> 209 bytes ...ouch-viewmenu-background-pressed-top-center.png | Bin 0 -> 204 bytes ...otouch-viewmenu-background-pressed-top-left.png | Bin 0 -> 204 bytes ...touch-viewmenu-background-pressed-top-right.png | Bin 0 -> 204 bytes ...viewmenu-background-pressed-vertical-bottom.png | Bin 0 -> 204 bytes ...viewmenu-background-pressed-vertical-center.png | Bin 0 -> 197 bytes ...ch-viewmenu-background-pressed-vertical-top.png | Bin 0 -> 204 bytes .../meegotouch-viewmenu-background-pressed.png | Bin 0 -> 204 bytes .../meegotouch-viewmenu-background-top-center.png | Bin 0 -> 141 bytes .../meegotouch-viewmenu-background-top-left.png | Bin 0 -> 141 bytes .../meegotouch-viewmenu-background-top-right.png | Bin 0 -> 141 bytes ...gotouch-viewmenu-background-vertical-bottom.png | Bin 0 -> 145 bytes ...gotouch-viewmenu-background-vertical-center.png | Bin 0 -> 135 bytes ...meegotouch-viewmenu-background-vertical-top.png | Bin 0 -> 141 bytes .../images/meegotouch-viewmenu-background.png | Bin 0 -> 145 bytes .../images/meegotouch-viewmenu-border.png | Bin 0 -> 112 bytes .../images/meegotouch-wallpaper-landscape.jpg | Bin 0 -> 228035 bytes .../images/meegotouch-wallpaper-portrait.jpg | Bin 0 -> 226220 bytes .../meegotouch-window-background-forcex11.jpg | Bin 0 -> 128437 bytes .../images/meegotouch-wordtracker-background.png | Bin 0 -> 488 bytes .../images/meegotouch-wordtracker-item-pressed.png | Bin 0 -> 467 bytes .../images/meegotouch-wordtracker-pointer.png | Bin 0 -> 251 bytes .../images/meegotouch-wordtracker-selection.png | Bin 0 -> 468 bytes .../meegotouch/images/meegoui-volume-level.png | Bin 0 -> 412 bytes .../base/meegotouch/images/meegoui-volume-mute.png | Bin 0 -> 509 bytes .../themes/base/meegotouch/images/spinner_24_1.png | Bin 0 -> 433 bytes .../base/meegotouch/images/spinner_24_10.png | Bin 0 -> 447 bytes .../themes/base/meegotouch/images/spinner_24_2.png | Bin 0 -> 418 bytes .../themes/base/meegotouch/images/spinner_24_3.png | Bin 0 -> 414 bytes .../themes/base/meegotouch/images/spinner_24_4.png | Bin 0 -> 434 bytes .../themes/base/meegotouch/images/spinner_24_5.png | Bin 0 -> 433 bytes .../themes/base/meegotouch/images/spinner_24_6.png | Bin 0 -> 425 bytes .../themes/base/meegotouch/images/spinner_24_7.png | Bin 0 -> 408 bytes .../themes/base/meegotouch/images/spinner_24_8.png | Bin 0 -> 427 bytes .../themes/base/meegotouch/images/spinner_24_9.png | Bin 0 -> 446 bytes .../themes/base/meegotouch/images/spinner_32_1.png | Bin 0 -> 3361 bytes .../base/meegotouch/images/spinner_32_10.png | Bin 0 -> 3391 bytes .../themes/base/meegotouch/images/spinner_32_2.png | Bin 0 -> 3380 bytes .../themes/base/meegotouch/images/spinner_32_3.png | Bin 0 -> 3362 bytes .../themes/base/meegotouch/images/spinner_32_4.png | Bin 0 -> 3367 bytes .../themes/base/meegotouch/images/spinner_32_5.png | Bin 0 -> 3358 bytes .../themes/base/meegotouch/images/spinner_32_6.png | Bin 0 -> 3352 bytes .../themes/base/meegotouch/images/spinner_32_7.png | Bin 0 -> 3383 bytes .../themes/base/meegotouch/images/spinner_32_8.png | Bin 0 -> 3370 bytes .../themes/base/meegotouch/images/spinner_32_9.png | Bin 0 -> 3371 bytes .../themes/base/meegotouch/images/spinner_96_1.png | Bin 0 -> 4991 bytes .../base/meegotouch/images/spinner_96_10.png | Bin 0 -> 4939 bytes .../themes/base/meegotouch/images/spinner_96_2.png | Bin 0 -> 4962 bytes .../themes/base/meegotouch/images/spinner_96_3.png | Bin 0 -> 4972 bytes .../themes/base/meegotouch/images/spinner_96_4.png | Bin 0 -> 4948 bytes .../themes/base/meegotouch/images/spinner_96_5.png | Bin 0 -> 4913 bytes .../themes/base/meegotouch/images/spinner_96_6.png | Bin 0 -> 4974 bytes .../themes/base/meegotouch/images/spinner_96_7.png | Bin 0 -> 4973 bytes .../themes/base/meegotouch/images/spinner_96_8.png | Bin 0 -> 5004 bytes .../themes/base/meegotouch/images/spinner_96_9.png | Bin 0 -> 4961 bytes .../meegotouch/images/spinnerinverted_24_1.png | Bin 0 -> 447 bytes .../meegotouch/images/spinnerinverted_24_10.png | Bin 0 -> 464 bytes .../meegotouch/images/spinnerinverted_24_2.png | Bin 0 -> 422 bytes .../meegotouch/images/spinnerinverted_24_3.png | Bin 0 -> 423 bytes .../meegotouch/images/spinnerinverted_24_4.png | Bin 0 -> 447 bytes .../meegotouch/images/spinnerinverted_24_5.png | Bin 0 -> 453 bytes .../meegotouch/images/spinnerinverted_24_6.png | Bin 0 -> 442 bytes .../meegotouch/images/spinnerinverted_24_7.png | Bin 0 -> 419 bytes .../meegotouch/images/spinnerinverted_24_8.png | Bin 0 -> 438 bytes .../meegotouch/images/spinnerinverted_24_9.png | Bin 0 -> 464 bytes .../meegotouch/images/spinnerinverted_32_1.png | Bin 0 -> 3360 bytes .../meegotouch/images/spinnerinverted_32_10.png | Bin 0 -> 3399 bytes .../meegotouch/images/spinnerinverted_32_2.png | Bin 0 -> 3357 bytes .../meegotouch/images/spinnerinverted_32_3.png | Bin 0 -> 3356 bytes .../meegotouch/images/spinnerinverted_32_4.png | Bin 0 -> 3360 bytes .../meegotouch/images/spinnerinverted_32_5.png | Bin 0 -> 3356 bytes .../meegotouch/images/spinnerinverted_32_6.png | Bin 0 -> 3345 bytes .../meegotouch/images/spinnerinverted_32_7.png | Bin 0 -> 3375 bytes .../meegotouch/images/spinnerinverted_32_8.png | Bin 0 -> 3384 bytes .../meegotouch/images/spinnerinverted_32_9.png | Bin 0 -> 3370 bytes .../meegotouch/images/spinnerinverted_96_1.png | Bin 0 -> 4956 bytes .../meegotouch/images/spinnerinverted_96_10.png | Bin 0 -> 4868 bytes .../meegotouch/images/spinnerinverted_96_2.png | Bin 0 -> 4909 bytes .../meegotouch/images/spinnerinverted_96_3.png | Bin 0 -> 4922 bytes .../meegotouch/images/spinnerinverted_96_4.png | Bin 0 -> 4922 bytes .../meegotouch/images/spinnerinverted_96_5.png | Bin 0 -> 4891 bytes .../meegotouch/images/spinnerinverted_96_6.png | Bin 0 -> 4925 bytes .../meegotouch/images/spinnerinverted_96_7.png | Bin 0 -> 4891 bytes .../meegotouch/images/spinnerinverted_96_8.png | Bin 0 -> 4932 bytes .../meegotouch/images/spinnerinverted_96_9.png | Bin 0 -> 4925 bytes .../meegotouch/images/statusbar-dropshadow.png | Bin 0 -> 150 bytes 1704 files changed, 45606 insertions(+) create mode 100644 mardrone/deploy.pri create mode 100644 mardrone/imports/Qt/labs/components.1.1/Checkable.qml create mode 100644 mardrone/imports/Qt/labs/components.1.1/CheckableGroup.js create mode 100644 mardrone/imports/Qt/labs/components.1.1/CheckableGroup.qml create mode 100644 mardrone/imports/Qt/labs/components.1.1/qmldir create mode 100644 mardrone/imports/Qt/labs/components/native/AbstractMenu.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ApplicationWindow.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ApplicationWindowStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/BasicRow.js create mode 100644 mardrone/imports/Qt/labs/components/native/BasicRow.qml create mode 100644 mardrone/imports/Qt/labs/components/native/BusyIndicator.qml create mode 100644 mardrone/imports/Qt/labs/components/native/BusyIndicatorStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/Button.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ButtonColumn.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ButtonGroup.js create mode 100644 mardrone/imports/Qt/labs/components/native/ButtonRow.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ButtonStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/CheckBox.qml create mode 100644 mardrone/imports/Qt/labs/components/native/CheckBoxStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/CommonDialog.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ContextMenu.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ContextMenuStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/Dialog.qml create mode 100644 mardrone/imports/Qt/labs/components/native/DialogStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/EditBubble.js create mode 100644 mardrone/imports/Qt/labs/components/native/EditBubble.qml create mode 100644 mardrone/imports/Qt/labs/components/native/EditBubbleButton.qml create mode 100644 mardrone/imports/Qt/labs/components/native/EditBubbleButtonStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/EditBubbleStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/Fader.qml create mode 100644 mardrone/imports/Qt/labs/components/native/GroupButtonStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/Label.qml create mode 100644 mardrone/imports/Qt/labs/components/native/LabelStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/Magnifier.js create mode 100644 mardrone/imports/Qt/labs/components/native/Magnifier.qml create mode 100644 mardrone/imports/Qt/labs/components/native/Menu.qml create mode 100644 mardrone/imports/Qt/labs/components/native/MenuItem.qml create mode 100644 mardrone/imports/Qt/labs/components/native/MenuItemStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/MenuLayout.qml create mode 100644 mardrone/imports/Qt/labs/components/native/MenuStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/MouseAreaDebug.qml create mode 100644 mardrone/imports/Qt/labs/components/native/MultiSelectionDialog.js create mode 100644 mardrone/imports/Qt/labs/components/native/MultiSelectionDialog.qml create mode 100644 mardrone/imports/Qt/labs/components/native/NotificationBanner.qml create mode 100644 mardrone/imports/Qt/labs/components/native/Page.qml create mode 100644 mardrone/imports/Qt/labs/components/native/PageStack.js create mode 100644 mardrone/imports/Qt/labs/components/native/PageStack.qml create mode 100644 mardrone/imports/Qt/labs/components/native/PageStackWindow.qml create mode 100644 mardrone/imports/Qt/labs/components/native/PageStackWindowStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/Popup.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ProgressBar.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ProgressBarStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/QueryDialog.qml create mode 100644 mardrone/imports/Qt/labs/components/native/QueryDialogStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/RadioButton.qml create mode 100644 mardrone/imports/Qt/labs/components/native/RadioButtonStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ScrollDecorator.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ScrollDecoratorSizer.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ScrollDecoratorStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/SectionScroller.js create mode 100644 mardrone/imports/Qt/labs/components/native/SectionScroller.qml create mode 100644 mardrone/imports/Qt/labs/components/native/SectionScrollerLabel.qml create mode 100644 mardrone/imports/Qt/labs/components/native/SectionScrollerStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/SelectionDialog.qml create mode 100644 mardrone/imports/Qt/labs/components/native/SelectionDialogStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/Sheet.qml create mode 100644 mardrone/imports/Qt/labs/components/native/SheetButton.qml create mode 100644 mardrone/imports/Qt/labs/components/native/SheetButtonAccentStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/SheetButtonStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/SheetStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/SipSimulator.qml create mode 100644 mardrone/imports/Qt/labs/components/native/Slider.qml create mode 100644 mardrone/imports/Qt/labs/components/native/SliderStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/SliderTemplate.qml create mode 100644 mardrone/imports/Qt/labs/components/native/SoftwareInputPanel.qml create mode 100644 mardrone/imports/Qt/labs/components/native/StatusBar.qml create mode 100644 mardrone/imports/Qt/labs/components/native/Style.qml create mode 100644 mardrone/imports/Qt/labs/components/native/Switch.qml create mode 100644 mardrone/imports/Qt/labs/components/native/SwitchStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/TabBarLayout.qml create mode 100644 mardrone/imports/Qt/labs/components/native/TabButton.qml create mode 100644 mardrone/imports/Qt/labs/components/native/TabButtonStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/TabGroup.qml create mode 100644 mardrone/imports/Qt/labs/components/native/TextArea.qml create mode 100644 mardrone/imports/Qt/labs/components/native/TextAreaHelper.js create mode 100644 mardrone/imports/Qt/labs/components/native/TextAreaStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/TextField.qml create mode 100644 mardrone/imports/Qt/labs/components/native/TextFieldStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ToolBar.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ToolBarLayout.js create mode 100644 mardrone/imports/Qt/labs/components/native/ToolBarLayout.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ToolBarStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ToolButton.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ToolButtonRow.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ToolButtonStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ToolIcon.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ToolItem.qml create mode 100644 mardrone/imports/Qt/labs/components/native/ToolItemStyle.qml create mode 100644 mardrone/imports/Qt/labs/components/native/UIConstants.js create mode 100644 mardrone/imports/Qt/labs/components/native/Utils.js create mode 100644 mardrone/imports/Qt/labs/components/native/Window.qml create mode 100644 mardrone/imports/Qt/labs/components/native/qmldir create mode 100644 mardrone/imports/com/meego/AbstractMenu.qml create mode 100644 mardrone/imports/com/meego/ApplicationWindow.qml create mode 100644 mardrone/imports/com/meego/ApplicationWindowStyle.qml create mode 100644 mardrone/imports/com/meego/BasicRow.js create mode 100644 mardrone/imports/com/meego/BasicRow.qml create mode 100644 mardrone/imports/com/meego/BusyIndicator.qml create mode 100644 mardrone/imports/com/meego/BusyIndicatorStyle.qml create mode 100644 mardrone/imports/com/meego/Button.qml create mode 100644 mardrone/imports/com/meego/ButtonColumn.qml create mode 100644 mardrone/imports/com/meego/ButtonGroup.js create mode 100644 mardrone/imports/com/meego/ButtonRow.qml create mode 100644 mardrone/imports/com/meego/ButtonStyle.qml create mode 100644 mardrone/imports/com/meego/CheckBox.qml create mode 100644 mardrone/imports/com/meego/CheckBoxStyle.qml create mode 100644 mardrone/imports/com/meego/CommonDialog.qml create mode 100644 mardrone/imports/com/meego/ContextMenu.qml create mode 100644 mardrone/imports/com/meego/ContextMenuStyle.qml create mode 100644 mardrone/imports/com/meego/Dialog.qml create mode 100644 mardrone/imports/com/meego/DialogStyle.qml create mode 100644 mardrone/imports/com/meego/EditBubble.js create mode 100644 mardrone/imports/com/meego/EditBubble.qml create mode 100644 mardrone/imports/com/meego/EditBubbleButton.qml create mode 100644 mardrone/imports/com/meego/EditBubbleButtonStyle.qml create mode 100644 mardrone/imports/com/meego/EditBubbleStyle.qml create mode 100644 mardrone/imports/com/meego/Fader.qml create mode 100644 mardrone/imports/com/meego/GroupButtonStyle.qml create mode 100644 mardrone/imports/com/meego/Label.qml create mode 100644 mardrone/imports/com/meego/LabelStyle.qml create mode 100644 mardrone/imports/com/meego/Magnifier.js create mode 100644 mardrone/imports/com/meego/Magnifier.qml create mode 100644 mardrone/imports/com/meego/Menu.qml create mode 100644 mardrone/imports/com/meego/MenuItem.qml create mode 100644 mardrone/imports/com/meego/MenuItemStyle.qml create mode 100644 mardrone/imports/com/meego/MenuLayout.qml create mode 100644 mardrone/imports/com/meego/MenuStyle.qml create mode 100644 mardrone/imports/com/meego/MouseAreaDebug.qml create mode 100644 mardrone/imports/com/meego/MultiSelectionDialog.js create mode 100644 mardrone/imports/com/meego/MultiSelectionDialog.qml create mode 100644 mardrone/imports/com/meego/NotificationBanner.qml create mode 100644 mardrone/imports/com/meego/Page.qml create mode 100644 mardrone/imports/com/meego/PageStack.js create mode 100644 mardrone/imports/com/meego/PageStack.qml create mode 100644 mardrone/imports/com/meego/PageStackWindow.qml create mode 100644 mardrone/imports/com/meego/PageStackWindowStyle.qml create mode 100644 mardrone/imports/com/meego/Popup.qml create mode 100644 mardrone/imports/com/meego/ProgressBar.qml create mode 100644 mardrone/imports/com/meego/ProgressBarStyle.qml create mode 100644 mardrone/imports/com/meego/QueryDialog.qml create mode 100644 mardrone/imports/com/meego/QueryDialogStyle.qml create mode 100644 mardrone/imports/com/meego/RadioButton.qml create mode 100644 mardrone/imports/com/meego/RadioButtonStyle.qml create mode 100644 mardrone/imports/com/meego/ScrollDecorator.qml create mode 100644 mardrone/imports/com/meego/ScrollDecoratorSizer.qml create mode 100644 mardrone/imports/com/meego/ScrollDecoratorStyle.qml create mode 100644 mardrone/imports/com/meego/SectionScroller.js create mode 100644 mardrone/imports/com/meego/SectionScroller.qml create mode 100644 mardrone/imports/com/meego/SectionScrollerLabel.qml create mode 100644 mardrone/imports/com/meego/SectionScrollerStyle.qml create mode 100644 mardrone/imports/com/meego/SelectionDialog.qml create mode 100644 mardrone/imports/com/meego/SelectionDialogStyle.qml create mode 100644 mardrone/imports/com/meego/Sheet.qml create mode 100644 mardrone/imports/com/meego/SheetButton.qml create mode 100644 mardrone/imports/com/meego/SheetButtonAccentStyle.qml create mode 100644 mardrone/imports/com/meego/SheetButtonStyle.qml create mode 100644 mardrone/imports/com/meego/SheetStyle.qml create mode 100644 mardrone/imports/com/meego/SipSimulator.qml create mode 100644 mardrone/imports/com/meego/Slider.qml create mode 100644 mardrone/imports/com/meego/SliderStyle.qml create mode 100644 mardrone/imports/com/meego/SliderTemplate.qml create mode 100644 mardrone/imports/com/meego/SoftwareInputPanel.qml create mode 100644 mardrone/imports/com/meego/StatusBar.qml create mode 100644 mardrone/imports/com/meego/Style.qml create mode 100644 mardrone/imports/com/meego/Switch.qml create mode 100644 mardrone/imports/com/meego/SwitchStyle.qml create mode 100644 mardrone/imports/com/meego/TabBarLayout.qml create mode 100644 mardrone/imports/com/meego/TabButton.qml create mode 100644 mardrone/imports/com/meego/TabButtonStyle.qml create mode 100644 mardrone/imports/com/meego/TabGroup.qml create mode 100644 mardrone/imports/com/meego/TextArea.qml create mode 100644 mardrone/imports/com/meego/TextAreaHelper.js create mode 100644 mardrone/imports/com/meego/TextAreaStyle.qml create mode 100644 mardrone/imports/com/meego/TextField.qml create mode 100644 mardrone/imports/com/meego/TextFieldStyle.qml create mode 100644 mardrone/imports/com/meego/ToolBar.qml create mode 100644 mardrone/imports/com/meego/ToolBarLayout.js create mode 100644 mardrone/imports/com/meego/ToolBarLayout.qml create mode 100644 mardrone/imports/com/meego/ToolBarStyle.qml create mode 100644 mardrone/imports/com/meego/ToolButton.qml create mode 100644 mardrone/imports/com/meego/ToolButtonRow.qml create mode 100644 mardrone/imports/com/meego/ToolButtonStyle.qml create mode 100644 mardrone/imports/com/meego/ToolIcon.qml create mode 100644 mardrone/imports/com/meego/ToolItem.qml create mode 100644 mardrone/imports/com/meego/ToolItemStyle.qml create mode 100644 mardrone/imports/com/meego/UIConstants.js create mode 100644 mardrone/imports/com/meego/Utils.js create mode 100644 mardrone/imports/com/meego/Window.qml create mode 100644 mardrone/imports/com/meego/extras/CountBubble.qml create mode 100644 mardrone/imports/com/meego/extras/DatePickerDialog.qml create mode 100644 mardrone/imports/com/meego/extras/InfoBanner.qml create mode 100644 mardrone/imports/com/meego/extras/ListButton.qml create mode 100644 mardrone/imports/com/meego/extras/ListButtonStyle.qml create mode 100644 mardrone/imports/com/meego/extras/ListDelegate.qml create mode 100644 mardrone/imports/com/meego/extras/MoreIndicator.qml create mode 100644 mardrone/imports/com/meego/extras/NegativeButtonStyle.qml create mode 100644 mardrone/imports/com/meego/extras/NetPromoterScore.qml create mode 100644 mardrone/imports/com/meego/extras/PageIndicator.qml create mode 100644 mardrone/imports/com/meego/extras/PositiveButtonStyle.qml create mode 100644 mardrone/imports/com/meego/extras/RatingIndicator.qml create mode 100644 mardrone/imports/com/meego/extras/SystemBanner.qml create mode 100644 mardrone/imports/com/meego/extras/TimePickerDialog.qml create mode 100644 mardrone/imports/com/meego/extras/Tumbler.js create mode 100644 mardrone/imports/com/meego/extras/Tumbler.qml create mode 100644 mardrone/imports/com/meego/extras/TumblerButton.qml create mode 100644 mardrone/imports/com/meego/extras/TumblerButtonStyle.qml create mode 100644 mardrone/imports/com/meego/extras/TumblerColumn.qml create mode 100644 mardrone/imports/com/meego/extras/TumblerDialog.qml create mode 100644 mardrone/imports/com/meego/extras/TumblerDialogNew.qml create mode 100644 mardrone/imports/com/meego/extras/TumblerIndexHelper.js create mode 100644 mardrone/imports/com/meego/extras/TumblerNew.qml create mode 100644 mardrone/imports/com/meego/extras/TumblerTemplate.qml create mode 100644 mardrone/imports/com/meego/extras/constants.js create mode 100644 mardrone/imports/com/meego/extras/qmldir create mode 100644 mardrone/imports/com/meego/qmldir create mode 100644 mardrone/imports/com/nokia/extras/CountBubble.qml create mode 100644 mardrone/imports/com/nokia/extras/DatePickerDialog.qml create mode 100644 mardrone/imports/com/nokia/extras/InfoBanner.qml create mode 100644 mardrone/imports/com/nokia/extras/ListButton.qml create mode 100644 mardrone/imports/com/nokia/extras/ListButtonStyle.qml create mode 100644 mardrone/imports/com/nokia/extras/ListDelegate.qml create mode 100644 mardrone/imports/com/nokia/extras/MoreIndicator.qml create mode 100644 mardrone/imports/com/nokia/extras/NegativeButtonStyle.qml create mode 100644 mardrone/imports/com/nokia/extras/NetPromoterScore.qml create mode 100644 mardrone/imports/com/nokia/extras/PageIndicator.qml create mode 100644 mardrone/imports/com/nokia/extras/PositiveButtonStyle.qml create mode 100644 mardrone/imports/com/nokia/extras/RatingIndicator.qml create mode 100644 mardrone/imports/com/nokia/extras/SystemBanner.qml create mode 100644 mardrone/imports/com/nokia/extras/TimePickerDialog.qml create mode 100644 mardrone/imports/com/nokia/extras/Tumbler.js create mode 100644 mardrone/imports/com/nokia/extras/Tumbler.qml create mode 100644 mardrone/imports/com/nokia/extras/TumblerButton.qml create mode 100644 mardrone/imports/com/nokia/extras/TumblerButtonStyle.qml create mode 100644 mardrone/imports/com/nokia/extras/TumblerColumn.qml create mode 100644 mardrone/imports/com/nokia/extras/TumblerDialog.qml create mode 100644 mardrone/imports/com/nokia/extras/TumblerDialogNew.qml create mode 100644 mardrone/imports/com/nokia/extras/TumblerIndexHelper.js create mode 100644 mardrone/imports/com/nokia/extras/TumblerNew.qml create mode 100644 mardrone/imports/com/nokia/extras/TumblerTemplate.qml create mode 100644 mardrone/imports/com/nokia/extras/constants.js create mode 100644 mardrone/imports/com/nokia/extras/qmldir create mode 100644 mardrone/imports/com/nokia/meego/AbstractMenu.qml create mode 100644 mardrone/imports/com/nokia/meego/ApplicationWindow.qml create mode 100644 mardrone/imports/com/nokia/meego/ApplicationWindowStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/BasicRow.js create mode 100644 mardrone/imports/com/nokia/meego/BasicRow.qml create mode 100644 mardrone/imports/com/nokia/meego/BusyIndicator.qml create mode 100644 mardrone/imports/com/nokia/meego/BusyIndicatorStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/Button.qml create mode 100644 mardrone/imports/com/nokia/meego/ButtonColumn.qml create mode 100644 mardrone/imports/com/nokia/meego/ButtonGroup.js create mode 100644 mardrone/imports/com/nokia/meego/ButtonRow.qml create mode 100644 mardrone/imports/com/nokia/meego/ButtonStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/CheckBox.qml create mode 100644 mardrone/imports/com/nokia/meego/CheckBoxStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/CommonDialog.qml create mode 100644 mardrone/imports/com/nokia/meego/ContextMenu.qml create mode 100644 mardrone/imports/com/nokia/meego/ContextMenuStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/Dialog.qml create mode 100644 mardrone/imports/com/nokia/meego/DialogStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/EditBubble.js create mode 100644 mardrone/imports/com/nokia/meego/EditBubble.qml create mode 100644 mardrone/imports/com/nokia/meego/EditBubbleButton.qml create mode 100644 mardrone/imports/com/nokia/meego/EditBubbleButtonStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/EditBubbleStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/Fader.qml create mode 100644 mardrone/imports/com/nokia/meego/GroupButtonStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/Label.qml create mode 100644 mardrone/imports/com/nokia/meego/LabelStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/Magnifier.js create mode 100644 mardrone/imports/com/nokia/meego/Magnifier.qml create mode 100644 mardrone/imports/com/nokia/meego/Menu.qml create mode 100644 mardrone/imports/com/nokia/meego/MenuItem.qml create mode 100644 mardrone/imports/com/nokia/meego/MenuItemStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/MenuLayout.qml create mode 100644 mardrone/imports/com/nokia/meego/MenuStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/MouseAreaDebug.qml create mode 100644 mardrone/imports/com/nokia/meego/MultiSelectionDialog.js create mode 100644 mardrone/imports/com/nokia/meego/MultiSelectionDialog.qml create mode 100644 mardrone/imports/com/nokia/meego/NotificationBanner.qml create mode 100644 mardrone/imports/com/nokia/meego/Page.qml create mode 100644 mardrone/imports/com/nokia/meego/PageStack.js create mode 100644 mardrone/imports/com/nokia/meego/PageStack.qml create mode 100644 mardrone/imports/com/nokia/meego/PageStackWindow.qml create mode 100644 mardrone/imports/com/nokia/meego/PageStackWindowStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/Popup.qml create mode 100644 mardrone/imports/com/nokia/meego/ProgressBar.qml create mode 100644 mardrone/imports/com/nokia/meego/ProgressBarStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/QueryDialog.qml create mode 100644 mardrone/imports/com/nokia/meego/QueryDialogStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/RadioButton.qml create mode 100644 mardrone/imports/com/nokia/meego/RadioButtonStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/ScrollDecorator.qml create mode 100644 mardrone/imports/com/nokia/meego/ScrollDecoratorSizer.qml create mode 100644 mardrone/imports/com/nokia/meego/ScrollDecoratorStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/SectionScroller.js create mode 100644 mardrone/imports/com/nokia/meego/SectionScroller.qml create mode 100644 mardrone/imports/com/nokia/meego/SectionScrollerLabel.qml create mode 100644 mardrone/imports/com/nokia/meego/SectionScrollerStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/SelectionDialog.qml create mode 100644 mardrone/imports/com/nokia/meego/SelectionDialogStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/Sheet.qml create mode 100644 mardrone/imports/com/nokia/meego/SheetButton.qml create mode 100644 mardrone/imports/com/nokia/meego/SheetButtonAccentStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/SheetButtonStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/SheetStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/SipSimulator.qml create mode 100644 mardrone/imports/com/nokia/meego/Slider.qml create mode 100644 mardrone/imports/com/nokia/meego/SliderStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/SliderTemplate.qml create mode 100644 mardrone/imports/com/nokia/meego/SoftwareInputPanel.qml create mode 100644 mardrone/imports/com/nokia/meego/StatusBar.qml create mode 100644 mardrone/imports/com/nokia/meego/Style.qml create mode 100644 mardrone/imports/com/nokia/meego/Switch.qml create mode 100644 mardrone/imports/com/nokia/meego/SwitchStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/TabBarLayout.qml create mode 100644 mardrone/imports/com/nokia/meego/TabButton.qml create mode 100644 mardrone/imports/com/nokia/meego/TabButtonStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/TabGroup.qml create mode 100644 mardrone/imports/com/nokia/meego/TextArea.qml create mode 100644 mardrone/imports/com/nokia/meego/TextAreaHelper.js create mode 100644 mardrone/imports/com/nokia/meego/TextAreaStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/TextField.qml create mode 100644 mardrone/imports/com/nokia/meego/TextFieldStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/ToolBar.qml create mode 100644 mardrone/imports/com/nokia/meego/ToolBarLayout.js create mode 100644 mardrone/imports/com/nokia/meego/ToolBarLayout.qml create mode 100644 mardrone/imports/com/nokia/meego/ToolBarStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/ToolButton.qml create mode 100644 mardrone/imports/com/nokia/meego/ToolButtonRow.qml create mode 100644 mardrone/imports/com/nokia/meego/ToolButtonStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/ToolIcon.qml create mode 100644 mardrone/imports/com/nokia/meego/ToolItem.qml create mode 100644 mardrone/imports/com/nokia/meego/ToolItemStyle.qml create mode 100644 mardrone/imports/com/nokia/meego/UIConstants.js create mode 100644 mardrone/imports/com/nokia/meego/Utils.js create mode 100644 mardrone/imports/com/nokia/meego/Window.qml create mode 100644 mardrone/imports/com/nokia/meego/qmldir create mode 100755 mardrone/plugins/libmeegoextrasplugin.so create mode 100755 mardrone/plugins/libmeegoplugin.so create mode 100755 mardrone/plugins/libqtcomponentsplugin_1_1.so create mode 100644 mardrone/themes/base/meegotouch/icons/MeegoTouchStatusThemeTemplateHelper.png create mode 100644 mardrone/themes/base/meegotouch/icons/MeegoTouchSwithThemeTemplateHelper.png create mode 100644 mardrone/themes/base/meegotouch/icons/MeegotouchListThemeTemplateHelper.png create mode 100644 mardrone/themes/base/meegotouch/icons/helperyeah.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-back-dimmed.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-back-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-back-white-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-back-white.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-back.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-backspace-dimmed-white.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-backspace-dimmed.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-backspace-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-backspace-white-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-backspace-white.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-backspace.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-close-dimmed-white.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-close-dimmed.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-close-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-close-white-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-close-white.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-close.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-home-dimmed-white.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-home-dimmed.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-home-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-home-white-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-home-white.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-home.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-view-menu-dimmed-white.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-view-menu-dimmed.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-view-menu-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-view-menu-white-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-view-menu-white.png create mode 100644 mardrone/themes/base/meegotouch/icons/icon-m-toolbar-view-menu.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-applicationwindow-corner-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-applicationwindow-corner-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-applicationwindow-corner-top-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-applicationwindow-corner-top-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-accent-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-accent-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-accent-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-accent-inverted-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-accent-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-accent-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-disabled-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-disabled-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-disabled-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-disabled-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-disabled-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-disabled-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-disabled-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-pressed-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-pressed-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-pressed-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-selected-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-selected-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-selected-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-checkbox-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-checkbox-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-checkbox-background-selected-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-checkbox-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-checkbox-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-checkbox-inverted-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-checkbox-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-checkbox-inverted-background-selected-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-checkbox-inverted-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-checkbox-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-disabled-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-disabled-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-disabled-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-disabled-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-disabled-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-disabled-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-disabled-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-pressed-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-pressed-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-pressed-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-selected-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-selected-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-selected-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-button-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-button-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-button-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-label-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-label-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-label-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-label-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-label-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-label-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-label-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-label-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-tab-label-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-label-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-label-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-label-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-label-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-label-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-label-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-label-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-label-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-landscape-top-tab-label-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-label-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-label-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-label-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-label-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-label-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-label-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-label-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-label-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-tab-label-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-label-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-label-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-label-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-label-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-label-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-label-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-label-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-label-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-portrait-top-tab-label-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-tab-button-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-tab-button-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-tab-button-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-tab-button-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-tab-button-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-tab-button-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-tab-button-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-tab-button-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-tab-button-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-tab-button-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-tab-button-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-navigationbar-tab-button-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-negative-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-negative-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-negative-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-negative-inverted-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-negative-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-negative-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-positive-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-positive-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-positive-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-positive-inverted-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-positive-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-positive-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-radiobutton-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-radiobutton-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-radiobutton-background-selected-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-radiobutton-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-radiobutton-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-radiobutton-inverted-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-radiobutton-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-radiobutton-inverted-background-selected-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-radiobutton-inverted-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-radiobutton-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-switch-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-switch-colorstripe-active.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-switch-colorstripe-normal.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-switch-mask.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-switch-off-inverted.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-switch-on-inverted.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-switch-on-off.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-switch-on.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-button-switch-thumb.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-calendar-monthgrid-daylabel.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-calendar-monthgrid-weeknumber.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-combobox-indicator-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-combobox-indicator-inverted-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-combobox-indicator-inverted-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-combobox-indicator-inverted.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-combobox-indicator-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-combobox-indicator.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-completer-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-completer-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-completer-button-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-completer-button.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-container.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-content-overlay-navigationbar-landscape-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-content-overlay-navigationbar-portrait-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-dialog-button-negative-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-dialog-button-negative.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-dialog-button-positive-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-dialog-button-positive.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-dialog.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-fast-scroll-handle-inverted.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-fast-scroll-handle.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-fast-scroll-magnifier-inverted.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-fast-scroll-magnifier.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-fast-scroll-rail-inverted.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-fast-scroll-rail.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-fastscroll-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-launcher-spinner.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-center-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-center-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-pressed-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-pressed-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-pressed-center-bottom.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-pressed-center-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-pressed-center-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-pressed-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-pressed-top-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-pressed-top-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-pressed-top-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-pressed-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-pressed-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-pressed-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-selected-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-selected-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-selected-bottom.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-selected-center-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-selected-center-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-selected-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-selected-top-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-selected-top-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-selected-top-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-selected-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-selected-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-selected-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-top-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-top-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-top-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-center-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-center-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-pressed-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-pressed-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-pressed-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-pressed-center-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-pressed-center-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-pressed-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-pressed-top-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-pressed-top-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-pressed-top-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-pressed-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-pressed-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-pressed-vetical-top.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-selected-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-selected-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-selected-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-selected-center-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-selected-center-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-selected-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-selected-top-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-selected-top-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-selected-top-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-selected-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-selected-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-selected-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-top-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-top-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-top-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-fullwidth-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-list-header-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-live-filter-bar-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-menu-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-menu-dimmer.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-menu-shadow-bottom.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-menu-shadow-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-menu-shadow-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-menu-shadow-top.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-monthgrid-daycell-current-day-eventindicator.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-monthgrid-daycell-current-day.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-monthgrid-daycell-othermonth-day-eventindicator.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-monthgrid-daycell-regular-day-eventindicator.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-monthgrid-daycell-regular-day.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-monthgrid-daycell-selected-day-current.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-monthgrid-daycell-selected-day-eventindicator.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-monthgrid-daycell-selected-day.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-bottom-tab-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-bottom-tab-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-bottom-tab-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-bottom-tab-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-bottom-tab-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-bottom-tab-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-bottom-tab-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-bottom-tab-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-bottom-tab-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-top-tab-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-top-tab-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-top-tab-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-top-tab-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-top-tab-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-top-tab-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-top-tab-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-top-tab-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-landscape-top-tab-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-background-horizontal-pressed-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-icon-label-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-icon-label-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-icon-label-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-icon-label-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-icon-label-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-icon-label-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-icon-label-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-icon-label-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-icon-label-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-bottom-tab-icon-label-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-background-horizontal-pressed-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-icon-label-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-icon-label-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-icon-label-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-icon-label-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-icon-label-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-icon-label-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-icon-label-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-icon-label-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-icon-label-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-navigationbar-portrait-top-tab-icon-label-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-positionindicator-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-positionindicator-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-positionindicator-indicator-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-positionindicator-indicator.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-positionindicator-inverted-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-positionindicator-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-positionindicator-inverted-indicator-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-positionindicator-inverted-indicator.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progress-spinner-experimental.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-bar-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-bar-known-texture.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-bar-mask.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-bar-unknown-texture.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-inverted-bar-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-inverted-bar-known-texture.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-inverted-bar-mask.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-inverted-bar-unknown-texture.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-inverted-spinner-large-off.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-inverted-spinner-large-on.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-inverted-spinner-medium-off.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-inverted-spinner-medium-on.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-inverted-spinner-small-off.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-inverted-spinner-small-on.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-spinner-large-off.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-spinner-large-on.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-spinner-medium-off.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-spinner-medium-on.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-spinner-small-off.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-progressindicator-spinner-small-on.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-scroll-bubble-arrow-inverted.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-scroll-bubble-arrow.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-scroll-bubble-background-inverted.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-scroll-bubble-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-scroll-bubble-divider-inverted.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-scroll-bubble-divider.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-seeker-handle-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-seeker-handle-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-seeker-handle-inverted-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-seeker-handle-inverted-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-elapsed-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-elapsed-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-elapsed-inverted-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-elapsed-inverted-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-background-pressed-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-background-pressed-vertical.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-inverted-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-inverted-background-pressed-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-inverted-background-pressed-vertical.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-inverted-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-label-arrow-down-inverted.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-label-arrow-down.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-label-arrow-left-inverted.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-label-arrow-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-label-arrow-right-inverted.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-label-arrow-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-label-arrow-up-inverted.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-label-arrow-up.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-value-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-handle-value-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-inverted-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-inverted-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-received-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-received-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-received-inverted-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-slider-received-inverted-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-statusmenu-drawer-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-statusmenu-drawer-grip.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-background-disabled-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-background-error.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-button-background-disabled-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-button-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-button-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-button-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-button-background-selected-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-button-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-button-inverted-background-disabled-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-button-inverted-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-button-inverted-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-button-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-button-inverted-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-button-inverted-background-selected-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-button-inverted-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-button-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-inverted-background-disabled-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-inverted-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-inverted-background-error.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-inverted-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-inverted-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-inverted-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textedit-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/icons/meegotouch-textfield-button-combo.png create mode 100644 mardrone/themes/base/meegotouch/icons/organiserthemetemplatehelper.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-applicationpage-background.jpg create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-applicationpage-portrait-background.jpg create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-applicationwindow-corner-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-applicationwindow-corner-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-applicationwindow-corner-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-applicationwindow-corner-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-avatar-placeholder-background-large.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-avatar-placeholder-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-accent-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-accent-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-accent-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-accent-inverted-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-accent-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-accent-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-disabled-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-disabled-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-disabled-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-disabled-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-disabled-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-disabled-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-horizontal-disabled-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-pressed-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-pressed-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-pressed-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-selected-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-selected-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-selected-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-checkbox-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-checkbox-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-checkbox-background-selected-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-checkbox-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-checkbox-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-checkbox-inverted-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-checkbox-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-checkbox-inverted-background-selected-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-checkbox-inverted-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-checkbox-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-disabled-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-disabled-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-disabled-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-disabled-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-disabled-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-disabled-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-disabled-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-pressed-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-pressed-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-pressed-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-selected-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-selected-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-selected-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-switch-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-switch-colorstripe-active.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-switch-colorstripe-normal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-switch-mask.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-inverted-switch-thumb.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-button-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-button-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-button-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-label-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-label-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-label-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-label-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-label-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-label-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-label-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-label-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-tab-label-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-label-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-label-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-label-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-label-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-label-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-label-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-label-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-label-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-landscape-top-tab-label-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-label-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-label-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-label-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-label-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-label-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-label-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-label-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-label-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-tab-label-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-label-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-label-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-label-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-label-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-label-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-label-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-label-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-label-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-portrait-top-tab-label-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-tab-button-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-tab-button-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-tab-button-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-tab-button-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-tab-button-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-tab-button-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-tab-button-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-tab-button-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-tab-button-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-tab-button-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-tab-button-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-navigationbar-tab-button-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-negative-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-negative-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-negative-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-negative-inverted-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-negative-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-negative-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-center-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-center-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-pressed-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-pressed-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-pressed-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-pressed-center-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-pressed-center-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-pressed-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-pressed-top-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-pressed-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-pressed-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-pressed-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-pressed-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-pressed-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-selected-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-selected-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-selected-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-selected-center-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-selected-center-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-selected-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-selected-top-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-selected-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-selected-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-selected-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-selected-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-selected-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-top-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-objectmenu-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-positive-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-positive-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-positive-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-positive-inverted-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-positive-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-positive-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-radiobutton-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-radiobutton-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-radiobutton-background-selected-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-radiobutton-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-radiobutton-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-radiobutton-inverted-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-radiobutton-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-radiobutton-inverted-background-selected-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-radiobutton-inverted-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-radiobutton-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-switch-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-switch-colorstripe-active.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-switch-colorstripe-normal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-switch-mask.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-button-switch-thumb.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-callui-dialler-button-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-callui-dialler-button-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-callui-dialler-ok-button-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-callui-dialler-ok-button-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-callui-dialler-ok-button-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-combobox-indicator-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-combobox-indicator.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-completer-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-completer-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-completer-button-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-completer-button.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-completer-countbubble.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-contact-card-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-contactsui-avatar-frame.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-contactsui-avatar-mask.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-container-header-divider-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-container-header-divider-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-content-overlay-navigationbar-landscape-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-content-overlay-navigationbar-portrait-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-countbubble-background-large.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-countbubble-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-countbubble-inverted-background-large.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-countbubble-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-dialog-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-dialog-button-area-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-dialog-header-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-dialog-query-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-dialog-query-button-area-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-fastscroll-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-fastscroll-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-groupseparator-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-groupseparator-header-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-groupseparator-header-inverted-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-groupseparator-inverted-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-home-event-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-home-event-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-inverted-pageindicator-page-current.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-inverted-pageindicator-page.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-accent-magnifier-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-accent-magnifier-key-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-accent-magnifier-key.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-border-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-function-key-pressed-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-function-key-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-function-key-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-function-key.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-handle-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-handle-decoration.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-key-pressed-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-key-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-key-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-key.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-magnifier-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-magnifier-focuspoint.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-paging-indicator-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-paging-indicator.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-toolbar-action-key-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-toolbar-action-key.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-toolbar-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-toolbar-button-pressed-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-toolbar-button-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-toolbar-button-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-keyboard-toolbar-button.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-center-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-center-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-pressed-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-pressed-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-pressed-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-pressed-center-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-pressed-center-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-pressed-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-pressed-top-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-pressed-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-pressed-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-pressed-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-pressed-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-pressed-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-selected-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-selected-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-selected-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-selected-center-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-selected-center-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-selected-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-selected-top-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-selected-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-selected-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-selected-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-selected-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-selected-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-top-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-center-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-center-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-pressed-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-pressed-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-pressed-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-pressed-center-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-pressed-center-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-pressed-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-pressed-top-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-pressed-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-pressed-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-pressed-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-pressed-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-pressed-vetical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-selected-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-selected-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-selected-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-selected-center-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-selected-center-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-selected-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-selected-top-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-selected-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-selected-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-selected-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-selected-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-selected-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-top-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-center-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-center-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-pressed-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-pressed-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-pressed-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-pressed-center-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-pressed-center-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-pressed-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-pressed-top-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-pressed-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-pressed-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-pressed-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-pressed-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-pressed-vetical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-selected-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-selected-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-selected-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-selected-center-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-selected-center-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-selected-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-selected-top-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-selected-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-selected-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-selected-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-selected-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-selected-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-top-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-fullwidth-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-header-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-header-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-center-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-center-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-pressed-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-pressed-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-pressed-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-pressed-center-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-pressed-center-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-pressed-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-pressed-top-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-pressed-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-pressed-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-pressed-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-pressed-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-pressed-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-selected-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-selected-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-selected-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-selected-center-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-selected-center-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-selected-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-selected-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-selected-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-selected-top-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-selected-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-selected-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-selected-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-selected-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-selected-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-top-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-list-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-live-filter-bar-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-live-filter-bar-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-lockscreen-alarmhint.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-lockscreen-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-lockscreen-callhint.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-lockscreen-slidehint.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-lockscreen-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-bubble-info-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-bubble-service-icon-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-bubble-timestamp-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-conversation-bubble-incoming1-normal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-conversation-bubble-incoming1-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-conversation-bubble-incoming2-normal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-conversation-bubble-incoming2-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-conversation-bubble-incoming3-normal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-conversation-bubble-incoming3-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-conversation-bubble-incoming4-normal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-conversation-bubble-incoming4-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-conversation-bubble-outgoing1-normal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-conversation-bubble-outgoing1-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-conversation-bubble-outgoing2-normal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-conversation-bubble-outgoing2-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-conversation-bubble-outgoing3-normal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-conversation-bubble-outgoing3-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-header-large-floating.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-header-large-list.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-header-small-floating.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-header-small-list.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-header-xlarge-list.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-list-bubble-read.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-list-bubble-unread.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-recipient-bubble-ambiguous-normal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-recipient-bubble-ambiguous-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-recipient-bubble-resolved-normal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-recipient-bubble-resolved-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-recipient-bubble-unknown-normal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-recipient-bubble-unknown-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-recipient-bubble-unresolved-normal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messaging-recipient-bubble-unresolved-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-messagingui-contactcard-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-navigationbar-landscape-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-navigationbar-portrait-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-navigationbar-statusarea-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-navigationbar-statusarea-dropshadow.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-navigationbar-viewmenu-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-new-items-counter-background-combined.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-new-items-counter-background-regular.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-notification-event-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-notification-event-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-notification-information-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-notification-information-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-notification-lockscreen-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-notification-system-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-pageindicator-page-current.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-pageindicator-page.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-panel-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-panel-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-panel-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-panel-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-panel-inverted-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-panel-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-pin-button-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-pin-button-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-positionindicator-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-positionindicator-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-positionindicator-indicator-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-positionindicator-indicator.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-positionindicator-inverted-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-positionindicator-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-positionindicator-inverted-indicator-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-positionindicator-inverted-indicator.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-bar-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-bar-known-texture.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-bar-mask.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-bar-unknown-texture.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-inverted-bar-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-inverted-bar-known-texture.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-inverted-bar-mask.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-inverted-bar-unknown-texture.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-inverted-spinner-large-off.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-inverted-spinner-large-on.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-inverted-spinner-medium-off.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-inverted-spinner-medium-on.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-inverted-spinner-small-off.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-inverted-spinner-small-on.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-background-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-hollow-background-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-hollow-background-small-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-hollow-background-small.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-hollow-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-hollow-progress-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-hollow-progress-small-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-hollow-progress-small.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-hollow-progress.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-large-off.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-large-on.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-medium-off.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-medium-on.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-progress-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-progress.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-small-off.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-progressindicator-spinner-small-on.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-scroll-bubble-arrow-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-scroll-bubble-arrow.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-scroll-bubble-background-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-scroll-bubble-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-scroll-bubble-divider-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-scroll-bubble-divider.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-seattle-magnifier-frame-mask.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-seattle-magnifier-frame.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-seeker-handle-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-seeker-handle-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-seeker-handle-inverted-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-seeker-handle-inverted-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-separator-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-separator-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-separator-inverted-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-separator-inverted-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-elapsed-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-elapsed-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-elapsed-inverted-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-elapsed-inverted-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-background-pressed-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-background-pressed-vertical.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-inverted-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-inverted-background-pressed-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-inverted-background-pressed-vertical.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-inverted-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-label-arrow-down-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-label-arrow-down.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-label-arrow-left-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-label-arrow-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-label-arrow-right-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-label-arrow-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-label-arrow-up-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-label-arrow-up.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-value-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-handle-value-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-inverted-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-inverted-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-received-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-received-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-received-inverted-background-horizontal.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-slider-received-inverted-background-vertical.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-startup-landscape-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-startup-portrait-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-switch-off-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-switch-off.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-switch-on-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-switch-on.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-switch-shadow-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-switch-shadow.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-switch-thumb-disabled-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-switch-thumb-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-switch-thumb-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-switch-thumb-pressed-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-switch-thumb-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-switch-thumb.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-tap.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-text-frame-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-text-frame-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-background-disabled-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-background-error.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-button-background-disabled-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-button-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-button-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-button-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-button-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-button-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-button-inverted-background-disabled-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-button-inverted-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-button-inverted-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-button-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-button-inverted-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-button-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-inverted-background-disabled-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-inverted-background-disabled.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-inverted-background-error.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-inverted-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-inverted-background-selected-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-inverted-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-textedit-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-theme-preview-landscape.jpg create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-theme-preview-portrait.jpg create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-toolbar-landscape-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-toolbar-landscape-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-toolbar-portrait-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-toolbar-portrait-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-unread-panel-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-unread-panel-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-unread-panel-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-unread-panel-inverted-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-unread-panel-inverted-background-selected.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-unread-panel-inverted-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-view-header-colored-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-view-header-colored.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-view-header-interactive-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-view-header-interactive.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-view-header-inverted-interactive-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-view-header-inverted-interactive.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-view-header-inverted.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-view-header-overlay.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-view-header.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-center-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-center-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-pressed-bottom-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-pressed-bottom-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-pressed-bottom-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-pressed-center-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-pressed-center-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-pressed-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-pressed-horizontal-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-pressed-horizontal-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-pressed-horizontal-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-pressed-top-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-pressed-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-pressed-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-pressed-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-pressed-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-pressed-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-top-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-top-left.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-top-right.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-vertical-bottom.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-vertical-center.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background-vertical-top.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-viewmenu-border.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-wallpaper-landscape.jpg create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-wallpaper-portrait.jpg create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-window-background-forcex11.jpg create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-wordtracker-background.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-wordtracker-item-pressed.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-wordtracker-pointer.png create mode 100644 mardrone/themes/base/meegotouch/images/meegotouch-wordtracker-selection.png create mode 100644 mardrone/themes/base/meegotouch/images/meegoui-volume-level.png create mode 100644 mardrone/themes/base/meegotouch/images/meegoui-volume-mute.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_24_1.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_24_10.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_24_2.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_24_3.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_24_4.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_24_5.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_24_6.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_24_7.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_24_8.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_24_9.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_32_1.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_32_10.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_32_2.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_32_3.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_32_4.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_32_5.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_32_6.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_32_7.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_32_8.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_32_9.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_96_1.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_96_10.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_96_2.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_96_3.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_96_4.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_96_5.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_96_6.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_96_7.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_96_8.png create mode 100644 mardrone/themes/base/meegotouch/images/spinner_96_9.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_24_1.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_24_10.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_24_2.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_24_3.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_24_4.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_24_5.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_24_6.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_24_7.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_24_8.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_24_9.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_32_1.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_32_10.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_32_2.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_32_3.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_32_4.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_32_5.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_32_6.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_32_7.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_32_8.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_32_9.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_96_1.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_96_10.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_96_2.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_96_3.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_96_4.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_96_5.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_96_6.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_96_7.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_96_8.png create mode 100644 mardrone/themes/base/meegotouch/images/spinnerinverted_96_9.png create mode 100644 mardrone/themes/base/meegotouch/images/statusbar-dropshadow.png diff --git a/mardrone/deploy.pri b/mardrone/deploy.pri new file mode 100644 index 0000000..66d24bd --- /dev/null +++ b/mardrone/deploy.pri @@ -0,0 +1,137 @@ +# This file was generated by an application wizard of Qt Creator. +# The code below handles deployment to Symbian and Maemo, aswell as copying +# of the application data to shadow build directories on desktop. +# It is recommended not to modify this file, since newer versions of Qt Creator +# may offer an updated version of it. + +defineTest(qtcAddDeployment) { +for(deploymentfolder, DEPLOYMENTFOLDERS) { + item = item$${deploymentfolder} + itemsources = $${item}.sources + $$itemsources = $$eval($${deploymentfolder}.source) + itempath = $${item}.path + $$itempath= $$eval($${deploymentfolder}.target) + export($$itemsources) + export($$itempath) + DEPLOYMENT += $$item +} + +MAINPROFILEPWD = $$PWD + +symbian { + isEmpty(ICON):exists($${TARGET}.svg):ICON = $${TARGET}.svg + isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 +} else:win32 { + copyCommand = + for(deploymentfolder, DEPLOYMENTFOLDERS) { + source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source) + source = $$replace(source, /, \\) + sourcePathSegments = $$split(source, \\) + target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments) + target = $$replace(target, /, \\) + !isEqual(source,$$target) { + !isEmpty(copyCommand):copyCommand += && + isEqual(QMAKE_DIR_SEP, \\) { + copyCommand += $(COPY_DIR) \"$$source\" \"$$target\" + } else { + source = $$replace(source, \\\\, /) + target = $$OUT_PWD/$$eval($${deploymentfolder}.target) + target = $$replace(target, \\\\, /) + copyCommand += test -d \"$$target\" || mkdir -p \"$$target\" && cp -r \"$$source\" \"$$target\" + } + } + } + !isEmpty(copyCommand) { + copyCommand = @echo Copying application data... && $$copyCommand + copydeploymentfolders.commands = $$copyCommand + first.depends = $(first) copydeploymentfolders + export(first.depends) + export(copydeploymentfolders.commands) + QMAKE_EXTRA_TARGETS += first copydeploymentfolders + } +} else:unix { + maemo5 { + desktopfile.files = $${TARGET}.desktop + desktopfile.path = /usr/share/applications/hildon + icon.files = $${TARGET}64.png + icon.path = /usr/share/icons/hicolor/64x64/apps + } else:!isEmpty(MEEGO_VERSION_MAJOR) { + desktopfile.files = $${TARGET}_harmattan.desktop + desktopfile.path = /usr/share/applications + icon.files = $${TARGET}80.png + icon.path = /usr/share/icons/hicolor/80x80/apps + } else { # Assumed to be a Desktop Unix + copyCommand = + for(deploymentfolder, DEPLOYMENTFOLDERS) { + source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source) + source = $$replace(source, \\\\, /) + macx { + target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target) + } else { + target = $$OUT_PWD/$$eval($${deploymentfolder}.target) + } + target = $$replace(target, \\\\, /) + sourcePathSegments = $$split(source, /) + targetFullPath = $$target/$$last(sourcePathSegments) + !isEqual(source,$$targetFullPath) { + !isEmpty(copyCommand):copyCommand += && + copyCommand += $(MKDIR) \"$$target\" + copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\" + } + } + !isEmpty(copyCommand) { + copyCommand = @echo Copying application data... && $$copyCommand + copydeploymentfolders.commands = $$copyCommand + first.depends = $(first) copydeploymentfolders + export(first.depends) + export(copydeploymentfolders.commands) + QMAKE_EXTRA_TARGETS += first copydeploymentfolders + } + } + android { + installPrefix = /assets + } else { + installPrefix = /opt/$${TARGET} + } + for(deploymentfolder, DEPLOYMENTFOLDERS) { + item = item$${deploymentfolder} + itemfiles = $${item}.files + $$itemfiles = $$eval($${deploymentfolder}.source) + itempath = $${item}.path + $$itempath = $${installPrefix}/$$eval($${deploymentfolder}.target) + export($$itemfiles) + export($$itempath) + INSTALLS += $$item + } + + !android: !isEmpty(desktopfile.path) { + export(icon.files) + export(icon.path) + export(desktopfile.files) + export(desktopfile.path) + INSTALLS += icon desktopfile + } + + !android { + target.path = $${installPrefix}/bin + } else { + x86 { + target.path = /libs/x86 + } else: armeabi-v7a { + target.path = /libs/armeabi-v7a + } else { + target.path = /libs/armeabi + } + } + export(target.path) + INSTALLS += target +} + +export (ICON) +export (INSTALLS) +export (DEPLOYMENT) +export (TARGET.EPOCHEAPSIZE) +export (TARGET.CAPABILITY) +export (LIBS) +export (QMAKE_EXTRA_TARGETS) +} diff --git a/mardrone/imports/Qt/labs/components.1.1/Checkable.qml b/mardrone/imports/Qt/labs/components.1.1/Checkable.qml new file mode 100644 index 0000000..c46339b --- /dev/null +++ b/mardrone/imports/Qt/labs/components.1.1/Checkable.qml @@ -0,0 +1,85 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +QtObject { + id: root + property bool checked: false + property variant value: null + property QtObject exclusiveGroup: null + property bool enabled: false + + onEnabledChanged: { + if (!enabled) { + exclusiveGroup = null; + checked = false; + } + } + + function toggle() { + if (!enabled) + return; + if (!exclusiveGroup) { + checked = !checked; + } else { + // In an exclusive group, there is no 'checked = false'. The invariant + // of the group doesn't allow to "uncheck" the checked item. Note that + // the group watches for changes in the checked variable of its items. + checked = true; + } + } + + onExclusiveGroupChanged: { + if (exclusiveGroup) { + enabled = true; + // Note that we don't need to remove the previous group, + // since it is watching the 'exclusiveGroup' property changes + // in this item and will automatically remove us. + exclusiveGroup.__add(root); + } + } + + Component.onDestruction: { + // If there's a previous group, it will be watching for + // this change and will remove this item. + exclusiveGroup = null; + } +} diff --git a/mardrone/imports/Qt/labs/components.1.1/CheckableGroup.js b/mardrone/imports/Qt/labs/components.1.1/CheckableGroup.js new file mode 100644 index 0000000..4f4027d --- /dev/null +++ b/mardrone/imports/Qt/labs/components.1.1/CheckableGroup.js @@ -0,0 +1,171 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// This file contains the implementation of CheckableGroup.qml functionality, +// and CheckableGroup root element is identified by 'root'. + +var items = []; +var selectedItem = null; +var completed = false; + + +function add(item) { + // Add the item, and if it's the case, check it as well. + items.push(item); + if (item.checked) { + check(item); + } else if (items.length == 1 && completed) { + // If we are already completed, this enforces the invariant of + // having always one item checked in the group. For exception + // case see onCompleted() function. + check(item); + } + + // Connect so we know when items left the group or are requesting + // a different state (check or uncheck). Note that we register + // passing the item to be the 'this' value when the function + // is called. + item.exclusiveGroupChanged.connect(item, onItemExclusiveGroupChange); + item.checkedChanged.connect(item, onItemCheckedChange); +} + +function onItemExclusiveGroupChange() { + var item = this; + if (item.checkGroup !== root) { + remove(item); + } +} + +function onItemCheckedChange() { + var item = this; + + // In those two cases we know the change was caused by the group, so we can ignore it. + if ((item === selectedItem && item.checked) || + (item !== selectedItem && !item.checked)) { + return; + } + + if (item.checked) { + // A non-selected item was checked, so we do the real check. + check(item); + } else if (items.length == 1) { + // Only one item, and it was unchecked. We have to rollback + // because it would break the group invariant. + // + // NOTE: This cause a glitch in the item.checked variable that + // goes false then true, however the CheckableGroup.selectedValue + // remains unchanged. We could avoid this with a custom setter + // in the 'checked' property of an item. + item.checked = true; + } else { + // The selected item was unchecked, choose another one to check. + var idx = (items.indexOf(item) + 1) % items.length + check(items[idx]); + } +} + +function remove(item) { + // Remove the item from the list + var idx = items.indexOf(item); + if (idx == -1) { + console.log("Error: removing an invalid item."); + return; + } + items.splice(idx, 1); + + item.exclusiveGroupChanged.disconnect(item, onItemExclusiveGroupChange); + item.checkedChanged.disconnect(item, onItemCheckedChange); + + // If we are removing the selected item, we need to find a + // replacement to be selected... + if (selectedItem === item) { + selectedItem = null; + if (items.length > 0) { + var otherIdx = idx % items.length; + check(items[otherIdx]); + } else { + // ...or simply having no selectedValue. + root.selectedValue = null; + } + } +} + +/// Select one item, setting the selectedValue in the group +function check(item) { + // It is important to have the right item in the 'selectedItem' + // before the changes since we use that to identify that the change + // was made by us. + var oldSelectedItem = selectedItem + selectedItem = item; + if (oldSelectedItem) + oldSelectedItem.checked = false; + item.checked = true; + root.selectedValue = item.value; +} + +function onCompleted() { + completed = true; + + // When the QML file is loaded, and no items on it had 'checkable: true' (which + // would be considered in the add() function), then we simply select one of them + // to enforce the rule of having one item selected. + // + // The delayed selection is useful because it allow to declare in the QML file + // one item as 'checked' and don't see a "glitch" in the selectedValue because + // another item was added before to the group (and could be selected if this was + // not delayed). + if (!selectedItem && items.length > 0) { + check(items[0]); + } +} + +function clear() { + var itemsLength = items.length; + for (var i = 0; i < itemsLength; i++) { + var item = items[i]; + item.exclusiveGroupChanged.disconnect(item, onItemExclusiveGroupChange); + item.checkedChanged.disconnect(item, onItemCheckedChange); + item.exclusiveGroup = null; + } + + items = []; + selectedItem = null; + root.selectedValue = null; +} diff --git a/mardrone/imports/Qt/labs/components.1.1/CheckableGroup.qml b/mardrone/imports/Qt/labs/components.1.1/CheckableGroup.qml new file mode 100644 index 0000000..984da55 --- /dev/null +++ b/mardrone/imports/Qt/labs/components.1.1/CheckableGroup.qml @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +import "CheckableGroup.js" as Private + +QtObject { + id: root + property variant selectedValue + + // This is equivalent to setting the group of all the items + // to null, but without causing glitches in the selectedValue. + function clear() { Private.clear(); } + + function __add(item) { Private.add(item); } + + Component.onCompleted: { + Private.onCompleted(); + } +} diff --git a/mardrone/imports/Qt/labs/components.1.1/qmldir b/mardrone/imports/Qt/labs/components.1.1/qmldir new file mode 100644 index 0000000..35de10b --- /dev/null +++ b/mardrone/imports/Qt/labs/components.1.1/qmldir @@ -0,0 +1,3 @@ +plugin qtcomponentsplugin_1_1 +Checkable 1.1 Checkable.qml +CheckableGroup 1.1 CheckableGroup.qml diff --git a/mardrone/imports/Qt/labs/components/native/AbstractMenu.qml b/mardrone/imports/Qt/labs/components/native/AbstractMenu.qml new file mode 100644 index 0000000..703192e --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/AbstractMenu.qml @@ -0,0 +1,316 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Popup { + id: root + + // Common API + default property alias content: contentField.children + + // Common API inherited from Popup: + /* + function open() + function close() + + property QDeclarativeItem* visualParent + property int status + */ + + // platformStyle API + property Style platformStyle: MenuStyle{} + property alias style: root.platformStyle // Deprecated + property alias platformTitle: titleBar.children + property alias title: titleBar.children // Deprecated + property alias __footer: footerBar.children + + // private api + property int __statusBarDelta: visualParent ? 0 : + __findItem( "appWindowContent") != null ? 0 : + __findItem( "pageStackWindow") != null && __findItem( "pageStackWindow").showStatusBar ? 36 : 0 + + property string __animationChief: "abstractMenu" + property int __pressDelay: platformStyle.pressDelay + property alias __statesWrapper: statesWrapper + property alias __menuPane: menuPane + + // This item will find the object with the given objectName ... or will return + function __findItem( objectName ) { + var next = parent; + + if (next != null) { + while (next) { + if(next.objectName == objectName){ + return next; + } + + next = next.parent; + } + } + + return null; + } + + __dim: platformStyle.dim + __fadeInDuration: platformStyle.fadeInDuration + __fadeOutDuration: platformStyle.fadeOutDuration + __fadeInDelay: platformStyle.fadeInDelay + __fadeOutDelay: platformStyle.fadeOutDelay + __faderBackground: platformStyle.faderBackground + __fadeInEasingType: platformStyle.fadeInEasingType + __fadeOutEasingType: platformStyle.fadeOutEasingType + + anchors.fill: parent + + // When application is minimized menu is closed. + Connections { + target: platformWindow + onActiveChanged: { + if(!platformWindow.active) + close() + } + } + + // This is needed for menus which are not instantiated inside the + // content window of the PageStackWindow: + Item { + id: roundedCorners + visible: root.status != DialogStatus.Closed && !visualParent + && __findItem( "pageStackWindow") != null && __findItem( "pageStackWindow").platformStyle.cornersVisible + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: parent.bottom + height: parent.height - __statusBarDelta - 2 + z: 10001 + + // compensate for the widening of the edges of the fader (which avoids artefacts during rotation) + anchors.topMargin: +1 + anchors.rightMargin: +1 + anchors.bottomMargin: +1 + anchors.leftMargin: +1 + + Image { + anchors.top : parent.top + anchors.left: parent.left + source: "image://theme/meegotouch-applicationwindow-corner-top-left" + } + Image { + anchors.top: parent.top + anchors.right: parent.right + source: "image://theme/meegotouch-applicationwindow-corner-top-right" + } + Image { + anchors.bottom : parent.bottom + anchors.left: parent.left + source: "image://theme/meegotouch-applicationwindow-corner-bottom-left" + } + Image { + anchors.bottom : parent.bottom + anchors.right: parent.right + source: "image://theme/meegotouch-applicationwindow-corner-bottom-right" + } + } + + // Shadows: + Image { + anchors.top : menuPane.top + anchors.right: menuPane.left + anchors.bottom : menuPane.bottom + source: "image://theme/meegotouch-menu-shadow-left" + visible: root.status != DialogStatus.Closed + } + Image { + anchors.bottom : menuPane.top + anchors.left: menuPane.left + anchors.right : menuPane.right + source: "image://theme/meegotouch-menu-shadow-top" + visible: root.status != DialogStatus.Closed + } + Image { + anchors.top : menuPane.top + anchors.left: menuPane.right + anchors.bottom : menuPane.bottom + source: "image://theme/meegotouch-menu-shadow-right" + visible: root.status != DialogStatus.Closed + } + Image { + anchors.top : menuPane.bottom + anchors.left: menuPane.left + anchors.right : menuPane.right + source: "image://theme/meegotouch-menu-shadow-bottom" + visible: root.status != DialogStatus.Closed + } + + Item { + id: menuPane + //ToDo: add support for layoutDirection Qt::RightToLeft + x: platformStyle.leftMargin + width: parent.width - platformStyle.leftMargin - platformStyle.rightMargin // ToDo: better width heuristic + height: (screen.currentOrientation == 1) || (screen.currentOrientation == 4) ? + /* Portrait */ titleBar.height + flickableContent.height + footerBar.height : + /* Landscape */ parent.height - platformStyle.topMargin - platformStyle.bottomMargin - __statusBarDelta + anchors.bottom: parent.bottom + anchors.right: parent.right + + state: __statesWrapper.state + + BorderImage { + id: backgroundImage + source: // !enabled ? root.platformStyle.disabledBackground : + root.platformStyle.background + anchors.fill : parent + border { left: 22; top: theme.inverted ? 124 : 22; + right: 22; bottom: theme.inverted ? 2 : 22 } + } + + // this item contains the whole menu (content rectangle) + Item { + id: backgroundRect + anchors.fill: parent + + Item { + id: titleBar + anchors.left: parent.left + anchors.right: parent.right + + height: childrenRect.height + } + + Item { + // Required to have the ScrollDecorator+Flickable handled + // by the column as a single item while keeping the + // ScrollDecorator working + id: flickableContent + anchors.left: parent.left + anchors.right: parent.right + + anchors.top: backgroundRect.top + anchors.topMargin: titleBar.height + property int maxHeight : visualParent + ? visualParent.height - platformStyle.topMargin - __statusBarDelta + - footerBar.height - titleBar.height + : root.parent + ? root.parent.height - platformStyle.topMargin - __statusBarDelta + - footerBar.height - titleBar.height + : 350 + + height: contentField.childrenRect.height + platformStyle.topPadding + platformStyle.bottomPadding < maxHeight + ? contentField.childrenRect.height + platformStyle.topPadding + platformStyle.bottomPadding + : maxHeight + + Flickable { + id: flickable + anchors.fill: parent + contentWidth: parent.width + contentHeight: contentField.childrenRect.height + platformStyle.topPadding + platformStyle.bottomPadding + interactive: contentHeight > flickable.height + flickableDirection: Flickable.VerticalFlick + pressDelay: __pressDelay + clip: true + + Item { + id: contentRect + height: contentField.childrenRect.height + + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + anchors.topMargin: platformStyle.topPadding + anchors.bottomMargin: platformStyle.bottomPadding + anchors.leftMargin: platformStyle.leftPadding + anchors.rightMargin: platformStyle.rightPadding + + Item { + id: contentField + anchors.fill: contentRect + + function closeMenu() { root.close(); } + } + } + } + ScrollDecorator { + id: scrollDecorator + flickableItem: flickable + } + } + + Item { + id: footerBar + anchors.left: parent.left + anchors.right: parent.right + + anchors.top: backgroundRect.top + anchors.topMargin: titleBar.height + flickableContent.height + height: childrenRect.height + } + + } + } + + onPrivateClicked: close() // "reject()" + + StateGroup { + id: statesWrapper + + state: "hidden" + + states: [ + State { + name: "visible" + when: root.__animationChief == "abstractMenu" && (root.status == DialogStatus.Opening || root.status == DialogStatus.Open) + PropertyChanges { + target: __menuPane + opacity: 1.0 + } + }, + State { + name: "hidden" + when: root.__animationChief == "abstractMenu" && (root.status == DialogStatus.Closing || root.status == DialogStatus.Closed) + PropertyChanges { + target: __menuPane + opacity: 0.0 + } + } + ] + + } +} diff --git a/mardrone/imports/Qt/labs/components/native/ApplicationWindow.qml b/mardrone/imports/Qt/labs/components/native/ApplicationWindow.qml new file mode 100644 index 0000000..7f53765 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ApplicationWindow.qml @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +PageStackWindow { + + Component.onCompleted: { + print("Warning: ApplicationWindow is deprecated, use PageStackWindow instead"); + } + +} diff --git a/mardrone/imports/Qt/labs/components/native/ApplicationWindowStyle.qml b/mardrone/imports/Qt/labs/components/native/ApplicationWindowStyle.qml new file mode 100644 index 0000000..82e4a4b --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ApplicationWindowStyle.qml @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Style { + property bool cornersVisible: true + + // Background + property url background: "image://theme/meegotouch-applicationpage-background"+__invertedString +} diff --git a/mardrone/imports/Qt/labs/components/native/BasicRow.js b/mardrone/imports/Qt/labs/components/native/BasicRow.js new file mode 100644 index 0000000..09460a0 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/BasicRow.js @@ -0,0 +1,98 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +var children = [] + +function cleanup() +{ + var length = children.length; + + for (var i = 0; i < length; i++) { + var item = children[i]; + + item.widthChanged.disconnect(relayout); + item.heightChanged.disconnect(relayout); + item.visibleChanged.disconnect(relayout); + } + + children = []; +} + +function updateChildren() +{ + cleanup(); + + var length = row.children.length; + + for (var i = 0; i < length; i++) { + var item = row.children[i]; + + item.widthChanged.connect(relayout); + item.heightChanged.connect(relayout); + item.visibleChanged.connect(relayout); + + children.push(item); + } + + relayout(); +} + +function relayout() +{ + var ix = 0; + var ih = 0; + + var length = children.length; + + for (var i = 0; i < length; i++) { + var item = children[i]; + + if (!item.visible) + continue; + + item.x = ix; + item.y = 0; + ih = Math.max(ih, item.height); + ix += item.width; + } + + row.width = ix; + row.height = ih; +} diff --git a/mardrone/imports/Qt/labs/components/native/BasicRow.qml b/mardrone/imports/Qt/labs/components/native/BasicRow.qml new file mode 100644 index 0000000..f4b943f --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/BasicRow.qml @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "BasicRow.js" as Private + +/* + This element should be used in place of the Row element to + avoid visual artifacts during the relayout operation. + + The QML Row element updates its children position using a + singleShot, so a paint operation could happen before the items + are positioned in the right place. + + This element reposition its children immediately to avoid this, + so it's recommended to be used with just a few elements, since + it's not optimized. + + This element can be removed when the following bug is solved: + http://bugreports.qt.nokia.com/browse/QTBUG-18919 +*/ + +Item { + id: row + + onChildrenChanged: Private.updateChildren(); + Component.onCompleted: Private.updateChildren(); +} diff --git a/mardrone/imports/Qt/labs/components/native/BusyIndicator.qml b/mardrone/imports/Qt/labs/components/native/BusyIndicator.qml new file mode 100644 index 0000000..0f3688a --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/BusyIndicator.qml @@ -0,0 +1,98 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +import "UIConstants.js" as UI +import "TextAreaHelper.js" as AreaHelper + +// ### Display Entered / Exited! Pause animation when not "on display". +// ### LayoutDirection + +ImplicitSizeItem { + id: root + + property bool running: false + + property Style platformStyle: BusyIndicatorStyle{} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + implicitWidth: platformStyle.size == "small" ? 24 : platformStyle.size == "medium" ? 32 : 96; + implicitHeight: implicitWidth + + QtObject { + id: internal + property Flickable flick + property bool offScreen: false + } + + Image { + id: spinner + property int index: 1 + source: root.platformStyle.spinnerFrames + "_" + root.implicitWidth + "_" + index + smooth: true + + NumberAnimation on index { + from: 1; to: root.platformStyle.numberOfFrames + duration: root.platformStyle.period + running: root.running && root.visible && Qt.application.active && !internal.offScreen + loops: Animation.Infinite + } + } + + Connections { + target: internal.flick + + onMovementStarted: internal.offScreen = false + + onMovementEnded: { + var pos = mapToItem(internal.flick, 0, 0) + internal.offScreen = (pos.y + root.height <= 0) || (pos.y >= internal.flick.height) || (pos.x + root.width <= 0) || (pos.x >= internal.flick.width) + } + } + + Component.onCompleted: { + var flick = AreaHelper.findFlickable() + if (flick) + internal.flick = flick + } +} diff --git a/mardrone/imports/Qt/labs/components/native/BusyIndicatorStyle.qml b/mardrone/imports/Qt/labs/components/native/BusyIndicatorStyle.qml new file mode 100644 index 0000000..445df17 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/BusyIndicatorStyle.qml @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + property string size: "medium" + property int period: 1000 + + property int numberOfFrames: 10 + + __invertedString: inverted? "inverted" : "" // The spinner frames do not follow the common inverted file naming :( + + property url spinnerFrames: "image://theme/spinner"+__invertedString +} diff --git a/mardrone/imports/Qt/labs/components/native/Button.qml b/mardrone/imports/Qt/labs/components/native/Button.qml new file mode 100644 index 0000000..fe8f66a --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/Button.qml @@ -0,0 +1,146 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import Qt.labs.components 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +ImplicitSizeItem { + id: button + + // Common public API + property bool checked: false + property bool checkable: false + property alias pressed: mouseArea.pressed + property alias text: label.text + property url iconSource + property alias platformMouseAnchors: mouseArea.anchors + + signal clicked + + // Used in ButtonGroup.js to set the segmented look on the buttons. + property string __buttonType + + // Styling for the Button + property Style platformStyle: ButtonStyle {} + + // Deprecated, TODO remove + property alias style: button.platformStyle + + implicitWidth: platformStyle.buttonWidth + implicitHeight: platformStyle.buttonHeight + width: implicitWidth + + property alias font: label.font + + //private property + property bool __dialogButton: false + + BorderImage { + id: background + anchors.fill: parent + border { left: button.platformStyle.backgroundMarginLeft; top: button.platformStyle.backgroundMarginTop; + right: button.platformStyle.backgroundMarginRight; bottom: button.platformStyle.backgroundMarginBottom } + + source: __dialogButton ? (pressed ? button.platformStyle.pressedDialog : button.platformStyle.dialog) : + !enabled ? + (checked ? button.platformStyle.checkedDisabledBackground : button.platformStyle.disabledBackground) : + pressed ? + button.platformStyle.pressedBackground : + checked ? + button.platformStyle.checkedBackground : + button.platformStyle.background; + } + + Image { + id: icon + anchors.left: label.visible ? parent.left : undefined + anchors.leftMargin: label.visible ? UI.MARGIN_XLARGE : 0 + anchors.centerIn: label.visible ? undefined : parent + + anchors.verticalCenter: parent.verticalCenter + anchors.verticalCenterOffset: -1 + + source: button.iconSource + + visible: source != "" + } + + Label { + id: label + anchors.verticalCenter: parent.verticalCenter + anchors.left: icon.visible ? icon.right : parent.left + anchors.leftMargin: icon.visible ? UI.PADDING_XLARGE : UI.BUTTON_LABEL_MARGIN + anchors.right: parent.right + anchors.rightMargin: UI.BUTTON_LABEL_MARGIN + + horizontalAlignment: icon.visible ? Text.AlignLeft : button.platformStyle.horizontalAlignment + elide: Text.ElideRight + + font.family: button.platformStyle.fontFamily + font.weight: checked ? button.platformStyle.checkedFontWeight : button.platformStyle.fontWeight + font.pixelSize: button.platformStyle.fontPixelSize + font.capitalization: button.platformStyle.fontCapitalization + color: !enabled ? button.platformStyle.disabledTextColor : + pressed ? button.platformStyle.pressedTextColor : + checked ? button.platformStyle.checkedTextColor : + button.platformStyle.textColor; + text: "" + visible: text != "" + } + + MouseArea { + id: mouseArea + anchors { + fill: parent + rightMargin: (platformStyle.position != "horizontal-center" + && platformStyle.position != "horizontal-left") ? platformStyle.mouseMarginRight : 0 + leftMargin: (platformStyle.position != "horizontal-center" + && platformStyle.position != "horizontal-right") ? platformStyle.mouseMarginLeft : 0 + topMargin: (platformStyle.position != "vertical-center" + && platformStyle.position != "vertical-bottom") ? platformStyle.mouseMarginTop : 0 + bottomMargin: (platformStyle.position != "vertical-center" + && platformStyle.position != "vertical-top") ? platformStyle.mouseMarginBottom : 0 + } + onClicked: if (button.checkable) button.checked = !button.checked + } + Component.onCompleted: mouseArea.clicked.connect(clicked) +} diff --git a/mardrone/imports/Qt/labs/components/native/ButtonColumn.qml b/mardrone/imports/Qt/labs/components/native/ButtonColumn.qml new file mode 100644 index 0000000..f73a2a5 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ButtonColumn.qml @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +import "ButtonGroup.js" as Private +import "UIConstants.js" as UI + +Column { + id: root + + property bool exclusive: true + property Item checkedButton + + property Component platformStyle: null + property Component style: null + + width: UI.BUTTON_WIDTH + + Component.onCompleted: { + Private.create(root, { + "orientation": Qt.Vertical, + "exclusive": exclusive, + "styleComponent": platformStyle? platformStyle : style, + "singlePos": "", + "firstPos": "vertical-top", + "middlePos": "vertical-center", + "lastPos": "vertical-bottom", + "resizeChildren": function(self) { + Private.buttons.forEach(function(item, i) { + if (Private.isButton(item) && item.visible) { + item.anchors.left = self.left; + item.anchors.right = self.right; + } + }); + } + }); + } + + Component.onDestruction: { + Private.destroy(); + } +} diff --git a/mardrone/imports/Qt/labs/components/native/ButtonGroup.js b/mardrone/imports/Qt/labs/components/native/ButtonGroup.js new file mode 100644 index 0000000..623190a --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ButtonGroup.js @@ -0,0 +1,263 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/// Helper code that is shared between ButtonRow.qml and ButtonColumn.qml. + +var self = undefined; +var checkedButton = null; +var buttons = []; +var firstVisible = -1; +var lastVisible = -1; +var visibleButtons = 0; +var buttonHandlers = []; +var styleComponent = undefined; +var params = undefined; + +function isButton(item) { + return (item && item.hasOwnProperty("__buttonType")); +} + +function hasChecked(item) { + return (item && item.hasOwnProperty("checked")); +} + +function cleanup() { + buttons.forEach(function(button, i) { + if (button.visible && params.exclusive) { + button.checkedChanged.disconnect(buttonHandlers[i]); + } + if (isButton(button)) + button.visibleChanged.disconnect(buttonVisibleChanged); + }); + buttons = []; + buttonHandlers = []; +} + +function updateButtons() { + cleanup(); + + params.exclusive = self.exclusive; + + checkedButton = null; + var length = self.children.length; + for (var i = 0; i < length; i++) { + var item = self.children[i]; + if (!hasChecked(item)) + continue; + buttons.push(item); + + item.visibleChanged.connect(buttonVisibleChanged); + + if (item.checked) { + if (!checkedButton && (self.checkedButton === item || self.checkedButton == undefined)) + checkedButton = item; + else if (params.exclusive && self.checkedButton != item) + item.checked = false; + } else if (self.checkedButton === item) { + if (checkedButton && params.exclusive) + checkedButton.checked = false; + checkedButton = item; + item.checked = true; + } + + if (isButton(item)) { + if (styleComponent) + item.platformStyle = styleComponent.createObject(item) + + // Only ButtonRow supports tab buttons and care about screen orientation + if (params.orientation == Qt.Horizontal && item.platformStyle.hasOwnProperty("screenOrientation")) + switch (screen.currentOrientation) { + case Screen.Portrait: + case Screen.PortraitInverted: + item.platformStyle.screenOrientation = "portrait"; + break; + case Screen.Landscape: + case Screen.LandscapeInverted: + item.platformStyle.screenOrientation = "landscape"; + break; + } + } + if (params.exclusive) { + if (item["checkable"] !== undefined) + item.checkable = true; + var last = buttonHandlers.push(checkExclusive(item)); + item.checkedChanged.connect(buttonHandlers[last - 1]); + } + } + + if (!checkedButton && buttons.length > 0 && params.exclusive) { + checkedButton = buttons[0]; + checkedButton.checked = true; + } + self.checkedButton = checkedButton; + + buttonVisibleChanged(); +} + +var blockCheckedChanged = false; + +function checkExclusive(item) { + var button = item; + return function() { + if (blockCheckedChanged) + return; + if (!button.checked) { + if (self.checkedButton === button) { + blockCheckedChanged = true; + button.checked = true; + blockCheckedChanged = false; + } + return; + } + if (self.checkedButton === button) + return; + if (self.checkedButton) { + blockCheckedChanged = true; + self.checkedButton.checked = false; + blockCheckedChanged = false; + } + checkedButton = button; + self.checkedButton = button; + } +} + +function checkedButtonChanged() { + if (checkedButton === self.checkedButton) + return; + blockCheckedChanged = true; + if (params.exclusive && checkedButton) + checkedButton.checked = false; + if (self.checkedButton) + self.checkedButton.checked = true; + blockCheckedChanged = false; + checkedButton = self.checkedButton; +} + +function buttonVisibleChanged() { + visibleButtons = 0; + firstVisible = -1; + lastVisible = -1; + buttons.forEach(function (button, i) { + if (button.visible) { + if (firstVisible === -1) + firstVisible = i; + lastVisible = i; + visibleButtons++; + } + }); + + updateGroupPosition(); + resizeChildren(); +} + +function updateGroupPosition() { + if (visibleButtons === 0) + return; + + // Fix the children group position + if (visibleButtons == 1) { + if (isButton(buttons[firstVisible])) + buttons[firstVisible].platformStyle.position = params.singlePos; + } else { + if (isButton(buttons[firstVisible])) + buttons[firstVisible].platformStyle.position = params.firstPos; + for (var i = firstVisible + 1; i < lastVisible; i++) { + if (buttons[i].visible && isButton(buttons[i])) + buttons[i].platformStyle.position = params.middlePos; + } + if (isButton(buttons[lastVisible])) + buttons[lastVisible].platformStyle.position = params.lastPos; + } +} + +var resizing = false; // resizeChildren() may trigger reentrant calls + +function resizeChildren() { + if (resizing || visibleButtons === 0) + return; + + if (typeof params.resizeChildren === "function") { + resizing = true; + params.resizeChildren(self); + resizing = false; + } +} + +function create(s, p) { + if (!s) { + console.log("Error creating ButtonGroup: invalid owner."); + return; + } + if (!s.hasOwnProperty("checkedButton")) { + console.log("Error creating ButtonGroup: owner has no 'checkedButton' property."); + return; + } + + self = s; + params = p; + + styleComponent = params.styleComponent; + + if (styleComponent && styleComponent.status != Component.Ready) { + console.log("Error loading style:", styleComponent.errorString()); + return + } + + updateButtons(); + self.checkedButtonChanged.connect(checkedButtonChanged); + self.childrenChanged.connect(updateButtons); + self.exclusiveChanged.connect(Private.updateButtons); + self.widthChanged.connect(resizeChildren); +} + +function destroy() { + if (self) { + self.checkedButtonChanged.disconnect(checkedButtonChanged); + self.childrenChanged.disconnect(updateButtons); + self.widthChanged.disconnect(resizeChildren); + self = undefined; + } + if (styleComponent) { + styleComponent.destroy(); + styleComponent = undefined; + } + cleanup(); +} + diff --git a/mardrone/imports/Qt/labs/components/native/ButtonRow.qml b/mardrone/imports/Qt/labs/components/native/ButtonRow.qml new file mode 100644 index 0000000..bc49b59 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ButtonRow.qml @@ -0,0 +1,94 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +import "ButtonGroup.js" as Private +import "UIConstants.js" as UI + +Row { + id: root + + property bool exclusive: true + property Item checkedButton + + property Component platformStyle: null + property Component style: null + + property int __screenWidth: (screen.rotation === 0 || screen.rotation === 180 ? screen.displayWidth : screen.displayHeight) - 2 * UI.MARGIN_XLARGE + property int __visibleButtons + property bool __expanding: true // Layout hint used but ToolBarLayout + property int __maxButtonSize: UI.BUTTON_WIDTH + + width: Math.min(__visibleButtons * UI.BUTTON_WIDTH, __screenWidth) + Component.onCompleted: { + Private.create(root, { + "orientation": Qt.Horizontal, + "exclusive": exclusive, + "styleComponent": platformStyle? platformStyle : style, + "singlePos": "", + "firstPos": "horizontal-left", + "middlePos": "horizontal-center", + "lastPos": "horizontal-right", + "resizeChildren": function(self) { + self.__visibleButtons = Private.visibleButtons; + var extraPixels = self.width % Private.visibleButtons; + var buttonSize = Math.min(__maxButtonSize, (self.width - extraPixels) / Private.visibleButtons); + Private.buttons.forEach(function(item, i) { + if (!item || !item.visible || !Private.isButton(item)) + return; + if (extraPixels > 0) { + item.width = buttonSize + 1; + extraPixels--; + } else { + item.width = buttonSize; + } + }); + } + }); + screen.currentOrientationChanged.connect(Private.updateButtons); + } + + Component.onDestruction: { + screen.currentOrientationChanged.disconnect(Private.updateButtons); + Private.destroy(); + } +} diff --git a/mardrone/imports/Qt/labs/components/native/ButtonStyle.qml b/mardrone/imports/Qt/labs/components/native/ButtonStyle.qml new file mode 100644 index 0000000..fe62cf0 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ButtonStyle.qml @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + // Font + property string fontFamily: UI.FONT_FAMILY + property int fontPixelSize: UI.FONT_DEFAULT_SIZE + property int fontCapitalization: Font.MixedCase + property int fontWeight: Font.Bold + property int checkedFontWeight: Font.Bold + property int horizontalAlignment: Text.AlignHCenter + + // Text Color + property color textColor: inverted ? UI.COLOR_BUTTON_INVERTED_FOREGROUND : UI.COLOR_BUTTON_FOREGROUND + property color pressedTextColor: UI.COLOR_BUTTON_SECONDARY_FOREGROUND + property color disabledTextColor: UI.COLOR_BUTTON_DISABLED_FOREGROUND + property color checkedTextColor: UI.COLOR_BUTTON_INVERTED_FOREGROUND + + // Dimensions + property int buttonWidth: UI.BUTTON_WIDTH + property int buttonHeight: UI.BUTTON_HEIGHT + + // Mouse + property real mouseMarginRight: 0.0 + property real mouseMarginLeft: 0.0 + property real mouseMarginTop: 0.0 + property real mouseMarginBottom: 0.0 + + // Background + property int backgroundMarginRight: 22 + property int backgroundMarginLeft: 22 + property int backgroundMarginTop: 22 + property int backgroundMarginBottom: 22 + + /* The position property can take one of the following values: + + [horizontal-left] [horizontal-center] [horizontal-right] + + [vertical-top] + [vertical-center] + [vertical-bottom] + */ + property string position: "" + + property url background: "image://theme/meegotouch-button" + __invertedString + "-background" + (position ? "-" + position : "") + property url pressedBackground: "image://theme/" + __colorString + "meegotouch-button" + __invertedString + "-background-pressed" + (position ? "-" + position : "") + property url disabledBackground: "image://theme/meegotouch-button" + __invertedString + "-background-disabled" + (position ? "-" + position : "") + property url checkedBackground: "image://theme/" + __colorString + "meegotouch-button" + __invertedString + "-background-selected" + (position ? "-" + position : "") + property url checkedDisabledBackground: "image://theme/" + __colorString + "meegotouch-button" + __invertedString + "-background-disabled-selected" + (position ? "-" + position : "") + property url dialog: "image://theme/meegotouch-dialog-button-negative" + property url pressedDialog: "image://theme/meegotouch-dialog-button-negative-pressed" + +} diff --git a/mardrone/imports/Qt/labs/components/native/CheckBox.qml b/mardrone/imports/Qt/labs/components/native/CheckBox.qml new file mode 100644 index 0000000..fd7c190 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/CheckBox.qml @@ -0,0 +1,136 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import Qt.labs.components 1.1 + +import "UIConstants.js" as UI + +ImplicitSizeItem { + id: checkbox + + property Style platformStyle: CheckBoxStyle{} + property alias platformMouseAnchors: mouseArea.anchors + + //Deprecated, TODO Remove this on w13 + property alias style: checkbox.platformStyle + + property string text + property bool checked: false + property bool pressed + signal clicked + + implicitWidth: image.width + body.spacing + label.implicitWidth + implicitHeight: body.height + + onWidthChanged: if (width > 0 && width != implicitWidth) + label.width = checkbox.width - body.spacing - image.width + + Binding { + target: checkbox + property: "pressed" + value: mouseArea.pressed && mouseArea.containsMouse + } + + property alias __imageSource: image.source + + function __handleChecked() { + checkbox.checked = !checkbox.checked; + } + + Row { + id: body + spacing: 15 + + BorderImage { + id: image + smooth: true + + width: 42; height: 42 + + source: !checkbox.enabled ? platformStyle.backgroundDisabled : + checkbox.pressed ? platformStyle.backgroundPressed : + checkbox.checked ? platformStyle.backgroundSelected : + platformStyle.background + + border { + left: 4 + top: 4 + right: 4 + bottom: 4 + } + } + + Label { + id: label + anchors.verticalCenter: image.verticalCenter + text: checkbox.text + elide: checkbox.platformStyle.elideMode + } + } + + MouseArea { + id: mouseArea + + anchors.fill: body + anchors.topMargin: platformStyle.mouseMarginTop + anchors.leftMargin: platformStyle.mouseMarginLeft + anchors.rightMargin: platformStyle.mouseMarginRight + anchors.bottomMargin: platformStyle.mouseMarginBottom + + onPressed: { + // TODO: enable feedback without old themebridge + // if (checkbox.checked) + // meegostyle.feedback("pressOnFeedback"); + // else + // meegostyle.feedback("pressOffFeedback"); + } + + onClicked: { + __handleChecked(); + // TODO: enable feedback without old themebridge + // if (checkbox.checked) + // meegostyle.feedback("releaseOnFeedback"); + // else + // meegostyle.feedback("releaseOffFeedback"); + } + } + Component.onCompleted: mouseArea.clicked.connect(clicked) +} diff --git a/mardrone/imports/Qt/labs/components/native/CheckBoxStyle.qml b/mardrone/imports/Qt/labs/components/native/CheckBoxStyle.qml new file mode 100644 index 0000000..5c9aeca --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/CheckBoxStyle.qml @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + // Background + property url background: "image://theme/meegotouch-button-checkbox"+__invertedString+"-background" + property url backgroundSelected: "image://theme/" + __colorString + "meegotouch-button-checkbox"+__invertedString+"-background-selected" + property url backgroundPressed: "image://theme/" + __colorString + "meegotouch-button-checkbox"+__invertedString+"-background-pressed" + property url backgroundDisabled: "image://theme/" + __colorString + "meegotouch-button-checkbox"+__invertedString+"-background-disabled" + + // Mouse area margins + property int mouseMarginTop: 0 + property int mouseMarginLeft: 0 + property int mouseMarginRight: 0 + property int mouseMarginBottom: 0 + property int elideMode: Text.ElideNone +} diff --git a/mardrone/imports/Qt/labs/components/native/CommonDialog.qml b/mardrone/imports/Qt/labs/components/native/CommonDialog.qml new file mode 100644 index 0000000..c7acf5f --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/CommonDialog.qml @@ -0,0 +1,164 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Dialog { + id: genericDialog + + property string titleText: "" + + property Style platformStyle: SelectionDialogStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: genericDialog.platformStyle + + //private + property bool __drawFooterLine: false + + title: Item { + id: header + height: genericDialog.platformStyle.titleBarHeight + + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + anchors.bottom: parent.bottom + + Item { + id: labelField + + anchors.fill: parent + + Item { + id: labelWrapper + anchors.left: labelField.left + anchors.right: closeButton.left + + anchors.bottom: parent.bottom + anchors.bottomMargin: genericDialog.platformStyle.titleBarLineMargin + + //anchors.verticalCenter: labelField.verticalCenter + + height: titleLabel.height + + Label { + id: titleLabel + x: genericDialog.platformStyle.titleBarIndent + width: parent.width - closeButton.width + //anchors.baseline: parent.bottom + font: genericDialog.platformStyle.titleBarFont + color: genericDialog.platformStyle.commonLabelColor + elide: genericDialog.platformStyle.titleElideMode + text: genericDialog.titleText + } + + } + + Image { + id: closeButton + anchors.bottom: parent.bottom + anchors.bottomMargin: genericDialog.platformStyle.titleBarLineMargin-6 + //anchors.verticalCenter: labelField.verticalCenter + anchors.right: labelField.right + + opacity: closeButtonArea.pressed ? 0.5 : 1.0 + + source: "image://theme/icon-m-common-dialog-close" + + MouseArea { + id: closeButtonArea + anchors.fill: parent + onClicked: {genericDialog.reject();} + } + + } + + } + + Rectangle { + id: headerLine + + anchors.left: parent.left + anchors.right: parent.right + + anchors.bottom: header.bottom + + height: 1 + + color: "#4D4D4D" + } + + } + + content: Item {id: contentField} + + buttons: Item { + id: footer + + width: parent.width + height: childrenRect.height + + //hack to make sure, we're evaluating the correct height + Item { + id: lineWrapper + width: parent.width + height: childrenRect.height + y: 10 + + Rectangle { + id: footerLine + + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + height: genericDialog.__drawFooterLine ? 1 : 0 + + color: "#4D4D4D" + } + } + + //ugly hack to assure, that we're always evaluating the correct height + Item {id: dummy; anchors.fill: parent} + + } + +} diff --git a/mardrone/imports/Qt/labs/components/native/ContextMenu.qml b/mardrone/imports/Qt/labs/components/native/ContextMenu.qml new file mode 100644 index 0000000..0299cc5 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ContextMenu.qml @@ -0,0 +1,118 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +AbstractMenu { + id: root + + // API + property string platformTitleText + property string titleText + property url platformIcon + property url icon + + // platformStyle API + property Style platformStyle: ContextMenuStyle{} + property Style style: ContextMenuStyle{} + + onPlatformTitleTextChanged: logDeprecatedMsg("platformTitleText") + onTitleTextChanged: logDeprecatedMsg("titleText") + onPlatformIconChanged: logDeprecatedMsg("platformIcon") + onIconChanged: logDeprecatedMsg("iconChanged") + onPlatformStyleChanged: logDeprecatedMsg("platformStyle") + onStyleChanged: logDeprecatedMsg("style") + + function logDeprecatedMsg(name) { + console.log("Warning: " + name + " is deprecated"); + } + + + __statesWrapper.transitions: [ + Transition { + from: "visible"; to: "hidden" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "hidden"; + root.status = DialogStatus.Closing; + } + } + + NumberAnimation {target: __menuPane; + property: screen.currentOrientation == Screen.Portrait ? "anchors.bottomMargin" : "anchors.rightMargin"; + easing.type: Easing.InOutQuint; + to: screen.currentOrientation == Screen.Portrait ? -__menuPane.height : -__menuPane.width; + from: 0; duration: 350} + + NumberAnimation {target: __menuPane; property: "opacity"; + from: 1.0; to: 0.0; duration: 0} + + ScriptAction {script: { + status = DialogStatus.Closed; + } + } + } + }, + Transition { + from: "hidden"; to: "visible" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "visible"; + root.status = DialogStatus.Opening; + __menuPane.anchors.rightMargin = 0; + __menuPane.anchors.bottomMargin = 0; + } + } + + NumberAnimation {target: __menuPane; + property: screen.currentOrientation == Screen.Portrait ? "anchors.bottomMargin" : "anchors.rightMargin"; + easing.type: Easing.InOutQuint; + from: screen.currentOrientation == Screen.Portrait ? -__menuPane.height : -__menuPane.width; + to: 0; duration: 350} + + ScriptAction {script: { + status = DialogStatus.Open; + } + } + } + } + ] +} diff --git a/mardrone/imports/Qt/labs/components/native/ContextMenuStyle.qml b/mardrone/imports/Qt/labs/components/native/ContextMenuStyle.qml new file mode 100644 index 0000000..05e0eb8 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ContextMenuStyle.qml @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +MenuStyle { + id: root + property string titleFontFamily: UI.FONT_FAMILY + property int titleFontPixelSize: UI.FONT_SMALL + property int titleFontCapitalization: Font.MixedCase + property color titleTextColor: "white" + + property int titleBarHeight: 56 + + // fader properties + property double dim: 0.9 + property int fadeInDuration: 250 // ms + property int fadeOutDuration: 350 // ms + property int fadeInDelay: 0 // ms + property int fadeOutDelay: 0 // ms + property int fadeInEasingType: Easing.OutQuint + property int fadeOutEasingType: Easing.InOutQuint + property string faderBackground: "image://theme/meegotouch-menu-dimmer" +} diff --git a/mardrone/imports/Qt/labs/components/native/Dialog.qml b/mardrone/imports/Qt/labs/components/native/Dialog.qml new file mode 100644 index 0000000..f17df1c --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/Dialog.qml @@ -0,0 +1,323 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Popup { + id: root + objectName: "baseDialog" + + // API + property alias title: titleBar.children + property alias content: contentField.children + property alias buttons: buttonRow.children + + signal accepted + signal rejected + + property Style platformStyle: DialogStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + // private api + property string __animationChief: "baseDialog" + __dim: platformStyle.dim + __fadeInDuration: platformStyle.fadeInDuration + __fadeOutDuration: platformStyle.fadeOutDuration + __fadeInDelay: platformStyle.fadeInDelay + __fadeOutDelay: platformStyle.fadeOutDelay + + // true: center of the content field is center of the background rect + // false: the whole dialog is centered + property bool __centerContentField: false + + width: parent.width - platformStyle.leftMargin - platformStyle.rightMargin // ToDo: better width heuristic + height: titleBar.height + contentField.height + buttonRow.height + + anchors.centerIn: parent + + function reject() { + close(); + rejected(); + } + + function accept() { + close(); + accepted(); + } + + // this item contains the whole dialog (title bar + content rectangle, button row) + Item { + id: backgroundRect + + height: root.height + width: root.width + + anchors.centerIn: root + + // center the whole dialog, not just the content field + transform: Translate { + id: contentTranslation + y: root.__centerContentField ? 0 : (titleBar.height - buttonRow.height) / 2 + } + + + // title bar + Item { + id: titleBar + + width: root.width + height: childrenRect.height + + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: contentField.top + + // animate over bottomMargin (i.e. the distance between the content field) + anchors.bottomMargin: 0 + + } + + //content area + Item { + id: contentField + + anchors.left: parent.left + //anchors.right: parent.right + + anchors.horizontalCenter: backgroundRect.horizontalCenter + anchors.verticalCenter: backgroundRect.verticalCenter + + height: childrenRect.height + + transform: Scale { + id: contentScale + xScale: 1.0; yScale: 1.0 + origin.x: mapFromItem(root, root.width / 2, root.height / 2).x + origin.y: mapFromItem(root, root.width / 2, root.height / 2).y + + } + + } + + //button row + Item { + id: buttonRow + + anchors.left: parent.left + anchors.right: parent.right + + anchors.top: contentField.bottom + + // animate over topMargin (i.e. the distance between the content field) + anchors.topMargin: 0 + + height: childrenRect.height + } + + } + + onPrivateClicked: reject() + + StateGroup { + id: statesWrapper + + state: "hidden" + + // needed for button and title bar animation + // without resetting the button row's/title bar's coordinate system would be translated + property int __buttonSaver: buttonRow.y + property int __titleSaver: titleBar.y + + + states: [ + State { + name: "visible" + when: root.__animationChief == "baseDialog" && (status == DialogStatus.Opening || status == DialogStatus.Open) + PropertyChanges { + target: backgroundRect + opacity: 1.0 + } + }, + State { + name: "hidden" + when: root.__animationChief == "baseDialog" && (status == DialogStatus.Closing || status == DialogStatus.Closed) + PropertyChanges { + target: backgroundRect + opacity: 0.0 + } + } + ] + + transitions: [ + Transition { + from: "visible"; to: "hidden" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "hidden"; + + backgroundRect.opacity = 1.0; + root.opacity = 1.0 + + statesWrapper.__buttonSaver = buttonRow.y + statesWrapper.__titleSaver = titleBar.y + root.status = DialogStatus.Closing; + } + } + + // With a 100ms delay the background fades to alpha 0% (500ms, quint ease out). + // --> done in the fader + + PropertyAnimation { target: root; properties: "opacity"; from: 0.0; to: 1.0; duration: 0 } + PropertyAnimation { target: backgroundRect; properties: "opacity"; from: 0.0; to: 1.0; duration: 0 } + + // The closing transition starts with the title and both lines dimming to + // alpha 0% and moving 100 pixels in Y axis towards the center (125ms, + // quint ease in). With no delay the list fades to alpha 0% and scales to + // 80% (anchorpoint in the middle of the list, 100ms, quint ease in). + ParallelAnimation { + PropertyAnimation {target: contentField; properties: "opacity"; from: 1.0; to: 0.0; duration: 100} + PropertyAnimation {target: titleBar; properties: "opacity"; from: 1.0; to: 0.0; duration: 125} + PropertyAnimation {target: contentScale; properties: "xScale,yScale"; from: 1.0 ; to: 0.8; duration: 100; easing.type: Easing.InQuint } + PropertyAnimation {target: buttonRow; properties: "opacity"; from: 1.0; to: 0.0; duration: 125} + PropertyAnimation {target: buttonRow + properties: "anchors.topMargin" + from: 0 + to: -100 + duration: 125 + easing.type: Easing.InQuint + } + PropertyAnimation {target: titleBar + properties: "anchors.topMargin" + from: 0 + to: 100 + duration: 125 + easing.type: Easing.InQuint + } + } + + ScriptAction {script: { + // reset button and title bar + buttonRow.y = statesWrapper.__buttonSaver + titleBar.y = statesWrapper.__titleSaver + // make sure, root isn't visible: + backgroundRect = 0.0; + root.opacity = 0.0; + status = DialogStatus.Closed; + + } + } + } + }, + Transition { + from: "hidden"; to: "visible" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "visible"; + + statesWrapper.__buttonSaver = buttonRow.y + statesWrapper.__titleSaver = titleBar.y + + root.status = DialogStatus.Opening; + // UPPERCASE-UGLY, but necessary to avoid flicker + root.opacity = 1.0; + titleBar.opacity = 0.0; + contentField.opacity = 0.0; + buttonRow.opacity = 0.0; + } + } + + // The opening transition starts by dimming the background to 90% (250ms, + // quint ease in). --> Done inside the fader + + ParallelAnimation { + SequentialAnimation { + // a 250ms delay from the beginning + PauseAnimation { duration: 250 } + // the list scales from 80% to 100% and alpha 0% + // to 100% (anchorpoint in the middle of the list, 250ms, expo ease out) + ParallelAnimation { + PropertyAnimation {target: contentField; properties: "opacity"; from: 0.0; to: 1.0; duration: 250} + PropertyAnimation {target: contentScale; properties: "xScale,yScale"; from: 0.8 ; to: 1.0; duration: 250; easing.type: Easing.OutExpo} + } + } + SequentialAnimation { + // a 200ms delay from the beginning + PauseAnimation { duration: 200 } + ParallelAnimation { + //the title and both lines come from alpha 0% + PropertyAnimation {target: buttonRow; properties: "opacity"; from: 0.0; to: 1.0; duration: 450; } + PropertyAnimation {target: titleBar; properties: "opacity"; from: 0.0; to: 1.0; duration: 450; } + // and move towards the edges (40 pixels in Y axis + // away from their final destination, 450ms, custom ease). + PropertyAnimation {target: buttonRow; properties: "anchors.topMargin" + from: -40 + to: 0 + duration: 450 + easing.type: Easing.OutBack + } + PropertyAnimation {target: titleBar; properties: "anchors.bottomMargin" + from: 40 + to: 0 + duration: 450 + easing.type: Easing.OutBack + } + + } + } + } + + ScriptAction {script: { + + // reset button and title bar + buttonRow.y = statesWrapper.__buttonSaver + titleBar.y = statesWrapper.__titleSaver + + root.status = DialogStatus.Open; + } + } + } + } + ] + } + +} diff --git a/mardrone/imports/Qt/labs/components/native/DialogStyle.qml b/mardrone/imports/Qt/labs/components/native/DialogStyle.qml new file mode 100644 index 0000000..fdaff8c --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/DialogStyle.qml @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + property real leftMargin: 88 + property real rightMargin: 88 + property real topMargin: 45 + property real bottomMargin: 16 + property bool centered: false + + property int titleBarHeight: 56 + property color titleBarColor: "white" + property int titleElideMode: Text.ElideRight + + property int buttonsTopMargin: 10 + property int buttonsBottomMargin: 0 + property int buttonsColumnSpacing: 10 + + // fader properties + property double dim: 0.9 + property int fadeInDuration: 250 // ms + property int fadeOutDuration: 250 // ms + + property int fadeInDelay: 0 // ms + property int fadeOutDelay: 100 // m + + property int fadeInEasingType: Easing.InQuint + property int fadeOutEasingType: Easing.OutQuint + +} diff --git a/mardrone/imports/Qt/labs/components/native/EditBubble.js b/mardrone/imports/Qt/labs/components/native/EditBubble.js new file mode 100644 index 0000000..cc51f63 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/EditBubble.js @@ -0,0 +1,228 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +.pragma library + +Qt.include("Utils.js"); +Qt.include("UIConstants.js"); + +var popup = null; + +function init(item) +{ + if (popup != null) + return true; + + var root = findRootItem(item); + + // create root popup + var component = Qt.createComponent("EditBubble.qml"); + + // due the pragma we cannot access Component.Ready + if (component) + popup = component.createObject(root); + + return popup != null; +} + +/* + Open a shared edit bubble for a given input item. + + All operations and changes will be binded to the + given item. +*/ +function open(input,position) +{ + if (!input) + return false; + + if (!init(input)) + return false; + + // Position when text not selected. + popup.position = position; + + // need to set before checking capabilities + popup.textInput = input; + + if (popup.valid) + popup.state = "opened"; + else + popup.textInput = null; + + return popup.textInput != null; +} + +/* + Close the shared edit bubble for a given input item. +*/ +function close(input) +{ + if (!popup || !input || popup.textInput != input) + return false; + + return closePopup(popup); +} + +/* + Check if the shared edit bubble is opened for the + given input item. +*/ +function isOpened(input) +{ + return (popup && popup.textInput == input); +} + +/* + Check if the bubble is in the middle of a text + change operation. +*/ +function isChangingInput() +{ + return (popup && popup.privateRect.changingText); +} + +/* + Close a given edit bubble. +*/ +function closePopup(bubble) +{ + if (bubble == null || bubble.textInput == null) + return false; + + bubble.state = "closed"; + bubble.textInput = null; + return true; +} + +/* + Adjust EditBubble position to fit in the visible area. + + If no argument is passed, it will adjust the shared + bubble position if already initialized. +*/ +function adjustPosition(bubble) +{ + if (bubble === undefined) + bubble = popup; + + if (bubble == null) + return; + + var input = bubble.textInput; + var rect = bubble.privateRect; + var viewport = rect.parent; + + if (viewport == null || input == null) + return; + + var irect = input.positionToRectangle(input.selectionStart); + var frect = input.positionToRectangle(input.selectionEnd); + var mid = rect.width / 2; + + if (input.selectionStart == input.selectionEnd) { + irect.x = popup.position.x; + irect.y = popup.position.y; + frect.x = popup.position.x; + frect.y = popup.position.y; + } + + var ipoint = viewport.mapFromItem(input, irect.x, irect.y); + var fpoint = viewport.mapFromItem(input, frect.x, frect.y); + + var px = ipoint.x + (fpoint.x - ipoint.x) / 2 - mid; + var py = ipoint.y - rect.height; + + var SHADOW_SIZE = 6 + + rect.x = Math.min(Math.max(px, MARGIN_XLARGE - SHADOW_SIZE), viewport.width - rect.width); + + if (py > SHADOW_SIZE) { + rect.y = py - SHADOW_SIZE; + rect.arrowDown = true; + } else { + rect.y = Math.min(Math.max(ipoint.y + irect.height, 0), + fpoint.y + frect.height); + rect.arrowDown = false; + } + + var boundX = mid - rect.arrowBorder; + rect.arrowOffset = Math.min(Math.max(-boundX, px - rect.x), boundX); +} + +function updateButtons(row) +{ + var children = row.children; + var visibleItems = new Array(); + + for (var i = 0, j = 0; i < children.length; i++) { + var child = children[i]; + + if (child.visible) + visibleItems[j++] = child; + } + + for (var i = 0; i < visibleItems.length; i++) { + if (visibleItems.length == 1) + visibleItems[i].platformStyle.position = ""; + else { + if (i == 0) + visibleItems[i].platformStyle.position = "horizontal-left"; + else if (i == visibleItems.length - 1) + visibleItems[i].platformStyle.position = "horizontal-right"; + else + visibleItems[i].platformStyle.position = "horizontal-center"; + } + } +} + +function geometry() +{ + if (popup == null) + return; + + var bubbleContent = popup.privateRect; + var rect = {"left": bubbleContent.pos.x, + "right": bubbleContent.pos.x + bubbleContent.width, + "top": bubbleContent.pos.y, + "bottom": bubbleContent.pos.y + bubbleContent.height}; + + return rect; +} diff --git a/mardrone/imports/Qt/labs/components/native/EditBubble.qml b/mardrone/imports/Qt/labs/components/native/EditBubble.qml new file mode 100644 index 0000000..53b8252 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/EditBubble.qml @@ -0,0 +1,218 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "Utils.js" as Utils +import "EditBubble.js" as Private + +Item { + id: bubble + + property Item textInput: null + property bool valid: rect.canCut || rect.canCopy || rect.canPaste + + property alias privateRect: rect + + property Style platformStyle: EditBubbleStyle {} + + property variant position: Qt.point(0,0) + + anchors.fill: parent + + Item { + id: rect + visible: false + width: row.width + height: row.height + + property int arrowOffset: 0 + property int arrowBorder: platformStyle.arrowMargin + property bool arrowDown: true + property bool changingText: false + property bool pastingText: false + + property bool validInput: textInput != null + property bool canCut: rect.canCopy && !textInput.readOnly + + // TextEdit will have echoMode == null + property bool canCopy: textSelected && (textInput.echoMode == null || textInput.echoMode == TextInput.Normal) + property bool canPaste: validInput && (textInput.canPaste && !textInput.readOnly) + property bool textSelected: validInput && (textInput.selectedText != "") + + z: 1020 + + onWidthChanged: { + if (rect.visible) + Private.adjustPosition(bubble); + } + + onHeightChanged: { + if (rect.visible) + Private.adjustPosition(bubble); + } + + BasicRow { + id: row + Component.onCompleted: Private.updateButtons(row); + + EditBubbleButton { + id: buttonCut + text: textTranslator.translate("qtn_comm_cut"); + visible: rect.canCut + onClicked: { + rect.changingText = true; + textInput.cut(); + rect.changingText = false; + Private.closePopup(bubble); + } + onVisibleChanged: Private.updateButtons(row); + } + + EditBubbleButton { + id: buttonCopy + text: textTranslator.translate("qtn_comm_copy"); + visible: rect.canCopy + onClicked: { + textInput.copy(); + Private.closePopup(bubble); + } + onVisibleChanged: Private.updateButtons(row); + } + + EditBubbleButton { + id: buttonPaste + text: textTranslator.translate("qtn_comm_paste"); + visible: rect.canPaste + onClicked: { + rect.changingText = true; + if (textInput.inputMethodComposing) { + var cursorAdjust = textInput.preedit.length - textInput.preeditCursorPosition; + inputContext.reset(); + textInput.cursorPosition -= cursorAdjust; + } + rect.pastingText = true; + var text = textInput.text; + textInput.paste(); + // PastingText is set to false and clipboard is cleared if we catch onTextChanged + if (rect.pastingText && text == textInput.text) { + var root = Utils.findRootItemNotificationBanner(textInput); + + // create notification banner + var bannerInstance = notificationBanner.createObject(root); + bannerInstance.show(); + bannerInstance.timerEnabled = true; + rect.pastingText = false; + } + rect.changingText = false; + Private.closePopup(bubble); + } + + onVisibleChanged: Private.updateButtons(row); + } + + Component { + id : notificationBanner + NotificationBanner{ + id: errorBannerPrivate + text: textTranslator.translate("qtn_comm_cantpaste"); + timerShowTime: 5*1000 + topMargin: 8 + leftMargin: 8 + } + } + } + + Image { + source: platformStyle.bottomTailBackground + visible: rect.arrowDown && bubble.valid + + anchors.bottom: row.bottom + anchors.horizontalCenter: row.horizontalCenter + anchors.horizontalCenterOffset: rect.arrowOffset + } + + Image { + source: platformStyle.topTailBackground + visible: !rect.arrowDown && bubble.valid + + anchors.bottom: row.top + anchors.bottomMargin: -platformStyle.backgroundMarginBottom - 2 + + anchors.horizontalCenter: row.horizontalCenter + anchors.horizontalCenterOffset: rect.arrowOffset + } + } + + state: "closed" + + states: [ + State { + name: "opened" + ParentChange { target: rect; parent: Utils.findRootItem(textInput); } + PropertyChanges { target: rect; visible: true; } + }, + State { + name: "closed" + ParentChange { target: rect; parent: bubble; } + PropertyChanges { target: rect; visible: false; } + } + ] + + Connections { + target: Utils.findFlickable(textInput) + onContentYChanged: Private.adjustPosition(bubble) + } + + Connections { + target: screen + onCurrentOrientationChanged: Private.adjustPosition(bubble) + } + + Connections { + target: textInput + onTextChanged: { + if (rect.pastingText) { + inputContext.clearClipboard(); + rect.pastingText = false; + } + } + } +} diff --git a/mardrone/imports/Qt/labs/components/native/EditBubbleButton.qml b/mardrone/imports/Qt/labs/components/native/EditBubbleButton.qml new file mode 100644 index 0000000..4e591e4 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/EditBubbleButton.qml @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +BorderImage { + id: button + + signal clicked() + property alias text: label.text + property bool selected: false + + property Style platformStyle: EditBubbleButtonStyle {} + + width: label.width + platformStyle.buttonPaddingLeft + + platformStyle.buttonPaddingRight + + platformStyle.backgroundMarginLeft + + platformStyle.backgroundMarginRight + height: platformStyle.buttonHeight + + platformStyle.backgroundMarginTop + + platformStyle.backgroundMarginBottom + + source: { + if (mouseArea.pressed) + return platformStyle.pressedBackground; + + // XXX: meegotouch-text-editor-selected image is missing + if (selected && platformStyle.position != "") + return platformStyle.checkedBackground; + else + return platformStyle.background; + } + + border { + left: platformStyle.backgroundMarginLeft + top: platformStyle.backgroundMarginTop + right: platformStyle.backgroundMarginRight + bottom: platformStyle.backgroundMarginBottom + } + + Text { + id: label + anchors.centerIn: parent + + color: platformStyle.textColor + + font.family: platformStyle.fontFamily + font.weight: platformStyle.fontWeight + font.pixelSize: platformStyle.fontPixelSize + font.capitalization: platformStyle.fontCapitalization + + style: platformStyle.textStyle + styleColor: platformStyle.textStyleColor + } + + MouseArea { + id: mouseArea + enabled: button.enabled + anchors { + fill: parent + leftMargin: platformStyle.mouseMarginLeft + topMargin: platformStyle.mouseMarginTop + rightMargin: platformStyle.mouseMarginRight + bottomMargin: platformStyle.mouseMarginBottom + } + } + Component.onCompleted: mouseArea.clicked.connect(clicked) +} diff --git a/mardrone/imports/Qt/labs/components/native/EditBubbleButtonStyle.qml b/mardrone/imports/Qt/labs/components/native/EditBubbleButtonStyle.qml new file mode 100644 index 0000000..5f4b354 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/EditBubbleButtonStyle.qml @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + // Font + property string fontFamily: UI.FONT_FAMILY + property int fontPixelSize: UI.FONT_DEFAULT_SIZE + property int fontCapitalization: Font.MixedCase + property int fontWeight: Font.Normal + + // Text + property color textColor: "black" + property int textStyle: Text.Sunken + property color textStyleColor: "#111111" + + // Dimensions + property int buttonWidth: 40 // DEPRECATED + property int buttonPaddingLeft: 8 + property int buttonPaddingRight: 8 + property int buttonHeight: 56 + + // Mouse + property real mouseMarginLeft: (position == "horizontal-left") ? 6 : 0 + property real mouseMarginTop: 8 + property real mouseMarginRight: (position == "horizontal-right") ? 6 : 0 + property real mouseMarginBottom: 10 + + // Background + property int backgroundMarginLeft: 19 + property int backgroundMarginTop: 15 + property int backgroundMarginRight: 19 + property int backgroundMarginBottom: 15 + + // Position can take one of the following values: + // [horizontal-left] [horizontal-center] [horizontal-right] + property string position: "" + + property string __suffix: (position ? "-" + position : "") + + property url background: "image://theme/meegotouch-text-editor" + __suffix + property url pressedBackground: "image://theme/meegotouch-text-editor-pressed" + __suffix + property url checkedBackground: "image://theme/meegotouch-text-editor-selected" + __suffix +} diff --git a/mardrone/imports/Qt/labs/components/native/EditBubbleStyle.qml b/mardrone/imports/Qt/labs/components/native/EditBubbleStyle.qml new file mode 100644 index 0000000..e0ed23b --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/EditBubbleStyle.qml @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Style { + // Mouse + property real mouseMarginLeft: 6 + property real mouseMarginTop: 8 + property real mouseMarginRight: 6 + property real mouseMarginBottom: 10 + + // Background + property int backgroundMarginLeft: 0 + property int backgroundMarginTop: 0 + property int backgroundMarginRight: 0 + property int backgroundMarginBottom: 14 // XXX: need to crop images + + property int arrowMargin: 16 // XXX: need to crop images + + // Images + property url topTailBackground: "image://theme/meegotouch-text-editor-top-tail" + property url bottomTailBackground: "image://theme/meegotouch-text-editor-bottom-tail" +} diff --git a/mardrone/imports/Qt/labs/components/native/Fader.qml b/mardrone/imports/Qt/labs/components/native/Fader.qml new file mode 100644 index 0000000..aeeb4e1 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/Fader.qml @@ -0,0 +1,202 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +// Background dimming +Rectangle { + id: faderBackground + + property double dim: 0.9 + property int fadeInDuration: 250 + property int fadeOutDuration: 250 + + property int fadeInDelay: 0 + property int fadeOutDelay: 0 + + property int fadeInEasingType: Easing.InQuint + property int fadeOutEasingType: Easing.OutQuint + + property url background: "" + + property Item visualParent: null + property Item originalParent: parent + + // widen the edges to avoid artefacts during rotation + anchors.topMargin: -1 + anchors.rightMargin: -1 + anchors.bottomMargin: -1 + anchors.leftMargin: -1 + + // opacity is passed to child elements - that is not, what we want + // so we need to use alpha value here + property double alpha: dim + + signal privateClicked + + //Deprecated, TODO Remove the following two lines on w13 + signal clicked + onClicked: privateClicked() + + // we need the possibility to fetch the red, green, blue components from a color + // see http://bugreports.qt.nokia.com/browse/QTBUG-14731 + color: background != "" ? "transparent" : Qt.rgba(0.0, 0.0, 0.0, alpha) + state: 'hidden' + + anchors.fill: parent + + // eat mouse events + MouseArea { + id: mouseEventEater + anchors.fill: parent + enabled: faderBackground.alpha != 0.0 + onClicked: { parent.privateClicked() } + } + + Component { + id: backgroundComponent + BorderImage { + id: backgroundImage + source: background + + width: faderBackground.width + height: faderBackground.height + + opacity: faderBackground.alpha + } + } + Loader {id: backgroundLoader} + + onAlphaChanged: { + if (background && faderBackground.alpha && backgroundLoader.sourceComponent == undefined) { + backgroundLoader.sourceComponent = backgroundComponent; + } + if (!faderBackground.alpha) { + backgroundLoader.sourceComponent = undefined; + } + } + + function findRoot() { + var next = parent; + + if (next != null) { + while (next.parent) { + if(next.objectName == "appWindowContent" || next.objectName == "windowContent"){ + break + } + + next = next.parent; + } + } + return next; + } + + + states: [ + State { + name: "visible" + PropertyChanges { + target: faderBackground + alpha: dim + } + }, + State { + name: "hidden" + PropertyChanges { + target: faderBackground + alpha: 0.0 + } + } + ] + + transitions: [ + Transition { + from: "hidden"; to: "visible" + //reparent fader whenever it is going to be visible + SequentialAnimation { + ScriptAction {script: { + //console.log("=============00============="); + // the algorithm works in the following way: + // First: Check if visualParent property is set; if yes, center the fader in visualParent + // Second: If not, center inside window content element + // Third: If no window was found, use root window + originalParent = faderBackground.parent; + if (visualParent != null) { + faderBackground.parent = visualParent + } else { + var root = findRoot(); + if (root != null) { + faderBackground.parent = root; + } else { + // console.log("Error: Cannot find root"); + } + } + } + } + PauseAnimation { duration: fadeInDelay } + + NumberAnimation { + properties: "alpha" + duration: faderBackground.fadeInDuration + easing.type: faderBackground.fadeInEasingType; + } + } + }, + Transition { + from: "visible"; to: "hidden" + SequentialAnimation { + PauseAnimation { duration: fadeOutDelay } + + NumberAnimation { + properties: "alpha" + duration: faderBackground.fadeOutDuration + easing.type: faderBackground.fadeOutEasingType; + } + ScriptAction {script: { + faderBackground.parent = originalParent; + } + } + } + } + ] +} + + + diff --git a/mardrone/imports/Qt/labs/components/native/GroupButtonStyle.qml b/mardrone/imports/Qt/labs/components/native/GroupButtonStyle.qml new file mode 100644 index 0000000..52e90ed --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/GroupButtonStyle.qml @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +ButtonStyle { + // This style is deprecated and will be removed + Component.onCompleted: print("GroupButtonStyle has been deprecated, please use ButtonStyle instead.") +} diff --git a/mardrone/imports/Qt/labs/components/native/Label.qml b/mardrone/imports/Qt/labs/components/native/Label.qml new file mode 100644 index 0000000..f83312a --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/Label.qml @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Text { + id: root + + // Styling for the Button + property Style platformStyle: LabelStyle{} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + font.family: platformStyle.fontFamily + font.pixelSize: platformStyle.fontPixelSize + color: platformStyle.textColor + + wrapMode: Text.Wrap +} diff --git a/mardrone/imports/Qt/labs/components/native/LabelStyle.qml b/mardrone/imports/Qt/labs/components/native/LabelStyle.qml new file mode 100644 index 0000000..f11cf29 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/LabelStyle.qml @@ -0,0 +1,51 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + // Color + property color textColor: inverted? UI.COLOR_INVERTED_FOREGROUND : UI.COLOR_FOREGROUND + + // Font + property string fontFamily: UI.FONT_FAMILY + property int fontPixelSize: UI.FONT_DEFAULT_SIZE +} diff --git a/mardrone/imports/Qt/labs/components/native/Magnifier.js b/mardrone/imports/Qt/labs/components/native/Magnifier.js new file mode 100644 index 0000000..a262709 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/Magnifier.js @@ -0,0 +1,102 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +.pragma library + +Qt.include("Utils.js"); + +var popup = null; + +function init(item) +{ + if (popup != null) + return true; + + var root = findRootItem(item); + + // create root popup + var component = Qt.createComponent("Magnifier.qml"); + + // due the pragma we cannot access Component.Ready + if (component) + popup = component.createObject(root); + + return popup != null; +} + +/* + Open a shared magnifier for a given input item. + + input item will be used as a sourceItem for the shader + effect +*/ +function open(input) +{ + if (!input) + return false; + + if (!init(input)) + return false; + + popup.sourceItem = input; + popup.active = true; + return true; +} + +/* + Check if the shared magnifier is opened +*/ +function isOpened() +{ + return (popup && popup.active); +} + +/* + Close and destroy the magnifier. +*/ +function close() +{ + if (popup){ + popup.active = false; + popup.destroy(); + popup = null; + } +} + diff --git a/mardrone/imports/Qt/labs/components/native/Magnifier.qml b/mardrone/imports/Qt/labs/components/native/Magnifier.qml new file mode 100644 index 0000000..cacdaa6 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/Magnifier.qml @@ -0,0 +1,170 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Item { + id: root + + property alias sourceItem: effectSource.sourceItem + property real xCenter: 0 // in source item coordinates + property real yCenter: 0 // in source item coordinates + + // Source rect is not as small as it can be as there is drawing problems + // with small source rect/texture size. + property real _realScaleFactor: 1.25 + property real _sourceRectMultiplier: 2 + + property bool active: false + + visible: active + width: 182 + height: 211 + z: Number.MAX_VALUE + + function __rootElement() { + var ret = parent + while (ret.parent) { + ret = ret.parent + } + return ret + } + + Component.onCompleted: { + sourceItem = parent; + declarativeView.setFullViewportMode(root); + } + + ShaderEffectSource { + id: effectSource + sourceRect: Qt.rect(root.xCenter - textureSize.width / 2, + root.yCenter - textureSize.height / 2, + textureSize.width, + textureSize.height); + textureSize: Qt.size(root._sourceRectMultiplier * root.width, + root._sourceRectMultiplier * root.height); + + hideSource: false + smooth: true + + property real scaleFactor: root._sourceRectMultiplier * root._realScaleFactor + } + + Image { + id: magnifierFrameImage + source: "/usr/share/themes/blanco/meegotouch/images/theme/basement/meegotouch-virtual-keyboard/meegotouch-seattle-magnifier-frame.png" + } + + ShaderEffectSource { + id: magnifierFrame + sourceItem: magnifierFrameImage + hideSource: true + live: false + } + + Image { + id: magnifierMaskImage + source: "/usr/share/themes/blanco/meegotouch/images/theme/basement/meegotouch-virtual-keyboard/meegotouch-seattle-magnifier-frame-mask.png" + } + + ShaderEffectSource { + id: magnifierMask + sourceItem: magnifierMaskImage + hideSource: true + live: false + } + + ShaderEffectItem { + id: magnifier + anchors.fill:parent + visible: root.visible + + vertexShader: " + attribute highp vec4 qt_Vertex; + attribute highp vec2 qt_MultiTexCoord0; + uniform highp mat4 qt_ModelViewProjectionMatrix; + uniform highp float scaleFactor; + varying highp vec2 qt_TexCoord0; + varying highp vec2 qt_TexCoord1; + void main() { + qt_TexCoord0.x = 0.5 - 1. / (2. * scaleFactor) + qt_MultiTexCoord0.x / scaleFactor; + qt_TexCoord0.y = 0.5 - 1. / (2. * scaleFactor) + qt_MultiTexCoord0.y / scaleFactor; + qt_TexCoord1 = qt_MultiTexCoord0; + gl_Position = qt_ModelViewProjectionMatrix * qt_Vertex; + }"; + + fragmentShader: " + varying highp vec2 qt_TexCoord0; + varying highp vec2 qt_TexCoord1; + uniform lowp sampler2D source; + uniform lowp sampler2D frame; + uniform lowp sampler2D mask; + void main() { + lowp vec4 frame_c = texture2D(frame, qt_TexCoord1); + lowp vec4 mask_c = texture2D(mask, qt_TexCoord1); + lowp vec4 color_c = texture2D(source, qt_TexCoord0); + bool outsideElement=(qt_TexCoord0.s<0. || qt_TexCoord0.s>1. || qt_TexCoord0.t<0. || qt_TexCoord0.t>1.); + bool onGlass=(mask_c.a==1.); + + if (outsideElement) { + // make white outside the element + color_c=vec4(1.,1.,1.,1.); + } else if (onGlass) { + // blend premultiplied texture with pure white (background) + color_c = color_c + vec4(1.,1.,1.,1.) * (1.-color_c.a); + } + + if ( qt_TexCoord1.y >= 0.98 ) { + // Top part of item above visible magnifier frame is made + // transparent explicitly to prevent showing of wrongly + // colored pixels, which would otherwise appear sometimes + // when using sourceRect functionality. + gl_FragColor = vec4(0.,0.,0.,0.); + } else { + gl_FragColor = onGlass ? color_c : frame_c; + } + }"; + + property variant source: effectSource + property variant frame: magnifierFrame + property variant mask: magnifierMask + property real scaleFactor: effectSource.scaleFactor; + } +} diff --git a/mardrone/imports/Qt/labs/components/native/Menu.qml b/mardrone/imports/Qt/labs/components/native/Menu.qml new file mode 100644 index 0000000..97be478 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/Menu.qml @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +AbstractMenu { + id: root +/* + platformTitle: BorderImage { + id: topDivider + anchors.left: parent.left + anchors.right: parent.right + height: 2 + source: "" // "image://theme/meegotouch-button-objectmenu-background-vertical-top" + border { top: 2; bottom: 1; left: 1; right: 1 } + } +*/ + + __statesWrapper.transitions: [ + Transition { + from: "visible"; to: "hidden" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "hidden"; + root.status = DialogStatus.Closing; + } + } + + NumberAnimation {target: __menuPane; + property: screen.currentOrientation == Screen.Portrait ? "anchors.bottomMargin" : "anchors.rightMargin"; + easing.type: Easing.InOutQuint; + to: screen.currentOrientation == Screen.Portrait ? -__menuPane.height : -__menuPane.width; + from: 0; duration: 350} + + NumberAnimation {target: __menuPane; property: "opacity"; + from: 1.0; to: 0.0; duration: 0} + + ScriptAction {script: { + status = DialogStatus.Closed; + } + } + } + }, + Transition { + from: "hidden"; to: "visible" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "visible"; + root.status = DialogStatus.Opening; + __menuPane.anchors.rightMargin = 0; + __menuPane.anchors.bottomMargin = 0; + } + } + + NumberAnimation {target: __menuPane; + property: screen.currentOrientation == Screen.Portrait ? "anchors.bottomMargin" : "anchors.rightMargin"; + easing.type: Easing.InOutQuint; + from: screen.currentOrientation == Screen.Portrait ? -__menuPane.height : -__menuPane.width; + to: 0; duration: 350} + + ScriptAction {script: { + status = DialogStatus.Open; + } + } + } + } + ] +} diff --git a/mardrone/imports/Qt/labs/components/native/MenuItem.qml b/mardrone/imports/Qt/labs/components/native/MenuItem.qml new file mode 100644 index 0000000..8afe325 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/MenuItem.qml @@ -0,0 +1,118 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// MenuItem is a component that is used in menus. + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +Item { + id: root + + // Common API + property string text + signal clicked + property alias pressed: mouseArea.pressed + + // platformStyle API + property Style platformStyle: MenuItemStyle{ + position: root.parent.children.length == 1 ? "" + : root.parent.children[0] == root ? "vertical-top" + : root.parent.children[root.parent.children.length-1] == root ? "vertical-bottom" + : "vertical-center" + } + property alias style: root.platformStyle // Deprecated + + width: parent ? parent.width: 0 + height: ( root.platformStyle.height == 0 ) ? + root.platformStyle.topMargin + menuText.paintedHeight + root.platformStyle.bottomMargin : + root.platformStyle.topMargin + root.platformStyle.height + root.platformStyle.bottomMargin +/* + Rectangle { + id: backgroundRec + // ToDo: remove hardcoded values + color: pressed ? "darkgray" : "transparent" + anchors.fill : root + opacity : 0.5 + } +*/ + BorderImage { + id: backgroundImage + source: // !enabled ? root.platformStyle.disabledBackground : + pressed ? root.platformStyle.pressedBackground + : root.platformStyle.background + anchors.fill : root + border { left: 22; top: 22; + right: 22; bottom: 22 } + } + + Text { + id: menuText + text: parent.text + elide: Text.ElideRight + font.family : root.platformStyle.fontFamily + font.pixelSize : root.platformStyle.fontPixelSize + font.weight: root.platformStyle.fontWeight + color: !root.enabled ? root.platformStyle.disabledTextColor : + root.pressed ? root.platformStyle.pressedTextColor : + root.platformStyle.textColor + + anchors.topMargin : root.platformStyle.topMargin + anchors.bottomMargin : root.platformStyle.bottomMargin + anchors.leftMargin : root.platformStyle.leftMargin + anchors.rightMargin : root.platformStyle.rightMargin + + anchors.top : root.platformStyle.centered ? undefined : root.top + anchors.bottom : root.platformStyle.centered ? undefined : root.bottom + anchors.left : root.left + anchors.right : root.right +// anchors.centerIn : parent.centerIn + anchors.verticalCenter : root.platformStyle.centered ? parent.verticalCenter : undefined + } + + MouseArea { + id: mouseArea + anchors.fill: parent + onClicked: { if (parent.enabled) parent.clicked();} + } + + onClicked: if (parent) parent.closeLayout(); +} diff --git a/mardrone/imports/Qt/labs/components/native/MenuItemStyle.qml b/mardrone/imports/Qt/labs/components/native/MenuItemStyle.qml new file mode 100644 index 0000000..6e64788 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/MenuItemStyle.qml @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + id: root + // Font + property string fontFamily: UI.FONT_FAMILY + property int fontPixelSize: 26 // UI.FONT_DEFAULT_SIZE + property int fontCapitalization: Font.MixedCase + property int fontWeight: Font.Bold + property int height: 80 + + // Text Color + property color textColor: inverted ? UI.COLOR_BUTTON_INVERTED_FOREGROUND : UI.COLOR_BUTTON_FOREGROUND + property color pressedTextColor: inverted ? UI.COLOR_BUTTON_INVERTED_FOREGROUND : UI.COLOR_BUTTON_FOREGROUND + property color disabledTextColor: "#797979" + property color checkedTextColor: UI.COLOR_INVERTED_FOREGROUND + + property real leftMargin: 24 + property real rightMargin: 24 + property real topMargin: 0 + property real bottomMargin: 0 + property bool centered: true + + property string position: "" + + property url background: "image://theme/meegotouch-list" + __invertedString + "-background" + (position ? "-" + position : "") + property url pressedBackground: "image://theme/meegotouch-list" + __invertedString + "-background-pressed" + (position ? "-" + position : "") +// TODO: Add disabled state once the graphics are available +// property url disabledBackground: "image://theme/meegotouch-list" + __invertedString + "-background-disabled" + (position ? "-" + position : "") +} diff --git a/mardrone/imports/Qt/labs/components/native/MenuLayout.qml b/mardrone/imports/Qt/labs/components/native/MenuLayout.qml new file mode 100644 index 0000000..5731014 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/MenuLayout.qml @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." + +Item { + id: root + anchors.left: parent!==undefined?parent.left:undefined + anchors.right: parent!==undefined?parent.right:undefined + height: menuItemColumn.height + + default property alias menuChildren: menuItemColumn.children + + Column { + id: menuItemColumn + + anchors.left: parent.left + anchors.right: parent.right + height: childrenRect.height + + function closeLayout() { + root.parent.closeMenu(); + } + } +} diff --git a/mardrone/imports/Qt/labs/components/native/MenuStyle.qml b/mardrone/imports/Qt/labs/components/native/MenuStyle.qml new file mode 100644 index 0000000..8e95483 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/MenuStyle.qml @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.1 + +Style { + id: root + + property real leftMargin: ( (screen.currentOrientation == 1) || + (screen.currentOrientation == 4) ) ? 0 : 427 + property real rightMargin: ( (screen.currentOrientation == 1) || + (screen.currentOrientation == 4) ) ? 0 : 0 + property real topMargin: ( (screen.currentOrientation == 1) || + (screen.currentOrientation == 4) ) ? 246 : 0 + + property real bottomMargin: 0 + + property real leftPadding: 16 + property real rightPadding: 16 + property real topPadding: 16 + property real bottomPadding: 16 + + // fader properties + property double dim: 0.9 + property int fadeInDuration: 350 // ms + property int fadeOutDuration: 350 // ms + property int fadeInDelay: 0 // ms + property int fadeOutDelay: 0 // ms + property int fadeInEasingType: Easing.InOutQuint + property int fadeOutEasingType: Easing.InOutQuint + property url faderBackground: "image://theme/meegotouch-menu-dimmer" + + property int pressDelay: 0 // ms + + property url background: "image://theme/meegotouch-menu-background" + __invertedString +// property url pressedBackground: "image://theme/meegotouch-menu" + __invertedString + "-background-pressed" +// property url disabledBackground: "image://theme/meegotouch-menu" + __invertedString + "-background-disabled" +} diff --git a/mardrone/imports/Qt/labs/components/native/MouseAreaDebug.qml b/mardrone/imports/Qt/labs/components/native/MouseAreaDebug.qml new file mode 100644 index 0000000..912b6d0 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/MouseAreaDebug.qml @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Rectangle { + color: "#FCBD00" + opacity: 0.5 + anchors { + fill: parent + topMargin: parent.platformMouseAnchors.topMargin + bottomMargin: parent.platformMouseAnchors.bottomMargin + leftMargin: parent.platformMouseAnchors.leftMargin + rightMargin: parent.platformMouseAnchors.rightMargin + } +} diff --git a/mardrone/imports/Qt/labs/components/native/MultiSelectionDialog.js b/mardrone/imports/Qt/labs/components/native/MultiSelectionDialog.js new file mode 100644 index 0000000..efcad73 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/MultiSelectionDialog.js @@ -0,0 +1,114 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +function __isSelected( index ){ + return __selectedIndexesHash[index]==true; +} + +function __syncHash(){ + var selectedIndexesHash = new Array() + var il = selectedIndexes.length; + for( var it = 0; it < il; ++it ){ + selectedIndexesHash[selectedIndexes[it]]=true; + } + __selectedIndexesHash = selectedIndexesHash +} + +function __toggleIndex( index ){ + // A QML list can not be modified, so let's create a new array + var selectedArray = new Array; + + var il = selectedIndexes.length; + + // If selectedIndexes is empty then add the index and return. + if ( il == 0 ){ + selectedArray.push(index); + selectedIndexes = selectedArray; + return; + } + + // Check whether the list is sorted. + var isSorted = true; + var previousIndex = -1; + + for( var it = 0; it < il; ++it ){ + if ( previousIndex > selectedIndexes[it] ){ + isSorted = false; + break; + } + previousIndex = selectedIndexes[it]; + } + + if (!isSorted){ + // For unsorted selectedIndexes just append the index if it's not present yet. + var indexAvailable = false; + for( var it = 0; it < il; ++it ) { + if ( index == selectedIndexes[it] ){ + indexAvailable = true; + } + else { + selectedArray.push(selectedIndexes[it]); + } + } + if (!indexAvailable){ + selectedArray.push(index); + } + } + else{ + previousIndex = -1; + // insert the index in a sorted way in between the existing indexes + for( var it = 0; it < il; ++it ) { + if ( previousIndex < index && index < selectedIndexes[it] ) { + selectedArray.push(index); + } + if ( index != selectedIndexes[it] ) { + selectedArray.push(selectedIndexes[it]); + } + + previousIndex = selectedIndexes[it]; + } + // If the index is the highest one append it + if (index > selectedIndexes[selectedIndexes.length - 1]){ + selectedArray.push(index); + } + } + // Assign the new built array to selectedIndexes + selectedIndexes = selectedArray; +} diff --git a/mardrone/imports/Qt/labs/components/native/MultiSelectionDialog.qml b/mardrone/imports/Qt/labs/components/native/MultiSelectionDialog.qml new file mode 100644 index 0000000..827a8b0 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/MultiSelectionDialog.qml @@ -0,0 +1,233 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI +import "MultiSelectionDialog.js" as MultiSelectionDialog + +CommonDialog { + id: root + + property alias model: selectionListView.model + // Common API: property list selectedIndexes (currently not possible due to QTBUG-10822) + property variant selectedIndexes: [] // read & write, variant is supposed to be list + property alias acceptButtonText: acceptButton.text //Convenience wrapper on top of the buttons + property alias rejectButtonText: rejectButton.text //Convenience wrapper on top of the buttons + //property alias titleText: titleLabel.text + + property Component delegate: // Note that this is the default delegate for the list + Component { + id: defaultDelegate + + Item { + id: delegateItem + + height: root.platformStyle.itemHeight + anchors.left: parent.left + anchors.right: parent.right + + MouseArea { + id: delegateMouseArea + anchors.fill: parent; + onPressed: MultiSelectionDialog.__toggleIndex(index); + } + + Rectangle { + id: backgroundRect + anchors.fill: parent + color: MultiSelectionDialog.__isSelected(index) ? root.platformStyle.itemSelectedBackgroundColor : root.platformStyle.itemBackgroundColor + } + + BorderImage { + id: background + anchors.fill: parent + border { left: UI.CORNER_MARGINS; top: UI.CORNER_MARGINS; right: UI.CORNER_MARGINS; bottom: UI.CORNER_MARGINS } + source: delegateMouseArea.pressed ? root.platformStyle.itemPressedBackground : + MultiSelectionDialog.__isSelected(index) ? root.platformStyle.itemSelectedBackground : + root.platformStyle.itemBackground + } + + Text { + id: itemText + elide: Text.ElideRight + color: MultiSelectionDialog.__isSelected(index) ? root.platformStyle.itemSelectedTextColor : root.platformStyle.itemTextColor + anchors.verticalCenter: delegateItem.verticalCenter + anchors.left: parent.left + anchors.right: parent.right + anchors.leftMargin: root.platformStyle.itemLeftMargin + anchors.rightMargin: root.platformStyle.itemRightMargin + font: root.platformStyle.itemFont + } + Component.onCompleted: { + try { + // Legacy. "name" used to be the role which was used by delegate + itemText.text = name + } catch(err) { + try { + // "modelData" available for JS array and for models with one role + itemText.text = modelData + } catch (err) { + try { + // C++ models have "display" role available always + itemText.text = display + } catch(err) { + } + } + } + } + } + } + + // Style API + property Style platformStyle: SelectionDialogStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + // private api + property int __pressDelay: platformStyle.pressDelay + property variant __selectedIndexesHash: [] + + QtObject { + id: backup + property variant oldSelectedIndexes: [] + } + onStatusChanged: { + if (status == DialogStatus.Opening) { + selectionListView.positionViewAtIndex(selectedIndexes[0], ListView.Center) + } + if (status == DialogStatus.Open) + backup.oldSelectedIndexes = selectedIndexes + } + onRejected: { selectedIndexes = backup.oldSelectedIndexes } + + onSelectedIndexesChanged: { + MultiSelectionDialog.__syncHash(); + } + + // the title field consists of the following parts: title string and + // a close button (which is in fact an image) + // it can additionally have an icon + titleText: "Multi-Selection Dialog" + + // the content field which contains the selection content + content: Item { + + id: selectionContent + property int listViewHeight + property int maxListViewHeight : visualParent + ? visualParent.height * 0.87 + - buttonRow.childrenRect.height - root.platformStyle.contentSpacing - root.platformStyle.buttonsTopMargin + - root.platformStyle.titleBarHeight + : root.parent + ? root.parent.height * 0.87 + - buttonRow.childrenRect.height - root.platformStyle.contentSpacing - root.platformStyle.buttonsTopMargin + - root.platformStyle.titleBarHeight + : 350 + height: listViewHeight > maxListViewHeight ? maxListViewHeight : listViewHeight + width: root.width + y : root.platformStyle.contentSpacing + + ListView { + id: selectionListView + model: ListModel {} + + currentIndex : -1 + anchors.fill: parent + delegate: root.delegate + focus: true + clip: true + pressDelay: __pressDelay + + ScrollDecorator { + id: scrollDecorator + flickableItem: selectionListView + platformStyle.inverted: true + } + onModelChanged: selectionContent.listViewHeight = model.count * platformStyle.itemHeight + } + + } + + buttons: Item { + id: buttonRowFiller + width: parent.width + height: childrenRect.height //+ root.platformStyle.buttonsTopMargin + y: root.platformStyle.buttonsTopMargin + + onWidthChanged: { + if (acceptButton.width + rejectButton.width > width) { + acceptButton.width = width / 2 + rejectButton.width = width / 2 + } else { + acceptButton.width = acceptButton.implicitWidth + rejectButton.width = rejectButton.implicitWidth + } + } + + Row { + id: buttonRow + height: childrenRect.height + anchors.horizontalCenter: parent.horizontalCenter + Button { + id: acceptButton + height: implicitHeight + objectName: "acceptButton" + text: "" + onClicked: accept() + visible: text != "" + __dialogButton: true + platformStyle: ButtonStyle {inverted: true} + } + Button { + id: rejectButton + height: implicitHeight + objectName: "rejectButton" + text: "" + onClicked: reject() + visible: text != "" + __dialogButton: true + platformStyle: ButtonStyle {inverted: true} + } + } + } +} + diff --git a/mardrone/imports/Qt/labs/components/native/NotificationBanner.qml b/mardrone/imports/Qt/labs/components/native/NotificationBanner.qml new file mode 100644 index 0000000..1801fbb --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/NotificationBanner.qml @@ -0,0 +1,255 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +//import com.nokia.meego 1.0 + +/* + Class: InfoBanner + The InfoBanner component is used to display information to the user. The number of lines of text + shouldn't exceed 3. +*/ + +Item { + id: root + + /* + * Property: iconSource + * [url] The path to the icon image + */ + property url iconSource: "" + + /* + * Property: text + * [string] Text to be displayed in InfoBanner + */ + property alias text: text.text + + /* + * Property: timerEnabled + * [bool=true] Enable/disable timer that dismisses InfoBanner + */ + property bool timerEnabled: true + + /* + * Property: timerShowTime + * [int=3000ms] For setting how long InfoBanner stays visible to user before being dismissed + */ + property alias timerShowTime: sysBannerTimer.interval + + /* + * Property: topMargin + * [int=8 pix] Allows user to customize top margin if needed + */ + property alias topMargin: root.y + + /* + * Property: leftMargin + * [int=8 pix] Allows user to customize left margin if needed + */ + property alias leftMargin: root.x + + /* + * Function: show + * Show InfoBanner + */ + function show() { + parent = __findParent(); + animationShow.running = true; + if (root.timerEnabled) + sysBannerTimer.restart(); + } + + function __findParent() { + var next = parent; + while (next && next.parent && next.objectName != "appWindowContent") { + next = next.parent; + } + return next; + } + + /* + * Function: hide + * Hide InfoBanner + */ + function hide() { + animationHide.running = true; + } + + implicitHeight: internal.getBannerHeight() + implicitWidth: internal.getBannerWidth() + x:8; y:8 + scale: 0 + + BorderImage { + source: "image://theme/meegotouch-notification-system-background" + anchors.fill: root + horizontalTileMode: BorderImage.Stretch + verticalTileMode: BorderImage.Stretch + border { left: 10; top: 10; right: 10; bottom: 10 } + opacity: 1 + } + + Image { + id: image + anchors { left: parent.left; leftMargin: 16; top: parent.top; topMargin: 16 } + source: root.iconSource + visible: root.iconSource != "" + } + + Text { + id: text + width: internal.getTextWidth() + anchors { left: (image.visible ? image.right : parent.left); leftMargin: (image.visible ? 14:16); + top: parent.top; topMargin: internal.getTopMargin(); bottom: parent.bottom } + color: "white" + wrapMode: Text.Wrap + verticalAlignment: Text.AlignHCenter + font.pixelSize: 24 + font.family: "Nokia Pure" + font.letterSpacing: -1.2 + maximumLineCount: 3 + elide: Text.ElideRight + } + + QtObject { + id: internal + + function getBannerHeight() { + if (image.visible) { + if (text.lineCount <= 2) + return 80; + else + return 80; //106 + } else { + if (text.lineCount <= 1) + return 80; //64 + else if (text.lineCount <= 2) + return 80; + else + return 80; //106 + } + } + + function getBannerWidth() { + if ( screen.currentOrientation==Screen.Portrait || screen.currentOrientation==Screen.PortraitInverted ) { + // In portrait mode, the width of the banner is equal to the width of parent minus left + // and right margins in-between banner and parent. + return parent.width-root.x*2; + } else { + if (image.visible) { + // If an icon image is specified... + if ((image.width+text.paintedWidth+46) <= parent.width*0.54 && text.lineCount <= 1) { + // 46 is the sum of all horizontal margins within the banner. The above condition basically + // says that if there's only one line of text, and the sum of width of icon, text, and required + // margins is less then 54% of the screen width, banner width should be 54% of the screen. + return parent.width*0.54; + } else { + return parent.width-root.x*2; + } + } else { + // If no icon image specified... + if ((text.paintedWidth+32) <= parent.width*0.54 && text.lineCount <= 1) { + // 32 is the sum of all horizontal margins within the banner. The above condition basically + // says that if there's only one line of text, and the sum of width of text and required + // margins is less then 54% of the screen width, banner width should be 54% of the screen. + return parent.width-root.x*2; + } else { + return parent.width-root.x*2; + } + } + } + } + + function getTopMargin() { + if (text.lineCount <= 1 && !image.visible) { + // If there's only one line of text and no icon image, top and bottom margins are equal. + return (root.height-text.paintedHeight)/2; + } else { + // In all other cases, top margin is 4 px more than bottom margin. + return (root.height-text.paintedHeight)/2 + 2; + } + } + + function getTextWidth() { + // 46(32 when there's no icon) is sum of all margins within banner. root.x*2 is sum of margins outside banner. + // Text element width is dertermined by substracting parent width(screen width) by all the margins and + // icon width(if applicable). + return image.visible ? (parent.width-root.x*2-46-image.width) : (parent.width-root.x*2-32); + } + + function getScaleValue() { + // When banner is displayed, as part of transition effect, it'll first be enlarged to the point where its width + // is equal to screen width. root.x*2/root.width calculates the amount of expanding required, where root.x*2 is + // equal to screen.displayWidth minus banner.width + return root.x*2/root.width + 1; + } + } + + Timer { + id: sysBannerTimer + repeat: false + running: false + interval: 3000 + onTriggered: hide() + } + + MouseArea { + anchors.fill: parent + onClicked: hide() + } + + SequentialAnimation { + id: animationShow + NumberAnimation { target: root; property: "scale"; from: 0; to: internal.getScaleValue(); duration: 200; easing.type: Easing.OutQuad} + NumberAnimation { target: root; property: "scale"; from: internal.getScaleValue(); to: 1; duration: 200 } + } + + NumberAnimation { + id: animationHide + target: root; property: "scale"; to: 0; duration: 200; easing.type: Easing.InExpo + } + + Component.onCompleted: { + //__owner = parent; + } +} + diff --git a/mardrone/imports/Qt/labs/components/native/Page.qml b/mardrone/imports/Qt/labs/components/native/Page.qml new file mode 100644 index 0000000..152089c --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/Page.qml @@ -0,0 +1,124 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// The Page item is intended for use as a root item in QML items that make +// up pages to use with the PageStack. + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +Item { + id: root + + visible: false + + // Note we do not use anchor fill here because it will force us to relayout + // hidden children when rotating the screen as well + width: visible && parent ? parent.width - anchors.leftMargin - anchors.rightMargin : __prevWidth + height: visible && parent ? parent.height - anchors.topMargin - anchors.bottomMargin : __prevHeight + x: parent ? anchors.leftMargin : 0 + y: parent ? anchors.topMargin : 0 + + onWidthChanged: __prevWidth = visible ? width : __prevWidth + onHeightChanged: __prevHeight = visible ? height : __prevHeight + + property int __prevWidth: 0 + property int __prevHeight: 0 + + property bool __isPage: true + + anchors.margins: 0 // Page margins should generally be 16 pixels as defined by UI.MARGIN_XLARGE + + // The status of the page. One of the following: + // PageStatus.Inactive - the page is not visible + // PageStatus.Activating - the page is transitioning into becoming the active page + // PageStatus.Active - the page is the current active page + // PageStatus.Deactivating - the page is transitioning into becoming inactive + property int status: PageStatus.Inactive + + // Defines the tools for the page; null for none. + property Item tools: null + + // The page stack that the page is in. + property PageStack pageStack + + // Defines if page is locked in landscape. + property bool lockInLandscape: false // Deprecated + onLockInLandscapeChanged: console.log("warning: Page.lockInLandscape is deprecated, use Page.orientationLock") + + // Defines if page is locked in portrait. + property bool lockInPortrait: false // Deprecated + onLockInPortraitChanged: console.log("warning: Page.lockInPortrait is deprecated, use Page.orientationLock") + + // Defines orientation lock for a page + property int orientationLock: PageOrientation.Automatic + + onStatusChanged: { + if (status == PageStatus.Activating) { + __updateOrientationLock() + } + } + + onOrientationLockChanged: { + __updateOrientationLock() + } + + function __updateOrientationLock() { + switch (orientationLock) { + case PageOrientation.Automatic: + screen.setAllowedOrientations(Screen.Portrait | Screen.Landscape); + break + case PageOrientation.LockPortrait: + screen.setAllowedOrientations(Screen.Portrait); + break + case PageOrientation.LockLandscape: + screen.setAllowedOrientations(Screen.Landscape); + break + case PageOrientation.LockPrevious: + // Allowed orientation should be changed to current + // if previously it was locked, it will remain locked + // if previously it was not locked, it will be locked to current + screen.setAllowedOrientations(screen.currentOrientation); + break + } + } +} + diff --git a/mardrone/imports/Qt/labs/components/native/PageStack.js b/mardrone/imports/Qt/labs/components/native/PageStack.js new file mode 100644 index 0000000..3b560dc --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/PageStack.js @@ -0,0 +1,219 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// Page stack. Items are page containers. +var pageStack = []; + +// Page component cache map. Key is page url, value is page component. +var componentCache = {}; + +// Returns the page stack depth. +function getDepth() { + return pageStack.length; +} + +// Pushes a page on the stack. +function push(page, properties, replace, immediate) { + // page order sanity check + if ((!replace && page == currentPage) || + (replace && pageStack.length > 1 && page == pageStack[pageStack.length - 2].page)) { + throw new Error("Cannot navigate so that the resulting page stack has two consecutive entries of the same page instance."); + } + + // figure out if more than one page is being pushed + var pages; + if (page instanceof Array) { + pages = page; + page = pages.pop(); + if (page.createObject === undefined && page.parent === undefined && typeof page != "string") { + properties = properties || page.properties; + page = page.page; + } + } + + // get the current container + var oldContainer = pageStack[pageStack.length - 1]; + + // pop the old container off the stack if this is a replace + if (oldContainer && replace) { + pageStack.pop(); + } + + // push any extra defined pages onto the stack + if (pages) { + var i; + for (i = 0; i < pages.length; i++) { + var tPage = pages[i]; + var tProps; + if (tPage.createObject === undefined && tPage.parent === undefined && typeof tPage != "string") { + tProps = tPage.properties; + tPage = tPage.page; + } + pageStack.push(initPage(tPage, tProps)); + } + } + + // initialize the page + var container = initPage(page, properties); + + // push the page container onto the stack + pageStack.push(container); + + depth = pageStack.length; + currentPage = container.page; + + // perform page transition + immediate = immediate || !oldContainer; + if (oldContainer) { + oldContainer.pushExit(replace, immediate); + } + container.pushEnter(replace, immediate); + + // sync tool bar + var tools = container.page.tools || null; + if (toolBar) { + toolBar.setTools(tools, immediate ? "set" : replace ? "replace" : "push"); + } + + return container.page; +} + +// Initializes a page and its container. +function initPage(page, properties) { + var container = containerComponent.createObject(root); + + var pageComp; + if (page.createObject) { + // page defined as component + pageComp = page; + } else if (typeof page == "string") { + // page defined as string (a url) + pageComp = componentCache[page]; + if (!pageComp) { + pageComp = componentCache[page] = Qt.createComponent(page); + } + } + if (pageComp) { + if (pageComp.status == Component.Error) { + throw new Error("Error while loading page: " + pageComp.errorString()); + } else { + // instantiate page from component + page = pageComp.createObject(container, properties || {}); + } + } else { + // copy properties to the page + for (var prop in properties) { + if (properties.hasOwnProperty(prop)) { + page[prop] = properties[prop]; + } + } + } + + container.page = page; + container.owner = page.parent; + + // the page has to be reparented if + if (page.parent != container) { + page.parent = container; + } + + if (page.pageStack !== undefined) { + page.pageStack = root; + } + + return container; +} + +// Pops a page off the stack. +function pop(page, immediate) { + // make sure there are enough pages in the stack to pop + if (pageStack.length > 1) { + // pop the current container off the stack and get the next container + var oldContainer = pageStack.pop(); + var container = pageStack[pageStack.length - 1]; + if (page !== undefined) { + // an unwind target has been specified - pop until we find it + while (page != container.page && pageStack.length > 1) { + container.cleanup(); + pageStack.pop(); + container = pageStack[pageStack.length - 1]; + } + } + + depth = pageStack.length; + currentPage = container.page; + + // perform page transition + oldContainer.popExit(immediate); + container.popEnter(immediate); + + // sync tool bar + var tools = container.page.tools || null; + if (toolBar) { + toolBar.setTools(tools, immediate ? "set" : "pop"); + } + + return oldContainer.page; + } else { + return null; + } +} + +// Clears the page stack. +function clear() { + var container; + while (container = pageStack.pop()) { + container.cleanup(); + } + depth = 0; + currentPage = null; +} + +// Iterates through all pages in the stack (top to bottom) to find a page. +function find(func) { + for (var i = pageStack.length - 1; i >= 0; i--) { + var page = pageStack[i].page; + if (func(page)) { + return page; + } + } + return null; +} + diff --git a/mardrone/imports/Qt/labs/components/native/PageStack.qml b/mardrone/imports/Qt/labs/components/native/PageStack.qml new file mode 100644 index 0000000..97d45f2 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/PageStack.qml @@ -0,0 +1,324 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// The PageStack item defines a container for pages and a stack-based +// navigation model. Pages can be defined as QML items or components. + +import QtQuick 1.1 +import "." 1.0 +import "PageStack.js" as Engine + +Item { + id: root + + width: parent ? parent.width : 0 + height: parent ? parent.height : 0 + + // Page stack depth. + property int depth: Engine.getDepth() + + // The currently active page. + property Item currentPage: null + + // The application tool bar. + property ToolBar toolBar + + // Indicates whether there is an ongoing page transition. + property bool busy: __ongoingTransitionCount > 0 + + // The number of ongoing transitions. + property int __ongoingTransitionCount: 0 + + // Pushes a page on the stack. + // The page can be defined as a component, item or string. + // If an item is used then the page will get re-parented. + // If a string is used then it is interpreted as a url that is used to load a page component. + // + // The page can also be given as an array of pages. In this case all those pages will be pushed + // onto the stack. The items in the stack can be components, items or strings just like for single + // pages. Additionally an object can be used, which specifies a page and an optional properties + // property. This can be used to push multiple pages while still giving each of them properties. + // When an array is used the transition animation will only be to the last page. + // + // The properties argument is optional and allows defining a map of properties to set on the page. + // If the immediate argument is true then no transition animation is performed. + // Returns the page instance. + function push(page, properties, immediate) { + return Engine.push(page, properties, false, immediate); + } + + // Pops a page off the stack. + // If page is specified then the stack is unwound to that page; null to unwind the to first page. + // If the immediate argument is true then no transition animation is performed. + // Returns the page instance that was popped off the stack. + function pop(page, immediate) { + return Engine.pop(page, immediate); + } + + // Replaces a page on the stack. + // See push() for details. + function replace(page, properties, immediate) { + return Engine.push(page, properties, true, immediate); + } + + // Clears the page stack. + function clear() { + return Engine.clear(); + } + + // Iterates through all pages (top to bottom) and invokes the specified function. + // If the specified function returns true the search stops and the find function + // returns the page that the iteration stopped at. If the search doesn't result + // in any page being found then null is returned. + function find(func) { + return Engine.find(func); + } + + // Called when the page stack visibility changes. + onVisibleChanged: { + if (currentPage) { + __setPageStatus(currentPage, visible ? PageStatus.Active : PageStatus.Inactive); + if (visible) { + currentPage.visible = currentPage.parent.visible = true; + } + } + } + + // Sets the page status. + function __setPageStatus(page, status) { + if (page.status !== undefined) { + if (status == PageStatus.Active && page.status == PageStatus.Inactive) { + page.status = PageStatus.Activating; + } else if (status == PageStatus.Inactive && page.status == PageStatus.Active) { + page.status = PageStatus.Deactivating; + } + page.status = status; + } + } + + // Component for page containers. + Component { + id: containerComponent + + Item { + id: container + + width: parent ? parent.width : 0 + height: parent ? parent.height : 0 + + // The states correspond to the different possible positions of the container. + state: "hidden" + + // The page held by this container. + property Item page: null + + // The owner of the page. + property Item owner: null + + // Duration of transition animation (in ms) + property int transitionDuration: 500 + + // Flag that indicates the container should be cleaned up after the transition has ended. + property bool cleanupAfterTransition: false + + // Performs a push enter transition. + function pushEnter(replace, immediate) { + if (!immediate) { + state = replace ? "front" : "right"; + } + state = ""; + page.visible = true; + if (root.visible && immediate) { + __setPageStatus(page, PageStatus.Active); + } + } + + // Performs a push exit transition. + function pushExit(replace, immediate) { + state = immediate ? "hidden" : (replace ? "back" : "left"); + if (root.visible && immediate) { + __setPageStatus(page, PageStatus.Inactive); + } + if (replace) { + if (immediate) { + cleanup(); + } else { + cleanupAfterTransition = true; + } + } + } + + // Performs a pop enter transition. + function popEnter(immediate) { + if (!immediate) { + state = "left"; + } + state = ""; + page.visible = true; + if (root.visible && immediate) { + __setPageStatus(page, PageStatus.Active); + } + } + + // Performs a pop exit transition. + function popExit(immediate) { + state = immediate ? "hidden" : "right"; + if (root.visible && immediate) { + __setPageStatus(page, PageStatus.Inactive); + } + if (immediate) { + cleanup(); + } else { + cleanupAfterTransition = true; + } + } + + // Called when a transition has started. + function transitionStarted() { + __ongoingTransitionCount++; + if (root.visible) { + __setPageStatus(page, (state == "") ? PageStatus.Activating : PageStatus.Deactivating); + } + } + + // Called when a transition has ended. + function transitionEnded() { + if (state != "") { + state = "hidden"; + } + if (root.visible) { + __setPageStatus(page, (state == "") ? PageStatus.Active : PageStatus.Inactive); + } + __ongoingTransitionCount--; + if (cleanupAfterTransition) { + cleanup(); + } + } + + states: [ + // Explicit properties for default state. + State { + name: "" + PropertyChanges { target: container; visible: true } + }, + // Start state for pop entry, end state for push exit. + State { + name: "left" + PropertyChanges { target: container; x: -width } + }, + // Start state for push entry, end state for pop exit. + State { + name: "right" + PropertyChanges { target: container; x: width } + }, + // Start state for replace entry. + State { + name: "front" + PropertyChanges { target: container; scale: 1.5; opacity: 0.0 } + }, + // End state for replace exit. + State { + name: "back" + PropertyChanges { target: container; scale: 0.5; opacity: 0.0 } + }, + // Inactive state. + State { + name: "hidden" + PropertyChanges { target: container; visible: false } + } + ] + + transitions: [ + // Pop entry and push exit transition. + Transition { + from: ""; to: "left"; reversible: true + SequentialAnimation { + ScriptAction { script: if (state == "left") { transitionStarted(); } else { transitionEnded(); } } + PropertyAnimation { properties: "x"; easing.type: Easing.InOutExpo; duration: transitionDuration } + ScriptAction { script: if (state == "left") { transitionEnded(); } else { transitionStarted(); } } + } + }, + // Push entry and pop exit transition. + Transition { + from: ""; to: "right"; reversible: true + SequentialAnimation { + ScriptAction { script: if (state == "right") { transitionStarted(); } else { transitionEnded(); } } + PropertyAnimation { properties: "x"; easing.type: Easing.InOutExpo; duration: transitionDuration } + ScriptAction { script: if (state == "right") { transitionEnded(); } else { transitionStarted(); } } + } + }, + // Replace entry transition. + Transition { + from: "front"; to: ""; + SequentialAnimation { + ScriptAction { script: transitionStarted(); } + PropertyAnimation { properties: "scale,opacity"; easing.type: Easing.InOutExpo; duration: transitionDuration } + ScriptAction { script: transitionEnded(); } + } + }, + // Replace exit transition. + Transition { + from: ""; to: "back"; + SequentialAnimation { + ScriptAction { script: transitionStarted(); } + PropertyAnimation { properties: "scale,opacity"; easing.type: Easing.InOutExpo; duration: transitionDuration } + ScriptAction { script: transitionEnded(); } + } + } + ] + + // Cleans up the container and then destroys it. + function cleanup() { + if (page.status == PageStatus.Active) { + __setPageStatus(page, PageStatus.Inactive); + } + if (owner != container) { + // container is not the owner of the page - re-parent back to original owner + page.visible = false; + page.parent = owner; + } + container.destroy(); + } + + } + } + +} + diff --git a/mardrone/imports/Qt/labs/components/native/PageStackWindow.qml b/mardrone/imports/Qt/labs/components/native/PageStackWindow.qml new file mode 100644 index 0000000..b207560 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/PageStackWindow.qml @@ -0,0 +1,158 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.0 +import "." 1.0 + +Window { + id: window + + property bool showStatusBar: true + property bool showToolBar: true + property bool toolBarOnTop: false + property variant initialPage + property alias pageStack: stack + property Style platformStyle: PageStackWindowStyle{} + + //Deprecated, TODO Remove this on w13 + property alias style: window.platformStyle + + //private api + property int __statusBarHeight: showStatusBar ? statusBar.height : 0 + + objectName: "pageStackWindow" + + StatusBar { + id: statusBar + anchors.top: parent.top + width: parent.width + showStatusBar: window.showStatusBar + } + + onOrientationChangeStarted: { + statusBar.orientation = screen.currentOrientation + } + + Rectangle { + id: background + visible: platformStyle.background == "" + color: platformStyle.backgroundColor + width: window.inPortrait ? screen.displayHeight : screen.displayWidth + height: window.inPortrait ? screen.displayWidth : screen.displayHeight + anchors { top: statusBar.bottom; left: parent.left; } + } + + Image { + id: backgroundImage + visible: platformStyle.background != "" + source: window.inPortrait ? platformStyle.portraitBackground : platformStyle.landscapeBackground + fillMode: platformStyle.backgroundFillMode + width: window.inPortrait ? screen.displayHeight : screen.displayWidth + height: window.inPortrait ? screen.displayWidth : screen.displayHeight + anchors { top: statusBar.bottom; left: parent.left; } + } + + Item { + objectName: "appWindowContent" + width: parent.width + anchors.top: statusBar.bottom + anchors.bottom: parent.bottom + + // content area + Item { + id: contentArea + anchors { top: parent.top; left: parent.left; right: parent.right; bottom: parent.bottom; } + anchors.bottomMargin: !toolBarOnTop && (toolBar.visible || (toolBar.opacity==1))? toolBar.height : 0 + anchors.topMargin: toolBarOnTop && (toolBar.visible || (toolBar.opacity==1))? toolBar.height : 0 + PageStack { + id: stack + anchors.fill: parent + toolBar: toolBar + } + } + + Item { + id: roundedCorners + visible: platformStyle.cornersVisible + anchors.fill: parent + z: 10001 + + Image { + anchors.top : parent.top + anchors.left: parent.left + source: "image://theme/meegotouch-applicationwindow-corner-top-left" + } + Image { + anchors.top: parent.top + anchors.right: parent.right + source: "image://theme/meegotouch-applicationwindow-corner-top-right" + } + Image { + anchors.bottom : parent.bottom + anchors.left: parent.left + source: "image://theme/meegotouch-applicationwindow-corner-bottom-left" + } + Image { + anchors.bottom : parent.bottom + anchors.right: parent.right + source: "image://theme/meegotouch-applicationwindow-corner-bottom-right" + } + } + + ToolBar { + id: toolBar + anchors.top: toolBarOnTop ? parent.top: undefined + anchors.bottom: !toolBarOnTop ? parent.bottom: undefined + privateVisibility: (inputContext.softwareInputPanelVisible==true || inputContext.customSoftwareInputPanelVisible == true) + ? ToolBarVisibility.HiddenImmediately : (window.showToolBar ? ToolBarVisibility.Visible : ToolBarVisibility.Hidden) + } + } + + // event preventer when page transition is active + MouseArea { + anchors.fill: parent + enabled: pageStack.busy + } + + Component.onCompleted: { + if (initialPage) pageStack.push(initialPage); + } + +} diff --git a/mardrone/imports/Qt/labs/components/native/PageStackWindowStyle.qml b/mardrone/imports/Qt/labs/components/native/PageStackWindowStyle.qml new file mode 100644 index 0000000..da9da45 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/PageStackWindowStyle.qml @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Style { + property bool cornersVisible: true + + // Background + property url background: "" + + // Background color is used when no background is set. + property color backgroundColor: theme.inverted ? "#000000" : "#E0E1E2" + + property url landscapeBackground: background + property url portraitBackground: background + property url portraiteBackground: background + + property int backgroundFillMode: Image.Tile +} diff --git a/mardrone/imports/Qt/labs/components/native/Popup.qml b/mardrone/imports/Qt/labs/components/native/Popup.qml new file mode 100644 index 0000000..0996a84 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/Popup.qml @@ -0,0 +1,124 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + + // api + property alias visualParent: fader.visualParent + + // possible states: Opening, Open, Closing, Closed + // Opening and Closing are used during animation (when the dialog fades/moves/pops/whatever in) + property int status: DialogStatus.Closed + + // private api + property double __dim: 0.9 + property int __fadeInDuration + property int __fadeOutDuration + property int __fadeInDelay + property int __fadeOutDelay + property int __fadeInEasingType + property int __fadeOutEasingType + property string __faderBackground + + function open() { + if (status == DialogStatus.Closed) + status = DialogStatus.Opening; + } + + function close() { + if (status == DialogStatus.Open) + status = DialogStatus.Closing; + } + + signal privateClicked + + //Deprecated, TODO Remove the following two lines on w13 + signal clicked + onClicked: privateClicked() + + QtObject { + id: parentCache + property QtObject oldParent: null + } + + Component.onCompleted: { + parentCache.oldParent = parent; + fader.parent = parent; + parent = fader; + } + + //if this is not given, application may crash in some cases + Component.onDestruction: { + if (parentCache.oldParent != null) { + parent = parentCache.oldParent + fader.parent = root + } + } + + Fader { + id: fader + dim: root.__dim + fadeInDuration: root.__fadeInDuration + fadeOutDuration: root.__fadeOutDuration + fadeInDelay: root.__fadeInDelay + fadeOutDelay: root.__fadeOutDelay + fadeInEasingType: root.__fadeInEasingType + fadeOutEasingType: root.__fadeOutEasingType + + + background: root.__faderBackground + onPrivateClicked: root.privateClicked(); + + MouseArea { + anchors.fill: parent + enabled: root.status == DialogStatus.Opening || root.status == DialogStatus.Closing + z: Number.MAX_VALUE + } + } + + function __fader() { + return fader; + } + +} diff --git a/mardrone/imports/Qt/labs/components/native/ProgressBar.qml b/mardrone/imports/Qt/labs/components/native/ProgressBar.qml new file mode 100644 index 0000000..6a3e163 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ProgressBar.qml @@ -0,0 +1,154 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import Qt.labs.components 1.1 + +import "TextAreaHelper.js" as AreaHelper + +ImplicitSizeItem { + id: container + + property alias minimumValue: progressModel.minimumValue + property alias maximumValue: progressModel.maximumValue + property alias value: progressModel.value + property bool indeterminate: false + + // Styling for the ProgressBar + property Style platformStyle: ProgressBarStyle{} + + //Deprecated, can be removed on W13 + property alias style: container.platformStyle + + implicitWidth: platformStyle.sizeButton + implicitHeight: background.height + + QtObject { + id: internal + property Flickable flick + property bool offScreen: false + } + + BorderImage { + id: background + width: parent.width + horizontalTileMode: BorderImage.Repeat + source: platformStyle.barBackground + + border { + left: 6 + top: 4 + right: 6 + bottom: 4 + } + } + + MaskedItem { + id: foreground + width: parent.width + height: parent.height + + mask: BorderImage { + width: indeterminate ? container.width : progressModel.position + height: foreground.height + source: platformStyle.barMask + + border { + left: 4 + top: 4 + right: 4 + bottom: 4 + } + } + + Image { + id: texture + width: foreground.width + sourceSize.width + 25 + height: foreground.height + fillMode: Image.Tile + + property real xTemp; + + source: indeterminate ? platformStyle.unknownTexture : platformStyle.knownTexture + + onXTempChanged: { + // Control the animation speed with this multiplier and the NumberAnimation duration divider + texture.x = Math.round(texture.xTemp) * 4; + } + + NumberAnimation on xTemp { + running: indeterminate && container.visible && Qt.application.active && !internal.offScreen + loops: Animation.Infinite + from: -texture.sourceSize.width + to: 0 + // time = distance / speed, where speed = 10 from the platformStyle + duration: (1000 * texture.sourceSize.width / 10) + } + } + } + + RangeModel { + id: progressModel + positionAtMinimum: 0 + positionAtMaximum: background.width + + // Defaults from Common API specification + minimumValue: 0 + maximumValue: 1.0 + } + + Connections { + target: internal.flick + + onMovementStarted: internal.offScreen = false + + onMovementEnded: { + var pos = mapToItem(internal.flick, 0, 0) + internal.offScreen = (pos.y + container.height <= 0) || (pos.y >= internal.flick.height) || (pos.x + container.width <= 0) || (pos.x >= internal.flick.width) + } + } + + Component.onCompleted: { + var flick = AreaHelper.findFlickable() + if (flick) + internal.flick = flick + } +} diff --git a/mardrone/imports/Qt/labs/components/native/ProgressBarStyle.qml b/mardrone/imports/Qt/labs/components/native/ProgressBarStyle.qml new file mode 100644 index 0000000..1e11e3e --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ProgressBarStyle.qml @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + property int sizeButton: UI.SIZE_BUTTON + + // Images + property url barBackground: "image://theme/meegotouch-progressindicator"+__invertedString+"-bar-background" + property url barMask: "image://theme/meegotouch-progressindicator"+__invertedString+"-bar-mask" + property url unknownTexture: "image://theme/" + __colorString + "meegotouch-progressindicator"+__invertedString+"-bar-unknown-texture" + property url knownTexture: "image://theme/" + __colorString + "meegotouch-progressindicator"+__invertedString+"-bar-known-texture" +} diff --git a/mardrone/imports/Qt/labs/components/native/QueryDialog.qml b/mardrone/imports/Qt/labs/components/native/QueryDialog.qml new file mode 100644 index 0000000..64bae64 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/QueryDialog.qml @@ -0,0 +1,384 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +Dialog { + id: root + objectName: "queryDialog" + + property string titleText + property string message + + //are they necessary? + property alias acceptButtonText: acceptButton.text + property alias rejectButtonText: rejectButton.text + + //ToDo + property alias icon: iconImage.source + + property Style platformStyle: QueryDialogStyle {} + + //__centerContentField: true + + __dim: platformStyle.dim + __fadeInDuration: platformStyle.fadeInDuration + __fadeOutDuration: platformStyle.fadeOutDuration + __fadeInDelay: platformStyle.fadeInDelay + __fadeOutDelay: platformStyle.fadeOutDelay + + __animationChief: "queryDialog" + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + // the title field consists of the following parts: title string and + // a close button (which is in fact an image) + // it can additionally have an icon + title: Item { + id: titleField + width: parent.width + height: titleText == "" ? titleBarIconField.height : + titleBarIconField.height + titleLabel.height + root.platformStyle.titleColumnSpacing + Column { + id: titleFieldCol + spacing: root.platformStyle.titleColumnSpacing + + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + + width: root.width + + Item { + id: titleBarIconField + height: iconImage.height + width: parent.width + Image { + id: iconImage + anchors.horizontalCenter: titleBarIconField.horizontalCenter + source: "" + } + + } + + + Item { + id: titleBarTextField + height: titleLabel.height + width: parent.width + + Text { + id: titleLabel + width: parent.width + + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + + font.family: root.platformStyle.titleFontFamily + font.pixelSize: root.platformStyle.titleFontPixelSize + font.bold: root.platformStyle.titleFontBold + font.capitalization: root.platformStyle.titleFontCapitalization + elide: root.platformStyle.titleElideMode + wrapMode: elide == Text.ElideNone ? Text.Wrap : Text.NoWrap + color: root.platformStyle.titleTextColor + text: root.titleText + + } + } + + // needed for animation + transform: Scale { + id: titleScale + xScale: 1.0; yScale: 1.0 + origin.x: mapFromItem(queryContent, queryContent.width / 2, queryContent.height / 2).x + origin.y: mapFromItem(queryContent, queryContent.width / 2, queryContent.height / 2).y + } + + } + } + + // the content field which contains the message text + content: Item { + id: queryContentWrapper + + property int upperBound: visualParent ? visualParent.height - titleField.height - buttonColFiller.height - 64 + : root.parent.height - titleField.height - buttonColFiller.height - 64 + property int __sizeHint: Math.min(Math.max(root.platformStyle.contentFieldMinSize, queryText.height), upperBound) + + height: __sizeHint + root.platformStyle.contentTopMargin + width: root.width + + Item { + id: queryContent + width: parent.width + + y: root.platformStyle.contentTopMargin + + Flickable { + id: queryFlickable + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + //anchors.bottom: parent.bottom + height: queryContentWrapper.__sizeHint + + contentHeight: queryText.height + flickableDirection: Flickable.VerticalFlick + clip: true + + interactive: queryText.height > queryContentWrapper.__sizeHint + + Text { + id: queryText + width: queryFlickable.width + horizontalAlignment: Text.AlignHCenter + font.family: root.platformStyle.messageFontFamily + font.pixelSize: root.platformStyle.messageFontPixelSize + color: root.platformStyle.messageTextColor + wrapMode: Text.WordWrap + text: root.message + } + + } + + + ScrollDecorator { + id: scrollDecorator + flickableItem: queryFlickable + anchors.rightMargin: - UI.SCROLLDECORATOR_LONG_MARGIN - 10 //ToDo: Don't use a hard-coded gap + } + + } + } + + + buttons: Item { + id: buttonColFiller + width: parent.width + height: childrenRect.height + + anchors.top: parent.top + + //ugly hack to assure, that we're always evaluating the correct height + //otherwise the topMargin wouldn't be considered + Item {id: dummy; anchors.fill: parent} + + Column { + id: buttonCol + anchors.top: parent.top + anchors.topMargin: root.platformStyle.buttonTopMargin + spacing: root.platformStyle.buttonsColumnSpacing + + height: (acceptButton.text == "" ? 0 : acceptButton.height) + + (rejectButton.text == "" ? 0 : rejectButton.height) + + anchors.buttonTopMargin + spacing + + anchors.horizontalCenter: parent.horizontalCenter + + Button { + id: acceptButton + text: "" + onClicked: accept() + visible: text != "" + __dialogButton: true + platformStyle: ButtonStyle {inverted: true} + } + Button { + id: rejectButton + text: "" + onClicked: reject() + visible: text != "" + __dialogButton: true + platformStyle: ButtonStyle {inverted: true} + } + } + } + + StateGroup { + id: statesWrapper + + state: "__query__hidden" + + // needed for button animation + // without resetting the button row's coordinate system would be translated + property int __buttonSaver: buttonColFiller.y + + states: [ + State { + name: "__query__visible" + when: root.__animationChief == "queryDialog" && (root.status == DialogStatus.Opening || root.status == DialogStatus.Open) + PropertyChanges { + target: root + opacity: 1.0 + } + }, + State { + name: "__query__hidden" + when: root.__animationChief == "queryDialog" && (root.status == DialogStatus.Closing || root.status == DialogStatus.Closed) + PropertyChanges { + target: root + opacity: 0.0 + } + } + ] + + transitions: [ + Transition { + from: "__query__visible"; to: "__query__hidden" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "hidden"; + + statesWrapper.__buttonSaver = buttonColFiller.y + root.status = DialogStatus.Closing; + + } + } + + NumberAnimation { target: root; properties: "opacity"; from: 0.0; to: 1.0; duration: 0 } + + // With a 100ms delay the background + // fades to alpha 0% (500ms, quint ease out). + // ---> done in the fader + + ParallelAnimation { + // The closing transition starts with the message dimming to alpha 0% and + // scaling to 80% (anchorpoint in the middle of the message, 100ms, quint + // ease in). + + // With no delay the buttons fade to alpha 0% and translate 30 + // pixels upwards (100ms, quint ease in). + NumberAnimation {target: queryContent; properties: "opacity"; from: 1.0; to: 0.0; duration: 100} + NumberAnimation {target: titleField; properties: "opacity"; from: 1.0; to: 0.0; duration: 100} + NumberAnimation {target: titleScale; properties: "xScale,yScale"; from: 1.0 ; to: 0.8; duration: 100; easing.type: Easing.InQuint} + NumberAnimation {target: queryContent; property: "scale"; from: 1.0 ; to: 0.8; duration: 100; easing.type: Easing.InQuint} + NumberAnimation {target: buttonColFiller; properties: "opacity"; from: 1.0; to: 0.0; duration: 100} + NumberAnimation {target: buttonColFiller + properties: "y" + from: buttonColFiller.y + to: buttonColFiller.y-30 + duration: 100 + easing.type: Easing.InQuint + } + } + + ScriptAction {script: { + + // reset button + buttonColFiller.y = statesWrapper.__buttonSaver + + // make sure, root isn't visible: + root.opacity = 0.0; + status = DialogStatus.Closed; + + } + } + + } + }, + Transition { + from: "__query__hidden"; to: "__query__visible" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "visible"; + + statesWrapper.__buttonSaver = buttonColFiller.y + + root.status = DialogStatus.Opening; + // UPPERCASE-UGLY, but necessary to avoid flicker + root.opacity = 1.0 + titleField.opacity = 0.0 + queryContent.opacity = 0.0 + buttonColFiller.opacity = 0.0 + } + } + + // The opening transition starts by dimming the background to 90% (250ms, + // quint ease in). + // ---> done in the fader + ParallelAnimation { + SequentialAnimation { + + // With a 200ms delay from the beginning the message fades + // from alpha 0% to 100% and scales from 80% to 100% (anchorpoint in the + // middle of the message, 550ms, custom ease). + PauseAnimation { duration: 200 } + ParallelAnimation { + NumberAnimation {target: queryContent; properties: "opacity"; from: 0.0; to: 1.0; duration: 550} + NumberAnimation {target: titleField; properties: "opacity"; from: 0.0; to: 1.0; duration: 550} + NumberAnimation {target: titleScale; properties: "xScale,yScale"; from: 0.8 ; to: 1.0; duration: 550; easing.type: Easing.OutBack} + NumberAnimation {target: queryContent; property: "scale"; from: 0.8 ; to: 1.0; duration: 550; easing.type: Easing.OutBack} + } + } + SequentialAnimation { + // With a 250ms delay from the + // beginning the buttons fade from alpha 0% to 100% and translate 25 pixels + // in Y axis away from their final destination (400ms, custom ease). + PauseAnimation { duration: 250 } + ParallelAnimation { + NumberAnimation {target: buttonColFiller; properties: "opacity"; from: 0.0; to: 1.0; duration: 400; } + NumberAnimation {target: buttonColFiller + properties: "y" + from: buttonColFiller.y-25 + to: buttonColFiller.y + duration: 400 + easing.type: Easing.OutBack + } + } + } + } + + ScriptAction {script: { + + // reset button + buttonColFiller.y = statesWrapper.__buttonSaver + + root.status = DialogStatus.Open; + } + } + } + } + ] + } + +} diff --git a/mardrone/imports/Qt/labs/components/native/QueryDialogStyle.qml b/mardrone/imports/Qt/labs/components/native/QueryDialogStyle.qml new file mode 100644 index 0000000..422dacf --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/QueryDialogStyle.qml @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +DialogStyle { + property string titleFontFamily: UI.FONT_FAMILY + property int titleFontPixelSize: UI.FONT_XLARGE + property int titleFontCapitalization: Font.MixedCase + property bool titleFontBold: true + property color titleTextColor: "white" + + property int contentFieldMinSize: 24 + + //spacing + property int contentTopMargin: 21 + property int buttonTopMargin: 38 + + property int titleColumnSpacing: 17 + + //properties inherited by DialogStyle + buttonsColumnSpacing: 16 + leftMargin: 33 + rightMargin: 33 + titleElideMode: Text.ElideNone + + property string messageFontFamily: UI.FONT_FAMILY + property int messageFontPixelSize: UI.FONT_DEFAULT + property color messageTextColor: "#ffffff" + + // fader properties + property double dim: 0.9 + property int fadeInDuration: 250 // ms + property int fadeOutDuration: 250 // ms + + property int fadeInDelay: 0 // ms + property int fadeOutDelay: 100 // ms + + +} diff --git a/mardrone/imports/Qt/labs/components/native/RadioButton.qml b/mardrone/imports/Qt/labs/components/native/RadioButton.qml new file mode 100644 index 0000000..a496658 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/RadioButton.qml @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import Qt.labs.components 1.1 + +CheckBox { + id: radioButton + + property Style platformStyle: RadioButtonStyle{} + property alias style: radioButton.platformStyle + + __imageSource: !radioButton.enabled ? platformStyle.backgroundDisabled : + radioButton.pressed ? platformStyle.backgroundPressed : + radioButton.checked ? platformStyle.backgroundSelected : + platformStyle.background + + function __handleChecked() { + if (!radioButton.checked) + radioButton.checked = true; + } +} diff --git a/mardrone/imports/Qt/labs/components/native/RadioButtonStyle.qml b/mardrone/imports/Qt/labs/components/native/RadioButtonStyle.qml new file mode 100644 index 0000000..867a681 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/RadioButtonStyle.qml @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Style { + // Background + property url background: "image://theme/meegotouch-button-radiobutton"+__invertedString+"-background" + property url backgroundSelected: "image://theme/" + __colorString + "meegotouch-button-radiobutton"+__invertedString+"-background-selected" + property url backgroundPressed: "image://theme/" + __colorString + "meegotouch-button-radiobutton"+__invertedString+"-background-pressed" + property url backgroundDisabled: "image://theme/" + __colorString + "meegotouch-button-radiobutton"+__invertedString+"-background-disabled" + + // Mouse area margins + property int mouseMarginTop: 0 + property int mouseMarginLeft: 0 + property int mouseMarginRight: 0 + property int mouseMarginBottom: 0 + property int elideMode: Text.ElideNone +} diff --git a/mardrone/imports/Qt/labs/components/native/ScrollDecorator.qml b/mardrone/imports/Qt/labs/components/native/ScrollDecorator.qml new file mode 100644 index 0000000..38d04dc --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ScrollDecorator.qml @@ -0,0 +1,256 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +/** + * Class: ScrollDecorator + * A ScrollDecorator shows the current position in a scrollable area. + */ +Item { + id: root + + /** + * Property: flickableItem + * [Flickable] The Item that should show the ScrollDecorator + */ + property Flickable flickableItem + + property int __topPageMargin: 0 + property int __bottomPageMargin: 0 + property int __leftPageMargin: 0 + property int __rightPageMargin: 0 + property bool __hasPageWidth : false + property bool __hasPageHeight: false + + // These can also be modified (but probably shouldn't) + property int __minIndicatorSize: 20 + property int __hideTimeout: 500 + + property bool __alwaysShowIndicator: true + + property Style platformStyle: ScrollDecoratorStyle{} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + // This function ensures that we allways anchor the decorator correctly according + // to the page margins. + function __updatePageMargin() { + if (!flickableItem) + return + var p = flickableItem.parent + while (p) { + if (p.hasOwnProperty("__isPage")) { + __hasPageHeight = function() { return p.height == flickableItem.height } + __hasPageWidth = function() { return p.width == flickableItem.width } + __topPageMargin = function() { return p.anchors.topMargin } + __bottomPageMargin = function() { return p.anchors.bottomMargin } + __leftPageMargin = function() { return p.anchors.leftMargin } + __rightPageMargin = function() { return p.anchors.rightMargin } + return; + } else { + p = p.parent; + } + } + } + + onFlickableItemChanged: { __updatePageMargin() } + + QtObject { + id: privateApi + function canFlick(direction) { + return flickableItem.flickableDirection === direction + || flickableItem.flickableDirection === Flickable.HorizontalAndVerticalFlick + || flickableItem.flickableDirection === Flickable.AutoFlickDirection; + } + } + + // Private stuff + anchors.fill: flickableItem + + Timer { + // Hack to have the indicators flash when the view is shown the first time. + // Ideally we would wait until the Flickable is complete, but it doesn't look + // possible given the current limitations of QML. + interval: 100 + running: true + repeat: false + onTriggered: { + if (verticalIndicator.shouldShow) { + verticalIndicator.state = "visible"; + verticalIndicator.state = ""; + } + if (horizontalIndicator.shouldShow) { + horizontalIndicator.state = "visible"; + horizontalIndicator.state = ""; + } + } + } + + Component { + id: verticalSizerWrapper + ScrollDecoratorSizerCPP { + id: verticalSizer + positionRatio: flickableItem ? flickableItem.visibleArea.yPosition : 0 + sizeRatio: flickableItem ? flickableItem.visibleArea.heightRatio : 0 + maxPosition: flickableItem ? flickableItem.height : 0 + minSize: __minIndicatorSize + } + } + + Component { + id: horizontalSizerWrapper + ScrollDecoratorSizerCPP { + id: horizontalSizer + positionRatio: flickableItem ? flickableItem.visibleArea.xPosition : 0 + sizeRatio: flickableItem ? flickableItem.visibleArea.widthRatio : 0 + maxPosition: flickableItem ? flickableItem.width : 0 + minSize: __minIndicatorSize + } + } + + Loader {id: verticalSizerLoader} + Loader {id: horizontalSizerLoader} + + Item { + id: verticalIndicator + property bool shouldShow: flickableItem != null && ((__alwaysShowIndicator && privateApi.canFlick(Flickable.VerticalFlick)) && (flickableItem.height > 0 && flickableItem.contentHeight > flickableItem.height)) + opacity: 0 + anchors.right: parent.right + anchors.rightMargin: UI.SCROLLDECORATOR_LONG_MARGIN - (__hasPageWidth ? __rightPageMargin : 0) + anchors.top: parent.top + anchors.topMargin: UI.SCROLLDECORATOR_SHORT_MARGIN - (__hasPageWidth ? __topPageMargin : 0) + anchors.bottom: parent.bottom + anchors.bottomMargin: UI.SCROLLDECORATOR_SHORT_MARGIN - (__hasPageWidth ? __bottomPageMargin : 0) + + onShouldShowChanged: { + if (shouldShow) + verticalSizerLoader.sourceComponent = verticalSizerWrapper; + else + verticalSizerLoader.sourceComponent = undefined; + } + + Image { + source: platformStyle.background + height: parent.height + anchors.right: parent.right + } + BorderImage { + source: platformStyle.indicator + border { left: 2; top: 4; right: 2; bottom: 4 } + anchors.right: parent.right + y: verticalIndicator.shouldShow && verticalSizerLoader.status == Loader.Ready ? verticalSizerLoader.item.position : 0 + height: verticalIndicator.shouldShow && verticalSizerLoader.status == Loader.Ready ? + verticalSizerLoader.item.size - parent.anchors.topMargin - parent.anchors.bottomMargin : 0 + } + + states: State { + name: "visible" + when: verticalIndicator.shouldShow && flickableItem.moving + PropertyChanges { + target: verticalIndicator + opacity: 1 + } + } + + transitions: Transition { + from: "visible"; to: "" + NumberAnimation { + properties: "opacity" + duration: root.__hideTimeout + } + } + } + + Item { + id: horizontalIndicator + property bool shouldShow: flickableItem != null && ((__alwaysShowIndicator && privateApi.canFlick(Flickable.HorizontalFlick)) && (flickableItem.width > 0 && flickableItem.contentWidth > flickableItem.width)) + opacity: 0 + anchors.bottom: parent.bottom + anchors.bottomMargin: UI.SCROLLDECORATOR_LONG_MARGIN - (__hasPageHeight ? __bottomPageMargin : 0) + anchors.right: parent.right + anchors.rightMargin: UI.SCROLLDECORATOR_SHORT_MARGIN - (__hasPageHeight ? __rightPageMargin : 0) + anchors.left: parent.left + anchors.leftMargin: UI.SCROLLDECORATOR_SHORT_MARGIN - (__hasPageHeight ? __leftPageMargin : 0) + + onShouldShowChanged: { + if (shouldShow) + horizontalSizerLoader.sourceComponent = horizontalSizerWrapper; + else + horizontalSizerLoader.sourceComponent = undefined; + } + + Image { + source: platformStyle.backgroundHorizontal + width: parent.width + anchors.left: parent.left + anchors.bottom: parent.bottom + } + BorderImage { + source: platformStyle.indicatorHorizontal + border { left: 4; top: 2; right: 4; bottom: 2 } + anchors.bottom: parent.bottom + x: horizontalIndicator.shouldShow && horizontalSizerLoader.status == Loader.Ready ? horizontalSizerLoader.item.position : 0 + width: horizontalIndicator.shouldShow && horizontalSizerLoader.status == Loader.Ready ? + horizontalSizerLoader.item.size - parent.anchors.leftMargin - parent.anchors.rightMargin : 0 + } + + states: State { + name: "visible" + when: horizontalIndicator.shouldShow && flickableItem.moving + PropertyChanges { + target: horizontalIndicator + opacity: 1 + } + } + + transitions: Transition { + from: "visible"; to: "" + NumberAnimation { + properties: "opacity" + duration: root.__hideTimeout + } + } + } +} + diff --git a/mardrone/imports/Qt/labs/components/native/ScrollDecoratorSizer.qml b/mardrone/imports/Qt/labs/components/native/ScrollDecoratorSizer.qml new file mode 100644 index 0000000..92bc575 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ScrollDecoratorSizer.qml @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Item { + // relative (0..1) position of top and bottom + property real positionRatio + property real sizeRatio + + // max position and min size + property real maxPosition + property real minSize + + // size underflow + property real sizeUnderflow: (sizeRatio * maxPosition) < minSize ? minSize - (sizeRatio * maxPosition) : 0 + + // raw start and end position considering minimum size + property real rawStartPos: positionRatio * (maxPosition - sizeUnderflow) + property real rawEndPos: (positionRatio + sizeRatio) * (maxPosition - sizeUnderflow) + sizeUnderflow + + // overshoot amount at start and end + property real overshootStart: rawStartPos < 0 ? -rawStartPos : 0 + property real overshootEnd: rawEndPos > maxPosition ? rawEndPos - maxPosition : 0 + + // overshoot adjusted start and end + property real adjStartPos: rawStartPos + overshootStart + property real adjEndPos: rawEndPos - overshootStart - overshootEnd + + // final position and size of thumb + property int position: 0.5 + (adjStartPos + minSize > maxPosition ? maxPosition - minSize : adjStartPos) + property int size: 0.5 + ((adjEndPos - position) < minSize ? minSize : (adjEndPos - position)) +} + diff --git a/mardrone/imports/Qt/labs/components/native/ScrollDecoratorStyle.qml b/mardrone/imports/Qt/labs/components/native/ScrollDecoratorStyle.qml new file mode 100644 index 0000000..2be1cc8 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ScrollDecoratorStyle.qml @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Style { + // Background + property url background: "image://theme/meegotouch-positionindicator"+__invertedString+"-background" + property url indicator: "image://theme/meegotouch-positionindicator"+__invertedString+"-indicator" + property url backgroundHorizontal: "image://theme/meegotouch-positionindicator"+__invertedString+"-background-horizontal" + property url indicatorHorizontal: "image://theme/meegotouch-positionindicator"+__invertedString+"-indicator-horizontal" +} diff --git a/mardrone/imports/Qt/labs/components/native/SectionScroller.js b/mardrone/imports/Qt/labs/components/native/SectionScroller.js new file mode 100644 index 0000000..ecd210e --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/SectionScroller.js @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +var sectionData = []; +var _sections = []; + +function initialize(list) { + initSectionData(list); +} + +function initSectionData(list) { + if (!list || !list.model) return; + sectionData = []; + _sections = []; + var current = "", + prop = list.section.property, + item; + + for (var i = 0, count = list.model.count; i < count; i++) { + item = list.model.get(i); + if (item[prop] !== current) { + current = item[prop]; + _sections.push(current); + sectionData.push({ index: i, header: current }); + } + } +} + +function getSectionPositionString(name) { + var val = _sections.indexOf(name); + return val === 0 ? "first" : + val === _sections.length - 1 ? "last" : false; +} + +function getAt(pos) { + return _sections[pos] ? _sections[pos] : ""; +} + +function getRelativeSections(current) { + var val = _sections.indexOf(current), + sect = [], + sl = _sections.length; + + val = val < 1 ? 1 : val >= sl-1 ? sl-2 : val; + sect = [getAt(val - 1), getAt(val), getAt(val + 1)]; + + return sect; +} + +function getClosestSection(pos, down) { + var tmp = (_sections.length) * pos; + var val = Math.ceil(tmp) // TODO: better algorithm + val = val < 2 ? 1 : val; + return _sections[val-1]; +} + +function getNextSection(current) { + var val = _sections.indexOf(current); + return (val > -1 ? _sections[(val < _sections.length - 1 ? val + 1 : val)] : _sections[0]) || ""; +} + +function getPreviousSection(current) { + var val = _sections.indexOf(current); + return (val > -1 ? _sections[(val > 0 ? val - 1 : val)] : _sections[0]) || ""; +} + +function getIndexFor(sectionName) { + var val = sectionData[_sections.indexOf(sectionName)].index; + return val === 0 || val > 0 ? val : -1; +} diff --git a/mardrone/imports/Qt/labs/components/native/SectionScroller.qml b/mardrone/imports/Qt/labs/components/native/SectionScroller.qml new file mode 100644 index 0000000..ae2018f --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/SectionScroller.qml @@ -0,0 +1,331 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "SectionScroller.js" as Sections + +Item { + id: root + + property ListView listView + + onListViewChanged: { + if (listView && listView.model) { + internal.initDirtyObserver(); + } else if (listView) { + listView.modelChanged.connect(function() { + if (listView.model) { + internal.initDirtyObserver(); + } + }); + } + } + + property Style platformStyle: SectionScrollerStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + Rectangle { + id: container + color: "transparent" + width: 35 + height: listView.height + x: listView.x + listView.width - width + property bool dragging: false + + MouseArea { + id: dragArea + objectName: "dragArea" + anchors.fill: parent + drag.target: tooltip + drag.axis: Drag.YAxis + drag.minimumY: listView.y + drag.maximumY: listView.y + listView.height - tooltip.height + + onPressed: { + mouseDownTimer.restart() + } + + onReleased: { + container.dragging = false; + mouseDownTimer.stop() + } + + onPositionChanged: { + internal.adjustContentPosition(dragArea.mouseY); + } + + Timer { + id: mouseDownTimer + interval: 150 + + onTriggered: { + container.dragging = true; + internal.adjustContentPosition(dragArea.mouseY); + tooltip.positionAtY(dragArea.mouseY); + } + } + } + Item { + id: tooltip + objectName: "popup" + opacity: container.dragging ? 1 : 0 + anchors.right: parent.right + anchors.rightMargin: 50 + width: childrenRect.width + height: childrenRect.height + + function positionAtY(yCoord) { + tooltip.y = Math.max(dragArea.drag.minimumY, Math.min(yCoord - tooltip.height/2, dragArea.drag.maximumY)); + } + + BorderImage { + id: background + width: childrenRect.width// + 20 + height: childrenRect.height// + 20 + anchors.left: parent.left + source: platformStyle.backgroundImage + border { left: 4; top: 4; right: 4; bottom: 4 } + + Column { + width: Math.max(previousSectionLabel.width, currentSectionLabel.width, nextSectionLabel.width) + height: childrenRect.height + + SectionScrollerLabel { + id: previousSectionLabel + objectName: "previousSectionLabel" + text: internal.prevSection + highlighted: internal.curSect === text + up: !internal.down + } + + Image { + objectName: "divider1" + source: platformStyle.dividerImage + width: parent.width + height: 1 + anchors.horizontalCenter: parent.horizontalCenter + } + + SectionScrollerLabel { + id: currentSectionLabel + objectName: "currentSectionLabel" + text: internal.currentSection + highlighted: internal.curSect === text + up: !internal.down + } + + Image { + objectName: "divider2" + source: platformStyle.dividerImage + width: parent.width + height: 1 + anchors.horizontalCenter: parent.horizontalCenter + } + + SectionScrollerLabel { + id: nextSectionLabel + objectName: "nextSectionLabel" + text: internal.nextSection + highlighted: internal.curSect === text + up: !internal.down + } + } + } + + Image { + id: arrow + objectName: "arrow" + width: 8 + height: 16 + anchors.left: background.right + property int threshold: currentSectionLabel.height + property int yInitial: background.y + background.height/2 - height/2 + y: getYPosition() + source: platformStyle.arrowImage + + function getYPosition() { + var v = internal.curPos; + var adjust = v === "first" ? -threshold : + v === "last" ? threshold : 0; + + return yInitial + adjust; + } + + states: [ + State { + when: root.dragging && dragArea.mouseY < (root.listView.y + threshold) + PropertyChanges { + target: arrow + y: yInitial - threshold + } + } + ] + + Behavior on y { + NumberAnimation { + duration: 100 + } + } + } + + states: [ + State { + name: "visible" + when: container.dragging + }, + + State { + extend: "visible" + name: "atTop" + when: internal.curPos === "first" + PropertyChanges { + target: previousSectionLabel + text: internal.currentSection + } + PropertyChanges { + target: currentSectionLabel + text: internal.nextSection + } + PropertyChanges { + target: nextSectionLabel + text: Sections.getNextSection(internal.nextSection) + } + }, + + State { + extend: "visible" + name: "atBottom" + when: internal.curPos === "last" + PropertyChanges { + target: previousSectionLabel + text: Sections.getPreviousSection(internal.prevSection) + } + PropertyChanges { + target: currentSectionLabel + text: internal.prevSection + } + PropertyChanges { + target: nextSectionLabel + text: internal.currentSection + } + } + ] + + Behavior on opacity { + NumberAnimation { duration: 100 } + } + } + } + + Timer { + id: dirtyTimer + interval: 100 + running: false + onTriggered: { + Sections.initSectionData(listView); + internal.modelDirty = false; + } + } + + Connections { + target: root.listView + onCurrentSectionChanged: internal.curSect = container.dragging ? internal.curSect : "" + } + + QtObject { + id: internal + + property string prevSection: "" + property string currentSection: listView.currentSection + property string nextSection: "" + property string curSect: "" + property string curPos: "first" + property int oldY: 0 + property bool modelDirty: false + property bool down: true + + function initDirtyObserver() { + Sections.initialize(listView); + function dirtyObserver() { + if (!internal.modelDirty) { + internal.modelDirty = true; + dirtyTimer.running = true; + } + } + + if (listView.model.countChanged) + listView.model.countChanged.connect(dirtyObserver); + + if (listView.model.itemsChanged) + listView.model.itemsChanged.connect(dirtyObserver); + + if (listView.model.itemsInserted) + listView.model.itemsInserted.connect(dirtyObserver); + + if (listView.model.itemsMoved) + listView.model.itemsMoved.connect(dirtyObserver); + + if (listView.model.itemsRemoved) + listView.model.itemsRemoved.connect(dirtyObserver); + } + + function adjustContentPosition(y) { + if (y < 0 || y > dragArea.height) return; + + internal.down = (y > internal.oldY); + var sect = Sections.getClosestSection((y / dragArea.height), internal.down); + internal.oldY = y; + if (internal.curSect != sect) { + internal.curSect = sect; + internal.curPos = Sections.getSectionPositionString(internal.curSect); + var sec = Sections.getRelativeSections(internal.curSect); + internal.prevSection = sec[0]; + internal.currentSection = sec[1]; + internal.nextSection = sec[2]; + var idx = Sections.getIndexFor(sect); + listView.positionViewAtIndex(idx, ListView.Beginning); + } + } + + } +} diff --git a/mardrone/imports/Qt/labs/components/native/SectionScrollerLabel.qml b/mardrone/imports/Qt/labs/components/native/SectionScrollerLabel.qml new file mode 100644 index 0000000..50c2caa --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/SectionScrollerLabel.qml @@ -0,0 +1,98 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Item { + id: root + + property alias text: label.current + property alias up: label.up + property bool highlighted: false + + width: wrapper.width + height: wrapper.height + + property Style platformStyle: SectionScrollerStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + Item { + id: wrapper + + clip: true + height: label.height + + Text { + id: label + + property string current: "" + property bool up: true + property int shift: 30 + + height: 60 + width: parent.width - 40 + text: "" + x: 20 + color: root.highlighted ? root.platformStyle.textColorHighlighted : root.platformStyle.textColor + font { + bold: root.platformStyle.fontBoldProperty + pixelSize: root.platformStyle.fontPixelSize + } + verticalAlignment: Text.AlignVCenter + onCurrentChanged: { + text = current; + } + onTextChanged: { + var w = paintedWidth + parent.width = w + 40; + } + + Behavior on current { + SequentialAnimation { + NumberAnimation { target: label; property: "y"; to: label.up ? label.shift : -label.shift; duration: 50 } + PropertyAction { target: label; property: "y"; value: label.up ? -label.shift : label.shift } + NumberAnimation { target: label; property: "y"; to: 0; duration: 50 } + } + } + } + } +} diff --git a/mardrone/imports/Qt/labs/components/native/SectionScrollerStyle.qml b/mardrone/imports/Qt/labs/components/native/SectionScrollerStyle.qml new file mode 100644 index 0000000..0f0043a --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/SectionScrollerStyle.qml @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + + // Font + property int fontPixelSize: UI.FONT_XXSMALL + property bool fontBoldProperty: true + + // Color + property color textColorHighlighted: "#fff" + property color textColor: "#888" + + property url dividerImage: "image://theme/meegotouch-scroll-bubble-divider"+__invertedString + property url backgroundImage: "image://theme/meegotouch-scroll-bubble-background"+__invertedString + property url arrowImage: "image://theme/meegotouch-scroll-bubble-arrow"+__invertedString +} diff --git a/mardrone/imports/Qt/labs/components/native/SelectionDialog.qml b/mardrone/imports/Qt/labs/components/native/SelectionDialog.qml new file mode 100644 index 0000000..fe4d15c --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/SelectionDialog.qml @@ -0,0 +1,178 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +CommonDialog { + id: root + + // Common API + property alias model: selectionListView.model + property int selectedIndex: -1 // read & write + //property string titleText: "Selection Dialog" + + property Component delegate: // Note that this is the default delegate for the list + Component { + id: defaultDelegate + + Item { + id: delegateItem + property bool selected: index == selectedIndex; + + height: root.platformStyle.itemHeight + anchors.left: parent.left + anchors.right: parent.right + + MouseArea { + id: delegateMouseArea + anchors.fill: parent; + onPressed: selectedIndex = index; + onClicked: accept(); + } + + + Rectangle { + id: backgroundRect + anchors.fill: parent + color: delegateItem.selected ? root.platformStyle.itemSelectedBackgroundColor : root.platformStyle.itemBackgroundColor + } + + BorderImage { + id: background + anchors.fill: parent + border { left: UI.CORNER_MARGINS; top: UI.CORNER_MARGINS; right: UI.CORNER_MARGINS; bottom: UI.CORNER_MARGINS } + source: delegateMouseArea.pressed ? root.platformStyle.itemPressedBackground : + delegateItem.selected ? root.platformStyle.itemSelectedBackground : + root.platformStyle.itemBackground + } + + Text { + id: itemText + elide: Text.ElideRight + color: delegateItem.selected ? root.platformStyle.itemSelectedTextColor : root.platformStyle.itemTextColor + anchors.verticalCenter: delegateItem.verticalCenter + anchors.left: parent.left + anchors.right: parent.right + anchors.leftMargin: root.platformStyle.itemLeftMargin + anchors.rightMargin: root.platformStyle.itemRightMargin + text: modelData + font: root.platformStyle.itemFont + } + Component.onCompleted: { + try { + // Legacy. "name" used to be the role which was used by delegate + itemText.text = name + } catch(err) { + try { + // "modelData" available for JS array and for models with one role + itemText.text = modelData + } catch (err) { + try { + // C++ models have "display" role available always + itemText.text = display + } catch(err) { + } + } + } + } + } + } + + onStatusChanged: { + if (status == DialogStatus.Opening && selectedIndex >= 0) { + selectionListView.positionViewAtIndex(selectedIndex, ListView.Center) + } + } + + // Style API + property Style platformStyle: SelectionDialogStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + // private api + property int __pressDelay: platformStyle.pressDelay + + // the title field consists of the following parts: title string and + // a close button (which is in fact an image) + // it can additionally have an icon + titleText:"Selection Dialog" + + // the content field which contains the selection content + content: Item { + + id: selectionContent + property int listViewHeight + property int maxListViewHeight : visualParent + ? visualParent.height * 0.87 + - root.platformStyle.titleBarHeight - root.platformStyle.contentSpacing - 50 + : root.parent + ? root.parent.height * 0.87 + - root.platformStyle.titleBarHeight - root.platformStyle.contentSpacing - 50 + : 350 + height: listViewHeight > maxListViewHeight ? maxListViewHeight : listViewHeight + width: root.width + y : root.platformStyle.contentSpacing + + ListView { + id: selectionListView + model: ListModel {} + + currentIndex : -1 + anchors.fill: parent + delegate: root.delegate + focus: true + clip: true + pressDelay: __pressDelay + + ScrollDecorator { + id: scrollDecorator + flickableItem: selectionListView + platformStyle.inverted: true + } + onModelChanged: selectionContent.listViewHeight = model.count * platformStyle.itemHeight + } + + } +} + + diff --git a/mardrone/imports/Qt/labs/components/native/SelectionDialogStyle.qml b/mardrone/imports/Qt/labs/components/native/SelectionDialogStyle.qml new file mode 100644 index 0000000..605dd7a --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/SelectionDialogStyle.qml @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +DialogStyle { + property alias titleBarFont: titleText.font + property int titleBarHeight: 44 + property color titleBarColor: "white" + property int titleBarIndent: 17 + property int titleBarLineMargin: 10 + + property bool __portrait: (screen.currentOrientation == 1) || (screen.currentOrientation == 4) + + property int leftMargin: __portrait ? 11 : 160 + property int rightMargin: __portrait ? 11 : 160 + + property alias itemFont: itemText.font + property int fontXLarge: 32 + property int fontLarge: 28 + property int fontDefault: 24 + property int fontSmall: 20 + property int fontXSmall: 18 + property int fontXXSmall: 16 + + property color colorForeground: "#191919" + property color colorSecondaryForeground: "#8c8c8c" + property color colorBackground: "#ffffff" + property color colorSelect: "#7fb133" + + property color commonLabelColor: "white" + + property int itemHeight: 64 + property color itemTextColor: "white" + property color itemSelectedTextColor: "white" + property int itemLeftMargin: 16 + property int itemRightMargin: 16 + + property int contentSpacing: 10 + + property int pressDelay: 350 // ms + + // Background + property url itemBackground: "" + property color itemBackgroundColor: "transparent" + property color itemSelectedBackgroundColor: "#3D3D3D" + property url itemSelectedBackground: "" // "image://theme/" + __colorString + "meegotouch-list-fullwidth-background-selected" + property url itemPressedBackground: "image://theme/" + __colorString + "meegotouch-panel-inverted-background-pressed" + + property int buttonsTopMargin: 30 // ToDo: evaluate correct value + + Text { + id: titleText + font.family: UI.FONT_FAMILY + font.pixelSize: UI.FONT_XLARGE + font.capitalization: Font.MixedCase + font.bold: false + } + + Text { + id: itemText + font.family: UI.FONT_FAMILY + font.pixelSize: UI.FONT_DEFAULT_SIZE + font.capitalization: Font.MixedCase + font.bold: true + } + } diff --git a/mardrone/imports/Qt/labs/components/native/Sheet.qml b/mardrone/imports/Qt/labs/components/native/Sheet.qml new file mode 100644 index 0000000..9956c64 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/Sheet.qml @@ -0,0 +1,230 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + + width: parent ? parent.width : 0 + height: parent ? parent.height : 0 + + property alias title: titleBar.children + property alias content: contentField.children + property alias buttons: buttonRow.children + property Item visualParent + property int status: DialogStatus.Closed + + property alias acceptButtonText: acceptButton.text + property alias rejectButtonText: rejectButton.text + + property alias acceptButton: acceptButton + property alias rejectButton: rejectButton + + signal accepted + signal rejected + + property QtObject platformStyle: SheetStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + function reject() { + close(); + rejected(); + } + + function accept() { + close(); + accepted(); + } + + visible: status != DialogStatus.Closed; + + function open() { + parent = visualParent || __findParent(); + sheet.state = ""; + } + + function close() { + sheet.state = "closed"; + } + + function __findParent() { + var next = parent; + while (next && next.parent + && next.objectName != "appWindowContent" + && next.objectName != "windowContent") { + next = next.parent; + } + return next; + } + + function getButton(name) { + for (var i=0; i handle.width / 2) + range.position = newX; + } + + onCanceled: { + range.position = oldPosition; + } + } + + Item { + id: valueIndicator + + transform: Translate { + x: - handle.width / 2; + y: __isVertical? -(__valueIndicatorItem.width/2)+20 : y ; + } + + rotation: __isVertical ? 90 : 0 + visible: valueIndicatorVisible + + width: __valueIndicatorItem.width //+ (__isVertical? (handle.width/2) : 0 ) + height: __valueIndicatorItem.height + + state: { + if (!__isVertical) + return slider.valueIndicatorPosition; + + if (valueIndicatorPosition == "Right") + return "Bottom"; + if (valueIndicatorPosition == "Top") + return "Right"; + if (valueIndicatorPosition == "Bottom") + return "Left"; + + return "Top"; + } + + anchors.margins: valueIndicatorMargin + + states: [ + State { + name: "Top" + AnchorChanges { + target: valueIndicator + anchors.bottom: handle.top + anchors.horizontalCenter: handle.horizontalCenter + } + }, + State { + name: "Bottom" + AnchorChanges { + target: valueIndicator + anchors.top: handle.bottom + anchors.horizontalCenter: handle.horizontalCenter + } + }, + State { + name: "Right" + AnchorChanges { + target: valueIndicator + anchors.left: handle.right + anchors.verticalCenter: handle.verticalCenter + } + }, + State { + name: "Left" + AnchorChanges { + target: valueIndicator + anchors.right: handle.left + anchors.verticalCenter: handle.verticalCenter + } + } + ] + } + } + + // when there is no mouse interaction, the handle's position binds to the value + Binding { + when: !mouseArea.drag.active + target: fakeHandle + property: "x" + value: range.position + } + + // when the slider is dragged, the value binds to the handle's position + Binding { + when: mouseArea.drag.active + target: range + property: "position" + value: fakeHandle.x + } +} diff --git a/mardrone/imports/Qt/labs/components/native/SoftwareInputPanel.qml b/mardrone/imports/Qt/labs/components/native/SoftwareInputPanel.qml new file mode 100644 index 0000000..75dbbc7 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/SoftwareInputPanel.qml @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import Qt 4.7 + +Item { + id: root + width: parent.width + height: 0 + + objectName: "softwareInputPanel" + + property bool active: false + + states: State { + when: active + PropertyChanges { target: root; height: childrenRect.height; } + } + + transitions: Transition { + reversible: true + NumberAnimation { properties: "opacity"; easing.type: Easing.InOutCubic; duration: 200 } + } +} diff --git a/mardrone/imports/Qt/labs/components/native/StatusBar.qml b/mardrone/imports/Qt/labs/components/native/StatusBar.qml new file mode 100644 index 0000000..cffe9db --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/StatusBar.qml @@ -0,0 +1,104 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + + +StatusBarInternal { + id: statusBar + anchors.top: parent.top + width: parent.width + + property bool showStatusBar: true + property bool __completed: false + + states: State { + name: "hide"; when: showStatusBar==false + PropertyChanges { target: statusBar; anchors.topMargin: -statusBar.height; visible: false} + } + + Component.onCompleted: { + statusBar.orientation = screen.currentOrientation + screen.updatePlatformStatusBarRect(statusBar) + __completed = true; + } + + onWidthChanged: { + updatePlatformStatusBarTimer.running = true + } + + Timer { + // Timer is used to update statusbarrect to avoid duplicated calls during animation, + // also onActiveChanged coming too early + id: updatePlatformStatusBarTimer + repeat: false + interval: 50 + onTriggered: { + screen.updatePlatformStatusBarRect(statusBar); + } + } + + Connections { + target: platformWindow + onActiveChanged: { + updatePlatformStatusBarTimer.running = true + } + } + + transitions: Transition { + from: __completed ? "" : "invalid" + to: __completed ? "hide" : "invalid" + reversible: true + SequentialAnimation { + ScriptAction { + script: { + updatePlatformStatusBarTimer.running = true + } + } + PropertyAnimation { target: statusBar; properties: "anchors.topMargin"; easing.type: Easing.InOutExpo; duration: 500 } + PropertyAnimation { target: statusBar; properties: "visible"; } + ScriptAction { + script: { + updatePlatformStatusBarTimer.running = true; + } + } + } + } +} diff --git a/mardrone/imports/Qt/labs/components/native/Style.qml b/mardrone/imports/Qt/labs/components/native/Style.qml new file mode 100644 index 0000000..870b715 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/Style.qml @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +QtObject { + id: styleClass + // Settings + property bool inverted: theme.inverted + property string __invertedString: inverted? "-inverted" : "" + property string __colorString: theme.colorString + + // some style classes like SelectionDialogStyle are using nested elements (for example Text), + // which isn't allowed by QtObject; this fix makes this possible + default property alias children: styleClass.__defaultPropertyFix + property list __defaultPropertyFix: [Item {}] //QML doesn't allow an empty list here + +} diff --git a/mardrone/imports/Qt/labs/components/native/Switch.qml b/mardrone/imports/Qt/labs/components/native/Switch.qml new file mode 100644 index 0000000..f23bf39 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/Switch.qml @@ -0,0 +1,182 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +/* +Class: Switch + The Switch component is similar to the CheckBox component but instead of + selecting items it should be used when setting options to On/Off. +*/ +Item { + id: root + + width: slider.width + height: slider.height + + /* + * Property: checked + * [bool=false] The checked state of switch + */ + property bool checked: false + + // Styling for the Switch + property Style platformStyle: SwitchStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + property alias platformMouseAnchors: mouseArea.anchors + + /* + * Property: enabled + * [bool=true] Enables/Disables the component. Notice that the disable state is not Toolkit compliant + * and not present inside the qt-components + */ + + Item { + id: slider + + width: 66 + height: 42 + + state: root.checked ? "checked" : "unchecked" + + property real knobPos: (knob.x - platformStyle.minKnobX) / (platformStyle.maxKnobX - platformStyle.minKnobX) + + Image { + source: platformStyle.switchOn + opacity: slider.knobPos + } + Image { + source: platformStyle.switchOff + opacity: 1.0 - slider.knobPos + } + + states: [ + State { + name: "unchecked" + PropertyChanges { target: knob; x: platformStyle.minKnobX } + }, + State { + name: "checked" + PropertyChanges { target: knob; x: platformStyle.maxKnobX } + } + ] + + transitions: [ + Transition { + SmoothedAnimation { properties: "x"; velocity: 500; maximumEasingTime: 0 } + } + ] + + // thumb (shadow) + Image { + id: knob + + // thumb (inline) + Image { + width: 30 + height: 30 + x: 0 + y: -2 + source: (slider.enabled ? (mouseArea.pressed ? platformStyle.thumbPressed : platformStyle.thumb) : platformStyle.thumbDisabled) + } + + source: platformStyle.shadow + + y: 8 + + width: 30 + height: 30 + } + + MouseArea { + id: mouseArea + property int downMouseX + property int downKnobX + anchors { + fill: parent + rightMargin: platformStyle.mouseMarginRight + leftMargin: platformStyle.mouseMarginLeft + topMargin: platformStyle.mouseMarginTop + bottomMargin: platformStyle.mouseMarginBottom + } + + function snap() { + if (knob.x < (platformStyle.maxKnobX + platformStyle.minKnobX) / 2) { + if (root.checked) { + root.checked = false; + } else { + knob.x = platformStyle.minKnobX; + } + } else { + if (!root.checked) { + root.checked = true; + } else { + knob.x = platformStyle.maxKnobX; + } + } + } + + onPressed: { + downMouseX = mouseX; + downKnobX = knob.x; + } + + onPositionChanged: { + var newKnobX = downKnobX - (downMouseX - mouseX); + knob.x = newKnobX < platformStyle.minKnobX ? platformStyle.minKnobX : newKnobX > platformStyle.maxKnobX ? platformStyle.maxKnobX : newKnobX; + } + + onReleased: { + if (Math.abs(downMouseX - mouseX) < 5) + root.checked = !root.checked; + else + snap(); + } + + onCanceled: { + snap(); + } + + } + } +} diff --git a/mardrone/imports/Qt/labs/components/native/SwitchStyle.qml b/mardrone/imports/Qt/labs/components/native/SwitchStyle.qml new file mode 100644 index 0000000..ec1b1b7 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/SwitchStyle.qml @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + property int minKnobX: 6 + property int maxKnobX: 30 + + // Slider + property url switchOn: "image://theme/" + __colorString + "meegotouch-switch-on"+__invertedString + property url switchOff: "image://theme/meegotouch-switch-off"+__invertedString + + // Knob + property url thumb: "image://theme/meegotouch-switch-thumb"+__invertedString + property url thumbPressed: "image://theme/meegotouch-switch-thumb-pressed"+__invertedString + property url thumbDisabled: "image://theme/meegotouch-switch-thumb-disabled"+__invertedString + property url shadow: "image://theme/meegotouch-switch-shadow"+__invertedString + + // Mouse + property real mouseMarginRight: -UI.MARGIN_XLARGE + property real mouseMarginLeft: -UI.MARGIN_XLARGE + property real mouseMarginTop: -UI.MARGIN_XLARGE + property real mouseMarginBottom: -UI.MARGIN_XLARGE +} diff --git a/mardrone/imports/Qt/labs/components/native/TabBarLayout.qml b/mardrone/imports/Qt/labs/components/native/TabBarLayout.qml new file mode 100644 index 0000000..e3e4a7f --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/TabBarLayout.qml @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + width: visible && parent ? parent.width : 0 + height: visible && parent ? parent.height : 0 + + Component.onCompleted: { + __layout() + print("Warning, TabBarLayout has been deprecated from the API.") + print("To fix your code, please use:") + print(" tools: ToolBarLayout { ToolItem{} ButtonRow{TabButton{} ... } } instead.") + } + onChildrenChanged: __layout() + onWidthChanged: __layout() + onHeightChanged: __layout() + + function __layout() { + if (parent == null || width == 0) + return; + + var orientation = screen.currentOrientation == Screen.Landscape || screen.currentOrientation == Screen.LandscapeInverted ? "landscape" : "portrait", + padding = orientation == "landscape" ? 80 : 15; + + for (var i = 0, childCount = children.length, tabCount = 0, widthOthers = 0; i < childCount; i++) { + if (children[i].tab !== undefined) { + children[i].platformStyle.position = (tabCount++ === 0) ? "horizontal-left" : "horizontal-center"; + children[i].platformStyle.screenOrientation = orientation; + } else { + widthOthers += children[i].width; + children[i].y = (height - children[i].height) / 2; + } + } + // Check if last item is a tab button and set appropriate position + tabCount && (children[children[0].tab ? tabCount - 1 : tabCount].platformStyle.position = "horizontal-right"); + + widthOthers += children[0].tab ? padding : 0; + widthOthers += children[childCount - 1].tab ? padding : 0; + + var tabWidth = Math.round((width - widthOthers) / tabCount), + offset = children[0].tab ? padding : children[0].width; + + for (var i = children[0].tab ? 0 : 1, index = 0; i < childCount; i++, index++) { + children[i].x = tabWidth * index + offset; + children[i].tab && (children[i].width = tabWidth); + } + } +} + diff --git a/mardrone/imports/Qt/labs/components/native/TabButton.qml b/mardrone/imports/Qt/labs/components/native/TabButton.qml new file mode 100644 index 0000000..61f5f0a --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/TabButton.qml @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import Qt.labs.components 1.1 + +Button { + id: tabButton + + // Common public API + property Item tab + property QtObject platformStyle: TabButtonStyle {} + + //Deprecated: TODO, remove this! + property alias style: tabButton.platformStyle + + property Item __tabGroup: tab !== null ? tab.parent : null + + Connections { + target: __tabGroup + onCurrentTabChanged: checked = __tabGroup.currentTab == tab; + } + + onClicked: privatePressed() + + function privatePressed() { + if (tabButton.checkable) { + tabButton.checked = !tabButton.checked; + } + + if (__tabGroup != null && + tab != null) { + __tabGroup.currenTab == tab ? __tabGroup.currentTab.pop(): __tabGroup.currentTab = tab; + } + } +} diff --git a/mardrone/imports/Qt/labs/components/native/TabButtonStyle.qml b/mardrone/imports/Qt/labs/components/native/TabButtonStyle.qml new file mode 100644 index 0000000..c0ac46d --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/TabButtonStyle.qml @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +ButtonStyle { + /* The orientation of the button which can take one of the two values: + [portrait] [landscape] + */ + property string screenOrientation: (screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted) ? "portrait" : "landscape" + + fontCapitalization: Font.MixedCase + fontPixelSize: 24 + fontWeight: Font.Normal + checkedFontWeight: Font.Bold + + buttonHeight: screenOrientation == "portrait"? 72 : 56 + + textColor: inverted ? "#CDCDCD" : "#505050" + pressedTextColor: inverted ? "#ffffff" : "#505050" + checkedTextColor: inverted ? "#ffffff" : "#000000" + + background: "image://theme/meegotouch-tab-" + screenOrientation + "-bottom" + __invertedString + "-background" + (position ? "-" + position : "") + + pressedBackground: "image://theme/meegotouch-tab-" + screenOrientation + "-bottom" + __invertedString + "-background-pressed" + (position ? "-" + position : "") + disabledBackground: "image://theme/meegotouch-tab-" + screenOrientation + "-bottom" + __invertedString + "-background" + (position ? "-" + position : "") + checkedBackground: "image://theme/meegotouch-tab-" + screenOrientation + "-bottom" + __invertedString + "-background-selected" + (position ? "-" + position : "") + checkedDisabledBackground: "image://theme/meegotouch-tab" + screenOrientation + "-bottom" + __invertedString + "-background" + (position ? "-" + position : "") +} diff --git a/mardrone/imports/Qt/labs/components/native/TabGroup.qml b/mardrone/imports/Qt/labs/components/native/TabGroup.qml new file mode 100644 index 0000000..72011d6 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/TabGroup.qml @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// The TabGroup item defines a set of tabs consisting of page stacks or +// pages that can be switched between to implement a tabbed user interface. + +import QtQuick 1.1 +import "." 1.0 + +Item { + + // The currently selected tab. + property Item currentTab + + width: parent ? parent.width : 0 + height: parent ? parent.height : 0 + + onVisibleChanged: __update() + onChildrenChanged: __update() + onCurrentTabChanged: __update() + + function __update() { + for (var i = 0; i < children.length; i++) { + var child = children[i]; + var newVis = child == currentTab; + if (child.visible != newVis) { + child.visible = newVis; + if (child.status !== undefined) { + if (newVis) { + child.status = PageStatus.Activating; + child.status = PageStatus.Active; + } else { + child.status = PageStatus.Deactivating; + child.status = PageStatus.Inactive; + } + } + } + } + } + +} diff --git a/mardrone/imports/Qt/labs/components/native/TextArea.qml b/mardrone/imports/Qt/labs/components/native/TextArea.qml new file mode 100644 index 0000000..88df502 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/TextArea.qml @@ -0,0 +1,545 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import Qt.labs.components 1.1 +import "UIConstants.js" as UI +import "EditBubble.js" as Popup +import "TextAreaHelper.js" as TextAreaHelper +import "Magnifier.js" as MagnifierPopup + +FocusScope { + id: root + + // Common public API + property alias text: textEdit.text + property alias placeholderText: prompt.text + + property alias font: textEdit.font + property alias cursorPosition: textEdit.cursorPosition + property alias readOnly: textEdit.readOnly + + property alias horizontalAlignment: textEdit.horizontalAlignment + property alias verticalAlignment: textEdit.verticalAlignment + + property alias selectedText: textEdit.selectedText + property alias selectionStart: textEdit.selectionStart + property alias selectionEnd: textEdit.selectionEnd + + property alias wrapMode: textEdit.wrapMode + property alias textFormat: textEdit.textFormat + // Property enableSoftwareInputPanel is DEPRECATED + property alias enableSoftwareInputPanel: textEdit.activeFocusOnPress + + property alias inputMethodHints: textEdit.inputMethodHints + + property bool errorHighlight: false + + property Item platformSipAttributes + + property bool platformEnableEditBubble: true + + property Item platformStyle: TextAreaStyle {} + property alias style: root.platformStyle + + property alias platformPreedit: inputMethodObserver.preedit + + onPlatformSipAttributesChanged: { + platformSipAttributes.registerInputElement(textEdit) + } + + function copy() { + textEdit.copy() + } + + function paste() { + textEdit.paste() + } + + function cut() { + textEdit.cut() + } + + // ensure propagation of forceActiveFocus + function forceActiveFocus() { + textEdit.forceActiveFocus() + } + + function select(start, end) { + textEdit.select(start, end) + } + + function selectAll() { + textEdit.selectAll() + } + + function selectWord() { + textEdit.selectWord() + } + + function positionAt(x, y) { + var p = mapToItem(textEdit, x, y); + return textEdit.positionAt(p.x, p.y) + } + + function positionToRectangle(pos) { + var rect = textEdit.positionToRectangle(pos) + var point = mapFromItem(textEdit, rect.x, rect.y) + rect.x = point.x; rect.y = point.y + return rect; + } + + function closeSoftwareInputPanel() { + console.log("TextArea's function closeSoftwareInputPanel is deprecated. Use function platformCloseSoftwareInputPanel instead.") + platformCloseSoftwareInputPanel() + } + + function platformCloseSoftwareInputPanel() { + inputContext.simulateSipClose(); + textEdit.closeSoftwareInputPanel(); + } + + function openSoftwareInputPanel() { + console.log("TextArea's function openSoftwareInputPanel is deprecated. Use function platformOpenSoftwareInputPanel instead.") + platformOpenSoftwareInputPanel() + } + + function platformOpenSoftwareInputPanel() { + inputContext.simulateSipOpen(); + textEdit.openSoftwareInputPanel(); + } + + Connections { + target: platformWindow + + onActiveChanged: { + if(platformWindow.active) { + if (!readOnly) { + if (activeFocus) { + platformOpenSoftwareInputPanel(); + repositionTimer.running = true; + } + } + } else { + if (activeFocus) { + platformCloseSoftwareInputPanel(); + Popup.close(textEdit); + } + } + } + + onAnimatingChanged: { + if (!platformWindow.animating && root.activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + } + } + + // private + property int __preeditDisabledMask: Qt.ImhHiddenText| + Qt.ImhNoPredictiveText| + Qt.ImhDigitsOnly| + Qt.ImhFormattedNumbersOnly| + Qt.ImhDialableCharactersOnly| + Qt.ImhEmailCharactersOnly| + Qt.ImhUrlCharactersOnly + + implicitWidth: platformStyle.defaultWidth + implicitHeight: Math.max (UI.FIELD_DEFAULT_HEIGHT, + textEdit.height + (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize)) + + onActiveFocusChanged: { + if (activeFocus && + !readOnly) { + platformOpenSoftwareInputPanel(); + repositionTimer.running = true; + } else if (!activeFocus) { + if (!readOnly) + platformCloseSoftwareInputPanel(); + + Popup.close(textEdit); + } + } + + BorderImage { + id: background + source: errorHighlight? + platformStyle.backgroundError: + readOnly? + platformStyle.backgroundDisabled: + textEdit.activeFocus? + platformStyle.backgroundSelected: + platformStyle.background + + anchors.fill: parent + border.left: root.platformStyle.backgroundCornerMargin; border.top: root.platformStyle.backgroundCornerMargin + border.right: root.platformStyle.backgroundCornerMargin; border.bottom: root.platformStyle.backgroundCornerMargin + } + + Text { + id: prompt + + anchors.fill: parent + anchors.leftMargin: UI.PADDING_XLARGE + anchors.rightMargin: UI.PADDING_XLARGE + anchors.topMargin: (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize) / 2 + anchors.bottomMargin: (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize) / 2 + + font: root.platformStyle.textFont + color: root.platformStyle.promptTextColor + elide: Text.ElideRight + + // opacity for default state + opacity: 0.0 + + states: [ + State { + name: "unfocused" + // memory allocation optimization: cursorPosition is checked to minimize displayText evaluations + when: !root.activeFocus && textEdit.cursorPosition == 0 && !textEdit.text && prompt.text && !textEdit.inputMethodComposing + PropertyChanges { target: prompt; opacity: 1.0; } + }, + State { + name: "focused" + // memory allocation optimization: cursorPosition is checked to minimize displayText evaluations + when: root.activeFocus && textEdit.cursorPosition == 0 && !textEdit.text && prompt.text && !textEdit.inputMethodComposing + PropertyChanges { target: prompt; opacity: 0.6; } + } + ] + + transitions: [ + Transition { + from: "unfocused"; to: "focused"; + reversible: true + SequentialAnimation { + PauseAnimation { duration: 60 } + NumberAnimation { target: prompt; properties: "opacity"; duration: 150 } + } + }, + Transition { + from: "focused"; to: ""; + reversible: true + SequentialAnimation { + PauseAnimation { duration: 60 } + NumberAnimation { target: prompt; properties: "opacity"; duration: 100 } + } + } + ] + } + + MouseArea { + enabled: !textEdit.activeFocus + z: enabled?1:0 + anchors.fill: parent + anchors.margins: UI.TOUCH_EXPANSION_MARGIN + onClicked: { + if (!textEdit.activeFocus) { + textEdit.forceActiveFocus(); + + // activate to preedit and/or move the cursor + var preeditDisabled = root.inputMethodHints & + root.__preeditDisabledMask + var injectionSucceeded = false; + var mappedMousePos = mapToItem(textEdit, mouseX, mouseY); + var newCursorPosition = textEdit.positionAt(mappedMousePos.x, mappedMousePos.y, TextInput.CursorOnCharacter); + if (!preeditDisabled + && !TextAreaHelper.atSpace(newCursorPosition) + && newCursorPosition != textEdit.text.length + && !(newCursorPosition == 0 || TextAreaHelper.atSpace(newCursorPosition - 1))) { + injectionSucceeded = TextAreaHelper.injectWordToPreedit(newCursorPosition); + } + if (!injectionSucceeded) { + textEdit.cursorPosition=newCursorPosition; + } + } + } + } + + TextEdit { + id: textEdit + + // Exposed for the edit bubble + property alias preedit: inputMethodObserver.preedit + property alias preeditCursorPosition: inputMethodObserver.preeditCursorPosition + + x: UI.PADDING_XLARGE + y: (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize) / 2 + width: parent.width - UI.PADDING_XLARGE * 2 + + font: root.platformStyle.textFont + color: root.platformStyle.textColor + selectByMouse: false + selectedTextColor: root.platformStyle.selectedTextColor + selectionColor: root.platformStyle.selectionColor + mouseSelectionMode: TextInput.SelectWords + wrapMode: TextEdit.Wrap + persistentSelection: false + focus: true + + function updateMagnifierPosition(posX, posY) { + var yAdjustment = 0 + var magnifier = MagnifierPopup.popup; + var cursorHeight = textEdit.positionToRectangle(0,0).height; + var mappedPos = mapToItem(magnifier.parent, posX - magnifier.width / 2, + posY - magnifier.height / 2 - cursorHeight - 70); + + magnifier.xCenter = mapToItem(magnifier.sourceItem, posX, 0).x; + magnifier.x = mappedPos.x; + if (-root.mapFromItem(magnifier.__rootElement(), 0,0).y - (posY - cursorHeight) < (magnifier.height / 1.5)) { + yAdjustment = Math.max(0,(magnifier.height / 1.5) + root.mapFromItem(magnifier.__rootElement(), 0,0).y - (posY - cursorHeight)); + } else { + yAdjustment = 0; + } + magnifier.yCenter = mapToItem(magnifier.sourceItem, 0, posY - cursorHeight + 50).y + magnifier.y = mappedPos.y + yAdjustment; + } + + Component.onDestruction: { + Popup.close(textEdit); + } + + onTextChanged: { + if(root.activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + + if (textEdit.preedit == "" && Popup.isOpened(textEdit) && !Popup.isChangingInput()) + Popup.close(textEdit); + } + + Connections { + target: TextAreaHelper.findFlickable(root.parent) + + onContentYChanged: if (root.activeFocus) TextAreaHelper.filteredInputContextUpdate(); + onContentXChanged: if (root.activeFocus) TextAreaHelper.filteredInputContextUpdate(); + onMovementEnded: inputContext.update(); + } + + Connections { + target: inputContext + + onSoftwareInputPanelVisibleChanged: { + if (activeFocus) + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + + onSoftwareInputPanelRectChanged: { + if (activeFocus) + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + } + + onCursorPositionChanged: { + if(!MagnifierPopup.isOpened() && activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation) + } + + if (MagnifierPopup.isOpened() && + Popup.isOpened(textEdit)) { + Popup.close(textEdit); + } else if ((!mouseFilter.attemptToActivate || + textEdit.cursorPosition == textEdit.text.length) && + Popup.isOpened(textEdit)) { + Popup.close(textEdit); + Popup.open(textEdit, + textEdit.positionToRectangle(textEdit.cursorPosition)); + } + } + + onSelectedTextChanged: { + if (Popup.isOpened(textEdit) && !Popup.isChangingInput()) { + Popup.close(textEdit); + } + } + + InputMethodObserver { + id: inputMethodObserver + + onPreeditChanged: { + if (Popup.isOpened(textEdit) && !Popup.isChangingInput()) { + Popup.close(textEdit); + } + } + + } + + Timer { + id: repositionTimer + interval: 350 + onTriggered: TextAreaHelper.repositionFlickable(contentMovingAnimation) + } + + PropertyAnimation { + id: contentMovingAnimation + property: "contentY" + duration: 200 + easing.type: Easing.InOutCubic + } + + MouseFilter { + id: mouseFilter + anchors.fill: parent + anchors.leftMargin: UI.TOUCH_EXPANSION_MARGIN - UI.PADDING_XLARGE + anchors.rightMargin: UI.TOUCH_EXPANSION_MARGIN - UI.PADDING_MEDIUM + anchors.topMargin: UI.TOUCH_EXPANSION_MARGIN - (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize) / 2 + anchors.bottomMargin: UI.TOUCH_EXPANSION_MARGIN - (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize) / 2 + + property bool attemptToActivate: false + property bool pressOnPreedit + + property variant editBubblePosition: Qt.point(0,0) + + onPressed: { + var mousePosition = textEdit.positionAt(mouse.x,mouse.y,TextEdit.CursorOnCharacter); + pressOnPreedit = textEdit.cursorPosition==mousePosition + var preeditDisabled = root.inputMethodHints & + root.__preeditDisabledMask + + attemptToActivate = !pressOnPreedit && !root.readOnly && !preeditDisabled && root.activeFocus && + !(mousePosition == 0 || TextAreaHelper.atSpace(mousePosition - 1) || TextAreaHelper.atSpace(mousePosition)); + mouse.filtered = true; + } + + onHorizontalDrag: { + // possible pre-edit word have to be committed before selection + if (root.activeFocus || root.readOnly) { + inputContext.reset() + parent.selectByMouse = true + attemptToActivate = false + } + } + + onPressAndHold:{ + // possible pre-edit word have to be commited before showing the magnifier + if ((root.text != "" || inputMethodObserver.preedit != "") && root.activeFocus) { + inputContext.reset() + attemptToActivate = false + parent.selectByMouse = false + MagnifierPopup.open(root); + var magnifier = MagnifierPopup.popup; + parent.cursorPosition = parent.positionAt(mouse.x,mouse.y) + parent.updateMagnifierPosition(mouse.x,mouse.y) + root.z = Number.MAX_VALUE + } + } + + onReleased:{ + if (MagnifierPopup.isOpened()) { + MagnifierPopup.close(); + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + + if (attemptToActivate) + inputContext.reset(); + + var newCursorPosition = textEdit.positionAt(mouse.x,mouse.y,TextEdit.CursorOnCharacter); + editBubblePosition = textEdit.positionToRectangle(newCursorPosition); + + if (attemptToActivate) { + var beforeText = textEdit.text; + + textEdit.cursorPosition = newCursorPosition; + var injectionSucceeded = false; + + if (!TextAreaHelper.atSpace(newCursorPosition) + && newCursorPosition != textEdit.text.length) { + injectionSucceeded = TextAreaHelper.injectWordToPreedit(newCursorPosition); + } + if (injectionSucceeded) { + mouse.filtered=true; + if (textEdit.preedit.length >=1 && textEdit.preedit.length <= 4) + editBubblePosition = textEdit.positionToRectangle(textEdit.cursorPosition); + } else { + textEdit.text=beforeText; + textEdit.cursorPosition=newCursorPosition; + } + attemptToActivate = false; + } else if (!parent.selectByMouse) { + if (!pressOnPreedit) inputContext.reset(); + textEdit.cursorPosition = textEdit.positionAt(mouse.x,mouse.y,TextEdit.CursorOnCharacter); + } + parent.selectByMouse = false; + } + onFinished: { + if (root.activeFocus && platformEnableEditBubble) { + if (textEdit.preedit.length == 0) + editBubblePosition = textEdit.positionToRectangle(textEdit.cursorPosition); + Popup.open(textEdit,editBubblePosition); + } + } + onMousePositionChanged: { + if (MagnifierPopup.isOpened() && !parent.selectByMouse) { + var pos = textEdit.positionAt (mouse.x,mouse.y) + var posNextLine = textEdit.positionAt (mouse.x, mouse.y + 1) + var posPrevLine = textEdit.positionAt (mouse.x, mouse.y - 1) + if (!(Math.abs(posNextLine - pos) > 1 || + Math.abs(posPrevLine - pos) > 1)) { + parent.cursorPosition = pos + } + parent.updateMagnifierPosition(mouse.x,mouse.y); + } + } + onDoubleClicked: { + // possible pre-edit word have to be committed before selection + inputContext.reset() + parent.selectByMouse = true + attemptToActivate = false + } + } + } + + + + InverseMouseArea { + anchors.fill: parent + anchors.margins: UI.TOUCH_EXPANSION_MARGIN + enabled: root.activeFocus + + onClickedOutside: { + if (Popup.isOpened(textEdit) && ((mouseX > Popup.geometry().left && mouseX < Popup.geometry().right) && + (mouseY > Popup.geometry().top && mouseY < Popup.geometry().bottom))) { + return; + } + + root.parent.focus = true; + } + } +} diff --git a/mardrone/imports/Qt/labs/components/native/TextAreaHelper.js b/mardrone/imports/Qt/labs/components/native/TextAreaHelper.js new file mode 100644 index 0000000..acd4f75 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/TextAreaHelper.js @@ -0,0 +1,279 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +function findFlickable(component) { + var nextParent = component + var flickableItem = null + while(nextParent) { + if(nextParent.flicking !== undefined && nextParent.flickableDirection !== undefined) + flickableItem = nextParent + + nextParent = nextParent.parent + } + if (flickableItem) return flickableItem + return null +} + +function animateContentY(animation, flickable, newContentY) { + animation.target = flickable + animation.to = newContentY + animation.running = true +} + +function locateFlickableY(flickable) { + switch(screen.currentOrientation) { + case Screen.Landscape: + return flickable.mapToItem(null, flickable.x, flickable.y).y + + case Screen.LandscapeInverted: + return screen.displayHeight - flickable.mapToItem(null, flickable.x, flickable.y).y + + case Screen.Portrait: + return flickable.mapToItem(null, flickable.x, flickable.y).x + + case Screen.PortraitInverted: + return screen.displayWidth - flickable.mapToItem(null, flickable.x, flickable.y).x + } +} + +function getMargin() { + switch(screen.currentOrientation) { + case Screen.Landscape: + case Screen.LandscapeInverted: + return 40 + case Screen.Portrait: + case Screen.PortraitInverted: + return 48 + } + + return 0 +} + +function repositionFlickable(animation) { + inputContext.updateMicroFocus() + var mf = inputContext.microFocus + + if(mf.x == -1 && mf.y == -1) + return + + var object = findFlickable(parent) + + if(object){ + var flickable = object + + // Specifies area from bottom and top when repositioning should be triggered + var margin = getMargin() + var newContentY = flickable.contentY + var flickableY = locateFlickableY(flickable) + + switch(screen.currentOrientation) { + case Screen.Landscape: + if(flickableY + flickable.height - mf.height - margin < mf.y) { + // Find dY just to make textfield visible + var dY = mf.y - flickableY - flickable.height + // Center textfield + dY += flickable.height / 2 + newContentY += dY + } else if(flickableY + margin > mf.y) { + var dY = flickableY - mf.y + dY += flickable.height / 2 + newContentY -= dY + } + + break + + case Screen.LandscapeInverted: + // In inverted screen we need to compensate for the focus height + var invertedMfY = screen.displayHeight - mf.y - mf.height + + if(flickableY + flickable.height - mf.height - margin < invertedMfY) { + var dY = invertedMfY - flickableY - flickable.height + dY += flickable.height / 2 + mf.height / 2 + } else if(flickableY + margin > invertedMfY){ + var dY = flickableY - invertedMfY + dY += flickable.height / 2 - mf.height / 2 + newContentY -= dY + } + + break + + case Screen.Portrait: + if(flickableY + flickable.height - mf.width - margin < mf.x) { + var dY = mf.x - flickableY - flickable.height + dY += flickable.height / 2 + newContentY += dY + } else if(flickableY + margin > mf.x){ + var dY = flickableY - mf.x + dY += flickable.height / 2 + newContentY -= dY + } + + break + + case Screen.PortraitInverted: + var invertedMfX = screen.displayWidth - mf.x - mf.width + + if(flickableY + flickable.height - mf.width - margin < invertedMfX) { + var dY = invertedMfX - flickableY - flickable.height + mf.height + dY += flickable.height / 2 + mf.height + newContentY += dY + } else if(flickableY + margin > invertedMfX){ + var dY = flickableY - invertedMfX + dY += flickable.height / 2 - mf.height + newContentY -= dY + } + + break + } + + // If overpanned, set contentY to max possible value (reached bottom) + if(newContentY > flickable.contentHeight - flickable.height) + newContentY = flickable.contentHeight - flickable.height + + // If overpanned, set contentY to min possible value (reached top) + if(newContentY < 0) + newContentY = 0 + + if(newContentY != flickable.contentY) { + animateContentY(animation, flickable, newContentY) + } + } +} + +function injectWordToPreedit(newCursorPosition) { + var preeditStart = previousWordStart(newCursorPosition); + var preeditEnd = nextWordEnd(newCursorPosition); + + // copy word to preedit text + var preeditText = root.text.substring(preeditStart,preeditEnd); + + // inject preedit + cursorPosition = preeditStart; + + var eventCursorPosition = newCursorPosition-preeditStart; + + return inputContext.setPreeditText(preeditText, eventCursorPosition, 0, preeditText.length); +} + +function previousWordStart(pos) { + var ret = pos; + + if (ret && atWordSeparator(ret - 1)) { + ret--; + while (ret && atWordSeparator(ret - 1)) + ret--; + } else { + while (ret && !atSpace(ret - 1) && !atWordSeparator(ret - 1)) + ret--; + } + + return ret; +} + +function nextWordEnd(pos) { + var ret = pos; + var len = root.text.length; + + if (ret < len && atWordSeparator(ret)) { + ret++; + while (ret < len && atWordSeparator(ret)) + ret++; + } else { + while (ret < len && !atSpace(ret) && !atWordSeparator(ret)) + ret++; + } + + return ret; +} + +function atSpace(pos) { + var c = root.text.charAt(pos); + return c == ' ' + || c == '\t' + || c == '\n' + ; +} + +function atWordSeparator(pos) { + switch (root.text.charAt(pos)) { + case '.': + case ',': + case '?': + case '!': + case '@': + case '#': + case '$': + case ':': + case ';': + case '-': + case '<': + case '>': + case '[': + case ']': + case '(': + case ')': + case '{': + case '}': + case '=': + case '/': + case '+': + case '%': + case '&': + case '^': + case '*': + case '\'': + case '"': + case '`': + case '~': + case '|': + return true; + default: + return false; + } +} + +var MIN_UPDATE_INTERVAL = 30 +var lastUpdateTime +function filteredInputContextUpdate() { + if (Date.now() - lastUpdateTime > MIN_UPDATE_INTERVAL || !lastUpdateTime) { + inputContext.update(); + lastUpdateTime = Date.now(); + } +} diff --git a/mardrone/imports/Qt/labs/components/native/TextAreaStyle.qml b/mardrone/imports/Qt/labs/components/native/TextAreaStyle.qml new file mode 100644 index 0000000..73a7f6f --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/TextAreaStyle.qml @@ -0,0 +1,43 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +TextFieldStyle {} diff --git a/mardrone/imports/Qt/labs/components/native/TextField.qml b/mardrone/imports/Qt/labs/components/native/TextField.qml new file mode 100644 index 0000000..45ff87e --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/TextField.qml @@ -0,0 +1,571 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI +import "EditBubble.js" as Popup +import "TextAreaHelper.js" as TextAreaHelper +import "Magnifier.js" as MagnifierPopup +FocusScope { + id: root + + // Common public API + property alias text: textInput.text + property alias placeholderText: prompt.text + + property alias inputMethodHints: textInput.inputMethodHints + property alias font: textInput.font + property alias cursorPosition: textInput.cursorPosition + property alias maximumLength: textInput.maximumLength + property alias readOnly: textInput.readOnly + property alias acceptableInput: textInput.acceptableInput + property alias inputMask: textInput.inputMask + property alias validator: textInput.validator + + property alias selectedText: textInput.selectedText + property alias selectionStart: textInput.selectionStart + property alias selectionEnd: textInput.selectionEnd + + property alias echoMode: textInput.echoMode // ### TODO: declare own enum { Normal, Password } + + property bool errorHighlight: !acceptableInput + // Property enableSoftwareInputPanel is DEPRECATED + property alias enableSoftwareInputPanel: textInput.activeFocusOnPress + + property Item platformSipAttributes + + property bool platformEnableEditBubble: true + + property Item platformStyle: TextFieldStyle {} + + property alias style: root.platformStyle + + property Component customSoftwareInputPanel + + property Component platformCustomSoftwareInputPanel + + property alias platformPreedit: inputMethodObserver.preedit + + signal accepted + + onPlatformSipAttributesChanged: { + platformSipAttributes.registerInputElement(textInput) + } + + onCustomSoftwareInputPanelChanged: { + console.log("TextField's property customSoftwareInputPanel is deprecated. Use property platformCustomSoftwareInputPanel instead.") + platformCustomSoftwareInputPanel = customSoftwareInputPanel + } + + onPlatformCustomSoftwareInputPanelChanged: { + textInput.activeFocusOnPress = platformCustomSoftwareInputPanel == null + } + + + + function copy() { + textInput.copy() + } + + Connections { + target: platformWindow + + onActiveChanged: { + if(platformWindow.active) { + if (!readOnly) { + if (activeFocus) { + if (platformCustomSoftwareInputPanel != null) { + platformOpenSoftwareInputPanel(); + } else { + inputContext.simulateSipOpen(); + } + repositionTimer.running = true; + } + } + } else { + if (activeFocus) { + platformCloseSoftwareInputPanel(); + Popup.close(textInput); + } + } + } + + onAnimatingChanged: { + if (!platformWindow.animating && root.activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + } + } + + + function paste() { + textInput.paste() + } + + function cut() { + textInput.cut() + } + + function select(start, end) { + textInput.select(start, end) + } + + function selectAll() { + textInput.selectAll() + } + + function selectWord() { + textInput.selectWord() + } + + function positionAt(x) { + var p = mapToItem(textInput, x, 0); + return textInput.positionAt(p.x) + } + + function positionToRectangle(pos) { + var rect = textInput.positionToRectangle(pos) + rect.x = mapFromItem(textInput, rect.x, 0).x + return rect; + } + + // ensure propagation of forceActiveFocus + function forceActiveFocus() { + textInput.forceActiveFocus() + } + + function closeSoftwareInputPanel() { + console.log("TextField's function closeSoftwareInputPanel is deprecated. Use function platformCloseSoftwareInputPanel instead.") + platformCloseSoftwareInputPanel() + } + + function platformCloseSoftwareInputPanel() { + inputContext.simulateSipClose(); + if (inputContext.customSoftwareInputPanelVisible) { + inputContext.customSoftwareInputPanelVisible = false + inputContext.customSoftwareInputPanelComponent = null + inputContext.customSoftwareInputPanelTextField = null + } else { + textInput.closeSoftwareInputPanel(); + } + } + + function openSoftwareInputPanel() { + console.log("TextField's function openSoftwareInputPanel is deprecated. Use function platformOpenSoftwareInputPanel instead.") + platformOpenSoftwareInputPanel() + } + + function platformOpenSoftwareInputPanel() { + inputContext.simulateSipOpen(); + if (platformCustomSoftwareInputPanel != null && !inputContext.customSoftwareInputPanelVisible) { + inputContext.customSoftwareInputPanelTextField = root + inputContext.customSoftwareInputPanelComponent = platformCustomSoftwareInputPanel + inputContext.customSoftwareInputPanelVisible = true + } else { + textInput.openSoftwareInputPanel(); + } + } + + // private + property bool __expanding: true // Layout hint used but ToolBarLayout + property int __preeditDisabledMask: Qt.ImhHiddenText| + Qt.ImhNoPredictiveText| + Qt.ImhDigitsOnly| + Qt.ImhFormattedNumbersOnly| + Qt.ImhDialableCharactersOnly| + Qt.ImhEmailCharactersOnly| + Qt.ImhUrlCharactersOnly + + implicitWidth: platformStyle.defaultWidth + implicitHeight: UI.FIELD_DEFAULT_HEIGHT + + onActiveFocusChanged: { + if (!readOnly) { + if (activeFocus) { + if (platformCustomSoftwareInputPanel != null) { + platformOpenSoftwareInputPanel(); + } else { + inputContext.simulateSipOpen(); + } + + repositionTimer.running = true; + } else { + platformCloseSoftwareInputPanel(); + Popup.close(textInput); + } + } + } + + + BorderImage { + id: background + source: errorHighlight? + platformStyle.backgroundError: + readOnly? + platformStyle.backgroundDisabled: + textInput.activeFocus? + platformStyle.backgroundSelected: + platformStyle.background + + anchors.fill: parent + border.left: root.platformStyle.backgroundCornerMargin; border.top: root.platformStyle.backgroundCornerMargin + border.right: root.platformStyle.backgroundCornerMargin; border.bottom: root.platformStyle.backgroundCornerMargin + } + + Text { + id: prompt + + anchors {verticalCenter: parent.verticalCenter; left: parent.left; right: parent.right} + anchors.leftMargin: root.platformStyle.paddingLeft + anchors.rightMargin: root.platformStyle.paddingRight + anchors.verticalCenterOffset: root.platformStyle.baselineOffset + + font: root.platformStyle.textFont + color: root.platformStyle.promptTextColor + elide: Text.ElideRight + + // opacity for default state + opacity: 0.0 + + states: [ + State { + name: "unfocused" + // memory allocation optimization: cursorPosition is checked to minimize displayText evaluations + when: !root.activeFocus && textInput.cursorPosition == 0 && !textInput.text && prompt.text && !textInput.inputMethodComposing + PropertyChanges { target: prompt; opacity: 1.0; } + }, + State { + name: "focused" + // memory allocation optimization: cursorPosition is checked to minimize displayText evaluations + when: root.activeFocus && textInput.cursorPosition == 0 && !textInput.text && prompt.text && !textInput.inputMethodComposing + PropertyChanges { target: prompt; opacity: 0.6; } + } + ] + + transitions: [ + Transition { + from: "unfocused"; to: "focused"; + reversible: true + SequentialAnimation { + PauseAnimation { duration: 60 } + NumberAnimation { target: prompt; properties: "opacity"; duration: 150 } + } + }, + Transition { + from: "focused"; to: ""; + reversible: true + SequentialAnimation { + PauseAnimation { duration: 60 } + NumberAnimation { target: prompt; properties: "opacity"; duration: 100 } + } + } + ] + } + + MouseArea { + enabled: !textInput.activeFocus + z: enabled?1:0 + anchors.fill: parent + anchors.margins: UI.TOUCH_EXPANSION_MARGIN + onClicked: { + if (!textInput.activeFocus) { + textInput.forceActiveFocus(); + + // activate to preedit and/or move the cursor + var preeditDisabled = root.inputMethodHints & + root.__preeditDisabledMask + var injectionSucceeded = false; + var newCursorPosition = textInput.positionAt(mapToItem(textInput, mouseX, mouseY).x,TextInput.CursorOnCharacter); + if (!preeditDisabled + && !TextAreaHelper.atSpace(newCursorPosition) + && newCursorPosition != textInput.text.length + && !(newCursorPosition == 0 || TextAreaHelper.atSpace(newCursorPosition - 1))) { + injectionSucceeded = TextAreaHelper.injectWordToPreedit(newCursorPosition); + } + if (!injectionSucceeded) { + textInput.cursorPosition=newCursorPosition; + } + } + } + } + + TextInput { + id: textInput + + property alias preedit: inputMethodObserver.preedit + property alias preeditCursorPosition: inputMethodObserver.preeditCursorPosition + + anchors {verticalCenter: parent.verticalCenter; left: parent.left; right: parent.right} + anchors.leftMargin: root.platformStyle.paddingLeft + anchors.rightMargin: root.platformStyle.paddingRight + anchors.verticalCenterOffset: root.platformStyle.baselineOffset + + passwordCharacter: "\u2022" + font: root.platformStyle.textFont + color: root.platformStyle.textColor + selectByMouse: false + selectedTextColor: root.platformStyle.selectedTextColor + selectionColor: root.platformStyle.selectionColor + mouseSelectionMode: TextInput.SelectWords + focus: true + + onAccepted: { root.accepted() } + + Component.onDestruction: { + Popup.close(textInput); + } + + Connections { + target: TextAreaHelper.findFlickable(root.parent) + + onContentYChanged: if (root.activeFocus) TextAreaHelper.filteredInputContextUpdate(); + onContentXChanged: if (root.activeFocus) TextAreaHelper.filteredInputContextUpdate(); + onMovementEnded: inputContext.update(); + } + + Connections { + target: inputContext + + onSoftwareInputPanelRectChanged: { + if (activeFocus) { + repositionTimer.running = true + } + } + } + + onTextChanged: { + if(root.activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation) + } + + if (Popup.isOpened(textInput) && !Popup.isChangingInput()) + Popup.close(textInput); + } + + onCursorPositionChanged: { + if (MagnifierPopup.isOpened() && + Popup.isOpened()) { + Popup.close(textInput); + } else if ((!mouseFilter.attemptToActivate || + textInput.cursorPosition == textInput.text.length) && + Popup.isOpened(textInput) && + !Popup.isChangingInput()) { + Popup.close(textInput); + Popup.open(textInput, + textInput.positionToRectangle(textInput.cursorPosition)); + } + } + + onSelectedTextChanged: { + if (Popup.isOpened(textInput) && !Popup.isChangingInput()) { + Popup.close(textInput); + } + } + + InputMethodObserver { + id: inputMethodObserver + + onPreeditChanged: { + if(root.activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation) + } + + if (Popup.isOpened(textInput) && !Popup.isChangingInput()) { + Popup.close(textInput); + } + } + } + + Timer { + id: repositionTimer + interval: 350 + onTriggered: { + TextAreaHelper.repositionFlickable(contentMovingAnimation) + } + } + + PropertyAnimation { + id: contentMovingAnimation + property: "contentY" + duration: 200 + easing.type: Easing.InOutCubic + } + + MouseFilter { + id: mouseFilter + anchors.fill: parent + anchors.leftMargin: UI.TOUCH_EXPANSION_MARGIN - root.platformStyle.paddingLeft + anchors.rightMargin: UI.TOUCH_EXPANSION_MARGIN - root.platformStyle.paddingRight + anchors.topMargin: UI.TOUCH_EXPANSION_MARGIN - ((root.height - parent.height) / 2) + anchors.bottomMargin: UI.TOUCH_EXPANSION_MARGIN - ((root.height - parent.height) / 2) + + property bool attemptToActivate: false + property bool pressOnPreedit: false + property int oldCursorPosition: 0 + + property variant editBubblePosition: Qt.point(0,0) + + onPressed: { + var mousePosition = textInput.positionAt(mouse.x,TextInput.CursorOnCharacter); + pressOnPreedit = textInput.cursorPosition==mousePosition + oldCursorPosition = textInput.cursorPosition; + var preeditDisabled = root.inputMethodHints & + root.__preeditDisabledMask + + attemptToActivate = !pressOnPreedit && !root.readOnly && !preeditDisabled && root.activeFocus && + !(mousePosition == 0 || TextAreaHelper.atSpace(mousePosition - 1) || TextAreaHelper.atSpace(mousePosition)); + mouse.filtered = true; + } + + onDelayedPressSent: { + if (textInput.preedit) { + textInput.cursorPosition = oldCursorPosition; + } + } + + onHorizontalDrag: { + // possible pre-edit word have to be commited before selection + if (root.activeFocus || root.readOnly) { + inputContext.reset() + parent.selectByMouse = true + attemptToActivate = false + } + } + + onPressAndHold:{ + // possible pre-edit word have to be commited before showing the magnifier + if ((root.text != "" || inputMethodObserver.preedit != "") && root.activeFocus) { + inputContext.reset() + attemptToActivate = false + MagnifierPopup.open(root); + var magnifier = MagnifierPopup.popup; + var cursorPos = textInput.positionToRectangle(0); + var mappedPosMf = mapFromItem(parent,mouse.x,cursorPos.y+cursorPos.height); + magnifier.xCenter = mapToItem(magnifier.sourceItem,mappedPosMf.x,0).x; + var mappedPos = mapToItem(magnifier.parent, mappedPosMf.x - magnifier.width / 2, + textInput.y - 120 - UI.MARGIN_XLARGE - (height / 2)); + var yAdjustment = -mapFromItem(magnifier.__rootElement(), 0, 0).y < magnifier.height / 2.5 ? magnifier.height / 2.5 + mapFromItem(magnifier.__rootElement(), 0,0).y : 0 + magnifier.x = mappedPos.x; + magnifier.y = mappedPos.y + yAdjustment; + magnifier.yCenter = mapToItem(magnifier.sourceItem,0,mappedPosMf.y).y; + parent.cursorPosition = textInput.positionAt(mouse.x) + } + } + + onReleased: { + if (MagnifierPopup.isOpened()) { + MagnifierPopup.close(); + } + + if (attemptToActivate) + inputContext.reset(); + + var newCursorPosition = textInput.positionAt(mouse.x,TextInput.CursorOnCharacter); + editBubblePosition = textInput.positionToRectangle(newCursorPosition); + + if (attemptToActivate) { + var beforeText = textInput.text; + + textInput.cursorPosition = newCursorPosition; + var injectionSucceeded = false; + + if (!TextAreaHelper.atSpace(newCursorPosition) + && newCursorPosition != textInput.text.length) { + injectionSucceeded = TextAreaHelper.injectWordToPreedit(newCursorPosition); + } + if (injectionSucceeded) { + mouse.filtered=true; + if (textInput.preedit.length >=1 && textInput.preedit.length <= 4) + editBubblePosition = textInput.positionToRectangle(textInput.cursorPosition+1) + } else { + textInput.text=beforeText; + textInput.cursorPosition=newCursorPosition; + } + } else if (!parent.selectByMouse) { + if (!pressOnPreedit) inputContext.reset(); + textInput.cursorPosition = textInput.positionAt(mouse.x,TextInput.CursorOnCharacter); + } + parent.selectByMouse = false; + } + + onFinished: { + if (root.activeFocus && platformEnableEditBubble) { + if (textInput.preedit.length == 0) + editBubblePosition = textInput.positionToRectangle(textInput.cursorPosition); + Popup.open(textInput,editBubblePosition); + + } + attemptToActivate = false + } + + onMousePositionChanged: { + if (MagnifierPopup.isOpened() && !parent.selectByMouse) { + textInput.cursorPosition = textInput.positionAt(mouse.x) + var magnifier = MagnifierPopup.popup; + var mappedPosMf = mapFromItem(parent,mouse.x,0); + var mappedPos = mapToItem(magnifier.parent,mappedPosMf.x - magnifier.width / 2.0, 0); + magnifier.xCenter = mapToItem(magnifier.sourceItem,mappedPosMf.x,0).x; + magnifier.x = mappedPos.x; + } + } + + onDoubleClicked: { + // possible pre-edit word have to be commited before selection + inputContext.reset() + parent.selectByMouse = true + attemptToActivate = false + } + } + } + + InverseMouseArea { + anchors.fill: parent + anchors.margins: UI.TOUCH_EXPANSION_MARGIN + enabled: textInput.activeFocus + onClickedOutside: { + if (Popup.isOpened(textInput) && ((mouseX > Popup.geometry().left && mouseX < Popup.geometry().right) && + (mouseY > Popup.geometry().top && mouseY < Popup.geometry().bottom))) { + return; + } + root.parent.focus = true; + } + } +} diff --git a/mardrone/imports/Qt/labs/components/native/TextFieldStyle.qml b/mardrone/imports/Qt/labs/components/native/TextFieldStyle.qml new file mode 100644 index 0000000..646ef44 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/TextFieldStyle.qml @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Item { + property alias textFont: textProperties.font + property color textColor: UI.COLOR_FOREGROUND + property color selectedTextColor: UI.COLOR_INVERTED_FOREGROUND + property color selectionColor: theme.selectionColor + + property color promptTextColor: UI.COLOR_SECONDARY_FOREGROUND + + property url background: "image://theme/meegotouch-textedit-background" + property url backgroundSelected: "image://theme/" + theme.colorString + "meegotouch-textedit-background-selected" + property url backgroundDisabled: "image://theme/meegotouch-textedit-background-disabled" + property url backgroundError: "image://theme/meegotouch-textedit-background-error" + property real backgroundCornerMargin: UI.CORNER_MARGINS + + property real paddingLeft: UI.PADDING_XLARGE + property real paddingRight: UI.PADDING_XLARGE + property real paddingTop // DEPRECATED + property real paddingBottom // DEPRECATED + + property real baselineOffset: 2 + property real defaultWidth: 250 + + property real touchExpansionMargin: UI.TOUCH_EXPANSION_MARGIN + + Text { + id: textProperties + font.family: UI.FONT_FAMILY_LIGHT + font.pixelSize: UI.FONT_DEFAULT + visible: false + } +} diff --git a/mardrone/imports/Qt/labs/components/native/ToolBar.qml b/mardrone/imports/Qt/labs/components/native/ToolBar.qml new file mode 100644 index 0000000..4bce4c1 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ToolBar.qml @@ -0,0 +1,305 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// The ToolBar is a container for toolbar items such as ToolItem or ToolButton. + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + + width: parent ? parent.width : 0 + height: bgImage.height + + // Dummy property to allow qt component deprecated API clients to fail more gracefully + property bool __hidden: false + + property int privateVisibility: ToolBarVisibility.Visible + + // Styling for the ToolBar + property Style platformStyle: ToolBarStyle {} + + // Deprecated, TODO remove + property alias style: root.platformStyle + + // Shadows: + Image { + anchors.top : bgImage.top + anchors.right: bgImage.left + anchors.bottom : bgImage.bottom + source: "image://theme/meegotouch-menu-shadow-left" + } + Image { + anchors.bottom : bgImage.top + anchors.left: bgImage.left + anchors.right : bgImage.right + source: "image://theme/meegotouch-menu-shadow-top" + } + Image { + anchors.top : bgImage.top + anchors.left: bgImage.right + anchors.bottom : bgImage.bottom + source: "image://theme/meegotouch-menu-shadow-right" + } + Image { + anchors.top : bgImage.bottom + anchors.left: bgImage.left + anchors.right : bgImage.right + source: "image://theme/meegotouch-menu-shadow-bottom" + } + // Toolbar background. + BorderImage { + id: bgImage + width: root.width + border.left: 10 + border.right: 10 + border.top: 10 + border.bottom: 10 + source: platformStyle.background + + // Mousearea that eats clicks so they don't go through the toolbar to content + // that may exist below it in z-order, such as unclipped listview items. + MouseArea { anchors.fill: parent } + } + + states: [ + // Inactive state. + State { + name: "hidden" + when: privateVisibility == ToolBarVisibility.Hidden || tools == null + PropertyChanges { target: root; height: 0; } + }, + State { + name: "HiddenImmediately" + when: privateVisibility == ToolBarVisibility.HiddenImmediately + PropertyChanges { target: root; height: 0; } + }, + State { + name: "" + when: !(privateVisibility == ToolBarVisibility.Visible || tools == null) + PropertyChanges { target: root; height: bgImage.height } + } + + ] + + transitions: [ + // Transition between active and inactive states. + Transition { + from: ""; to: "hidden"; reversible: true + ParallelAnimation { + PropertyAnimation { properties: "height"; easing.type: Easing.InOutExpo; duration: platformStyle.visibilityTransitionDuration } + } + } + ] + + // The current set of tools. + property Item tools: null + + onToolsChanged: { + __performTransition(__transition || transition); + __transition = undefined; + } + + // The transition type. One of the following: + // set an instantaneous change (default) + // push follows page stack push animation + // pop follows page stack pop animation + // replace follows page stack replace animation + property string transition: "set" + + // The currently displayed container; null if none. + property Item __currentContainer: null + + // Alternating containers used for transitions. + property Item __containerA: null + property Item __containerB: null + + // The transition to perform next. + property variant __transition + + // Sets the tools with a transition. + function setTools(tools, transition) { + __transition = transition; + root.tools = tools; + } + + // Performs a transition between tools in the toolbar. + function __performTransition(transition) { + // lazily create containers if they have not been created + if (!__currentContainer) { + // Parent is bgImage because it doesn't change height when toolbar gets hidden + __containerA = containerComponent.createObject(bgImage); + __containerB = containerComponent.createObject(bgImage); + __currentContainer = __containerB; + } + + // no transition if the tools are unchanged + if (__currentContainer.tools == tools) { + return; + } + + // select container states based on the transition animation + var transitions = { + "set": { "new": "", "old": "hidden" }, + "push": { "new": "right", "old": "left" }, + "pop": { "new": "left", "old": "right" }, + "replace": { "new": "front", "old": "back" } + }; + var animation = transitions[transition]; + + // initialize the free container + var container = __currentContainer == __containerA ? __containerB : __containerA; + container.state = "hidden"; + if (tools) { + container.tools = tools; + container.owner = tools.parent; + tools.parent = container; + tools.visible = true; + } + + // perform transition + __currentContainer.state = animation["old"]; + if (tools) { + container.state = animation["new"]; + container.state = ""; + } + + __currentContainer = container; + } + + // Component for toolbar containers. + Component { + id: containerComponent + + Item { + id: container + + width: parent ? parent.width : 0 + height: parent ? parent.height : 0 + + // The states correspond to the different possible positions of the container. + state: "hidden" + + // The tools held by this container. + property Item tools: null + // The owner of the tools. + property Item owner: null + + states: [ + // Start state for pop entry, end state for push exit. + State { + name: "left" + PropertyChanges { target: container; x: -30; opacity: 0.0 } + }, + // Start state for push entry, end state for pop exit. + State { + name: "right" + PropertyChanges { target: container; x: 30; opacity: 0.0 } + }, + // Start state for replace entry. + State { + name: "front" + PropertyChanges { target: container; scale: 1.25; opacity: 0.0 } + }, + // End state for replace exit. + State { + name: "back" + PropertyChanges { target: container; scale: 0.85; opacity: 0.0 } + }, + // Inactive state. + State { + name: "hidden" + PropertyChanges { target: container; visible: false } + StateChangeScript { + script: { + if (container.tools) { + // re-parent back to original owner + tools.visible = false; + tools.parent = owner; + + // reset container + container.tools = container.owner = null; + } + } + } + } + ] + + transitions: [ + // Pop entry and push exit transition. + Transition { + from: ""; to: "left"; reversible: true + SequentialAnimation { + PropertyAnimation { properties: "x,opacity"; easing.type: Easing.InCubic; duration: platformStyle.contentTransitionDuration / 2 } + PauseAnimation { duration: platformStyle.contentTransitionDuration / 2 } + ScriptAction { script: if (state == "left") state = "hidden"; } + } + }, + // Push entry and pop exit transition. + Transition { + from: ""; to: "right"; reversible: true + SequentialAnimation { + PropertyAnimation { properties: "x,opacity"; easing.type: Easing.InCubic; duration: platformStyle.contentTransitionDuration / 2 } + PauseAnimation { duration: platformStyle.contentTransitionDuration / 2 } + ScriptAction { script: if (state == "right") state = "hidden"; } + } + }, + Transition { + // Replace entry transition. + from: "front"; to: ""; + SequentialAnimation { + PropertyAnimation { properties: "scale,opacity"; easing.type: Easing.InOutExpo; duration: platformStyle.contentTransitionDuration } + } + }, + Transition { + // Replace exit transition. + from: ""; to: "back"; + SequentialAnimation { + PropertyAnimation { properties: "scale,opacity"; easing.type: Easing.InOutExpo; duration: platformStyle.contentTransitionDuration } + ScriptAction { script: if (state == "back") state = "hidden"; } + } + } + ] + + } + } + +} diff --git a/mardrone/imports/Qt/labs/components/native/ToolBarLayout.js b/mardrone/imports/Qt/labs/components/native/ToolBarLayout.js new file mode 100644 index 0000000..691b63a --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ToolBarLayout.js @@ -0,0 +1,164 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/// Helper code that is needed by ToolBarLayout. + +var connectedItems = []; + +// Find item in an array +function contains(container, obj) { + for (var i = 0 ; i < container.length; i++) { + if (container[i] == obj) + return true; + } + return false +} + +// Remove item from an array +function remove(container, obj) +{ + for (var i = 0 ; i < container.length ; i++ ) + if (container[i] == obj) + container.splice(i,1); +} + +// Helper function to give us the sender id on slots +// This is needed to remove connectens on a reparent +Function.prototype.bind = function() { + var func = this; + var thisObject = arguments[0]; + var args = Array.prototype.slice.call(arguments, 1); + return function() { + return func.apply(thisObject, args); + } +} + +// Called whenever a child is added or removed in the toolbar +function childrenChanged() { + for (var i = 0; i < children.length; i++) { + if (!contains(connectedItems, children[i])) { + connectedItems.push(children[i]); + children[i].visibleChanged.connect(layout); + children[i].parentChanged.connect(cleanup.bind(children[i])); + } + } +} + +// Disconnects signals connected by this layout +function cleanup() { + remove(connectedItems, this); + this.visibleChanged.disconnect(layout); + this.parentChanged.disconnect(arguments.callee); +} + +// Main layout function +function layout() { + + if (parent === null || width === 0) + return; + + var i; + var items = new Array(); // Keep track of visible items + var expandingItems = new Array(); // Keep track of expandingItems for tabs + var widthOthers = 0; + + for (i = 0; i < children.length; i++) { + if (children[i].visible) { + items.push(children[i]) + + // Center all items vertically + items[0].y = (function() {return height / 2 - items[0].height / 2}) + // Find out which items are expanding + if (children[i].__expanding) { + expandingItems.push(children[i]) + } else { + // Calculate the space that fixed size items take + widthOthers += children[i].width; + } + } + } + + if (items.length === 0) + return; + + // Extra padding is applied if the leftMost or rightmost widget is expanding (note** removed on new design) + var leftPadding = 0 + var rightPadding = 0 + + // In LandScape mode we add extra margin to keep contents centered + // for two basic cases + if (items.length == 2 && screen.currentOrientation == Screen.Landscape) { + // expanding item on left + if (expandingItems.length > 0 && items[0].__expanding && !items[items.length-1].__expanding) + leftPadding += items[items.length-1].width + + // expanding item is on right + if (expandingItems.length > 0 && items[items.length-1].__expanding && !items[0].__expanding) + rightPadding += items[0].width + } + + var width = toolbarLayout.width - leftPadding - rightPadding + + // Calc expandingItems and tabrows + for (i = 0; i < expandingItems.length; i++) + expandingItems[i].width = (width - widthOthers) / expandingItems.length + + var lastItem = items[items.length-1] ? items[items.length-1] : undefined; + + // Space to be divided between first and last items + var toolBox = width - (items[0] ? items[0].width : 0) - + (lastItem ? lastItem.width : 0); + + // |X X X| etc. + var spacingBetween = toolBox; + for (i = 1; i < items.length - 1; i++) + spacingBetween -= items[i].width; + items[0].x = leftPadding + + // Calculate spacing between items + spacingBetween /= items.length - 1; + + // Starting after first item + var dX = items[0].width + spacingBetween; + for (i = 1; i < items.length; i++) { + items[i].x = dX + leftPadding; + dX += spacingBetween + items[i].width; + } +} diff --git a/mardrone/imports/Qt/labs/components/native/ToolBarLayout.qml b/mardrone/imports/Qt/labs/components/native/ToolBarLayout.qml new file mode 100644 index 0000000..e709de6 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ToolBarLayout.qml @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// ToolBarLayout is a container for items on a toolbar that automatically +// implements an appropriate layout for its children. + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI +import "ToolBarLayout.js" as Layout + +Item { + id: toolbarLayout + + width: visible && parent ? parent.width : 0 + height: visible && parent ? parent.height : 0 + + onWidthChanged: Layout.layout() + onHeightChanged: Layout.layout() + onChildrenChanged: Layout.childrenChanged() + Component.onCompleted: Layout.layout() +} diff --git a/mardrone/imports/Qt/labs/components/native/ToolBarStyle.qml b/mardrone/imports/Qt/labs/components/native/ToolBarStyle.qml new file mode 100644 index 0000000..f2b084d --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ToolBarStyle.qml @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +Style { + // Background + property url background: "image://theme/meegotouch-toolbar-" + + ((screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted) ? "portrait" : "landscape") + + __invertedString + "-background" + + property int visibilityTransitionDuration: 250 + property int contentTransitionDuration: 400 +} diff --git a/mardrone/imports/Qt/labs/components/native/ToolButton.qml b/mardrone/imports/Qt/labs/components/native/ToolButton.qml new file mode 100644 index 0000000..4ff234c --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ToolButton.qml @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// ToolButton is a push-button style button intended for use with toolbars. + +import QtQuick 1.1 +import "." 1.0 + +Button { + id: toolButton + + //Removes button background if set to true + property bool flat: false + + property QtObject platformStyle: ToolButtonStyle { backgroundVisible: !toolButton.flat} + + //Deprecated item, REMOVE THIS + property QtObject style: toolButton.platformStyle + + implicitWidth: platformStyle.buttonWidth + implicitHeight: platformStyle.buttonHeight +} diff --git a/mardrone/imports/Qt/labs/components/native/ToolButtonRow.qml b/mardrone/imports/Qt/labs/components/native/ToolButtonRow.qml new file mode 100644 index 0000000..01a845b --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ToolButtonRow.qml @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Item { + default property alias children: row.children + property bool __expanding: true // Layout hint used but ToolBarLayout + Row{ + id: row + width: Math.min(parent.width, childrenRect.width) + spacing: UI.PADDING_LARGE + anchors.centerIn: parent + } +} diff --git a/mardrone/imports/Qt/labs/components/native/ToolButtonStyle.qml b/mardrone/imports/Qt/labs/components/native/ToolButtonStyle.qml new file mode 100644 index 0000000..a6439c9 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ToolButtonStyle.qml @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +ButtonStyle { + buttonWidth: 186 + buttonHeight: 42 + + // Font + fontPixelSize: 22 + fontCapitalization: Font.MixedCase + fontWeight: Font.Bold + horizontalAlignment: Text.AlignHCenter + + // Background + backgroundMarginRight: 15 + backgroundMarginLeft: 15 + backgroundMarginTop: 15 + backgroundMarginBottom: 15 + property bool backgroundVisible: true + + background: backgroundVisible ? "image://theme/meegotouch-button-navigationbar-button" + __invertedString + "-background" : "" + pressedBackground: backgroundVisible ? "image://theme/meegotouch-button-navigationbar-button" + __invertedString + "-background-pressed" : "" + disabledBackground: backgroundVisible ? "image://theme/meegotouch-button-navigationbar-button" + __invertedString + "-background-disabled" : "" +} diff --git a/mardrone/imports/Qt/labs/components/native/ToolIcon.qml b/mardrone/imports/Qt/labs/components/native/ToolIcon.qml new file mode 100644 index 0000000..9b7dda1 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ToolIcon.qml @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// ToolItem is a component that is used to add actions to toolbars. + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + property url iconSource + property string platformIconId + + // TODO: deprecated + property alias iconId: root.platformIconId + width: 80; height: 64 + signal clicked + + // Styling for the ToolItem + property Style platformStyle: ToolItemStyle{} + + // TODO: deprecated + property Style style: root.platformStyle + + Image { + source: mouseArea.pressed ? platformStyle.pressedBackground : "" + anchors.centerIn: parent + + Image { + function handleIconSource(iconId) { + if (iconSource != "") + return iconSource; + + var prefix = "icon-m-" + // check if id starts with prefix and use it as is + // otherwise append prefix and use the inverted version if required + if (iconId.indexOf(prefix) !== 0) + iconId = prefix.concat(iconId).concat(theme.inverted ? "-white" : ""); + return "image://theme/" + iconId; + } + + source: handleIconSource(iconId) + anchors.centerIn: parent + } + } + + MouseArea { + id: mouseArea + anchors.fill: parent + } + + Component.onCompleted: mouseArea.clicked.connect(clicked) +} diff --git a/mardrone/imports/Qt/labs/components/native/ToolItem.qml b/mardrone/imports/Qt/labs/components/native/ToolItem.qml new file mode 100644 index 0000000..08414e3 --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ToolItem.qml @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// ToolItem is a component that is used to add actions to toolbars. + +import QtQuick 1.1 +import "." 1.0 + +ToolIcon { + Component.onCompleted: { + print("Warning: ToolItem is deprecated, use ToolIcon instead") + } +} diff --git a/mardrone/imports/Qt/labs/components/native/ToolItemStyle.qml b/mardrone/imports/Qt/labs/components/native/ToolItemStyle.qml new file mode 100644 index 0000000..6d7a13c --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/ToolItemStyle.qml @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + // Background + property url pressedBackground: "image://theme/meegotouch-button-navigationbar-button"+__invertedString+"-background-pressed" +} diff --git a/mardrone/imports/Qt/labs/components/native/UIConstants.js b/mardrone/imports/Qt/labs/components/native/UIConstants.js new file mode 100644 index 0000000..e0027af --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/UIConstants.js @@ -0,0 +1,120 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +.pragma library + +var FONT_FAMILY = "Nokia Pure Text"; +var FONT_FAMILY_LIGHT = "Nokia Pure Text Light"; +var FONT_DEFAULT_SIZE = 24; // DEPRECATED + +var FONT_XLARGE = 32; +var FONT_LARGE = 28; +var FONT_SLARGE = 26; +var FONT_DEFAULT = 24; +var FONT_LSMALL = 22; +var FONT_SMALL = 20; +var FONT_XSMALL = 18; +var FONT_XXSMALL = 16; + +var COLOR_FOREGROUND = "#191919"; // Text color +var COLOR_SECONDARY_FOREGROUND = "#a6a8ab"; // Secondary text +var COLOR_BACKGROUND = "#E0E1E2"; // Background +var COLOR_SELECT = "#4591ff"; //Selected item background + +var COLOR_INVERTED_FOREGROUND = "#ffffff"; // Text color +var COLOR_INVERTED_SECONDARY_FOREGROUND = "#8c8c8c"; // Secondary text +var COLOR_INVERTED_BACKGROUND = "#000000"; // Background + +var COLOR_DISABLED_FOREGROUND = "#b2b2b4"; + +var COLOR_BUTTON_FOREGROUND = "#000000" //text color +var COLOR_BUTTON_INVERTED_FOREGROUND = "#ffffff" //inverted text color +var COLOR_BUTTON_SECONDARY_FOREGROUND = "#8c8c8c" //secondary text +var COLOR_BUTTON_DISABLED_FOREGROUND = "#B2B2B4" //disabled text +var COLOR_BUTTON_BACKGROUND = "#000000" //background + +var SIZE_ICON_DEFAULT = 32; +var SIZE_ICON_LARGE = 48; + +var CORNER_MARGINS = 22; + +var MARGIN_DEFAULT = 0; +var MARGIN_XLARGE = 16; + +// Distance in pixels from the widget bounding box inside which a release +// event would still be accepted and trigger the widget +var RELEASE_MISS_DELTA = 30; + +var OPACITY_ENABLED = 1.0; +var OPACITY_DISABLED = 0.5; +var SIZE_BUTTON = 64; + +var PADDING_XSMALL = 2; +var PADDING_SMALL = 4; +var PADDING_MEDIUM = 6; +var PADDING_LARGE = 8; +var PADDING_DOUBLE = 12; +var PADDING_XLARGE = 16; +var PADDING_XXLARGE = 24; + +var SCROLLDECORATOR_SHORT_MARGIN = 8; +var SCROLLDECORATOR_LONG_MARGIN = 4; + +var TOUCH_EXPANSION_MARGIN = -12; + +var BUTTON_WIDTH = 322; +var BUTTON_HEIGHT = 51; +var BUTTON_LABEL_MARGIN = 10; + +var FIELD_DEFAULT_HEIGHT = 52; + +//Common UI layouts +var DEFAULT_MARGIN = 16; +var BUTTON_SPACING = 6; +var HEADER_DEFAULT_HEIGHT_PORTRAIT = 72; +var HEADER_DEFAULT_HEIGHT_LANDSCAPE = 46; +var HEADER_DEFAULT_TOP_SPACING_PORTRAIT = 20; +var HEADER_DEFAULT_BOTTOM_SPACING_PORTRAIT = 20; +var HEADER_DEFAULT_TOP_SPACING_LANDSCAPE = 16; +var HEADER_DEFAULT_BOTTOM_SPACING_LANDSCAPE = 14; +var LIST_ITEM_HEIGHT_SMALL = 64; +var LIST_ITEM_HEIGHT_DEFAULT = 80; + + diff --git a/mardrone/imports/Qt/labs/components/native/Utils.js b/mardrone/imports/Qt/labs/components/native/Utils.js new file mode 100644 index 0000000..1d5f49a --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/Utils.js @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +.pragma library + +/* + Get the first flickable in hierarchy. +*/ +function findFlickable(item) +{ + var next = item; + + while (next) { + if (next.flicking !== undefined && next.flickableDirection !== undefined) + return next; + + next = next.parent; + } + + return null; +} + +/* + Get the root item given an element and root item's name. + If root item name is not given, default is 'windowContent'. +*/ +function findRootItem(item, objectName) +{ + var next = item; + + var rootItemName = "windowContent"; + if (typeof(objectName) != 'undefined') { + rootItemName = objectName; + } + + if (next) { + while (next.parent) { + next = next.parent; + + if (rootItemName == next.objectName) { + break; + } + } + } + + return next; +} + +/* + Get the root item for Notification banner + It will return 'appWindowContent' or 'windowContent' element if found. +*/ +function findRootItemNotificationBanner(item) +{ + var next = item; + + if (next) { + while (next.parent) { + if (next.objectName == "appWindowContent") + break; + + if (next.objectName == "windowContent") + break; + + next = next.parent; + } + } + + return next; +} diff --git a/mardrone/imports/Qt/labs/components/native/Window.qml b/mardrone/imports/Qt/labs/components/native/Window.qml new file mode 100644 index 0000000..e0b96de --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/Window.qml @@ -0,0 +1,273 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + width: screen.displayWidth + height: screen.displayHeight + + property alias color: background.color + + default property alias content: windowContent.data + + // Read only property true if window is in portrait + property alias inPortrait: window.portrait + + signal orientationChangeAboutToStart + signal orientationChangeStarted + signal orientationChangeFinished + + Rectangle { + id: background + anchors.fill: parent + color: "black" + } + + Item { + id: window + property bool portrait + + width: window.portrait ? screen.displayHeight : screen.displayWidth + height: window.portrait ? screen.displayWidth : screen.displayHeight + + anchors.centerIn : parent + transform: Rotation { id: windowRotation; + origin.x: 0; + origin.y: 0; + angle: 0 + } + + Item { + id: windowContent + width: parent.width + height: parent.height - heightDelta + + // Used for resizing windowContent when virtual keyboard appears + property int heightDelta: 0 + + objectName: "windowContent" + clip: true + + Connections { + id: inputContextConnection + target: inputContext + onSoftwareInputPanelVisibleChanged: inputContextConnection.updateWindowContentHeightDelta(); + + onSoftwareInputPanelRectChanged: inputContextConnection.updateWindowContentHeightDelta(); + + function updateWindowContentHeightDelta() { + if(inputContext.customSoftwareInputPanelVisible) + return + + if (root.inPortrait) + windowContent.heightDelta = inputContext.softwareInputPanelRect.width + else + windowContent.heightDelta = inputContext.softwareInputPanelRect.height + } + } + } + + SoftwareInputPanel { + id: softwareInputPanel + active: inputContext.customSoftwareInputPanelVisible + anchors.bottom: parent.bottom + + onHeightChanged: { + windowContent.heightDelta = height + } + + Loader { + id: softwareInputPanelLoader + width: parent.width + sourceComponent: inputContext.customSoftwareInputPanelComponent + } + } + + Snapshot { + id: snapshot + anchors.top: parent.top + anchors.left: parent.left + width: screen.displayWidth + height: screen.displayHeight + snapshotWidth: screen.displayWidth + snapshotHeight: screen.displayHeight + opacity: 0 + transform: Rotation { id: snapshotRotation; + origin.x: screen.displayHeight / 2; origin.y: screen.displayHeight / 2; + angle: 0 } + } + + state: screen.orientationString + + states: [ + State { + name: "Landscape" + PropertyChanges { target: window; rotation: 0; portrait: false; } + PropertyChanges { target: windowRotation; + origin.x: root.height / 2; + origin.y: root.height / 2; } + PropertyChanges { target: snapshot; anchors.leftMargin: 0; anchors.topMargin: 0 } + }, + State { + name: "Portrait" + PropertyChanges { target: window; rotation: 270; portrait: true; } + PropertyChanges { target: windowRotation; + origin.x: root.height - root.width / 2; + origin.y: root.width / 2; } + PropertyChanges { target: snapshot; anchors.leftMargin: 0; anchors.topMargin: 0 } + }, + State { + name: "LandscapeInverted" + PropertyChanges { target: window; rotation: 180; portrait: false; } + PropertyChanges { target: windowRotation; + origin.x: root.height / 2; + origin.y: root.height / 2; } + PropertyChanges { target: snapshot; anchors.leftMargin: 374; anchors.topMargin: 0 } + }, + State { + name: "PortraitInverted" + PropertyChanges { target: window; rotation: 90; portrait: true; } + PropertyChanges { target: windowRotation; + origin.x: root.height - root.width / 2; + origin.y: root.width / 2; } + PropertyChanges { target: snapshot; anchors.leftMargin: 0; anchors.topMargin: 374 } + } + ] + + transitions: [ + Transition { + // use this transition when sip is visible + from: (inputContext.softwareInputPanelVisible ? "*" : "disabled") + to: (inputContext.softwareInputPanelVisible ? "*" : "disabled") + PropertyAction { target: window; properties: "rotation"; } + ScriptAction { + script: { + root.orientationChangeAboutToStart(); + platformWindow.startSipOrientationChange(window.rotation); + // note : we should really connect these signals to MInputMethodState + // signals so that they are emitted at the appropriate time + // but there aren't any + root.orientationChangeStarted(); + root.orientationChangeFinished(); + } + } + }, + Transition { + // use this transition when sip is not visible + from: (screen.minimized ? "disabled" : (inputContext.softwareInputPanelVisible ? "disabled" : "*")) + to: (screen.minimized ? "disabled" : (inputContext.softwareInputPanelVisible ? "disabled" : "*")) + SequentialAnimation { + alwaysRunToEnd: true + + ScriptAction { + script: { + snapshot.take(); + snapshot.opacity = 1.0; + snapshotRotation.angle = -window.rotation; + snapshot.smooth = false; // Quick & coarse rotation consistent with MTF + platformWindow.animating = true; + root.orientationChangeAboutToStart(); + } + } + PropertyAction { target: window; properties: "portrait"; } + ScriptAction { + script: { + windowContent.opacity = 0.0; + root.orientationChangeStarted(); + } + } + ParallelAnimation { + NumberAnimation { target: windowContent; property: "opacity"; + to: 1.0; easing.type: Easing.InOutExpo; duration: 600; } + NumberAnimation { target: snapshot; property: "opacity"; + to: 0.0; easing.type: Easing.InOutExpo; duration: 600; } + PropertyAction { target: windowRotation; properties: "origin.x"; } + PropertyAction { target: windowRotation; properties: "origin.y"; } + RotationAnimation { target: windowRotation; property: "angle"; + from: -screen.rotationDirection * 90; + to: 0; + direction: RotationAnimation.Shortest; + easing.type: Easing.InOutExpo; duration: 600; } + } + ScriptAction { + script: { + windowRotation.angle = 0 + snapshot.free(); + root.orientationChangeFinished(); + platformWindow.animating = false; + } + } + } + } + ] + + focus: true + Keys.onReleased: { + if (event.key == Qt.Key_I && event.modifiers == Qt.AltModifier) { + theme.inverted = !theme.inverted; + } + if (event.key == Qt.Key_E && event.modifiers == Qt.AltModifier) { + if(screen.currentOrientation == Screen.Landscape) { + screen.allowedOrientations = Screen.Portrait; + } else if(screen.currentOrientation == Screen.Portrait) { + screen.allowedOrientations = Screen.LandscapeInverted; + } else if(screen.currentOrientation == Screen.LandscapeInverted) { + screen.allowedOrientations = Screen.PortraitInverted; + } else if(screen.currentOrientation == Screen.PortraitInverted) { + screen.allowedOrientations = Screen.Landscape; + } + } + if (event.key == Qt.Key_E && event.modifiers == Qt.ControlModifier ) { + if(screen.currentOrientation == Screen.Portrait) { + screen.allowedOrientations = Screen.Landscape; + } else if(screen.currentOrientation == Screen.LandscapeInverted) { + screen.allowedOrientations = Screen.Portrait; + } else if(screen.currentOrientation == Screen.PortraitInverted) { + screen.allowedOrientations = Screen.LandscapeInverted; + } else if(screen.currentOrientation == Screen.Landscape) { + screen.allowedOrientations = Screen.PortraitInverted; + } + } + } + } +} diff --git a/mardrone/imports/Qt/labs/components/native/qmldir b/mardrone/imports/Qt/labs/components/native/qmldir new file mode 100644 index 0000000..75b591e --- /dev/null +++ b/mardrone/imports/Qt/labs/components/native/qmldir @@ -0,0 +1,72 @@ +plugin meegoplugin +ApplicationWindow 1.0 ApplicationWindow.qml +ApplicationWindowStyle 1.0 ApplicationWindowStyle.qml +BusyIndicator 1.0 BusyIndicator.qml +BusyIndicatorStyle 1.0 BusyIndicatorStyle.qml +Button 1.0 Button.qml +ButtonStyle 1.0 ButtonStyle.qml +GroupButtonStyle 1.0 GroupButtonStyle.qml +ButtonColumn 1.0 ButtonColumn.qml +ButtonRow 1.0 ButtonRow.qml +CheckBox 1.0 CheckBox.qml +CheckBoxStyle 1.0 CheckBoxStyle.qml +ContextMenu 1.0 ContextMenu.qml +ContextMenuStyle 1.0 ContextMenuStyle.qml +Dialog 1.0 Dialog.qml +DialogStyle 1.0 DialogStyle.qml +EditBubble 1.0 EditBubble.qml +QueryDialog 1.0 QueryDialog.qml +QueryDialogStyle 1.0 QueryDialogStyle.qml +SelectionDialog 1.0 SelectionDialog.qml +MultiSelectionDialog 1.0 MultiSelectionDialog.qml +SelectionDialogStyle 1.0 SelectionDialogStyle.qml +Label 1.0 Label.qml +LabelStyle 1.0 LabelStyle.qml +Menu 1.0 Menu.qml +MenuLayout 1.0 MenuLayout.qml +MenuItem 1.0 MenuItem.qml +MenuStyle 1.0 MenuStyle.qml +MenuItemStyle 1.0 MenuItemStyle.qml +MouseAreaDebug 1.0 MouseAreaDebug.qml +Page 1.0 Page.qml +PageStack 1.0 PageStack.qml +PageStackWindow 1.0 PageStackWindow.qml +PageStackWindowStyle 1.0 PageStackWindowStyle.qml +ProgressBar 1.0 ProgressBar.qml +ProgressBarStyle 1.0 ProgressBarStyle.qml +RadioButton 1.0 RadioButton.qml +RadioButtonStyle 1.0 RadioButtonStyle.qml +ScrollDecorator 1.0 ScrollDecorator.qml +ScrollDecoratorStyle 1.0 ScrollDecoratorStyle.qml +SectionScroller 1.0 SectionScroller.qml +SectionScrollerStyle 1.0 SectionScrollerStyle.qml +Sheet 1.0 Sheet.qml +SheetStyle 1.0 SheetStyle.qml +SheetButton 1.0 SheetButton.qml +SheetButtonStyle 1.0 SheetButtonStyle.qml +SheetButtonAccentStyle 1.0 SheetButtonAccentStyle.qml +Slider 1.0 Slider.qml +SliderStyle 1.0 SliderStyle.qml +SliderTemplate 1.0 SliderTemplate.qml +StatusBar 1.0 StatusBar.qml +Style 1.0 Style.qml +Switch 1.0 Switch.qml +SwitchStyle 1.0 SwitchStyle.qml +TabBarLayout 1.0 TabBarLayout.qml +TabButton 1.0 TabButton.qml +TabButtonStyle 1.0 TabButtonStyle.qml +TabGroup 1.0 TabGroup.qml +TextArea 1.0 TextArea.qml +TextAreaStyle 1.0 TextAreaStyle.qml +TextField 1.0 TextField.qml +TextFieldStyle 1.0 TextFieldStyle.qml +ToolBar 1.0 ToolBar.qml +ToolBarLayout 1.0 ToolBarLayout.qml +ToolBarStyle 1.0 ToolBarStyle.qml +ToolButton 1.0 ToolButton.qml +ToolButtonRow 1.0 ToolButtonRow.qml +ToolButtonStyle 1.0 ToolButtonStyle.qml +ToolItem 1.0 ToolItem.qml +ToolIcon 1.0 ToolIcon.qml +ToolItemStyle 1.0 ToolItemStyle.qml +Window 1.0 Window.qml diff --git a/mardrone/imports/com/meego/AbstractMenu.qml b/mardrone/imports/com/meego/AbstractMenu.qml new file mode 100644 index 0000000..703192e --- /dev/null +++ b/mardrone/imports/com/meego/AbstractMenu.qml @@ -0,0 +1,316 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Popup { + id: root + + // Common API + default property alias content: contentField.children + + // Common API inherited from Popup: + /* + function open() + function close() + + property QDeclarativeItem* visualParent + property int status + */ + + // platformStyle API + property Style platformStyle: MenuStyle{} + property alias style: root.platformStyle // Deprecated + property alias platformTitle: titleBar.children + property alias title: titleBar.children // Deprecated + property alias __footer: footerBar.children + + // private api + property int __statusBarDelta: visualParent ? 0 : + __findItem( "appWindowContent") != null ? 0 : + __findItem( "pageStackWindow") != null && __findItem( "pageStackWindow").showStatusBar ? 36 : 0 + + property string __animationChief: "abstractMenu" + property int __pressDelay: platformStyle.pressDelay + property alias __statesWrapper: statesWrapper + property alias __menuPane: menuPane + + // This item will find the object with the given objectName ... or will return + function __findItem( objectName ) { + var next = parent; + + if (next != null) { + while (next) { + if(next.objectName == objectName){ + return next; + } + + next = next.parent; + } + } + + return null; + } + + __dim: platformStyle.dim + __fadeInDuration: platformStyle.fadeInDuration + __fadeOutDuration: platformStyle.fadeOutDuration + __fadeInDelay: platformStyle.fadeInDelay + __fadeOutDelay: platformStyle.fadeOutDelay + __faderBackground: platformStyle.faderBackground + __fadeInEasingType: platformStyle.fadeInEasingType + __fadeOutEasingType: platformStyle.fadeOutEasingType + + anchors.fill: parent + + // When application is minimized menu is closed. + Connections { + target: platformWindow + onActiveChanged: { + if(!platformWindow.active) + close() + } + } + + // This is needed for menus which are not instantiated inside the + // content window of the PageStackWindow: + Item { + id: roundedCorners + visible: root.status != DialogStatus.Closed && !visualParent + && __findItem( "pageStackWindow") != null && __findItem( "pageStackWindow").platformStyle.cornersVisible + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: parent.bottom + height: parent.height - __statusBarDelta - 2 + z: 10001 + + // compensate for the widening of the edges of the fader (which avoids artefacts during rotation) + anchors.topMargin: +1 + anchors.rightMargin: +1 + anchors.bottomMargin: +1 + anchors.leftMargin: +1 + + Image { + anchors.top : parent.top + anchors.left: parent.left + source: "image://theme/meegotouch-applicationwindow-corner-top-left" + } + Image { + anchors.top: parent.top + anchors.right: parent.right + source: "image://theme/meegotouch-applicationwindow-corner-top-right" + } + Image { + anchors.bottom : parent.bottom + anchors.left: parent.left + source: "image://theme/meegotouch-applicationwindow-corner-bottom-left" + } + Image { + anchors.bottom : parent.bottom + anchors.right: parent.right + source: "image://theme/meegotouch-applicationwindow-corner-bottom-right" + } + } + + // Shadows: + Image { + anchors.top : menuPane.top + anchors.right: menuPane.left + anchors.bottom : menuPane.bottom + source: "image://theme/meegotouch-menu-shadow-left" + visible: root.status != DialogStatus.Closed + } + Image { + anchors.bottom : menuPane.top + anchors.left: menuPane.left + anchors.right : menuPane.right + source: "image://theme/meegotouch-menu-shadow-top" + visible: root.status != DialogStatus.Closed + } + Image { + anchors.top : menuPane.top + anchors.left: menuPane.right + anchors.bottom : menuPane.bottom + source: "image://theme/meegotouch-menu-shadow-right" + visible: root.status != DialogStatus.Closed + } + Image { + anchors.top : menuPane.bottom + anchors.left: menuPane.left + anchors.right : menuPane.right + source: "image://theme/meegotouch-menu-shadow-bottom" + visible: root.status != DialogStatus.Closed + } + + Item { + id: menuPane + //ToDo: add support for layoutDirection Qt::RightToLeft + x: platformStyle.leftMargin + width: parent.width - platformStyle.leftMargin - platformStyle.rightMargin // ToDo: better width heuristic + height: (screen.currentOrientation == 1) || (screen.currentOrientation == 4) ? + /* Portrait */ titleBar.height + flickableContent.height + footerBar.height : + /* Landscape */ parent.height - platformStyle.topMargin - platformStyle.bottomMargin - __statusBarDelta + anchors.bottom: parent.bottom + anchors.right: parent.right + + state: __statesWrapper.state + + BorderImage { + id: backgroundImage + source: // !enabled ? root.platformStyle.disabledBackground : + root.platformStyle.background + anchors.fill : parent + border { left: 22; top: theme.inverted ? 124 : 22; + right: 22; bottom: theme.inverted ? 2 : 22 } + } + + // this item contains the whole menu (content rectangle) + Item { + id: backgroundRect + anchors.fill: parent + + Item { + id: titleBar + anchors.left: parent.left + anchors.right: parent.right + + height: childrenRect.height + } + + Item { + // Required to have the ScrollDecorator+Flickable handled + // by the column as a single item while keeping the + // ScrollDecorator working + id: flickableContent + anchors.left: parent.left + anchors.right: parent.right + + anchors.top: backgroundRect.top + anchors.topMargin: titleBar.height + property int maxHeight : visualParent + ? visualParent.height - platformStyle.topMargin - __statusBarDelta + - footerBar.height - titleBar.height + : root.parent + ? root.parent.height - platformStyle.topMargin - __statusBarDelta + - footerBar.height - titleBar.height + : 350 + + height: contentField.childrenRect.height + platformStyle.topPadding + platformStyle.bottomPadding < maxHeight + ? contentField.childrenRect.height + platformStyle.topPadding + platformStyle.bottomPadding + : maxHeight + + Flickable { + id: flickable + anchors.fill: parent + contentWidth: parent.width + contentHeight: contentField.childrenRect.height + platformStyle.topPadding + platformStyle.bottomPadding + interactive: contentHeight > flickable.height + flickableDirection: Flickable.VerticalFlick + pressDelay: __pressDelay + clip: true + + Item { + id: contentRect + height: contentField.childrenRect.height + + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + anchors.topMargin: platformStyle.topPadding + anchors.bottomMargin: platformStyle.bottomPadding + anchors.leftMargin: platformStyle.leftPadding + anchors.rightMargin: platformStyle.rightPadding + + Item { + id: contentField + anchors.fill: contentRect + + function closeMenu() { root.close(); } + } + } + } + ScrollDecorator { + id: scrollDecorator + flickableItem: flickable + } + } + + Item { + id: footerBar + anchors.left: parent.left + anchors.right: parent.right + + anchors.top: backgroundRect.top + anchors.topMargin: titleBar.height + flickableContent.height + height: childrenRect.height + } + + } + } + + onPrivateClicked: close() // "reject()" + + StateGroup { + id: statesWrapper + + state: "hidden" + + states: [ + State { + name: "visible" + when: root.__animationChief == "abstractMenu" && (root.status == DialogStatus.Opening || root.status == DialogStatus.Open) + PropertyChanges { + target: __menuPane + opacity: 1.0 + } + }, + State { + name: "hidden" + when: root.__animationChief == "abstractMenu" && (root.status == DialogStatus.Closing || root.status == DialogStatus.Closed) + PropertyChanges { + target: __menuPane + opacity: 0.0 + } + } + ] + + } +} diff --git a/mardrone/imports/com/meego/ApplicationWindow.qml b/mardrone/imports/com/meego/ApplicationWindow.qml new file mode 100644 index 0000000..7f53765 --- /dev/null +++ b/mardrone/imports/com/meego/ApplicationWindow.qml @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +PageStackWindow { + + Component.onCompleted: { + print("Warning: ApplicationWindow is deprecated, use PageStackWindow instead"); + } + +} diff --git a/mardrone/imports/com/meego/ApplicationWindowStyle.qml b/mardrone/imports/com/meego/ApplicationWindowStyle.qml new file mode 100644 index 0000000..82e4a4b --- /dev/null +++ b/mardrone/imports/com/meego/ApplicationWindowStyle.qml @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Style { + property bool cornersVisible: true + + // Background + property url background: "image://theme/meegotouch-applicationpage-background"+__invertedString +} diff --git a/mardrone/imports/com/meego/BasicRow.js b/mardrone/imports/com/meego/BasicRow.js new file mode 100644 index 0000000..09460a0 --- /dev/null +++ b/mardrone/imports/com/meego/BasicRow.js @@ -0,0 +1,98 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +var children = [] + +function cleanup() +{ + var length = children.length; + + for (var i = 0; i < length; i++) { + var item = children[i]; + + item.widthChanged.disconnect(relayout); + item.heightChanged.disconnect(relayout); + item.visibleChanged.disconnect(relayout); + } + + children = []; +} + +function updateChildren() +{ + cleanup(); + + var length = row.children.length; + + for (var i = 0; i < length; i++) { + var item = row.children[i]; + + item.widthChanged.connect(relayout); + item.heightChanged.connect(relayout); + item.visibleChanged.connect(relayout); + + children.push(item); + } + + relayout(); +} + +function relayout() +{ + var ix = 0; + var ih = 0; + + var length = children.length; + + for (var i = 0; i < length; i++) { + var item = children[i]; + + if (!item.visible) + continue; + + item.x = ix; + item.y = 0; + ih = Math.max(ih, item.height); + ix += item.width; + } + + row.width = ix; + row.height = ih; +} diff --git a/mardrone/imports/com/meego/BasicRow.qml b/mardrone/imports/com/meego/BasicRow.qml new file mode 100644 index 0000000..f4b943f --- /dev/null +++ b/mardrone/imports/com/meego/BasicRow.qml @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "BasicRow.js" as Private + +/* + This element should be used in place of the Row element to + avoid visual artifacts during the relayout operation. + + The QML Row element updates its children position using a + singleShot, so a paint operation could happen before the items + are positioned in the right place. + + This element reposition its children immediately to avoid this, + so it's recommended to be used with just a few elements, since + it's not optimized. + + This element can be removed when the following bug is solved: + http://bugreports.qt.nokia.com/browse/QTBUG-18919 +*/ + +Item { + id: row + + onChildrenChanged: Private.updateChildren(); + Component.onCompleted: Private.updateChildren(); +} diff --git a/mardrone/imports/com/meego/BusyIndicator.qml b/mardrone/imports/com/meego/BusyIndicator.qml new file mode 100644 index 0000000..0f3688a --- /dev/null +++ b/mardrone/imports/com/meego/BusyIndicator.qml @@ -0,0 +1,98 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +import "UIConstants.js" as UI +import "TextAreaHelper.js" as AreaHelper + +// ### Display Entered / Exited! Pause animation when not "on display". +// ### LayoutDirection + +ImplicitSizeItem { + id: root + + property bool running: false + + property Style platformStyle: BusyIndicatorStyle{} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + implicitWidth: platformStyle.size == "small" ? 24 : platformStyle.size == "medium" ? 32 : 96; + implicitHeight: implicitWidth + + QtObject { + id: internal + property Flickable flick + property bool offScreen: false + } + + Image { + id: spinner + property int index: 1 + source: root.platformStyle.spinnerFrames + "_" + root.implicitWidth + "_" + index + smooth: true + + NumberAnimation on index { + from: 1; to: root.platformStyle.numberOfFrames + duration: root.platformStyle.period + running: root.running && root.visible && Qt.application.active && !internal.offScreen + loops: Animation.Infinite + } + } + + Connections { + target: internal.flick + + onMovementStarted: internal.offScreen = false + + onMovementEnded: { + var pos = mapToItem(internal.flick, 0, 0) + internal.offScreen = (pos.y + root.height <= 0) || (pos.y >= internal.flick.height) || (pos.x + root.width <= 0) || (pos.x >= internal.flick.width) + } + } + + Component.onCompleted: { + var flick = AreaHelper.findFlickable() + if (flick) + internal.flick = flick + } +} diff --git a/mardrone/imports/com/meego/BusyIndicatorStyle.qml b/mardrone/imports/com/meego/BusyIndicatorStyle.qml new file mode 100644 index 0000000..445df17 --- /dev/null +++ b/mardrone/imports/com/meego/BusyIndicatorStyle.qml @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + property string size: "medium" + property int period: 1000 + + property int numberOfFrames: 10 + + __invertedString: inverted? "inverted" : "" // The spinner frames do not follow the common inverted file naming :( + + property url spinnerFrames: "image://theme/spinner"+__invertedString +} diff --git a/mardrone/imports/com/meego/Button.qml b/mardrone/imports/com/meego/Button.qml new file mode 100644 index 0000000..fe8f66a --- /dev/null +++ b/mardrone/imports/com/meego/Button.qml @@ -0,0 +1,146 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import Qt.labs.components 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +ImplicitSizeItem { + id: button + + // Common public API + property bool checked: false + property bool checkable: false + property alias pressed: mouseArea.pressed + property alias text: label.text + property url iconSource + property alias platformMouseAnchors: mouseArea.anchors + + signal clicked + + // Used in ButtonGroup.js to set the segmented look on the buttons. + property string __buttonType + + // Styling for the Button + property Style platformStyle: ButtonStyle {} + + // Deprecated, TODO remove + property alias style: button.platformStyle + + implicitWidth: platformStyle.buttonWidth + implicitHeight: platformStyle.buttonHeight + width: implicitWidth + + property alias font: label.font + + //private property + property bool __dialogButton: false + + BorderImage { + id: background + anchors.fill: parent + border { left: button.platformStyle.backgroundMarginLeft; top: button.platformStyle.backgroundMarginTop; + right: button.platformStyle.backgroundMarginRight; bottom: button.platformStyle.backgroundMarginBottom } + + source: __dialogButton ? (pressed ? button.platformStyle.pressedDialog : button.platformStyle.dialog) : + !enabled ? + (checked ? button.platformStyle.checkedDisabledBackground : button.platformStyle.disabledBackground) : + pressed ? + button.platformStyle.pressedBackground : + checked ? + button.platformStyle.checkedBackground : + button.platformStyle.background; + } + + Image { + id: icon + anchors.left: label.visible ? parent.left : undefined + anchors.leftMargin: label.visible ? UI.MARGIN_XLARGE : 0 + anchors.centerIn: label.visible ? undefined : parent + + anchors.verticalCenter: parent.verticalCenter + anchors.verticalCenterOffset: -1 + + source: button.iconSource + + visible: source != "" + } + + Label { + id: label + anchors.verticalCenter: parent.verticalCenter + anchors.left: icon.visible ? icon.right : parent.left + anchors.leftMargin: icon.visible ? UI.PADDING_XLARGE : UI.BUTTON_LABEL_MARGIN + anchors.right: parent.right + anchors.rightMargin: UI.BUTTON_LABEL_MARGIN + + horizontalAlignment: icon.visible ? Text.AlignLeft : button.platformStyle.horizontalAlignment + elide: Text.ElideRight + + font.family: button.platformStyle.fontFamily + font.weight: checked ? button.platformStyle.checkedFontWeight : button.platformStyle.fontWeight + font.pixelSize: button.platformStyle.fontPixelSize + font.capitalization: button.platformStyle.fontCapitalization + color: !enabled ? button.platformStyle.disabledTextColor : + pressed ? button.platformStyle.pressedTextColor : + checked ? button.platformStyle.checkedTextColor : + button.platformStyle.textColor; + text: "" + visible: text != "" + } + + MouseArea { + id: mouseArea + anchors { + fill: parent + rightMargin: (platformStyle.position != "horizontal-center" + && platformStyle.position != "horizontal-left") ? platformStyle.mouseMarginRight : 0 + leftMargin: (platformStyle.position != "horizontal-center" + && platformStyle.position != "horizontal-right") ? platformStyle.mouseMarginLeft : 0 + topMargin: (platformStyle.position != "vertical-center" + && platformStyle.position != "vertical-bottom") ? platformStyle.mouseMarginTop : 0 + bottomMargin: (platformStyle.position != "vertical-center" + && platformStyle.position != "vertical-top") ? platformStyle.mouseMarginBottom : 0 + } + onClicked: if (button.checkable) button.checked = !button.checked + } + Component.onCompleted: mouseArea.clicked.connect(clicked) +} diff --git a/mardrone/imports/com/meego/ButtonColumn.qml b/mardrone/imports/com/meego/ButtonColumn.qml new file mode 100644 index 0000000..f73a2a5 --- /dev/null +++ b/mardrone/imports/com/meego/ButtonColumn.qml @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +import "ButtonGroup.js" as Private +import "UIConstants.js" as UI + +Column { + id: root + + property bool exclusive: true + property Item checkedButton + + property Component platformStyle: null + property Component style: null + + width: UI.BUTTON_WIDTH + + Component.onCompleted: { + Private.create(root, { + "orientation": Qt.Vertical, + "exclusive": exclusive, + "styleComponent": platformStyle? platformStyle : style, + "singlePos": "", + "firstPos": "vertical-top", + "middlePos": "vertical-center", + "lastPos": "vertical-bottom", + "resizeChildren": function(self) { + Private.buttons.forEach(function(item, i) { + if (Private.isButton(item) && item.visible) { + item.anchors.left = self.left; + item.anchors.right = self.right; + } + }); + } + }); + } + + Component.onDestruction: { + Private.destroy(); + } +} diff --git a/mardrone/imports/com/meego/ButtonGroup.js b/mardrone/imports/com/meego/ButtonGroup.js new file mode 100644 index 0000000..623190a --- /dev/null +++ b/mardrone/imports/com/meego/ButtonGroup.js @@ -0,0 +1,263 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/// Helper code that is shared between ButtonRow.qml and ButtonColumn.qml. + +var self = undefined; +var checkedButton = null; +var buttons = []; +var firstVisible = -1; +var lastVisible = -1; +var visibleButtons = 0; +var buttonHandlers = []; +var styleComponent = undefined; +var params = undefined; + +function isButton(item) { + return (item && item.hasOwnProperty("__buttonType")); +} + +function hasChecked(item) { + return (item && item.hasOwnProperty("checked")); +} + +function cleanup() { + buttons.forEach(function(button, i) { + if (button.visible && params.exclusive) { + button.checkedChanged.disconnect(buttonHandlers[i]); + } + if (isButton(button)) + button.visibleChanged.disconnect(buttonVisibleChanged); + }); + buttons = []; + buttonHandlers = []; +} + +function updateButtons() { + cleanup(); + + params.exclusive = self.exclusive; + + checkedButton = null; + var length = self.children.length; + for (var i = 0; i < length; i++) { + var item = self.children[i]; + if (!hasChecked(item)) + continue; + buttons.push(item); + + item.visibleChanged.connect(buttonVisibleChanged); + + if (item.checked) { + if (!checkedButton && (self.checkedButton === item || self.checkedButton == undefined)) + checkedButton = item; + else if (params.exclusive && self.checkedButton != item) + item.checked = false; + } else if (self.checkedButton === item) { + if (checkedButton && params.exclusive) + checkedButton.checked = false; + checkedButton = item; + item.checked = true; + } + + if (isButton(item)) { + if (styleComponent) + item.platformStyle = styleComponent.createObject(item) + + // Only ButtonRow supports tab buttons and care about screen orientation + if (params.orientation == Qt.Horizontal && item.platformStyle.hasOwnProperty("screenOrientation")) + switch (screen.currentOrientation) { + case Screen.Portrait: + case Screen.PortraitInverted: + item.platformStyle.screenOrientation = "portrait"; + break; + case Screen.Landscape: + case Screen.LandscapeInverted: + item.platformStyle.screenOrientation = "landscape"; + break; + } + } + if (params.exclusive) { + if (item["checkable"] !== undefined) + item.checkable = true; + var last = buttonHandlers.push(checkExclusive(item)); + item.checkedChanged.connect(buttonHandlers[last - 1]); + } + } + + if (!checkedButton && buttons.length > 0 && params.exclusive) { + checkedButton = buttons[0]; + checkedButton.checked = true; + } + self.checkedButton = checkedButton; + + buttonVisibleChanged(); +} + +var blockCheckedChanged = false; + +function checkExclusive(item) { + var button = item; + return function() { + if (blockCheckedChanged) + return; + if (!button.checked) { + if (self.checkedButton === button) { + blockCheckedChanged = true; + button.checked = true; + blockCheckedChanged = false; + } + return; + } + if (self.checkedButton === button) + return; + if (self.checkedButton) { + blockCheckedChanged = true; + self.checkedButton.checked = false; + blockCheckedChanged = false; + } + checkedButton = button; + self.checkedButton = button; + } +} + +function checkedButtonChanged() { + if (checkedButton === self.checkedButton) + return; + blockCheckedChanged = true; + if (params.exclusive && checkedButton) + checkedButton.checked = false; + if (self.checkedButton) + self.checkedButton.checked = true; + blockCheckedChanged = false; + checkedButton = self.checkedButton; +} + +function buttonVisibleChanged() { + visibleButtons = 0; + firstVisible = -1; + lastVisible = -1; + buttons.forEach(function (button, i) { + if (button.visible) { + if (firstVisible === -1) + firstVisible = i; + lastVisible = i; + visibleButtons++; + } + }); + + updateGroupPosition(); + resizeChildren(); +} + +function updateGroupPosition() { + if (visibleButtons === 0) + return; + + // Fix the children group position + if (visibleButtons == 1) { + if (isButton(buttons[firstVisible])) + buttons[firstVisible].platformStyle.position = params.singlePos; + } else { + if (isButton(buttons[firstVisible])) + buttons[firstVisible].platformStyle.position = params.firstPos; + for (var i = firstVisible + 1; i < lastVisible; i++) { + if (buttons[i].visible && isButton(buttons[i])) + buttons[i].platformStyle.position = params.middlePos; + } + if (isButton(buttons[lastVisible])) + buttons[lastVisible].platformStyle.position = params.lastPos; + } +} + +var resizing = false; // resizeChildren() may trigger reentrant calls + +function resizeChildren() { + if (resizing || visibleButtons === 0) + return; + + if (typeof params.resizeChildren === "function") { + resizing = true; + params.resizeChildren(self); + resizing = false; + } +} + +function create(s, p) { + if (!s) { + console.log("Error creating ButtonGroup: invalid owner."); + return; + } + if (!s.hasOwnProperty("checkedButton")) { + console.log("Error creating ButtonGroup: owner has no 'checkedButton' property."); + return; + } + + self = s; + params = p; + + styleComponent = params.styleComponent; + + if (styleComponent && styleComponent.status != Component.Ready) { + console.log("Error loading style:", styleComponent.errorString()); + return + } + + updateButtons(); + self.checkedButtonChanged.connect(checkedButtonChanged); + self.childrenChanged.connect(updateButtons); + self.exclusiveChanged.connect(Private.updateButtons); + self.widthChanged.connect(resizeChildren); +} + +function destroy() { + if (self) { + self.checkedButtonChanged.disconnect(checkedButtonChanged); + self.childrenChanged.disconnect(updateButtons); + self.widthChanged.disconnect(resizeChildren); + self = undefined; + } + if (styleComponent) { + styleComponent.destroy(); + styleComponent = undefined; + } + cleanup(); +} + diff --git a/mardrone/imports/com/meego/ButtonRow.qml b/mardrone/imports/com/meego/ButtonRow.qml new file mode 100644 index 0000000..bc49b59 --- /dev/null +++ b/mardrone/imports/com/meego/ButtonRow.qml @@ -0,0 +1,94 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +import "ButtonGroup.js" as Private +import "UIConstants.js" as UI + +Row { + id: root + + property bool exclusive: true + property Item checkedButton + + property Component platformStyle: null + property Component style: null + + property int __screenWidth: (screen.rotation === 0 || screen.rotation === 180 ? screen.displayWidth : screen.displayHeight) - 2 * UI.MARGIN_XLARGE + property int __visibleButtons + property bool __expanding: true // Layout hint used but ToolBarLayout + property int __maxButtonSize: UI.BUTTON_WIDTH + + width: Math.min(__visibleButtons * UI.BUTTON_WIDTH, __screenWidth) + Component.onCompleted: { + Private.create(root, { + "orientation": Qt.Horizontal, + "exclusive": exclusive, + "styleComponent": platformStyle? platformStyle : style, + "singlePos": "", + "firstPos": "horizontal-left", + "middlePos": "horizontal-center", + "lastPos": "horizontal-right", + "resizeChildren": function(self) { + self.__visibleButtons = Private.visibleButtons; + var extraPixels = self.width % Private.visibleButtons; + var buttonSize = Math.min(__maxButtonSize, (self.width - extraPixels) / Private.visibleButtons); + Private.buttons.forEach(function(item, i) { + if (!item || !item.visible || !Private.isButton(item)) + return; + if (extraPixels > 0) { + item.width = buttonSize + 1; + extraPixels--; + } else { + item.width = buttonSize; + } + }); + } + }); + screen.currentOrientationChanged.connect(Private.updateButtons); + } + + Component.onDestruction: { + screen.currentOrientationChanged.disconnect(Private.updateButtons); + Private.destroy(); + } +} diff --git a/mardrone/imports/com/meego/ButtonStyle.qml b/mardrone/imports/com/meego/ButtonStyle.qml new file mode 100644 index 0000000..fe62cf0 --- /dev/null +++ b/mardrone/imports/com/meego/ButtonStyle.qml @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + // Font + property string fontFamily: UI.FONT_FAMILY + property int fontPixelSize: UI.FONT_DEFAULT_SIZE + property int fontCapitalization: Font.MixedCase + property int fontWeight: Font.Bold + property int checkedFontWeight: Font.Bold + property int horizontalAlignment: Text.AlignHCenter + + // Text Color + property color textColor: inverted ? UI.COLOR_BUTTON_INVERTED_FOREGROUND : UI.COLOR_BUTTON_FOREGROUND + property color pressedTextColor: UI.COLOR_BUTTON_SECONDARY_FOREGROUND + property color disabledTextColor: UI.COLOR_BUTTON_DISABLED_FOREGROUND + property color checkedTextColor: UI.COLOR_BUTTON_INVERTED_FOREGROUND + + // Dimensions + property int buttonWidth: UI.BUTTON_WIDTH + property int buttonHeight: UI.BUTTON_HEIGHT + + // Mouse + property real mouseMarginRight: 0.0 + property real mouseMarginLeft: 0.0 + property real mouseMarginTop: 0.0 + property real mouseMarginBottom: 0.0 + + // Background + property int backgroundMarginRight: 22 + property int backgroundMarginLeft: 22 + property int backgroundMarginTop: 22 + property int backgroundMarginBottom: 22 + + /* The position property can take one of the following values: + + [horizontal-left] [horizontal-center] [horizontal-right] + + [vertical-top] + [vertical-center] + [vertical-bottom] + */ + property string position: "" + + property url background: "image://theme/meegotouch-button" + __invertedString + "-background" + (position ? "-" + position : "") + property url pressedBackground: "image://theme/" + __colorString + "meegotouch-button" + __invertedString + "-background-pressed" + (position ? "-" + position : "") + property url disabledBackground: "image://theme/meegotouch-button" + __invertedString + "-background-disabled" + (position ? "-" + position : "") + property url checkedBackground: "image://theme/" + __colorString + "meegotouch-button" + __invertedString + "-background-selected" + (position ? "-" + position : "") + property url checkedDisabledBackground: "image://theme/" + __colorString + "meegotouch-button" + __invertedString + "-background-disabled-selected" + (position ? "-" + position : "") + property url dialog: "image://theme/meegotouch-dialog-button-negative" + property url pressedDialog: "image://theme/meegotouch-dialog-button-negative-pressed" + +} diff --git a/mardrone/imports/com/meego/CheckBox.qml b/mardrone/imports/com/meego/CheckBox.qml new file mode 100644 index 0000000..fd7c190 --- /dev/null +++ b/mardrone/imports/com/meego/CheckBox.qml @@ -0,0 +1,136 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import Qt.labs.components 1.1 + +import "UIConstants.js" as UI + +ImplicitSizeItem { + id: checkbox + + property Style platformStyle: CheckBoxStyle{} + property alias platformMouseAnchors: mouseArea.anchors + + //Deprecated, TODO Remove this on w13 + property alias style: checkbox.platformStyle + + property string text + property bool checked: false + property bool pressed + signal clicked + + implicitWidth: image.width + body.spacing + label.implicitWidth + implicitHeight: body.height + + onWidthChanged: if (width > 0 && width != implicitWidth) + label.width = checkbox.width - body.spacing - image.width + + Binding { + target: checkbox + property: "pressed" + value: mouseArea.pressed && mouseArea.containsMouse + } + + property alias __imageSource: image.source + + function __handleChecked() { + checkbox.checked = !checkbox.checked; + } + + Row { + id: body + spacing: 15 + + BorderImage { + id: image + smooth: true + + width: 42; height: 42 + + source: !checkbox.enabled ? platformStyle.backgroundDisabled : + checkbox.pressed ? platformStyle.backgroundPressed : + checkbox.checked ? platformStyle.backgroundSelected : + platformStyle.background + + border { + left: 4 + top: 4 + right: 4 + bottom: 4 + } + } + + Label { + id: label + anchors.verticalCenter: image.verticalCenter + text: checkbox.text + elide: checkbox.platformStyle.elideMode + } + } + + MouseArea { + id: mouseArea + + anchors.fill: body + anchors.topMargin: platformStyle.mouseMarginTop + anchors.leftMargin: platformStyle.mouseMarginLeft + anchors.rightMargin: platformStyle.mouseMarginRight + anchors.bottomMargin: platformStyle.mouseMarginBottom + + onPressed: { + // TODO: enable feedback without old themebridge + // if (checkbox.checked) + // meegostyle.feedback("pressOnFeedback"); + // else + // meegostyle.feedback("pressOffFeedback"); + } + + onClicked: { + __handleChecked(); + // TODO: enable feedback without old themebridge + // if (checkbox.checked) + // meegostyle.feedback("releaseOnFeedback"); + // else + // meegostyle.feedback("releaseOffFeedback"); + } + } + Component.onCompleted: mouseArea.clicked.connect(clicked) +} diff --git a/mardrone/imports/com/meego/CheckBoxStyle.qml b/mardrone/imports/com/meego/CheckBoxStyle.qml new file mode 100644 index 0000000..5c9aeca --- /dev/null +++ b/mardrone/imports/com/meego/CheckBoxStyle.qml @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + // Background + property url background: "image://theme/meegotouch-button-checkbox"+__invertedString+"-background" + property url backgroundSelected: "image://theme/" + __colorString + "meegotouch-button-checkbox"+__invertedString+"-background-selected" + property url backgroundPressed: "image://theme/" + __colorString + "meegotouch-button-checkbox"+__invertedString+"-background-pressed" + property url backgroundDisabled: "image://theme/" + __colorString + "meegotouch-button-checkbox"+__invertedString+"-background-disabled" + + // Mouse area margins + property int mouseMarginTop: 0 + property int mouseMarginLeft: 0 + property int mouseMarginRight: 0 + property int mouseMarginBottom: 0 + property int elideMode: Text.ElideNone +} diff --git a/mardrone/imports/com/meego/CommonDialog.qml b/mardrone/imports/com/meego/CommonDialog.qml new file mode 100644 index 0000000..c7acf5f --- /dev/null +++ b/mardrone/imports/com/meego/CommonDialog.qml @@ -0,0 +1,164 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Dialog { + id: genericDialog + + property string titleText: "" + + property Style platformStyle: SelectionDialogStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: genericDialog.platformStyle + + //private + property bool __drawFooterLine: false + + title: Item { + id: header + height: genericDialog.platformStyle.titleBarHeight + + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + anchors.bottom: parent.bottom + + Item { + id: labelField + + anchors.fill: parent + + Item { + id: labelWrapper + anchors.left: labelField.left + anchors.right: closeButton.left + + anchors.bottom: parent.bottom + anchors.bottomMargin: genericDialog.platformStyle.titleBarLineMargin + + //anchors.verticalCenter: labelField.verticalCenter + + height: titleLabel.height + + Label { + id: titleLabel + x: genericDialog.platformStyle.titleBarIndent + width: parent.width - closeButton.width + //anchors.baseline: parent.bottom + font: genericDialog.platformStyle.titleBarFont + color: genericDialog.platformStyle.commonLabelColor + elide: genericDialog.platformStyle.titleElideMode + text: genericDialog.titleText + } + + } + + Image { + id: closeButton + anchors.bottom: parent.bottom + anchors.bottomMargin: genericDialog.platformStyle.titleBarLineMargin-6 + //anchors.verticalCenter: labelField.verticalCenter + anchors.right: labelField.right + + opacity: closeButtonArea.pressed ? 0.5 : 1.0 + + source: "image://theme/icon-m-common-dialog-close" + + MouseArea { + id: closeButtonArea + anchors.fill: parent + onClicked: {genericDialog.reject();} + } + + } + + } + + Rectangle { + id: headerLine + + anchors.left: parent.left + anchors.right: parent.right + + anchors.bottom: header.bottom + + height: 1 + + color: "#4D4D4D" + } + + } + + content: Item {id: contentField} + + buttons: Item { + id: footer + + width: parent.width + height: childrenRect.height + + //hack to make sure, we're evaluating the correct height + Item { + id: lineWrapper + width: parent.width + height: childrenRect.height + y: 10 + + Rectangle { + id: footerLine + + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + height: genericDialog.__drawFooterLine ? 1 : 0 + + color: "#4D4D4D" + } + } + + //ugly hack to assure, that we're always evaluating the correct height + Item {id: dummy; anchors.fill: parent} + + } + +} diff --git a/mardrone/imports/com/meego/ContextMenu.qml b/mardrone/imports/com/meego/ContextMenu.qml new file mode 100644 index 0000000..0299cc5 --- /dev/null +++ b/mardrone/imports/com/meego/ContextMenu.qml @@ -0,0 +1,118 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +AbstractMenu { + id: root + + // API + property string platformTitleText + property string titleText + property url platformIcon + property url icon + + // platformStyle API + property Style platformStyle: ContextMenuStyle{} + property Style style: ContextMenuStyle{} + + onPlatformTitleTextChanged: logDeprecatedMsg("platformTitleText") + onTitleTextChanged: logDeprecatedMsg("titleText") + onPlatformIconChanged: logDeprecatedMsg("platformIcon") + onIconChanged: logDeprecatedMsg("iconChanged") + onPlatformStyleChanged: logDeprecatedMsg("platformStyle") + onStyleChanged: logDeprecatedMsg("style") + + function logDeprecatedMsg(name) { + console.log("Warning: " + name + " is deprecated"); + } + + + __statesWrapper.transitions: [ + Transition { + from: "visible"; to: "hidden" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "hidden"; + root.status = DialogStatus.Closing; + } + } + + NumberAnimation {target: __menuPane; + property: screen.currentOrientation == Screen.Portrait ? "anchors.bottomMargin" : "anchors.rightMargin"; + easing.type: Easing.InOutQuint; + to: screen.currentOrientation == Screen.Portrait ? -__menuPane.height : -__menuPane.width; + from: 0; duration: 350} + + NumberAnimation {target: __menuPane; property: "opacity"; + from: 1.0; to: 0.0; duration: 0} + + ScriptAction {script: { + status = DialogStatus.Closed; + } + } + } + }, + Transition { + from: "hidden"; to: "visible" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "visible"; + root.status = DialogStatus.Opening; + __menuPane.anchors.rightMargin = 0; + __menuPane.anchors.bottomMargin = 0; + } + } + + NumberAnimation {target: __menuPane; + property: screen.currentOrientation == Screen.Portrait ? "anchors.bottomMargin" : "anchors.rightMargin"; + easing.type: Easing.InOutQuint; + from: screen.currentOrientation == Screen.Portrait ? -__menuPane.height : -__menuPane.width; + to: 0; duration: 350} + + ScriptAction {script: { + status = DialogStatus.Open; + } + } + } + } + ] +} diff --git a/mardrone/imports/com/meego/ContextMenuStyle.qml b/mardrone/imports/com/meego/ContextMenuStyle.qml new file mode 100644 index 0000000..05e0eb8 --- /dev/null +++ b/mardrone/imports/com/meego/ContextMenuStyle.qml @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +MenuStyle { + id: root + property string titleFontFamily: UI.FONT_FAMILY + property int titleFontPixelSize: UI.FONT_SMALL + property int titleFontCapitalization: Font.MixedCase + property color titleTextColor: "white" + + property int titleBarHeight: 56 + + // fader properties + property double dim: 0.9 + property int fadeInDuration: 250 // ms + property int fadeOutDuration: 350 // ms + property int fadeInDelay: 0 // ms + property int fadeOutDelay: 0 // ms + property int fadeInEasingType: Easing.OutQuint + property int fadeOutEasingType: Easing.InOutQuint + property string faderBackground: "image://theme/meegotouch-menu-dimmer" +} diff --git a/mardrone/imports/com/meego/Dialog.qml b/mardrone/imports/com/meego/Dialog.qml new file mode 100644 index 0000000..f17df1c --- /dev/null +++ b/mardrone/imports/com/meego/Dialog.qml @@ -0,0 +1,323 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Popup { + id: root + objectName: "baseDialog" + + // API + property alias title: titleBar.children + property alias content: contentField.children + property alias buttons: buttonRow.children + + signal accepted + signal rejected + + property Style platformStyle: DialogStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + // private api + property string __animationChief: "baseDialog" + __dim: platformStyle.dim + __fadeInDuration: platformStyle.fadeInDuration + __fadeOutDuration: platformStyle.fadeOutDuration + __fadeInDelay: platformStyle.fadeInDelay + __fadeOutDelay: platformStyle.fadeOutDelay + + // true: center of the content field is center of the background rect + // false: the whole dialog is centered + property bool __centerContentField: false + + width: parent.width - platformStyle.leftMargin - platformStyle.rightMargin // ToDo: better width heuristic + height: titleBar.height + contentField.height + buttonRow.height + + anchors.centerIn: parent + + function reject() { + close(); + rejected(); + } + + function accept() { + close(); + accepted(); + } + + // this item contains the whole dialog (title bar + content rectangle, button row) + Item { + id: backgroundRect + + height: root.height + width: root.width + + anchors.centerIn: root + + // center the whole dialog, not just the content field + transform: Translate { + id: contentTranslation + y: root.__centerContentField ? 0 : (titleBar.height - buttonRow.height) / 2 + } + + + // title bar + Item { + id: titleBar + + width: root.width + height: childrenRect.height + + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: contentField.top + + // animate over bottomMargin (i.e. the distance between the content field) + anchors.bottomMargin: 0 + + } + + //content area + Item { + id: contentField + + anchors.left: parent.left + //anchors.right: parent.right + + anchors.horizontalCenter: backgroundRect.horizontalCenter + anchors.verticalCenter: backgroundRect.verticalCenter + + height: childrenRect.height + + transform: Scale { + id: contentScale + xScale: 1.0; yScale: 1.0 + origin.x: mapFromItem(root, root.width / 2, root.height / 2).x + origin.y: mapFromItem(root, root.width / 2, root.height / 2).y + + } + + } + + //button row + Item { + id: buttonRow + + anchors.left: parent.left + anchors.right: parent.right + + anchors.top: contentField.bottom + + // animate over topMargin (i.e. the distance between the content field) + anchors.topMargin: 0 + + height: childrenRect.height + } + + } + + onPrivateClicked: reject() + + StateGroup { + id: statesWrapper + + state: "hidden" + + // needed for button and title bar animation + // without resetting the button row's/title bar's coordinate system would be translated + property int __buttonSaver: buttonRow.y + property int __titleSaver: titleBar.y + + + states: [ + State { + name: "visible" + when: root.__animationChief == "baseDialog" && (status == DialogStatus.Opening || status == DialogStatus.Open) + PropertyChanges { + target: backgroundRect + opacity: 1.0 + } + }, + State { + name: "hidden" + when: root.__animationChief == "baseDialog" && (status == DialogStatus.Closing || status == DialogStatus.Closed) + PropertyChanges { + target: backgroundRect + opacity: 0.0 + } + } + ] + + transitions: [ + Transition { + from: "visible"; to: "hidden" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "hidden"; + + backgroundRect.opacity = 1.0; + root.opacity = 1.0 + + statesWrapper.__buttonSaver = buttonRow.y + statesWrapper.__titleSaver = titleBar.y + root.status = DialogStatus.Closing; + } + } + + // With a 100ms delay the background fades to alpha 0% (500ms, quint ease out). + // --> done in the fader + + PropertyAnimation { target: root; properties: "opacity"; from: 0.0; to: 1.0; duration: 0 } + PropertyAnimation { target: backgroundRect; properties: "opacity"; from: 0.0; to: 1.0; duration: 0 } + + // The closing transition starts with the title and both lines dimming to + // alpha 0% and moving 100 pixels in Y axis towards the center (125ms, + // quint ease in). With no delay the list fades to alpha 0% and scales to + // 80% (anchorpoint in the middle of the list, 100ms, quint ease in). + ParallelAnimation { + PropertyAnimation {target: contentField; properties: "opacity"; from: 1.0; to: 0.0; duration: 100} + PropertyAnimation {target: titleBar; properties: "opacity"; from: 1.0; to: 0.0; duration: 125} + PropertyAnimation {target: contentScale; properties: "xScale,yScale"; from: 1.0 ; to: 0.8; duration: 100; easing.type: Easing.InQuint } + PropertyAnimation {target: buttonRow; properties: "opacity"; from: 1.0; to: 0.0; duration: 125} + PropertyAnimation {target: buttonRow + properties: "anchors.topMargin" + from: 0 + to: -100 + duration: 125 + easing.type: Easing.InQuint + } + PropertyAnimation {target: titleBar + properties: "anchors.topMargin" + from: 0 + to: 100 + duration: 125 + easing.type: Easing.InQuint + } + } + + ScriptAction {script: { + // reset button and title bar + buttonRow.y = statesWrapper.__buttonSaver + titleBar.y = statesWrapper.__titleSaver + // make sure, root isn't visible: + backgroundRect = 0.0; + root.opacity = 0.0; + status = DialogStatus.Closed; + + } + } + } + }, + Transition { + from: "hidden"; to: "visible" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "visible"; + + statesWrapper.__buttonSaver = buttonRow.y + statesWrapper.__titleSaver = titleBar.y + + root.status = DialogStatus.Opening; + // UPPERCASE-UGLY, but necessary to avoid flicker + root.opacity = 1.0; + titleBar.opacity = 0.0; + contentField.opacity = 0.0; + buttonRow.opacity = 0.0; + } + } + + // The opening transition starts by dimming the background to 90% (250ms, + // quint ease in). --> Done inside the fader + + ParallelAnimation { + SequentialAnimation { + // a 250ms delay from the beginning + PauseAnimation { duration: 250 } + // the list scales from 80% to 100% and alpha 0% + // to 100% (anchorpoint in the middle of the list, 250ms, expo ease out) + ParallelAnimation { + PropertyAnimation {target: contentField; properties: "opacity"; from: 0.0; to: 1.0; duration: 250} + PropertyAnimation {target: contentScale; properties: "xScale,yScale"; from: 0.8 ; to: 1.0; duration: 250; easing.type: Easing.OutExpo} + } + } + SequentialAnimation { + // a 200ms delay from the beginning + PauseAnimation { duration: 200 } + ParallelAnimation { + //the title and both lines come from alpha 0% + PropertyAnimation {target: buttonRow; properties: "opacity"; from: 0.0; to: 1.0; duration: 450; } + PropertyAnimation {target: titleBar; properties: "opacity"; from: 0.0; to: 1.0; duration: 450; } + // and move towards the edges (40 pixels in Y axis + // away from their final destination, 450ms, custom ease). + PropertyAnimation {target: buttonRow; properties: "anchors.topMargin" + from: -40 + to: 0 + duration: 450 + easing.type: Easing.OutBack + } + PropertyAnimation {target: titleBar; properties: "anchors.bottomMargin" + from: 40 + to: 0 + duration: 450 + easing.type: Easing.OutBack + } + + } + } + } + + ScriptAction {script: { + + // reset button and title bar + buttonRow.y = statesWrapper.__buttonSaver + titleBar.y = statesWrapper.__titleSaver + + root.status = DialogStatus.Open; + } + } + } + } + ] + } + +} diff --git a/mardrone/imports/com/meego/DialogStyle.qml b/mardrone/imports/com/meego/DialogStyle.qml new file mode 100644 index 0000000..fdaff8c --- /dev/null +++ b/mardrone/imports/com/meego/DialogStyle.qml @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + property real leftMargin: 88 + property real rightMargin: 88 + property real topMargin: 45 + property real bottomMargin: 16 + property bool centered: false + + property int titleBarHeight: 56 + property color titleBarColor: "white" + property int titleElideMode: Text.ElideRight + + property int buttonsTopMargin: 10 + property int buttonsBottomMargin: 0 + property int buttonsColumnSpacing: 10 + + // fader properties + property double dim: 0.9 + property int fadeInDuration: 250 // ms + property int fadeOutDuration: 250 // ms + + property int fadeInDelay: 0 // ms + property int fadeOutDelay: 100 // m + + property int fadeInEasingType: Easing.InQuint + property int fadeOutEasingType: Easing.OutQuint + +} diff --git a/mardrone/imports/com/meego/EditBubble.js b/mardrone/imports/com/meego/EditBubble.js new file mode 100644 index 0000000..cc51f63 --- /dev/null +++ b/mardrone/imports/com/meego/EditBubble.js @@ -0,0 +1,228 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +.pragma library + +Qt.include("Utils.js"); +Qt.include("UIConstants.js"); + +var popup = null; + +function init(item) +{ + if (popup != null) + return true; + + var root = findRootItem(item); + + // create root popup + var component = Qt.createComponent("EditBubble.qml"); + + // due the pragma we cannot access Component.Ready + if (component) + popup = component.createObject(root); + + return popup != null; +} + +/* + Open a shared edit bubble for a given input item. + + All operations and changes will be binded to the + given item. +*/ +function open(input,position) +{ + if (!input) + return false; + + if (!init(input)) + return false; + + // Position when text not selected. + popup.position = position; + + // need to set before checking capabilities + popup.textInput = input; + + if (popup.valid) + popup.state = "opened"; + else + popup.textInput = null; + + return popup.textInput != null; +} + +/* + Close the shared edit bubble for a given input item. +*/ +function close(input) +{ + if (!popup || !input || popup.textInput != input) + return false; + + return closePopup(popup); +} + +/* + Check if the shared edit bubble is opened for the + given input item. +*/ +function isOpened(input) +{ + return (popup && popup.textInput == input); +} + +/* + Check if the bubble is in the middle of a text + change operation. +*/ +function isChangingInput() +{ + return (popup && popup.privateRect.changingText); +} + +/* + Close a given edit bubble. +*/ +function closePopup(bubble) +{ + if (bubble == null || bubble.textInput == null) + return false; + + bubble.state = "closed"; + bubble.textInput = null; + return true; +} + +/* + Adjust EditBubble position to fit in the visible area. + + If no argument is passed, it will adjust the shared + bubble position if already initialized. +*/ +function adjustPosition(bubble) +{ + if (bubble === undefined) + bubble = popup; + + if (bubble == null) + return; + + var input = bubble.textInput; + var rect = bubble.privateRect; + var viewport = rect.parent; + + if (viewport == null || input == null) + return; + + var irect = input.positionToRectangle(input.selectionStart); + var frect = input.positionToRectangle(input.selectionEnd); + var mid = rect.width / 2; + + if (input.selectionStart == input.selectionEnd) { + irect.x = popup.position.x; + irect.y = popup.position.y; + frect.x = popup.position.x; + frect.y = popup.position.y; + } + + var ipoint = viewport.mapFromItem(input, irect.x, irect.y); + var fpoint = viewport.mapFromItem(input, frect.x, frect.y); + + var px = ipoint.x + (fpoint.x - ipoint.x) / 2 - mid; + var py = ipoint.y - rect.height; + + var SHADOW_SIZE = 6 + + rect.x = Math.min(Math.max(px, MARGIN_XLARGE - SHADOW_SIZE), viewport.width - rect.width); + + if (py > SHADOW_SIZE) { + rect.y = py - SHADOW_SIZE; + rect.arrowDown = true; + } else { + rect.y = Math.min(Math.max(ipoint.y + irect.height, 0), + fpoint.y + frect.height); + rect.arrowDown = false; + } + + var boundX = mid - rect.arrowBorder; + rect.arrowOffset = Math.min(Math.max(-boundX, px - rect.x), boundX); +} + +function updateButtons(row) +{ + var children = row.children; + var visibleItems = new Array(); + + for (var i = 0, j = 0; i < children.length; i++) { + var child = children[i]; + + if (child.visible) + visibleItems[j++] = child; + } + + for (var i = 0; i < visibleItems.length; i++) { + if (visibleItems.length == 1) + visibleItems[i].platformStyle.position = ""; + else { + if (i == 0) + visibleItems[i].platformStyle.position = "horizontal-left"; + else if (i == visibleItems.length - 1) + visibleItems[i].platformStyle.position = "horizontal-right"; + else + visibleItems[i].platformStyle.position = "horizontal-center"; + } + } +} + +function geometry() +{ + if (popup == null) + return; + + var bubbleContent = popup.privateRect; + var rect = {"left": bubbleContent.pos.x, + "right": bubbleContent.pos.x + bubbleContent.width, + "top": bubbleContent.pos.y, + "bottom": bubbleContent.pos.y + bubbleContent.height}; + + return rect; +} diff --git a/mardrone/imports/com/meego/EditBubble.qml b/mardrone/imports/com/meego/EditBubble.qml new file mode 100644 index 0000000..53b8252 --- /dev/null +++ b/mardrone/imports/com/meego/EditBubble.qml @@ -0,0 +1,218 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "Utils.js" as Utils +import "EditBubble.js" as Private + +Item { + id: bubble + + property Item textInput: null + property bool valid: rect.canCut || rect.canCopy || rect.canPaste + + property alias privateRect: rect + + property Style platformStyle: EditBubbleStyle {} + + property variant position: Qt.point(0,0) + + anchors.fill: parent + + Item { + id: rect + visible: false + width: row.width + height: row.height + + property int arrowOffset: 0 + property int arrowBorder: platformStyle.arrowMargin + property bool arrowDown: true + property bool changingText: false + property bool pastingText: false + + property bool validInput: textInput != null + property bool canCut: rect.canCopy && !textInput.readOnly + + // TextEdit will have echoMode == null + property bool canCopy: textSelected && (textInput.echoMode == null || textInput.echoMode == TextInput.Normal) + property bool canPaste: validInput && (textInput.canPaste && !textInput.readOnly) + property bool textSelected: validInput && (textInput.selectedText != "") + + z: 1020 + + onWidthChanged: { + if (rect.visible) + Private.adjustPosition(bubble); + } + + onHeightChanged: { + if (rect.visible) + Private.adjustPosition(bubble); + } + + BasicRow { + id: row + Component.onCompleted: Private.updateButtons(row); + + EditBubbleButton { + id: buttonCut + text: textTranslator.translate("qtn_comm_cut"); + visible: rect.canCut + onClicked: { + rect.changingText = true; + textInput.cut(); + rect.changingText = false; + Private.closePopup(bubble); + } + onVisibleChanged: Private.updateButtons(row); + } + + EditBubbleButton { + id: buttonCopy + text: textTranslator.translate("qtn_comm_copy"); + visible: rect.canCopy + onClicked: { + textInput.copy(); + Private.closePopup(bubble); + } + onVisibleChanged: Private.updateButtons(row); + } + + EditBubbleButton { + id: buttonPaste + text: textTranslator.translate("qtn_comm_paste"); + visible: rect.canPaste + onClicked: { + rect.changingText = true; + if (textInput.inputMethodComposing) { + var cursorAdjust = textInput.preedit.length - textInput.preeditCursorPosition; + inputContext.reset(); + textInput.cursorPosition -= cursorAdjust; + } + rect.pastingText = true; + var text = textInput.text; + textInput.paste(); + // PastingText is set to false and clipboard is cleared if we catch onTextChanged + if (rect.pastingText && text == textInput.text) { + var root = Utils.findRootItemNotificationBanner(textInput); + + // create notification banner + var bannerInstance = notificationBanner.createObject(root); + bannerInstance.show(); + bannerInstance.timerEnabled = true; + rect.pastingText = false; + } + rect.changingText = false; + Private.closePopup(bubble); + } + + onVisibleChanged: Private.updateButtons(row); + } + + Component { + id : notificationBanner + NotificationBanner{ + id: errorBannerPrivate + text: textTranslator.translate("qtn_comm_cantpaste"); + timerShowTime: 5*1000 + topMargin: 8 + leftMargin: 8 + } + } + } + + Image { + source: platformStyle.bottomTailBackground + visible: rect.arrowDown && bubble.valid + + anchors.bottom: row.bottom + anchors.horizontalCenter: row.horizontalCenter + anchors.horizontalCenterOffset: rect.arrowOffset + } + + Image { + source: platformStyle.topTailBackground + visible: !rect.arrowDown && bubble.valid + + anchors.bottom: row.top + anchors.bottomMargin: -platformStyle.backgroundMarginBottom - 2 + + anchors.horizontalCenter: row.horizontalCenter + anchors.horizontalCenterOffset: rect.arrowOffset + } + } + + state: "closed" + + states: [ + State { + name: "opened" + ParentChange { target: rect; parent: Utils.findRootItem(textInput); } + PropertyChanges { target: rect; visible: true; } + }, + State { + name: "closed" + ParentChange { target: rect; parent: bubble; } + PropertyChanges { target: rect; visible: false; } + } + ] + + Connections { + target: Utils.findFlickable(textInput) + onContentYChanged: Private.adjustPosition(bubble) + } + + Connections { + target: screen + onCurrentOrientationChanged: Private.adjustPosition(bubble) + } + + Connections { + target: textInput + onTextChanged: { + if (rect.pastingText) { + inputContext.clearClipboard(); + rect.pastingText = false; + } + } + } +} diff --git a/mardrone/imports/com/meego/EditBubbleButton.qml b/mardrone/imports/com/meego/EditBubbleButton.qml new file mode 100644 index 0000000..4e591e4 --- /dev/null +++ b/mardrone/imports/com/meego/EditBubbleButton.qml @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +BorderImage { + id: button + + signal clicked() + property alias text: label.text + property bool selected: false + + property Style platformStyle: EditBubbleButtonStyle {} + + width: label.width + platformStyle.buttonPaddingLeft + + platformStyle.buttonPaddingRight + + platformStyle.backgroundMarginLeft + + platformStyle.backgroundMarginRight + height: platformStyle.buttonHeight + + platformStyle.backgroundMarginTop + + platformStyle.backgroundMarginBottom + + source: { + if (mouseArea.pressed) + return platformStyle.pressedBackground; + + // XXX: meegotouch-text-editor-selected image is missing + if (selected && platformStyle.position != "") + return platformStyle.checkedBackground; + else + return platformStyle.background; + } + + border { + left: platformStyle.backgroundMarginLeft + top: platformStyle.backgroundMarginTop + right: platformStyle.backgroundMarginRight + bottom: platformStyle.backgroundMarginBottom + } + + Text { + id: label + anchors.centerIn: parent + + color: platformStyle.textColor + + font.family: platformStyle.fontFamily + font.weight: platformStyle.fontWeight + font.pixelSize: platformStyle.fontPixelSize + font.capitalization: platformStyle.fontCapitalization + + style: platformStyle.textStyle + styleColor: platformStyle.textStyleColor + } + + MouseArea { + id: mouseArea + enabled: button.enabled + anchors { + fill: parent + leftMargin: platformStyle.mouseMarginLeft + topMargin: platformStyle.mouseMarginTop + rightMargin: platformStyle.mouseMarginRight + bottomMargin: platformStyle.mouseMarginBottom + } + } + Component.onCompleted: mouseArea.clicked.connect(clicked) +} diff --git a/mardrone/imports/com/meego/EditBubbleButtonStyle.qml b/mardrone/imports/com/meego/EditBubbleButtonStyle.qml new file mode 100644 index 0000000..5f4b354 --- /dev/null +++ b/mardrone/imports/com/meego/EditBubbleButtonStyle.qml @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + // Font + property string fontFamily: UI.FONT_FAMILY + property int fontPixelSize: UI.FONT_DEFAULT_SIZE + property int fontCapitalization: Font.MixedCase + property int fontWeight: Font.Normal + + // Text + property color textColor: "black" + property int textStyle: Text.Sunken + property color textStyleColor: "#111111" + + // Dimensions + property int buttonWidth: 40 // DEPRECATED + property int buttonPaddingLeft: 8 + property int buttonPaddingRight: 8 + property int buttonHeight: 56 + + // Mouse + property real mouseMarginLeft: (position == "horizontal-left") ? 6 : 0 + property real mouseMarginTop: 8 + property real mouseMarginRight: (position == "horizontal-right") ? 6 : 0 + property real mouseMarginBottom: 10 + + // Background + property int backgroundMarginLeft: 19 + property int backgroundMarginTop: 15 + property int backgroundMarginRight: 19 + property int backgroundMarginBottom: 15 + + // Position can take one of the following values: + // [horizontal-left] [horizontal-center] [horizontal-right] + property string position: "" + + property string __suffix: (position ? "-" + position : "") + + property url background: "image://theme/meegotouch-text-editor" + __suffix + property url pressedBackground: "image://theme/meegotouch-text-editor-pressed" + __suffix + property url checkedBackground: "image://theme/meegotouch-text-editor-selected" + __suffix +} diff --git a/mardrone/imports/com/meego/EditBubbleStyle.qml b/mardrone/imports/com/meego/EditBubbleStyle.qml new file mode 100644 index 0000000..e0ed23b --- /dev/null +++ b/mardrone/imports/com/meego/EditBubbleStyle.qml @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Style { + // Mouse + property real mouseMarginLeft: 6 + property real mouseMarginTop: 8 + property real mouseMarginRight: 6 + property real mouseMarginBottom: 10 + + // Background + property int backgroundMarginLeft: 0 + property int backgroundMarginTop: 0 + property int backgroundMarginRight: 0 + property int backgroundMarginBottom: 14 // XXX: need to crop images + + property int arrowMargin: 16 // XXX: need to crop images + + // Images + property url topTailBackground: "image://theme/meegotouch-text-editor-top-tail" + property url bottomTailBackground: "image://theme/meegotouch-text-editor-bottom-tail" +} diff --git a/mardrone/imports/com/meego/Fader.qml b/mardrone/imports/com/meego/Fader.qml new file mode 100644 index 0000000..aeeb4e1 --- /dev/null +++ b/mardrone/imports/com/meego/Fader.qml @@ -0,0 +1,202 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +// Background dimming +Rectangle { + id: faderBackground + + property double dim: 0.9 + property int fadeInDuration: 250 + property int fadeOutDuration: 250 + + property int fadeInDelay: 0 + property int fadeOutDelay: 0 + + property int fadeInEasingType: Easing.InQuint + property int fadeOutEasingType: Easing.OutQuint + + property url background: "" + + property Item visualParent: null + property Item originalParent: parent + + // widen the edges to avoid artefacts during rotation + anchors.topMargin: -1 + anchors.rightMargin: -1 + anchors.bottomMargin: -1 + anchors.leftMargin: -1 + + // opacity is passed to child elements - that is not, what we want + // so we need to use alpha value here + property double alpha: dim + + signal privateClicked + + //Deprecated, TODO Remove the following two lines on w13 + signal clicked + onClicked: privateClicked() + + // we need the possibility to fetch the red, green, blue components from a color + // see http://bugreports.qt.nokia.com/browse/QTBUG-14731 + color: background != "" ? "transparent" : Qt.rgba(0.0, 0.0, 0.0, alpha) + state: 'hidden' + + anchors.fill: parent + + // eat mouse events + MouseArea { + id: mouseEventEater + anchors.fill: parent + enabled: faderBackground.alpha != 0.0 + onClicked: { parent.privateClicked() } + } + + Component { + id: backgroundComponent + BorderImage { + id: backgroundImage + source: background + + width: faderBackground.width + height: faderBackground.height + + opacity: faderBackground.alpha + } + } + Loader {id: backgroundLoader} + + onAlphaChanged: { + if (background && faderBackground.alpha && backgroundLoader.sourceComponent == undefined) { + backgroundLoader.sourceComponent = backgroundComponent; + } + if (!faderBackground.alpha) { + backgroundLoader.sourceComponent = undefined; + } + } + + function findRoot() { + var next = parent; + + if (next != null) { + while (next.parent) { + if(next.objectName == "appWindowContent" || next.objectName == "windowContent"){ + break + } + + next = next.parent; + } + } + return next; + } + + + states: [ + State { + name: "visible" + PropertyChanges { + target: faderBackground + alpha: dim + } + }, + State { + name: "hidden" + PropertyChanges { + target: faderBackground + alpha: 0.0 + } + } + ] + + transitions: [ + Transition { + from: "hidden"; to: "visible" + //reparent fader whenever it is going to be visible + SequentialAnimation { + ScriptAction {script: { + //console.log("=============00============="); + // the algorithm works in the following way: + // First: Check if visualParent property is set; if yes, center the fader in visualParent + // Second: If not, center inside window content element + // Third: If no window was found, use root window + originalParent = faderBackground.parent; + if (visualParent != null) { + faderBackground.parent = visualParent + } else { + var root = findRoot(); + if (root != null) { + faderBackground.parent = root; + } else { + // console.log("Error: Cannot find root"); + } + } + } + } + PauseAnimation { duration: fadeInDelay } + + NumberAnimation { + properties: "alpha" + duration: faderBackground.fadeInDuration + easing.type: faderBackground.fadeInEasingType; + } + } + }, + Transition { + from: "visible"; to: "hidden" + SequentialAnimation { + PauseAnimation { duration: fadeOutDelay } + + NumberAnimation { + properties: "alpha" + duration: faderBackground.fadeOutDuration + easing.type: faderBackground.fadeOutEasingType; + } + ScriptAction {script: { + faderBackground.parent = originalParent; + } + } + } + } + ] +} + + + diff --git a/mardrone/imports/com/meego/GroupButtonStyle.qml b/mardrone/imports/com/meego/GroupButtonStyle.qml new file mode 100644 index 0000000..52e90ed --- /dev/null +++ b/mardrone/imports/com/meego/GroupButtonStyle.qml @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +ButtonStyle { + // This style is deprecated and will be removed + Component.onCompleted: print("GroupButtonStyle has been deprecated, please use ButtonStyle instead.") +} diff --git a/mardrone/imports/com/meego/Label.qml b/mardrone/imports/com/meego/Label.qml new file mode 100644 index 0000000..f83312a --- /dev/null +++ b/mardrone/imports/com/meego/Label.qml @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Text { + id: root + + // Styling for the Button + property Style platformStyle: LabelStyle{} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + font.family: platformStyle.fontFamily + font.pixelSize: platformStyle.fontPixelSize + color: platformStyle.textColor + + wrapMode: Text.Wrap +} diff --git a/mardrone/imports/com/meego/LabelStyle.qml b/mardrone/imports/com/meego/LabelStyle.qml new file mode 100644 index 0000000..f11cf29 --- /dev/null +++ b/mardrone/imports/com/meego/LabelStyle.qml @@ -0,0 +1,51 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + // Color + property color textColor: inverted? UI.COLOR_INVERTED_FOREGROUND : UI.COLOR_FOREGROUND + + // Font + property string fontFamily: UI.FONT_FAMILY + property int fontPixelSize: UI.FONT_DEFAULT_SIZE +} diff --git a/mardrone/imports/com/meego/Magnifier.js b/mardrone/imports/com/meego/Magnifier.js new file mode 100644 index 0000000..a262709 --- /dev/null +++ b/mardrone/imports/com/meego/Magnifier.js @@ -0,0 +1,102 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +.pragma library + +Qt.include("Utils.js"); + +var popup = null; + +function init(item) +{ + if (popup != null) + return true; + + var root = findRootItem(item); + + // create root popup + var component = Qt.createComponent("Magnifier.qml"); + + // due the pragma we cannot access Component.Ready + if (component) + popup = component.createObject(root); + + return popup != null; +} + +/* + Open a shared magnifier for a given input item. + + input item will be used as a sourceItem for the shader + effect +*/ +function open(input) +{ + if (!input) + return false; + + if (!init(input)) + return false; + + popup.sourceItem = input; + popup.active = true; + return true; +} + +/* + Check if the shared magnifier is opened +*/ +function isOpened() +{ + return (popup && popup.active); +} + +/* + Close and destroy the magnifier. +*/ +function close() +{ + if (popup){ + popup.active = false; + popup.destroy(); + popup = null; + } +} + diff --git a/mardrone/imports/com/meego/Magnifier.qml b/mardrone/imports/com/meego/Magnifier.qml new file mode 100644 index 0000000..cacdaa6 --- /dev/null +++ b/mardrone/imports/com/meego/Magnifier.qml @@ -0,0 +1,170 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Item { + id: root + + property alias sourceItem: effectSource.sourceItem + property real xCenter: 0 // in source item coordinates + property real yCenter: 0 // in source item coordinates + + // Source rect is not as small as it can be as there is drawing problems + // with small source rect/texture size. + property real _realScaleFactor: 1.25 + property real _sourceRectMultiplier: 2 + + property bool active: false + + visible: active + width: 182 + height: 211 + z: Number.MAX_VALUE + + function __rootElement() { + var ret = parent + while (ret.parent) { + ret = ret.parent + } + return ret + } + + Component.onCompleted: { + sourceItem = parent; + declarativeView.setFullViewportMode(root); + } + + ShaderEffectSource { + id: effectSource + sourceRect: Qt.rect(root.xCenter - textureSize.width / 2, + root.yCenter - textureSize.height / 2, + textureSize.width, + textureSize.height); + textureSize: Qt.size(root._sourceRectMultiplier * root.width, + root._sourceRectMultiplier * root.height); + + hideSource: false + smooth: true + + property real scaleFactor: root._sourceRectMultiplier * root._realScaleFactor + } + + Image { + id: magnifierFrameImage + source: "/usr/share/themes/blanco/meegotouch/images/theme/basement/meegotouch-virtual-keyboard/meegotouch-seattle-magnifier-frame.png" + } + + ShaderEffectSource { + id: magnifierFrame + sourceItem: magnifierFrameImage + hideSource: true + live: false + } + + Image { + id: magnifierMaskImage + source: "/usr/share/themes/blanco/meegotouch/images/theme/basement/meegotouch-virtual-keyboard/meegotouch-seattle-magnifier-frame-mask.png" + } + + ShaderEffectSource { + id: magnifierMask + sourceItem: magnifierMaskImage + hideSource: true + live: false + } + + ShaderEffectItem { + id: magnifier + anchors.fill:parent + visible: root.visible + + vertexShader: " + attribute highp vec4 qt_Vertex; + attribute highp vec2 qt_MultiTexCoord0; + uniform highp mat4 qt_ModelViewProjectionMatrix; + uniform highp float scaleFactor; + varying highp vec2 qt_TexCoord0; + varying highp vec2 qt_TexCoord1; + void main() { + qt_TexCoord0.x = 0.5 - 1. / (2. * scaleFactor) + qt_MultiTexCoord0.x / scaleFactor; + qt_TexCoord0.y = 0.5 - 1. / (2. * scaleFactor) + qt_MultiTexCoord0.y / scaleFactor; + qt_TexCoord1 = qt_MultiTexCoord0; + gl_Position = qt_ModelViewProjectionMatrix * qt_Vertex; + }"; + + fragmentShader: " + varying highp vec2 qt_TexCoord0; + varying highp vec2 qt_TexCoord1; + uniform lowp sampler2D source; + uniform lowp sampler2D frame; + uniform lowp sampler2D mask; + void main() { + lowp vec4 frame_c = texture2D(frame, qt_TexCoord1); + lowp vec4 mask_c = texture2D(mask, qt_TexCoord1); + lowp vec4 color_c = texture2D(source, qt_TexCoord0); + bool outsideElement=(qt_TexCoord0.s<0. || qt_TexCoord0.s>1. || qt_TexCoord0.t<0. || qt_TexCoord0.t>1.); + bool onGlass=(mask_c.a==1.); + + if (outsideElement) { + // make white outside the element + color_c=vec4(1.,1.,1.,1.); + } else if (onGlass) { + // blend premultiplied texture with pure white (background) + color_c = color_c + vec4(1.,1.,1.,1.) * (1.-color_c.a); + } + + if ( qt_TexCoord1.y >= 0.98 ) { + // Top part of item above visible magnifier frame is made + // transparent explicitly to prevent showing of wrongly + // colored pixels, which would otherwise appear sometimes + // when using sourceRect functionality. + gl_FragColor = vec4(0.,0.,0.,0.); + } else { + gl_FragColor = onGlass ? color_c : frame_c; + } + }"; + + property variant source: effectSource + property variant frame: magnifierFrame + property variant mask: magnifierMask + property real scaleFactor: effectSource.scaleFactor; + } +} diff --git a/mardrone/imports/com/meego/Menu.qml b/mardrone/imports/com/meego/Menu.qml new file mode 100644 index 0000000..97be478 --- /dev/null +++ b/mardrone/imports/com/meego/Menu.qml @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +AbstractMenu { + id: root +/* + platformTitle: BorderImage { + id: topDivider + anchors.left: parent.left + anchors.right: parent.right + height: 2 + source: "" // "image://theme/meegotouch-button-objectmenu-background-vertical-top" + border { top: 2; bottom: 1; left: 1; right: 1 } + } +*/ + + __statesWrapper.transitions: [ + Transition { + from: "visible"; to: "hidden" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "hidden"; + root.status = DialogStatus.Closing; + } + } + + NumberAnimation {target: __menuPane; + property: screen.currentOrientation == Screen.Portrait ? "anchors.bottomMargin" : "anchors.rightMargin"; + easing.type: Easing.InOutQuint; + to: screen.currentOrientation == Screen.Portrait ? -__menuPane.height : -__menuPane.width; + from: 0; duration: 350} + + NumberAnimation {target: __menuPane; property: "opacity"; + from: 1.0; to: 0.0; duration: 0} + + ScriptAction {script: { + status = DialogStatus.Closed; + } + } + } + }, + Transition { + from: "hidden"; to: "visible" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "visible"; + root.status = DialogStatus.Opening; + __menuPane.anchors.rightMargin = 0; + __menuPane.anchors.bottomMargin = 0; + } + } + + NumberAnimation {target: __menuPane; + property: screen.currentOrientation == Screen.Portrait ? "anchors.bottomMargin" : "anchors.rightMargin"; + easing.type: Easing.InOutQuint; + from: screen.currentOrientation == Screen.Portrait ? -__menuPane.height : -__menuPane.width; + to: 0; duration: 350} + + ScriptAction {script: { + status = DialogStatus.Open; + } + } + } + } + ] +} diff --git a/mardrone/imports/com/meego/MenuItem.qml b/mardrone/imports/com/meego/MenuItem.qml new file mode 100644 index 0000000..8afe325 --- /dev/null +++ b/mardrone/imports/com/meego/MenuItem.qml @@ -0,0 +1,118 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// MenuItem is a component that is used in menus. + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +Item { + id: root + + // Common API + property string text + signal clicked + property alias pressed: mouseArea.pressed + + // platformStyle API + property Style platformStyle: MenuItemStyle{ + position: root.parent.children.length == 1 ? "" + : root.parent.children[0] == root ? "vertical-top" + : root.parent.children[root.parent.children.length-1] == root ? "vertical-bottom" + : "vertical-center" + } + property alias style: root.platformStyle // Deprecated + + width: parent ? parent.width: 0 + height: ( root.platformStyle.height == 0 ) ? + root.platformStyle.topMargin + menuText.paintedHeight + root.platformStyle.bottomMargin : + root.platformStyle.topMargin + root.platformStyle.height + root.platformStyle.bottomMargin +/* + Rectangle { + id: backgroundRec + // ToDo: remove hardcoded values + color: pressed ? "darkgray" : "transparent" + anchors.fill : root + opacity : 0.5 + } +*/ + BorderImage { + id: backgroundImage + source: // !enabled ? root.platformStyle.disabledBackground : + pressed ? root.platformStyle.pressedBackground + : root.platformStyle.background + anchors.fill : root + border { left: 22; top: 22; + right: 22; bottom: 22 } + } + + Text { + id: menuText + text: parent.text + elide: Text.ElideRight + font.family : root.platformStyle.fontFamily + font.pixelSize : root.platformStyle.fontPixelSize + font.weight: root.platformStyle.fontWeight + color: !root.enabled ? root.platformStyle.disabledTextColor : + root.pressed ? root.platformStyle.pressedTextColor : + root.platformStyle.textColor + + anchors.topMargin : root.platformStyle.topMargin + anchors.bottomMargin : root.platformStyle.bottomMargin + anchors.leftMargin : root.platformStyle.leftMargin + anchors.rightMargin : root.platformStyle.rightMargin + + anchors.top : root.platformStyle.centered ? undefined : root.top + anchors.bottom : root.platformStyle.centered ? undefined : root.bottom + anchors.left : root.left + anchors.right : root.right +// anchors.centerIn : parent.centerIn + anchors.verticalCenter : root.platformStyle.centered ? parent.verticalCenter : undefined + } + + MouseArea { + id: mouseArea + anchors.fill: parent + onClicked: { if (parent.enabled) parent.clicked();} + } + + onClicked: if (parent) parent.closeLayout(); +} diff --git a/mardrone/imports/com/meego/MenuItemStyle.qml b/mardrone/imports/com/meego/MenuItemStyle.qml new file mode 100644 index 0000000..6e64788 --- /dev/null +++ b/mardrone/imports/com/meego/MenuItemStyle.qml @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + id: root + // Font + property string fontFamily: UI.FONT_FAMILY + property int fontPixelSize: 26 // UI.FONT_DEFAULT_SIZE + property int fontCapitalization: Font.MixedCase + property int fontWeight: Font.Bold + property int height: 80 + + // Text Color + property color textColor: inverted ? UI.COLOR_BUTTON_INVERTED_FOREGROUND : UI.COLOR_BUTTON_FOREGROUND + property color pressedTextColor: inverted ? UI.COLOR_BUTTON_INVERTED_FOREGROUND : UI.COLOR_BUTTON_FOREGROUND + property color disabledTextColor: "#797979" + property color checkedTextColor: UI.COLOR_INVERTED_FOREGROUND + + property real leftMargin: 24 + property real rightMargin: 24 + property real topMargin: 0 + property real bottomMargin: 0 + property bool centered: true + + property string position: "" + + property url background: "image://theme/meegotouch-list" + __invertedString + "-background" + (position ? "-" + position : "") + property url pressedBackground: "image://theme/meegotouch-list" + __invertedString + "-background-pressed" + (position ? "-" + position : "") +// TODO: Add disabled state once the graphics are available +// property url disabledBackground: "image://theme/meegotouch-list" + __invertedString + "-background-disabled" + (position ? "-" + position : "") +} diff --git a/mardrone/imports/com/meego/MenuLayout.qml b/mardrone/imports/com/meego/MenuLayout.qml new file mode 100644 index 0000000..5731014 --- /dev/null +++ b/mardrone/imports/com/meego/MenuLayout.qml @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." + +Item { + id: root + anchors.left: parent!==undefined?parent.left:undefined + anchors.right: parent!==undefined?parent.right:undefined + height: menuItemColumn.height + + default property alias menuChildren: menuItemColumn.children + + Column { + id: menuItemColumn + + anchors.left: parent.left + anchors.right: parent.right + height: childrenRect.height + + function closeLayout() { + root.parent.closeMenu(); + } + } +} diff --git a/mardrone/imports/com/meego/MenuStyle.qml b/mardrone/imports/com/meego/MenuStyle.qml new file mode 100644 index 0000000..8e95483 --- /dev/null +++ b/mardrone/imports/com/meego/MenuStyle.qml @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.1 + +Style { + id: root + + property real leftMargin: ( (screen.currentOrientation == 1) || + (screen.currentOrientation == 4) ) ? 0 : 427 + property real rightMargin: ( (screen.currentOrientation == 1) || + (screen.currentOrientation == 4) ) ? 0 : 0 + property real topMargin: ( (screen.currentOrientation == 1) || + (screen.currentOrientation == 4) ) ? 246 : 0 + + property real bottomMargin: 0 + + property real leftPadding: 16 + property real rightPadding: 16 + property real topPadding: 16 + property real bottomPadding: 16 + + // fader properties + property double dim: 0.9 + property int fadeInDuration: 350 // ms + property int fadeOutDuration: 350 // ms + property int fadeInDelay: 0 // ms + property int fadeOutDelay: 0 // ms + property int fadeInEasingType: Easing.InOutQuint + property int fadeOutEasingType: Easing.InOutQuint + property url faderBackground: "image://theme/meegotouch-menu-dimmer" + + property int pressDelay: 0 // ms + + property url background: "image://theme/meegotouch-menu-background" + __invertedString +// property url pressedBackground: "image://theme/meegotouch-menu" + __invertedString + "-background-pressed" +// property url disabledBackground: "image://theme/meegotouch-menu" + __invertedString + "-background-disabled" +} diff --git a/mardrone/imports/com/meego/MouseAreaDebug.qml b/mardrone/imports/com/meego/MouseAreaDebug.qml new file mode 100644 index 0000000..912b6d0 --- /dev/null +++ b/mardrone/imports/com/meego/MouseAreaDebug.qml @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Rectangle { + color: "#FCBD00" + opacity: 0.5 + anchors { + fill: parent + topMargin: parent.platformMouseAnchors.topMargin + bottomMargin: parent.platformMouseAnchors.bottomMargin + leftMargin: parent.platformMouseAnchors.leftMargin + rightMargin: parent.platformMouseAnchors.rightMargin + } +} diff --git a/mardrone/imports/com/meego/MultiSelectionDialog.js b/mardrone/imports/com/meego/MultiSelectionDialog.js new file mode 100644 index 0000000..efcad73 --- /dev/null +++ b/mardrone/imports/com/meego/MultiSelectionDialog.js @@ -0,0 +1,114 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +function __isSelected( index ){ + return __selectedIndexesHash[index]==true; +} + +function __syncHash(){ + var selectedIndexesHash = new Array() + var il = selectedIndexes.length; + for( var it = 0; it < il; ++it ){ + selectedIndexesHash[selectedIndexes[it]]=true; + } + __selectedIndexesHash = selectedIndexesHash +} + +function __toggleIndex( index ){ + // A QML list can not be modified, so let's create a new array + var selectedArray = new Array; + + var il = selectedIndexes.length; + + // If selectedIndexes is empty then add the index and return. + if ( il == 0 ){ + selectedArray.push(index); + selectedIndexes = selectedArray; + return; + } + + // Check whether the list is sorted. + var isSorted = true; + var previousIndex = -1; + + for( var it = 0; it < il; ++it ){ + if ( previousIndex > selectedIndexes[it] ){ + isSorted = false; + break; + } + previousIndex = selectedIndexes[it]; + } + + if (!isSorted){ + // For unsorted selectedIndexes just append the index if it's not present yet. + var indexAvailable = false; + for( var it = 0; it < il; ++it ) { + if ( index == selectedIndexes[it] ){ + indexAvailable = true; + } + else { + selectedArray.push(selectedIndexes[it]); + } + } + if (!indexAvailable){ + selectedArray.push(index); + } + } + else{ + previousIndex = -1; + // insert the index in a sorted way in between the existing indexes + for( var it = 0; it < il; ++it ) { + if ( previousIndex < index && index < selectedIndexes[it] ) { + selectedArray.push(index); + } + if ( index != selectedIndexes[it] ) { + selectedArray.push(selectedIndexes[it]); + } + + previousIndex = selectedIndexes[it]; + } + // If the index is the highest one append it + if (index > selectedIndexes[selectedIndexes.length - 1]){ + selectedArray.push(index); + } + } + // Assign the new built array to selectedIndexes + selectedIndexes = selectedArray; +} diff --git a/mardrone/imports/com/meego/MultiSelectionDialog.qml b/mardrone/imports/com/meego/MultiSelectionDialog.qml new file mode 100644 index 0000000..827a8b0 --- /dev/null +++ b/mardrone/imports/com/meego/MultiSelectionDialog.qml @@ -0,0 +1,233 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI +import "MultiSelectionDialog.js" as MultiSelectionDialog + +CommonDialog { + id: root + + property alias model: selectionListView.model + // Common API: property list selectedIndexes (currently not possible due to QTBUG-10822) + property variant selectedIndexes: [] // read & write, variant is supposed to be list + property alias acceptButtonText: acceptButton.text //Convenience wrapper on top of the buttons + property alias rejectButtonText: rejectButton.text //Convenience wrapper on top of the buttons + //property alias titleText: titleLabel.text + + property Component delegate: // Note that this is the default delegate for the list + Component { + id: defaultDelegate + + Item { + id: delegateItem + + height: root.platformStyle.itemHeight + anchors.left: parent.left + anchors.right: parent.right + + MouseArea { + id: delegateMouseArea + anchors.fill: parent; + onPressed: MultiSelectionDialog.__toggleIndex(index); + } + + Rectangle { + id: backgroundRect + anchors.fill: parent + color: MultiSelectionDialog.__isSelected(index) ? root.platformStyle.itemSelectedBackgroundColor : root.platformStyle.itemBackgroundColor + } + + BorderImage { + id: background + anchors.fill: parent + border { left: UI.CORNER_MARGINS; top: UI.CORNER_MARGINS; right: UI.CORNER_MARGINS; bottom: UI.CORNER_MARGINS } + source: delegateMouseArea.pressed ? root.platformStyle.itemPressedBackground : + MultiSelectionDialog.__isSelected(index) ? root.platformStyle.itemSelectedBackground : + root.platformStyle.itemBackground + } + + Text { + id: itemText + elide: Text.ElideRight + color: MultiSelectionDialog.__isSelected(index) ? root.platformStyle.itemSelectedTextColor : root.platformStyle.itemTextColor + anchors.verticalCenter: delegateItem.verticalCenter + anchors.left: parent.left + anchors.right: parent.right + anchors.leftMargin: root.platformStyle.itemLeftMargin + anchors.rightMargin: root.platformStyle.itemRightMargin + font: root.platformStyle.itemFont + } + Component.onCompleted: { + try { + // Legacy. "name" used to be the role which was used by delegate + itemText.text = name + } catch(err) { + try { + // "modelData" available for JS array and for models with one role + itemText.text = modelData + } catch (err) { + try { + // C++ models have "display" role available always + itemText.text = display + } catch(err) { + } + } + } + } + } + } + + // Style API + property Style platformStyle: SelectionDialogStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + // private api + property int __pressDelay: platformStyle.pressDelay + property variant __selectedIndexesHash: [] + + QtObject { + id: backup + property variant oldSelectedIndexes: [] + } + onStatusChanged: { + if (status == DialogStatus.Opening) { + selectionListView.positionViewAtIndex(selectedIndexes[0], ListView.Center) + } + if (status == DialogStatus.Open) + backup.oldSelectedIndexes = selectedIndexes + } + onRejected: { selectedIndexes = backup.oldSelectedIndexes } + + onSelectedIndexesChanged: { + MultiSelectionDialog.__syncHash(); + } + + // the title field consists of the following parts: title string and + // a close button (which is in fact an image) + // it can additionally have an icon + titleText: "Multi-Selection Dialog" + + // the content field which contains the selection content + content: Item { + + id: selectionContent + property int listViewHeight + property int maxListViewHeight : visualParent + ? visualParent.height * 0.87 + - buttonRow.childrenRect.height - root.platformStyle.contentSpacing - root.platformStyle.buttonsTopMargin + - root.platformStyle.titleBarHeight + : root.parent + ? root.parent.height * 0.87 + - buttonRow.childrenRect.height - root.platformStyle.contentSpacing - root.platformStyle.buttonsTopMargin + - root.platformStyle.titleBarHeight + : 350 + height: listViewHeight > maxListViewHeight ? maxListViewHeight : listViewHeight + width: root.width + y : root.platformStyle.contentSpacing + + ListView { + id: selectionListView + model: ListModel {} + + currentIndex : -1 + anchors.fill: parent + delegate: root.delegate + focus: true + clip: true + pressDelay: __pressDelay + + ScrollDecorator { + id: scrollDecorator + flickableItem: selectionListView + platformStyle.inverted: true + } + onModelChanged: selectionContent.listViewHeight = model.count * platformStyle.itemHeight + } + + } + + buttons: Item { + id: buttonRowFiller + width: parent.width + height: childrenRect.height //+ root.platformStyle.buttonsTopMargin + y: root.platformStyle.buttonsTopMargin + + onWidthChanged: { + if (acceptButton.width + rejectButton.width > width) { + acceptButton.width = width / 2 + rejectButton.width = width / 2 + } else { + acceptButton.width = acceptButton.implicitWidth + rejectButton.width = rejectButton.implicitWidth + } + } + + Row { + id: buttonRow + height: childrenRect.height + anchors.horizontalCenter: parent.horizontalCenter + Button { + id: acceptButton + height: implicitHeight + objectName: "acceptButton" + text: "" + onClicked: accept() + visible: text != "" + __dialogButton: true + platformStyle: ButtonStyle {inverted: true} + } + Button { + id: rejectButton + height: implicitHeight + objectName: "rejectButton" + text: "" + onClicked: reject() + visible: text != "" + __dialogButton: true + platformStyle: ButtonStyle {inverted: true} + } + } + } +} + diff --git a/mardrone/imports/com/meego/NotificationBanner.qml b/mardrone/imports/com/meego/NotificationBanner.qml new file mode 100644 index 0000000..1801fbb --- /dev/null +++ b/mardrone/imports/com/meego/NotificationBanner.qml @@ -0,0 +1,255 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +//import com.nokia.meego 1.0 + +/* + Class: InfoBanner + The InfoBanner component is used to display information to the user. The number of lines of text + shouldn't exceed 3. +*/ + +Item { + id: root + + /* + * Property: iconSource + * [url] The path to the icon image + */ + property url iconSource: "" + + /* + * Property: text + * [string] Text to be displayed in InfoBanner + */ + property alias text: text.text + + /* + * Property: timerEnabled + * [bool=true] Enable/disable timer that dismisses InfoBanner + */ + property bool timerEnabled: true + + /* + * Property: timerShowTime + * [int=3000ms] For setting how long InfoBanner stays visible to user before being dismissed + */ + property alias timerShowTime: sysBannerTimer.interval + + /* + * Property: topMargin + * [int=8 pix] Allows user to customize top margin if needed + */ + property alias topMargin: root.y + + /* + * Property: leftMargin + * [int=8 pix] Allows user to customize left margin if needed + */ + property alias leftMargin: root.x + + /* + * Function: show + * Show InfoBanner + */ + function show() { + parent = __findParent(); + animationShow.running = true; + if (root.timerEnabled) + sysBannerTimer.restart(); + } + + function __findParent() { + var next = parent; + while (next && next.parent && next.objectName != "appWindowContent") { + next = next.parent; + } + return next; + } + + /* + * Function: hide + * Hide InfoBanner + */ + function hide() { + animationHide.running = true; + } + + implicitHeight: internal.getBannerHeight() + implicitWidth: internal.getBannerWidth() + x:8; y:8 + scale: 0 + + BorderImage { + source: "image://theme/meegotouch-notification-system-background" + anchors.fill: root + horizontalTileMode: BorderImage.Stretch + verticalTileMode: BorderImage.Stretch + border { left: 10; top: 10; right: 10; bottom: 10 } + opacity: 1 + } + + Image { + id: image + anchors { left: parent.left; leftMargin: 16; top: parent.top; topMargin: 16 } + source: root.iconSource + visible: root.iconSource != "" + } + + Text { + id: text + width: internal.getTextWidth() + anchors { left: (image.visible ? image.right : parent.left); leftMargin: (image.visible ? 14:16); + top: parent.top; topMargin: internal.getTopMargin(); bottom: parent.bottom } + color: "white" + wrapMode: Text.Wrap + verticalAlignment: Text.AlignHCenter + font.pixelSize: 24 + font.family: "Nokia Pure" + font.letterSpacing: -1.2 + maximumLineCount: 3 + elide: Text.ElideRight + } + + QtObject { + id: internal + + function getBannerHeight() { + if (image.visible) { + if (text.lineCount <= 2) + return 80; + else + return 80; //106 + } else { + if (text.lineCount <= 1) + return 80; //64 + else if (text.lineCount <= 2) + return 80; + else + return 80; //106 + } + } + + function getBannerWidth() { + if ( screen.currentOrientation==Screen.Portrait || screen.currentOrientation==Screen.PortraitInverted ) { + // In portrait mode, the width of the banner is equal to the width of parent minus left + // and right margins in-between banner and parent. + return parent.width-root.x*2; + } else { + if (image.visible) { + // If an icon image is specified... + if ((image.width+text.paintedWidth+46) <= parent.width*0.54 && text.lineCount <= 1) { + // 46 is the sum of all horizontal margins within the banner. The above condition basically + // says that if there's only one line of text, and the sum of width of icon, text, and required + // margins is less then 54% of the screen width, banner width should be 54% of the screen. + return parent.width*0.54; + } else { + return parent.width-root.x*2; + } + } else { + // If no icon image specified... + if ((text.paintedWidth+32) <= parent.width*0.54 && text.lineCount <= 1) { + // 32 is the sum of all horizontal margins within the banner. The above condition basically + // says that if there's only one line of text, and the sum of width of text and required + // margins is less then 54% of the screen width, banner width should be 54% of the screen. + return parent.width-root.x*2; + } else { + return parent.width-root.x*2; + } + } + } + } + + function getTopMargin() { + if (text.lineCount <= 1 && !image.visible) { + // If there's only one line of text and no icon image, top and bottom margins are equal. + return (root.height-text.paintedHeight)/2; + } else { + // In all other cases, top margin is 4 px more than bottom margin. + return (root.height-text.paintedHeight)/2 + 2; + } + } + + function getTextWidth() { + // 46(32 when there's no icon) is sum of all margins within banner. root.x*2 is sum of margins outside banner. + // Text element width is dertermined by substracting parent width(screen width) by all the margins and + // icon width(if applicable). + return image.visible ? (parent.width-root.x*2-46-image.width) : (parent.width-root.x*2-32); + } + + function getScaleValue() { + // When banner is displayed, as part of transition effect, it'll first be enlarged to the point where its width + // is equal to screen width. root.x*2/root.width calculates the amount of expanding required, where root.x*2 is + // equal to screen.displayWidth minus banner.width + return root.x*2/root.width + 1; + } + } + + Timer { + id: sysBannerTimer + repeat: false + running: false + interval: 3000 + onTriggered: hide() + } + + MouseArea { + anchors.fill: parent + onClicked: hide() + } + + SequentialAnimation { + id: animationShow + NumberAnimation { target: root; property: "scale"; from: 0; to: internal.getScaleValue(); duration: 200; easing.type: Easing.OutQuad} + NumberAnimation { target: root; property: "scale"; from: internal.getScaleValue(); to: 1; duration: 200 } + } + + NumberAnimation { + id: animationHide + target: root; property: "scale"; to: 0; duration: 200; easing.type: Easing.InExpo + } + + Component.onCompleted: { + //__owner = parent; + } +} + diff --git a/mardrone/imports/com/meego/Page.qml b/mardrone/imports/com/meego/Page.qml new file mode 100644 index 0000000..152089c --- /dev/null +++ b/mardrone/imports/com/meego/Page.qml @@ -0,0 +1,124 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// The Page item is intended for use as a root item in QML items that make +// up pages to use with the PageStack. + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +Item { + id: root + + visible: false + + // Note we do not use anchor fill here because it will force us to relayout + // hidden children when rotating the screen as well + width: visible && parent ? parent.width - anchors.leftMargin - anchors.rightMargin : __prevWidth + height: visible && parent ? parent.height - anchors.topMargin - anchors.bottomMargin : __prevHeight + x: parent ? anchors.leftMargin : 0 + y: parent ? anchors.topMargin : 0 + + onWidthChanged: __prevWidth = visible ? width : __prevWidth + onHeightChanged: __prevHeight = visible ? height : __prevHeight + + property int __prevWidth: 0 + property int __prevHeight: 0 + + property bool __isPage: true + + anchors.margins: 0 // Page margins should generally be 16 pixels as defined by UI.MARGIN_XLARGE + + // The status of the page. One of the following: + // PageStatus.Inactive - the page is not visible + // PageStatus.Activating - the page is transitioning into becoming the active page + // PageStatus.Active - the page is the current active page + // PageStatus.Deactivating - the page is transitioning into becoming inactive + property int status: PageStatus.Inactive + + // Defines the tools for the page; null for none. + property Item tools: null + + // The page stack that the page is in. + property PageStack pageStack + + // Defines if page is locked in landscape. + property bool lockInLandscape: false // Deprecated + onLockInLandscapeChanged: console.log("warning: Page.lockInLandscape is deprecated, use Page.orientationLock") + + // Defines if page is locked in portrait. + property bool lockInPortrait: false // Deprecated + onLockInPortraitChanged: console.log("warning: Page.lockInPortrait is deprecated, use Page.orientationLock") + + // Defines orientation lock for a page + property int orientationLock: PageOrientation.Automatic + + onStatusChanged: { + if (status == PageStatus.Activating) { + __updateOrientationLock() + } + } + + onOrientationLockChanged: { + __updateOrientationLock() + } + + function __updateOrientationLock() { + switch (orientationLock) { + case PageOrientation.Automatic: + screen.setAllowedOrientations(Screen.Portrait | Screen.Landscape); + break + case PageOrientation.LockPortrait: + screen.setAllowedOrientations(Screen.Portrait); + break + case PageOrientation.LockLandscape: + screen.setAllowedOrientations(Screen.Landscape); + break + case PageOrientation.LockPrevious: + // Allowed orientation should be changed to current + // if previously it was locked, it will remain locked + // if previously it was not locked, it will be locked to current + screen.setAllowedOrientations(screen.currentOrientation); + break + } + } +} + diff --git a/mardrone/imports/com/meego/PageStack.js b/mardrone/imports/com/meego/PageStack.js new file mode 100644 index 0000000..3b560dc --- /dev/null +++ b/mardrone/imports/com/meego/PageStack.js @@ -0,0 +1,219 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// Page stack. Items are page containers. +var pageStack = []; + +// Page component cache map. Key is page url, value is page component. +var componentCache = {}; + +// Returns the page stack depth. +function getDepth() { + return pageStack.length; +} + +// Pushes a page on the stack. +function push(page, properties, replace, immediate) { + // page order sanity check + if ((!replace && page == currentPage) || + (replace && pageStack.length > 1 && page == pageStack[pageStack.length - 2].page)) { + throw new Error("Cannot navigate so that the resulting page stack has two consecutive entries of the same page instance."); + } + + // figure out if more than one page is being pushed + var pages; + if (page instanceof Array) { + pages = page; + page = pages.pop(); + if (page.createObject === undefined && page.parent === undefined && typeof page != "string") { + properties = properties || page.properties; + page = page.page; + } + } + + // get the current container + var oldContainer = pageStack[pageStack.length - 1]; + + // pop the old container off the stack if this is a replace + if (oldContainer && replace) { + pageStack.pop(); + } + + // push any extra defined pages onto the stack + if (pages) { + var i; + for (i = 0; i < pages.length; i++) { + var tPage = pages[i]; + var tProps; + if (tPage.createObject === undefined && tPage.parent === undefined && typeof tPage != "string") { + tProps = tPage.properties; + tPage = tPage.page; + } + pageStack.push(initPage(tPage, tProps)); + } + } + + // initialize the page + var container = initPage(page, properties); + + // push the page container onto the stack + pageStack.push(container); + + depth = pageStack.length; + currentPage = container.page; + + // perform page transition + immediate = immediate || !oldContainer; + if (oldContainer) { + oldContainer.pushExit(replace, immediate); + } + container.pushEnter(replace, immediate); + + // sync tool bar + var tools = container.page.tools || null; + if (toolBar) { + toolBar.setTools(tools, immediate ? "set" : replace ? "replace" : "push"); + } + + return container.page; +} + +// Initializes a page and its container. +function initPage(page, properties) { + var container = containerComponent.createObject(root); + + var pageComp; + if (page.createObject) { + // page defined as component + pageComp = page; + } else if (typeof page == "string") { + // page defined as string (a url) + pageComp = componentCache[page]; + if (!pageComp) { + pageComp = componentCache[page] = Qt.createComponent(page); + } + } + if (pageComp) { + if (pageComp.status == Component.Error) { + throw new Error("Error while loading page: " + pageComp.errorString()); + } else { + // instantiate page from component + page = pageComp.createObject(container, properties || {}); + } + } else { + // copy properties to the page + for (var prop in properties) { + if (properties.hasOwnProperty(prop)) { + page[prop] = properties[prop]; + } + } + } + + container.page = page; + container.owner = page.parent; + + // the page has to be reparented if + if (page.parent != container) { + page.parent = container; + } + + if (page.pageStack !== undefined) { + page.pageStack = root; + } + + return container; +} + +// Pops a page off the stack. +function pop(page, immediate) { + // make sure there are enough pages in the stack to pop + if (pageStack.length > 1) { + // pop the current container off the stack and get the next container + var oldContainer = pageStack.pop(); + var container = pageStack[pageStack.length - 1]; + if (page !== undefined) { + // an unwind target has been specified - pop until we find it + while (page != container.page && pageStack.length > 1) { + container.cleanup(); + pageStack.pop(); + container = pageStack[pageStack.length - 1]; + } + } + + depth = pageStack.length; + currentPage = container.page; + + // perform page transition + oldContainer.popExit(immediate); + container.popEnter(immediate); + + // sync tool bar + var tools = container.page.tools || null; + if (toolBar) { + toolBar.setTools(tools, immediate ? "set" : "pop"); + } + + return oldContainer.page; + } else { + return null; + } +} + +// Clears the page stack. +function clear() { + var container; + while (container = pageStack.pop()) { + container.cleanup(); + } + depth = 0; + currentPage = null; +} + +// Iterates through all pages in the stack (top to bottom) to find a page. +function find(func) { + for (var i = pageStack.length - 1; i >= 0; i--) { + var page = pageStack[i].page; + if (func(page)) { + return page; + } + } + return null; +} + diff --git a/mardrone/imports/com/meego/PageStack.qml b/mardrone/imports/com/meego/PageStack.qml new file mode 100644 index 0000000..97d45f2 --- /dev/null +++ b/mardrone/imports/com/meego/PageStack.qml @@ -0,0 +1,324 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// The PageStack item defines a container for pages and a stack-based +// navigation model. Pages can be defined as QML items or components. + +import QtQuick 1.1 +import "." 1.0 +import "PageStack.js" as Engine + +Item { + id: root + + width: parent ? parent.width : 0 + height: parent ? parent.height : 0 + + // Page stack depth. + property int depth: Engine.getDepth() + + // The currently active page. + property Item currentPage: null + + // The application tool bar. + property ToolBar toolBar + + // Indicates whether there is an ongoing page transition. + property bool busy: __ongoingTransitionCount > 0 + + // The number of ongoing transitions. + property int __ongoingTransitionCount: 0 + + // Pushes a page on the stack. + // The page can be defined as a component, item or string. + // If an item is used then the page will get re-parented. + // If a string is used then it is interpreted as a url that is used to load a page component. + // + // The page can also be given as an array of pages. In this case all those pages will be pushed + // onto the stack. The items in the stack can be components, items or strings just like for single + // pages. Additionally an object can be used, which specifies a page and an optional properties + // property. This can be used to push multiple pages while still giving each of them properties. + // When an array is used the transition animation will only be to the last page. + // + // The properties argument is optional and allows defining a map of properties to set on the page. + // If the immediate argument is true then no transition animation is performed. + // Returns the page instance. + function push(page, properties, immediate) { + return Engine.push(page, properties, false, immediate); + } + + // Pops a page off the stack. + // If page is specified then the stack is unwound to that page; null to unwind the to first page. + // If the immediate argument is true then no transition animation is performed. + // Returns the page instance that was popped off the stack. + function pop(page, immediate) { + return Engine.pop(page, immediate); + } + + // Replaces a page on the stack. + // See push() for details. + function replace(page, properties, immediate) { + return Engine.push(page, properties, true, immediate); + } + + // Clears the page stack. + function clear() { + return Engine.clear(); + } + + // Iterates through all pages (top to bottom) and invokes the specified function. + // If the specified function returns true the search stops and the find function + // returns the page that the iteration stopped at. If the search doesn't result + // in any page being found then null is returned. + function find(func) { + return Engine.find(func); + } + + // Called when the page stack visibility changes. + onVisibleChanged: { + if (currentPage) { + __setPageStatus(currentPage, visible ? PageStatus.Active : PageStatus.Inactive); + if (visible) { + currentPage.visible = currentPage.parent.visible = true; + } + } + } + + // Sets the page status. + function __setPageStatus(page, status) { + if (page.status !== undefined) { + if (status == PageStatus.Active && page.status == PageStatus.Inactive) { + page.status = PageStatus.Activating; + } else if (status == PageStatus.Inactive && page.status == PageStatus.Active) { + page.status = PageStatus.Deactivating; + } + page.status = status; + } + } + + // Component for page containers. + Component { + id: containerComponent + + Item { + id: container + + width: parent ? parent.width : 0 + height: parent ? parent.height : 0 + + // The states correspond to the different possible positions of the container. + state: "hidden" + + // The page held by this container. + property Item page: null + + // The owner of the page. + property Item owner: null + + // Duration of transition animation (in ms) + property int transitionDuration: 500 + + // Flag that indicates the container should be cleaned up after the transition has ended. + property bool cleanupAfterTransition: false + + // Performs a push enter transition. + function pushEnter(replace, immediate) { + if (!immediate) { + state = replace ? "front" : "right"; + } + state = ""; + page.visible = true; + if (root.visible && immediate) { + __setPageStatus(page, PageStatus.Active); + } + } + + // Performs a push exit transition. + function pushExit(replace, immediate) { + state = immediate ? "hidden" : (replace ? "back" : "left"); + if (root.visible && immediate) { + __setPageStatus(page, PageStatus.Inactive); + } + if (replace) { + if (immediate) { + cleanup(); + } else { + cleanupAfterTransition = true; + } + } + } + + // Performs a pop enter transition. + function popEnter(immediate) { + if (!immediate) { + state = "left"; + } + state = ""; + page.visible = true; + if (root.visible && immediate) { + __setPageStatus(page, PageStatus.Active); + } + } + + // Performs a pop exit transition. + function popExit(immediate) { + state = immediate ? "hidden" : "right"; + if (root.visible && immediate) { + __setPageStatus(page, PageStatus.Inactive); + } + if (immediate) { + cleanup(); + } else { + cleanupAfterTransition = true; + } + } + + // Called when a transition has started. + function transitionStarted() { + __ongoingTransitionCount++; + if (root.visible) { + __setPageStatus(page, (state == "") ? PageStatus.Activating : PageStatus.Deactivating); + } + } + + // Called when a transition has ended. + function transitionEnded() { + if (state != "") { + state = "hidden"; + } + if (root.visible) { + __setPageStatus(page, (state == "") ? PageStatus.Active : PageStatus.Inactive); + } + __ongoingTransitionCount--; + if (cleanupAfterTransition) { + cleanup(); + } + } + + states: [ + // Explicit properties for default state. + State { + name: "" + PropertyChanges { target: container; visible: true } + }, + // Start state for pop entry, end state for push exit. + State { + name: "left" + PropertyChanges { target: container; x: -width } + }, + // Start state for push entry, end state for pop exit. + State { + name: "right" + PropertyChanges { target: container; x: width } + }, + // Start state for replace entry. + State { + name: "front" + PropertyChanges { target: container; scale: 1.5; opacity: 0.0 } + }, + // End state for replace exit. + State { + name: "back" + PropertyChanges { target: container; scale: 0.5; opacity: 0.0 } + }, + // Inactive state. + State { + name: "hidden" + PropertyChanges { target: container; visible: false } + } + ] + + transitions: [ + // Pop entry and push exit transition. + Transition { + from: ""; to: "left"; reversible: true + SequentialAnimation { + ScriptAction { script: if (state == "left") { transitionStarted(); } else { transitionEnded(); } } + PropertyAnimation { properties: "x"; easing.type: Easing.InOutExpo; duration: transitionDuration } + ScriptAction { script: if (state == "left") { transitionEnded(); } else { transitionStarted(); } } + } + }, + // Push entry and pop exit transition. + Transition { + from: ""; to: "right"; reversible: true + SequentialAnimation { + ScriptAction { script: if (state == "right") { transitionStarted(); } else { transitionEnded(); } } + PropertyAnimation { properties: "x"; easing.type: Easing.InOutExpo; duration: transitionDuration } + ScriptAction { script: if (state == "right") { transitionEnded(); } else { transitionStarted(); } } + } + }, + // Replace entry transition. + Transition { + from: "front"; to: ""; + SequentialAnimation { + ScriptAction { script: transitionStarted(); } + PropertyAnimation { properties: "scale,opacity"; easing.type: Easing.InOutExpo; duration: transitionDuration } + ScriptAction { script: transitionEnded(); } + } + }, + // Replace exit transition. + Transition { + from: ""; to: "back"; + SequentialAnimation { + ScriptAction { script: transitionStarted(); } + PropertyAnimation { properties: "scale,opacity"; easing.type: Easing.InOutExpo; duration: transitionDuration } + ScriptAction { script: transitionEnded(); } + } + } + ] + + // Cleans up the container and then destroys it. + function cleanup() { + if (page.status == PageStatus.Active) { + __setPageStatus(page, PageStatus.Inactive); + } + if (owner != container) { + // container is not the owner of the page - re-parent back to original owner + page.visible = false; + page.parent = owner; + } + container.destroy(); + } + + } + } + +} + diff --git a/mardrone/imports/com/meego/PageStackWindow.qml b/mardrone/imports/com/meego/PageStackWindow.qml new file mode 100644 index 0000000..b207560 --- /dev/null +++ b/mardrone/imports/com/meego/PageStackWindow.qml @@ -0,0 +1,158 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.0 +import "." 1.0 + +Window { + id: window + + property bool showStatusBar: true + property bool showToolBar: true + property bool toolBarOnTop: false + property variant initialPage + property alias pageStack: stack + property Style platformStyle: PageStackWindowStyle{} + + //Deprecated, TODO Remove this on w13 + property alias style: window.platformStyle + + //private api + property int __statusBarHeight: showStatusBar ? statusBar.height : 0 + + objectName: "pageStackWindow" + + StatusBar { + id: statusBar + anchors.top: parent.top + width: parent.width + showStatusBar: window.showStatusBar + } + + onOrientationChangeStarted: { + statusBar.orientation = screen.currentOrientation + } + + Rectangle { + id: background + visible: platformStyle.background == "" + color: platformStyle.backgroundColor + width: window.inPortrait ? screen.displayHeight : screen.displayWidth + height: window.inPortrait ? screen.displayWidth : screen.displayHeight + anchors { top: statusBar.bottom; left: parent.left; } + } + + Image { + id: backgroundImage + visible: platformStyle.background != "" + source: window.inPortrait ? platformStyle.portraitBackground : platformStyle.landscapeBackground + fillMode: platformStyle.backgroundFillMode + width: window.inPortrait ? screen.displayHeight : screen.displayWidth + height: window.inPortrait ? screen.displayWidth : screen.displayHeight + anchors { top: statusBar.bottom; left: parent.left; } + } + + Item { + objectName: "appWindowContent" + width: parent.width + anchors.top: statusBar.bottom + anchors.bottom: parent.bottom + + // content area + Item { + id: contentArea + anchors { top: parent.top; left: parent.left; right: parent.right; bottom: parent.bottom; } + anchors.bottomMargin: !toolBarOnTop && (toolBar.visible || (toolBar.opacity==1))? toolBar.height : 0 + anchors.topMargin: toolBarOnTop && (toolBar.visible || (toolBar.opacity==1))? toolBar.height : 0 + PageStack { + id: stack + anchors.fill: parent + toolBar: toolBar + } + } + + Item { + id: roundedCorners + visible: platformStyle.cornersVisible + anchors.fill: parent + z: 10001 + + Image { + anchors.top : parent.top + anchors.left: parent.left + source: "image://theme/meegotouch-applicationwindow-corner-top-left" + } + Image { + anchors.top: parent.top + anchors.right: parent.right + source: "image://theme/meegotouch-applicationwindow-corner-top-right" + } + Image { + anchors.bottom : parent.bottom + anchors.left: parent.left + source: "image://theme/meegotouch-applicationwindow-corner-bottom-left" + } + Image { + anchors.bottom : parent.bottom + anchors.right: parent.right + source: "image://theme/meegotouch-applicationwindow-corner-bottom-right" + } + } + + ToolBar { + id: toolBar + anchors.top: toolBarOnTop ? parent.top: undefined + anchors.bottom: !toolBarOnTop ? parent.bottom: undefined + privateVisibility: (inputContext.softwareInputPanelVisible==true || inputContext.customSoftwareInputPanelVisible == true) + ? ToolBarVisibility.HiddenImmediately : (window.showToolBar ? ToolBarVisibility.Visible : ToolBarVisibility.Hidden) + } + } + + // event preventer when page transition is active + MouseArea { + anchors.fill: parent + enabled: pageStack.busy + } + + Component.onCompleted: { + if (initialPage) pageStack.push(initialPage); + } + +} diff --git a/mardrone/imports/com/meego/PageStackWindowStyle.qml b/mardrone/imports/com/meego/PageStackWindowStyle.qml new file mode 100644 index 0000000..da9da45 --- /dev/null +++ b/mardrone/imports/com/meego/PageStackWindowStyle.qml @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Style { + property bool cornersVisible: true + + // Background + property url background: "" + + // Background color is used when no background is set. + property color backgroundColor: theme.inverted ? "#000000" : "#E0E1E2" + + property url landscapeBackground: background + property url portraitBackground: background + property url portraiteBackground: background + + property int backgroundFillMode: Image.Tile +} diff --git a/mardrone/imports/com/meego/Popup.qml b/mardrone/imports/com/meego/Popup.qml new file mode 100644 index 0000000..0996a84 --- /dev/null +++ b/mardrone/imports/com/meego/Popup.qml @@ -0,0 +1,124 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + + // api + property alias visualParent: fader.visualParent + + // possible states: Opening, Open, Closing, Closed + // Opening and Closing are used during animation (when the dialog fades/moves/pops/whatever in) + property int status: DialogStatus.Closed + + // private api + property double __dim: 0.9 + property int __fadeInDuration + property int __fadeOutDuration + property int __fadeInDelay + property int __fadeOutDelay + property int __fadeInEasingType + property int __fadeOutEasingType + property string __faderBackground + + function open() { + if (status == DialogStatus.Closed) + status = DialogStatus.Opening; + } + + function close() { + if (status == DialogStatus.Open) + status = DialogStatus.Closing; + } + + signal privateClicked + + //Deprecated, TODO Remove the following two lines on w13 + signal clicked + onClicked: privateClicked() + + QtObject { + id: parentCache + property QtObject oldParent: null + } + + Component.onCompleted: { + parentCache.oldParent = parent; + fader.parent = parent; + parent = fader; + } + + //if this is not given, application may crash in some cases + Component.onDestruction: { + if (parentCache.oldParent != null) { + parent = parentCache.oldParent + fader.parent = root + } + } + + Fader { + id: fader + dim: root.__dim + fadeInDuration: root.__fadeInDuration + fadeOutDuration: root.__fadeOutDuration + fadeInDelay: root.__fadeInDelay + fadeOutDelay: root.__fadeOutDelay + fadeInEasingType: root.__fadeInEasingType + fadeOutEasingType: root.__fadeOutEasingType + + + background: root.__faderBackground + onPrivateClicked: root.privateClicked(); + + MouseArea { + anchors.fill: parent + enabled: root.status == DialogStatus.Opening || root.status == DialogStatus.Closing + z: Number.MAX_VALUE + } + } + + function __fader() { + return fader; + } + +} diff --git a/mardrone/imports/com/meego/ProgressBar.qml b/mardrone/imports/com/meego/ProgressBar.qml new file mode 100644 index 0000000..6a3e163 --- /dev/null +++ b/mardrone/imports/com/meego/ProgressBar.qml @@ -0,0 +1,154 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import Qt.labs.components 1.1 + +import "TextAreaHelper.js" as AreaHelper + +ImplicitSizeItem { + id: container + + property alias minimumValue: progressModel.minimumValue + property alias maximumValue: progressModel.maximumValue + property alias value: progressModel.value + property bool indeterminate: false + + // Styling for the ProgressBar + property Style platformStyle: ProgressBarStyle{} + + //Deprecated, can be removed on W13 + property alias style: container.platformStyle + + implicitWidth: platformStyle.sizeButton + implicitHeight: background.height + + QtObject { + id: internal + property Flickable flick + property bool offScreen: false + } + + BorderImage { + id: background + width: parent.width + horizontalTileMode: BorderImage.Repeat + source: platformStyle.barBackground + + border { + left: 6 + top: 4 + right: 6 + bottom: 4 + } + } + + MaskedItem { + id: foreground + width: parent.width + height: parent.height + + mask: BorderImage { + width: indeterminate ? container.width : progressModel.position + height: foreground.height + source: platformStyle.barMask + + border { + left: 4 + top: 4 + right: 4 + bottom: 4 + } + } + + Image { + id: texture + width: foreground.width + sourceSize.width + 25 + height: foreground.height + fillMode: Image.Tile + + property real xTemp; + + source: indeterminate ? platformStyle.unknownTexture : platformStyle.knownTexture + + onXTempChanged: { + // Control the animation speed with this multiplier and the NumberAnimation duration divider + texture.x = Math.round(texture.xTemp) * 4; + } + + NumberAnimation on xTemp { + running: indeterminate && container.visible && Qt.application.active && !internal.offScreen + loops: Animation.Infinite + from: -texture.sourceSize.width + to: 0 + // time = distance / speed, where speed = 10 from the platformStyle + duration: (1000 * texture.sourceSize.width / 10) + } + } + } + + RangeModel { + id: progressModel + positionAtMinimum: 0 + positionAtMaximum: background.width + + // Defaults from Common API specification + minimumValue: 0 + maximumValue: 1.0 + } + + Connections { + target: internal.flick + + onMovementStarted: internal.offScreen = false + + onMovementEnded: { + var pos = mapToItem(internal.flick, 0, 0) + internal.offScreen = (pos.y + container.height <= 0) || (pos.y >= internal.flick.height) || (pos.x + container.width <= 0) || (pos.x >= internal.flick.width) + } + } + + Component.onCompleted: { + var flick = AreaHelper.findFlickable() + if (flick) + internal.flick = flick + } +} diff --git a/mardrone/imports/com/meego/ProgressBarStyle.qml b/mardrone/imports/com/meego/ProgressBarStyle.qml new file mode 100644 index 0000000..1e11e3e --- /dev/null +++ b/mardrone/imports/com/meego/ProgressBarStyle.qml @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + property int sizeButton: UI.SIZE_BUTTON + + // Images + property url barBackground: "image://theme/meegotouch-progressindicator"+__invertedString+"-bar-background" + property url barMask: "image://theme/meegotouch-progressindicator"+__invertedString+"-bar-mask" + property url unknownTexture: "image://theme/" + __colorString + "meegotouch-progressindicator"+__invertedString+"-bar-unknown-texture" + property url knownTexture: "image://theme/" + __colorString + "meegotouch-progressindicator"+__invertedString+"-bar-known-texture" +} diff --git a/mardrone/imports/com/meego/QueryDialog.qml b/mardrone/imports/com/meego/QueryDialog.qml new file mode 100644 index 0000000..64bae64 --- /dev/null +++ b/mardrone/imports/com/meego/QueryDialog.qml @@ -0,0 +1,384 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +Dialog { + id: root + objectName: "queryDialog" + + property string titleText + property string message + + //are they necessary? + property alias acceptButtonText: acceptButton.text + property alias rejectButtonText: rejectButton.text + + //ToDo + property alias icon: iconImage.source + + property Style platformStyle: QueryDialogStyle {} + + //__centerContentField: true + + __dim: platformStyle.dim + __fadeInDuration: platformStyle.fadeInDuration + __fadeOutDuration: platformStyle.fadeOutDuration + __fadeInDelay: platformStyle.fadeInDelay + __fadeOutDelay: platformStyle.fadeOutDelay + + __animationChief: "queryDialog" + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + // the title field consists of the following parts: title string and + // a close button (which is in fact an image) + // it can additionally have an icon + title: Item { + id: titleField + width: parent.width + height: titleText == "" ? titleBarIconField.height : + titleBarIconField.height + titleLabel.height + root.platformStyle.titleColumnSpacing + Column { + id: titleFieldCol + spacing: root.platformStyle.titleColumnSpacing + + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + + width: root.width + + Item { + id: titleBarIconField + height: iconImage.height + width: parent.width + Image { + id: iconImage + anchors.horizontalCenter: titleBarIconField.horizontalCenter + source: "" + } + + } + + + Item { + id: titleBarTextField + height: titleLabel.height + width: parent.width + + Text { + id: titleLabel + width: parent.width + + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + + font.family: root.platformStyle.titleFontFamily + font.pixelSize: root.platformStyle.titleFontPixelSize + font.bold: root.platformStyle.titleFontBold + font.capitalization: root.platformStyle.titleFontCapitalization + elide: root.platformStyle.titleElideMode + wrapMode: elide == Text.ElideNone ? Text.Wrap : Text.NoWrap + color: root.platformStyle.titleTextColor + text: root.titleText + + } + } + + // needed for animation + transform: Scale { + id: titleScale + xScale: 1.0; yScale: 1.0 + origin.x: mapFromItem(queryContent, queryContent.width / 2, queryContent.height / 2).x + origin.y: mapFromItem(queryContent, queryContent.width / 2, queryContent.height / 2).y + } + + } + } + + // the content field which contains the message text + content: Item { + id: queryContentWrapper + + property int upperBound: visualParent ? visualParent.height - titleField.height - buttonColFiller.height - 64 + : root.parent.height - titleField.height - buttonColFiller.height - 64 + property int __sizeHint: Math.min(Math.max(root.platformStyle.contentFieldMinSize, queryText.height), upperBound) + + height: __sizeHint + root.platformStyle.contentTopMargin + width: root.width + + Item { + id: queryContent + width: parent.width + + y: root.platformStyle.contentTopMargin + + Flickable { + id: queryFlickable + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + //anchors.bottom: parent.bottom + height: queryContentWrapper.__sizeHint + + contentHeight: queryText.height + flickableDirection: Flickable.VerticalFlick + clip: true + + interactive: queryText.height > queryContentWrapper.__sizeHint + + Text { + id: queryText + width: queryFlickable.width + horizontalAlignment: Text.AlignHCenter + font.family: root.platformStyle.messageFontFamily + font.pixelSize: root.platformStyle.messageFontPixelSize + color: root.platformStyle.messageTextColor + wrapMode: Text.WordWrap + text: root.message + } + + } + + + ScrollDecorator { + id: scrollDecorator + flickableItem: queryFlickable + anchors.rightMargin: - UI.SCROLLDECORATOR_LONG_MARGIN - 10 //ToDo: Don't use a hard-coded gap + } + + } + } + + + buttons: Item { + id: buttonColFiller + width: parent.width + height: childrenRect.height + + anchors.top: parent.top + + //ugly hack to assure, that we're always evaluating the correct height + //otherwise the topMargin wouldn't be considered + Item {id: dummy; anchors.fill: parent} + + Column { + id: buttonCol + anchors.top: parent.top + anchors.topMargin: root.platformStyle.buttonTopMargin + spacing: root.platformStyle.buttonsColumnSpacing + + height: (acceptButton.text == "" ? 0 : acceptButton.height) + + (rejectButton.text == "" ? 0 : rejectButton.height) + + anchors.buttonTopMargin + spacing + + anchors.horizontalCenter: parent.horizontalCenter + + Button { + id: acceptButton + text: "" + onClicked: accept() + visible: text != "" + __dialogButton: true + platformStyle: ButtonStyle {inverted: true} + } + Button { + id: rejectButton + text: "" + onClicked: reject() + visible: text != "" + __dialogButton: true + platformStyle: ButtonStyle {inverted: true} + } + } + } + + StateGroup { + id: statesWrapper + + state: "__query__hidden" + + // needed for button animation + // without resetting the button row's coordinate system would be translated + property int __buttonSaver: buttonColFiller.y + + states: [ + State { + name: "__query__visible" + when: root.__animationChief == "queryDialog" && (root.status == DialogStatus.Opening || root.status == DialogStatus.Open) + PropertyChanges { + target: root + opacity: 1.0 + } + }, + State { + name: "__query__hidden" + when: root.__animationChief == "queryDialog" && (root.status == DialogStatus.Closing || root.status == DialogStatus.Closed) + PropertyChanges { + target: root + opacity: 0.0 + } + } + ] + + transitions: [ + Transition { + from: "__query__visible"; to: "__query__hidden" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "hidden"; + + statesWrapper.__buttonSaver = buttonColFiller.y + root.status = DialogStatus.Closing; + + } + } + + NumberAnimation { target: root; properties: "opacity"; from: 0.0; to: 1.0; duration: 0 } + + // With a 100ms delay the background + // fades to alpha 0% (500ms, quint ease out). + // ---> done in the fader + + ParallelAnimation { + // The closing transition starts with the message dimming to alpha 0% and + // scaling to 80% (anchorpoint in the middle of the message, 100ms, quint + // ease in). + + // With no delay the buttons fade to alpha 0% and translate 30 + // pixels upwards (100ms, quint ease in). + NumberAnimation {target: queryContent; properties: "opacity"; from: 1.0; to: 0.0; duration: 100} + NumberAnimation {target: titleField; properties: "opacity"; from: 1.0; to: 0.0; duration: 100} + NumberAnimation {target: titleScale; properties: "xScale,yScale"; from: 1.0 ; to: 0.8; duration: 100; easing.type: Easing.InQuint} + NumberAnimation {target: queryContent; property: "scale"; from: 1.0 ; to: 0.8; duration: 100; easing.type: Easing.InQuint} + NumberAnimation {target: buttonColFiller; properties: "opacity"; from: 1.0; to: 0.0; duration: 100} + NumberAnimation {target: buttonColFiller + properties: "y" + from: buttonColFiller.y + to: buttonColFiller.y-30 + duration: 100 + easing.type: Easing.InQuint + } + } + + ScriptAction {script: { + + // reset button + buttonColFiller.y = statesWrapper.__buttonSaver + + // make sure, root isn't visible: + root.opacity = 0.0; + status = DialogStatus.Closed; + + } + } + + } + }, + Transition { + from: "__query__hidden"; to: "__query__visible" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "visible"; + + statesWrapper.__buttonSaver = buttonColFiller.y + + root.status = DialogStatus.Opening; + // UPPERCASE-UGLY, but necessary to avoid flicker + root.opacity = 1.0 + titleField.opacity = 0.0 + queryContent.opacity = 0.0 + buttonColFiller.opacity = 0.0 + } + } + + // The opening transition starts by dimming the background to 90% (250ms, + // quint ease in). + // ---> done in the fader + ParallelAnimation { + SequentialAnimation { + + // With a 200ms delay from the beginning the message fades + // from alpha 0% to 100% and scales from 80% to 100% (anchorpoint in the + // middle of the message, 550ms, custom ease). + PauseAnimation { duration: 200 } + ParallelAnimation { + NumberAnimation {target: queryContent; properties: "opacity"; from: 0.0; to: 1.0; duration: 550} + NumberAnimation {target: titleField; properties: "opacity"; from: 0.0; to: 1.0; duration: 550} + NumberAnimation {target: titleScale; properties: "xScale,yScale"; from: 0.8 ; to: 1.0; duration: 550; easing.type: Easing.OutBack} + NumberAnimation {target: queryContent; property: "scale"; from: 0.8 ; to: 1.0; duration: 550; easing.type: Easing.OutBack} + } + } + SequentialAnimation { + // With a 250ms delay from the + // beginning the buttons fade from alpha 0% to 100% and translate 25 pixels + // in Y axis away from their final destination (400ms, custom ease). + PauseAnimation { duration: 250 } + ParallelAnimation { + NumberAnimation {target: buttonColFiller; properties: "opacity"; from: 0.0; to: 1.0; duration: 400; } + NumberAnimation {target: buttonColFiller + properties: "y" + from: buttonColFiller.y-25 + to: buttonColFiller.y + duration: 400 + easing.type: Easing.OutBack + } + } + } + } + + ScriptAction {script: { + + // reset button + buttonColFiller.y = statesWrapper.__buttonSaver + + root.status = DialogStatus.Open; + } + } + } + } + ] + } + +} diff --git a/mardrone/imports/com/meego/QueryDialogStyle.qml b/mardrone/imports/com/meego/QueryDialogStyle.qml new file mode 100644 index 0000000..422dacf --- /dev/null +++ b/mardrone/imports/com/meego/QueryDialogStyle.qml @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +DialogStyle { + property string titleFontFamily: UI.FONT_FAMILY + property int titleFontPixelSize: UI.FONT_XLARGE + property int titleFontCapitalization: Font.MixedCase + property bool titleFontBold: true + property color titleTextColor: "white" + + property int contentFieldMinSize: 24 + + //spacing + property int contentTopMargin: 21 + property int buttonTopMargin: 38 + + property int titleColumnSpacing: 17 + + //properties inherited by DialogStyle + buttonsColumnSpacing: 16 + leftMargin: 33 + rightMargin: 33 + titleElideMode: Text.ElideNone + + property string messageFontFamily: UI.FONT_FAMILY + property int messageFontPixelSize: UI.FONT_DEFAULT + property color messageTextColor: "#ffffff" + + // fader properties + property double dim: 0.9 + property int fadeInDuration: 250 // ms + property int fadeOutDuration: 250 // ms + + property int fadeInDelay: 0 // ms + property int fadeOutDelay: 100 // ms + + +} diff --git a/mardrone/imports/com/meego/RadioButton.qml b/mardrone/imports/com/meego/RadioButton.qml new file mode 100644 index 0000000..a496658 --- /dev/null +++ b/mardrone/imports/com/meego/RadioButton.qml @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import Qt.labs.components 1.1 + +CheckBox { + id: radioButton + + property Style platformStyle: RadioButtonStyle{} + property alias style: radioButton.platformStyle + + __imageSource: !radioButton.enabled ? platformStyle.backgroundDisabled : + radioButton.pressed ? platformStyle.backgroundPressed : + radioButton.checked ? platformStyle.backgroundSelected : + platformStyle.background + + function __handleChecked() { + if (!radioButton.checked) + radioButton.checked = true; + } +} diff --git a/mardrone/imports/com/meego/RadioButtonStyle.qml b/mardrone/imports/com/meego/RadioButtonStyle.qml new file mode 100644 index 0000000..867a681 --- /dev/null +++ b/mardrone/imports/com/meego/RadioButtonStyle.qml @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Style { + // Background + property url background: "image://theme/meegotouch-button-radiobutton"+__invertedString+"-background" + property url backgroundSelected: "image://theme/" + __colorString + "meegotouch-button-radiobutton"+__invertedString+"-background-selected" + property url backgroundPressed: "image://theme/" + __colorString + "meegotouch-button-radiobutton"+__invertedString+"-background-pressed" + property url backgroundDisabled: "image://theme/" + __colorString + "meegotouch-button-radiobutton"+__invertedString+"-background-disabled" + + // Mouse area margins + property int mouseMarginTop: 0 + property int mouseMarginLeft: 0 + property int mouseMarginRight: 0 + property int mouseMarginBottom: 0 + property int elideMode: Text.ElideNone +} diff --git a/mardrone/imports/com/meego/ScrollDecorator.qml b/mardrone/imports/com/meego/ScrollDecorator.qml new file mode 100644 index 0000000..38d04dc --- /dev/null +++ b/mardrone/imports/com/meego/ScrollDecorator.qml @@ -0,0 +1,256 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +/** + * Class: ScrollDecorator + * A ScrollDecorator shows the current position in a scrollable area. + */ +Item { + id: root + + /** + * Property: flickableItem + * [Flickable] The Item that should show the ScrollDecorator + */ + property Flickable flickableItem + + property int __topPageMargin: 0 + property int __bottomPageMargin: 0 + property int __leftPageMargin: 0 + property int __rightPageMargin: 0 + property bool __hasPageWidth : false + property bool __hasPageHeight: false + + // These can also be modified (but probably shouldn't) + property int __minIndicatorSize: 20 + property int __hideTimeout: 500 + + property bool __alwaysShowIndicator: true + + property Style platformStyle: ScrollDecoratorStyle{} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + // This function ensures that we allways anchor the decorator correctly according + // to the page margins. + function __updatePageMargin() { + if (!flickableItem) + return + var p = flickableItem.parent + while (p) { + if (p.hasOwnProperty("__isPage")) { + __hasPageHeight = function() { return p.height == flickableItem.height } + __hasPageWidth = function() { return p.width == flickableItem.width } + __topPageMargin = function() { return p.anchors.topMargin } + __bottomPageMargin = function() { return p.anchors.bottomMargin } + __leftPageMargin = function() { return p.anchors.leftMargin } + __rightPageMargin = function() { return p.anchors.rightMargin } + return; + } else { + p = p.parent; + } + } + } + + onFlickableItemChanged: { __updatePageMargin() } + + QtObject { + id: privateApi + function canFlick(direction) { + return flickableItem.flickableDirection === direction + || flickableItem.flickableDirection === Flickable.HorizontalAndVerticalFlick + || flickableItem.flickableDirection === Flickable.AutoFlickDirection; + } + } + + // Private stuff + anchors.fill: flickableItem + + Timer { + // Hack to have the indicators flash when the view is shown the first time. + // Ideally we would wait until the Flickable is complete, but it doesn't look + // possible given the current limitations of QML. + interval: 100 + running: true + repeat: false + onTriggered: { + if (verticalIndicator.shouldShow) { + verticalIndicator.state = "visible"; + verticalIndicator.state = ""; + } + if (horizontalIndicator.shouldShow) { + horizontalIndicator.state = "visible"; + horizontalIndicator.state = ""; + } + } + } + + Component { + id: verticalSizerWrapper + ScrollDecoratorSizerCPP { + id: verticalSizer + positionRatio: flickableItem ? flickableItem.visibleArea.yPosition : 0 + sizeRatio: flickableItem ? flickableItem.visibleArea.heightRatio : 0 + maxPosition: flickableItem ? flickableItem.height : 0 + minSize: __minIndicatorSize + } + } + + Component { + id: horizontalSizerWrapper + ScrollDecoratorSizerCPP { + id: horizontalSizer + positionRatio: flickableItem ? flickableItem.visibleArea.xPosition : 0 + sizeRatio: flickableItem ? flickableItem.visibleArea.widthRatio : 0 + maxPosition: flickableItem ? flickableItem.width : 0 + minSize: __minIndicatorSize + } + } + + Loader {id: verticalSizerLoader} + Loader {id: horizontalSizerLoader} + + Item { + id: verticalIndicator + property bool shouldShow: flickableItem != null && ((__alwaysShowIndicator && privateApi.canFlick(Flickable.VerticalFlick)) && (flickableItem.height > 0 && flickableItem.contentHeight > flickableItem.height)) + opacity: 0 + anchors.right: parent.right + anchors.rightMargin: UI.SCROLLDECORATOR_LONG_MARGIN - (__hasPageWidth ? __rightPageMargin : 0) + anchors.top: parent.top + anchors.topMargin: UI.SCROLLDECORATOR_SHORT_MARGIN - (__hasPageWidth ? __topPageMargin : 0) + anchors.bottom: parent.bottom + anchors.bottomMargin: UI.SCROLLDECORATOR_SHORT_MARGIN - (__hasPageWidth ? __bottomPageMargin : 0) + + onShouldShowChanged: { + if (shouldShow) + verticalSizerLoader.sourceComponent = verticalSizerWrapper; + else + verticalSizerLoader.sourceComponent = undefined; + } + + Image { + source: platformStyle.background + height: parent.height + anchors.right: parent.right + } + BorderImage { + source: platformStyle.indicator + border { left: 2; top: 4; right: 2; bottom: 4 } + anchors.right: parent.right + y: verticalIndicator.shouldShow && verticalSizerLoader.status == Loader.Ready ? verticalSizerLoader.item.position : 0 + height: verticalIndicator.shouldShow && verticalSizerLoader.status == Loader.Ready ? + verticalSizerLoader.item.size - parent.anchors.topMargin - parent.anchors.bottomMargin : 0 + } + + states: State { + name: "visible" + when: verticalIndicator.shouldShow && flickableItem.moving + PropertyChanges { + target: verticalIndicator + opacity: 1 + } + } + + transitions: Transition { + from: "visible"; to: "" + NumberAnimation { + properties: "opacity" + duration: root.__hideTimeout + } + } + } + + Item { + id: horizontalIndicator + property bool shouldShow: flickableItem != null && ((__alwaysShowIndicator && privateApi.canFlick(Flickable.HorizontalFlick)) && (flickableItem.width > 0 && flickableItem.contentWidth > flickableItem.width)) + opacity: 0 + anchors.bottom: parent.bottom + anchors.bottomMargin: UI.SCROLLDECORATOR_LONG_MARGIN - (__hasPageHeight ? __bottomPageMargin : 0) + anchors.right: parent.right + anchors.rightMargin: UI.SCROLLDECORATOR_SHORT_MARGIN - (__hasPageHeight ? __rightPageMargin : 0) + anchors.left: parent.left + anchors.leftMargin: UI.SCROLLDECORATOR_SHORT_MARGIN - (__hasPageHeight ? __leftPageMargin : 0) + + onShouldShowChanged: { + if (shouldShow) + horizontalSizerLoader.sourceComponent = horizontalSizerWrapper; + else + horizontalSizerLoader.sourceComponent = undefined; + } + + Image { + source: platformStyle.backgroundHorizontal + width: parent.width + anchors.left: parent.left + anchors.bottom: parent.bottom + } + BorderImage { + source: platformStyle.indicatorHorizontal + border { left: 4; top: 2; right: 4; bottom: 2 } + anchors.bottom: parent.bottom + x: horizontalIndicator.shouldShow && horizontalSizerLoader.status == Loader.Ready ? horizontalSizerLoader.item.position : 0 + width: horizontalIndicator.shouldShow && horizontalSizerLoader.status == Loader.Ready ? + horizontalSizerLoader.item.size - parent.anchors.leftMargin - parent.anchors.rightMargin : 0 + } + + states: State { + name: "visible" + when: horizontalIndicator.shouldShow && flickableItem.moving + PropertyChanges { + target: horizontalIndicator + opacity: 1 + } + } + + transitions: Transition { + from: "visible"; to: "" + NumberAnimation { + properties: "opacity" + duration: root.__hideTimeout + } + } + } +} + diff --git a/mardrone/imports/com/meego/ScrollDecoratorSizer.qml b/mardrone/imports/com/meego/ScrollDecoratorSizer.qml new file mode 100644 index 0000000..92bc575 --- /dev/null +++ b/mardrone/imports/com/meego/ScrollDecoratorSizer.qml @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Item { + // relative (0..1) position of top and bottom + property real positionRatio + property real sizeRatio + + // max position and min size + property real maxPosition + property real minSize + + // size underflow + property real sizeUnderflow: (sizeRatio * maxPosition) < minSize ? minSize - (sizeRatio * maxPosition) : 0 + + // raw start and end position considering minimum size + property real rawStartPos: positionRatio * (maxPosition - sizeUnderflow) + property real rawEndPos: (positionRatio + sizeRatio) * (maxPosition - sizeUnderflow) + sizeUnderflow + + // overshoot amount at start and end + property real overshootStart: rawStartPos < 0 ? -rawStartPos : 0 + property real overshootEnd: rawEndPos > maxPosition ? rawEndPos - maxPosition : 0 + + // overshoot adjusted start and end + property real adjStartPos: rawStartPos + overshootStart + property real adjEndPos: rawEndPos - overshootStart - overshootEnd + + // final position and size of thumb + property int position: 0.5 + (adjStartPos + minSize > maxPosition ? maxPosition - minSize : adjStartPos) + property int size: 0.5 + ((adjEndPos - position) < minSize ? minSize : (adjEndPos - position)) +} + diff --git a/mardrone/imports/com/meego/ScrollDecoratorStyle.qml b/mardrone/imports/com/meego/ScrollDecoratorStyle.qml new file mode 100644 index 0000000..2be1cc8 --- /dev/null +++ b/mardrone/imports/com/meego/ScrollDecoratorStyle.qml @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Style { + // Background + property url background: "image://theme/meegotouch-positionindicator"+__invertedString+"-background" + property url indicator: "image://theme/meegotouch-positionindicator"+__invertedString+"-indicator" + property url backgroundHorizontal: "image://theme/meegotouch-positionindicator"+__invertedString+"-background-horizontal" + property url indicatorHorizontal: "image://theme/meegotouch-positionindicator"+__invertedString+"-indicator-horizontal" +} diff --git a/mardrone/imports/com/meego/SectionScroller.js b/mardrone/imports/com/meego/SectionScroller.js new file mode 100644 index 0000000..ecd210e --- /dev/null +++ b/mardrone/imports/com/meego/SectionScroller.js @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +var sectionData = []; +var _sections = []; + +function initialize(list) { + initSectionData(list); +} + +function initSectionData(list) { + if (!list || !list.model) return; + sectionData = []; + _sections = []; + var current = "", + prop = list.section.property, + item; + + for (var i = 0, count = list.model.count; i < count; i++) { + item = list.model.get(i); + if (item[prop] !== current) { + current = item[prop]; + _sections.push(current); + sectionData.push({ index: i, header: current }); + } + } +} + +function getSectionPositionString(name) { + var val = _sections.indexOf(name); + return val === 0 ? "first" : + val === _sections.length - 1 ? "last" : false; +} + +function getAt(pos) { + return _sections[pos] ? _sections[pos] : ""; +} + +function getRelativeSections(current) { + var val = _sections.indexOf(current), + sect = [], + sl = _sections.length; + + val = val < 1 ? 1 : val >= sl-1 ? sl-2 : val; + sect = [getAt(val - 1), getAt(val), getAt(val + 1)]; + + return sect; +} + +function getClosestSection(pos, down) { + var tmp = (_sections.length) * pos; + var val = Math.ceil(tmp) // TODO: better algorithm + val = val < 2 ? 1 : val; + return _sections[val-1]; +} + +function getNextSection(current) { + var val = _sections.indexOf(current); + return (val > -1 ? _sections[(val < _sections.length - 1 ? val + 1 : val)] : _sections[0]) || ""; +} + +function getPreviousSection(current) { + var val = _sections.indexOf(current); + return (val > -1 ? _sections[(val > 0 ? val - 1 : val)] : _sections[0]) || ""; +} + +function getIndexFor(sectionName) { + var val = sectionData[_sections.indexOf(sectionName)].index; + return val === 0 || val > 0 ? val : -1; +} diff --git a/mardrone/imports/com/meego/SectionScroller.qml b/mardrone/imports/com/meego/SectionScroller.qml new file mode 100644 index 0000000..ae2018f --- /dev/null +++ b/mardrone/imports/com/meego/SectionScroller.qml @@ -0,0 +1,331 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "SectionScroller.js" as Sections + +Item { + id: root + + property ListView listView + + onListViewChanged: { + if (listView && listView.model) { + internal.initDirtyObserver(); + } else if (listView) { + listView.modelChanged.connect(function() { + if (listView.model) { + internal.initDirtyObserver(); + } + }); + } + } + + property Style platformStyle: SectionScrollerStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + Rectangle { + id: container + color: "transparent" + width: 35 + height: listView.height + x: listView.x + listView.width - width + property bool dragging: false + + MouseArea { + id: dragArea + objectName: "dragArea" + anchors.fill: parent + drag.target: tooltip + drag.axis: Drag.YAxis + drag.minimumY: listView.y + drag.maximumY: listView.y + listView.height - tooltip.height + + onPressed: { + mouseDownTimer.restart() + } + + onReleased: { + container.dragging = false; + mouseDownTimer.stop() + } + + onPositionChanged: { + internal.adjustContentPosition(dragArea.mouseY); + } + + Timer { + id: mouseDownTimer + interval: 150 + + onTriggered: { + container.dragging = true; + internal.adjustContentPosition(dragArea.mouseY); + tooltip.positionAtY(dragArea.mouseY); + } + } + } + Item { + id: tooltip + objectName: "popup" + opacity: container.dragging ? 1 : 0 + anchors.right: parent.right + anchors.rightMargin: 50 + width: childrenRect.width + height: childrenRect.height + + function positionAtY(yCoord) { + tooltip.y = Math.max(dragArea.drag.minimumY, Math.min(yCoord - tooltip.height/2, dragArea.drag.maximumY)); + } + + BorderImage { + id: background + width: childrenRect.width// + 20 + height: childrenRect.height// + 20 + anchors.left: parent.left + source: platformStyle.backgroundImage + border { left: 4; top: 4; right: 4; bottom: 4 } + + Column { + width: Math.max(previousSectionLabel.width, currentSectionLabel.width, nextSectionLabel.width) + height: childrenRect.height + + SectionScrollerLabel { + id: previousSectionLabel + objectName: "previousSectionLabel" + text: internal.prevSection + highlighted: internal.curSect === text + up: !internal.down + } + + Image { + objectName: "divider1" + source: platformStyle.dividerImage + width: parent.width + height: 1 + anchors.horizontalCenter: parent.horizontalCenter + } + + SectionScrollerLabel { + id: currentSectionLabel + objectName: "currentSectionLabel" + text: internal.currentSection + highlighted: internal.curSect === text + up: !internal.down + } + + Image { + objectName: "divider2" + source: platformStyle.dividerImage + width: parent.width + height: 1 + anchors.horizontalCenter: parent.horizontalCenter + } + + SectionScrollerLabel { + id: nextSectionLabel + objectName: "nextSectionLabel" + text: internal.nextSection + highlighted: internal.curSect === text + up: !internal.down + } + } + } + + Image { + id: arrow + objectName: "arrow" + width: 8 + height: 16 + anchors.left: background.right + property int threshold: currentSectionLabel.height + property int yInitial: background.y + background.height/2 - height/2 + y: getYPosition() + source: platformStyle.arrowImage + + function getYPosition() { + var v = internal.curPos; + var adjust = v === "first" ? -threshold : + v === "last" ? threshold : 0; + + return yInitial + adjust; + } + + states: [ + State { + when: root.dragging && dragArea.mouseY < (root.listView.y + threshold) + PropertyChanges { + target: arrow + y: yInitial - threshold + } + } + ] + + Behavior on y { + NumberAnimation { + duration: 100 + } + } + } + + states: [ + State { + name: "visible" + when: container.dragging + }, + + State { + extend: "visible" + name: "atTop" + when: internal.curPos === "first" + PropertyChanges { + target: previousSectionLabel + text: internal.currentSection + } + PropertyChanges { + target: currentSectionLabel + text: internal.nextSection + } + PropertyChanges { + target: nextSectionLabel + text: Sections.getNextSection(internal.nextSection) + } + }, + + State { + extend: "visible" + name: "atBottom" + when: internal.curPos === "last" + PropertyChanges { + target: previousSectionLabel + text: Sections.getPreviousSection(internal.prevSection) + } + PropertyChanges { + target: currentSectionLabel + text: internal.prevSection + } + PropertyChanges { + target: nextSectionLabel + text: internal.currentSection + } + } + ] + + Behavior on opacity { + NumberAnimation { duration: 100 } + } + } + } + + Timer { + id: dirtyTimer + interval: 100 + running: false + onTriggered: { + Sections.initSectionData(listView); + internal.modelDirty = false; + } + } + + Connections { + target: root.listView + onCurrentSectionChanged: internal.curSect = container.dragging ? internal.curSect : "" + } + + QtObject { + id: internal + + property string prevSection: "" + property string currentSection: listView.currentSection + property string nextSection: "" + property string curSect: "" + property string curPos: "first" + property int oldY: 0 + property bool modelDirty: false + property bool down: true + + function initDirtyObserver() { + Sections.initialize(listView); + function dirtyObserver() { + if (!internal.modelDirty) { + internal.modelDirty = true; + dirtyTimer.running = true; + } + } + + if (listView.model.countChanged) + listView.model.countChanged.connect(dirtyObserver); + + if (listView.model.itemsChanged) + listView.model.itemsChanged.connect(dirtyObserver); + + if (listView.model.itemsInserted) + listView.model.itemsInserted.connect(dirtyObserver); + + if (listView.model.itemsMoved) + listView.model.itemsMoved.connect(dirtyObserver); + + if (listView.model.itemsRemoved) + listView.model.itemsRemoved.connect(dirtyObserver); + } + + function adjustContentPosition(y) { + if (y < 0 || y > dragArea.height) return; + + internal.down = (y > internal.oldY); + var sect = Sections.getClosestSection((y / dragArea.height), internal.down); + internal.oldY = y; + if (internal.curSect != sect) { + internal.curSect = sect; + internal.curPos = Sections.getSectionPositionString(internal.curSect); + var sec = Sections.getRelativeSections(internal.curSect); + internal.prevSection = sec[0]; + internal.currentSection = sec[1]; + internal.nextSection = sec[2]; + var idx = Sections.getIndexFor(sect); + listView.positionViewAtIndex(idx, ListView.Beginning); + } + } + + } +} diff --git a/mardrone/imports/com/meego/SectionScrollerLabel.qml b/mardrone/imports/com/meego/SectionScrollerLabel.qml new file mode 100644 index 0000000..50c2caa --- /dev/null +++ b/mardrone/imports/com/meego/SectionScrollerLabel.qml @@ -0,0 +1,98 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Item { + id: root + + property alias text: label.current + property alias up: label.up + property bool highlighted: false + + width: wrapper.width + height: wrapper.height + + property Style platformStyle: SectionScrollerStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + Item { + id: wrapper + + clip: true + height: label.height + + Text { + id: label + + property string current: "" + property bool up: true + property int shift: 30 + + height: 60 + width: parent.width - 40 + text: "" + x: 20 + color: root.highlighted ? root.platformStyle.textColorHighlighted : root.platformStyle.textColor + font { + bold: root.platformStyle.fontBoldProperty + pixelSize: root.platformStyle.fontPixelSize + } + verticalAlignment: Text.AlignVCenter + onCurrentChanged: { + text = current; + } + onTextChanged: { + var w = paintedWidth + parent.width = w + 40; + } + + Behavior on current { + SequentialAnimation { + NumberAnimation { target: label; property: "y"; to: label.up ? label.shift : -label.shift; duration: 50 } + PropertyAction { target: label; property: "y"; value: label.up ? -label.shift : label.shift } + NumberAnimation { target: label; property: "y"; to: 0; duration: 50 } + } + } + } + } +} diff --git a/mardrone/imports/com/meego/SectionScrollerStyle.qml b/mardrone/imports/com/meego/SectionScrollerStyle.qml new file mode 100644 index 0000000..0f0043a --- /dev/null +++ b/mardrone/imports/com/meego/SectionScrollerStyle.qml @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + + // Font + property int fontPixelSize: UI.FONT_XXSMALL + property bool fontBoldProperty: true + + // Color + property color textColorHighlighted: "#fff" + property color textColor: "#888" + + property url dividerImage: "image://theme/meegotouch-scroll-bubble-divider"+__invertedString + property url backgroundImage: "image://theme/meegotouch-scroll-bubble-background"+__invertedString + property url arrowImage: "image://theme/meegotouch-scroll-bubble-arrow"+__invertedString +} diff --git a/mardrone/imports/com/meego/SelectionDialog.qml b/mardrone/imports/com/meego/SelectionDialog.qml new file mode 100644 index 0000000..fe4d15c --- /dev/null +++ b/mardrone/imports/com/meego/SelectionDialog.qml @@ -0,0 +1,178 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +CommonDialog { + id: root + + // Common API + property alias model: selectionListView.model + property int selectedIndex: -1 // read & write + //property string titleText: "Selection Dialog" + + property Component delegate: // Note that this is the default delegate for the list + Component { + id: defaultDelegate + + Item { + id: delegateItem + property bool selected: index == selectedIndex; + + height: root.platformStyle.itemHeight + anchors.left: parent.left + anchors.right: parent.right + + MouseArea { + id: delegateMouseArea + anchors.fill: parent; + onPressed: selectedIndex = index; + onClicked: accept(); + } + + + Rectangle { + id: backgroundRect + anchors.fill: parent + color: delegateItem.selected ? root.platformStyle.itemSelectedBackgroundColor : root.platformStyle.itemBackgroundColor + } + + BorderImage { + id: background + anchors.fill: parent + border { left: UI.CORNER_MARGINS; top: UI.CORNER_MARGINS; right: UI.CORNER_MARGINS; bottom: UI.CORNER_MARGINS } + source: delegateMouseArea.pressed ? root.platformStyle.itemPressedBackground : + delegateItem.selected ? root.platformStyle.itemSelectedBackground : + root.platformStyle.itemBackground + } + + Text { + id: itemText + elide: Text.ElideRight + color: delegateItem.selected ? root.platformStyle.itemSelectedTextColor : root.platformStyle.itemTextColor + anchors.verticalCenter: delegateItem.verticalCenter + anchors.left: parent.left + anchors.right: parent.right + anchors.leftMargin: root.platformStyle.itemLeftMargin + anchors.rightMargin: root.platformStyle.itemRightMargin + text: modelData + font: root.platformStyle.itemFont + } + Component.onCompleted: { + try { + // Legacy. "name" used to be the role which was used by delegate + itemText.text = name + } catch(err) { + try { + // "modelData" available for JS array and for models with one role + itemText.text = modelData + } catch (err) { + try { + // C++ models have "display" role available always + itemText.text = display + } catch(err) { + } + } + } + } + } + } + + onStatusChanged: { + if (status == DialogStatus.Opening && selectedIndex >= 0) { + selectionListView.positionViewAtIndex(selectedIndex, ListView.Center) + } + } + + // Style API + property Style platformStyle: SelectionDialogStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + // private api + property int __pressDelay: platformStyle.pressDelay + + // the title field consists of the following parts: title string and + // a close button (which is in fact an image) + // it can additionally have an icon + titleText:"Selection Dialog" + + // the content field which contains the selection content + content: Item { + + id: selectionContent + property int listViewHeight + property int maxListViewHeight : visualParent + ? visualParent.height * 0.87 + - root.platformStyle.titleBarHeight - root.platformStyle.contentSpacing - 50 + : root.parent + ? root.parent.height * 0.87 + - root.platformStyle.titleBarHeight - root.platformStyle.contentSpacing - 50 + : 350 + height: listViewHeight > maxListViewHeight ? maxListViewHeight : listViewHeight + width: root.width + y : root.platformStyle.contentSpacing + + ListView { + id: selectionListView + model: ListModel {} + + currentIndex : -1 + anchors.fill: parent + delegate: root.delegate + focus: true + clip: true + pressDelay: __pressDelay + + ScrollDecorator { + id: scrollDecorator + flickableItem: selectionListView + platformStyle.inverted: true + } + onModelChanged: selectionContent.listViewHeight = model.count * platformStyle.itemHeight + } + + } +} + + diff --git a/mardrone/imports/com/meego/SelectionDialogStyle.qml b/mardrone/imports/com/meego/SelectionDialogStyle.qml new file mode 100644 index 0000000..605dd7a --- /dev/null +++ b/mardrone/imports/com/meego/SelectionDialogStyle.qml @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +DialogStyle { + property alias titleBarFont: titleText.font + property int titleBarHeight: 44 + property color titleBarColor: "white" + property int titleBarIndent: 17 + property int titleBarLineMargin: 10 + + property bool __portrait: (screen.currentOrientation == 1) || (screen.currentOrientation == 4) + + property int leftMargin: __portrait ? 11 : 160 + property int rightMargin: __portrait ? 11 : 160 + + property alias itemFont: itemText.font + property int fontXLarge: 32 + property int fontLarge: 28 + property int fontDefault: 24 + property int fontSmall: 20 + property int fontXSmall: 18 + property int fontXXSmall: 16 + + property color colorForeground: "#191919" + property color colorSecondaryForeground: "#8c8c8c" + property color colorBackground: "#ffffff" + property color colorSelect: "#7fb133" + + property color commonLabelColor: "white" + + property int itemHeight: 64 + property color itemTextColor: "white" + property color itemSelectedTextColor: "white" + property int itemLeftMargin: 16 + property int itemRightMargin: 16 + + property int contentSpacing: 10 + + property int pressDelay: 350 // ms + + // Background + property url itemBackground: "" + property color itemBackgroundColor: "transparent" + property color itemSelectedBackgroundColor: "#3D3D3D" + property url itemSelectedBackground: "" // "image://theme/" + __colorString + "meegotouch-list-fullwidth-background-selected" + property url itemPressedBackground: "image://theme/" + __colorString + "meegotouch-panel-inverted-background-pressed" + + property int buttonsTopMargin: 30 // ToDo: evaluate correct value + + Text { + id: titleText + font.family: UI.FONT_FAMILY + font.pixelSize: UI.FONT_XLARGE + font.capitalization: Font.MixedCase + font.bold: false + } + + Text { + id: itemText + font.family: UI.FONT_FAMILY + font.pixelSize: UI.FONT_DEFAULT_SIZE + font.capitalization: Font.MixedCase + font.bold: true + } + } diff --git a/mardrone/imports/com/meego/Sheet.qml b/mardrone/imports/com/meego/Sheet.qml new file mode 100644 index 0000000..9956c64 --- /dev/null +++ b/mardrone/imports/com/meego/Sheet.qml @@ -0,0 +1,230 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + + width: parent ? parent.width : 0 + height: parent ? parent.height : 0 + + property alias title: titleBar.children + property alias content: contentField.children + property alias buttons: buttonRow.children + property Item visualParent + property int status: DialogStatus.Closed + + property alias acceptButtonText: acceptButton.text + property alias rejectButtonText: rejectButton.text + + property alias acceptButton: acceptButton + property alias rejectButton: rejectButton + + signal accepted + signal rejected + + property QtObject platformStyle: SheetStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + function reject() { + close(); + rejected(); + } + + function accept() { + close(); + accepted(); + } + + visible: status != DialogStatus.Closed; + + function open() { + parent = visualParent || __findParent(); + sheet.state = ""; + } + + function close() { + sheet.state = "closed"; + } + + function __findParent() { + var next = parent; + while (next && next.parent + && next.objectName != "appWindowContent" + && next.objectName != "windowContent") { + next = next.parent; + } + return next; + } + + function getButton(name) { + for (var i=0; i handle.width / 2) + range.position = newX; + } + + onCanceled: { + range.position = oldPosition; + } + } + + Item { + id: valueIndicator + + transform: Translate { + x: - handle.width / 2; + y: __isVertical? -(__valueIndicatorItem.width/2)+20 : y ; + } + + rotation: __isVertical ? 90 : 0 + visible: valueIndicatorVisible + + width: __valueIndicatorItem.width //+ (__isVertical? (handle.width/2) : 0 ) + height: __valueIndicatorItem.height + + state: { + if (!__isVertical) + return slider.valueIndicatorPosition; + + if (valueIndicatorPosition == "Right") + return "Bottom"; + if (valueIndicatorPosition == "Top") + return "Right"; + if (valueIndicatorPosition == "Bottom") + return "Left"; + + return "Top"; + } + + anchors.margins: valueIndicatorMargin + + states: [ + State { + name: "Top" + AnchorChanges { + target: valueIndicator + anchors.bottom: handle.top + anchors.horizontalCenter: handle.horizontalCenter + } + }, + State { + name: "Bottom" + AnchorChanges { + target: valueIndicator + anchors.top: handle.bottom + anchors.horizontalCenter: handle.horizontalCenter + } + }, + State { + name: "Right" + AnchorChanges { + target: valueIndicator + anchors.left: handle.right + anchors.verticalCenter: handle.verticalCenter + } + }, + State { + name: "Left" + AnchorChanges { + target: valueIndicator + anchors.right: handle.left + anchors.verticalCenter: handle.verticalCenter + } + } + ] + } + } + + // when there is no mouse interaction, the handle's position binds to the value + Binding { + when: !mouseArea.drag.active + target: fakeHandle + property: "x" + value: range.position + } + + // when the slider is dragged, the value binds to the handle's position + Binding { + when: mouseArea.drag.active + target: range + property: "position" + value: fakeHandle.x + } +} diff --git a/mardrone/imports/com/meego/SoftwareInputPanel.qml b/mardrone/imports/com/meego/SoftwareInputPanel.qml new file mode 100644 index 0000000..75dbbc7 --- /dev/null +++ b/mardrone/imports/com/meego/SoftwareInputPanel.qml @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import Qt 4.7 + +Item { + id: root + width: parent.width + height: 0 + + objectName: "softwareInputPanel" + + property bool active: false + + states: State { + when: active + PropertyChanges { target: root; height: childrenRect.height; } + } + + transitions: Transition { + reversible: true + NumberAnimation { properties: "opacity"; easing.type: Easing.InOutCubic; duration: 200 } + } +} diff --git a/mardrone/imports/com/meego/StatusBar.qml b/mardrone/imports/com/meego/StatusBar.qml new file mode 100644 index 0000000..cffe9db --- /dev/null +++ b/mardrone/imports/com/meego/StatusBar.qml @@ -0,0 +1,104 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + + +StatusBarInternal { + id: statusBar + anchors.top: parent.top + width: parent.width + + property bool showStatusBar: true + property bool __completed: false + + states: State { + name: "hide"; when: showStatusBar==false + PropertyChanges { target: statusBar; anchors.topMargin: -statusBar.height; visible: false} + } + + Component.onCompleted: { + statusBar.orientation = screen.currentOrientation + screen.updatePlatformStatusBarRect(statusBar) + __completed = true; + } + + onWidthChanged: { + updatePlatformStatusBarTimer.running = true + } + + Timer { + // Timer is used to update statusbarrect to avoid duplicated calls during animation, + // also onActiveChanged coming too early + id: updatePlatformStatusBarTimer + repeat: false + interval: 50 + onTriggered: { + screen.updatePlatformStatusBarRect(statusBar); + } + } + + Connections { + target: platformWindow + onActiveChanged: { + updatePlatformStatusBarTimer.running = true + } + } + + transitions: Transition { + from: __completed ? "" : "invalid" + to: __completed ? "hide" : "invalid" + reversible: true + SequentialAnimation { + ScriptAction { + script: { + updatePlatformStatusBarTimer.running = true + } + } + PropertyAnimation { target: statusBar; properties: "anchors.topMargin"; easing.type: Easing.InOutExpo; duration: 500 } + PropertyAnimation { target: statusBar; properties: "visible"; } + ScriptAction { + script: { + updatePlatformStatusBarTimer.running = true; + } + } + } + } +} diff --git a/mardrone/imports/com/meego/Style.qml b/mardrone/imports/com/meego/Style.qml new file mode 100644 index 0000000..870b715 --- /dev/null +++ b/mardrone/imports/com/meego/Style.qml @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +QtObject { + id: styleClass + // Settings + property bool inverted: theme.inverted + property string __invertedString: inverted? "-inverted" : "" + property string __colorString: theme.colorString + + // some style classes like SelectionDialogStyle are using nested elements (for example Text), + // which isn't allowed by QtObject; this fix makes this possible + default property alias children: styleClass.__defaultPropertyFix + property list __defaultPropertyFix: [Item {}] //QML doesn't allow an empty list here + +} diff --git a/mardrone/imports/com/meego/Switch.qml b/mardrone/imports/com/meego/Switch.qml new file mode 100644 index 0000000..f23bf39 --- /dev/null +++ b/mardrone/imports/com/meego/Switch.qml @@ -0,0 +1,182 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +/* +Class: Switch + The Switch component is similar to the CheckBox component but instead of + selecting items it should be used when setting options to On/Off. +*/ +Item { + id: root + + width: slider.width + height: slider.height + + /* + * Property: checked + * [bool=false] The checked state of switch + */ + property bool checked: false + + // Styling for the Switch + property Style platformStyle: SwitchStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + property alias platformMouseAnchors: mouseArea.anchors + + /* + * Property: enabled + * [bool=true] Enables/Disables the component. Notice that the disable state is not Toolkit compliant + * and not present inside the qt-components + */ + + Item { + id: slider + + width: 66 + height: 42 + + state: root.checked ? "checked" : "unchecked" + + property real knobPos: (knob.x - platformStyle.minKnobX) / (platformStyle.maxKnobX - platformStyle.minKnobX) + + Image { + source: platformStyle.switchOn + opacity: slider.knobPos + } + Image { + source: platformStyle.switchOff + opacity: 1.0 - slider.knobPos + } + + states: [ + State { + name: "unchecked" + PropertyChanges { target: knob; x: platformStyle.minKnobX } + }, + State { + name: "checked" + PropertyChanges { target: knob; x: platformStyle.maxKnobX } + } + ] + + transitions: [ + Transition { + SmoothedAnimation { properties: "x"; velocity: 500; maximumEasingTime: 0 } + } + ] + + // thumb (shadow) + Image { + id: knob + + // thumb (inline) + Image { + width: 30 + height: 30 + x: 0 + y: -2 + source: (slider.enabled ? (mouseArea.pressed ? platformStyle.thumbPressed : platformStyle.thumb) : platformStyle.thumbDisabled) + } + + source: platformStyle.shadow + + y: 8 + + width: 30 + height: 30 + } + + MouseArea { + id: mouseArea + property int downMouseX + property int downKnobX + anchors { + fill: parent + rightMargin: platformStyle.mouseMarginRight + leftMargin: platformStyle.mouseMarginLeft + topMargin: platformStyle.mouseMarginTop + bottomMargin: platformStyle.mouseMarginBottom + } + + function snap() { + if (knob.x < (platformStyle.maxKnobX + platformStyle.minKnobX) / 2) { + if (root.checked) { + root.checked = false; + } else { + knob.x = platformStyle.minKnobX; + } + } else { + if (!root.checked) { + root.checked = true; + } else { + knob.x = platformStyle.maxKnobX; + } + } + } + + onPressed: { + downMouseX = mouseX; + downKnobX = knob.x; + } + + onPositionChanged: { + var newKnobX = downKnobX - (downMouseX - mouseX); + knob.x = newKnobX < platformStyle.minKnobX ? platformStyle.minKnobX : newKnobX > platformStyle.maxKnobX ? platformStyle.maxKnobX : newKnobX; + } + + onReleased: { + if (Math.abs(downMouseX - mouseX) < 5) + root.checked = !root.checked; + else + snap(); + } + + onCanceled: { + snap(); + } + + } + } +} diff --git a/mardrone/imports/com/meego/SwitchStyle.qml b/mardrone/imports/com/meego/SwitchStyle.qml new file mode 100644 index 0000000..ec1b1b7 --- /dev/null +++ b/mardrone/imports/com/meego/SwitchStyle.qml @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + property int minKnobX: 6 + property int maxKnobX: 30 + + // Slider + property url switchOn: "image://theme/" + __colorString + "meegotouch-switch-on"+__invertedString + property url switchOff: "image://theme/meegotouch-switch-off"+__invertedString + + // Knob + property url thumb: "image://theme/meegotouch-switch-thumb"+__invertedString + property url thumbPressed: "image://theme/meegotouch-switch-thumb-pressed"+__invertedString + property url thumbDisabled: "image://theme/meegotouch-switch-thumb-disabled"+__invertedString + property url shadow: "image://theme/meegotouch-switch-shadow"+__invertedString + + // Mouse + property real mouseMarginRight: -UI.MARGIN_XLARGE + property real mouseMarginLeft: -UI.MARGIN_XLARGE + property real mouseMarginTop: -UI.MARGIN_XLARGE + property real mouseMarginBottom: -UI.MARGIN_XLARGE +} diff --git a/mardrone/imports/com/meego/TabBarLayout.qml b/mardrone/imports/com/meego/TabBarLayout.qml new file mode 100644 index 0000000..e3e4a7f --- /dev/null +++ b/mardrone/imports/com/meego/TabBarLayout.qml @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + width: visible && parent ? parent.width : 0 + height: visible && parent ? parent.height : 0 + + Component.onCompleted: { + __layout() + print("Warning, TabBarLayout has been deprecated from the API.") + print("To fix your code, please use:") + print(" tools: ToolBarLayout { ToolItem{} ButtonRow{TabButton{} ... } } instead.") + } + onChildrenChanged: __layout() + onWidthChanged: __layout() + onHeightChanged: __layout() + + function __layout() { + if (parent == null || width == 0) + return; + + var orientation = screen.currentOrientation == Screen.Landscape || screen.currentOrientation == Screen.LandscapeInverted ? "landscape" : "portrait", + padding = orientation == "landscape" ? 80 : 15; + + for (var i = 0, childCount = children.length, tabCount = 0, widthOthers = 0; i < childCount; i++) { + if (children[i].tab !== undefined) { + children[i].platformStyle.position = (tabCount++ === 0) ? "horizontal-left" : "horizontal-center"; + children[i].platformStyle.screenOrientation = orientation; + } else { + widthOthers += children[i].width; + children[i].y = (height - children[i].height) / 2; + } + } + // Check if last item is a tab button and set appropriate position + tabCount && (children[children[0].tab ? tabCount - 1 : tabCount].platformStyle.position = "horizontal-right"); + + widthOthers += children[0].tab ? padding : 0; + widthOthers += children[childCount - 1].tab ? padding : 0; + + var tabWidth = Math.round((width - widthOthers) / tabCount), + offset = children[0].tab ? padding : children[0].width; + + for (var i = children[0].tab ? 0 : 1, index = 0; i < childCount; i++, index++) { + children[i].x = tabWidth * index + offset; + children[i].tab && (children[i].width = tabWidth); + } + } +} + diff --git a/mardrone/imports/com/meego/TabButton.qml b/mardrone/imports/com/meego/TabButton.qml new file mode 100644 index 0000000..61f5f0a --- /dev/null +++ b/mardrone/imports/com/meego/TabButton.qml @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import Qt.labs.components 1.1 + +Button { + id: tabButton + + // Common public API + property Item tab + property QtObject platformStyle: TabButtonStyle {} + + //Deprecated: TODO, remove this! + property alias style: tabButton.platformStyle + + property Item __tabGroup: tab !== null ? tab.parent : null + + Connections { + target: __tabGroup + onCurrentTabChanged: checked = __tabGroup.currentTab == tab; + } + + onClicked: privatePressed() + + function privatePressed() { + if (tabButton.checkable) { + tabButton.checked = !tabButton.checked; + } + + if (__tabGroup != null && + tab != null) { + __tabGroup.currenTab == tab ? __tabGroup.currentTab.pop(): __tabGroup.currentTab = tab; + } + } +} diff --git a/mardrone/imports/com/meego/TabButtonStyle.qml b/mardrone/imports/com/meego/TabButtonStyle.qml new file mode 100644 index 0000000..c0ac46d --- /dev/null +++ b/mardrone/imports/com/meego/TabButtonStyle.qml @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +ButtonStyle { + /* The orientation of the button which can take one of the two values: + [portrait] [landscape] + */ + property string screenOrientation: (screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted) ? "portrait" : "landscape" + + fontCapitalization: Font.MixedCase + fontPixelSize: 24 + fontWeight: Font.Normal + checkedFontWeight: Font.Bold + + buttonHeight: screenOrientation == "portrait"? 72 : 56 + + textColor: inverted ? "#CDCDCD" : "#505050" + pressedTextColor: inverted ? "#ffffff" : "#505050" + checkedTextColor: inverted ? "#ffffff" : "#000000" + + background: "image://theme/meegotouch-tab-" + screenOrientation + "-bottom" + __invertedString + "-background" + (position ? "-" + position : "") + + pressedBackground: "image://theme/meegotouch-tab-" + screenOrientation + "-bottom" + __invertedString + "-background-pressed" + (position ? "-" + position : "") + disabledBackground: "image://theme/meegotouch-tab-" + screenOrientation + "-bottom" + __invertedString + "-background" + (position ? "-" + position : "") + checkedBackground: "image://theme/meegotouch-tab-" + screenOrientation + "-bottom" + __invertedString + "-background-selected" + (position ? "-" + position : "") + checkedDisabledBackground: "image://theme/meegotouch-tab" + screenOrientation + "-bottom" + __invertedString + "-background" + (position ? "-" + position : "") +} diff --git a/mardrone/imports/com/meego/TabGroup.qml b/mardrone/imports/com/meego/TabGroup.qml new file mode 100644 index 0000000..72011d6 --- /dev/null +++ b/mardrone/imports/com/meego/TabGroup.qml @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// The TabGroup item defines a set of tabs consisting of page stacks or +// pages that can be switched between to implement a tabbed user interface. + +import QtQuick 1.1 +import "." 1.0 + +Item { + + // The currently selected tab. + property Item currentTab + + width: parent ? parent.width : 0 + height: parent ? parent.height : 0 + + onVisibleChanged: __update() + onChildrenChanged: __update() + onCurrentTabChanged: __update() + + function __update() { + for (var i = 0; i < children.length; i++) { + var child = children[i]; + var newVis = child == currentTab; + if (child.visible != newVis) { + child.visible = newVis; + if (child.status !== undefined) { + if (newVis) { + child.status = PageStatus.Activating; + child.status = PageStatus.Active; + } else { + child.status = PageStatus.Deactivating; + child.status = PageStatus.Inactive; + } + } + } + } + } + +} diff --git a/mardrone/imports/com/meego/TextArea.qml b/mardrone/imports/com/meego/TextArea.qml new file mode 100644 index 0000000..88df502 --- /dev/null +++ b/mardrone/imports/com/meego/TextArea.qml @@ -0,0 +1,545 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import Qt.labs.components 1.1 +import "UIConstants.js" as UI +import "EditBubble.js" as Popup +import "TextAreaHelper.js" as TextAreaHelper +import "Magnifier.js" as MagnifierPopup + +FocusScope { + id: root + + // Common public API + property alias text: textEdit.text + property alias placeholderText: prompt.text + + property alias font: textEdit.font + property alias cursorPosition: textEdit.cursorPosition + property alias readOnly: textEdit.readOnly + + property alias horizontalAlignment: textEdit.horizontalAlignment + property alias verticalAlignment: textEdit.verticalAlignment + + property alias selectedText: textEdit.selectedText + property alias selectionStart: textEdit.selectionStart + property alias selectionEnd: textEdit.selectionEnd + + property alias wrapMode: textEdit.wrapMode + property alias textFormat: textEdit.textFormat + // Property enableSoftwareInputPanel is DEPRECATED + property alias enableSoftwareInputPanel: textEdit.activeFocusOnPress + + property alias inputMethodHints: textEdit.inputMethodHints + + property bool errorHighlight: false + + property Item platformSipAttributes + + property bool platformEnableEditBubble: true + + property Item platformStyle: TextAreaStyle {} + property alias style: root.platformStyle + + property alias platformPreedit: inputMethodObserver.preedit + + onPlatformSipAttributesChanged: { + platformSipAttributes.registerInputElement(textEdit) + } + + function copy() { + textEdit.copy() + } + + function paste() { + textEdit.paste() + } + + function cut() { + textEdit.cut() + } + + // ensure propagation of forceActiveFocus + function forceActiveFocus() { + textEdit.forceActiveFocus() + } + + function select(start, end) { + textEdit.select(start, end) + } + + function selectAll() { + textEdit.selectAll() + } + + function selectWord() { + textEdit.selectWord() + } + + function positionAt(x, y) { + var p = mapToItem(textEdit, x, y); + return textEdit.positionAt(p.x, p.y) + } + + function positionToRectangle(pos) { + var rect = textEdit.positionToRectangle(pos) + var point = mapFromItem(textEdit, rect.x, rect.y) + rect.x = point.x; rect.y = point.y + return rect; + } + + function closeSoftwareInputPanel() { + console.log("TextArea's function closeSoftwareInputPanel is deprecated. Use function platformCloseSoftwareInputPanel instead.") + platformCloseSoftwareInputPanel() + } + + function platformCloseSoftwareInputPanel() { + inputContext.simulateSipClose(); + textEdit.closeSoftwareInputPanel(); + } + + function openSoftwareInputPanel() { + console.log("TextArea's function openSoftwareInputPanel is deprecated. Use function platformOpenSoftwareInputPanel instead.") + platformOpenSoftwareInputPanel() + } + + function platformOpenSoftwareInputPanel() { + inputContext.simulateSipOpen(); + textEdit.openSoftwareInputPanel(); + } + + Connections { + target: platformWindow + + onActiveChanged: { + if(platformWindow.active) { + if (!readOnly) { + if (activeFocus) { + platformOpenSoftwareInputPanel(); + repositionTimer.running = true; + } + } + } else { + if (activeFocus) { + platformCloseSoftwareInputPanel(); + Popup.close(textEdit); + } + } + } + + onAnimatingChanged: { + if (!platformWindow.animating && root.activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + } + } + + // private + property int __preeditDisabledMask: Qt.ImhHiddenText| + Qt.ImhNoPredictiveText| + Qt.ImhDigitsOnly| + Qt.ImhFormattedNumbersOnly| + Qt.ImhDialableCharactersOnly| + Qt.ImhEmailCharactersOnly| + Qt.ImhUrlCharactersOnly + + implicitWidth: platformStyle.defaultWidth + implicitHeight: Math.max (UI.FIELD_DEFAULT_HEIGHT, + textEdit.height + (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize)) + + onActiveFocusChanged: { + if (activeFocus && + !readOnly) { + platformOpenSoftwareInputPanel(); + repositionTimer.running = true; + } else if (!activeFocus) { + if (!readOnly) + platformCloseSoftwareInputPanel(); + + Popup.close(textEdit); + } + } + + BorderImage { + id: background + source: errorHighlight? + platformStyle.backgroundError: + readOnly? + platformStyle.backgroundDisabled: + textEdit.activeFocus? + platformStyle.backgroundSelected: + platformStyle.background + + anchors.fill: parent + border.left: root.platformStyle.backgroundCornerMargin; border.top: root.platformStyle.backgroundCornerMargin + border.right: root.platformStyle.backgroundCornerMargin; border.bottom: root.platformStyle.backgroundCornerMargin + } + + Text { + id: prompt + + anchors.fill: parent + anchors.leftMargin: UI.PADDING_XLARGE + anchors.rightMargin: UI.PADDING_XLARGE + anchors.topMargin: (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize) / 2 + anchors.bottomMargin: (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize) / 2 + + font: root.platformStyle.textFont + color: root.platformStyle.promptTextColor + elide: Text.ElideRight + + // opacity for default state + opacity: 0.0 + + states: [ + State { + name: "unfocused" + // memory allocation optimization: cursorPosition is checked to minimize displayText evaluations + when: !root.activeFocus && textEdit.cursorPosition == 0 && !textEdit.text && prompt.text && !textEdit.inputMethodComposing + PropertyChanges { target: prompt; opacity: 1.0; } + }, + State { + name: "focused" + // memory allocation optimization: cursorPosition is checked to minimize displayText evaluations + when: root.activeFocus && textEdit.cursorPosition == 0 && !textEdit.text && prompt.text && !textEdit.inputMethodComposing + PropertyChanges { target: prompt; opacity: 0.6; } + } + ] + + transitions: [ + Transition { + from: "unfocused"; to: "focused"; + reversible: true + SequentialAnimation { + PauseAnimation { duration: 60 } + NumberAnimation { target: prompt; properties: "opacity"; duration: 150 } + } + }, + Transition { + from: "focused"; to: ""; + reversible: true + SequentialAnimation { + PauseAnimation { duration: 60 } + NumberAnimation { target: prompt; properties: "opacity"; duration: 100 } + } + } + ] + } + + MouseArea { + enabled: !textEdit.activeFocus + z: enabled?1:0 + anchors.fill: parent + anchors.margins: UI.TOUCH_EXPANSION_MARGIN + onClicked: { + if (!textEdit.activeFocus) { + textEdit.forceActiveFocus(); + + // activate to preedit and/or move the cursor + var preeditDisabled = root.inputMethodHints & + root.__preeditDisabledMask + var injectionSucceeded = false; + var mappedMousePos = mapToItem(textEdit, mouseX, mouseY); + var newCursorPosition = textEdit.positionAt(mappedMousePos.x, mappedMousePos.y, TextInput.CursorOnCharacter); + if (!preeditDisabled + && !TextAreaHelper.atSpace(newCursorPosition) + && newCursorPosition != textEdit.text.length + && !(newCursorPosition == 0 || TextAreaHelper.atSpace(newCursorPosition - 1))) { + injectionSucceeded = TextAreaHelper.injectWordToPreedit(newCursorPosition); + } + if (!injectionSucceeded) { + textEdit.cursorPosition=newCursorPosition; + } + } + } + } + + TextEdit { + id: textEdit + + // Exposed for the edit bubble + property alias preedit: inputMethodObserver.preedit + property alias preeditCursorPosition: inputMethodObserver.preeditCursorPosition + + x: UI.PADDING_XLARGE + y: (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize) / 2 + width: parent.width - UI.PADDING_XLARGE * 2 + + font: root.platformStyle.textFont + color: root.platformStyle.textColor + selectByMouse: false + selectedTextColor: root.platformStyle.selectedTextColor + selectionColor: root.platformStyle.selectionColor + mouseSelectionMode: TextInput.SelectWords + wrapMode: TextEdit.Wrap + persistentSelection: false + focus: true + + function updateMagnifierPosition(posX, posY) { + var yAdjustment = 0 + var magnifier = MagnifierPopup.popup; + var cursorHeight = textEdit.positionToRectangle(0,0).height; + var mappedPos = mapToItem(magnifier.parent, posX - magnifier.width / 2, + posY - magnifier.height / 2 - cursorHeight - 70); + + magnifier.xCenter = mapToItem(magnifier.sourceItem, posX, 0).x; + magnifier.x = mappedPos.x; + if (-root.mapFromItem(magnifier.__rootElement(), 0,0).y - (posY - cursorHeight) < (magnifier.height / 1.5)) { + yAdjustment = Math.max(0,(magnifier.height / 1.5) + root.mapFromItem(magnifier.__rootElement(), 0,0).y - (posY - cursorHeight)); + } else { + yAdjustment = 0; + } + magnifier.yCenter = mapToItem(magnifier.sourceItem, 0, posY - cursorHeight + 50).y + magnifier.y = mappedPos.y + yAdjustment; + } + + Component.onDestruction: { + Popup.close(textEdit); + } + + onTextChanged: { + if(root.activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + + if (textEdit.preedit == "" && Popup.isOpened(textEdit) && !Popup.isChangingInput()) + Popup.close(textEdit); + } + + Connections { + target: TextAreaHelper.findFlickable(root.parent) + + onContentYChanged: if (root.activeFocus) TextAreaHelper.filteredInputContextUpdate(); + onContentXChanged: if (root.activeFocus) TextAreaHelper.filteredInputContextUpdate(); + onMovementEnded: inputContext.update(); + } + + Connections { + target: inputContext + + onSoftwareInputPanelVisibleChanged: { + if (activeFocus) + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + + onSoftwareInputPanelRectChanged: { + if (activeFocus) + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + } + + onCursorPositionChanged: { + if(!MagnifierPopup.isOpened() && activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation) + } + + if (MagnifierPopup.isOpened() && + Popup.isOpened(textEdit)) { + Popup.close(textEdit); + } else if ((!mouseFilter.attemptToActivate || + textEdit.cursorPosition == textEdit.text.length) && + Popup.isOpened(textEdit)) { + Popup.close(textEdit); + Popup.open(textEdit, + textEdit.positionToRectangle(textEdit.cursorPosition)); + } + } + + onSelectedTextChanged: { + if (Popup.isOpened(textEdit) && !Popup.isChangingInput()) { + Popup.close(textEdit); + } + } + + InputMethodObserver { + id: inputMethodObserver + + onPreeditChanged: { + if (Popup.isOpened(textEdit) && !Popup.isChangingInput()) { + Popup.close(textEdit); + } + } + + } + + Timer { + id: repositionTimer + interval: 350 + onTriggered: TextAreaHelper.repositionFlickable(contentMovingAnimation) + } + + PropertyAnimation { + id: contentMovingAnimation + property: "contentY" + duration: 200 + easing.type: Easing.InOutCubic + } + + MouseFilter { + id: mouseFilter + anchors.fill: parent + anchors.leftMargin: UI.TOUCH_EXPANSION_MARGIN - UI.PADDING_XLARGE + anchors.rightMargin: UI.TOUCH_EXPANSION_MARGIN - UI.PADDING_MEDIUM + anchors.topMargin: UI.TOUCH_EXPANSION_MARGIN - (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize) / 2 + anchors.bottomMargin: UI.TOUCH_EXPANSION_MARGIN - (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize) / 2 + + property bool attemptToActivate: false + property bool pressOnPreedit + + property variant editBubblePosition: Qt.point(0,0) + + onPressed: { + var mousePosition = textEdit.positionAt(mouse.x,mouse.y,TextEdit.CursorOnCharacter); + pressOnPreedit = textEdit.cursorPosition==mousePosition + var preeditDisabled = root.inputMethodHints & + root.__preeditDisabledMask + + attemptToActivate = !pressOnPreedit && !root.readOnly && !preeditDisabled && root.activeFocus && + !(mousePosition == 0 || TextAreaHelper.atSpace(mousePosition - 1) || TextAreaHelper.atSpace(mousePosition)); + mouse.filtered = true; + } + + onHorizontalDrag: { + // possible pre-edit word have to be committed before selection + if (root.activeFocus || root.readOnly) { + inputContext.reset() + parent.selectByMouse = true + attemptToActivate = false + } + } + + onPressAndHold:{ + // possible pre-edit word have to be commited before showing the magnifier + if ((root.text != "" || inputMethodObserver.preedit != "") && root.activeFocus) { + inputContext.reset() + attemptToActivate = false + parent.selectByMouse = false + MagnifierPopup.open(root); + var magnifier = MagnifierPopup.popup; + parent.cursorPosition = parent.positionAt(mouse.x,mouse.y) + parent.updateMagnifierPosition(mouse.x,mouse.y) + root.z = Number.MAX_VALUE + } + } + + onReleased:{ + if (MagnifierPopup.isOpened()) { + MagnifierPopup.close(); + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + + if (attemptToActivate) + inputContext.reset(); + + var newCursorPosition = textEdit.positionAt(mouse.x,mouse.y,TextEdit.CursorOnCharacter); + editBubblePosition = textEdit.positionToRectangle(newCursorPosition); + + if (attemptToActivate) { + var beforeText = textEdit.text; + + textEdit.cursorPosition = newCursorPosition; + var injectionSucceeded = false; + + if (!TextAreaHelper.atSpace(newCursorPosition) + && newCursorPosition != textEdit.text.length) { + injectionSucceeded = TextAreaHelper.injectWordToPreedit(newCursorPosition); + } + if (injectionSucceeded) { + mouse.filtered=true; + if (textEdit.preedit.length >=1 && textEdit.preedit.length <= 4) + editBubblePosition = textEdit.positionToRectangle(textEdit.cursorPosition); + } else { + textEdit.text=beforeText; + textEdit.cursorPosition=newCursorPosition; + } + attemptToActivate = false; + } else if (!parent.selectByMouse) { + if (!pressOnPreedit) inputContext.reset(); + textEdit.cursorPosition = textEdit.positionAt(mouse.x,mouse.y,TextEdit.CursorOnCharacter); + } + parent.selectByMouse = false; + } + onFinished: { + if (root.activeFocus && platformEnableEditBubble) { + if (textEdit.preedit.length == 0) + editBubblePosition = textEdit.positionToRectangle(textEdit.cursorPosition); + Popup.open(textEdit,editBubblePosition); + } + } + onMousePositionChanged: { + if (MagnifierPopup.isOpened() && !parent.selectByMouse) { + var pos = textEdit.positionAt (mouse.x,mouse.y) + var posNextLine = textEdit.positionAt (mouse.x, mouse.y + 1) + var posPrevLine = textEdit.positionAt (mouse.x, mouse.y - 1) + if (!(Math.abs(posNextLine - pos) > 1 || + Math.abs(posPrevLine - pos) > 1)) { + parent.cursorPosition = pos + } + parent.updateMagnifierPosition(mouse.x,mouse.y); + } + } + onDoubleClicked: { + // possible pre-edit word have to be committed before selection + inputContext.reset() + parent.selectByMouse = true + attemptToActivate = false + } + } + } + + + + InverseMouseArea { + anchors.fill: parent + anchors.margins: UI.TOUCH_EXPANSION_MARGIN + enabled: root.activeFocus + + onClickedOutside: { + if (Popup.isOpened(textEdit) && ((mouseX > Popup.geometry().left && mouseX < Popup.geometry().right) && + (mouseY > Popup.geometry().top && mouseY < Popup.geometry().bottom))) { + return; + } + + root.parent.focus = true; + } + } +} diff --git a/mardrone/imports/com/meego/TextAreaHelper.js b/mardrone/imports/com/meego/TextAreaHelper.js new file mode 100644 index 0000000..acd4f75 --- /dev/null +++ b/mardrone/imports/com/meego/TextAreaHelper.js @@ -0,0 +1,279 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +function findFlickable(component) { + var nextParent = component + var flickableItem = null + while(nextParent) { + if(nextParent.flicking !== undefined && nextParent.flickableDirection !== undefined) + flickableItem = nextParent + + nextParent = nextParent.parent + } + if (flickableItem) return flickableItem + return null +} + +function animateContentY(animation, flickable, newContentY) { + animation.target = flickable + animation.to = newContentY + animation.running = true +} + +function locateFlickableY(flickable) { + switch(screen.currentOrientation) { + case Screen.Landscape: + return flickable.mapToItem(null, flickable.x, flickable.y).y + + case Screen.LandscapeInverted: + return screen.displayHeight - flickable.mapToItem(null, flickable.x, flickable.y).y + + case Screen.Portrait: + return flickable.mapToItem(null, flickable.x, flickable.y).x + + case Screen.PortraitInverted: + return screen.displayWidth - flickable.mapToItem(null, flickable.x, flickable.y).x + } +} + +function getMargin() { + switch(screen.currentOrientation) { + case Screen.Landscape: + case Screen.LandscapeInverted: + return 40 + case Screen.Portrait: + case Screen.PortraitInverted: + return 48 + } + + return 0 +} + +function repositionFlickable(animation) { + inputContext.updateMicroFocus() + var mf = inputContext.microFocus + + if(mf.x == -1 && mf.y == -1) + return + + var object = findFlickable(parent) + + if(object){ + var flickable = object + + // Specifies area from bottom and top when repositioning should be triggered + var margin = getMargin() + var newContentY = flickable.contentY + var flickableY = locateFlickableY(flickable) + + switch(screen.currentOrientation) { + case Screen.Landscape: + if(flickableY + flickable.height - mf.height - margin < mf.y) { + // Find dY just to make textfield visible + var dY = mf.y - flickableY - flickable.height + // Center textfield + dY += flickable.height / 2 + newContentY += dY + } else if(flickableY + margin > mf.y) { + var dY = flickableY - mf.y + dY += flickable.height / 2 + newContentY -= dY + } + + break + + case Screen.LandscapeInverted: + // In inverted screen we need to compensate for the focus height + var invertedMfY = screen.displayHeight - mf.y - mf.height + + if(flickableY + flickable.height - mf.height - margin < invertedMfY) { + var dY = invertedMfY - flickableY - flickable.height + dY += flickable.height / 2 + mf.height / 2 + } else if(flickableY + margin > invertedMfY){ + var dY = flickableY - invertedMfY + dY += flickable.height / 2 - mf.height / 2 + newContentY -= dY + } + + break + + case Screen.Portrait: + if(flickableY + flickable.height - mf.width - margin < mf.x) { + var dY = mf.x - flickableY - flickable.height + dY += flickable.height / 2 + newContentY += dY + } else if(flickableY + margin > mf.x){ + var dY = flickableY - mf.x + dY += flickable.height / 2 + newContentY -= dY + } + + break + + case Screen.PortraitInverted: + var invertedMfX = screen.displayWidth - mf.x - mf.width + + if(flickableY + flickable.height - mf.width - margin < invertedMfX) { + var dY = invertedMfX - flickableY - flickable.height + mf.height + dY += flickable.height / 2 + mf.height + newContentY += dY + } else if(flickableY + margin > invertedMfX){ + var dY = flickableY - invertedMfX + dY += flickable.height / 2 - mf.height + newContentY -= dY + } + + break + } + + // If overpanned, set contentY to max possible value (reached bottom) + if(newContentY > flickable.contentHeight - flickable.height) + newContentY = flickable.contentHeight - flickable.height + + // If overpanned, set contentY to min possible value (reached top) + if(newContentY < 0) + newContentY = 0 + + if(newContentY != flickable.contentY) { + animateContentY(animation, flickable, newContentY) + } + } +} + +function injectWordToPreedit(newCursorPosition) { + var preeditStart = previousWordStart(newCursorPosition); + var preeditEnd = nextWordEnd(newCursorPosition); + + // copy word to preedit text + var preeditText = root.text.substring(preeditStart,preeditEnd); + + // inject preedit + cursorPosition = preeditStart; + + var eventCursorPosition = newCursorPosition-preeditStart; + + return inputContext.setPreeditText(preeditText, eventCursorPosition, 0, preeditText.length); +} + +function previousWordStart(pos) { + var ret = pos; + + if (ret && atWordSeparator(ret - 1)) { + ret--; + while (ret && atWordSeparator(ret - 1)) + ret--; + } else { + while (ret && !atSpace(ret - 1) && !atWordSeparator(ret - 1)) + ret--; + } + + return ret; +} + +function nextWordEnd(pos) { + var ret = pos; + var len = root.text.length; + + if (ret < len && atWordSeparator(ret)) { + ret++; + while (ret < len && atWordSeparator(ret)) + ret++; + } else { + while (ret < len && !atSpace(ret) && !atWordSeparator(ret)) + ret++; + } + + return ret; +} + +function atSpace(pos) { + var c = root.text.charAt(pos); + return c == ' ' + || c == '\t' + || c == '\n' + ; +} + +function atWordSeparator(pos) { + switch (root.text.charAt(pos)) { + case '.': + case ',': + case '?': + case '!': + case '@': + case '#': + case '$': + case ':': + case ';': + case '-': + case '<': + case '>': + case '[': + case ']': + case '(': + case ')': + case '{': + case '}': + case '=': + case '/': + case '+': + case '%': + case '&': + case '^': + case '*': + case '\'': + case '"': + case '`': + case '~': + case '|': + return true; + default: + return false; + } +} + +var MIN_UPDATE_INTERVAL = 30 +var lastUpdateTime +function filteredInputContextUpdate() { + if (Date.now() - lastUpdateTime > MIN_UPDATE_INTERVAL || !lastUpdateTime) { + inputContext.update(); + lastUpdateTime = Date.now(); + } +} diff --git a/mardrone/imports/com/meego/TextAreaStyle.qml b/mardrone/imports/com/meego/TextAreaStyle.qml new file mode 100644 index 0000000..73a7f6f --- /dev/null +++ b/mardrone/imports/com/meego/TextAreaStyle.qml @@ -0,0 +1,43 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +TextFieldStyle {} diff --git a/mardrone/imports/com/meego/TextField.qml b/mardrone/imports/com/meego/TextField.qml new file mode 100644 index 0000000..45ff87e --- /dev/null +++ b/mardrone/imports/com/meego/TextField.qml @@ -0,0 +1,571 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI +import "EditBubble.js" as Popup +import "TextAreaHelper.js" as TextAreaHelper +import "Magnifier.js" as MagnifierPopup +FocusScope { + id: root + + // Common public API + property alias text: textInput.text + property alias placeholderText: prompt.text + + property alias inputMethodHints: textInput.inputMethodHints + property alias font: textInput.font + property alias cursorPosition: textInput.cursorPosition + property alias maximumLength: textInput.maximumLength + property alias readOnly: textInput.readOnly + property alias acceptableInput: textInput.acceptableInput + property alias inputMask: textInput.inputMask + property alias validator: textInput.validator + + property alias selectedText: textInput.selectedText + property alias selectionStart: textInput.selectionStart + property alias selectionEnd: textInput.selectionEnd + + property alias echoMode: textInput.echoMode // ### TODO: declare own enum { Normal, Password } + + property bool errorHighlight: !acceptableInput + // Property enableSoftwareInputPanel is DEPRECATED + property alias enableSoftwareInputPanel: textInput.activeFocusOnPress + + property Item platformSipAttributes + + property bool platformEnableEditBubble: true + + property Item platformStyle: TextFieldStyle {} + + property alias style: root.platformStyle + + property Component customSoftwareInputPanel + + property Component platformCustomSoftwareInputPanel + + property alias platformPreedit: inputMethodObserver.preedit + + signal accepted + + onPlatformSipAttributesChanged: { + platformSipAttributes.registerInputElement(textInput) + } + + onCustomSoftwareInputPanelChanged: { + console.log("TextField's property customSoftwareInputPanel is deprecated. Use property platformCustomSoftwareInputPanel instead.") + platformCustomSoftwareInputPanel = customSoftwareInputPanel + } + + onPlatformCustomSoftwareInputPanelChanged: { + textInput.activeFocusOnPress = platformCustomSoftwareInputPanel == null + } + + + + function copy() { + textInput.copy() + } + + Connections { + target: platformWindow + + onActiveChanged: { + if(platformWindow.active) { + if (!readOnly) { + if (activeFocus) { + if (platformCustomSoftwareInputPanel != null) { + platformOpenSoftwareInputPanel(); + } else { + inputContext.simulateSipOpen(); + } + repositionTimer.running = true; + } + } + } else { + if (activeFocus) { + platformCloseSoftwareInputPanel(); + Popup.close(textInput); + } + } + } + + onAnimatingChanged: { + if (!platformWindow.animating && root.activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + } + } + + + function paste() { + textInput.paste() + } + + function cut() { + textInput.cut() + } + + function select(start, end) { + textInput.select(start, end) + } + + function selectAll() { + textInput.selectAll() + } + + function selectWord() { + textInput.selectWord() + } + + function positionAt(x) { + var p = mapToItem(textInput, x, 0); + return textInput.positionAt(p.x) + } + + function positionToRectangle(pos) { + var rect = textInput.positionToRectangle(pos) + rect.x = mapFromItem(textInput, rect.x, 0).x + return rect; + } + + // ensure propagation of forceActiveFocus + function forceActiveFocus() { + textInput.forceActiveFocus() + } + + function closeSoftwareInputPanel() { + console.log("TextField's function closeSoftwareInputPanel is deprecated. Use function platformCloseSoftwareInputPanel instead.") + platformCloseSoftwareInputPanel() + } + + function platformCloseSoftwareInputPanel() { + inputContext.simulateSipClose(); + if (inputContext.customSoftwareInputPanelVisible) { + inputContext.customSoftwareInputPanelVisible = false + inputContext.customSoftwareInputPanelComponent = null + inputContext.customSoftwareInputPanelTextField = null + } else { + textInput.closeSoftwareInputPanel(); + } + } + + function openSoftwareInputPanel() { + console.log("TextField's function openSoftwareInputPanel is deprecated. Use function platformOpenSoftwareInputPanel instead.") + platformOpenSoftwareInputPanel() + } + + function platformOpenSoftwareInputPanel() { + inputContext.simulateSipOpen(); + if (platformCustomSoftwareInputPanel != null && !inputContext.customSoftwareInputPanelVisible) { + inputContext.customSoftwareInputPanelTextField = root + inputContext.customSoftwareInputPanelComponent = platformCustomSoftwareInputPanel + inputContext.customSoftwareInputPanelVisible = true + } else { + textInput.openSoftwareInputPanel(); + } + } + + // private + property bool __expanding: true // Layout hint used but ToolBarLayout + property int __preeditDisabledMask: Qt.ImhHiddenText| + Qt.ImhNoPredictiveText| + Qt.ImhDigitsOnly| + Qt.ImhFormattedNumbersOnly| + Qt.ImhDialableCharactersOnly| + Qt.ImhEmailCharactersOnly| + Qt.ImhUrlCharactersOnly + + implicitWidth: platformStyle.defaultWidth + implicitHeight: UI.FIELD_DEFAULT_HEIGHT + + onActiveFocusChanged: { + if (!readOnly) { + if (activeFocus) { + if (platformCustomSoftwareInputPanel != null) { + platformOpenSoftwareInputPanel(); + } else { + inputContext.simulateSipOpen(); + } + + repositionTimer.running = true; + } else { + platformCloseSoftwareInputPanel(); + Popup.close(textInput); + } + } + } + + + BorderImage { + id: background + source: errorHighlight? + platformStyle.backgroundError: + readOnly? + platformStyle.backgroundDisabled: + textInput.activeFocus? + platformStyle.backgroundSelected: + platformStyle.background + + anchors.fill: parent + border.left: root.platformStyle.backgroundCornerMargin; border.top: root.platformStyle.backgroundCornerMargin + border.right: root.platformStyle.backgroundCornerMargin; border.bottom: root.platformStyle.backgroundCornerMargin + } + + Text { + id: prompt + + anchors {verticalCenter: parent.verticalCenter; left: parent.left; right: parent.right} + anchors.leftMargin: root.platformStyle.paddingLeft + anchors.rightMargin: root.platformStyle.paddingRight + anchors.verticalCenterOffset: root.platformStyle.baselineOffset + + font: root.platformStyle.textFont + color: root.platformStyle.promptTextColor + elide: Text.ElideRight + + // opacity for default state + opacity: 0.0 + + states: [ + State { + name: "unfocused" + // memory allocation optimization: cursorPosition is checked to minimize displayText evaluations + when: !root.activeFocus && textInput.cursorPosition == 0 && !textInput.text && prompt.text && !textInput.inputMethodComposing + PropertyChanges { target: prompt; opacity: 1.0; } + }, + State { + name: "focused" + // memory allocation optimization: cursorPosition is checked to minimize displayText evaluations + when: root.activeFocus && textInput.cursorPosition == 0 && !textInput.text && prompt.text && !textInput.inputMethodComposing + PropertyChanges { target: prompt; opacity: 0.6; } + } + ] + + transitions: [ + Transition { + from: "unfocused"; to: "focused"; + reversible: true + SequentialAnimation { + PauseAnimation { duration: 60 } + NumberAnimation { target: prompt; properties: "opacity"; duration: 150 } + } + }, + Transition { + from: "focused"; to: ""; + reversible: true + SequentialAnimation { + PauseAnimation { duration: 60 } + NumberAnimation { target: prompt; properties: "opacity"; duration: 100 } + } + } + ] + } + + MouseArea { + enabled: !textInput.activeFocus + z: enabled?1:0 + anchors.fill: parent + anchors.margins: UI.TOUCH_EXPANSION_MARGIN + onClicked: { + if (!textInput.activeFocus) { + textInput.forceActiveFocus(); + + // activate to preedit and/or move the cursor + var preeditDisabled = root.inputMethodHints & + root.__preeditDisabledMask + var injectionSucceeded = false; + var newCursorPosition = textInput.positionAt(mapToItem(textInput, mouseX, mouseY).x,TextInput.CursorOnCharacter); + if (!preeditDisabled + && !TextAreaHelper.atSpace(newCursorPosition) + && newCursorPosition != textInput.text.length + && !(newCursorPosition == 0 || TextAreaHelper.atSpace(newCursorPosition - 1))) { + injectionSucceeded = TextAreaHelper.injectWordToPreedit(newCursorPosition); + } + if (!injectionSucceeded) { + textInput.cursorPosition=newCursorPosition; + } + } + } + } + + TextInput { + id: textInput + + property alias preedit: inputMethodObserver.preedit + property alias preeditCursorPosition: inputMethodObserver.preeditCursorPosition + + anchors {verticalCenter: parent.verticalCenter; left: parent.left; right: parent.right} + anchors.leftMargin: root.platformStyle.paddingLeft + anchors.rightMargin: root.platformStyle.paddingRight + anchors.verticalCenterOffset: root.platformStyle.baselineOffset + + passwordCharacter: "\u2022" + font: root.platformStyle.textFont + color: root.platformStyle.textColor + selectByMouse: false + selectedTextColor: root.platformStyle.selectedTextColor + selectionColor: root.platformStyle.selectionColor + mouseSelectionMode: TextInput.SelectWords + focus: true + + onAccepted: { root.accepted() } + + Component.onDestruction: { + Popup.close(textInput); + } + + Connections { + target: TextAreaHelper.findFlickable(root.parent) + + onContentYChanged: if (root.activeFocus) TextAreaHelper.filteredInputContextUpdate(); + onContentXChanged: if (root.activeFocus) TextAreaHelper.filteredInputContextUpdate(); + onMovementEnded: inputContext.update(); + } + + Connections { + target: inputContext + + onSoftwareInputPanelRectChanged: { + if (activeFocus) { + repositionTimer.running = true + } + } + } + + onTextChanged: { + if(root.activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation) + } + + if (Popup.isOpened(textInput) && !Popup.isChangingInput()) + Popup.close(textInput); + } + + onCursorPositionChanged: { + if (MagnifierPopup.isOpened() && + Popup.isOpened()) { + Popup.close(textInput); + } else if ((!mouseFilter.attemptToActivate || + textInput.cursorPosition == textInput.text.length) && + Popup.isOpened(textInput) && + !Popup.isChangingInput()) { + Popup.close(textInput); + Popup.open(textInput, + textInput.positionToRectangle(textInput.cursorPosition)); + } + } + + onSelectedTextChanged: { + if (Popup.isOpened(textInput) && !Popup.isChangingInput()) { + Popup.close(textInput); + } + } + + InputMethodObserver { + id: inputMethodObserver + + onPreeditChanged: { + if(root.activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation) + } + + if (Popup.isOpened(textInput) && !Popup.isChangingInput()) { + Popup.close(textInput); + } + } + } + + Timer { + id: repositionTimer + interval: 350 + onTriggered: { + TextAreaHelper.repositionFlickable(contentMovingAnimation) + } + } + + PropertyAnimation { + id: contentMovingAnimation + property: "contentY" + duration: 200 + easing.type: Easing.InOutCubic + } + + MouseFilter { + id: mouseFilter + anchors.fill: parent + anchors.leftMargin: UI.TOUCH_EXPANSION_MARGIN - root.platformStyle.paddingLeft + anchors.rightMargin: UI.TOUCH_EXPANSION_MARGIN - root.platformStyle.paddingRight + anchors.topMargin: UI.TOUCH_EXPANSION_MARGIN - ((root.height - parent.height) / 2) + anchors.bottomMargin: UI.TOUCH_EXPANSION_MARGIN - ((root.height - parent.height) / 2) + + property bool attemptToActivate: false + property bool pressOnPreedit: false + property int oldCursorPosition: 0 + + property variant editBubblePosition: Qt.point(0,0) + + onPressed: { + var mousePosition = textInput.positionAt(mouse.x,TextInput.CursorOnCharacter); + pressOnPreedit = textInput.cursorPosition==mousePosition + oldCursorPosition = textInput.cursorPosition; + var preeditDisabled = root.inputMethodHints & + root.__preeditDisabledMask + + attemptToActivate = !pressOnPreedit && !root.readOnly && !preeditDisabled && root.activeFocus && + !(mousePosition == 0 || TextAreaHelper.atSpace(mousePosition - 1) || TextAreaHelper.atSpace(mousePosition)); + mouse.filtered = true; + } + + onDelayedPressSent: { + if (textInput.preedit) { + textInput.cursorPosition = oldCursorPosition; + } + } + + onHorizontalDrag: { + // possible pre-edit word have to be commited before selection + if (root.activeFocus || root.readOnly) { + inputContext.reset() + parent.selectByMouse = true + attemptToActivate = false + } + } + + onPressAndHold:{ + // possible pre-edit word have to be commited before showing the magnifier + if ((root.text != "" || inputMethodObserver.preedit != "") && root.activeFocus) { + inputContext.reset() + attemptToActivate = false + MagnifierPopup.open(root); + var magnifier = MagnifierPopup.popup; + var cursorPos = textInput.positionToRectangle(0); + var mappedPosMf = mapFromItem(parent,mouse.x,cursorPos.y+cursorPos.height); + magnifier.xCenter = mapToItem(magnifier.sourceItem,mappedPosMf.x,0).x; + var mappedPos = mapToItem(magnifier.parent, mappedPosMf.x - magnifier.width / 2, + textInput.y - 120 - UI.MARGIN_XLARGE - (height / 2)); + var yAdjustment = -mapFromItem(magnifier.__rootElement(), 0, 0).y < magnifier.height / 2.5 ? magnifier.height / 2.5 + mapFromItem(magnifier.__rootElement(), 0,0).y : 0 + magnifier.x = mappedPos.x; + magnifier.y = mappedPos.y + yAdjustment; + magnifier.yCenter = mapToItem(magnifier.sourceItem,0,mappedPosMf.y).y; + parent.cursorPosition = textInput.positionAt(mouse.x) + } + } + + onReleased: { + if (MagnifierPopup.isOpened()) { + MagnifierPopup.close(); + } + + if (attemptToActivate) + inputContext.reset(); + + var newCursorPosition = textInput.positionAt(mouse.x,TextInput.CursorOnCharacter); + editBubblePosition = textInput.positionToRectangle(newCursorPosition); + + if (attemptToActivate) { + var beforeText = textInput.text; + + textInput.cursorPosition = newCursorPosition; + var injectionSucceeded = false; + + if (!TextAreaHelper.atSpace(newCursorPosition) + && newCursorPosition != textInput.text.length) { + injectionSucceeded = TextAreaHelper.injectWordToPreedit(newCursorPosition); + } + if (injectionSucceeded) { + mouse.filtered=true; + if (textInput.preedit.length >=1 && textInput.preedit.length <= 4) + editBubblePosition = textInput.positionToRectangle(textInput.cursorPosition+1) + } else { + textInput.text=beforeText; + textInput.cursorPosition=newCursorPosition; + } + } else if (!parent.selectByMouse) { + if (!pressOnPreedit) inputContext.reset(); + textInput.cursorPosition = textInput.positionAt(mouse.x,TextInput.CursorOnCharacter); + } + parent.selectByMouse = false; + } + + onFinished: { + if (root.activeFocus && platformEnableEditBubble) { + if (textInput.preedit.length == 0) + editBubblePosition = textInput.positionToRectangle(textInput.cursorPosition); + Popup.open(textInput,editBubblePosition); + + } + attemptToActivate = false + } + + onMousePositionChanged: { + if (MagnifierPopup.isOpened() && !parent.selectByMouse) { + textInput.cursorPosition = textInput.positionAt(mouse.x) + var magnifier = MagnifierPopup.popup; + var mappedPosMf = mapFromItem(parent,mouse.x,0); + var mappedPos = mapToItem(magnifier.parent,mappedPosMf.x - magnifier.width / 2.0, 0); + magnifier.xCenter = mapToItem(magnifier.sourceItem,mappedPosMf.x,0).x; + magnifier.x = mappedPos.x; + } + } + + onDoubleClicked: { + // possible pre-edit word have to be commited before selection + inputContext.reset() + parent.selectByMouse = true + attemptToActivate = false + } + } + } + + InverseMouseArea { + anchors.fill: parent + anchors.margins: UI.TOUCH_EXPANSION_MARGIN + enabled: textInput.activeFocus + onClickedOutside: { + if (Popup.isOpened(textInput) && ((mouseX > Popup.geometry().left && mouseX < Popup.geometry().right) && + (mouseY > Popup.geometry().top && mouseY < Popup.geometry().bottom))) { + return; + } + root.parent.focus = true; + } + } +} diff --git a/mardrone/imports/com/meego/TextFieldStyle.qml b/mardrone/imports/com/meego/TextFieldStyle.qml new file mode 100644 index 0000000..646ef44 --- /dev/null +++ b/mardrone/imports/com/meego/TextFieldStyle.qml @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Item { + property alias textFont: textProperties.font + property color textColor: UI.COLOR_FOREGROUND + property color selectedTextColor: UI.COLOR_INVERTED_FOREGROUND + property color selectionColor: theme.selectionColor + + property color promptTextColor: UI.COLOR_SECONDARY_FOREGROUND + + property url background: "image://theme/meegotouch-textedit-background" + property url backgroundSelected: "image://theme/" + theme.colorString + "meegotouch-textedit-background-selected" + property url backgroundDisabled: "image://theme/meegotouch-textedit-background-disabled" + property url backgroundError: "image://theme/meegotouch-textedit-background-error" + property real backgroundCornerMargin: UI.CORNER_MARGINS + + property real paddingLeft: UI.PADDING_XLARGE + property real paddingRight: UI.PADDING_XLARGE + property real paddingTop // DEPRECATED + property real paddingBottom // DEPRECATED + + property real baselineOffset: 2 + property real defaultWidth: 250 + + property real touchExpansionMargin: UI.TOUCH_EXPANSION_MARGIN + + Text { + id: textProperties + font.family: UI.FONT_FAMILY_LIGHT + font.pixelSize: UI.FONT_DEFAULT + visible: false + } +} diff --git a/mardrone/imports/com/meego/ToolBar.qml b/mardrone/imports/com/meego/ToolBar.qml new file mode 100644 index 0000000..4bce4c1 --- /dev/null +++ b/mardrone/imports/com/meego/ToolBar.qml @@ -0,0 +1,305 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// The ToolBar is a container for toolbar items such as ToolItem or ToolButton. + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + + width: parent ? parent.width : 0 + height: bgImage.height + + // Dummy property to allow qt component deprecated API clients to fail more gracefully + property bool __hidden: false + + property int privateVisibility: ToolBarVisibility.Visible + + // Styling for the ToolBar + property Style platformStyle: ToolBarStyle {} + + // Deprecated, TODO remove + property alias style: root.platformStyle + + // Shadows: + Image { + anchors.top : bgImage.top + anchors.right: bgImage.left + anchors.bottom : bgImage.bottom + source: "image://theme/meegotouch-menu-shadow-left" + } + Image { + anchors.bottom : bgImage.top + anchors.left: bgImage.left + anchors.right : bgImage.right + source: "image://theme/meegotouch-menu-shadow-top" + } + Image { + anchors.top : bgImage.top + anchors.left: bgImage.right + anchors.bottom : bgImage.bottom + source: "image://theme/meegotouch-menu-shadow-right" + } + Image { + anchors.top : bgImage.bottom + anchors.left: bgImage.left + anchors.right : bgImage.right + source: "image://theme/meegotouch-menu-shadow-bottom" + } + // Toolbar background. + BorderImage { + id: bgImage + width: root.width + border.left: 10 + border.right: 10 + border.top: 10 + border.bottom: 10 + source: platformStyle.background + + // Mousearea that eats clicks so they don't go through the toolbar to content + // that may exist below it in z-order, such as unclipped listview items. + MouseArea { anchors.fill: parent } + } + + states: [ + // Inactive state. + State { + name: "hidden" + when: privateVisibility == ToolBarVisibility.Hidden || tools == null + PropertyChanges { target: root; height: 0; } + }, + State { + name: "HiddenImmediately" + when: privateVisibility == ToolBarVisibility.HiddenImmediately + PropertyChanges { target: root; height: 0; } + }, + State { + name: "" + when: !(privateVisibility == ToolBarVisibility.Visible || tools == null) + PropertyChanges { target: root; height: bgImage.height } + } + + ] + + transitions: [ + // Transition between active and inactive states. + Transition { + from: ""; to: "hidden"; reversible: true + ParallelAnimation { + PropertyAnimation { properties: "height"; easing.type: Easing.InOutExpo; duration: platformStyle.visibilityTransitionDuration } + } + } + ] + + // The current set of tools. + property Item tools: null + + onToolsChanged: { + __performTransition(__transition || transition); + __transition = undefined; + } + + // The transition type. One of the following: + // set an instantaneous change (default) + // push follows page stack push animation + // pop follows page stack pop animation + // replace follows page stack replace animation + property string transition: "set" + + // The currently displayed container; null if none. + property Item __currentContainer: null + + // Alternating containers used for transitions. + property Item __containerA: null + property Item __containerB: null + + // The transition to perform next. + property variant __transition + + // Sets the tools with a transition. + function setTools(tools, transition) { + __transition = transition; + root.tools = tools; + } + + // Performs a transition between tools in the toolbar. + function __performTransition(transition) { + // lazily create containers if they have not been created + if (!__currentContainer) { + // Parent is bgImage because it doesn't change height when toolbar gets hidden + __containerA = containerComponent.createObject(bgImage); + __containerB = containerComponent.createObject(bgImage); + __currentContainer = __containerB; + } + + // no transition if the tools are unchanged + if (__currentContainer.tools == tools) { + return; + } + + // select container states based on the transition animation + var transitions = { + "set": { "new": "", "old": "hidden" }, + "push": { "new": "right", "old": "left" }, + "pop": { "new": "left", "old": "right" }, + "replace": { "new": "front", "old": "back" } + }; + var animation = transitions[transition]; + + // initialize the free container + var container = __currentContainer == __containerA ? __containerB : __containerA; + container.state = "hidden"; + if (tools) { + container.tools = tools; + container.owner = tools.parent; + tools.parent = container; + tools.visible = true; + } + + // perform transition + __currentContainer.state = animation["old"]; + if (tools) { + container.state = animation["new"]; + container.state = ""; + } + + __currentContainer = container; + } + + // Component for toolbar containers. + Component { + id: containerComponent + + Item { + id: container + + width: parent ? parent.width : 0 + height: parent ? parent.height : 0 + + // The states correspond to the different possible positions of the container. + state: "hidden" + + // The tools held by this container. + property Item tools: null + // The owner of the tools. + property Item owner: null + + states: [ + // Start state for pop entry, end state for push exit. + State { + name: "left" + PropertyChanges { target: container; x: -30; opacity: 0.0 } + }, + // Start state for push entry, end state for pop exit. + State { + name: "right" + PropertyChanges { target: container; x: 30; opacity: 0.0 } + }, + // Start state for replace entry. + State { + name: "front" + PropertyChanges { target: container; scale: 1.25; opacity: 0.0 } + }, + // End state for replace exit. + State { + name: "back" + PropertyChanges { target: container; scale: 0.85; opacity: 0.0 } + }, + // Inactive state. + State { + name: "hidden" + PropertyChanges { target: container; visible: false } + StateChangeScript { + script: { + if (container.tools) { + // re-parent back to original owner + tools.visible = false; + tools.parent = owner; + + // reset container + container.tools = container.owner = null; + } + } + } + } + ] + + transitions: [ + // Pop entry and push exit transition. + Transition { + from: ""; to: "left"; reversible: true + SequentialAnimation { + PropertyAnimation { properties: "x,opacity"; easing.type: Easing.InCubic; duration: platformStyle.contentTransitionDuration / 2 } + PauseAnimation { duration: platformStyle.contentTransitionDuration / 2 } + ScriptAction { script: if (state == "left") state = "hidden"; } + } + }, + // Push entry and pop exit transition. + Transition { + from: ""; to: "right"; reversible: true + SequentialAnimation { + PropertyAnimation { properties: "x,opacity"; easing.type: Easing.InCubic; duration: platformStyle.contentTransitionDuration / 2 } + PauseAnimation { duration: platformStyle.contentTransitionDuration / 2 } + ScriptAction { script: if (state == "right") state = "hidden"; } + } + }, + Transition { + // Replace entry transition. + from: "front"; to: ""; + SequentialAnimation { + PropertyAnimation { properties: "scale,opacity"; easing.type: Easing.InOutExpo; duration: platformStyle.contentTransitionDuration } + } + }, + Transition { + // Replace exit transition. + from: ""; to: "back"; + SequentialAnimation { + PropertyAnimation { properties: "scale,opacity"; easing.type: Easing.InOutExpo; duration: platformStyle.contentTransitionDuration } + ScriptAction { script: if (state == "back") state = "hidden"; } + } + } + ] + + } + } + +} diff --git a/mardrone/imports/com/meego/ToolBarLayout.js b/mardrone/imports/com/meego/ToolBarLayout.js new file mode 100644 index 0000000..691b63a --- /dev/null +++ b/mardrone/imports/com/meego/ToolBarLayout.js @@ -0,0 +1,164 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/// Helper code that is needed by ToolBarLayout. + +var connectedItems = []; + +// Find item in an array +function contains(container, obj) { + for (var i = 0 ; i < container.length; i++) { + if (container[i] == obj) + return true; + } + return false +} + +// Remove item from an array +function remove(container, obj) +{ + for (var i = 0 ; i < container.length ; i++ ) + if (container[i] == obj) + container.splice(i,1); +} + +// Helper function to give us the sender id on slots +// This is needed to remove connectens on a reparent +Function.prototype.bind = function() { + var func = this; + var thisObject = arguments[0]; + var args = Array.prototype.slice.call(arguments, 1); + return function() { + return func.apply(thisObject, args); + } +} + +// Called whenever a child is added or removed in the toolbar +function childrenChanged() { + for (var i = 0; i < children.length; i++) { + if (!contains(connectedItems, children[i])) { + connectedItems.push(children[i]); + children[i].visibleChanged.connect(layout); + children[i].parentChanged.connect(cleanup.bind(children[i])); + } + } +} + +// Disconnects signals connected by this layout +function cleanup() { + remove(connectedItems, this); + this.visibleChanged.disconnect(layout); + this.parentChanged.disconnect(arguments.callee); +} + +// Main layout function +function layout() { + + if (parent === null || width === 0) + return; + + var i; + var items = new Array(); // Keep track of visible items + var expandingItems = new Array(); // Keep track of expandingItems for tabs + var widthOthers = 0; + + for (i = 0; i < children.length; i++) { + if (children[i].visible) { + items.push(children[i]) + + // Center all items vertically + items[0].y = (function() {return height / 2 - items[0].height / 2}) + // Find out which items are expanding + if (children[i].__expanding) { + expandingItems.push(children[i]) + } else { + // Calculate the space that fixed size items take + widthOthers += children[i].width; + } + } + } + + if (items.length === 0) + return; + + // Extra padding is applied if the leftMost or rightmost widget is expanding (note** removed on new design) + var leftPadding = 0 + var rightPadding = 0 + + // In LandScape mode we add extra margin to keep contents centered + // for two basic cases + if (items.length == 2 && screen.currentOrientation == Screen.Landscape) { + // expanding item on left + if (expandingItems.length > 0 && items[0].__expanding && !items[items.length-1].__expanding) + leftPadding += items[items.length-1].width + + // expanding item is on right + if (expandingItems.length > 0 && items[items.length-1].__expanding && !items[0].__expanding) + rightPadding += items[0].width + } + + var width = toolbarLayout.width - leftPadding - rightPadding + + // Calc expandingItems and tabrows + for (i = 0; i < expandingItems.length; i++) + expandingItems[i].width = (width - widthOthers) / expandingItems.length + + var lastItem = items[items.length-1] ? items[items.length-1] : undefined; + + // Space to be divided between first and last items + var toolBox = width - (items[0] ? items[0].width : 0) - + (lastItem ? lastItem.width : 0); + + // |X X X| etc. + var spacingBetween = toolBox; + for (i = 1; i < items.length - 1; i++) + spacingBetween -= items[i].width; + items[0].x = leftPadding + + // Calculate spacing between items + spacingBetween /= items.length - 1; + + // Starting after first item + var dX = items[0].width + spacingBetween; + for (i = 1; i < items.length; i++) { + items[i].x = dX + leftPadding; + dX += spacingBetween + items[i].width; + } +} diff --git a/mardrone/imports/com/meego/ToolBarLayout.qml b/mardrone/imports/com/meego/ToolBarLayout.qml new file mode 100644 index 0000000..e709de6 --- /dev/null +++ b/mardrone/imports/com/meego/ToolBarLayout.qml @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// ToolBarLayout is a container for items on a toolbar that automatically +// implements an appropriate layout for its children. + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI +import "ToolBarLayout.js" as Layout + +Item { + id: toolbarLayout + + width: visible && parent ? parent.width : 0 + height: visible && parent ? parent.height : 0 + + onWidthChanged: Layout.layout() + onHeightChanged: Layout.layout() + onChildrenChanged: Layout.childrenChanged() + Component.onCompleted: Layout.layout() +} diff --git a/mardrone/imports/com/meego/ToolBarStyle.qml b/mardrone/imports/com/meego/ToolBarStyle.qml new file mode 100644 index 0000000..f2b084d --- /dev/null +++ b/mardrone/imports/com/meego/ToolBarStyle.qml @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +Style { + // Background + property url background: "image://theme/meegotouch-toolbar-" + + ((screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted) ? "portrait" : "landscape") + + __invertedString + "-background" + + property int visibilityTransitionDuration: 250 + property int contentTransitionDuration: 400 +} diff --git a/mardrone/imports/com/meego/ToolButton.qml b/mardrone/imports/com/meego/ToolButton.qml new file mode 100644 index 0000000..4ff234c --- /dev/null +++ b/mardrone/imports/com/meego/ToolButton.qml @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// ToolButton is a push-button style button intended for use with toolbars. + +import QtQuick 1.1 +import "." 1.0 + +Button { + id: toolButton + + //Removes button background if set to true + property bool flat: false + + property QtObject platformStyle: ToolButtonStyle { backgroundVisible: !toolButton.flat} + + //Deprecated item, REMOVE THIS + property QtObject style: toolButton.platformStyle + + implicitWidth: platformStyle.buttonWidth + implicitHeight: platformStyle.buttonHeight +} diff --git a/mardrone/imports/com/meego/ToolButtonRow.qml b/mardrone/imports/com/meego/ToolButtonRow.qml new file mode 100644 index 0000000..01a845b --- /dev/null +++ b/mardrone/imports/com/meego/ToolButtonRow.qml @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Item { + default property alias children: row.children + property bool __expanding: true // Layout hint used but ToolBarLayout + Row{ + id: row + width: Math.min(parent.width, childrenRect.width) + spacing: UI.PADDING_LARGE + anchors.centerIn: parent + } +} diff --git a/mardrone/imports/com/meego/ToolButtonStyle.qml b/mardrone/imports/com/meego/ToolButtonStyle.qml new file mode 100644 index 0000000..a6439c9 --- /dev/null +++ b/mardrone/imports/com/meego/ToolButtonStyle.qml @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +ButtonStyle { + buttonWidth: 186 + buttonHeight: 42 + + // Font + fontPixelSize: 22 + fontCapitalization: Font.MixedCase + fontWeight: Font.Bold + horizontalAlignment: Text.AlignHCenter + + // Background + backgroundMarginRight: 15 + backgroundMarginLeft: 15 + backgroundMarginTop: 15 + backgroundMarginBottom: 15 + property bool backgroundVisible: true + + background: backgroundVisible ? "image://theme/meegotouch-button-navigationbar-button" + __invertedString + "-background" : "" + pressedBackground: backgroundVisible ? "image://theme/meegotouch-button-navigationbar-button" + __invertedString + "-background-pressed" : "" + disabledBackground: backgroundVisible ? "image://theme/meegotouch-button-navigationbar-button" + __invertedString + "-background-disabled" : "" +} diff --git a/mardrone/imports/com/meego/ToolIcon.qml b/mardrone/imports/com/meego/ToolIcon.qml new file mode 100644 index 0000000..9b7dda1 --- /dev/null +++ b/mardrone/imports/com/meego/ToolIcon.qml @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// ToolItem is a component that is used to add actions to toolbars. + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + property url iconSource + property string platformIconId + + // TODO: deprecated + property alias iconId: root.platformIconId + width: 80; height: 64 + signal clicked + + // Styling for the ToolItem + property Style platformStyle: ToolItemStyle{} + + // TODO: deprecated + property Style style: root.platformStyle + + Image { + source: mouseArea.pressed ? platformStyle.pressedBackground : "" + anchors.centerIn: parent + + Image { + function handleIconSource(iconId) { + if (iconSource != "") + return iconSource; + + var prefix = "icon-m-" + // check if id starts with prefix and use it as is + // otherwise append prefix and use the inverted version if required + if (iconId.indexOf(prefix) !== 0) + iconId = prefix.concat(iconId).concat(theme.inverted ? "-white" : ""); + return "image://theme/" + iconId; + } + + source: handleIconSource(iconId) + anchors.centerIn: parent + } + } + + MouseArea { + id: mouseArea + anchors.fill: parent + } + + Component.onCompleted: mouseArea.clicked.connect(clicked) +} diff --git a/mardrone/imports/com/meego/ToolItem.qml b/mardrone/imports/com/meego/ToolItem.qml new file mode 100644 index 0000000..08414e3 --- /dev/null +++ b/mardrone/imports/com/meego/ToolItem.qml @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// ToolItem is a component that is used to add actions to toolbars. + +import QtQuick 1.1 +import "." 1.0 + +ToolIcon { + Component.onCompleted: { + print("Warning: ToolItem is deprecated, use ToolIcon instead") + } +} diff --git a/mardrone/imports/com/meego/ToolItemStyle.qml b/mardrone/imports/com/meego/ToolItemStyle.qml new file mode 100644 index 0000000..6d7a13c --- /dev/null +++ b/mardrone/imports/com/meego/ToolItemStyle.qml @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + // Background + property url pressedBackground: "image://theme/meegotouch-button-navigationbar-button"+__invertedString+"-background-pressed" +} diff --git a/mardrone/imports/com/meego/UIConstants.js b/mardrone/imports/com/meego/UIConstants.js new file mode 100644 index 0000000..e0027af --- /dev/null +++ b/mardrone/imports/com/meego/UIConstants.js @@ -0,0 +1,120 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +.pragma library + +var FONT_FAMILY = "Nokia Pure Text"; +var FONT_FAMILY_LIGHT = "Nokia Pure Text Light"; +var FONT_DEFAULT_SIZE = 24; // DEPRECATED + +var FONT_XLARGE = 32; +var FONT_LARGE = 28; +var FONT_SLARGE = 26; +var FONT_DEFAULT = 24; +var FONT_LSMALL = 22; +var FONT_SMALL = 20; +var FONT_XSMALL = 18; +var FONT_XXSMALL = 16; + +var COLOR_FOREGROUND = "#191919"; // Text color +var COLOR_SECONDARY_FOREGROUND = "#a6a8ab"; // Secondary text +var COLOR_BACKGROUND = "#E0E1E2"; // Background +var COLOR_SELECT = "#4591ff"; //Selected item background + +var COLOR_INVERTED_FOREGROUND = "#ffffff"; // Text color +var COLOR_INVERTED_SECONDARY_FOREGROUND = "#8c8c8c"; // Secondary text +var COLOR_INVERTED_BACKGROUND = "#000000"; // Background + +var COLOR_DISABLED_FOREGROUND = "#b2b2b4"; + +var COLOR_BUTTON_FOREGROUND = "#000000" //text color +var COLOR_BUTTON_INVERTED_FOREGROUND = "#ffffff" //inverted text color +var COLOR_BUTTON_SECONDARY_FOREGROUND = "#8c8c8c" //secondary text +var COLOR_BUTTON_DISABLED_FOREGROUND = "#B2B2B4" //disabled text +var COLOR_BUTTON_BACKGROUND = "#000000" //background + +var SIZE_ICON_DEFAULT = 32; +var SIZE_ICON_LARGE = 48; + +var CORNER_MARGINS = 22; + +var MARGIN_DEFAULT = 0; +var MARGIN_XLARGE = 16; + +// Distance in pixels from the widget bounding box inside which a release +// event would still be accepted and trigger the widget +var RELEASE_MISS_DELTA = 30; + +var OPACITY_ENABLED = 1.0; +var OPACITY_DISABLED = 0.5; +var SIZE_BUTTON = 64; + +var PADDING_XSMALL = 2; +var PADDING_SMALL = 4; +var PADDING_MEDIUM = 6; +var PADDING_LARGE = 8; +var PADDING_DOUBLE = 12; +var PADDING_XLARGE = 16; +var PADDING_XXLARGE = 24; + +var SCROLLDECORATOR_SHORT_MARGIN = 8; +var SCROLLDECORATOR_LONG_MARGIN = 4; + +var TOUCH_EXPANSION_MARGIN = -12; + +var BUTTON_WIDTH = 322; +var BUTTON_HEIGHT = 51; +var BUTTON_LABEL_MARGIN = 10; + +var FIELD_DEFAULT_HEIGHT = 52; + +//Common UI layouts +var DEFAULT_MARGIN = 16; +var BUTTON_SPACING = 6; +var HEADER_DEFAULT_HEIGHT_PORTRAIT = 72; +var HEADER_DEFAULT_HEIGHT_LANDSCAPE = 46; +var HEADER_DEFAULT_TOP_SPACING_PORTRAIT = 20; +var HEADER_DEFAULT_BOTTOM_SPACING_PORTRAIT = 20; +var HEADER_DEFAULT_TOP_SPACING_LANDSCAPE = 16; +var HEADER_DEFAULT_BOTTOM_SPACING_LANDSCAPE = 14; +var LIST_ITEM_HEIGHT_SMALL = 64; +var LIST_ITEM_HEIGHT_DEFAULT = 80; + + diff --git a/mardrone/imports/com/meego/Utils.js b/mardrone/imports/com/meego/Utils.js new file mode 100644 index 0000000..1d5f49a --- /dev/null +++ b/mardrone/imports/com/meego/Utils.js @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +.pragma library + +/* + Get the first flickable in hierarchy. +*/ +function findFlickable(item) +{ + var next = item; + + while (next) { + if (next.flicking !== undefined && next.flickableDirection !== undefined) + return next; + + next = next.parent; + } + + return null; +} + +/* + Get the root item given an element and root item's name. + If root item name is not given, default is 'windowContent'. +*/ +function findRootItem(item, objectName) +{ + var next = item; + + var rootItemName = "windowContent"; + if (typeof(objectName) != 'undefined') { + rootItemName = objectName; + } + + if (next) { + while (next.parent) { + next = next.parent; + + if (rootItemName == next.objectName) { + break; + } + } + } + + return next; +} + +/* + Get the root item for Notification banner + It will return 'appWindowContent' or 'windowContent' element if found. +*/ +function findRootItemNotificationBanner(item) +{ + var next = item; + + if (next) { + while (next.parent) { + if (next.objectName == "appWindowContent") + break; + + if (next.objectName == "windowContent") + break; + + next = next.parent; + } + } + + return next; +} diff --git a/mardrone/imports/com/meego/Window.qml b/mardrone/imports/com/meego/Window.qml new file mode 100644 index 0000000..e0b96de --- /dev/null +++ b/mardrone/imports/com/meego/Window.qml @@ -0,0 +1,273 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + width: screen.displayWidth + height: screen.displayHeight + + property alias color: background.color + + default property alias content: windowContent.data + + // Read only property true if window is in portrait + property alias inPortrait: window.portrait + + signal orientationChangeAboutToStart + signal orientationChangeStarted + signal orientationChangeFinished + + Rectangle { + id: background + anchors.fill: parent + color: "black" + } + + Item { + id: window + property bool portrait + + width: window.portrait ? screen.displayHeight : screen.displayWidth + height: window.portrait ? screen.displayWidth : screen.displayHeight + + anchors.centerIn : parent + transform: Rotation { id: windowRotation; + origin.x: 0; + origin.y: 0; + angle: 0 + } + + Item { + id: windowContent + width: parent.width + height: parent.height - heightDelta + + // Used for resizing windowContent when virtual keyboard appears + property int heightDelta: 0 + + objectName: "windowContent" + clip: true + + Connections { + id: inputContextConnection + target: inputContext + onSoftwareInputPanelVisibleChanged: inputContextConnection.updateWindowContentHeightDelta(); + + onSoftwareInputPanelRectChanged: inputContextConnection.updateWindowContentHeightDelta(); + + function updateWindowContentHeightDelta() { + if(inputContext.customSoftwareInputPanelVisible) + return + + if (root.inPortrait) + windowContent.heightDelta = inputContext.softwareInputPanelRect.width + else + windowContent.heightDelta = inputContext.softwareInputPanelRect.height + } + } + } + + SoftwareInputPanel { + id: softwareInputPanel + active: inputContext.customSoftwareInputPanelVisible + anchors.bottom: parent.bottom + + onHeightChanged: { + windowContent.heightDelta = height + } + + Loader { + id: softwareInputPanelLoader + width: parent.width + sourceComponent: inputContext.customSoftwareInputPanelComponent + } + } + + Snapshot { + id: snapshot + anchors.top: parent.top + anchors.left: parent.left + width: screen.displayWidth + height: screen.displayHeight + snapshotWidth: screen.displayWidth + snapshotHeight: screen.displayHeight + opacity: 0 + transform: Rotation { id: snapshotRotation; + origin.x: screen.displayHeight / 2; origin.y: screen.displayHeight / 2; + angle: 0 } + } + + state: screen.orientationString + + states: [ + State { + name: "Landscape" + PropertyChanges { target: window; rotation: 0; portrait: false; } + PropertyChanges { target: windowRotation; + origin.x: root.height / 2; + origin.y: root.height / 2; } + PropertyChanges { target: snapshot; anchors.leftMargin: 0; anchors.topMargin: 0 } + }, + State { + name: "Portrait" + PropertyChanges { target: window; rotation: 270; portrait: true; } + PropertyChanges { target: windowRotation; + origin.x: root.height - root.width / 2; + origin.y: root.width / 2; } + PropertyChanges { target: snapshot; anchors.leftMargin: 0; anchors.topMargin: 0 } + }, + State { + name: "LandscapeInverted" + PropertyChanges { target: window; rotation: 180; portrait: false; } + PropertyChanges { target: windowRotation; + origin.x: root.height / 2; + origin.y: root.height / 2; } + PropertyChanges { target: snapshot; anchors.leftMargin: 374; anchors.topMargin: 0 } + }, + State { + name: "PortraitInverted" + PropertyChanges { target: window; rotation: 90; portrait: true; } + PropertyChanges { target: windowRotation; + origin.x: root.height - root.width / 2; + origin.y: root.width / 2; } + PropertyChanges { target: snapshot; anchors.leftMargin: 0; anchors.topMargin: 374 } + } + ] + + transitions: [ + Transition { + // use this transition when sip is visible + from: (inputContext.softwareInputPanelVisible ? "*" : "disabled") + to: (inputContext.softwareInputPanelVisible ? "*" : "disabled") + PropertyAction { target: window; properties: "rotation"; } + ScriptAction { + script: { + root.orientationChangeAboutToStart(); + platformWindow.startSipOrientationChange(window.rotation); + // note : we should really connect these signals to MInputMethodState + // signals so that they are emitted at the appropriate time + // but there aren't any + root.orientationChangeStarted(); + root.orientationChangeFinished(); + } + } + }, + Transition { + // use this transition when sip is not visible + from: (screen.minimized ? "disabled" : (inputContext.softwareInputPanelVisible ? "disabled" : "*")) + to: (screen.minimized ? "disabled" : (inputContext.softwareInputPanelVisible ? "disabled" : "*")) + SequentialAnimation { + alwaysRunToEnd: true + + ScriptAction { + script: { + snapshot.take(); + snapshot.opacity = 1.0; + snapshotRotation.angle = -window.rotation; + snapshot.smooth = false; // Quick & coarse rotation consistent with MTF + platformWindow.animating = true; + root.orientationChangeAboutToStart(); + } + } + PropertyAction { target: window; properties: "portrait"; } + ScriptAction { + script: { + windowContent.opacity = 0.0; + root.orientationChangeStarted(); + } + } + ParallelAnimation { + NumberAnimation { target: windowContent; property: "opacity"; + to: 1.0; easing.type: Easing.InOutExpo; duration: 600; } + NumberAnimation { target: snapshot; property: "opacity"; + to: 0.0; easing.type: Easing.InOutExpo; duration: 600; } + PropertyAction { target: windowRotation; properties: "origin.x"; } + PropertyAction { target: windowRotation; properties: "origin.y"; } + RotationAnimation { target: windowRotation; property: "angle"; + from: -screen.rotationDirection * 90; + to: 0; + direction: RotationAnimation.Shortest; + easing.type: Easing.InOutExpo; duration: 600; } + } + ScriptAction { + script: { + windowRotation.angle = 0 + snapshot.free(); + root.orientationChangeFinished(); + platformWindow.animating = false; + } + } + } + } + ] + + focus: true + Keys.onReleased: { + if (event.key == Qt.Key_I && event.modifiers == Qt.AltModifier) { + theme.inverted = !theme.inverted; + } + if (event.key == Qt.Key_E && event.modifiers == Qt.AltModifier) { + if(screen.currentOrientation == Screen.Landscape) { + screen.allowedOrientations = Screen.Portrait; + } else if(screen.currentOrientation == Screen.Portrait) { + screen.allowedOrientations = Screen.LandscapeInverted; + } else if(screen.currentOrientation == Screen.LandscapeInverted) { + screen.allowedOrientations = Screen.PortraitInverted; + } else if(screen.currentOrientation == Screen.PortraitInverted) { + screen.allowedOrientations = Screen.Landscape; + } + } + if (event.key == Qt.Key_E && event.modifiers == Qt.ControlModifier ) { + if(screen.currentOrientation == Screen.Portrait) { + screen.allowedOrientations = Screen.Landscape; + } else if(screen.currentOrientation == Screen.LandscapeInverted) { + screen.allowedOrientations = Screen.Portrait; + } else if(screen.currentOrientation == Screen.PortraitInverted) { + screen.allowedOrientations = Screen.LandscapeInverted; + } else if(screen.currentOrientation == Screen.Landscape) { + screen.allowedOrientations = Screen.PortraitInverted; + } + } + } + } +} diff --git a/mardrone/imports/com/meego/extras/CountBubble.qml b/mardrone/imports/com/meego/extras/CountBubble.qml new file mode 100644 index 0000000..9bd1832 --- /dev/null +++ b/mardrone/imports/com/meego/extras/CountBubble.qml @@ -0,0 +1,112 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as C + +/* + Class: CountBubble + CountBubble component is a flexible shape that holds a number and can be added in lists or + notification banners for example. +*/ + +ImplicitSizeItem { + id: root + + /* + * Property: largeSized + * [bool=false] Use small or large count bubble. + */ + property bool largeSized: false + + /* + * Property: value + * [int=0] Reflects the current value. + */ + property int value: 0 + + implicitWidth: internal.getBubbleWidth() + implicitHeight: largeSized ? 32:24 + + BorderImage { + source: "image://theme/" + theme.colorString + "meegotouch-countbubble-background"+(largeSized ? "-large":"") + anchors.fill: parent + border { left: 10; top: 10; right: 10; bottom: 10 } + } + + Text { + id: text + height: parent.height + y:1 + color: largeSized ? "#FFFFFF" : "black" + font.family: C.FONT_FAMILY + anchors.horizontalCenter: parent.horizontalCenter + verticalAlignment: Text.AlignVCenter + font.pixelSize: largeSized ? 22:18 + text: root.value + } + + QtObject { + id: internal + + function getBubbleWidth() { + if (largeSized) { + if (root.value < 10) + return 32; + else if (root.value < 100) + return 40; + else if (root.value < 1000) + return 52; + else + return text.paintedWidth+19 + } else { + if (root.value < 10) + return 24; + else if (root.value < 100) + return 30; + else if (root.value < 1000) + return 40; + else + return text.paintedWidth+13 + } + } + } +} diff --git a/mardrone/imports/com/meego/extras/DatePickerDialog.qml b/mardrone/imports/com/meego/extras/DatePickerDialog.qml new file mode 100644 index 0000000..5e6c465 --- /dev/null +++ b/mardrone/imports/com/meego/extras/DatePickerDialog.qml @@ -0,0 +1,332 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as C +import "TumblerIndexHelper.js" as TH + +/* + Class: DatePickerDialog + Dialog that shows a date picker. +*/ + +Dialog { + id: root + + /* + * Property: titleText + * [string] If not null, it will be used as the title text for the dialog. + * If further customization is needed, use property title instead + */ + property alias titleText: title.text + + /* + * Property: year + * [int] The displayed year. + */ + property int year: dateTime.currentYear() + + /* + * Property: month + * [int] The displayed month. + */ + property int month: 1 + + /* + * Property: day + * [int] The displayed day. + */ + property int day: 1 + + /* + * Property: minimumYear + * [int] Optional, the minimum year shown on the tumbler. This property should + * only be set once during construction. If the value is not specified, + * it is default to current year - 1. + */ + property int minimumYear: dateTime.currentYear() - 1 + + /* + * Property: maximumYear + * [int] Optional, the maximum year shown on the tumbler. This property should + * only be set once during construction. If the value is not specified, + * it is default to current year + 20. + */ + property int maximumYear: dateTime.currentYear() + 20 + + /* + * Property: acceptButtonText + * [string] Optional, the button text for the accept button. + */ + property alias acceptButtonText: confirmButton.text + + /* + * Property: rejectButtonText + * [string] Optional, the button text for the reject button. + */ + property alias rejectButtonText: rejectButton.text + + // TODO do not dismiss the dialog when empty area is clicked + style: DialogStyle { + titleBarHeight: 48 + leftMargin: screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted ? 16 : 215 + rightMargin: screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted ? 16 : 215 + centered: true + } + title: Text { + id: title + objectName: "title" + visible: text.length > 0 + color: theme.selectionColor + font { pixelSize: 32; family: C.FONT_FAMILY_BOLD } + elide: Text.ElideRight + } + content: Item { + id: dialogContent + height: 300 + width: parent.width + + Tumbler { + id: tumbler + + function _handleTumblerChanges(index) { + if (index == 1 || index == 2) { + var curYear = yearColumn.selectedIndex + yearList.get(0).value; + var curMonth = monthColumn.selectedIndex + 1; + + var d = dateTime.daysInMonth(curYear, curMonth); + if (dayColumn.selectedIndex >= d) + dayColumn.selectedIndex = d - 1 + while (dayList.count > d) + dayList.remove(dayList.count - 1) + while (dayList.count < d) + dayList.append({"value" : dayList.count + 1}) + } + } + + columns: [dayColumn, monthColumn, yearColumn] + onChanged: { + _handleTumblerChanges(index); + } + height: 300 + privateDelayInit: true + + TumblerColumn { + id: dayColumn + items: ListModel { + id: dayList + } + label: "DAY" + selectedIndex: root.day - (root.day > 0 ? 1 : 0) + } + + TumblerColumn { + id: monthColumn + items: ListModel { + id: monthList + } + label: "MONTH" + selectedIndex: root.month - (root.month > 0 ? 1 : 0) + } + + TumblerColumn { + id: yearColumn + items: ListModel { + id: yearList + } + label: "YEAR" + selectedIndex: yearList.length > 0 ? internal.year - yearList.get(0).value : 0 + } + } + } + buttons: Row { + height: 56 + anchors.horizontalCenter: parent.horizontalCenter + spacing: 6 + Button { + id: confirmButton + text: "CONFIRM" + onClicked: accept() + width: (root.width / 2) - 3 + style: ButtonStyle { inverted: true } + } + Button { + id: rejectButton + text: "CANCEL" + onClicked: reject() + width: (root.width / 2) - 3 + platformStyle: ButtonStyle { inverted: true } + } + } + onMinimumYearChanged: { + if (!internal.surpassUpdate) { + internal.year = root.year + internal.minYear = root.minimumYear + + if (internal.minYear < 0) + internal.minYear = dateTime.currentYear() - 1; + else if (internal.minYear > root.maximumYear) + internal.minYear = root.maximumYear; + + internal.updateYearList() + internal.validateDate() + internal.year = internal.year < internal.minYear ? internal.minYear : + (internal.year > root.maximumYear ? root.maximumYear :internal.year) + } + } + onMaximumYearChanged: { + internal.minYear = root.minimumYear + + if (root.maximumYear < 0) + root.maximumYear = dateTime.currentYear() + 20; + else if (root.maximumYear < internal.minYear) + root.maximumYear = internal.minYear; + + internal.updateYearList() + internal.validateDate() + internal.year = internal.year > root.maximumYear ? root.maximumYear : + (internal.year < internal.minYear ? internal.minYear : internal.year) + if (internal.minYear < 0) + root.minimumYear = dateTime.currentYear() - 1 + } + onStatusChanged: { + if (status == DialogStatus.Opening) { + TH.saveIndex(tumbler); + if (!internal.initialized) + internal.initializeDataModels(); + if (internal.year > 0) + yearColumn.selectedIndex = internal.year - yearList.get(0).value; + tumbler._handleTumblerChanges(2); + dayColumn.selectedIndex = root.day - 1; + } + if (status == DialogStatus.Closing) { + internal.surpassUpdate = true + if (internal.surpassUpdate) { + root.year = internal.year + root.minimumYear = internal.minYear + } + internal.surpassUpdate = false + } + } + onDayChanged: { + internal.validateDate() + if (dayColumn.items.length > root.day - 1) + dayColumn.selectedIndex = root.day - 1 + } + onMonthChanged: { + internal.validateDate() + monthColumn.selectedIndex = root.month - 1 + } + onYearChanged: { + if (!internal.surpassUpdate) { + internal.year = root.year + internal.validateDate() + internal.year = internal.year < internal.minYear ? internal.minYear : + (internal.year > root.maximumYear ? root.maximumYear : internal.year) + + if (internal.initialized) + yearColumn.selectedIndex = internal.year - yearList.get(0).value + } + } + onAccepted: { + tumbler.privateForceUpdate(); + root.year = yearColumn.selectedIndex + yearList.get(0).value; + root.month = monthColumn.selectedIndex + 1; + root.day = dayColumn.selectedIndex + 1; + } + onRejected: { + TH.restoreIndex(tumbler); + } + + QtObject { + id: internal + + property variant initialized: false + property int year + property int minYear + property bool surpassUpdate: false + + function initializeDataModels() { + var currentYear = new Date().getFullYear(); + minimumYear = minimumYear ? minimumYear : currentYear - 1; + maximumYear = maximumYear ? maximumYear : currentYear + 20; + + for (var y = minimumYear; y <= maximumYear; ++y) + yearList.append({"value" : y}) // year + + var nDays = dateTime.daysInMonth(internal.year, root.month); + for (var d = 1; d <= nDays; ++d) + dayList.append({"value" : d}) // day + for (var m = 1; m <= 12; ++m) + monthList.append({"value" : dateTime.shortMonthName(m)}); + + tumbler.privateInitialize(); + internal.initialized = true; + } + + function updateYearList() { + if (internal.initialized) { + var tmp = yearColumn.selectedIndex; + yearList.clear(); + for (var i = internal.minYear; i <= root.maximumYear; ++i) + yearList.append({"value" : i}) + if (tmp < yearList.count) { + yearColumn.selectedIndex = 0; + yearColumn.selectedIndex = tmp; + } + } + } + + function validateDate() { + if (internal.year < 1){ + internal.year = new Date().getFullYear() + if (maximumYear < internal.year) + root.maximumYear = dateTime.currentYear() + 20; + if (minimumYear > internal.year) + internal.minYear = dateTime.currentYear() - 1; + } + + root.month = Math.max(1, Math.min(12, root.month)) + var d = dateTime.daysInMonth(internal.year, root.month); + root.day = Math.max(1, Math.min(d, root.day)) + } + } +} diff --git a/mardrone/imports/com/meego/extras/InfoBanner.qml b/mardrone/imports/com/meego/extras/InfoBanner.qml new file mode 100644 index 0000000..1c5dd42 --- /dev/null +++ b/mardrone/imports/com/meego/extras/InfoBanner.qml @@ -0,0 +1,216 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as UI + +/* + Class: InfoBanner + The InfoBanner component is used to display information to the user. The number of lines of text + shouldn't exceed 3. +*/ + +ImplicitSizeItem { + id: root + + /* + * Property: iconSource + * [url] The path to the icon image + */ + property url iconSource: "" + + /* + * Property: text + * [string] Text to be displayed in InfoBanner + */ + property alias text: text.text + + /* + * Property: timerEnabled + * [bool=true] Enable/disable timer that dismisses InfoBanner + */ + property bool timerEnabled: true + + /* + * Property: timerShowTime + * [int=3000ms] For setting how long InfoBanner stays visible to user before being dismissed + */ + property alias timerShowTime: sysBannerTimer.interval + + /* + * Property: topMargin + * [int=8 pix] Allows user to customize top margin if needed + */ + property alias topMargin: root.y + + /* + * Property: leftMargin + * [int=8 pix] Allows user to customize left margin if needed + */ + property alias leftMargin: root.x + + /* + * Function: show + * Show InfoBanner + */ + function show() { + animationShow.running = true; + if (root.timerEnabled) + sysBannerTimer.restart(); + } + + /* + * Function: hide + * Hide InfoBanner + */ + function hide() { + animationHide.running = true; + } + + implicitHeight: internal.getBannerHeight() + implicitWidth: internal.getBannerWidth() + x:8; y:8 + scale: 0 + + BorderImage { + source: "image://theme/meegotouch-notification-system-background" + anchors.fill: root + horizontalTileMode: BorderImage.Stretch + verticalTileMode: BorderImage.Stretch + border { left: 10; top: 10; right: 10; bottom: 10 } + opacity: UI.INFO_BANNER_OPACITY + } + + Image { + id: image + anchors { left: parent.left; leftMargin: 16; top: parent.top; topMargin: 16 } + source: root.iconSource + visible: root.iconSource != "" + } + + Text { + id: text + width: internal.getTextWidth() + anchors { left: (image.visible ? image.right : parent.left); leftMargin: (image.visible ? 14:16); + top: parent.top; topMargin: internal.getTopMargin(); bottom: parent.bottom } + color: "white" + wrapMode: Text.Wrap + verticalAlignment: Text.AlignHCenter + font.pixelSize: UI.FONT_DEFAULT_SIZE + font.family: UI.FONT_FAMILY + font.letterSpacing: UI.INFO_BANNER_LETTER_SPACING + maximumLineCount: 3 + elide: Text.ElideRight + } + + QtObject { + id: internal + + function getBannerHeight() { + if (image.visible) { + if (text.lineCount <= 2) + return 80; + else + return 106; + } else { + if (text.lineCount <= 1) + return 64; + else if (text.lineCount <= 2) + return 80; + else + return 106; + } + } + + function getBannerWidth() { + return parent.width - root.x*2; + } + + function getTopMargin() { + if (text.lineCount <= 1 && !image.visible) { + // If there's only one line of text and no icon image, top and bottom margins are equal. + return (root.height-text.paintedHeight)/2; + } else { + // In all other cases, top margin is 4 px more than bottom margin. + return (root.height-text.paintedHeight)/2 + 2; + } + } + + function getTextWidth() { + // 46(32 when there's no icon) is sum of all margins within banner. root.x*2 is sum of margins outside banner. + // Text element width is dertermined by substracting parent width(screen width) by all the margins and + // icon width(if applicable). + return image.visible ? (parent.width-root.x*2-46-image.width) : (parent.width-root.x*2-32); + } + + function getScaleValue() { + // When banner is displayed, as part of transition effect, it'll first be enlarged to the point where its width + // is equal to screen width. root.x*2/root.width calculates the amount of expanding required, where root.x*2 is + // equal to screen.displayWidth minus banner.width + return root.x*2/root.width + 1; + } + } + + Timer { + id: sysBannerTimer + repeat: false + running: false + interval: 3000 + onTriggered: hide() + } + + MouseArea { + anchors.fill: parent + onClicked: hide() + } + + SequentialAnimation { + id: animationShow + NumberAnimation { target: root; property: "scale"; from: 0; to: internal.getScaleValue(); duration: 200; easing.type: Easing.OutQuad} + NumberAnimation { target: root; property: "scale"; from: internal.getScaleValue(); to: 1; duration: 200 } + } + + NumberAnimation { + id: animationHide + target: root; property: "scale"; to: 0; duration: 200; easing.type: Easing.InExpo + } +} + diff --git a/mardrone/imports/com/meego/extras/ListButton.qml b/mardrone/imports/com/meego/extras/ListButton.qml new file mode 100644 index 0000000..1b09d09 --- /dev/null +++ b/mardrone/imports/com/meego/extras/ListButton.qml @@ -0,0 +1,151 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import Qt.labs.components 1.1 +import "." 1.0 +import "../meego/UIConstants.js" as UI +import com.nokia.meego 1.0 + +Item { + id: button + + // Common public API + property bool checked: false + property bool checkable: false + property alias pressed: mouseArea.pressed + property alias text: label.text + property url iconSource + + signal clicked + + // Used in ButtonGroup.js to set the segmented look on the buttons. + property string __buttonType + + // Styling for the Button + property Style platformStyle: ButtonStyle {} + + // Deprecated, TODO remove + property alias style: button.platformStyle + + implicitWidth: iconAndLabel.prefferedWidth + implicitHeight: platformStyle.buttonHeight + + property alias font: label.font + + BorderImage { + id: background + anchors.fill: parent + + border { left: button.platformStyle.backgroundMarginLeft; top: button.platformStyle.backgroundMarginTop; + right: button.platformStyle.backgroundMarginRight; bottom: button.platformStyle.backgroundMarginBottom } + source: !enabled ? + (checked ? button.platformStyle.checkedDisabledBackground : button.platformStyle.disabledBackground) : + pressed ? + button.platformStyle.pressedBackground : + checked ? + button.platformStyle.checkedBackground : + button.platformStyle.background; + } + + Item { + id: iconAndLabel + property real xMargins: icon.visible ? (UI.PADDING_XLARGE * (label.visible ? 3 : 2)) : (UI.BUTTON_LABEL_MARGIN * 2) + property real prefferedWidth: xMargins + (icon.visible ? icon.width : 0) + (label.visible ? label.prefferedSize.width : 0) + + width: xMargins + (icon.visible ? icon.width : 0) + (label.visible? label.width : 0) + height: platformStyle.buttonHeight + + anchors.verticalCenter: button.verticalCenter + anchors.horizontalCenter: button.horizontalCenter + anchors.verticalCenterOffset: -1 + + Image { + id: icon + source: button.iconSource + x: UI.PADDING_XLARGE + anchors.verticalCenter: iconAndLabel.verticalCenter + width: UI.SIZE_ICON_DEFAULT + height: UI.SIZE_ICON_DEFAULT + visible: source != "" + } + + Label { + id: label + x: icon.visible ? (icon.x + icon.width + UI.PADDING_XLARGE) : UI.BUTTON_LABEL_MARGIN + anchors.verticalCenter: iconAndLabel.verticalCenter + anchors.verticalCenterOffset: 1 + + property real availableWidth: button.width - iconAndLabel.xMargins - (icon.visible ? icon.width : 0) + width: Math.min(prefferedSize.width, availableWidth) + + elide: Text.ElideRight + font.family: button.platformStyle.fontFamily + font.weight: button.platformStyle.fontWeight + font.pixelSize: button.platformStyle.fontPixelSize + font.capitalization: button.platformStyle.fontCapitalization + color: !enabled ? button.platformStyle.disabledTextColor : + pressed ? button.platformStyle.pressedTextColor : + checked ? button.platformStyle.checkedTextColor : + button.platformStyle.textColor; + text: "" + visible: text != "" + + Label { + id: prefferedSize + font: parent.font + text: parent.text + visible: false + } + property alias prefferedSize: prefferedSize + } + } + + MouseArea { + id: mouseArea + anchors.fill: parent + + onClicked: { + if (button.checkable) + button.checked = !button.checked; + button.clicked(); + } + } +} diff --git a/mardrone/imports/com/meego/extras/ListButtonStyle.qml b/mardrone/imports/com/meego/extras/ListButtonStyle.qml new file mode 100644 index 0000000..76687fc --- /dev/null +++ b/mardrone/imports/com/meego/extras/ListButtonStyle.qml @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as UI + +ButtonStyle { + buttonHeight: UI.SIZE_SMALL_BUTTON +} diff --git a/mardrone/imports/com/meego/extras/ListDelegate.qml b/mardrone/imports/com/meego/extras/ListDelegate.qml new file mode 100644 index 0000000..42a9719 --- /dev/null +++ b/mardrone/imports/com/meego/extras/ListDelegate.qml @@ -0,0 +1,119 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as UI + +Item { + id: listItem + + signal clicked + property alias pressed: mouseArea.pressed + + property int titleSize: UI.LIST_TILE_SIZE + property int titleWeight: Font.Bold + property string titleFont: UI.FONT_FAMILY + property color titleColor: theme.inverted ? UI.LIST_TITLE_COLOR_INVERTED : UI.LIST_TITLE_COLOR + property color titleColorPressed: theme.inverted ? UI.LIST_TITLE_COLOR_PRESSED_INVERTED : UI.LIST_TITLE_COLOR_PRESSED + + property int subtitleSize: UI.LIST_SUBTILE_SIZE + property int subtitleWeight: Font.Normal + property string subtitleFont: UI.FONT_FAMILY_LIGHT + property color subtitleColor: theme.inverted ? UI.LIST_SUBTITLE_COLOR_INVERTED : UI.LIST_SUBTITLE_COLOR + property color subtitleColorPressed: theme.inverted ? UI.LIST_SUBTITLE_COLOR_PRESSED_INVERTED : UI.LIST_SUBTITLE_COLOR_PRESSED + + height: UI.LIST_ITEM_HEIGHT + width: parent.width + + BorderImage { + id: background + anchors.fill: parent + // Fill page porders + anchors.leftMargin: -UI.MARGIN_XLARGE + anchors.rightMargin: -UI.MARGIN_XLARGE + visible: mouseArea.pressed + source: theme.inverted ? "image://theme/meegotouch-panel-inverted-background-pressed" : "image://theme/meegotouch-panel-background-pressed" + } + + Row { + anchors.fill: parent + spacing: UI.LIST_ITEM_SPACING + + Image { + anchors.verticalCenter: parent.verticalCenter + visible: model.iconSource ? true : false + width: UI.LIST_ICON_SIZE + height: UI.LIST_ICON_SIZE + source: model.iconSource ? model.iconSource : "" + } + + Column { + anchors.verticalCenter: parent.verticalCenter + + Label { + id: mainText + text: model.title + font.family: listItem.titleFont + font.weight: listItem.titleWeight + font.pixelSize: listItem.titleSize + color: mouseArea.pressed ? listItem.titleColorPressed : listItem.titleColor + } + + Label { + id: subText + text: model.subtitle ? model.subtitle : "" + font.family: listItem.subtitleFont + font.weight: listItem.subtitleWeight + font.pixelSize: listItem.subtitleSize + color: mouseArea.pressed ? listItem.subtitleColorPressed : listItem.subtitleColor + + visible: text != "" + } + } + } + MouseArea { + id: mouseArea; + anchors.fill: parent + onClicked: { + listItem.clicked(); + } + } +} diff --git a/mardrone/imports/com/meego/extras/MoreIndicator.qml b/mardrone/imports/com/meego/extras/MoreIndicator.qml new file mode 100644 index 0000000..aa220d4 --- /dev/null +++ b/mardrone/imports/com/meego/extras/MoreIndicator.qml @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 // needed for the custom image loader + +/* + Class: MoreIndicator + Component to indicate that more content is available for the user. + + A more indicator is a component that displayes an arrow to show the user that there are more contents + available. +*/ + +Image { + source: !theme.inverted ? + "image://theme/icon-m-common-drilldown-arrow" : + "image://theme/icon-m-common-drilldown-arrow-inverse" +} diff --git a/mardrone/imports/com/meego/extras/NegativeButtonStyle.qml b/mardrone/imports/com/meego/extras/NegativeButtonStyle.qml new file mode 100644 index 0000000..80374cc --- /dev/null +++ b/mardrone/imports/com/meego/extras/NegativeButtonStyle.qml @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as UI + +ButtonStyle { + // Text Color + textColor: UI.COLOR_BUTTON_INVERTED_FOREGROUND + pressedTextColor: UI.COLOR_BUTTON_SECONDARY_FOREGROUND + disabledTextColor: UI.COLOR_BUTTON_INVERTED_DISABLED_FOREGROUND + checkedTextColor: UI.COLOR_BUTTON_INVERTED_FOREGROUND + + // Background + background: "image://theme/meegotouch-button-negative-background" + pressedBackground: "image://theme/meegotouch-button-negative-background-pressed" + disabledBackground: "image://theme/meegotouch-button-negative-background-disabled" + checkedBackground: "image://theme/meegotouch-button-negative-background-selected" + checkedDisabledBackground: "image://theme/meegotouch-button-negative-background-disabled-selected" +} diff --git a/mardrone/imports/com/meego/extras/NetPromoterScore.qml b/mardrone/imports/com/meego/extras/NetPromoterScore.qml new file mode 100644 index 0000000..7a45371 --- /dev/null +++ b/mardrone/imports/com/meego/extras/NetPromoterScore.qml @@ -0,0 +1,472 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 + +Rectangle { + id: root + + // Common public API + + // Input. Set to true if user is signed in to Nokia account. + // Account email using agreement is shown if user is signed in. + // Otherwise email input box is shown instead. + property bool isSignedIn: false + + // Input. Array of localised UI strings: + // header - 'Tell us what you think' + // question - 'How likely ... ?' + // notLikely - 'Not at all\nlikely' + // extremelyLikely - 'Extremely\nlikely' + // selectScore - 'You must select ...' + // commentsInputLabel - 'Please tell us why ...' + // contactAgreement - 'You can contact me using ...' + // emailInputLabel - 'You can contact me for details...' + // emailPlaceholderText - 'Your email address' + // emailSipActionKeyLabel - 'Done' + // invalidEmail - 'Invalid email address' + // legalText - 'Your information will be ...' + // submit - 'Submit' + + property variant uiString: QtObject {} + + // Input. Array of horizontal alignments for strings. Accept same + // values as Text { horizontalAlignment: ... } e.g. Text.AlignLeft, Text.AlignRight and so on. + // By default all text strings aligned to the left. + // header + // question + // selectScore + // commentsInputLabel + // contactAgreement + // emailInputLabel + // invalidEmail + // legalText + + property variant uiHorizontalAlignment: QtObject {} + + // Promoter score, between 0 ~ 10 + property alias score: scoreSlider.value + + // True if user touched score slider + property alias scoreTouched: scoreSlider.touched + + // Optional comments text + property alias comments: commentsText.text + + // Optional email address + // emailAddress shall be ignored if isSignedIn is true. + property alias emailAddress: emailAddressField.text + + // True if user agrees to be contacted using Nokia Account email address. + // useEmail shall be ignored if isSignedIn is false. + property alias useEmail: useEmailCheckBox.checked + + // Signal emitted when 'Submit' button is clicked and form passes validation. + signal submit() + + height: childrenRect.height + color: "#E0E1E2" + + QtObject { + id: internal + + property variant defaultValidator: RegExpValidator{regExp: /.*/} + property variant emailValidator: RegExpValidator{regExp: /^\w([a-zA-Z0-9._-]+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/} + + function validateForm() { + + var isValid = true; + + if (!scoreSlider.touched) { + sliderErrorLabel.visible = true; + isValid = false; + } + + if (emailAddress && emailAddress.length > 0) { + var validator = internal.emailValidator + emailAddressField.validator = validator; + var result = emailAddressField.acceptableInput; + if (result)emailAddressField.validator = internal.defaultValidator; + mouseArea.enabled = !result; + invalidEmailLabel.visible = !result; + if (!result)isValid = false; + } + + return isValid; + } + } + + Column { + id: formContent + + anchors { + left: parent.left + leftMargin: 16 + right: parent.right + rightMargin: 16 + } + height: childrenRect.height + + Item { + width: parent.width + height: 16 + } + + Label { + id: header + + anchors { + left: parent.left + leftMargin: 18 - parent.anchors.leftMargin + right: parent.right + } + + wrapMode: Text.Wrap + font.pixelSize: 40 + color: "#282828" + horizontalAlignment: uiHorizontalAlignment.header || Text.AlignLeft + text: uiString.header || + "!!Tell us what you think" + } + + Item { + width: parent.width + height: 12 + } + + // Question + Label { + width: parent.width + wrapMode: Text.Wrap + font.pixelSize: 24 + color: "#282828" + horizontalAlignment: uiHorizontalAlignment.question || Text.AlignLeft + text: uiString.question || + "!!How likely are you to recommend this app to a friend or a colleague?" + } + + Item { + width: parent.width + height: 22 + } + + // Numbers + Row { + width: parent.width + height: childrenRect.height + + Label { + width: parent.width/2 + font.pixelSize: 24 + color: "#282828" + horizontalAlignment: Text.AlignLeft + text: "0" + } + Label { + width: parent.width/2 + font.pixelSize: 24 + color: "#282828" + horizontalAlignment: Text.AlignRight + text: "10" + } + } + + Slider { + id: scoreSlider + objectName: "slider_nps_score" + + property bool touched: false + width: parent.width + height: 64 + maximumValue: 10 + stepSize: 1 + value: 5 + valueIndicatorVisible: true + + onPressedChanged: { + if (pressed) { + sliderErrorLabel.visible = false; + touched = true; + } + } + } + + // Slider text + Row { + width: parent.width + height: childrenRect.height + + Label { + width: parent.width/3 + font.pixelSize: 18 + color: "#282828" + horizontalAlignment: Text.AlignLeft + text: uiString.notLikely || "!!Not at all \nlikely" + } + + Item { + width: parent.width/3 + height: 1 + } + + Label { + width: parent.width/3 + font.pixelSize: 18 + color: "#282828" + horizontalAlignment: Text.AlignRight + text: uiString.extremelyLikely || "!!Extremely \nlikely" + } + } + + Item { + width: parent.width + height: 8 + visible: sliderErrorLabel.visible + } + + // Slider error text + Label { + id: sliderErrorLabel + visible: false + width: parent.width + font.pixelSize: 18 + color: "#FF3200" + horizontalAlignment: uiHorizontalAlignment.selectScore || Text.AlignLeft + text: uiString.selectScore || + "!!You must select a rating" + } + + Item { + width: parent.width + height: 18 + } + + Image { + width: parent.width + 16 + x: 8 - parent.anchors.leftMargin + source: "image://theme/meegotouch-separator-background-horizontal" + fillMode: Image.TileHorizontally + } + + Item { + width: parent.width + height: 7 + } + + Label { + width: parent.width + font.pixelSize: 22 + color: "#505050" + horizontalAlignment: uiHorizontalAlignment.commentsInputLabel || Text.AlignLeft + text: uiString.commentsInputLabel || + "!!Please tell us why you gave this score (optional)" + } + + SipAttributes { + id: sipAttributesDefault + } + + // Comments + TextArea { + id: commentsText + width: parent.width + height: Math.max(118, implicitHeight) + platformSipAttributes: sipAttributesDefault + } + + Item { + width: parent.width + height: 16 + } + + Row { + visible: isSignedIn + width: parent.width + + spacing: 16 + + CheckBox { + id: useEmailCheckBox + objectName: "check_nps_email" + anchors { + verticalCenter: parent.verticalCenter + } + } + + Label { + id: description + anchors { + verticalCenter: parent.verticalCenter + } + + width: parent.width - useEmailCheckBox.width - parent.spacing + font.pixelSize: 22 + wrapMode: Text.Wrap + color: "#505050" + horizontalAlignment: uiHorizontalAlignment.contactAgreement || Text.AlignLeft + text: uiString.contactAgreement || + "!!You can contact me for details using my Nokia Account e-mail." + } + + } + + Image { + width: parent.width + 16 + x: 8 - parent.anchors.leftMargin + source: "image://theme/meegotouch-separator-background-horizontal" + fillMode: Image.TileHorizontally + visible: !isSignedIn + } + + // Email address + Column { + id: emailAddressPane + width: parent.width + visible: !isSignedIn + + Item { + width: parent.width + height: 7 + } + + Label { + width: parent.width + font.pixelSize: 22 + color: "#505050" + horizontalAlignment: uiHorizontalAlignment.emailInputLabel || Text.AlignLeft + text: uiString.emailInputLabel || + "!!You can contact me for details (Optional)" + } + + TextField { + id: emailAddressField + objectName: "input_nps_email" + width: parent.width + inputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhEmailCharactersOnly | Qt.ImhNoAutoUppercase + placeholderText: uiString.emailPlaceholderText || + "!!Your email address" + platformSipAttributes: SipAttributes { + actionKeyLabel: uiString.emailSipActionKeyLabel || "" + actionKeyHighlighted: !!uiString.emailSipActionKeyLabel + } + + Keys.onReturnPressed: { + if (internal.validateForm()) { + platformCloseSoftwareInputPanel(); + } + } + + MouseArea { + id: mouseArea + anchors.fill: parent + enabled: false + z: 10 + onClicked: { + enabled = false; + invalidEmailLabel.visible = false; + emailAddressField.forceActiveFocus(); + emailAddressField.validator = internal.defaultValidator; + } + } + + onTextChanged: { + if (invalidEmailLabel.visible) { + invalidEmailLabel.visible = false; + emailAddressField.validator = internal.defaultValidator; + } + } + } + + Label { + id: invalidEmailLabel + visible: false + width: parent.width + font.pixelSize: 18 + color: "#FF3200" + horizontalAlignment: uiHorizontalAlignment.invalidEmail || Text.AlignLeft + text: uiString.invalidEmail || + "!!Invalid email address" + } + } + + Item { + width: parent.width + height: 16 + } + + Label { + width: parent.width + font.pixelSize: 22 + color: "#505050" + wrapMode: Text.Wrap + horizontalAlignment: uiHorizontalAlignment.legalText || Text.AlignLeft + text: uiString.legalText || + "!!Your information will be treated according to Nokia privacy policy." + } + + Item { + width: parent.width + height: 16 + } + + Button { + objectName: "btn_nps_submit" + width: 322 + + anchors { + horizontalCenter: parent.horizontalCenter + } + + text: uiString.submit || "!!Submit" + + onClicked: { + if (internal.validateForm()) { + submit() + } + } + } + + Item { + width: parent.width + height: 16 + } + } +} diff --git a/mardrone/imports/com/meego/extras/PageIndicator.qml b/mardrone/imports/com/meego/extras/PageIndicator.qml new file mode 100644 index 0000000..3a2c216 --- /dev/null +++ b/mardrone/imports/com/meego/extras/PageIndicator.qml @@ -0,0 +1,157 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 + +/* + Class: PageIndicator + Component to indicate the page user is currently viewing. + + A page indicator is a component that shows the number of availabe pages as well as the page the user is + currently on. The user can also specify the display type to select the normal/inverted visual. +*/ +ImplicitSizeItem { + id: root + + /* + * Property: totalPages + * [int] The total number of pages. This value should be larger than 0. + */ + property int totalPages: 0 + + /* + * Property: currentPage + * [int] The current page the user is on. This value should be larger than 0. + */ + property int currentPage: 0 + + /* + * Property: inverted + * [bool] Specify whether the visual for the rating indicator uses the inverted color. The value is + * false for use with a light background and true for use with a dark background. + */ + property bool inverted: theme.inverted + + implicitWidth: currentImage.width * totalPages + (totalPages - 1) * internal.spacing + implicitHeight: currentImage.height + + /* private */ + QtObject { + id: internal + + property int spacing: 8 + + property string totalPagesImageSource: inverted ? + "image://theme/meegotouch-inverted-pageindicator-page" : + "image://theme/meegotouch-pageindicator-page" + property string currentPageImageSource: inverted ? + "image://theme/meegotouch-inverted-pageindicator-page-current" : + "image://theme/meegotouch-pageindicator-page-current" + + property bool init: true + + + function updateUI() { + + if(totalPages <=0) { + totalPages = 1; + currentPage = 1; + } else { + if(currentPage <=0) + currentPage = 1; + if(currentPage > totalPages) + currentPage = totalPages; + } + + frontRepeater.model = currentPage - 1; + backRepeater.model = totalPages - currentPage; + } + } + + Component.onCompleted: { + internal.updateUI(); + internal.init = false; + } + + onTotalPagesChanged: { + if(!internal.init) + internal.updateUI(); + } + + onCurrentPageChanged: { + if(!internal.init) + internal.updateUI(); + } + + Row { + Repeater { + id: frontRepeater + + Item { + height: currentImage.height + width: currentImage.width + internal.spacing + + Image { + source: internal.totalPagesImageSource + } + } + } + + Image { + id: currentImage + source: internal.currentPageImageSource + } + + Repeater { + id: backRepeater + + Item { + height: currentImage.height + width: currentImage.width + internal.spacing + + Image { + source: internal.totalPagesImageSource + anchors.right: parent.right + } + } + } + } +} diff --git a/mardrone/imports/com/meego/extras/PositiveButtonStyle.qml b/mardrone/imports/com/meego/extras/PositiveButtonStyle.qml new file mode 100644 index 0000000..778a7f9 --- /dev/null +++ b/mardrone/imports/com/meego/extras/PositiveButtonStyle.qml @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as UI + +ButtonStyle { + // Text Color + textColor: UI.COLOR_BUTTON_INVERTED_FOREGROUND + pressedTextColor: UI.COLOR_BUTTON_SECONDARY_FOREGROUND + disabledTextColor: UI.COLOR_BUTTON_INVERTED_DISABLED_FOREGROUND + checkedTextColor: UI.COLOR_BUTTON_INVERTED_FOREGROUND + + // Background + background: "image://theme/meegotouch-button-positive-background" + pressedBackground: "image://theme/meegotouch-button-positive-background-pressed" + disabledBackground: "image://theme/meegotouch-button-positive-background-disabled" + checkedBackground: "image://theme/meegotouch-button-positive-background-selected" + checkedDisabledBackground: "image://theme/meegotouch-button-positive-background-disabled-selected" +} diff --git a/mardrone/imports/com/meego/extras/RatingIndicator.qml b/mardrone/imports/com/meego/extras/RatingIndicator.qml new file mode 100644 index 0000000..e5bcbd2 --- /dev/null +++ b/mardrone/imports/com/meego/extras/RatingIndicator.qml @@ -0,0 +1,134 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import Qt.labs.components 1.1 as QtComponents + +/* + Class: RatingIndicator + Component to indicate user specified ratings. + + A rating indicator is a component that shows the rating value within the maximum allowed range according + to the user's specification. The user can also specify the display type to select the positive/negative + visual. Optionally, the user can also specify a count value that will be displayed next to the images. +*/ +ImplicitSizeItem { + id: root + + /* + * Property: maximumValue + * [double] The maximum rating. The number should be larger or equal to 0. + */ + property alias maximumValue: model.maximumValue + + /* + * Property: ratingValue + * [double] The rating value. The number should be larger or equal to 0. + */ + property alias ratingValue: model.value + + /* + * Property: count + * [int] A number to be displayed next to the rating images. It is usually used to count the number of + * votes cast. It is only displayed if a number larger or equal to 0 is specified. + */ + property int count: -1 + + /* + * Property: inverted + * [string] Specify whether the visual for the rating indicator uses the inverted color. The value is + * false for use with a light background and true for use with a dark background. + */ + property bool inverted: theme.inverted + + implicitHeight: Math.max(background.height, text.paintedHeight); + implicitWidth: background.width + (count >= 0 ? internal.textSpacing + text.paintedWidth : 0); + + QtComponents.RangeModel { + id: model + value: 0.0 + minimumValue: 0.0 + maximumValue: 0.0 + } + + QtObject { + id: internal + + property int imageWidth: 16 + property int imageHeight: 16 + property int indicatorSpacing: 5 // spacing between images + property int textSpacing: 8 // spacing between image and text + property url backgroundImageSource: inverted ? + "image://theme/meegotouch-indicator-rating-inverted-background-star" : + "image://theme/meegotouch-indicator-rating-background-star" + property url indicatorImageSource: inverted ? + "image://theme/meegotouch-indicator-rating-inverted-star" : + "image://theme/meegotouch-indicator-rating-star" + property string textColor: inverted ? "#fafafa" : "#505050" + } + + Image { + id: background + width: internal.imageWidth * maximumValue + (Math.max(Math.ceil(maximumValue-1), 0)) * internal.indicatorSpacing; + height: internal.imageHeight + anchors.verticalCenter: height < text.paintedHeight ? text.verticalCenter : undefined + fillMode: Image.Tile + source: internal.backgroundImageSource + + Image { + id: indicator + width: internal.imageWidth * ratingValue + Math.max((Math.ceil(ratingValue) - 1), 0) * internal.indicatorSpacing + height: internal.imageHeight + fillMode: Image.Tile + source: internal.indicatorImageSource + } + } + + Text { + id: text + visible: count >= 0 + text: "(" + count + ")" + color: internal.textColor + font { family: "Nokia Standard Light"; pixelSize: 18 } + anchors.left: background.right + anchors.leftMargin: internal.textSpacing + } +} diff --git a/mardrone/imports/com/meego/extras/SystemBanner.qml b/mardrone/imports/com/meego/extras/SystemBanner.qml new file mode 100644 index 0000000..b90db37 --- /dev/null +++ b/mardrone/imports/com/meego/extras/SystemBanner.qml @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import com.nokia.extras 1.1 +import "constants.js" as UI + +InfoBanner +{ + +} + diff --git a/mardrone/imports/com/meego/extras/TimePickerDialog.qml b/mardrone/imports/com/meego/extras/TimePickerDialog.qml new file mode 100644 index 0000000..cc6fee4 --- /dev/null +++ b/mardrone/imports/com/meego/extras/TimePickerDialog.qml @@ -0,0 +1,291 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import com.nokia.extras 1.1 +import "constants.js" as C +import "TumblerIndexHelper.js" as TH + +/* + Class: TimePickerDialog + Dialog that shows a time picker. +*/ + +Dialog { + id: root + + /* + * Property: titleText + * [string] If not null, it will be used as the title text for the dialog. + * If further customization is needed, use property title instead + */ + property alias titleText: title.text + + /* + * Property: hour + * [int] The displayed hour (in 24h format). + */ + property int hour: 0 + + /* + * Property: minute + * [int] The displayed minute. + */ + property int minute: 0 + + /* + * Property: second + * [int] The displayed second. + */ + property int second: 0 + + /* + * Property: fields + * [int=DateTime.All] Sets if the time picker should show hours, minutes, + * and/or seconds. + * (DateTime.Hours, DateTime.Minutes, + * DateTime.Seconds, DateTime.All) + */ + property int fields: DateTime.All + + /* + * Property: hourMode + * [int=DateTime.TwentyFourHours] Sets if the time picker should show time in 24-hour clock + * or 12-hour clock format. + * (DateTime.TwentyFourHours, DateTime.TwelveHours) + */ + property int hourMode: dateTime.hourMode() //DateTime.TwentyFourHours + + /* + * Property: mode24Hour + * [bool=false] Sets if the time picker should show time in military time (24h). + */ + property bool mode24Hour + + /* + * Property: showSeconds + * [bool=true] Sets if the time picker should show seconds. Modifying this value + * after initialization will uninitialize everything. + */ + property bool showSeconds + + /* + * Property: acceptButtonText + * [string] Optional, the button text for the accept button. + */ + property alias acceptButtonText: acceptButton.text + + /* + * Property: rejectButtonText + * [string] Optional, the button text for the reject button. + */ + property alias rejectButtonText: rejectButton.text + + // TODO do not dismiss the dialog when empty area is clicked + style: DialogStyle { + titleBarHeight: 48 + leftMargin: screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted ? 16 : 215 + rightMargin: screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted ? 16 : 215 + centered: true + } + title: Text { + id: title + objectName: "title" + visible: text.length > 0 + color: theme.selectionColor + font { pixelSize: 32; family: C.FONT_FAMILY_BOLD } + elide: Text.ElideRight + } + content: Item { + height: 300 + width: parent.width + + Tumbler { + id: tumbler + + columns: [hourColumn, minuteColumn, secondColumn, meridiemColumn] + height: 300 + privateDelayInit: true + + TumblerColumn { + id: hourColumn + items: ListModel { + id: hourList + } + label: "HR" + selectedIndex: root.hour - ((root.hourMode == DateTime.TwelveHours && root.hour > 11) ? 12 : 0) + visible: fields & DateTime.Hours + } + + TumblerColumn { + id: minuteColumn + items: ListModel { + id: minuteList + } + label: "MIN" + selectedIndex: root.minute + visible: fields & DateTime.Minutes + } + + TumblerColumn { + id: secondColumn + items: ListModel { + id: secondList + } + label: "SEC" + selectedIndex: root.second + visible: fields & DateTime.Seconds + } + + TumblerColumn { + id: meridiemColumn + items: ListModel { + id: meridiemList + } + selectedIndex: root.hour > 11 ? 1: 0 + visible: root.hourMode == DateTime.TwelveHours + privateLoopAround: false + } + } + } + buttons: Row { + height: 56 + anchors.horizontalCenter: parent.horizontalCenter + spacing: 6 + Button { + id: acceptButton + onClicked: accept() + width: (root.width / 2) - 3 + style: ButtonStyle { inverted: true } + } + Button { + id: rejectButton + onClicked: reject() + width: (root.width / 2) - 3 + style: ButtonStyle { inverted: true } + } + } + onMode24HourChanged: { + console.log("The property 'mode24Hour' from TimePickerDialog is deprecated. Please use 'hourMode' instead.") + root.hourMode = mode24Hour == true ? DateTime.TwentyFourHours : DateTime.TwelveHours + } + onShowSecondsChanged: { + console.log("The property 'showSeconds' from TimePickerDialog is deprecated. Please use 'fields' instead.") + root.fields = showSeconds == true ? DateTime.All : DateTime.Hours | DateTime.Minutes + } + onStatusChanged: { + if (status == DialogStatus.Opening) { + TH.saveIndex(tumbler); + if (!internal.initialised) + internal.initializeDataModels(); + } + } + onAccepted: { + tumbler.privateForceUpdate(); + if (root.hourMode == DateTime.TwelveHours) + root.hour = hourColumn.selectedIndex + (meridiemColumn.selectedIndex > 0 ? 12 : 0); + else + root.hour = hourColumn.selectedIndex; + root.minute = minuteColumn.selectedIndex; + root.second = secondColumn.selectedIndex; + } + onRejected: { + TH.restoreIndex(tumbler); + } + onHourModeChanged: { + hourList.clear(); + var tmp = hourColumn.selectedIndex; + if (root.hourMode == DateTime.TwentyFourHours) { + tmp = (root.hour < 12 ? tmp : tmp + 12) + for (var i = 0; i < 24; ++i) + hourList.append({"value" : (i < 10 ? "0" : "") + i}); + } else { + tmp = (root.hour < 12 ? tmp : tmp - 12) + hourList.append({"value" : 12 + ""}); + for (var i = 1; i < 12; ++i) + hourList.append({"value" : i + ""}); + } + hourColumn.selectedIndex = -1; + hourColumn.selectedIndex = tmp; + } + onHourChanged: { + internal.validateTime() + hourColumn.selectedIndex = root.hour - ((root.hourMode == DateTime.TwelveHours && root.hour > 11) ? 12 : 0) + meridiemColumn.selectedIndex = root.hour > 11 ? 1: 0 + } + onMinuteChanged: { + internal.validateTime() + minuteColumn.selectedIndex = root.minute + } + onSecondChanged: { + internal.validateTime() + secondColumn.selectedIndex = root.second + } + + QtObject { + id: internal + + property variant initialised: false + + function initializeDataModels() { + if (root.hourMode == DateTime.TwelveHours) { + hourList.append({"value" : 12 + ""}); + for (var i = 1; i < 12; ++i) + hourList.append({"value" : i + ""}); + } + for (var i = 0; i < 60; ++i) { + minuteList.append({"value" : (i < 10 ? "0" : "") + i }); + secondList.append({"value" : (i < 10 ? "0" : "") + i }); + } + meridiemList.append({"value" : dateTime.amText()}); + meridiemList.append({"value" : dateTime.pmText()}); + + tumbler.privateInitialize(); + internal.initialised = true; + } + + function validateTime() { + root.hour = Math.max(0, Math.min(23, root.hour)) + root.minute = Math.max(0, Math.min(59, root.minute)) + root.second = Math.max(0, Math.min(59, root.second)) + } + } +} diff --git a/mardrone/imports/com/meego/extras/Tumbler.js b/mardrone/imports/com/meego/extras/Tumbler.js new file mode 100644 index 0000000..6b92ff4 --- /dev/null +++ b/mardrone/imports/com/meego/extras/Tumbler.js @@ -0,0 +1,137 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +var __columns = []; +var __autoColumnWidth = 0; +var __suppressLayoutUpdates = false; + +function initialize() { + // check the width requested by fixed width columns + var requestedWidth = 0; + var requestedCount = 0; + var invisibleCount = 0; + for (var i = 0; i < columns.length; i++) { + if (columns[i].visible) { + if (columns[i].width > 0 && !columns[i].privateIsAutoWidth) { + requestedWidth += columns[i].width; + requestedCount++; + } + } else { + invisibleCount++; + } + } + + // allocate the rest to auto width columns + if ((columns.length - requestedCount - invisibleCount) > 0) { + __autoColumnWidth = Math.floor((parent.width - requestedWidth) / (columns.length - requestedCount - invisibleCount)); + } + + for (var i = 0; i < columns.length; i++) { + var comp = Qt.createComponent("TumblerTemplate.qml"); + var newObj = comp.createObject(tumblerRow); + if (!columns[i].width || columns[i].privateIsAutoWidth) { + columns[i].width = __autoColumnWidth; + columns[i].privateIsAutoWidth = true; + } + if (columns[i].label) { + // enable label for the tumbler + internal.hasLabel = true; + } + newObj.height = root.height; + newObj.index = i; + newObj.tumblerColumn = columns[i]; + newObj.widthChanged.connect(layout); + newObj.visibleChanged.connect(layout); + __columns.push(newObj); + } + privateTemplates = __columns; +} + +function clear() { + var count = __columns.length; + for (var i = 0; i < count; i++) { + var tmp = __columns.pop(); + tmp.destroy(); + } +} + +function forceUpdate() { + for (var i = 0; i < columns.length; i++) { + columns[i].selectedIndex = __columns[i].view.currentIndex; + } +} + +function layout() { + if (__suppressLayoutUpdates) { + // guard against onWidthChanged triggering again during this process + return; + } + var requestedWidth = 0; + var requestedCount = 0; + var invisibleCount = 0; + for (var i = 0; i < columns.length; i++) { + if (columns[i].visible) { + var w = columns[i].width; + var a = columns[i].privateIsAutoWidth; + if (!a || (a && w != __autoColumnWidth)) { + requestedWidth += columns[i].width; + requestedCount++; + columns[i].privateIsAutoWidth = false; + } else { + columns[i].privateIsAutoWidth = true; + } + } else { + invisibleCount++; + } + } + + if ((columns.length - requestedCount - invisibleCount) > 0) { + __autoColumnWidth = Math.floor((parent.width - requestedWidth) / (columns.length - requestedCount - invisibleCount)); + } + + // guard against onWidthChanged triggering again during this process + __suppressLayoutUpdates = true; + for (var i = 0; i < columns.length; i++) { + if (columns[i].privateIsAutoWidth) { + columns[i].width = __autoColumnWidth; + } + } + __suppressLayoutUpdates = false; +} diff --git a/mardrone/imports/com/meego/extras/Tumbler.qml b/mardrone/imports/com/meego/extras/Tumbler.qml new file mode 100644 index 0000000..4bb077d --- /dev/null +++ b/mardrone/imports/com/meego/extras/Tumbler.qml @@ -0,0 +1,158 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "Tumbler.js" as Engine +import "constants.js" as C + +/* + Class: Tumbler + A tumbler. +*/ +ImplicitSizeItem { + id: root + + /* + * Property: items + * [ListModel] Array of ListModel for each column of the dialog. + */ + property list columns + + /* + * Event: changed + * Is emitted when the value of the tumbler changes. + */ + signal changed(int index) + + /* private */ + property bool privateDelayInit: false + property list privateTemplates + + implicitWidth: C.TUMBLER_WIDTH + implicitHeight: screen.displayWidth > screen.displayHeight ? + C.TUMBLER_HEIGHT_LANDSCAPE : + C.TUMBLER_HEIGHT_PORTRAIT + + /* private */ + function privateInitialize() { + if (!internal.initialized) { + Engine.initialize(); + internal.initialized = true; + } + } + + /* private */ + function privateForceUpdate() { + Engine.forceUpdate(); + } + + anchors.fill: parent + clip: true + Component.onCompleted: { + if (!privateDelayInit && !internal.initialized) { + Engine.initialize(); + internal.initialized = true; + } + } + onChanged: { + if (internal.movementCount == 0) + Engine.forceUpdate(); + } + onColumnsChanged: { + if (internal.initialized) { + // when new columns are added, the system first removes all + // the old columns + internal.initialized = false; + Engine.clear(); + internal.reInit = true; + } else if (internal.reInit && columns.length > 0) { + // timer is used because the new columns are added one by one + // we only want to act after the last column is added + internal.reInit = false; + columnChangedTimer.restart(); + } + } + onWidthChanged: { + Engine.layout(); + } + + QtObject { + id: internal + + property int movementCount: 0 + property bool initialized: false + property bool reInit: false + property bool hasLabel: false + + property Timer timer: Timer { + id: columnChangedTimer + interval: 50 + onTriggered: { + Engine.initialize(); + internal.initialized = true; + } + } + } + + BorderImage { + width: parent.width + height: internal.hasLabel ? + parent.height - C.TUMBLER_LABEL_HEIGHT : // decrease by bottom text height + parent.height + source: "image://theme/" + theme.colorString + "meegotouch-list-fullwidth-background-selected" + anchors.top: parent.top + border { left: C.TUMBLER_BORDER_MARGIN; top: C.TUMBLER_BORDER_MARGIN; right: C.TUMBLER_BORDER_MARGIN; bottom: C.TUMBLER_BORDER_MARGIN } + } + + Rectangle { + width: parent.width + height: internal.hasLabel ? + parent.height - C.TUMBLER_LABEL_HEIGHT - 2 * C.TUMBLER_BORDER_MARGIN : // decrease by bottom text & border height + parent.height - 2*C.TUMBLER_BORDER_MARGIN + color: C.TUMBLER_COLOR + anchors { top: parent.top; topMargin: C.TUMBLER_BORDER_MARGIN } + } + + Row { + id: tumblerRow + anchors { fill: parent; topMargin: 1 } + } +} diff --git a/mardrone/imports/com/meego/extras/TumblerButton.qml b/mardrone/imports/com/meego/extras/TumblerButton.qml new file mode 100644 index 0000000..5df7b45 --- /dev/null +++ b/mardrone/imports/com/meego/extras/TumblerButton.qml @@ -0,0 +1,140 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "constants.js" as UI + +/* + Class: TumblerButton + button component that has a label and has click event handling. + + A button is a component that accepts user input and send a clicked() signal for + the application to handle. The button has resizable properties, event + handling, and can undergo state changes and transitions. + + The TumblerButton has a fixed width. Longer text will be elided. + To avoid that for longer texts please set the implicitWidth explicitly. + + + // Create a button with different icon states: + // This approach works for all supported states: normal, disabled, pressed, selected, selected && disabled + TumblerButton { + text: "Tumbler Button" + } + +*/ +Item { + id: tumblerbutton + + /* + * Property: text + * [string] The text displayed on button. + */ + property string text: "Get Value" + + /* + * Property: pressed + * [bool] (ReadOnly) Is true when the button is pressed + */ + property alias pressed: mouse.pressed + + property QtObject style: TumblerButtonStyle{} + + /* + * Event: clicked + * Is emitted after the button is released + */ + signal clicked + + height: UI.SIZE_BUTTON + width: UI.WIDTH_TUMBLER_BUTTON // fixed width to prevent jumping size after selecting value from tumbler + + BorderImage { + border { top: UI.CORNER_MARGINS; bottom: UI.CORNER_MARGINS; + left: UI.CORNER_MARGINS; right: UI.CORNER_MARGINS } + anchors.fill: parent + source: mouse.pressed ? + tumblerbutton.style.pressedBackground : tumblerbutton.enabled ? + tumblerbutton.style.background : tumblerbutton.style.disabledBackground; + } + + MouseArea { + id: mouse + + anchors.fill: parent + enabled: parent.enabled + onClicked: { + parent.clicked() + } + } + + Image { + id: icon + + anchors { right: (label.text != "") ? parent.right : undefined; + rightMargin: UI.INDENT_DEFAULT; + horizontalCenter: (label.text != "") ? undefined : parent.horizontalCenter; + verticalCenter: parent.verticalCenter; + } + height: sourceSize.height + width: sourceSize.width + source: "image://theme/meegotouch-combobox-indicator" + + (tumblerbutton.style.inverted ? "-inverted" : "") + + (tumblerbutton.enabled ? "" : "-disabled") + + (mouse.pressed ? "-pressed" : "") + } + + Text { + id: label + + anchors { left: parent.left; right: icon.left; + leftMargin: UI.INDENT_DEFAULT; rightMargin: UI.INDENT_DEFAULT; + verticalCenter: parent.verticalCenter } + font { family: UI.FONT_FAMILY; pixelSize: UI.FONT_DEFAULT_SIZE; + bold: UI.FONT_BOLD_BUTTON; capitalization: tumblerbutton.style.fontCapitalization } + text: tumblerbutton.text + color: (mouse.pressed) ? + tumblerbutton.style.pressedTextColor : + (tumblerbutton.enabled) ? + tumblerbutton.style.textColor : tumblerbutton.style.disabledTextColor ; + horizontalAlignment: Text.AlignLeft + elide: Text.ElideRight + } +} diff --git a/mardrone/imports/com/meego/extras/TumblerButtonStyle.qml b/mardrone/imports/com/meego/extras/TumblerButtonStyle.qml new file mode 100644 index 0000000..9f09636 --- /dev/null +++ b/mardrone/imports/com/meego/extras/TumblerButtonStyle.qml @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as UI + +ButtonStyle { + // Text Color + textColor: inverted ? UI.COLOR_BUTTON_INVERTED_FOREGROUND : UI.COLOR_BUTTON_FOREGROUND + pressedTextColor: UI.COLOR_BUTTON_SECONDARY_FOREGROUND + disabledTextColor: inverted ? UI.COLOR_BUTTON_INVERTED_DISABLED_FOREGROUND : UI.COLOR_BUTTON_DISABLED_FOREGROUND + + // Background + background: "image://theme/meegotouch-button" + __invertedString + "-background" + pressedBackground: "image://theme/" + __colorString + "meegotouch-button" + __invertedString + "-background-pressed" + disabledBackground: "image://theme/" + __colorString + "meegotouch-button" + __invertedString + "-background-disabled" +} diff --git a/mardrone/imports/com/meego/extras/TumblerColumn.qml b/mardrone/imports/com/meego/extras/TumblerColumn.qml new file mode 100644 index 0000000..ffda049 --- /dev/null +++ b/mardrone/imports/com/meego/extras/TumblerColumn.qml @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Item { + property variant items + property string label + property int selectedIndex: 0 + property bool enabled: true + + // private + property bool privateIsAutoWidth: false + property bool privateLoopAround: true +} diff --git a/mardrone/imports/com/meego/extras/TumblerDialog.qml b/mardrone/imports/com/meego/extras/TumblerDialog.qml new file mode 100644 index 0000000..dbfbab0 --- /dev/null +++ b/mardrone/imports/com/meego/extras/TumblerDialog.qml @@ -0,0 +1,154 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as C +import "TumblerIndexHelper.js" as IH + +/* + Class: TumblerDialog + Dialog that shows a tumbler. +*/ +Dialog { + id: root + + /* + * Property: titleText + * [string] If not null, it will be used as the title text for the dialog. + * If further customization is needed, use property title instead + */ + property alias titleText: title.text + + /* + * Property: items + * [ListModel] Array of ListModel for each column of the dialog. + */ + property alias columns: tumbler.columns + + /* + * Property: acceptButtonText + * [string] The button text for the accept button. + */ + property alias acceptButtonText: acceptButton.text + + /* + * Property: rejectButtonText + * [string] The button text for the reject button. + */ + property alias rejectButtonText: rejectButton.text + + // TODO do not dismiss the dialog when empty area is clicked + style: DialogStyle { + titleBarHeight: 48 + leftMargin: screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted ? 16 : 215 + rightMargin: screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted ? 16 : 215 + centered: true + } + title: Text { + id: title + objectName: "titleText" + visible: text.length > 0 + color: theme.selectionColor + font { pixelSize: 32; family: C.FONT_FAMILY_BOLD } + elide: Text.ElideRight + } + content: Item { + height: 300 + width: parent.width + Tumbler { + id: tumbler + height: 300 + privateDelayInit: true + } + } + buttons: Row { + height: 56 + anchors.horizontalCenter: parent.horizontalCenter + spacing: 6 + Button { + id: acceptButton + onClicked: accept() + width: (root.width / 2) - 3 + style: ButtonStyle { inverted: true } + visible: text != "" + } + Button { + id: rejectButton + onClicked: reject() + width: (root.width / 2) - 3 + style: ButtonStyle { inverted: true } + visible: text != "" + } + } + + QtObject { + id: internal + property bool init: true + } + + onStatusChanged: { + if (status == DialogStatus.Opening) { + tumbler.privateInitialize(); + + if (internal.init) { + IH.saveIndex(tumbler); + internal.init = false; + } + else { + // restore index when dialog was canceled. + // another case is when dialog was closed while tumbler was + // still rotating (Qt sets the index to the last rotated + // number, need to retore to a previously saved index in + // this case) + IH.restoreIndex(tumbler); + } + } + } + + onAccepted: { + tumbler.privateForceUpdate(); + IH.saveIndex(tumbler); + } + + onRejected: { + IH.restoreIndex(tumbler); + } +} diff --git a/mardrone/imports/com/meego/extras/TumblerDialogNew.qml b/mardrone/imports/com/meego/extras/TumblerDialogNew.qml new file mode 100644 index 0000000..9f09c2b --- /dev/null +++ b/mardrone/imports/com/meego/extras/TumblerDialogNew.qml @@ -0,0 +1,45 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +TumblerDialog { + Component.onCompleted: console.log("DEPRECATION WARNING: TumblerDialogNew is being deprecated, please renmae to TumblerDialog instead. This component will be removed on April 25th, 2011") +} diff --git a/mardrone/imports/com/meego/extras/TumblerIndexHelper.js b/mardrone/imports/com/meego/extras/TumblerIndexHelper.js new file mode 100644 index 0000000..d9c09ad --- /dev/null +++ b/mardrone/imports/com/meego/extras/TumblerIndexHelper.js @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +var __origIndex = []; + +function saveIndex(src) { + __origIndex = []; + for (var i = 0; i < src.columns.length; i++) { + __origIndex.push(src.columns[i].selectedIndex); + } +} + +function restoreIndex(src) { + for (var i = 0; i < __origIndex.length; i++) { + // position view at the right index then make sure selectedIndex + // is updated to reflect that + if (src.privateTemplates[i].view.currentIndex > __origIndex[i]) { + while (src.privateTemplates[i].view.currentIndex != __origIndex[i]) { + src.privateTemplates[i].view.decrementCurrentIndex() + } + } else if (src.privateTemplates[i].view.currentIndex < __origIndex[i]) { + while (src.privateTemplates[i].view.currentIndex != __origIndex[i]) { + src.privateTemplates[i].view.incrementCurrentIndex() + } + } + src.columns[i].selectedIndex = __origIndex[i]; + } +} diff --git a/mardrone/imports/com/meego/extras/TumblerNew.qml b/mardrone/imports/com/meego/extras/TumblerNew.qml new file mode 100644 index 0000000..6bef589 --- /dev/null +++ b/mardrone/imports/com/meego/extras/TumblerNew.qml @@ -0,0 +1,45 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Tumbler { + Component.onCompleted: console.log("DEPRECATION WARNING: TumblerNew is being deprecated, please renmae to Tumbler instead. This component will be removed on April 25th, 2011") +} diff --git a/mardrone/imports/com/meego/extras/TumblerTemplate.qml b/mardrone/imports/com/meego/extras/TumblerTemplate.qml new file mode 100644 index 0000000..3441ec4 --- /dev/null +++ b/mardrone/imports/com/meego/extras/TumblerTemplate.qml @@ -0,0 +1,219 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "constants.js" as C + +Item { + id: template + objectName: "tumblerColumn" + index + + property Item tumblerColumn + property int index: -1 + property Item view: viewContainer.item + + opacity: enabled ? C.TUMBLER_OPACITY_FULL : C.TUMBLER_OPACITY + width: childrenRect.width + visible: tumblerColumn ? tumblerColumn.visible : false + enabled: tumblerColumn ? tumblerColumn.enabled : true + onTumblerColumnChanged: { + if (tumblerColumn) + viewContainer.sourceComponent = tumblerColumn.privateLoopAround ? pViewComponent : lViewComponent; + } + + Loader { + id: viewContainer + width: tumblerColumn ? tumblerColumn.width : 0 + height: parent.height - container.height - 2*C.TUMBLER_BORDER_MARGIN // decrease by text & border heights + } + + Component { + // Component for loop around column + id: pViewComponent + PathView { + id: pView + + model: tumblerColumn ? tumblerColumn.items : undefined + currentIndex: tumblerColumn ? tumblerColumn.selectedIndex : 0 + preferredHighlightBegin: (height / 2) / (C.TUMBLER_ROW_HEIGHT * pView.count) + preferredHighlightEnd: preferredHighlightBegin + highlightRangeMode: PathView.StrictlyEnforceRange + clip: true + delegate: defaultDelegate + highlight: defaultHighlight + interactive: template.enabled + anchors.fill: parent + + onMovementStarted: { + internal.movementCount++; + } + onMovementEnded: { + internal.movementCount--; + root.changed(template.index) // got index from delegate + } + + Rectangle { + width: 1 + height: parent.height + color: C.TUMBLER_COLOR_TEXT + opacity: C.TUMBLER_OPACITY_LOW + } + + path: Path { + startX: template.width / 2; startY: 0 + PathLine { + x: template.width / 2 + y: C.TUMBLER_ROW_HEIGHT * pView.count + } + } + } + } + + Component { + // Component for non loop around column + id: lViewComponent + ListView { + id: lView + + model: tumblerColumn ? tumblerColumn.items : undefined + currentIndex: tumblerColumn ? tumblerColumn.selectedIndex : 0 + preferredHighlightBegin: Math.floor((height - C.TUMBLER_ROW_HEIGHT) / 2) + preferredHighlightEnd: preferredHighlightBegin + C.TUMBLER_ROW_HEIGHT + highlightRangeMode: ListView.StrictlyEnforceRange + clip: true + delegate: defaultDelegate + highlight: defaultHighlight + interactive: template.enabled + anchors.fill: parent + + onMovementStarted: { + internal.movementCount++; + } + onMovementEnded: { + internal.movementCount--; + root.changed(template.index) // got index from delegate + } + + Rectangle { + width: 1 + height: parent.height + color: C.TUMBLER_COLOR_TEXT + opacity: C.TUMBLER_OPACITY_LOW + } + } + } + + Item { + id: container + anchors.top: viewContainer.bottom + width: tumblerColumn ? tumblerColumn.width : 0 + height: internal.hasLabel ? C.TUMBLER_LABEL_HEIGHT : 0 // internal.hasLabel is from root tumbler + + Text { + id: label + + text: tumblerColumn ? tumblerColumn.label : "" + elide: Text.ElideRight + horizontalAlignment: "AlignHCenter" + color: C.TUMBLER_COLOR_LABEL + font { family: C.FONT_FAMILY_LIGHT; pixelSize: C.FONT_LIGHT_SIZE } + anchors { fill: parent; margins: C.TUMBLER_MARGIN} + } + } + + Component { + id: defaultDelegate + + Item { + width: tumblerColumn.width + height: C.TUMBLER_ROW_HEIGHT + + Text { + id: txt + elide: Text.ElideRight + horizontalAlignment: "AlignHCenter" + color: C.TUMBLER_COLOR_TEXT + font { family: C.FONT_FAMILY_BOLD; pixelSize: C.FONT_DEFAULT_SIZE } + anchors { fill: parent; margins: C.TUMBLER_MARGIN } + + MouseArea { + anchors.fill: parent + onClicked: { + if (template.view.interactive) { + tumblerColumn.selectedIndex = index; // got index from delegate + root.changed(template.index); + } + } + } + } + + Component.onCompleted: { + try { + // Legacy. "value" use to be the role which was used by delegate + txt.text = value + } catch(err) { + try { + // "modelData" available for JS array and for models with one role + txt.text = modelData + } catch (err) { + try { + // C++ models have "display" role available always + txt.text = display + } catch(err) { + } + } + } + } + } + } + + Component { + id: defaultHighlight + + Image { + id: highlight + objectName: "highlight" + width: tumblerColumn ? tumblerColumn.width : 0 + height: C.TUMBLER_ROW_HEIGHT + source: "image://theme/" + theme.colorString + "meegotouch-list-fullwidth-background-selected-horizontal-center" + fillMode: Image.TileHorizontally + } + } +} diff --git a/mardrone/imports/com/meego/extras/constants.js b/mardrone/imports/com/meego/extras/constants.js new file mode 100644 index 0000000..60cf625 --- /dev/null +++ b/mardrone/imports/com/meego/extras/constants.js @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +.pragma library + +/* Margins */ +var INDENT_DEFAULT = 16; +var CORNER_MARGINS = 22; +var MARGIN_DEFAULT = 0; +var MARGIN_XLARGE = 16; + +// ListDelegate +var LIST_ITEM_MARGIN = 16 +var LIST_ITEM_SPACING = 16 +var LIST_ITEM_HEIGHT = 80 +var LIST_ICON_SIZE = 64 +var LIST_TILE_SIZE = 26 +var LIST_TITLE_COLOR = "#282828" +var LIST_TITLE_COLOR_PRESSED = "#797979" +var LIST_TITLE_COLOR_INVERTED = "#ffffff" +var LIST_TITLE_COLOR_PRESSED_INVERTED = "#797979" +var LIST_SUBTILE_SIZE = 22 +var LIST_SUBTITLE_COLOR = "#505050" +var LIST_SUBTITLE_COLOR_PRESSED = "#797979" +var LIST_SUBTITLE_COLOR_INVERTED = "#C8C8C8" +var LIST_SUBTITLE_COLOR_PRESSED_INVERTED = "#797979" + +/* Font properties */ +var FONT_FAMILY = "Nokia Pure Text"; +var FONT_FAMILY_BOLD = "Nokia Pure Text Bold"; +var FONT_FAMILY_LIGHT = "Nokia Pure Text Light"; +var FONT_DEFAULT_SIZE = 24; +var FONT_LIGHT_SIZE = 22; + +/* TUMBLER properties */ +var TUMBLER_COLOR_TEXT = "#FFFFFF"; +var TUMBLER_COLOR_LABEL = "#8C8C8C"; +var TUMBLER_COLOR = "#000000"; +var TUMBLER_OPACITY_FULL = 1.0; +var TUMBLER_OPACITY = 0.4; +var TUMBLER_OPACITY_LOW = 0.1; +var TUMBLER_FLICK_VELOCITY = 700; +var TUMBLER_ROW_HEIGHT = 64; +var TUMBLER_LABEL_HEIGHT = 54; +var TUMBLER_MARGIN = 16; +var TUMBLER_BORDER_MARGIN = 1; +var TUMBLER_WIDTH = 344; +var TUMBLER_HEIGHT_PORTRAIT = 256; +var TUMBLER_HEIGHT_LANDSCAPE = 192; + +/* Button styles */ +// Normal +var COLOR_BUTTON_FOREGROUND = "#191919"; // Text color +var COLOR_BUTTON_SECONDARY_FOREGROUND = "#8c8c8c"; // Pressed +var COLOR_BUTTON_DISABLED_FOREGROUND = "#b2b2b4"; // Disabled +// Inverted +var COLOR_BUTTON_INVERTED_FOREGROUND = "#FFFFFF"; +var COLOR_BUTTON_INVERTED_SECONDARY_FOREGROUND = "#8c8c8c"; // Pressed +var COLOR_BUTTON_INVERTED_DISABLED_FOREGROUND = "#f5f5f5"; // Disabled + +var SIZE_BUTTON = 51; +var SIZE_SMALL_BUTTON = 43; +var WIDTH_SMALL_BUTTON = 122; +var WIDTH_TUMBLER_BUTTON = 222; + +var FONT_BOLD_BUTTON = true; + +var INFO_BANNER_OPACITY = 0.9 +var INFO_BANNER_LETTER_SPACING = -1.2 diff --git a/mardrone/imports/com/meego/extras/qmldir b/mardrone/imports/com/meego/extras/qmldir new file mode 100644 index 0000000..8d2b47e --- /dev/null +++ b/mardrone/imports/com/meego/extras/qmldir @@ -0,0 +1,43 @@ +plugin meegoextrasplugin +CountBubble 1.0 CountBubble.qml +DatePickerDialog 1.0 DatePickerDialog.qml +InfoBanner 1.0 InfoBanner.qml +ListDelegate 1.0 ListDelegate.qml +MoreIndicator 1.0 MoreIndicator.qml +NetPromoterScore 1.0 NetPromoterScore.qml +PageIndicator 1.0 PageIndicator.qml +RatingIndicator 1.0 RatingIndicator.qml +TimePickerDialog 1.0 TimePickerDialog.qml +Tumbler 1.0 Tumbler.qml +TumblerColumn 1.0 TumblerColumn.qml +TumblerButton 1.0 TumblerButton.qml +TumblerDialog 1.0 TumblerDialog.qml +ListButton 1.0 ListButton.qml +ListButtonStyle 1.0 ListButtonStyle.qml +NegativeButtonStyle 1.0 NegativeButtonStyle.qml +PositiveButtonStyle 1.0 PositiveButtonStyle.qml +SystemBanner 1.0 SystemBanner.qml +TumblerButtonStyle 1.0 TumblerButtonStyle.qml +TumblerNew 1.0 TumblerNew.qml +TumblerDialogNew 1.0 TumblerDialogNew.qml +CountBubble 1.1 CountBubble.qml +DatePickerDialog 1.1 DatePickerDialog.qml +InfoBanner 1.1 InfoBanner.qml +ListDelegate 1.1 ListDelegate.qml +MoreIndicator 1.1 MoreIndicator.qml +NetPromoterScore 1.1 NetPromoterScore.qml +PageIndicator 1.1 PageIndicator.qml +RatingIndicator 1.1 RatingIndicator.qml +TimePickerDialog 1.1 TimePickerDialog.qml +Tumbler 1.1 Tumbler.qml +TumblerColumn 1.1 TumblerColumn.qml +TumblerButton 1.1 TumblerButton.qml +TumblerDialog 1.1 TumblerDialog.qml +ListButton 1.1 ListButton.qml +ListButtonStyle 1.1 ListButtonStyle.qml +NegativeButtonStyle 1.1 NegativeButtonStyle.qml +PositiveButtonStyle 1.1 PositiveButtonStyle.qml +SystemBanner 1.1 SystemBanner.qml +TumblerButtonStyle 1.1 TumblerButtonStyle.qml +TumblerNew 1.1 TumblerNew.qml +TumblerDialogNew 1.1 TumblerDialogNew.qml diff --git a/mardrone/imports/com/meego/qmldir b/mardrone/imports/com/meego/qmldir new file mode 100644 index 0000000..cd332cb --- /dev/null +++ b/mardrone/imports/com/meego/qmldir @@ -0,0 +1,144 @@ +plugin meegoplugin +ApplicationWindow 1.0 ApplicationWindow.qml +ApplicationWindowStyle 1.0 ApplicationWindowStyle.qml +BusyIndicator 1.0 BusyIndicator.qml +BusyIndicatorStyle 1.0 BusyIndicatorStyle.qml +Button 1.0 Button.qml +ButtonStyle 1.0 ButtonStyle.qml +GroupButtonStyle 1.0 GroupButtonStyle.qml +ButtonColumn 1.0 ButtonColumn.qml +ButtonRow 1.0 ButtonRow.qml +CheckBox 1.0 CheckBox.qml +CheckBoxStyle 1.0 CheckBoxStyle.qml +ContextMenu 1.0 ContextMenu.qml +ContextMenuStyle 1.0 ContextMenuStyle.qml +Dialog 1.0 Dialog.qml +DialogStyle 1.0 DialogStyle.qml +EditBubble 1.0 EditBubble.qml +QueryDialog 1.0 QueryDialog.qml +QueryDialogStyle 1.0 QueryDialogStyle.qml +SelectionDialog 1.0 SelectionDialog.qml +MultiSelectionDialog 1.0 MultiSelectionDialog.qml +SelectionDialogStyle 1.0 SelectionDialogStyle.qml +Label 1.0 Label.qml +LabelStyle 1.0 LabelStyle.qml +Menu 1.0 Menu.qml +MenuLayout 1.0 MenuLayout.qml +MenuItem 1.0 MenuItem.qml +MenuStyle 1.0 MenuStyle.qml +MenuItemStyle 1.0 MenuItemStyle.qml +MouseAreaDebug 1.0 MouseAreaDebug.qml +Page 1.0 Page.qml +PageStack 1.0 PageStack.qml +PageStackWindow 1.0 PageStackWindow.qml +PageStackWindowStyle 1.0 PageStackWindowStyle.qml +ProgressBar 1.0 ProgressBar.qml +ProgressBarStyle 1.0 ProgressBarStyle.qml +RadioButton 1.0 RadioButton.qml +RadioButtonStyle 1.0 RadioButtonStyle.qml +ScrollDecorator 1.0 ScrollDecorator.qml +ScrollDecoratorStyle 1.0 ScrollDecoratorStyle.qml +SectionScroller 1.0 SectionScroller.qml +SectionScrollerStyle 1.0 SectionScrollerStyle.qml +Sheet 1.0 Sheet.qml +SheetStyle 1.0 SheetStyle.qml +SheetButton 1.0 SheetButton.qml +SheetButtonStyle 1.0 SheetButtonStyle.qml +SheetButtonAccentStyle 1.0 SheetButtonAccentStyle.qml +Slider 1.0 Slider.qml +SliderStyle 1.0 SliderStyle.qml +SliderTemplate 1.0 SliderTemplate.qml +StatusBar 1.0 StatusBar.qml +Style 1.0 Style.qml +Switch 1.0 Switch.qml +SwitchStyle 1.0 SwitchStyle.qml +TabBarLayout 1.0 TabBarLayout.qml +TabButton 1.0 TabButton.qml +TabButtonStyle 1.0 TabButtonStyle.qml +TabGroup 1.0 TabGroup.qml +TextArea 1.0 TextArea.qml +TextAreaStyle 1.0 TextAreaStyle.qml +TextField 1.0 TextField.qml +TextFieldStyle 1.0 TextFieldStyle.qml +ToolBar 1.0 ToolBar.qml +ToolBarLayout 1.0 ToolBarLayout.qml +ToolBarStyle 1.0 ToolBarStyle.qml +ToolButton 1.0 ToolButton.qml +ToolButtonRow 1.0 ToolButtonRow.qml +ToolButtonStyle 1.0 ToolButtonStyle.qml +ToolItem 1.0 ToolItem.qml +ToolIcon 1.0 ToolIcon.qml +ToolItemStyle 1.0 ToolItemStyle.qml +Window 1.0 Window.qml + +ApplicationWindow 1.1 ApplicationWindow.qml +ApplicationWindowStyle 1.1 ApplicationWindowStyle.qml +BusyIndicator 1.1 BusyIndicator.qml +BusyIndicatorStyle 1.1 BusyIndicatorStyle.qml +Button 1.1 Button.qml +ButtonStyle 1.1 ButtonStyle.qml +GroupButtonStyle 1.1 GroupButtonStyle.qml +ButtonColumn 1.1 ButtonColumn.qml +ButtonRow 1.1 ButtonRow.qml +CheckBox 1.1 CheckBox.qml +CheckBoxStyle 1.1 CheckBoxStyle.qml +ContextMenu 1.1 ContextMenu.qml +ContextMenuStyle 1.1 ContextMenuStyle.qml +Dialog 1.1 Dialog.qml +DialogStyle 1.1 DialogStyle.qml +EditBubble 1.1 EditBubble.qml +QueryDialog 1.1 QueryDialog.qml +QueryDialogStyle 1.1 QueryDialogStyle.qml +SelectionDialog 1.1 SelectionDialog.qml +MultiSelectionDialog 1.1 MultiSelectionDialog.qml +SelectionDialogStyle 1.1 SelectionDialogStyle.qml +Label 1.1 Label.qml +LabelStyle 1.1 LabelStyle.qml +Menu 1.1 Menu.qml +MenuLayout 1.1 MenuLayout.qml +MenuItem 1.1 MenuItem.qml +MenuStyle 1.1 MenuStyle.qml +MenuItemStyle 1.1 MenuItemStyle.qml +MouseAreaDebug 1.1 MouseAreaDebug.qml +Page 1.1 Page.qml +PageStack 1.1 PageStack.qml +PageStackWindow 1.1 PageStackWindow.qml +PageStackWindowStyle 1.1 PageStackWindowStyle.qml +ProgressBar 1.1 ProgressBar.qml +ProgressBarStyle 1.1 ProgressBarStyle.qml +RadioButton 1.1 RadioButton.qml +RadioButtonStyle 1.1 RadioButtonStyle.qml +ScrollDecorator 1.1 ScrollDecorator.qml +ScrollDecoratorStyle 1.1 ScrollDecoratorStyle.qml +SectionScroller 1.1 SectionScroller.qml +SectionScrollerStyle 1.1 SectionScrollerStyle.qml +Sheet 1.1 Sheet.qml +SheetStyle 1.1 SheetStyle.qml +SheetButton 1.1 SheetButton.qml +SheetButtonStyle 1.1 SheetButtonStyle.qml +SheetButtonAccentStyle 1.1 SheetButtonAccentStyle.qml +Slider 1.1 Slider.qml +SliderStyle 1.1 SliderStyle.qml +SliderTemplate 1.1 SliderTemplate.qml +StatusBar 1.1 StatusBar.qml +Style 1.1 Style.qml +Switch 1.1 Switch.qml +SwitchStyle 1.1 SwitchStyle.qml +TabBarLayout 1.1 TabBarLayout.qml +TabButton 1.1 TabButton.qml +TabButtonStyle 1.1 TabButtonStyle.qml +TabGroup 1.1 TabGroup.qml +TextArea 1.1 TextArea.qml +TextAreaStyle 1.1 TextAreaStyle.qml +TextField 1.1 TextField.qml +TextFieldStyle 1.1 TextFieldStyle.qml +ToolBar 1.1 ToolBar.qml +ToolBarLayout 1.1 ToolBarLayout.qml +ToolBarStyle 1.1 ToolBarStyle.qml +ToolButton 1.1 ToolButton.qml +ToolButtonRow 1.1 ToolButtonRow.qml +ToolButtonStyle 1.1 ToolButtonStyle.qml +ToolItem 1.1 ToolItem.qml +ToolIcon 1.1 ToolIcon.qml +ToolItemStyle 1.1 ToolItemStyle.qml +Window 1.1 Window.qml diff --git a/mardrone/imports/com/nokia/extras/CountBubble.qml b/mardrone/imports/com/nokia/extras/CountBubble.qml new file mode 100644 index 0000000..9bd1832 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/CountBubble.qml @@ -0,0 +1,112 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as C + +/* + Class: CountBubble + CountBubble component is a flexible shape that holds a number and can be added in lists or + notification banners for example. +*/ + +ImplicitSizeItem { + id: root + + /* + * Property: largeSized + * [bool=false] Use small or large count bubble. + */ + property bool largeSized: false + + /* + * Property: value + * [int=0] Reflects the current value. + */ + property int value: 0 + + implicitWidth: internal.getBubbleWidth() + implicitHeight: largeSized ? 32:24 + + BorderImage { + source: "image://theme/" + theme.colorString + "meegotouch-countbubble-background"+(largeSized ? "-large":"") + anchors.fill: parent + border { left: 10; top: 10; right: 10; bottom: 10 } + } + + Text { + id: text + height: parent.height + y:1 + color: largeSized ? "#FFFFFF" : "black" + font.family: C.FONT_FAMILY + anchors.horizontalCenter: parent.horizontalCenter + verticalAlignment: Text.AlignVCenter + font.pixelSize: largeSized ? 22:18 + text: root.value + } + + QtObject { + id: internal + + function getBubbleWidth() { + if (largeSized) { + if (root.value < 10) + return 32; + else if (root.value < 100) + return 40; + else if (root.value < 1000) + return 52; + else + return text.paintedWidth+19 + } else { + if (root.value < 10) + return 24; + else if (root.value < 100) + return 30; + else if (root.value < 1000) + return 40; + else + return text.paintedWidth+13 + } + } + } +} diff --git a/mardrone/imports/com/nokia/extras/DatePickerDialog.qml b/mardrone/imports/com/nokia/extras/DatePickerDialog.qml new file mode 100644 index 0000000..5e6c465 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/DatePickerDialog.qml @@ -0,0 +1,332 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as C +import "TumblerIndexHelper.js" as TH + +/* + Class: DatePickerDialog + Dialog that shows a date picker. +*/ + +Dialog { + id: root + + /* + * Property: titleText + * [string] If not null, it will be used as the title text for the dialog. + * If further customization is needed, use property title instead + */ + property alias titleText: title.text + + /* + * Property: year + * [int] The displayed year. + */ + property int year: dateTime.currentYear() + + /* + * Property: month + * [int] The displayed month. + */ + property int month: 1 + + /* + * Property: day + * [int] The displayed day. + */ + property int day: 1 + + /* + * Property: minimumYear + * [int] Optional, the minimum year shown on the tumbler. This property should + * only be set once during construction. If the value is not specified, + * it is default to current year - 1. + */ + property int minimumYear: dateTime.currentYear() - 1 + + /* + * Property: maximumYear + * [int] Optional, the maximum year shown on the tumbler. This property should + * only be set once during construction. If the value is not specified, + * it is default to current year + 20. + */ + property int maximumYear: dateTime.currentYear() + 20 + + /* + * Property: acceptButtonText + * [string] Optional, the button text for the accept button. + */ + property alias acceptButtonText: confirmButton.text + + /* + * Property: rejectButtonText + * [string] Optional, the button text for the reject button. + */ + property alias rejectButtonText: rejectButton.text + + // TODO do not dismiss the dialog when empty area is clicked + style: DialogStyle { + titleBarHeight: 48 + leftMargin: screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted ? 16 : 215 + rightMargin: screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted ? 16 : 215 + centered: true + } + title: Text { + id: title + objectName: "title" + visible: text.length > 0 + color: theme.selectionColor + font { pixelSize: 32; family: C.FONT_FAMILY_BOLD } + elide: Text.ElideRight + } + content: Item { + id: dialogContent + height: 300 + width: parent.width + + Tumbler { + id: tumbler + + function _handleTumblerChanges(index) { + if (index == 1 || index == 2) { + var curYear = yearColumn.selectedIndex + yearList.get(0).value; + var curMonth = monthColumn.selectedIndex + 1; + + var d = dateTime.daysInMonth(curYear, curMonth); + if (dayColumn.selectedIndex >= d) + dayColumn.selectedIndex = d - 1 + while (dayList.count > d) + dayList.remove(dayList.count - 1) + while (dayList.count < d) + dayList.append({"value" : dayList.count + 1}) + } + } + + columns: [dayColumn, monthColumn, yearColumn] + onChanged: { + _handleTumblerChanges(index); + } + height: 300 + privateDelayInit: true + + TumblerColumn { + id: dayColumn + items: ListModel { + id: dayList + } + label: "DAY" + selectedIndex: root.day - (root.day > 0 ? 1 : 0) + } + + TumblerColumn { + id: monthColumn + items: ListModel { + id: monthList + } + label: "MONTH" + selectedIndex: root.month - (root.month > 0 ? 1 : 0) + } + + TumblerColumn { + id: yearColumn + items: ListModel { + id: yearList + } + label: "YEAR" + selectedIndex: yearList.length > 0 ? internal.year - yearList.get(0).value : 0 + } + } + } + buttons: Row { + height: 56 + anchors.horizontalCenter: parent.horizontalCenter + spacing: 6 + Button { + id: confirmButton + text: "CONFIRM" + onClicked: accept() + width: (root.width / 2) - 3 + style: ButtonStyle { inverted: true } + } + Button { + id: rejectButton + text: "CANCEL" + onClicked: reject() + width: (root.width / 2) - 3 + platformStyle: ButtonStyle { inverted: true } + } + } + onMinimumYearChanged: { + if (!internal.surpassUpdate) { + internal.year = root.year + internal.minYear = root.minimumYear + + if (internal.minYear < 0) + internal.minYear = dateTime.currentYear() - 1; + else if (internal.minYear > root.maximumYear) + internal.minYear = root.maximumYear; + + internal.updateYearList() + internal.validateDate() + internal.year = internal.year < internal.minYear ? internal.minYear : + (internal.year > root.maximumYear ? root.maximumYear :internal.year) + } + } + onMaximumYearChanged: { + internal.minYear = root.minimumYear + + if (root.maximumYear < 0) + root.maximumYear = dateTime.currentYear() + 20; + else if (root.maximumYear < internal.minYear) + root.maximumYear = internal.minYear; + + internal.updateYearList() + internal.validateDate() + internal.year = internal.year > root.maximumYear ? root.maximumYear : + (internal.year < internal.minYear ? internal.minYear : internal.year) + if (internal.minYear < 0) + root.minimumYear = dateTime.currentYear() - 1 + } + onStatusChanged: { + if (status == DialogStatus.Opening) { + TH.saveIndex(tumbler); + if (!internal.initialized) + internal.initializeDataModels(); + if (internal.year > 0) + yearColumn.selectedIndex = internal.year - yearList.get(0).value; + tumbler._handleTumblerChanges(2); + dayColumn.selectedIndex = root.day - 1; + } + if (status == DialogStatus.Closing) { + internal.surpassUpdate = true + if (internal.surpassUpdate) { + root.year = internal.year + root.minimumYear = internal.minYear + } + internal.surpassUpdate = false + } + } + onDayChanged: { + internal.validateDate() + if (dayColumn.items.length > root.day - 1) + dayColumn.selectedIndex = root.day - 1 + } + onMonthChanged: { + internal.validateDate() + monthColumn.selectedIndex = root.month - 1 + } + onYearChanged: { + if (!internal.surpassUpdate) { + internal.year = root.year + internal.validateDate() + internal.year = internal.year < internal.minYear ? internal.minYear : + (internal.year > root.maximumYear ? root.maximumYear : internal.year) + + if (internal.initialized) + yearColumn.selectedIndex = internal.year - yearList.get(0).value + } + } + onAccepted: { + tumbler.privateForceUpdate(); + root.year = yearColumn.selectedIndex + yearList.get(0).value; + root.month = monthColumn.selectedIndex + 1; + root.day = dayColumn.selectedIndex + 1; + } + onRejected: { + TH.restoreIndex(tumbler); + } + + QtObject { + id: internal + + property variant initialized: false + property int year + property int minYear + property bool surpassUpdate: false + + function initializeDataModels() { + var currentYear = new Date().getFullYear(); + minimumYear = minimumYear ? minimumYear : currentYear - 1; + maximumYear = maximumYear ? maximumYear : currentYear + 20; + + for (var y = minimumYear; y <= maximumYear; ++y) + yearList.append({"value" : y}) // year + + var nDays = dateTime.daysInMonth(internal.year, root.month); + for (var d = 1; d <= nDays; ++d) + dayList.append({"value" : d}) // day + for (var m = 1; m <= 12; ++m) + monthList.append({"value" : dateTime.shortMonthName(m)}); + + tumbler.privateInitialize(); + internal.initialized = true; + } + + function updateYearList() { + if (internal.initialized) { + var tmp = yearColumn.selectedIndex; + yearList.clear(); + for (var i = internal.minYear; i <= root.maximumYear; ++i) + yearList.append({"value" : i}) + if (tmp < yearList.count) { + yearColumn.selectedIndex = 0; + yearColumn.selectedIndex = tmp; + } + } + } + + function validateDate() { + if (internal.year < 1){ + internal.year = new Date().getFullYear() + if (maximumYear < internal.year) + root.maximumYear = dateTime.currentYear() + 20; + if (minimumYear > internal.year) + internal.minYear = dateTime.currentYear() - 1; + } + + root.month = Math.max(1, Math.min(12, root.month)) + var d = dateTime.daysInMonth(internal.year, root.month); + root.day = Math.max(1, Math.min(d, root.day)) + } + } +} diff --git a/mardrone/imports/com/nokia/extras/InfoBanner.qml b/mardrone/imports/com/nokia/extras/InfoBanner.qml new file mode 100644 index 0000000..1c5dd42 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/InfoBanner.qml @@ -0,0 +1,216 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as UI + +/* + Class: InfoBanner + The InfoBanner component is used to display information to the user. The number of lines of text + shouldn't exceed 3. +*/ + +ImplicitSizeItem { + id: root + + /* + * Property: iconSource + * [url] The path to the icon image + */ + property url iconSource: "" + + /* + * Property: text + * [string] Text to be displayed in InfoBanner + */ + property alias text: text.text + + /* + * Property: timerEnabled + * [bool=true] Enable/disable timer that dismisses InfoBanner + */ + property bool timerEnabled: true + + /* + * Property: timerShowTime + * [int=3000ms] For setting how long InfoBanner stays visible to user before being dismissed + */ + property alias timerShowTime: sysBannerTimer.interval + + /* + * Property: topMargin + * [int=8 pix] Allows user to customize top margin if needed + */ + property alias topMargin: root.y + + /* + * Property: leftMargin + * [int=8 pix] Allows user to customize left margin if needed + */ + property alias leftMargin: root.x + + /* + * Function: show + * Show InfoBanner + */ + function show() { + animationShow.running = true; + if (root.timerEnabled) + sysBannerTimer.restart(); + } + + /* + * Function: hide + * Hide InfoBanner + */ + function hide() { + animationHide.running = true; + } + + implicitHeight: internal.getBannerHeight() + implicitWidth: internal.getBannerWidth() + x:8; y:8 + scale: 0 + + BorderImage { + source: "image://theme/meegotouch-notification-system-background" + anchors.fill: root + horizontalTileMode: BorderImage.Stretch + verticalTileMode: BorderImage.Stretch + border { left: 10; top: 10; right: 10; bottom: 10 } + opacity: UI.INFO_BANNER_OPACITY + } + + Image { + id: image + anchors { left: parent.left; leftMargin: 16; top: parent.top; topMargin: 16 } + source: root.iconSource + visible: root.iconSource != "" + } + + Text { + id: text + width: internal.getTextWidth() + anchors { left: (image.visible ? image.right : parent.left); leftMargin: (image.visible ? 14:16); + top: parent.top; topMargin: internal.getTopMargin(); bottom: parent.bottom } + color: "white" + wrapMode: Text.Wrap + verticalAlignment: Text.AlignHCenter + font.pixelSize: UI.FONT_DEFAULT_SIZE + font.family: UI.FONT_FAMILY + font.letterSpacing: UI.INFO_BANNER_LETTER_SPACING + maximumLineCount: 3 + elide: Text.ElideRight + } + + QtObject { + id: internal + + function getBannerHeight() { + if (image.visible) { + if (text.lineCount <= 2) + return 80; + else + return 106; + } else { + if (text.lineCount <= 1) + return 64; + else if (text.lineCount <= 2) + return 80; + else + return 106; + } + } + + function getBannerWidth() { + return parent.width - root.x*2; + } + + function getTopMargin() { + if (text.lineCount <= 1 && !image.visible) { + // If there's only one line of text and no icon image, top and bottom margins are equal. + return (root.height-text.paintedHeight)/2; + } else { + // In all other cases, top margin is 4 px more than bottom margin. + return (root.height-text.paintedHeight)/2 + 2; + } + } + + function getTextWidth() { + // 46(32 when there's no icon) is sum of all margins within banner. root.x*2 is sum of margins outside banner. + // Text element width is dertermined by substracting parent width(screen width) by all the margins and + // icon width(if applicable). + return image.visible ? (parent.width-root.x*2-46-image.width) : (parent.width-root.x*2-32); + } + + function getScaleValue() { + // When banner is displayed, as part of transition effect, it'll first be enlarged to the point where its width + // is equal to screen width. root.x*2/root.width calculates the amount of expanding required, where root.x*2 is + // equal to screen.displayWidth minus banner.width + return root.x*2/root.width + 1; + } + } + + Timer { + id: sysBannerTimer + repeat: false + running: false + interval: 3000 + onTriggered: hide() + } + + MouseArea { + anchors.fill: parent + onClicked: hide() + } + + SequentialAnimation { + id: animationShow + NumberAnimation { target: root; property: "scale"; from: 0; to: internal.getScaleValue(); duration: 200; easing.type: Easing.OutQuad} + NumberAnimation { target: root; property: "scale"; from: internal.getScaleValue(); to: 1; duration: 200 } + } + + NumberAnimation { + id: animationHide + target: root; property: "scale"; to: 0; duration: 200; easing.type: Easing.InExpo + } +} + diff --git a/mardrone/imports/com/nokia/extras/ListButton.qml b/mardrone/imports/com/nokia/extras/ListButton.qml new file mode 100644 index 0000000..1b09d09 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/ListButton.qml @@ -0,0 +1,151 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import Qt.labs.components 1.1 +import "." 1.0 +import "../meego/UIConstants.js" as UI +import com.nokia.meego 1.0 + +Item { + id: button + + // Common public API + property bool checked: false + property bool checkable: false + property alias pressed: mouseArea.pressed + property alias text: label.text + property url iconSource + + signal clicked + + // Used in ButtonGroup.js to set the segmented look on the buttons. + property string __buttonType + + // Styling for the Button + property Style platformStyle: ButtonStyle {} + + // Deprecated, TODO remove + property alias style: button.platformStyle + + implicitWidth: iconAndLabel.prefferedWidth + implicitHeight: platformStyle.buttonHeight + + property alias font: label.font + + BorderImage { + id: background + anchors.fill: parent + + border { left: button.platformStyle.backgroundMarginLeft; top: button.platformStyle.backgroundMarginTop; + right: button.platformStyle.backgroundMarginRight; bottom: button.platformStyle.backgroundMarginBottom } + source: !enabled ? + (checked ? button.platformStyle.checkedDisabledBackground : button.platformStyle.disabledBackground) : + pressed ? + button.platformStyle.pressedBackground : + checked ? + button.platformStyle.checkedBackground : + button.platformStyle.background; + } + + Item { + id: iconAndLabel + property real xMargins: icon.visible ? (UI.PADDING_XLARGE * (label.visible ? 3 : 2)) : (UI.BUTTON_LABEL_MARGIN * 2) + property real prefferedWidth: xMargins + (icon.visible ? icon.width : 0) + (label.visible ? label.prefferedSize.width : 0) + + width: xMargins + (icon.visible ? icon.width : 0) + (label.visible? label.width : 0) + height: platformStyle.buttonHeight + + anchors.verticalCenter: button.verticalCenter + anchors.horizontalCenter: button.horizontalCenter + anchors.verticalCenterOffset: -1 + + Image { + id: icon + source: button.iconSource + x: UI.PADDING_XLARGE + anchors.verticalCenter: iconAndLabel.verticalCenter + width: UI.SIZE_ICON_DEFAULT + height: UI.SIZE_ICON_DEFAULT + visible: source != "" + } + + Label { + id: label + x: icon.visible ? (icon.x + icon.width + UI.PADDING_XLARGE) : UI.BUTTON_LABEL_MARGIN + anchors.verticalCenter: iconAndLabel.verticalCenter + anchors.verticalCenterOffset: 1 + + property real availableWidth: button.width - iconAndLabel.xMargins - (icon.visible ? icon.width : 0) + width: Math.min(prefferedSize.width, availableWidth) + + elide: Text.ElideRight + font.family: button.platformStyle.fontFamily + font.weight: button.platformStyle.fontWeight + font.pixelSize: button.platformStyle.fontPixelSize + font.capitalization: button.platformStyle.fontCapitalization + color: !enabled ? button.platformStyle.disabledTextColor : + pressed ? button.platformStyle.pressedTextColor : + checked ? button.platformStyle.checkedTextColor : + button.platformStyle.textColor; + text: "" + visible: text != "" + + Label { + id: prefferedSize + font: parent.font + text: parent.text + visible: false + } + property alias prefferedSize: prefferedSize + } + } + + MouseArea { + id: mouseArea + anchors.fill: parent + + onClicked: { + if (button.checkable) + button.checked = !button.checked; + button.clicked(); + } + } +} diff --git a/mardrone/imports/com/nokia/extras/ListButtonStyle.qml b/mardrone/imports/com/nokia/extras/ListButtonStyle.qml new file mode 100644 index 0000000..76687fc --- /dev/null +++ b/mardrone/imports/com/nokia/extras/ListButtonStyle.qml @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as UI + +ButtonStyle { + buttonHeight: UI.SIZE_SMALL_BUTTON +} diff --git a/mardrone/imports/com/nokia/extras/ListDelegate.qml b/mardrone/imports/com/nokia/extras/ListDelegate.qml new file mode 100644 index 0000000..42a9719 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/ListDelegate.qml @@ -0,0 +1,119 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as UI + +Item { + id: listItem + + signal clicked + property alias pressed: mouseArea.pressed + + property int titleSize: UI.LIST_TILE_SIZE + property int titleWeight: Font.Bold + property string titleFont: UI.FONT_FAMILY + property color titleColor: theme.inverted ? UI.LIST_TITLE_COLOR_INVERTED : UI.LIST_TITLE_COLOR + property color titleColorPressed: theme.inverted ? UI.LIST_TITLE_COLOR_PRESSED_INVERTED : UI.LIST_TITLE_COLOR_PRESSED + + property int subtitleSize: UI.LIST_SUBTILE_SIZE + property int subtitleWeight: Font.Normal + property string subtitleFont: UI.FONT_FAMILY_LIGHT + property color subtitleColor: theme.inverted ? UI.LIST_SUBTITLE_COLOR_INVERTED : UI.LIST_SUBTITLE_COLOR + property color subtitleColorPressed: theme.inverted ? UI.LIST_SUBTITLE_COLOR_PRESSED_INVERTED : UI.LIST_SUBTITLE_COLOR_PRESSED + + height: UI.LIST_ITEM_HEIGHT + width: parent.width + + BorderImage { + id: background + anchors.fill: parent + // Fill page porders + anchors.leftMargin: -UI.MARGIN_XLARGE + anchors.rightMargin: -UI.MARGIN_XLARGE + visible: mouseArea.pressed + source: theme.inverted ? "image://theme/meegotouch-panel-inverted-background-pressed" : "image://theme/meegotouch-panel-background-pressed" + } + + Row { + anchors.fill: parent + spacing: UI.LIST_ITEM_SPACING + + Image { + anchors.verticalCenter: parent.verticalCenter + visible: model.iconSource ? true : false + width: UI.LIST_ICON_SIZE + height: UI.LIST_ICON_SIZE + source: model.iconSource ? model.iconSource : "" + } + + Column { + anchors.verticalCenter: parent.verticalCenter + + Label { + id: mainText + text: model.title + font.family: listItem.titleFont + font.weight: listItem.titleWeight + font.pixelSize: listItem.titleSize + color: mouseArea.pressed ? listItem.titleColorPressed : listItem.titleColor + } + + Label { + id: subText + text: model.subtitle ? model.subtitle : "" + font.family: listItem.subtitleFont + font.weight: listItem.subtitleWeight + font.pixelSize: listItem.subtitleSize + color: mouseArea.pressed ? listItem.subtitleColorPressed : listItem.subtitleColor + + visible: text != "" + } + } + } + MouseArea { + id: mouseArea; + anchors.fill: parent + onClicked: { + listItem.clicked(); + } + } +} diff --git a/mardrone/imports/com/nokia/extras/MoreIndicator.qml b/mardrone/imports/com/nokia/extras/MoreIndicator.qml new file mode 100644 index 0000000..aa220d4 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/MoreIndicator.qml @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 // needed for the custom image loader + +/* + Class: MoreIndicator + Component to indicate that more content is available for the user. + + A more indicator is a component that displayes an arrow to show the user that there are more contents + available. +*/ + +Image { + source: !theme.inverted ? + "image://theme/icon-m-common-drilldown-arrow" : + "image://theme/icon-m-common-drilldown-arrow-inverse" +} diff --git a/mardrone/imports/com/nokia/extras/NegativeButtonStyle.qml b/mardrone/imports/com/nokia/extras/NegativeButtonStyle.qml new file mode 100644 index 0000000..80374cc --- /dev/null +++ b/mardrone/imports/com/nokia/extras/NegativeButtonStyle.qml @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as UI + +ButtonStyle { + // Text Color + textColor: UI.COLOR_BUTTON_INVERTED_FOREGROUND + pressedTextColor: UI.COLOR_BUTTON_SECONDARY_FOREGROUND + disabledTextColor: UI.COLOR_BUTTON_INVERTED_DISABLED_FOREGROUND + checkedTextColor: UI.COLOR_BUTTON_INVERTED_FOREGROUND + + // Background + background: "image://theme/meegotouch-button-negative-background" + pressedBackground: "image://theme/meegotouch-button-negative-background-pressed" + disabledBackground: "image://theme/meegotouch-button-negative-background-disabled" + checkedBackground: "image://theme/meegotouch-button-negative-background-selected" + checkedDisabledBackground: "image://theme/meegotouch-button-negative-background-disabled-selected" +} diff --git a/mardrone/imports/com/nokia/extras/NetPromoterScore.qml b/mardrone/imports/com/nokia/extras/NetPromoterScore.qml new file mode 100644 index 0000000..7a45371 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/NetPromoterScore.qml @@ -0,0 +1,472 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 + +Rectangle { + id: root + + // Common public API + + // Input. Set to true if user is signed in to Nokia account. + // Account email using agreement is shown if user is signed in. + // Otherwise email input box is shown instead. + property bool isSignedIn: false + + // Input. Array of localised UI strings: + // header - 'Tell us what you think' + // question - 'How likely ... ?' + // notLikely - 'Not at all\nlikely' + // extremelyLikely - 'Extremely\nlikely' + // selectScore - 'You must select ...' + // commentsInputLabel - 'Please tell us why ...' + // contactAgreement - 'You can contact me using ...' + // emailInputLabel - 'You can contact me for details...' + // emailPlaceholderText - 'Your email address' + // emailSipActionKeyLabel - 'Done' + // invalidEmail - 'Invalid email address' + // legalText - 'Your information will be ...' + // submit - 'Submit' + + property variant uiString: QtObject {} + + // Input. Array of horizontal alignments for strings. Accept same + // values as Text { horizontalAlignment: ... } e.g. Text.AlignLeft, Text.AlignRight and so on. + // By default all text strings aligned to the left. + // header + // question + // selectScore + // commentsInputLabel + // contactAgreement + // emailInputLabel + // invalidEmail + // legalText + + property variant uiHorizontalAlignment: QtObject {} + + // Promoter score, between 0 ~ 10 + property alias score: scoreSlider.value + + // True if user touched score slider + property alias scoreTouched: scoreSlider.touched + + // Optional comments text + property alias comments: commentsText.text + + // Optional email address + // emailAddress shall be ignored if isSignedIn is true. + property alias emailAddress: emailAddressField.text + + // True if user agrees to be contacted using Nokia Account email address. + // useEmail shall be ignored if isSignedIn is false. + property alias useEmail: useEmailCheckBox.checked + + // Signal emitted when 'Submit' button is clicked and form passes validation. + signal submit() + + height: childrenRect.height + color: "#E0E1E2" + + QtObject { + id: internal + + property variant defaultValidator: RegExpValidator{regExp: /.*/} + property variant emailValidator: RegExpValidator{regExp: /^\w([a-zA-Z0-9._-]+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/} + + function validateForm() { + + var isValid = true; + + if (!scoreSlider.touched) { + sliderErrorLabel.visible = true; + isValid = false; + } + + if (emailAddress && emailAddress.length > 0) { + var validator = internal.emailValidator + emailAddressField.validator = validator; + var result = emailAddressField.acceptableInput; + if (result)emailAddressField.validator = internal.defaultValidator; + mouseArea.enabled = !result; + invalidEmailLabel.visible = !result; + if (!result)isValid = false; + } + + return isValid; + } + } + + Column { + id: formContent + + anchors { + left: parent.left + leftMargin: 16 + right: parent.right + rightMargin: 16 + } + height: childrenRect.height + + Item { + width: parent.width + height: 16 + } + + Label { + id: header + + anchors { + left: parent.left + leftMargin: 18 - parent.anchors.leftMargin + right: parent.right + } + + wrapMode: Text.Wrap + font.pixelSize: 40 + color: "#282828" + horizontalAlignment: uiHorizontalAlignment.header || Text.AlignLeft + text: uiString.header || + "!!Tell us what you think" + } + + Item { + width: parent.width + height: 12 + } + + // Question + Label { + width: parent.width + wrapMode: Text.Wrap + font.pixelSize: 24 + color: "#282828" + horizontalAlignment: uiHorizontalAlignment.question || Text.AlignLeft + text: uiString.question || + "!!How likely are you to recommend this app to a friend or a colleague?" + } + + Item { + width: parent.width + height: 22 + } + + // Numbers + Row { + width: parent.width + height: childrenRect.height + + Label { + width: parent.width/2 + font.pixelSize: 24 + color: "#282828" + horizontalAlignment: Text.AlignLeft + text: "0" + } + Label { + width: parent.width/2 + font.pixelSize: 24 + color: "#282828" + horizontalAlignment: Text.AlignRight + text: "10" + } + } + + Slider { + id: scoreSlider + objectName: "slider_nps_score" + + property bool touched: false + width: parent.width + height: 64 + maximumValue: 10 + stepSize: 1 + value: 5 + valueIndicatorVisible: true + + onPressedChanged: { + if (pressed) { + sliderErrorLabel.visible = false; + touched = true; + } + } + } + + // Slider text + Row { + width: parent.width + height: childrenRect.height + + Label { + width: parent.width/3 + font.pixelSize: 18 + color: "#282828" + horizontalAlignment: Text.AlignLeft + text: uiString.notLikely || "!!Not at all \nlikely" + } + + Item { + width: parent.width/3 + height: 1 + } + + Label { + width: parent.width/3 + font.pixelSize: 18 + color: "#282828" + horizontalAlignment: Text.AlignRight + text: uiString.extremelyLikely || "!!Extremely \nlikely" + } + } + + Item { + width: parent.width + height: 8 + visible: sliderErrorLabel.visible + } + + // Slider error text + Label { + id: sliderErrorLabel + visible: false + width: parent.width + font.pixelSize: 18 + color: "#FF3200" + horizontalAlignment: uiHorizontalAlignment.selectScore || Text.AlignLeft + text: uiString.selectScore || + "!!You must select a rating" + } + + Item { + width: parent.width + height: 18 + } + + Image { + width: parent.width + 16 + x: 8 - parent.anchors.leftMargin + source: "image://theme/meegotouch-separator-background-horizontal" + fillMode: Image.TileHorizontally + } + + Item { + width: parent.width + height: 7 + } + + Label { + width: parent.width + font.pixelSize: 22 + color: "#505050" + horizontalAlignment: uiHorizontalAlignment.commentsInputLabel || Text.AlignLeft + text: uiString.commentsInputLabel || + "!!Please tell us why you gave this score (optional)" + } + + SipAttributes { + id: sipAttributesDefault + } + + // Comments + TextArea { + id: commentsText + width: parent.width + height: Math.max(118, implicitHeight) + platformSipAttributes: sipAttributesDefault + } + + Item { + width: parent.width + height: 16 + } + + Row { + visible: isSignedIn + width: parent.width + + spacing: 16 + + CheckBox { + id: useEmailCheckBox + objectName: "check_nps_email" + anchors { + verticalCenter: parent.verticalCenter + } + } + + Label { + id: description + anchors { + verticalCenter: parent.verticalCenter + } + + width: parent.width - useEmailCheckBox.width - parent.spacing + font.pixelSize: 22 + wrapMode: Text.Wrap + color: "#505050" + horizontalAlignment: uiHorizontalAlignment.contactAgreement || Text.AlignLeft + text: uiString.contactAgreement || + "!!You can contact me for details using my Nokia Account e-mail." + } + + } + + Image { + width: parent.width + 16 + x: 8 - parent.anchors.leftMargin + source: "image://theme/meegotouch-separator-background-horizontal" + fillMode: Image.TileHorizontally + visible: !isSignedIn + } + + // Email address + Column { + id: emailAddressPane + width: parent.width + visible: !isSignedIn + + Item { + width: parent.width + height: 7 + } + + Label { + width: parent.width + font.pixelSize: 22 + color: "#505050" + horizontalAlignment: uiHorizontalAlignment.emailInputLabel || Text.AlignLeft + text: uiString.emailInputLabel || + "!!You can contact me for details (Optional)" + } + + TextField { + id: emailAddressField + objectName: "input_nps_email" + width: parent.width + inputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhEmailCharactersOnly | Qt.ImhNoAutoUppercase + placeholderText: uiString.emailPlaceholderText || + "!!Your email address" + platformSipAttributes: SipAttributes { + actionKeyLabel: uiString.emailSipActionKeyLabel || "" + actionKeyHighlighted: !!uiString.emailSipActionKeyLabel + } + + Keys.onReturnPressed: { + if (internal.validateForm()) { + platformCloseSoftwareInputPanel(); + } + } + + MouseArea { + id: mouseArea + anchors.fill: parent + enabled: false + z: 10 + onClicked: { + enabled = false; + invalidEmailLabel.visible = false; + emailAddressField.forceActiveFocus(); + emailAddressField.validator = internal.defaultValidator; + } + } + + onTextChanged: { + if (invalidEmailLabel.visible) { + invalidEmailLabel.visible = false; + emailAddressField.validator = internal.defaultValidator; + } + } + } + + Label { + id: invalidEmailLabel + visible: false + width: parent.width + font.pixelSize: 18 + color: "#FF3200" + horizontalAlignment: uiHorizontalAlignment.invalidEmail || Text.AlignLeft + text: uiString.invalidEmail || + "!!Invalid email address" + } + } + + Item { + width: parent.width + height: 16 + } + + Label { + width: parent.width + font.pixelSize: 22 + color: "#505050" + wrapMode: Text.Wrap + horizontalAlignment: uiHorizontalAlignment.legalText || Text.AlignLeft + text: uiString.legalText || + "!!Your information will be treated according to Nokia privacy policy." + } + + Item { + width: parent.width + height: 16 + } + + Button { + objectName: "btn_nps_submit" + width: 322 + + anchors { + horizontalCenter: parent.horizontalCenter + } + + text: uiString.submit || "!!Submit" + + onClicked: { + if (internal.validateForm()) { + submit() + } + } + } + + Item { + width: parent.width + height: 16 + } + } +} diff --git a/mardrone/imports/com/nokia/extras/PageIndicator.qml b/mardrone/imports/com/nokia/extras/PageIndicator.qml new file mode 100644 index 0000000..3a2c216 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/PageIndicator.qml @@ -0,0 +1,157 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 + +/* + Class: PageIndicator + Component to indicate the page user is currently viewing. + + A page indicator is a component that shows the number of availabe pages as well as the page the user is + currently on. The user can also specify the display type to select the normal/inverted visual. +*/ +ImplicitSizeItem { + id: root + + /* + * Property: totalPages + * [int] The total number of pages. This value should be larger than 0. + */ + property int totalPages: 0 + + /* + * Property: currentPage + * [int] The current page the user is on. This value should be larger than 0. + */ + property int currentPage: 0 + + /* + * Property: inverted + * [bool] Specify whether the visual for the rating indicator uses the inverted color. The value is + * false for use with a light background and true for use with a dark background. + */ + property bool inverted: theme.inverted + + implicitWidth: currentImage.width * totalPages + (totalPages - 1) * internal.spacing + implicitHeight: currentImage.height + + /* private */ + QtObject { + id: internal + + property int spacing: 8 + + property string totalPagesImageSource: inverted ? + "image://theme/meegotouch-inverted-pageindicator-page" : + "image://theme/meegotouch-pageindicator-page" + property string currentPageImageSource: inverted ? + "image://theme/meegotouch-inverted-pageindicator-page-current" : + "image://theme/meegotouch-pageindicator-page-current" + + property bool init: true + + + function updateUI() { + + if(totalPages <=0) { + totalPages = 1; + currentPage = 1; + } else { + if(currentPage <=0) + currentPage = 1; + if(currentPage > totalPages) + currentPage = totalPages; + } + + frontRepeater.model = currentPage - 1; + backRepeater.model = totalPages - currentPage; + } + } + + Component.onCompleted: { + internal.updateUI(); + internal.init = false; + } + + onTotalPagesChanged: { + if(!internal.init) + internal.updateUI(); + } + + onCurrentPageChanged: { + if(!internal.init) + internal.updateUI(); + } + + Row { + Repeater { + id: frontRepeater + + Item { + height: currentImage.height + width: currentImage.width + internal.spacing + + Image { + source: internal.totalPagesImageSource + } + } + } + + Image { + id: currentImage + source: internal.currentPageImageSource + } + + Repeater { + id: backRepeater + + Item { + height: currentImage.height + width: currentImage.width + internal.spacing + + Image { + source: internal.totalPagesImageSource + anchors.right: parent.right + } + } + } + } +} diff --git a/mardrone/imports/com/nokia/extras/PositiveButtonStyle.qml b/mardrone/imports/com/nokia/extras/PositiveButtonStyle.qml new file mode 100644 index 0000000..778a7f9 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/PositiveButtonStyle.qml @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as UI + +ButtonStyle { + // Text Color + textColor: UI.COLOR_BUTTON_INVERTED_FOREGROUND + pressedTextColor: UI.COLOR_BUTTON_SECONDARY_FOREGROUND + disabledTextColor: UI.COLOR_BUTTON_INVERTED_DISABLED_FOREGROUND + checkedTextColor: UI.COLOR_BUTTON_INVERTED_FOREGROUND + + // Background + background: "image://theme/meegotouch-button-positive-background" + pressedBackground: "image://theme/meegotouch-button-positive-background-pressed" + disabledBackground: "image://theme/meegotouch-button-positive-background-disabled" + checkedBackground: "image://theme/meegotouch-button-positive-background-selected" + checkedDisabledBackground: "image://theme/meegotouch-button-positive-background-disabled-selected" +} diff --git a/mardrone/imports/com/nokia/extras/RatingIndicator.qml b/mardrone/imports/com/nokia/extras/RatingIndicator.qml new file mode 100644 index 0000000..e5bcbd2 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/RatingIndicator.qml @@ -0,0 +1,134 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import Qt.labs.components 1.1 as QtComponents + +/* + Class: RatingIndicator + Component to indicate user specified ratings. + + A rating indicator is a component that shows the rating value within the maximum allowed range according + to the user's specification. The user can also specify the display type to select the positive/negative + visual. Optionally, the user can also specify a count value that will be displayed next to the images. +*/ +ImplicitSizeItem { + id: root + + /* + * Property: maximumValue + * [double] The maximum rating. The number should be larger or equal to 0. + */ + property alias maximumValue: model.maximumValue + + /* + * Property: ratingValue + * [double] The rating value. The number should be larger or equal to 0. + */ + property alias ratingValue: model.value + + /* + * Property: count + * [int] A number to be displayed next to the rating images. It is usually used to count the number of + * votes cast. It is only displayed if a number larger or equal to 0 is specified. + */ + property int count: -1 + + /* + * Property: inverted + * [string] Specify whether the visual for the rating indicator uses the inverted color. The value is + * false for use with a light background and true for use with a dark background. + */ + property bool inverted: theme.inverted + + implicitHeight: Math.max(background.height, text.paintedHeight); + implicitWidth: background.width + (count >= 0 ? internal.textSpacing + text.paintedWidth : 0); + + QtComponents.RangeModel { + id: model + value: 0.0 + minimumValue: 0.0 + maximumValue: 0.0 + } + + QtObject { + id: internal + + property int imageWidth: 16 + property int imageHeight: 16 + property int indicatorSpacing: 5 // spacing between images + property int textSpacing: 8 // spacing between image and text + property url backgroundImageSource: inverted ? + "image://theme/meegotouch-indicator-rating-inverted-background-star" : + "image://theme/meegotouch-indicator-rating-background-star" + property url indicatorImageSource: inverted ? + "image://theme/meegotouch-indicator-rating-inverted-star" : + "image://theme/meegotouch-indicator-rating-star" + property string textColor: inverted ? "#fafafa" : "#505050" + } + + Image { + id: background + width: internal.imageWidth * maximumValue + (Math.max(Math.ceil(maximumValue-1), 0)) * internal.indicatorSpacing; + height: internal.imageHeight + anchors.verticalCenter: height < text.paintedHeight ? text.verticalCenter : undefined + fillMode: Image.Tile + source: internal.backgroundImageSource + + Image { + id: indicator + width: internal.imageWidth * ratingValue + Math.max((Math.ceil(ratingValue) - 1), 0) * internal.indicatorSpacing + height: internal.imageHeight + fillMode: Image.Tile + source: internal.indicatorImageSource + } + } + + Text { + id: text + visible: count >= 0 + text: "(" + count + ")" + color: internal.textColor + font { family: "Nokia Standard Light"; pixelSize: 18 } + anchors.left: background.right + anchors.leftMargin: internal.textSpacing + } +} diff --git a/mardrone/imports/com/nokia/extras/SystemBanner.qml b/mardrone/imports/com/nokia/extras/SystemBanner.qml new file mode 100644 index 0000000..b90db37 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/SystemBanner.qml @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import com.nokia.extras 1.1 +import "constants.js" as UI + +InfoBanner +{ + +} + diff --git a/mardrone/imports/com/nokia/extras/TimePickerDialog.qml b/mardrone/imports/com/nokia/extras/TimePickerDialog.qml new file mode 100644 index 0000000..cc6fee4 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/TimePickerDialog.qml @@ -0,0 +1,291 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import com.nokia.extras 1.1 +import "constants.js" as C +import "TumblerIndexHelper.js" as TH + +/* + Class: TimePickerDialog + Dialog that shows a time picker. +*/ + +Dialog { + id: root + + /* + * Property: titleText + * [string] If not null, it will be used as the title text for the dialog. + * If further customization is needed, use property title instead + */ + property alias titleText: title.text + + /* + * Property: hour + * [int] The displayed hour (in 24h format). + */ + property int hour: 0 + + /* + * Property: minute + * [int] The displayed minute. + */ + property int minute: 0 + + /* + * Property: second + * [int] The displayed second. + */ + property int second: 0 + + /* + * Property: fields + * [int=DateTime.All] Sets if the time picker should show hours, minutes, + * and/or seconds. + * (DateTime.Hours, DateTime.Minutes, + * DateTime.Seconds, DateTime.All) + */ + property int fields: DateTime.All + + /* + * Property: hourMode + * [int=DateTime.TwentyFourHours] Sets if the time picker should show time in 24-hour clock + * or 12-hour clock format. + * (DateTime.TwentyFourHours, DateTime.TwelveHours) + */ + property int hourMode: dateTime.hourMode() //DateTime.TwentyFourHours + + /* + * Property: mode24Hour + * [bool=false] Sets if the time picker should show time in military time (24h). + */ + property bool mode24Hour + + /* + * Property: showSeconds + * [bool=true] Sets if the time picker should show seconds. Modifying this value + * after initialization will uninitialize everything. + */ + property bool showSeconds + + /* + * Property: acceptButtonText + * [string] Optional, the button text for the accept button. + */ + property alias acceptButtonText: acceptButton.text + + /* + * Property: rejectButtonText + * [string] Optional, the button text for the reject button. + */ + property alias rejectButtonText: rejectButton.text + + // TODO do not dismiss the dialog when empty area is clicked + style: DialogStyle { + titleBarHeight: 48 + leftMargin: screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted ? 16 : 215 + rightMargin: screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted ? 16 : 215 + centered: true + } + title: Text { + id: title + objectName: "title" + visible: text.length > 0 + color: theme.selectionColor + font { pixelSize: 32; family: C.FONT_FAMILY_BOLD } + elide: Text.ElideRight + } + content: Item { + height: 300 + width: parent.width + + Tumbler { + id: tumbler + + columns: [hourColumn, minuteColumn, secondColumn, meridiemColumn] + height: 300 + privateDelayInit: true + + TumblerColumn { + id: hourColumn + items: ListModel { + id: hourList + } + label: "HR" + selectedIndex: root.hour - ((root.hourMode == DateTime.TwelveHours && root.hour > 11) ? 12 : 0) + visible: fields & DateTime.Hours + } + + TumblerColumn { + id: minuteColumn + items: ListModel { + id: minuteList + } + label: "MIN" + selectedIndex: root.minute + visible: fields & DateTime.Minutes + } + + TumblerColumn { + id: secondColumn + items: ListModel { + id: secondList + } + label: "SEC" + selectedIndex: root.second + visible: fields & DateTime.Seconds + } + + TumblerColumn { + id: meridiemColumn + items: ListModel { + id: meridiemList + } + selectedIndex: root.hour > 11 ? 1: 0 + visible: root.hourMode == DateTime.TwelveHours + privateLoopAround: false + } + } + } + buttons: Row { + height: 56 + anchors.horizontalCenter: parent.horizontalCenter + spacing: 6 + Button { + id: acceptButton + onClicked: accept() + width: (root.width / 2) - 3 + style: ButtonStyle { inverted: true } + } + Button { + id: rejectButton + onClicked: reject() + width: (root.width / 2) - 3 + style: ButtonStyle { inverted: true } + } + } + onMode24HourChanged: { + console.log("The property 'mode24Hour' from TimePickerDialog is deprecated. Please use 'hourMode' instead.") + root.hourMode = mode24Hour == true ? DateTime.TwentyFourHours : DateTime.TwelveHours + } + onShowSecondsChanged: { + console.log("The property 'showSeconds' from TimePickerDialog is deprecated. Please use 'fields' instead.") + root.fields = showSeconds == true ? DateTime.All : DateTime.Hours | DateTime.Minutes + } + onStatusChanged: { + if (status == DialogStatus.Opening) { + TH.saveIndex(tumbler); + if (!internal.initialised) + internal.initializeDataModels(); + } + } + onAccepted: { + tumbler.privateForceUpdate(); + if (root.hourMode == DateTime.TwelveHours) + root.hour = hourColumn.selectedIndex + (meridiemColumn.selectedIndex > 0 ? 12 : 0); + else + root.hour = hourColumn.selectedIndex; + root.minute = minuteColumn.selectedIndex; + root.second = secondColumn.selectedIndex; + } + onRejected: { + TH.restoreIndex(tumbler); + } + onHourModeChanged: { + hourList.clear(); + var tmp = hourColumn.selectedIndex; + if (root.hourMode == DateTime.TwentyFourHours) { + tmp = (root.hour < 12 ? tmp : tmp + 12) + for (var i = 0; i < 24; ++i) + hourList.append({"value" : (i < 10 ? "0" : "") + i}); + } else { + tmp = (root.hour < 12 ? tmp : tmp - 12) + hourList.append({"value" : 12 + ""}); + for (var i = 1; i < 12; ++i) + hourList.append({"value" : i + ""}); + } + hourColumn.selectedIndex = -1; + hourColumn.selectedIndex = tmp; + } + onHourChanged: { + internal.validateTime() + hourColumn.selectedIndex = root.hour - ((root.hourMode == DateTime.TwelveHours && root.hour > 11) ? 12 : 0) + meridiemColumn.selectedIndex = root.hour > 11 ? 1: 0 + } + onMinuteChanged: { + internal.validateTime() + minuteColumn.selectedIndex = root.minute + } + onSecondChanged: { + internal.validateTime() + secondColumn.selectedIndex = root.second + } + + QtObject { + id: internal + + property variant initialised: false + + function initializeDataModels() { + if (root.hourMode == DateTime.TwelveHours) { + hourList.append({"value" : 12 + ""}); + for (var i = 1; i < 12; ++i) + hourList.append({"value" : i + ""}); + } + for (var i = 0; i < 60; ++i) { + minuteList.append({"value" : (i < 10 ? "0" : "") + i }); + secondList.append({"value" : (i < 10 ? "0" : "") + i }); + } + meridiemList.append({"value" : dateTime.amText()}); + meridiemList.append({"value" : dateTime.pmText()}); + + tumbler.privateInitialize(); + internal.initialised = true; + } + + function validateTime() { + root.hour = Math.max(0, Math.min(23, root.hour)) + root.minute = Math.max(0, Math.min(59, root.minute)) + root.second = Math.max(0, Math.min(59, root.second)) + } + } +} diff --git a/mardrone/imports/com/nokia/extras/Tumbler.js b/mardrone/imports/com/nokia/extras/Tumbler.js new file mode 100644 index 0000000..6b92ff4 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/Tumbler.js @@ -0,0 +1,137 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +var __columns = []; +var __autoColumnWidth = 0; +var __suppressLayoutUpdates = false; + +function initialize() { + // check the width requested by fixed width columns + var requestedWidth = 0; + var requestedCount = 0; + var invisibleCount = 0; + for (var i = 0; i < columns.length; i++) { + if (columns[i].visible) { + if (columns[i].width > 0 && !columns[i].privateIsAutoWidth) { + requestedWidth += columns[i].width; + requestedCount++; + } + } else { + invisibleCount++; + } + } + + // allocate the rest to auto width columns + if ((columns.length - requestedCount - invisibleCount) > 0) { + __autoColumnWidth = Math.floor((parent.width - requestedWidth) / (columns.length - requestedCount - invisibleCount)); + } + + for (var i = 0; i < columns.length; i++) { + var comp = Qt.createComponent("TumblerTemplate.qml"); + var newObj = comp.createObject(tumblerRow); + if (!columns[i].width || columns[i].privateIsAutoWidth) { + columns[i].width = __autoColumnWidth; + columns[i].privateIsAutoWidth = true; + } + if (columns[i].label) { + // enable label for the tumbler + internal.hasLabel = true; + } + newObj.height = root.height; + newObj.index = i; + newObj.tumblerColumn = columns[i]; + newObj.widthChanged.connect(layout); + newObj.visibleChanged.connect(layout); + __columns.push(newObj); + } + privateTemplates = __columns; +} + +function clear() { + var count = __columns.length; + for (var i = 0; i < count; i++) { + var tmp = __columns.pop(); + tmp.destroy(); + } +} + +function forceUpdate() { + for (var i = 0; i < columns.length; i++) { + columns[i].selectedIndex = __columns[i].view.currentIndex; + } +} + +function layout() { + if (__suppressLayoutUpdates) { + // guard against onWidthChanged triggering again during this process + return; + } + var requestedWidth = 0; + var requestedCount = 0; + var invisibleCount = 0; + for (var i = 0; i < columns.length; i++) { + if (columns[i].visible) { + var w = columns[i].width; + var a = columns[i].privateIsAutoWidth; + if (!a || (a && w != __autoColumnWidth)) { + requestedWidth += columns[i].width; + requestedCount++; + columns[i].privateIsAutoWidth = false; + } else { + columns[i].privateIsAutoWidth = true; + } + } else { + invisibleCount++; + } + } + + if ((columns.length - requestedCount - invisibleCount) > 0) { + __autoColumnWidth = Math.floor((parent.width - requestedWidth) / (columns.length - requestedCount - invisibleCount)); + } + + // guard against onWidthChanged triggering again during this process + __suppressLayoutUpdates = true; + for (var i = 0; i < columns.length; i++) { + if (columns[i].privateIsAutoWidth) { + columns[i].width = __autoColumnWidth; + } + } + __suppressLayoutUpdates = false; +} diff --git a/mardrone/imports/com/nokia/extras/Tumbler.qml b/mardrone/imports/com/nokia/extras/Tumbler.qml new file mode 100644 index 0000000..4bb077d --- /dev/null +++ b/mardrone/imports/com/nokia/extras/Tumbler.qml @@ -0,0 +1,158 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "Tumbler.js" as Engine +import "constants.js" as C + +/* + Class: Tumbler + A tumbler. +*/ +ImplicitSizeItem { + id: root + + /* + * Property: items + * [ListModel] Array of ListModel for each column of the dialog. + */ + property list columns + + /* + * Event: changed + * Is emitted when the value of the tumbler changes. + */ + signal changed(int index) + + /* private */ + property bool privateDelayInit: false + property list privateTemplates + + implicitWidth: C.TUMBLER_WIDTH + implicitHeight: screen.displayWidth > screen.displayHeight ? + C.TUMBLER_HEIGHT_LANDSCAPE : + C.TUMBLER_HEIGHT_PORTRAIT + + /* private */ + function privateInitialize() { + if (!internal.initialized) { + Engine.initialize(); + internal.initialized = true; + } + } + + /* private */ + function privateForceUpdate() { + Engine.forceUpdate(); + } + + anchors.fill: parent + clip: true + Component.onCompleted: { + if (!privateDelayInit && !internal.initialized) { + Engine.initialize(); + internal.initialized = true; + } + } + onChanged: { + if (internal.movementCount == 0) + Engine.forceUpdate(); + } + onColumnsChanged: { + if (internal.initialized) { + // when new columns are added, the system first removes all + // the old columns + internal.initialized = false; + Engine.clear(); + internal.reInit = true; + } else if (internal.reInit && columns.length > 0) { + // timer is used because the new columns are added one by one + // we only want to act after the last column is added + internal.reInit = false; + columnChangedTimer.restart(); + } + } + onWidthChanged: { + Engine.layout(); + } + + QtObject { + id: internal + + property int movementCount: 0 + property bool initialized: false + property bool reInit: false + property bool hasLabel: false + + property Timer timer: Timer { + id: columnChangedTimer + interval: 50 + onTriggered: { + Engine.initialize(); + internal.initialized = true; + } + } + } + + BorderImage { + width: parent.width + height: internal.hasLabel ? + parent.height - C.TUMBLER_LABEL_HEIGHT : // decrease by bottom text height + parent.height + source: "image://theme/" + theme.colorString + "meegotouch-list-fullwidth-background-selected" + anchors.top: parent.top + border { left: C.TUMBLER_BORDER_MARGIN; top: C.TUMBLER_BORDER_MARGIN; right: C.TUMBLER_BORDER_MARGIN; bottom: C.TUMBLER_BORDER_MARGIN } + } + + Rectangle { + width: parent.width + height: internal.hasLabel ? + parent.height - C.TUMBLER_LABEL_HEIGHT - 2 * C.TUMBLER_BORDER_MARGIN : // decrease by bottom text & border height + parent.height - 2*C.TUMBLER_BORDER_MARGIN + color: C.TUMBLER_COLOR + anchors { top: parent.top; topMargin: C.TUMBLER_BORDER_MARGIN } + } + + Row { + id: tumblerRow + anchors { fill: parent; topMargin: 1 } + } +} diff --git a/mardrone/imports/com/nokia/extras/TumblerButton.qml b/mardrone/imports/com/nokia/extras/TumblerButton.qml new file mode 100644 index 0000000..5df7b45 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/TumblerButton.qml @@ -0,0 +1,140 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "constants.js" as UI + +/* + Class: TumblerButton + button component that has a label and has click event handling. + + A button is a component that accepts user input and send a clicked() signal for + the application to handle. The button has resizable properties, event + handling, and can undergo state changes and transitions. + + The TumblerButton has a fixed width. Longer text will be elided. + To avoid that for longer texts please set the implicitWidth explicitly. + + + // Create a button with different icon states: + // This approach works for all supported states: normal, disabled, pressed, selected, selected && disabled + TumblerButton { + text: "Tumbler Button" + } + +*/ +Item { + id: tumblerbutton + + /* + * Property: text + * [string] The text displayed on button. + */ + property string text: "Get Value" + + /* + * Property: pressed + * [bool] (ReadOnly) Is true when the button is pressed + */ + property alias pressed: mouse.pressed + + property QtObject style: TumblerButtonStyle{} + + /* + * Event: clicked + * Is emitted after the button is released + */ + signal clicked + + height: UI.SIZE_BUTTON + width: UI.WIDTH_TUMBLER_BUTTON // fixed width to prevent jumping size after selecting value from tumbler + + BorderImage { + border { top: UI.CORNER_MARGINS; bottom: UI.CORNER_MARGINS; + left: UI.CORNER_MARGINS; right: UI.CORNER_MARGINS } + anchors.fill: parent + source: mouse.pressed ? + tumblerbutton.style.pressedBackground : tumblerbutton.enabled ? + tumblerbutton.style.background : tumblerbutton.style.disabledBackground; + } + + MouseArea { + id: mouse + + anchors.fill: parent + enabled: parent.enabled + onClicked: { + parent.clicked() + } + } + + Image { + id: icon + + anchors { right: (label.text != "") ? parent.right : undefined; + rightMargin: UI.INDENT_DEFAULT; + horizontalCenter: (label.text != "") ? undefined : parent.horizontalCenter; + verticalCenter: parent.verticalCenter; + } + height: sourceSize.height + width: sourceSize.width + source: "image://theme/meegotouch-combobox-indicator" + + (tumblerbutton.style.inverted ? "-inverted" : "") + + (tumblerbutton.enabled ? "" : "-disabled") + + (mouse.pressed ? "-pressed" : "") + } + + Text { + id: label + + anchors { left: parent.left; right: icon.left; + leftMargin: UI.INDENT_DEFAULT; rightMargin: UI.INDENT_DEFAULT; + verticalCenter: parent.verticalCenter } + font { family: UI.FONT_FAMILY; pixelSize: UI.FONT_DEFAULT_SIZE; + bold: UI.FONT_BOLD_BUTTON; capitalization: tumblerbutton.style.fontCapitalization } + text: tumblerbutton.text + color: (mouse.pressed) ? + tumblerbutton.style.pressedTextColor : + (tumblerbutton.enabled) ? + tumblerbutton.style.textColor : tumblerbutton.style.disabledTextColor ; + horizontalAlignment: Text.AlignLeft + elide: Text.ElideRight + } +} diff --git a/mardrone/imports/com/nokia/extras/TumblerButtonStyle.qml b/mardrone/imports/com/nokia/extras/TumblerButtonStyle.qml new file mode 100644 index 0000000..9f09636 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/TumblerButtonStyle.qml @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as UI + +ButtonStyle { + // Text Color + textColor: inverted ? UI.COLOR_BUTTON_INVERTED_FOREGROUND : UI.COLOR_BUTTON_FOREGROUND + pressedTextColor: UI.COLOR_BUTTON_SECONDARY_FOREGROUND + disabledTextColor: inverted ? UI.COLOR_BUTTON_INVERTED_DISABLED_FOREGROUND : UI.COLOR_BUTTON_DISABLED_FOREGROUND + + // Background + background: "image://theme/meegotouch-button" + __invertedString + "-background" + pressedBackground: "image://theme/" + __colorString + "meegotouch-button" + __invertedString + "-background-pressed" + disabledBackground: "image://theme/" + __colorString + "meegotouch-button" + __invertedString + "-background-disabled" +} diff --git a/mardrone/imports/com/nokia/extras/TumblerColumn.qml b/mardrone/imports/com/nokia/extras/TumblerColumn.qml new file mode 100644 index 0000000..ffda049 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/TumblerColumn.qml @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Item { + property variant items + property string label + property int selectedIndex: 0 + property bool enabled: true + + // private + property bool privateIsAutoWidth: false + property bool privateLoopAround: true +} diff --git a/mardrone/imports/com/nokia/extras/TumblerDialog.qml b/mardrone/imports/com/nokia/extras/TumblerDialog.qml new file mode 100644 index 0000000..dbfbab0 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/TumblerDialog.qml @@ -0,0 +1,154 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import com.nokia.meego 1.0 +import "constants.js" as C +import "TumblerIndexHelper.js" as IH + +/* + Class: TumblerDialog + Dialog that shows a tumbler. +*/ +Dialog { + id: root + + /* + * Property: titleText + * [string] If not null, it will be used as the title text for the dialog. + * If further customization is needed, use property title instead + */ + property alias titleText: title.text + + /* + * Property: items + * [ListModel] Array of ListModel for each column of the dialog. + */ + property alias columns: tumbler.columns + + /* + * Property: acceptButtonText + * [string] The button text for the accept button. + */ + property alias acceptButtonText: acceptButton.text + + /* + * Property: rejectButtonText + * [string] The button text for the reject button. + */ + property alias rejectButtonText: rejectButton.text + + // TODO do not dismiss the dialog when empty area is clicked + style: DialogStyle { + titleBarHeight: 48 + leftMargin: screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted ? 16 : 215 + rightMargin: screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted ? 16 : 215 + centered: true + } + title: Text { + id: title + objectName: "titleText" + visible: text.length > 0 + color: theme.selectionColor + font { pixelSize: 32; family: C.FONT_FAMILY_BOLD } + elide: Text.ElideRight + } + content: Item { + height: 300 + width: parent.width + Tumbler { + id: tumbler + height: 300 + privateDelayInit: true + } + } + buttons: Row { + height: 56 + anchors.horizontalCenter: parent.horizontalCenter + spacing: 6 + Button { + id: acceptButton + onClicked: accept() + width: (root.width / 2) - 3 + style: ButtonStyle { inverted: true } + visible: text != "" + } + Button { + id: rejectButton + onClicked: reject() + width: (root.width / 2) - 3 + style: ButtonStyle { inverted: true } + visible: text != "" + } + } + + QtObject { + id: internal + property bool init: true + } + + onStatusChanged: { + if (status == DialogStatus.Opening) { + tumbler.privateInitialize(); + + if (internal.init) { + IH.saveIndex(tumbler); + internal.init = false; + } + else { + // restore index when dialog was canceled. + // another case is when dialog was closed while tumbler was + // still rotating (Qt sets the index to the last rotated + // number, need to retore to a previously saved index in + // this case) + IH.restoreIndex(tumbler); + } + } + } + + onAccepted: { + tumbler.privateForceUpdate(); + IH.saveIndex(tumbler); + } + + onRejected: { + IH.restoreIndex(tumbler); + } +} diff --git a/mardrone/imports/com/nokia/extras/TumblerDialogNew.qml b/mardrone/imports/com/nokia/extras/TumblerDialogNew.qml new file mode 100644 index 0000000..9f09c2b --- /dev/null +++ b/mardrone/imports/com/nokia/extras/TumblerDialogNew.qml @@ -0,0 +1,45 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +TumblerDialog { + Component.onCompleted: console.log("DEPRECATION WARNING: TumblerDialogNew is being deprecated, please renmae to TumblerDialog instead. This component will be removed on April 25th, 2011") +} diff --git a/mardrone/imports/com/nokia/extras/TumblerIndexHelper.js b/mardrone/imports/com/nokia/extras/TumblerIndexHelper.js new file mode 100644 index 0000000..d9c09ad --- /dev/null +++ b/mardrone/imports/com/nokia/extras/TumblerIndexHelper.js @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +var __origIndex = []; + +function saveIndex(src) { + __origIndex = []; + for (var i = 0; i < src.columns.length; i++) { + __origIndex.push(src.columns[i].selectedIndex); + } +} + +function restoreIndex(src) { + for (var i = 0; i < __origIndex.length; i++) { + // position view at the right index then make sure selectedIndex + // is updated to reflect that + if (src.privateTemplates[i].view.currentIndex > __origIndex[i]) { + while (src.privateTemplates[i].view.currentIndex != __origIndex[i]) { + src.privateTemplates[i].view.decrementCurrentIndex() + } + } else if (src.privateTemplates[i].view.currentIndex < __origIndex[i]) { + while (src.privateTemplates[i].view.currentIndex != __origIndex[i]) { + src.privateTemplates[i].view.incrementCurrentIndex() + } + } + src.columns[i].selectedIndex = __origIndex[i]; + } +} diff --git a/mardrone/imports/com/nokia/extras/TumblerNew.qml b/mardrone/imports/com/nokia/extras/TumblerNew.qml new file mode 100644 index 0000000..6bef589 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/TumblerNew.qml @@ -0,0 +1,45 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Tumbler { + Component.onCompleted: console.log("DEPRECATION WARNING: TumblerNew is being deprecated, please renmae to Tumbler instead. This component will be removed on April 25th, 2011") +} diff --git a/mardrone/imports/com/nokia/extras/TumblerTemplate.qml b/mardrone/imports/com/nokia/extras/TumblerTemplate.qml new file mode 100644 index 0000000..3441ec4 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/TumblerTemplate.qml @@ -0,0 +1,219 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "constants.js" as C + +Item { + id: template + objectName: "tumblerColumn" + index + + property Item tumblerColumn + property int index: -1 + property Item view: viewContainer.item + + opacity: enabled ? C.TUMBLER_OPACITY_FULL : C.TUMBLER_OPACITY + width: childrenRect.width + visible: tumblerColumn ? tumblerColumn.visible : false + enabled: tumblerColumn ? tumblerColumn.enabled : true + onTumblerColumnChanged: { + if (tumblerColumn) + viewContainer.sourceComponent = tumblerColumn.privateLoopAround ? pViewComponent : lViewComponent; + } + + Loader { + id: viewContainer + width: tumblerColumn ? tumblerColumn.width : 0 + height: parent.height - container.height - 2*C.TUMBLER_BORDER_MARGIN // decrease by text & border heights + } + + Component { + // Component for loop around column + id: pViewComponent + PathView { + id: pView + + model: tumblerColumn ? tumblerColumn.items : undefined + currentIndex: tumblerColumn ? tumblerColumn.selectedIndex : 0 + preferredHighlightBegin: (height / 2) / (C.TUMBLER_ROW_HEIGHT * pView.count) + preferredHighlightEnd: preferredHighlightBegin + highlightRangeMode: PathView.StrictlyEnforceRange + clip: true + delegate: defaultDelegate + highlight: defaultHighlight + interactive: template.enabled + anchors.fill: parent + + onMovementStarted: { + internal.movementCount++; + } + onMovementEnded: { + internal.movementCount--; + root.changed(template.index) // got index from delegate + } + + Rectangle { + width: 1 + height: parent.height + color: C.TUMBLER_COLOR_TEXT + opacity: C.TUMBLER_OPACITY_LOW + } + + path: Path { + startX: template.width / 2; startY: 0 + PathLine { + x: template.width / 2 + y: C.TUMBLER_ROW_HEIGHT * pView.count + } + } + } + } + + Component { + // Component for non loop around column + id: lViewComponent + ListView { + id: lView + + model: tumblerColumn ? tumblerColumn.items : undefined + currentIndex: tumblerColumn ? tumblerColumn.selectedIndex : 0 + preferredHighlightBegin: Math.floor((height - C.TUMBLER_ROW_HEIGHT) / 2) + preferredHighlightEnd: preferredHighlightBegin + C.TUMBLER_ROW_HEIGHT + highlightRangeMode: ListView.StrictlyEnforceRange + clip: true + delegate: defaultDelegate + highlight: defaultHighlight + interactive: template.enabled + anchors.fill: parent + + onMovementStarted: { + internal.movementCount++; + } + onMovementEnded: { + internal.movementCount--; + root.changed(template.index) // got index from delegate + } + + Rectangle { + width: 1 + height: parent.height + color: C.TUMBLER_COLOR_TEXT + opacity: C.TUMBLER_OPACITY_LOW + } + } + } + + Item { + id: container + anchors.top: viewContainer.bottom + width: tumblerColumn ? tumblerColumn.width : 0 + height: internal.hasLabel ? C.TUMBLER_LABEL_HEIGHT : 0 // internal.hasLabel is from root tumbler + + Text { + id: label + + text: tumblerColumn ? tumblerColumn.label : "" + elide: Text.ElideRight + horizontalAlignment: "AlignHCenter" + color: C.TUMBLER_COLOR_LABEL + font { family: C.FONT_FAMILY_LIGHT; pixelSize: C.FONT_LIGHT_SIZE } + anchors { fill: parent; margins: C.TUMBLER_MARGIN} + } + } + + Component { + id: defaultDelegate + + Item { + width: tumblerColumn.width + height: C.TUMBLER_ROW_HEIGHT + + Text { + id: txt + elide: Text.ElideRight + horizontalAlignment: "AlignHCenter" + color: C.TUMBLER_COLOR_TEXT + font { family: C.FONT_FAMILY_BOLD; pixelSize: C.FONT_DEFAULT_SIZE } + anchors { fill: parent; margins: C.TUMBLER_MARGIN } + + MouseArea { + anchors.fill: parent + onClicked: { + if (template.view.interactive) { + tumblerColumn.selectedIndex = index; // got index from delegate + root.changed(template.index); + } + } + } + } + + Component.onCompleted: { + try { + // Legacy. "value" use to be the role which was used by delegate + txt.text = value + } catch(err) { + try { + // "modelData" available for JS array and for models with one role + txt.text = modelData + } catch (err) { + try { + // C++ models have "display" role available always + txt.text = display + } catch(err) { + } + } + } + } + } + } + + Component { + id: defaultHighlight + + Image { + id: highlight + objectName: "highlight" + width: tumblerColumn ? tumblerColumn.width : 0 + height: C.TUMBLER_ROW_HEIGHT + source: "image://theme/" + theme.colorString + "meegotouch-list-fullwidth-background-selected-horizontal-center" + fillMode: Image.TileHorizontally + } + } +} diff --git a/mardrone/imports/com/nokia/extras/constants.js b/mardrone/imports/com/nokia/extras/constants.js new file mode 100644 index 0000000..60cf625 --- /dev/null +++ b/mardrone/imports/com/nokia/extras/constants.js @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +.pragma library + +/* Margins */ +var INDENT_DEFAULT = 16; +var CORNER_MARGINS = 22; +var MARGIN_DEFAULT = 0; +var MARGIN_XLARGE = 16; + +// ListDelegate +var LIST_ITEM_MARGIN = 16 +var LIST_ITEM_SPACING = 16 +var LIST_ITEM_HEIGHT = 80 +var LIST_ICON_SIZE = 64 +var LIST_TILE_SIZE = 26 +var LIST_TITLE_COLOR = "#282828" +var LIST_TITLE_COLOR_PRESSED = "#797979" +var LIST_TITLE_COLOR_INVERTED = "#ffffff" +var LIST_TITLE_COLOR_PRESSED_INVERTED = "#797979" +var LIST_SUBTILE_SIZE = 22 +var LIST_SUBTITLE_COLOR = "#505050" +var LIST_SUBTITLE_COLOR_PRESSED = "#797979" +var LIST_SUBTITLE_COLOR_INVERTED = "#C8C8C8" +var LIST_SUBTITLE_COLOR_PRESSED_INVERTED = "#797979" + +/* Font properties */ +var FONT_FAMILY = "Nokia Pure Text"; +var FONT_FAMILY_BOLD = "Nokia Pure Text Bold"; +var FONT_FAMILY_LIGHT = "Nokia Pure Text Light"; +var FONT_DEFAULT_SIZE = 24; +var FONT_LIGHT_SIZE = 22; + +/* TUMBLER properties */ +var TUMBLER_COLOR_TEXT = "#FFFFFF"; +var TUMBLER_COLOR_LABEL = "#8C8C8C"; +var TUMBLER_COLOR = "#000000"; +var TUMBLER_OPACITY_FULL = 1.0; +var TUMBLER_OPACITY = 0.4; +var TUMBLER_OPACITY_LOW = 0.1; +var TUMBLER_FLICK_VELOCITY = 700; +var TUMBLER_ROW_HEIGHT = 64; +var TUMBLER_LABEL_HEIGHT = 54; +var TUMBLER_MARGIN = 16; +var TUMBLER_BORDER_MARGIN = 1; +var TUMBLER_WIDTH = 344; +var TUMBLER_HEIGHT_PORTRAIT = 256; +var TUMBLER_HEIGHT_LANDSCAPE = 192; + +/* Button styles */ +// Normal +var COLOR_BUTTON_FOREGROUND = "#191919"; // Text color +var COLOR_BUTTON_SECONDARY_FOREGROUND = "#8c8c8c"; // Pressed +var COLOR_BUTTON_DISABLED_FOREGROUND = "#b2b2b4"; // Disabled +// Inverted +var COLOR_BUTTON_INVERTED_FOREGROUND = "#FFFFFF"; +var COLOR_BUTTON_INVERTED_SECONDARY_FOREGROUND = "#8c8c8c"; // Pressed +var COLOR_BUTTON_INVERTED_DISABLED_FOREGROUND = "#f5f5f5"; // Disabled + +var SIZE_BUTTON = 51; +var SIZE_SMALL_BUTTON = 43; +var WIDTH_SMALL_BUTTON = 122; +var WIDTH_TUMBLER_BUTTON = 222; + +var FONT_BOLD_BUTTON = true; + +var INFO_BANNER_OPACITY = 0.9 +var INFO_BANNER_LETTER_SPACING = -1.2 diff --git a/mardrone/imports/com/nokia/extras/qmldir b/mardrone/imports/com/nokia/extras/qmldir new file mode 100644 index 0000000..8d2b47e --- /dev/null +++ b/mardrone/imports/com/nokia/extras/qmldir @@ -0,0 +1,43 @@ +plugin meegoextrasplugin +CountBubble 1.0 CountBubble.qml +DatePickerDialog 1.0 DatePickerDialog.qml +InfoBanner 1.0 InfoBanner.qml +ListDelegate 1.0 ListDelegate.qml +MoreIndicator 1.0 MoreIndicator.qml +NetPromoterScore 1.0 NetPromoterScore.qml +PageIndicator 1.0 PageIndicator.qml +RatingIndicator 1.0 RatingIndicator.qml +TimePickerDialog 1.0 TimePickerDialog.qml +Tumbler 1.0 Tumbler.qml +TumblerColumn 1.0 TumblerColumn.qml +TumblerButton 1.0 TumblerButton.qml +TumblerDialog 1.0 TumblerDialog.qml +ListButton 1.0 ListButton.qml +ListButtonStyle 1.0 ListButtonStyle.qml +NegativeButtonStyle 1.0 NegativeButtonStyle.qml +PositiveButtonStyle 1.0 PositiveButtonStyle.qml +SystemBanner 1.0 SystemBanner.qml +TumblerButtonStyle 1.0 TumblerButtonStyle.qml +TumblerNew 1.0 TumblerNew.qml +TumblerDialogNew 1.0 TumblerDialogNew.qml +CountBubble 1.1 CountBubble.qml +DatePickerDialog 1.1 DatePickerDialog.qml +InfoBanner 1.1 InfoBanner.qml +ListDelegate 1.1 ListDelegate.qml +MoreIndicator 1.1 MoreIndicator.qml +NetPromoterScore 1.1 NetPromoterScore.qml +PageIndicator 1.1 PageIndicator.qml +RatingIndicator 1.1 RatingIndicator.qml +TimePickerDialog 1.1 TimePickerDialog.qml +Tumbler 1.1 Tumbler.qml +TumblerColumn 1.1 TumblerColumn.qml +TumblerButton 1.1 TumblerButton.qml +TumblerDialog 1.1 TumblerDialog.qml +ListButton 1.1 ListButton.qml +ListButtonStyle 1.1 ListButtonStyle.qml +NegativeButtonStyle 1.1 NegativeButtonStyle.qml +PositiveButtonStyle 1.1 PositiveButtonStyle.qml +SystemBanner 1.1 SystemBanner.qml +TumblerButtonStyle 1.1 TumblerButtonStyle.qml +TumblerNew 1.1 TumblerNew.qml +TumblerDialogNew 1.1 TumblerDialogNew.qml diff --git a/mardrone/imports/com/nokia/meego/AbstractMenu.qml b/mardrone/imports/com/nokia/meego/AbstractMenu.qml new file mode 100644 index 0000000..703192e --- /dev/null +++ b/mardrone/imports/com/nokia/meego/AbstractMenu.qml @@ -0,0 +1,316 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Popup { + id: root + + // Common API + default property alias content: contentField.children + + // Common API inherited from Popup: + /* + function open() + function close() + + property QDeclarativeItem* visualParent + property int status + */ + + // platformStyle API + property Style platformStyle: MenuStyle{} + property alias style: root.platformStyle // Deprecated + property alias platformTitle: titleBar.children + property alias title: titleBar.children // Deprecated + property alias __footer: footerBar.children + + // private api + property int __statusBarDelta: visualParent ? 0 : + __findItem( "appWindowContent") != null ? 0 : + __findItem( "pageStackWindow") != null && __findItem( "pageStackWindow").showStatusBar ? 36 : 0 + + property string __animationChief: "abstractMenu" + property int __pressDelay: platformStyle.pressDelay + property alias __statesWrapper: statesWrapper + property alias __menuPane: menuPane + + // This item will find the object with the given objectName ... or will return + function __findItem( objectName ) { + var next = parent; + + if (next != null) { + while (next) { + if(next.objectName == objectName){ + return next; + } + + next = next.parent; + } + } + + return null; + } + + __dim: platformStyle.dim + __fadeInDuration: platformStyle.fadeInDuration + __fadeOutDuration: platformStyle.fadeOutDuration + __fadeInDelay: platformStyle.fadeInDelay + __fadeOutDelay: platformStyle.fadeOutDelay + __faderBackground: platformStyle.faderBackground + __fadeInEasingType: platformStyle.fadeInEasingType + __fadeOutEasingType: platformStyle.fadeOutEasingType + + anchors.fill: parent + + // When application is minimized menu is closed. + Connections { + target: platformWindow + onActiveChanged: { + if(!platformWindow.active) + close() + } + } + + // This is needed for menus which are not instantiated inside the + // content window of the PageStackWindow: + Item { + id: roundedCorners + visible: root.status != DialogStatus.Closed && !visualParent + && __findItem( "pageStackWindow") != null && __findItem( "pageStackWindow").platformStyle.cornersVisible + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: parent.bottom + height: parent.height - __statusBarDelta - 2 + z: 10001 + + // compensate for the widening of the edges of the fader (which avoids artefacts during rotation) + anchors.topMargin: +1 + anchors.rightMargin: +1 + anchors.bottomMargin: +1 + anchors.leftMargin: +1 + + Image { + anchors.top : parent.top + anchors.left: parent.left + source: "image://theme/meegotouch-applicationwindow-corner-top-left" + } + Image { + anchors.top: parent.top + anchors.right: parent.right + source: "image://theme/meegotouch-applicationwindow-corner-top-right" + } + Image { + anchors.bottom : parent.bottom + anchors.left: parent.left + source: "image://theme/meegotouch-applicationwindow-corner-bottom-left" + } + Image { + anchors.bottom : parent.bottom + anchors.right: parent.right + source: "image://theme/meegotouch-applicationwindow-corner-bottom-right" + } + } + + // Shadows: + Image { + anchors.top : menuPane.top + anchors.right: menuPane.left + anchors.bottom : menuPane.bottom + source: "image://theme/meegotouch-menu-shadow-left" + visible: root.status != DialogStatus.Closed + } + Image { + anchors.bottom : menuPane.top + anchors.left: menuPane.left + anchors.right : menuPane.right + source: "image://theme/meegotouch-menu-shadow-top" + visible: root.status != DialogStatus.Closed + } + Image { + anchors.top : menuPane.top + anchors.left: menuPane.right + anchors.bottom : menuPane.bottom + source: "image://theme/meegotouch-menu-shadow-right" + visible: root.status != DialogStatus.Closed + } + Image { + anchors.top : menuPane.bottom + anchors.left: menuPane.left + anchors.right : menuPane.right + source: "image://theme/meegotouch-menu-shadow-bottom" + visible: root.status != DialogStatus.Closed + } + + Item { + id: menuPane + //ToDo: add support for layoutDirection Qt::RightToLeft + x: platformStyle.leftMargin + width: parent.width - platformStyle.leftMargin - platformStyle.rightMargin // ToDo: better width heuristic + height: (screen.currentOrientation == 1) || (screen.currentOrientation == 4) ? + /* Portrait */ titleBar.height + flickableContent.height + footerBar.height : + /* Landscape */ parent.height - platformStyle.topMargin - platformStyle.bottomMargin - __statusBarDelta + anchors.bottom: parent.bottom + anchors.right: parent.right + + state: __statesWrapper.state + + BorderImage { + id: backgroundImage + source: // !enabled ? root.platformStyle.disabledBackground : + root.platformStyle.background + anchors.fill : parent + border { left: 22; top: theme.inverted ? 124 : 22; + right: 22; bottom: theme.inverted ? 2 : 22 } + } + + // this item contains the whole menu (content rectangle) + Item { + id: backgroundRect + anchors.fill: parent + + Item { + id: titleBar + anchors.left: parent.left + anchors.right: parent.right + + height: childrenRect.height + } + + Item { + // Required to have the ScrollDecorator+Flickable handled + // by the column as a single item while keeping the + // ScrollDecorator working + id: flickableContent + anchors.left: parent.left + anchors.right: parent.right + + anchors.top: backgroundRect.top + anchors.topMargin: titleBar.height + property int maxHeight : visualParent + ? visualParent.height - platformStyle.topMargin - __statusBarDelta + - footerBar.height - titleBar.height + : root.parent + ? root.parent.height - platformStyle.topMargin - __statusBarDelta + - footerBar.height - titleBar.height + : 350 + + height: contentField.childrenRect.height + platformStyle.topPadding + platformStyle.bottomPadding < maxHeight + ? contentField.childrenRect.height + platformStyle.topPadding + platformStyle.bottomPadding + : maxHeight + + Flickable { + id: flickable + anchors.fill: parent + contentWidth: parent.width + contentHeight: contentField.childrenRect.height + platformStyle.topPadding + platformStyle.bottomPadding + interactive: contentHeight > flickable.height + flickableDirection: Flickable.VerticalFlick + pressDelay: __pressDelay + clip: true + + Item { + id: contentRect + height: contentField.childrenRect.height + + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + anchors.topMargin: platformStyle.topPadding + anchors.bottomMargin: platformStyle.bottomPadding + anchors.leftMargin: platformStyle.leftPadding + anchors.rightMargin: platformStyle.rightPadding + + Item { + id: contentField + anchors.fill: contentRect + + function closeMenu() { root.close(); } + } + } + } + ScrollDecorator { + id: scrollDecorator + flickableItem: flickable + } + } + + Item { + id: footerBar + anchors.left: parent.left + anchors.right: parent.right + + anchors.top: backgroundRect.top + anchors.topMargin: titleBar.height + flickableContent.height + height: childrenRect.height + } + + } + } + + onPrivateClicked: close() // "reject()" + + StateGroup { + id: statesWrapper + + state: "hidden" + + states: [ + State { + name: "visible" + when: root.__animationChief == "abstractMenu" && (root.status == DialogStatus.Opening || root.status == DialogStatus.Open) + PropertyChanges { + target: __menuPane + opacity: 1.0 + } + }, + State { + name: "hidden" + when: root.__animationChief == "abstractMenu" && (root.status == DialogStatus.Closing || root.status == DialogStatus.Closed) + PropertyChanges { + target: __menuPane + opacity: 0.0 + } + } + ] + + } +} diff --git a/mardrone/imports/com/nokia/meego/ApplicationWindow.qml b/mardrone/imports/com/nokia/meego/ApplicationWindow.qml new file mode 100644 index 0000000..7f53765 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ApplicationWindow.qml @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +PageStackWindow { + + Component.onCompleted: { + print("Warning: ApplicationWindow is deprecated, use PageStackWindow instead"); + } + +} diff --git a/mardrone/imports/com/nokia/meego/ApplicationWindowStyle.qml b/mardrone/imports/com/nokia/meego/ApplicationWindowStyle.qml new file mode 100644 index 0000000..82e4a4b --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ApplicationWindowStyle.qml @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Style { + property bool cornersVisible: true + + // Background + property url background: "image://theme/meegotouch-applicationpage-background"+__invertedString +} diff --git a/mardrone/imports/com/nokia/meego/BasicRow.js b/mardrone/imports/com/nokia/meego/BasicRow.js new file mode 100644 index 0000000..09460a0 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/BasicRow.js @@ -0,0 +1,98 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +var children = [] + +function cleanup() +{ + var length = children.length; + + for (var i = 0; i < length; i++) { + var item = children[i]; + + item.widthChanged.disconnect(relayout); + item.heightChanged.disconnect(relayout); + item.visibleChanged.disconnect(relayout); + } + + children = []; +} + +function updateChildren() +{ + cleanup(); + + var length = row.children.length; + + for (var i = 0; i < length; i++) { + var item = row.children[i]; + + item.widthChanged.connect(relayout); + item.heightChanged.connect(relayout); + item.visibleChanged.connect(relayout); + + children.push(item); + } + + relayout(); +} + +function relayout() +{ + var ix = 0; + var ih = 0; + + var length = children.length; + + for (var i = 0; i < length; i++) { + var item = children[i]; + + if (!item.visible) + continue; + + item.x = ix; + item.y = 0; + ih = Math.max(ih, item.height); + ix += item.width; + } + + row.width = ix; + row.height = ih; +} diff --git a/mardrone/imports/com/nokia/meego/BasicRow.qml b/mardrone/imports/com/nokia/meego/BasicRow.qml new file mode 100644 index 0000000..f4b943f --- /dev/null +++ b/mardrone/imports/com/nokia/meego/BasicRow.qml @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "BasicRow.js" as Private + +/* + This element should be used in place of the Row element to + avoid visual artifacts during the relayout operation. + + The QML Row element updates its children position using a + singleShot, so a paint operation could happen before the items + are positioned in the right place. + + This element reposition its children immediately to avoid this, + so it's recommended to be used with just a few elements, since + it's not optimized. + + This element can be removed when the following bug is solved: + http://bugreports.qt.nokia.com/browse/QTBUG-18919 +*/ + +Item { + id: row + + onChildrenChanged: Private.updateChildren(); + Component.onCompleted: Private.updateChildren(); +} diff --git a/mardrone/imports/com/nokia/meego/BusyIndicator.qml b/mardrone/imports/com/nokia/meego/BusyIndicator.qml new file mode 100644 index 0000000..0f3688a --- /dev/null +++ b/mardrone/imports/com/nokia/meego/BusyIndicator.qml @@ -0,0 +1,98 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +import "UIConstants.js" as UI +import "TextAreaHelper.js" as AreaHelper + +// ### Display Entered / Exited! Pause animation when not "on display". +// ### LayoutDirection + +ImplicitSizeItem { + id: root + + property bool running: false + + property Style platformStyle: BusyIndicatorStyle{} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + implicitWidth: platformStyle.size == "small" ? 24 : platformStyle.size == "medium" ? 32 : 96; + implicitHeight: implicitWidth + + QtObject { + id: internal + property Flickable flick + property bool offScreen: false + } + + Image { + id: spinner + property int index: 1 + source: root.platformStyle.spinnerFrames + "_" + root.implicitWidth + "_" + index + smooth: true + + NumberAnimation on index { + from: 1; to: root.platformStyle.numberOfFrames + duration: root.platformStyle.period + running: root.running && root.visible && Qt.application.active && !internal.offScreen + loops: Animation.Infinite + } + } + + Connections { + target: internal.flick + + onMovementStarted: internal.offScreen = false + + onMovementEnded: { + var pos = mapToItem(internal.flick, 0, 0) + internal.offScreen = (pos.y + root.height <= 0) || (pos.y >= internal.flick.height) || (pos.x + root.width <= 0) || (pos.x >= internal.flick.width) + } + } + + Component.onCompleted: { + var flick = AreaHelper.findFlickable() + if (flick) + internal.flick = flick + } +} diff --git a/mardrone/imports/com/nokia/meego/BusyIndicatorStyle.qml b/mardrone/imports/com/nokia/meego/BusyIndicatorStyle.qml new file mode 100644 index 0000000..445df17 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/BusyIndicatorStyle.qml @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + property string size: "medium" + property int period: 1000 + + property int numberOfFrames: 10 + + __invertedString: inverted? "inverted" : "" // The spinner frames do not follow the common inverted file naming :( + + property url spinnerFrames: "image://theme/spinner"+__invertedString +} diff --git a/mardrone/imports/com/nokia/meego/Button.qml b/mardrone/imports/com/nokia/meego/Button.qml new file mode 100644 index 0000000..fe8f66a --- /dev/null +++ b/mardrone/imports/com/nokia/meego/Button.qml @@ -0,0 +1,146 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import Qt.labs.components 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +ImplicitSizeItem { + id: button + + // Common public API + property bool checked: false + property bool checkable: false + property alias pressed: mouseArea.pressed + property alias text: label.text + property url iconSource + property alias platformMouseAnchors: mouseArea.anchors + + signal clicked + + // Used in ButtonGroup.js to set the segmented look on the buttons. + property string __buttonType + + // Styling for the Button + property Style platformStyle: ButtonStyle {} + + // Deprecated, TODO remove + property alias style: button.platformStyle + + implicitWidth: platformStyle.buttonWidth + implicitHeight: platformStyle.buttonHeight + width: implicitWidth + + property alias font: label.font + + //private property + property bool __dialogButton: false + + BorderImage { + id: background + anchors.fill: parent + border { left: button.platformStyle.backgroundMarginLeft; top: button.platformStyle.backgroundMarginTop; + right: button.platformStyle.backgroundMarginRight; bottom: button.platformStyle.backgroundMarginBottom } + + source: __dialogButton ? (pressed ? button.platformStyle.pressedDialog : button.platformStyle.dialog) : + !enabled ? + (checked ? button.platformStyle.checkedDisabledBackground : button.platformStyle.disabledBackground) : + pressed ? + button.platformStyle.pressedBackground : + checked ? + button.platformStyle.checkedBackground : + button.platformStyle.background; + } + + Image { + id: icon + anchors.left: label.visible ? parent.left : undefined + anchors.leftMargin: label.visible ? UI.MARGIN_XLARGE : 0 + anchors.centerIn: label.visible ? undefined : parent + + anchors.verticalCenter: parent.verticalCenter + anchors.verticalCenterOffset: -1 + + source: button.iconSource + + visible: source != "" + } + + Label { + id: label + anchors.verticalCenter: parent.verticalCenter + anchors.left: icon.visible ? icon.right : parent.left + anchors.leftMargin: icon.visible ? UI.PADDING_XLARGE : UI.BUTTON_LABEL_MARGIN + anchors.right: parent.right + anchors.rightMargin: UI.BUTTON_LABEL_MARGIN + + horizontalAlignment: icon.visible ? Text.AlignLeft : button.platformStyle.horizontalAlignment + elide: Text.ElideRight + + font.family: button.platformStyle.fontFamily + font.weight: checked ? button.platformStyle.checkedFontWeight : button.platformStyle.fontWeight + font.pixelSize: button.platformStyle.fontPixelSize + font.capitalization: button.platformStyle.fontCapitalization + color: !enabled ? button.platformStyle.disabledTextColor : + pressed ? button.platformStyle.pressedTextColor : + checked ? button.platformStyle.checkedTextColor : + button.platformStyle.textColor; + text: "" + visible: text != "" + } + + MouseArea { + id: mouseArea + anchors { + fill: parent + rightMargin: (platformStyle.position != "horizontal-center" + && platformStyle.position != "horizontal-left") ? platformStyle.mouseMarginRight : 0 + leftMargin: (platformStyle.position != "horizontal-center" + && platformStyle.position != "horizontal-right") ? platformStyle.mouseMarginLeft : 0 + topMargin: (platformStyle.position != "vertical-center" + && platformStyle.position != "vertical-bottom") ? platformStyle.mouseMarginTop : 0 + bottomMargin: (platformStyle.position != "vertical-center" + && platformStyle.position != "vertical-top") ? platformStyle.mouseMarginBottom : 0 + } + onClicked: if (button.checkable) button.checked = !button.checked + } + Component.onCompleted: mouseArea.clicked.connect(clicked) +} diff --git a/mardrone/imports/com/nokia/meego/ButtonColumn.qml b/mardrone/imports/com/nokia/meego/ButtonColumn.qml new file mode 100644 index 0000000..f73a2a5 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ButtonColumn.qml @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +import "ButtonGroup.js" as Private +import "UIConstants.js" as UI + +Column { + id: root + + property bool exclusive: true + property Item checkedButton + + property Component platformStyle: null + property Component style: null + + width: UI.BUTTON_WIDTH + + Component.onCompleted: { + Private.create(root, { + "orientation": Qt.Vertical, + "exclusive": exclusive, + "styleComponent": platformStyle? platformStyle : style, + "singlePos": "", + "firstPos": "vertical-top", + "middlePos": "vertical-center", + "lastPos": "vertical-bottom", + "resizeChildren": function(self) { + Private.buttons.forEach(function(item, i) { + if (Private.isButton(item) && item.visible) { + item.anchors.left = self.left; + item.anchors.right = self.right; + } + }); + } + }); + } + + Component.onDestruction: { + Private.destroy(); + } +} diff --git a/mardrone/imports/com/nokia/meego/ButtonGroup.js b/mardrone/imports/com/nokia/meego/ButtonGroup.js new file mode 100644 index 0000000..623190a --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ButtonGroup.js @@ -0,0 +1,263 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/// Helper code that is shared between ButtonRow.qml and ButtonColumn.qml. + +var self = undefined; +var checkedButton = null; +var buttons = []; +var firstVisible = -1; +var lastVisible = -1; +var visibleButtons = 0; +var buttonHandlers = []; +var styleComponent = undefined; +var params = undefined; + +function isButton(item) { + return (item && item.hasOwnProperty("__buttonType")); +} + +function hasChecked(item) { + return (item && item.hasOwnProperty("checked")); +} + +function cleanup() { + buttons.forEach(function(button, i) { + if (button.visible && params.exclusive) { + button.checkedChanged.disconnect(buttonHandlers[i]); + } + if (isButton(button)) + button.visibleChanged.disconnect(buttonVisibleChanged); + }); + buttons = []; + buttonHandlers = []; +} + +function updateButtons() { + cleanup(); + + params.exclusive = self.exclusive; + + checkedButton = null; + var length = self.children.length; + for (var i = 0; i < length; i++) { + var item = self.children[i]; + if (!hasChecked(item)) + continue; + buttons.push(item); + + item.visibleChanged.connect(buttonVisibleChanged); + + if (item.checked) { + if (!checkedButton && (self.checkedButton === item || self.checkedButton == undefined)) + checkedButton = item; + else if (params.exclusive && self.checkedButton != item) + item.checked = false; + } else if (self.checkedButton === item) { + if (checkedButton && params.exclusive) + checkedButton.checked = false; + checkedButton = item; + item.checked = true; + } + + if (isButton(item)) { + if (styleComponent) + item.platformStyle = styleComponent.createObject(item) + + // Only ButtonRow supports tab buttons and care about screen orientation + if (params.orientation == Qt.Horizontal && item.platformStyle.hasOwnProperty("screenOrientation")) + switch (screen.currentOrientation) { + case Screen.Portrait: + case Screen.PortraitInverted: + item.platformStyle.screenOrientation = "portrait"; + break; + case Screen.Landscape: + case Screen.LandscapeInverted: + item.platformStyle.screenOrientation = "landscape"; + break; + } + } + if (params.exclusive) { + if (item["checkable"] !== undefined) + item.checkable = true; + var last = buttonHandlers.push(checkExclusive(item)); + item.checkedChanged.connect(buttonHandlers[last - 1]); + } + } + + if (!checkedButton && buttons.length > 0 && params.exclusive) { + checkedButton = buttons[0]; + checkedButton.checked = true; + } + self.checkedButton = checkedButton; + + buttonVisibleChanged(); +} + +var blockCheckedChanged = false; + +function checkExclusive(item) { + var button = item; + return function() { + if (blockCheckedChanged) + return; + if (!button.checked) { + if (self.checkedButton === button) { + blockCheckedChanged = true; + button.checked = true; + blockCheckedChanged = false; + } + return; + } + if (self.checkedButton === button) + return; + if (self.checkedButton) { + blockCheckedChanged = true; + self.checkedButton.checked = false; + blockCheckedChanged = false; + } + checkedButton = button; + self.checkedButton = button; + } +} + +function checkedButtonChanged() { + if (checkedButton === self.checkedButton) + return; + blockCheckedChanged = true; + if (params.exclusive && checkedButton) + checkedButton.checked = false; + if (self.checkedButton) + self.checkedButton.checked = true; + blockCheckedChanged = false; + checkedButton = self.checkedButton; +} + +function buttonVisibleChanged() { + visibleButtons = 0; + firstVisible = -1; + lastVisible = -1; + buttons.forEach(function (button, i) { + if (button.visible) { + if (firstVisible === -1) + firstVisible = i; + lastVisible = i; + visibleButtons++; + } + }); + + updateGroupPosition(); + resizeChildren(); +} + +function updateGroupPosition() { + if (visibleButtons === 0) + return; + + // Fix the children group position + if (visibleButtons == 1) { + if (isButton(buttons[firstVisible])) + buttons[firstVisible].platformStyle.position = params.singlePos; + } else { + if (isButton(buttons[firstVisible])) + buttons[firstVisible].platformStyle.position = params.firstPos; + for (var i = firstVisible + 1; i < lastVisible; i++) { + if (buttons[i].visible && isButton(buttons[i])) + buttons[i].platformStyle.position = params.middlePos; + } + if (isButton(buttons[lastVisible])) + buttons[lastVisible].platformStyle.position = params.lastPos; + } +} + +var resizing = false; // resizeChildren() may trigger reentrant calls + +function resizeChildren() { + if (resizing || visibleButtons === 0) + return; + + if (typeof params.resizeChildren === "function") { + resizing = true; + params.resizeChildren(self); + resizing = false; + } +} + +function create(s, p) { + if (!s) { + console.log("Error creating ButtonGroup: invalid owner."); + return; + } + if (!s.hasOwnProperty("checkedButton")) { + console.log("Error creating ButtonGroup: owner has no 'checkedButton' property."); + return; + } + + self = s; + params = p; + + styleComponent = params.styleComponent; + + if (styleComponent && styleComponent.status != Component.Ready) { + console.log("Error loading style:", styleComponent.errorString()); + return + } + + updateButtons(); + self.checkedButtonChanged.connect(checkedButtonChanged); + self.childrenChanged.connect(updateButtons); + self.exclusiveChanged.connect(Private.updateButtons); + self.widthChanged.connect(resizeChildren); +} + +function destroy() { + if (self) { + self.checkedButtonChanged.disconnect(checkedButtonChanged); + self.childrenChanged.disconnect(updateButtons); + self.widthChanged.disconnect(resizeChildren); + self = undefined; + } + if (styleComponent) { + styleComponent.destroy(); + styleComponent = undefined; + } + cleanup(); +} + diff --git a/mardrone/imports/com/nokia/meego/ButtonRow.qml b/mardrone/imports/com/nokia/meego/ButtonRow.qml new file mode 100644 index 0000000..bc49b59 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ButtonRow.qml @@ -0,0 +1,94 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +import "ButtonGroup.js" as Private +import "UIConstants.js" as UI + +Row { + id: root + + property bool exclusive: true + property Item checkedButton + + property Component platformStyle: null + property Component style: null + + property int __screenWidth: (screen.rotation === 0 || screen.rotation === 180 ? screen.displayWidth : screen.displayHeight) - 2 * UI.MARGIN_XLARGE + property int __visibleButtons + property bool __expanding: true // Layout hint used but ToolBarLayout + property int __maxButtonSize: UI.BUTTON_WIDTH + + width: Math.min(__visibleButtons * UI.BUTTON_WIDTH, __screenWidth) + Component.onCompleted: { + Private.create(root, { + "orientation": Qt.Horizontal, + "exclusive": exclusive, + "styleComponent": platformStyle? platformStyle : style, + "singlePos": "", + "firstPos": "horizontal-left", + "middlePos": "horizontal-center", + "lastPos": "horizontal-right", + "resizeChildren": function(self) { + self.__visibleButtons = Private.visibleButtons; + var extraPixels = self.width % Private.visibleButtons; + var buttonSize = Math.min(__maxButtonSize, (self.width - extraPixels) / Private.visibleButtons); + Private.buttons.forEach(function(item, i) { + if (!item || !item.visible || !Private.isButton(item)) + return; + if (extraPixels > 0) { + item.width = buttonSize + 1; + extraPixels--; + } else { + item.width = buttonSize; + } + }); + } + }); + screen.currentOrientationChanged.connect(Private.updateButtons); + } + + Component.onDestruction: { + screen.currentOrientationChanged.disconnect(Private.updateButtons); + Private.destroy(); + } +} diff --git a/mardrone/imports/com/nokia/meego/ButtonStyle.qml b/mardrone/imports/com/nokia/meego/ButtonStyle.qml new file mode 100644 index 0000000..fe62cf0 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ButtonStyle.qml @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + // Font + property string fontFamily: UI.FONT_FAMILY + property int fontPixelSize: UI.FONT_DEFAULT_SIZE + property int fontCapitalization: Font.MixedCase + property int fontWeight: Font.Bold + property int checkedFontWeight: Font.Bold + property int horizontalAlignment: Text.AlignHCenter + + // Text Color + property color textColor: inverted ? UI.COLOR_BUTTON_INVERTED_FOREGROUND : UI.COLOR_BUTTON_FOREGROUND + property color pressedTextColor: UI.COLOR_BUTTON_SECONDARY_FOREGROUND + property color disabledTextColor: UI.COLOR_BUTTON_DISABLED_FOREGROUND + property color checkedTextColor: UI.COLOR_BUTTON_INVERTED_FOREGROUND + + // Dimensions + property int buttonWidth: UI.BUTTON_WIDTH + property int buttonHeight: UI.BUTTON_HEIGHT + + // Mouse + property real mouseMarginRight: 0.0 + property real mouseMarginLeft: 0.0 + property real mouseMarginTop: 0.0 + property real mouseMarginBottom: 0.0 + + // Background + property int backgroundMarginRight: 22 + property int backgroundMarginLeft: 22 + property int backgroundMarginTop: 22 + property int backgroundMarginBottom: 22 + + /* The position property can take one of the following values: + + [horizontal-left] [horizontal-center] [horizontal-right] + + [vertical-top] + [vertical-center] + [vertical-bottom] + */ + property string position: "" + + property url background: "image://theme/meegotouch-button" + __invertedString + "-background" + (position ? "-" + position : "") + property url pressedBackground: "image://theme/" + __colorString + "meegotouch-button" + __invertedString + "-background-pressed" + (position ? "-" + position : "") + property url disabledBackground: "image://theme/meegotouch-button" + __invertedString + "-background-disabled" + (position ? "-" + position : "") + property url checkedBackground: "image://theme/" + __colorString + "meegotouch-button" + __invertedString + "-background-selected" + (position ? "-" + position : "") + property url checkedDisabledBackground: "image://theme/" + __colorString + "meegotouch-button" + __invertedString + "-background-disabled-selected" + (position ? "-" + position : "") + property url dialog: "image://theme/meegotouch-dialog-button-negative" + property url pressedDialog: "image://theme/meegotouch-dialog-button-negative-pressed" + +} diff --git a/mardrone/imports/com/nokia/meego/CheckBox.qml b/mardrone/imports/com/nokia/meego/CheckBox.qml new file mode 100644 index 0000000..fd7c190 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/CheckBox.qml @@ -0,0 +1,136 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import Qt.labs.components 1.1 + +import "UIConstants.js" as UI + +ImplicitSizeItem { + id: checkbox + + property Style platformStyle: CheckBoxStyle{} + property alias platformMouseAnchors: mouseArea.anchors + + //Deprecated, TODO Remove this on w13 + property alias style: checkbox.platformStyle + + property string text + property bool checked: false + property bool pressed + signal clicked + + implicitWidth: image.width + body.spacing + label.implicitWidth + implicitHeight: body.height + + onWidthChanged: if (width > 0 && width != implicitWidth) + label.width = checkbox.width - body.spacing - image.width + + Binding { + target: checkbox + property: "pressed" + value: mouseArea.pressed && mouseArea.containsMouse + } + + property alias __imageSource: image.source + + function __handleChecked() { + checkbox.checked = !checkbox.checked; + } + + Row { + id: body + spacing: 15 + + BorderImage { + id: image + smooth: true + + width: 42; height: 42 + + source: !checkbox.enabled ? platformStyle.backgroundDisabled : + checkbox.pressed ? platformStyle.backgroundPressed : + checkbox.checked ? platformStyle.backgroundSelected : + platformStyle.background + + border { + left: 4 + top: 4 + right: 4 + bottom: 4 + } + } + + Label { + id: label + anchors.verticalCenter: image.verticalCenter + text: checkbox.text + elide: checkbox.platformStyle.elideMode + } + } + + MouseArea { + id: mouseArea + + anchors.fill: body + anchors.topMargin: platformStyle.mouseMarginTop + anchors.leftMargin: platformStyle.mouseMarginLeft + anchors.rightMargin: platformStyle.mouseMarginRight + anchors.bottomMargin: platformStyle.mouseMarginBottom + + onPressed: { + // TODO: enable feedback without old themebridge + // if (checkbox.checked) + // meegostyle.feedback("pressOnFeedback"); + // else + // meegostyle.feedback("pressOffFeedback"); + } + + onClicked: { + __handleChecked(); + // TODO: enable feedback without old themebridge + // if (checkbox.checked) + // meegostyle.feedback("releaseOnFeedback"); + // else + // meegostyle.feedback("releaseOffFeedback"); + } + } + Component.onCompleted: mouseArea.clicked.connect(clicked) +} diff --git a/mardrone/imports/com/nokia/meego/CheckBoxStyle.qml b/mardrone/imports/com/nokia/meego/CheckBoxStyle.qml new file mode 100644 index 0000000..5c9aeca --- /dev/null +++ b/mardrone/imports/com/nokia/meego/CheckBoxStyle.qml @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + // Background + property url background: "image://theme/meegotouch-button-checkbox"+__invertedString+"-background" + property url backgroundSelected: "image://theme/" + __colorString + "meegotouch-button-checkbox"+__invertedString+"-background-selected" + property url backgroundPressed: "image://theme/" + __colorString + "meegotouch-button-checkbox"+__invertedString+"-background-pressed" + property url backgroundDisabled: "image://theme/" + __colorString + "meegotouch-button-checkbox"+__invertedString+"-background-disabled" + + // Mouse area margins + property int mouseMarginTop: 0 + property int mouseMarginLeft: 0 + property int mouseMarginRight: 0 + property int mouseMarginBottom: 0 + property int elideMode: Text.ElideNone +} diff --git a/mardrone/imports/com/nokia/meego/CommonDialog.qml b/mardrone/imports/com/nokia/meego/CommonDialog.qml new file mode 100644 index 0000000..c7acf5f --- /dev/null +++ b/mardrone/imports/com/nokia/meego/CommonDialog.qml @@ -0,0 +1,164 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Dialog { + id: genericDialog + + property string titleText: "" + + property Style platformStyle: SelectionDialogStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: genericDialog.platformStyle + + //private + property bool __drawFooterLine: false + + title: Item { + id: header + height: genericDialog.platformStyle.titleBarHeight + + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + anchors.bottom: parent.bottom + + Item { + id: labelField + + anchors.fill: parent + + Item { + id: labelWrapper + anchors.left: labelField.left + anchors.right: closeButton.left + + anchors.bottom: parent.bottom + anchors.bottomMargin: genericDialog.platformStyle.titleBarLineMargin + + //anchors.verticalCenter: labelField.verticalCenter + + height: titleLabel.height + + Label { + id: titleLabel + x: genericDialog.platformStyle.titleBarIndent + width: parent.width - closeButton.width + //anchors.baseline: parent.bottom + font: genericDialog.platformStyle.titleBarFont + color: genericDialog.platformStyle.commonLabelColor + elide: genericDialog.platformStyle.titleElideMode + text: genericDialog.titleText + } + + } + + Image { + id: closeButton + anchors.bottom: parent.bottom + anchors.bottomMargin: genericDialog.platformStyle.titleBarLineMargin-6 + //anchors.verticalCenter: labelField.verticalCenter + anchors.right: labelField.right + + opacity: closeButtonArea.pressed ? 0.5 : 1.0 + + source: "image://theme/icon-m-common-dialog-close" + + MouseArea { + id: closeButtonArea + anchors.fill: parent + onClicked: {genericDialog.reject();} + } + + } + + } + + Rectangle { + id: headerLine + + anchors.left: parent.left + anchors.right: parent.right + + anchors.bottom: header.bottom + + height: 1 + + color: "#4D4D4D" + } + + } + + content: Item {id: contentField} + + buttons: Item { + id: footer + + width: parent.width + height: childrenRect.height + + //hack to make sure, we're evaluating the correct height + Item { + id: lineWrapper + width: parent.width + height: childrenRect.height + y: 10 + + Rectangle { + id: footerLine + + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + height: genericDialog.__drawFooterLine ? 1 : 0 + + color: "#4D4D4D" + } + } + + //ugly hack to assure, that we're always evaluating the correct height + Item {id: dummy; anchors.fill: parent} + + } + +} diff --git a/mardrone/imports/com/nokia/meego/ContextMenu.qml b/mardrone/imports/com/nokia/meego/ContextMenu.qml new file mode 100644 index 0000000..0299cc5 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ContextMenu.qml @@ -0,0 +1,118 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +AbstractMenu { + id: root + + // API + property string platformTitleText + property string titleText + property url platformIcon + property url icon + + // platformStyle API + property Style platformStyle: ContextMenuStyle{} + property Style style: ContextMenuStyle{} + + onPlatformTitleTextChanged: logDeprecatedMsg("platformTitleText") + onTitleTextChanged: logDeprecatedMsg("titleText") + onPlatformIconChanged: logDeprecatedMsg("platformIcon") + onIconChanged: logDeprecatedMsg("iconChanged") + onPlatformStyleChanged: logDeprecatedMsg("platformStyle") + onStyleChanged: logDeprecatedMsg("style") + + function logDeprecatedMsg(name) { + console.log("Warning: " + name + " is deprecated"); + } + + + __statesWrapper.transitions: [ + Transition { + from: "visible"; to: "hidden" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "hidden"; + root.status = DialogStatus.Closing; + } + } + + NumberAnimation {target: __menuPane; + property: screen.currentOrientation == Screen.Portrait ? "anchors.bottomMargin" : "anchors.rightMargin"; + easing.type: Easing.InOutQuint; + to: screen.currentOrientation == Screen.Portrait ? -__menuPane.height : -__menuPane.width; + from: 0; duration: 350} + + NumberAnimation {target: __menuPane; property: "opacity"; + from: 1.0; to: 0.0; duration: 0} + + ScriptAction {script: { + status = DialogStatus.Closed; + } + } + } + }, + Transition { + from: "hidden"; to: "visible" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "visible"; + root.status = DialogStatus.Opening; + __menuPane.anchors.rightMargin = 0; + __menuPane.anchors.bottomMargin = 0; + } + } + + NumberAnimation {target: __menuPane; + property: screen.currentOrientation == Screen.Portrait ? "anchors.bottomMargin" : "anchors.rightMargin"; + easing.type: Easing.InOutQuint; + from: screen.currentOrientation == Screen.Portrait ? -__menuPane.height : -__menuPane.width; + to: 0; duration: 350} + + ScriptAction {script: { + status = DialogStatus.Open; + } + } + } + } + ] +} diff --git a/mardrone/imports/com/nokia/meego/ContextMenuStyle.qml b/mardrone/imports/com/nokia/meego/ContextMenuStyle.qml new file mode 100644 index 0000000..05e0eb8 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ContextMenuStyle.qml @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +MenuStyle { + id: root + property string titleFontFamily: UI.FONT_FAMILY + property int titleFontPixelSize: UI.FONT_SMALL + property int titleFontCapitalization: Font.MixedCase + property color titleTextColor: "white" + + property int titleBarHeight: 56 + + // fader properties + property double dim: 0.9 + property int fadeInDuration: 250 // ms + property int fadeOutDuration: 350 // ms + property int fadeInDelay: 0 // ms + property int fadeOutDelay: 0 // ms + property int fadeInEasingType: Easing.OutQuint + property int fadeOutEasingType: Easing.InOutQuint + property string faderBackground: "image://theme/meegotouch-menu-dimmer" +} diff --git a/mardrone/imports/com/nokia/meego/Dialog.qml b/mardrone/imports/com/nokia/meego/Dialog.qml new file mode 100644 index 0000000..f17df1c --- /dev/null +++ b/mardrone/imports/com/nokia/meego/Dialog.qml @@ -0,0 +1,323 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Popup { + id: root + objectName: "baseDialog" + + // API + property alias title: titleBar.children + property alias content: contentField.children + property alias buttons: buttonRow.children + + signal accepted + signal rejected + + property Style platformStyle: DialogStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + // private api + property string __animationChief: "baseDialog" + __dim: platformStyle.dim + __fadeInDuration: platformStyle.fadeInDuration + __fadeOutDuration: platformStyle.fadeOutDuration + __fadeInDelay: platformStyle.fadeInDelay + __fadeOutDelay: platformStyle.fadeOutDelay + + // true: center of the content field is center of the background rect + // false: the whole dialog is centered + property bool __centerContentField: false + + width: parent.width - platformStyle.leftMargin - platformStyle.rightMargin // ToDo: better width heuristic + height: titleBar.height + contentField.height + buttonRow.height + + anchors.centerIn: parent + + function reject() { + close(); + rejected(); + } + + function accept() { + close(); + accepted(); + } + + // this item contains the whole dialog (title bar + content rectangle, button row) + Item { + id: backgroundRect + + height: root.height + width: root.width + + anchors.centerIn: root + + // center the whole dialog, not just the content field + transform: Translate { + id: contentTranslation + y: root.__centerContentField ? 0 : (titleBar.height - buttonRow.height) / 2 + } + + + // title bar + Item { + id: titleBar + + width: root.width + height: childrenRect.height + + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: contentField.top + + // animate over bottomMargin (i.e. the distance between the content field) + anchors.bottomMargin: 0 + + } + + //content area + Item { + id: contentField + + anchors.left: parent.left + //anchors.right: parent.right + + anchors.horizontalCenter: backgroundRect.horizontalCenter + anchors.verticalCenter: backgroundRect.verticalCenter + + height: childrenRect.height + + transform: Scale { + id: contentScale + xScale: 1.0; yScale: 1.0 + origin.x: mapFromItem(root, root.width / 2, root.height / 2).x + origin.y: mapFromItem(root, root.width / 2, root.height / 2).y + + } + + } + + //button row + Item { + id: buttonRow + + anchors.left: parent.left + anchors.right: parent.right + + anchors.top: contentField.bottom + + // animate over topMargin (i.e. the distance between the content field) + anchors.topMargin: 0 + + height: childrenRect.height + } + + } + + onPrivateClicked: reject() + + StateGroup { + id: statesWrapper + + state: "hidden" + + // needed for button and title bar animation + // without resetting the button row's/title bar's coordinate system would be translated + property int __buttonSaver: buttonRow.y + property int __titleSaver: titleBar.y + + + states: [ + State { + name: "visible" + when: root.__animationChief == "baseDialog" && (status == DialogStatus.Opening || status == DialogStatus.Open) + PropertyChanges { + target: backgroundRect + opacity: 1.0 + } + }, + State { + name: "hidden" + when: root.__animationChief == "baseDialog" && (status == DialogStatus.Closing || status == DialogStatus.Closed) + PropertyChanges { + target: backgroundRect + opacity: 0.0 + } + } + ] + + transitions: [ + Transition { + from: "visible"; to: "hidden" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "hidden"; + + backgroundRect.opacity = 1.0; + root.opacity = 1.0 + + statesWrapper.__buttonSaver = buttonRow.y + statesWrapper.__titleSaver = titleBar.y + root.status = DialogStatus.Closing; + } + } + + // With a 100ms delay the background fades to alpha 0% (500ms, quint ease out). + // --> done in the fader + + PropertyAnimation { target: root; properties: "opacity"; from: 0.0; to: 1.0; duration: 0 } + PropertyAnimation { target: backgroundRect; properties: "opacity"; from: 0.0; to: 1.0; duration: 0 } + + // The closing transition starts with the title and both lines dimming to + // alpha 0% and moving 100 pixels in Y axis towards the center (125ms, + // quint ease in). With no delay the list fades to alpha 0% and scales to + // 80% (anchorpoint in the middle of the list, 100ms, quint ease in). + ParallelAnimation { + PropertyAnimation {target: contentField; properties: "opacity"; from: 1.0; to: 0.0; duration: 100} + PropertyAnimation {target: titleBar; properties: "opacity"; from: 1.0; to: 0.0; duration: 125} + PropertyAnimation {target: contentScale; properties: "xScale,yScale"; from: 1.0 ; to: 0.8; duration: 100; easing.type: Easing.InQuint } + PropertyAnimation {target: buttonRow; properties: "opacity"; from: 1.0; to: 0.0; duration: 125} + PropertyAnimation {target: buttonRow + properties: "anchors.topMargin" + from: 0 + to: -100 + duration: 125 + easing.type: Easing.InQuint + } + PropertyAnimation {target: titleBar + properties: "anchors.topMargin" + from: 0 + to: 100 + duration: 125 + easing.type: Easing.InQuint + } + } + + ScriptAction {script: { + // reset button and title bar + buttonRow.y = statesWrapper.__buttonSaver + titleBar.y = statesWrapper.__titleSaver + // make sure, root isn't visible: + backgroundRect = 0.0; + root.opacity = 0.0; + status = DialogStatus.Closed; + + } + } + } + }, + Transition { + from: "hidden"; to: "visible" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "visible"; + + statesWrapper.__buttonSaver = buttonRow.y + statesWrapper.__titleSaver = titleBar.y + + root.status = DialogStatus.Opening; + // UPPERCASE-UGLY, but necessary to avoid flicker + root.opacity = 1.0; + titleBar.opacity = 0.0; + contentField.opacity = 0.0; + buttonRow.opacity = 0.0; + } + } + + // The opening transition starts by dimming the background to 90% (250ms, + // quint ease in). --> Done inside the fader + + ParallelAnimation { + SequentialAnimation { + // a 250ms delay from the beginning + PauseAnimation { duration: 250 } + // the list scales from 80% to 100% and alpha 0% + // to 100% (anchorpoint in the middle of the list, 250ms, expo ease out) + ParallelAnimation { + PropertyAnimation {target: contentField; properties: "opacity"; from: 0.0; to: 1.0; duration: 250} + PropertyAnimation {target: contentScale; properties: "xScale,yScale"; from: 0.8 ; to: 1.0; duration: 250; easing.type: Easing.OutExpo} + } + } + SequentialAnimation { + // a 200ms delay from the beginning + PauseAnimation { duration: 200 } + ParallelAnimation { + //the title and both lines come from alpha 0% + PropertyAnimation {target: buttonRow; properties: "opacity"; from: 0.0; to: 1.0; duration: 450; } + PropertyAnimation {target: titleBar; properties: "opacity"; from: 0.0; to: 1.0; duration: 450; } + // and move towards the edges (40 pixels in Y axis + // away from their final destination, 450ms, custom ease). + PropertyAnimation {target: buttonRow; properties: "anchors.topMargin" + from: -40 + to: 0 + duration: 450 + easing.type: Easing.OutBack + } + PropertyAnimation {target: titleBar; properties: "anchors.bottomMargin" + from: 40 + to: 0 + duration: 450 + easing.type: Easing.OutBack + } + + } + } + } + + ScriptAction {script: { + + // reset button and title bar + buttonRow.y = statesWrapper.__buttonSaver + titleBar.y = statesWrapper.__titleSaver + + root.status = DialogStatus.Open; + } + } + } + } + ] + } + +} diff --git a/mardrone/imports/com/nokia/meego/DialogStyle.qml b/mardrone/imports/com/nokia/meego/DialogStyle.qml new file mode 100644 index 0000000..fdaff8c --- /dev/null +++ b/mardrone/imports/com/nokia/meego/DialogStyle.qml @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + property real leftMargin: 88 + property real rightMargin: 88 + property real topMargin: 45 + property real bottomMargin: 16 + property bool centered: false + + property int titleBarHeight: 56 + property color titleBarColor: "white" + property int titleElideMode: Text.ElideRight + + property int buttonsTopMargin: 10 + property int buttonsBottomMargin: 0 + property int buttonsColumnSpacing: 10 + + // fader properties + property double dim: 0.9 + property int fadeInDuration: 250 // ms + property int fadeOutDuration: 250 // ms + + property int fadeInDelay: 0 // ms + property int fadeOutDelay: 100 // m + + property int fadeInEasingType: Easing.InQuint + property int fadeOutEasingType: Easing.OutQuint + +} diff --git a/mardrone/imports/com/nokia/meego/EditBubble.js b/mardrone/imports/com/nokia/meego/EditBubble.js new file mode 100644 index 0000000..cc51f63 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/EditBubble.js @@ -0,0 +1,228 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +.pragma library + +Qt.include("Utils.js"); +Qt.include("UIConstants.js"); + +var popup = null; + +function init(item) +{ + if (popup != null) + return true; + + var root = findRootItem(item); + + // create root popup + var component = Qt.createComponent("EditBubble.qml"); + + // due the pragma we cannot access Component.Ready + if (component) + popup = component.createObject(root); + + return popup != null; +} + +/* + Open a shared edit bubble for a given input item. + + All operations and changes will be binded to the + given item. +*/ +function open(input,position) +{ + if (!input) + return false; + + if (!init(input)) + return false; + + // Position when text not selected. + popup.position = position; + + // need to set before checking capabilities + popup.textInput = input; + + if (popup.valid) + popup.state = "opened"; + else + popup.textInput = null; + + return popup.textInput != null; +} + +/* + Close the shared edit bubble for a given input item. +*/ +function close(input) +{ + if (!popup || !input || popup.textInput != input) + return false; + + return closePopup(popup); +} + +/* + Check if the shared edit bubble is opened for the + given input item. +*/ +function isOpened(input) +{ + return (popup && popup.textInput == input); +} + +/* + Check if the bubble is in the middle of a text + change operation. +*/ +function isChangingInput() +{ + return (popup && popup.privateRect.changingText); +} + +/* + Close a given edit bubble. +*/ +function closePopup(bubble) +{ + if (bubble == null || bubble.textInput == null) + return false; + + bubble.state = "closed"; + bubble.textInput = null; + return true; +} + +/* + Adjust EditBubble position to fit in the visible area. + + If no argument is passed, it will adjust the shared + bubble position if already initialized. +*/ +function adjustPosition(bubble) +{ + if (bubble === undefined) + bubble = popup; + + if (bubble == null) + return; + + var input = bubble.textInput; + var rect = bubble.privateRect; + var viewport = rect.parent; + + if (viewport == null || input == null) + return; + + var irect = input.positionToRectangle(input.selectionStart); + var frect = input.positionToRectangle(input.selectionEnd); + var mid = rect.width / 2; + + if (input.selectionStart == input.selectionEnd) { + irect.x = popup.position.x; + irect.y = popup.position.y; + frect.x = popup.position.x; + frect.y = popup.position.y; + } + + var ipoint = viewport.mapFromItem(input, irect.x, irect.y); + var fpoint = viewport.mapFromItem(input, frect.x, frect.y); + + var px = ipoint.x + (fpoint.x - ipoint.x) / 2 - mid; + var py = ipoint.y - rect.height; + + var SHADOW_SIZE = 6 + + rect.x = Math.min(Math.max(px, MARGIN_XLARGE - SHADOW_SIZE), viewport.width - rect.width); + + if (py > SHADOW_SIZE) { + rect.y = py - SHADOW_SIZE; + rect.arrowDown = true; + } else { + rect.y = Math.min(Math.max(ipoint.y + irect.height, 0), + fpoint.y + frect.height); + rect.arrowDown = false; + } + + var boundX = mid - rect.arrowBorder; + rect.arrowOffset = Math.min(Math.max(-boundX, px - rect.x), boundX); +} + +function updateButtons(row) +{ + var children = row.children; + var visibleItems = new Array(); + + for (var i = 0, j = 0; i < children.length; i++) { + var child = children[i]; + + if (child.visible) + visibleItems[j++] = child; + } + + for (var i = 0; i < visibleItems.length; i++) { + if (visibleItems.length == 1) + visibleItems[i].platformStyle.position = ""; + else { + if (i == 0) + visibleItems[i].platformStyle.position = "horizontal-left"; + else if (i == visibleItems.length - 1) + visibleItems[i].platformStyle.position = "horizontal-right"; + else + visibleItems[i].platformStyle.position = "horizontal-center"; + } + } +} + +function geometry() +{ + if (popup == null) + return; + + var bubbleContent = popup.privateRect; + var rect = {"left": bubbleContent.pos.x, + "right": bubbleContent.pos.x + bubbleContent.width, + "top": bubbleContent.pos.y, + "bottom": bubbleContent.pos.y + bubbleContent.height}; + + return rect; +} diff --git a/mardrone/imports/com/nokia/meego/EditBubble.qml b/mardrone/imports/com/nokia/meego/EditBubble.qml new file mode 100644 index 0000000..53b8252 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/EditBubble.qml @@ -0,0 +1,218 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "Utils.js" as Utils +import "EditBubble.js" as Private + +Item { + id: bubble + + property Item textInput: null + property bool valid: rect.canCut || rect.canCopy || rect.canPaste + + property alias privateRect: rect + + property Style platformStyle: EditBubbleStyle {} + + property variant position: Qt.point(0,0) + + anchors.fill: parent + + Item { + id: rect + visible: false + width: row.width + height: row.height + + property int arrowOffset: 0 + property int arrowBorder: platformStyle.arrowMargin + property bool arrowDown: true + property bool changingText: false + property bool pastingText: false + + property bool validInput: textInput != null + property bool canCut: rect.canCopy && !textInput.readOnly + + // TextEdit will have echoMode == null + property bool canCopy: textSelected && (textInput.echoMode == null || textInput.echoMode == TextInput.Normal) + property bool canPaste: validInput && (textInput.canPaste && !textInput.readOnly) + property bool textSelected: validInput && (textInput.selectedText != "") + + z: 1020 + + onWidthChanged: { + if (rect.visible) + Private.adjustPosition(bubble); + } + + onHeightChanged: { + if (rect.visible) + Private.adjustPosition(bubble); + } + + BasicRow { + id: row + Component.onCompleted: Private.updateButtons(row); + + EditBubbleButton { + id: buttonCut + text: textTranslator.translate("qtn_comm_cut"); + visible: rect.canCut + onClicked: { + rect.changingText = true; + textInput.cut(); + rect.changingText = false; + Private.closePopup(bubble); + } + onVisibleChanged: Private.updateButtons(row); + } + + EditBubbleButton { + id: buttonCopy + text: textTranslator.translate("qtn_comm_copy"); + visible: rect.canCopy + onClicked: { + textInput.copy(); + Private.closePopup(bubble); + } + onVisibleChanged: Private.updateButtons(row); + } + + EditBubbleButton { + id: buttonPaste + text: textTranslator.translate("qtn_comm_paste"); + visible: rect.canPaste + onClicked: { + rect.changingText = true; + if (textInput.inputMethodComposing) { + var cursorAdjust = textInput.preedit.length - textInput.preeditCursorPosition; + inputContext.reset(); + textInput.cursorPosition -= cursorAdjust; + } + rect.pastingText = true; + var text = textInput.text; + textInput.paste(); + // PastingText is set to false and clipboard is cleared if we catch onTextChanged + if (rect.pastingText && text == textInput.text) { + var root = Utils.findRootItemNotificationBanner(textInput); + + // create notification banner + var bannerInstance = notificationBanner.createObject(root); + bannerInstance.show(); + bannerInstance.timerEnabled = true; + rect.pastingText = false; + } + rect.changingText = false; + Private.closePopup(bubble); + } + + onVisibleChanged: Private.updateButtons(row); + } + + Component { + id : notificationBanner + NotificationBanner{ + id: errorBannerPrivate + text: textTranslator.translate("qtn_comm_cantpaste"); + timerShowTime: 5*1000 + topMargin: 8 + leftMargin: 8 + } + } + } + + Image { + source: platformStyle.bottomTailBackground + visible: rect.arrowDown && bubble.valid + + anchors.bottom: row.bottom + anchors.horizontalCenter: row.horizontalCenter + anchors.horizontalCenterOffset: rect.arrowOffset + } + + Image { + source: platformStyle.topTailBackground + visible: !rect.arrowDown && bubble.valid + + anchors.bottom: row.top + anchors.bottomMargin: -platformStyle.backgroundMarginBottom - 2 + + anchors.horizontalCenter: row.horizontalCenter + anchors.horizontalCenterOffset: rect.arrowOffset + } + } + + state: "closed" + + states: [ + State { + name: "opened" + ParentChange { target: rect; parent: Utils.findRootItem(textInput); } + PropertyChanges { target: rect; visible: true; } + }, + State { + name: "closed" + ParentChange { target: rect; parent: bubble; } + PropertyChanges { target: rect; visible: false; } + } + ] + + Connections { + target: Utils.findFlickable(textInput) + onContentYChanged: Private.adjustPosition(bubble) + } + + Connections { + target: screen + onCurrentOrientationChanged: Private.adjustPosition(bubble) + } + + Connections { + target: textInput + onTextChanged: { + if (rect.pastingText) { + inputContext.clearClipboard(); + rect.pastingText = false; + } + } + } +} diff --git a/mardrone/imports/com/nokia/meego/EditBubbleButton.qml b/mardrone/imports/com/nokia/meego/EditBubbleButton.qml new file mode 100644 index 0000000..4e591e4 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/EditBubbleButton.qml @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +BorderImage { + id: button + + signal clicked() + property alias text: label.text + property bool selected: false + + property Style platformStyle: EditBubbleButtonStyle {} + + width: label.width + platformStyle.buttonPaddingLeft + + platformStyle.buttonPaddingRight + + platformStyle.backgroundMarginLeft + + platformStyle.backgroundMarginRight + height: platformStyle.buttonHeight + + platformStyle.backgroundMarginTop + + platformStyle.backgroundMarginBottom + + source: { + if (mouseArea.pressed) + return platformStyle.pressedBackground; + + // XXX: meegotouch-text-editor-selected image is missing + if (selected && platformStyle.position != "") + return platformStyle.checkedBackground; + else + return platformStyle.background; + } + + border { + left: platformStyle.backgroundMarginLeft + top: platformStyle.backgroundMarginTop + right: platformStyle.backgroundMarginRight + bottom: platformStyle.backgroundMarginBottom + } + + Text { + id: label + anchors.centerIn: parent + + color: platformStyle.textColor + + font.family: platformStyle.fontFamily + font.weight: platformStyle.fontWeight + font.pixelSize: platformStyle.fontPixelSize + font.capitalization: platformStyle.fontCapitalization + + style: platformStyle.textStyle + styleColor: platformStyle.textStyleColor + } + + MouseArea { + id: mouseArea + enabled: button.enabled + anchors { + fill: parent + leftMargin: platformStyle.mouseMarginLeft + topMargin: platformStyle.mouseMarginTop + rightMargin: platformStyle.mouseMarginRight + bottomMargin: platformStyle.mouseMarginBottom + } + } + Component.onCompleted: mouseArea.clicked.connect(clicked) +} diff --git a/mardrone/imports/com/nokia/meego/EditBubbleButtonStyle.qml b/mardrone/imports/com/nokia/meego/EditBubbleButtonStyle.qml new file mode 100644 index 0000000..5f4b354 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/EditBubbleButtonStyle.qml @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + // Font + property string fontFamily: UI.FONT_FAMILY + property int fontPixelSize: UI.FONT_DEFAULT_SIZE + property int fontCapitalization: Font.MixedCase + property int fontWeight: Font.Normal + + // Text + property color textColor: "black" + property int textStyle: Text.Sunken + property color textStyleColor: "#111111" + + // Dimensions + property int buttonWidth: 40 // DEPRECATED + property int buttonPaddingLeft: 8 + property int buttonPaddingRight: 8 + property int buttonHeight: 56 + + // Mouse + property real mouseMarginLeft: (position == "horizontal-left") ? 6 : 0 + property real mouseMarginTop: 8 + property real mouseMarginRight: (position == "horizontal-right") ? 6 : 0 + property real mouseMarginBottom: 10 + + // Background + property int backgroundMarginLeft: 19 + property int backgroundMarginTop: 15 + property int backgroundMarginRight: 19 + property int backgroundMarginBottom: 15 + + // Position can take one of the following values: + // [horizontal-left] [horizontal-center] [horizontal-right] + property string position: "" + + property string __suffix: (position ? "-" + position : "") + + property url background: "image://theme/meegotouch-text-editor" + __suffix + property url pressedBackground: "image://theme/meegotouch-text-editor-pressed" + __suffix + property url checkedBackground: "image://theme/meegotouch-text-editor-selected" + __suffix +} diff --git a/mardrone/imports/com/nokia/meego/EditBubbleStyle.qml b/mardrone/imports/com/nokia/meego/EditBubbleStyle.qml new file mode 100644 index 0000000..e0ed23b --- /dev/null +++ b/mardrone/imports/com/nokia/meego/EditBubbleStyle.qml @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Style { + // Mouse + property real mouseMarginLeft: 6 + property real mouseMarginTop: 8 + property real mouseMarginRight: 6 + property real mouseMarginBottom: 10 + + // Background + property int backgroundMarginLeft: 0 + property int backgroundMarginTop: 0 + property int backgroundMarginRight: 0 + property int backgroundMarginBottom: 14 // XXX: need to crop images + + property int arrowMargin: 16 // XXX: need to crop images + + // Images + property url topTailBackground: "image://theme/meegotouch-text-editor-top-tail" + property url bottomTailBackground: "image://theme/meegotouch-text-editor-bottom-tail" +} diff --git a/mardrone/imports/com/nokia/meego/Fader.qml b/mardrone/imports/com/nokia/meego/Fader.qml new file mode 100644 index 0000000..aeeb4e1 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/Fader.qml @@ -0,0 +1,202 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +// Background dimming +Rectangle { + id: faderBackground + + property double dim: 0.9 + property int fadeInDuration: 250 + property int fadeOutDuration: 250 + + property int fadeInDelay: 0 + property int fadeOutDelay: 0 + + property int fadeInEasingType: Easing.InQuint + property int fadeOutEasingType: Easing.OutQuint + + property url background: "" + + property Item visualParent: null + property Item originalParent: parent + + // widen the edges to avoid artefacts during rotation + anchors.topMargin: -1 + anchors.rightMargin: -1 + anchors.bottomMargin: -1 + anchors.leftMargin: -1 + + // opacity is passed to child elements - that is not, what we want + // so we need to use alpha value here + property double alpha: dim + + signal privateClicked + + //Deprecated, TODO Remove the following two lines on w13 + signal clicked + onClicked: privateClicked() + + // we need the possibility to fetch the red, green, blue components from a color + // see http://bugreports.qt.nokia.com/browse/QTBUG-14731 + color: background != "" ? "transparent" : Qt.rgba(0.0, 0.0, 0.0, alpha) + state: 'hidden' + + anchors.fill: parent + + // eat mouse events + MouseArea { + id: mouseEventEater + anchors.fill: parent + enabled: faderBackground.alpha != 0.0 + onClicked: { parent.privateClicked() } + } + + Component { + id: backgroundComponent + BorderImage { + id: backgroundImage + source: background + + width: faderBackground.width + height: faderBackground.height + + opacity: faderBackground.alpha + } + } + Loader {id: backgroundLoader} + + onAlphaChanged: { + if (background && faderBackground.alpha && backgroundLoader.sourceComponent == undefined) { + backgroundLoader.sourceComponent = backgroundComponent; + } + if (!faderBackground.alpha) { + backgroundLoader.sourceComponent = undefined; + } + } + + function findRoot() { + var next = parent; + + if (next != null) { + while (next.parent) { + if(next.objectName == "appWindowContent" || next.objectName == "windowContent"){ + break + } + + next = next.parent; + } + } + return next; + } + + + states: [ + State { + name: "visible" + PropertyChanges { + target: faderBackground + alpha: dim + } + }, + State { + name: "hidden" + PropertyChanges { + target: faderBackground + alpha: 0.0 + } + } + ] + + transitions: [ + Transition { + from: "hidden"; to: "visible" + //reparent fader whenever it is going to be visible + SequentialAnimation { + ScriptAction {script: { + //console.log("=============00============="); + // the algorithm works in the following way: + // First: Check if visualParent property is set; if yes, center the fader in visualParent + // Second: If not, center inside window content element + // Third: If no window was found, use root window + originalParent = faderBackground.parent; + if (visualParent != null) { + faderBackground.parent = visualParent + } else { + var root = findRoot(); + if (root != null) { + faderBackground.parent = root; + } else { + // console.log("Error: Cannot find root"); + } + } + } + } + PauseAnimation { duration: fadeInDelay } + + NumberAnimation { + properties: "alpha" + duration: faderBackground.fadeInDuration + easing.type: faderBackground.fadeInEasingType; + } + } + }, + Transition { + from: "visible"; to: "hidden" + SequentialAnimation { + PauseAnimation { duration: fadeOutDelay } + + NumberAnimation { + properties: "alpha" + duration: faderBackground.fadeOutDuration + easing.type: faderBackground.fadeOutEasingType; + } + ScriptAction {script: { + faderBackground.parent = originalParent; + } + } + } + } + ] +} + + + diff --git a/mardrone/imports/com/nokia/meego/GroupButtonStyle.qml b/mardrone/imports/com/nokia/meego/GroupButtonStyle.qml new file mode 100644 index 0000000..52e90ed --- /dev/null +++ b/mardrone/imports/com/nokia/meego/GroupButtonStyle.qml @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +ButtonStyle { + // This style is deprecated and will be removed + Component.onCompleted: print("GroupButtonStyle has been deprecated, please use ButtonStyle instead.") +} diff --git a/mardrone/imports/com/nokia/meego/Label.qml b/mardrone/imports/com/nokia/meego/Label.qml new file mode 100644 index 0000000..f83312a --- /dev/null +++ b/mardrone/imports/com/nokia/meego/Label.qml @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Text { + id: root + + // Styling for the Button + property Style platformStyle: LabelStyle{} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + font.family: platformStyle.fontFamily + font.pixelSize: platformStyle.fontPixelSize + color: platformStyle.textColor + + wrapMode: Text.Wrap +} diff --git a/mardrone/imports/com/nokia/meego/LabelStyle.qml b/mardrone/imports/com/nokia/meego/LabelStyle.qml new file mode 100644 index 0000000..f11cf29 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/LabelStyle.qml @@ -0,0 +1,51 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + // Color + property color textColor: inverted? UI.COLOR_INVERTED_FOREGROUND : UI.COLOR_FOREGROUND + + // Font + property string fontFamily: UI.FONT_FAMILY + property int fontPixelSize: UI.FONT_DEFAULT_SIZE +} diff --git a/mardrone/imports/com/nokia/meego/Magnifier.js b/mardrone/imports/com/nokia/meego/Magnifier.js new file mode 100644 index 0000000..a262709 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/Magnifier.js @@ -0,0 +1,102 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +.pragma library + +Qt.include("Utils.js"); + +var popup = null; + +function init(item) +{ + if (popup != null) + return true; + + var root = findRootItem(item); + + // create root popup + var component = Qt.createComponent("Magnifier.qml"); + + // due the pragma we cannot access Component.Ready + if (component) + popup = component.createObject(root); + + return popup != null; +} + +/* + Open a shared magnifier for a given input item. + + input item will be used as a sourceItem for the shader + effect +*/ +function open(input) +{ + if (!input) + return false; + + if (!init(input)) + return false; + + popup.sourceItem = input; + popup.active = true; + return true; +} + +/* + Check if the shared magnifier is opened +*/ +function isOpened() +{ + return (popup && popup.active); +} + +/* + Close and destroy the magnifier. +*/ +function close() +{ + if (popup){ + popup.active = false; + popup.destroy(); + popup = null; + } +} + diff --git a/mardrone/imports/com/nokia/meego/Magnifier.qml b/mardrone/imports/com/nokia/meego/Magnifier.qml new file mode 100644 index 0000000..cacdaa6 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/Magnifier.qml @@ -0,0 +1,170 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Item { + id: root + + property alias sourceItem: effectSource.sourceItem + property real xCenter: 0 // in source item coordinates + property real yCenter: 0 // in source item coordinates + + // Source rect is not as small as it can be as there is drawing problems + // with small source rect/texture size. + property real _realScaleFactor: 1.25 + property real _sourceRectMultiplier: 2 + + property bool active: false + + visible: active + width: 182 + height: 211 + z: Number.MAX_VALUE + + function __rootElement() { + var ret = parent + while (ret.parent) { + ret = ret.parent + } + return ret + } + + Component.onCompleted: { + sourceItem = parent; + declarativeView.setFullViewportMode(root); + } + + ShaderEffectSource { + id: effectSource + sourceRect: Qt.rect(root.xCenter - textureSize.width / 2, + root.yCenter - textureSize.height / 2, + textureSize.width, + textureSize.height); + textureSize: Qt.size(root._sourceRectMultiplier * root.width, + root._sourceRectMultiplier * root.height); + + hideSource: false + smooth: true + + property real scaleFactor: root._sourceRectMultiplier * root._realScaleFactor + } + + Image { + id: magnifierFrameImage + source: "/usr/share/themes/blanco/meegotouch/images/theme/basement/meegotouch-virtual-keyboard/meegotouch-seattle-magnifier-frame.png" + } + + ShaderEffectSource { + id: magnifierFrame + sourceItem: magnifierFrameImage + hideSource: true + live: false + } + + Image { + id: magnifierMaskImage + source: "/usr/share/themes/blanco/meegotouch/images/theme/basement/meegotouch-virtual-keyboard/meegotouch-seattle-magnifier-frame-mask.png" + } + + ShaderEffectSource { + id: magnifierMask + sourceItem: magnifierMaskImage + hideSource: true + live: false + } + + ShaderEffectItem { + id: magnifier + anchors.fill:parent + visible: root.visible + + vertexShader: " + attribute highp vec4 qt_Vertex; + attribute highp vec2 qt_MultiTexCoord0; + uniform highp mat4 qt_ModelViewProjectionMatrix; + uniform highp float scaleFactor; + varying highp vec2 qt_TexCoord0; + varying highp vec2 qt_TexCoord1; + void main() { + qt_TexCoord0.x = 0.5 - 1. / (2. * scaleFactor) + qt_MultiTexCoord0.x / scaleFactor; + qt_TexCoord0.y = 0.5 - 1. / (2. * scaleFactor) + qt_MultiTexCoord0.y / scaleFactor; + qt_TexCoord1 = qt_MultiTexCoord0; + gl_Position = qt_ModelViewProjectionMatrix * qt_Vertex; + }"; + + fragmentShader: " + varying highp vec2 qt_TexCoord0; + varying highp vec2 qt_TexCoord1; + uniform lowp sampler2D source; + uniform lowp sampler2D frame; + uniform lowp sampler2D mask; + void main() { + lowp vec4 frame_c = texture2D(frame, qt_TexCoord1); + lowp vec4 mask_c = texture2D(mask, qt_TexCoord1); + lowp vec4 color_c = texture2D(source, qt_TexCoord0); + bool outsideElement=(qt_TexCoord0.s<0. || qt_TexCoord0.s>1. || qt_TexCoord0.t<0. || qt_TexCoord0.t>1.); + bool onGlass=(mask_c.a==1.); + + if (outsideElement) { + // make white outside the element + color_c=vec4(1.,1.,1.,1.); + } else if (onGlass) { + // blend premultiplied texture with pure white (background) + color_c = color_c + vec4(1.,1.,1.,1.) * (1.-color_c.a); + } + + if ( qt_TexCoord1.y >= 0.98 ) { + // Top part of item above visible magnifier frame is made + // transparent explicitly to prevent showing of wrongly + // colored pixels, which would otherwise appear sometimes + // when using sourceRect functionality. + gl_FragColor = vec4(0.,0.,0.,0.); + } else { + gl_FragColor = onGlass ? color_c : frame_c; + } + }"; + + property variant source: effectSource + property variant frame: magnifierFrame + property variant mask: magnifierMask + property real scaleFactor: effectSource.scaleFactor; + } +} diff --git a/mardrone/imports/com/nokia/meego/Menu.qml b/mardrone/imports/com/nokia/meego/Menu.qml new file mode 100644 index 0000000..97be478 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/Menu.qml @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +AbstractMenu { + id: root +/* + platformTitle: BorderImage { + id: topDivider + anchors.left: parent.left + anchors.right: parent.right + height: 2 + source: "" // "image://theme/meegotouch-button-objectmenu-background-vertical-top" + border { top: 2; bottom: 1; left: 1; right: 1 } + } +*/ + + __statesWrapper.transitions: [ + Transition { + from: "visible"; to: "hidden" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "hidden"; + root.status = DialogStatus.Closing; + } + } + + NumberAnimation {target: __menuPane; + property: screen.currentOrientation == Screen.Portrait ? "anchors.bottomMargin" : "anchors.rightMargin"; + easing.type: Easing.InOutQuint; + to: screen.currentOrientation == Screen.Portrait ? -__menuPane.height : -__menuPane.width; + from: 0; duration: 350} + + NumberAnimation {target: __menuPane; property: "opacity"; + from: 1.0; to: 0.0; duration: 0} + + ScriptAction {script: { + status = DialogStatus.Closed; + } + } + } + }, + Transition { + from: "hidden"; to: "visible" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "visible"; + root.status = DialogStatus.Opening; + __menuPane.anchors.rightMargin = 0; + __menuPane.anchors.bottomMargin = 0; + } + } + + NumberAnimation {target: __menuPane; + property: screen.currentOrientation == Screen.Portrait ? "anchors.bottomMargin" : "anchors.rightMargin"; + easing.type: Easing.InOutQuint; + from: screen.currentOrientation == Screen.Portrait ? -__menuPane.height : -__menuPane.width; + to: 0; duration: 350} + + ScriptAction {script: { + status = DialogStatus.Open; + } + } + } + } + ] +} diff --git a/mardrone/imports/com/nokia/meego/MenuItem.qml b/mardrone/imports/com/nokia/meego/MenuItem.qml new file mode 100644 index 0000000..8afe325 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/MenuItem.qml @@ -0,0 +1,118 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// MenuItem is a component that is used in menus. + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +Item { + id: root + + // Common API + property string text + signal clicked + property alias pressed: mouseArea.pressed + + // platformStyle API + property Style platformStyle: MenuItemStyle{ + position: root.parent.children.length == 1 ? "" + : root.parent.children[0] == root ? "vertical-top" + : root.parent.children[root.parent.children.length-1] == root ? "vertical-bottom" + : "vertical-center" + } + property alias style: root.platformStyle // Deprecated + + width: parent ? parent.width: 0 + height: ( root.platformStyle.height == 0 ) ? + root.platformStyle.topMargin + menuText.paintedHeight + root.platformStyle.bottomMargin : + root.platformStyle.topMargin + root.platformStyle.height + root.platformStyle.bottomMargin +/* + Rectangle { + id: backgroundRec + // ToDo: remove hardcoded values + color: pressed ? "darkgray" : "transparent" + anchors.fill : root + opacity : 0.5 + } +*/ + BorderImage { + id: backgroundImage + source: // !enabled ? root.platformStyle.disabledBackground : + pressed ? root.platformStyle.pressedBackground + : root.platformStyle.background + anchors.fill : root + border { left: 22; top: 22; + right: 22; bottom: 22 } + } + + Text { + id: menuText + text: parent.text + elide: Text.ElideRight + font.family : root.platformStyle.fontFamily + font.pixelSize : root.platformStyle.fontPixelSize + font.weight: root.platformStyle.fontWeight + color: !root.enabled ? root.platformStyle.disabledTextColor : + root.pressed ? root.platformStyle.pressedTextColor : + root.platformStyle.textColor + + anchors.topMargin : root.platformStyle.topMargin + anchors.bottomMargin : root.platformStyle.bottomMargin + anchors.leftMargin : root.platformStyle.leftMargin + anchors.rightMargin : root.platformStyle.rightMargin + + anchors.top : root.platformStyle.centered ? undefined : root.top + anchors.bottom : root.platformStyle.centered ? undefined : root.bottom + anchors.left : root.left + anchors.right : root.right +// anchors.centerIn : parent.centerIn + anchors.verticalCenter : root.platformStyle.centered ? parent.verticalCenter : undefined + } + + MouseArea { + id: mouseArea + anchors.fill: parent + onClicked: { if (parent.enabled) parent.clicked();} + } + + onClicked: if (parent) parent.closeLayout(); +} diff --git a/mardrone/imports/com/nokia/meego/MenuItemStyle.qml b/mardrone/imports/com/nokia/meego/MenuItemStyle.qml new file mode 100644 index 0000000..6e64788 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/MenuItemStyle.qml @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + id: root + // Font + property string fontFamily: UI.FONT_FAMILY + property int fontPixelSize: 26 // UI.FONT_DEFAULT_SIZE + property int fontCapitalization: Font.MixedCase + property int fontWeight: Font.Bold + property int height: 80 + + // Text Color + property color textColor: inverted ? UI.COLOR_BUTTON_INVERTED_FOREGROUND : UI.COLOR_BUTTON_FOREGROUND + property color pressedTextColor: inverted ? UI.COLOR_BUTTON_INVERTED_FOREGROUND : UI.COLOR_BUTTON_FOREGROUND + property color disabledTextColor: "#797979" + property color checkedTextColor: UI.COLOR_INVERTED_FOREGROUND + + property real leftMargin: 24 + property real rightMargin: 24 + property real topMargin: 0 + property real bottomMargin: 0 + property bool centered: true + + property string position: "" + + property url background: "image://theme/meegotouch-list" + __invertedString + "-background" + (position ? "-" + position : "") + property url pressedBackground: "image://theme/meegotouch-list" + __invertedString + "-background-pressed" + (position ? "-" + position : "") +// TODO: Add disabled state once the graphics are available +// property url disabledBackground: "image://theme/meegotouch-list" + __invertedString + "-background-disabled" + (position ? "-" + position : "") +} diff --git a/mardrone/imports/com/nokia/meego/MenuLayout.qml b/mardrone/imports/com/nokia/meego/MenuLayout.qml new file mode 100644 index 0000000..5731014 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/MenuLayout.qml @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." + +Item { + id: root + anchors.left: parent!==undefined?parent.left:undefined + anchors.right: parent!==undefined?parent.right:undefined + height: menuItemColumn.height + + default property alias menuChildren: menuItemColumn.children + + Column { + id: menuItemColumn + + anchors.left: parent.left + anchors.right: parent.right + height: childrenRect.height + + function closeLayout() { + root.parent.closeMenu(); + } + } +} diff --git a/mardrone/imports/com/nokia/meego/MenuStyle.qml b/mardrone/imports/com/nokia/meego/MenuStyle.qml new file mode 100644 index 0000000..8e95483 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/MenuStyle.qml @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.1 + +Style { + id: root + + property real leftMargin: ( (screen.currentOrientation == 1) || + (screen.currentOrientation == 4) ) ? 0 : 427 + property real rightMargin: ( (screen.currentOrientation == 1) || + (screen.currentOrientation == 4) ) ? 0 : 0 + property real topMargin: ( (screen.currentOrientation == 1) || + (screen.currentOrientation == 4) ) ? 246 : 0 + + property real bottomMargin: 0 + + property real leftPadding: 16 + property real rightPadding: 16 + property real topPadding: 16 + property real bottomPadding: 16 + + // fader properties + property double dim: 0.9 + property int fadeInDuration: 350 // ms + property int fadeOutDuration: 350 // ms + property int fadeInDelay: 0 // ms + property int fadeOutDelay: 0 // ms + property int fadeInEasingType: Easing.InOutQuint + property int fadeOutEasingType: Easing.InOutQuint + property url faderBackground: "image://theme/meegotouch-menu-dimmer" + + property int pressDelay: 0 // ms + + property url background: "image://theme/meegotouch-menu-background" + __invertedString +// property url pressedBackground: "image://theme/meegotouch-menu" + __invertedString + "-background-pressed" +// property url disabledBackground: "image://theme/meegotouch-menu" + __invertedString + "-background-disabled" +} diff --git a/mardrone/imports/com/nokia/meego/MouseAreaDebug.qml b/mardrone/imports/com/nokia/meego/MouseAreaDebug.qml new file mode 100644 index 0000000..912b6d0 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/MouseAreaDebug.qml @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Rectangle { + color: "#FCBD00" + opacity: 0.5 + anchors { + fill: parent + topMargin: parent.platformMouseAnchors.topMargin + bottomMargin: parent.platformMouseAnchors.bottomMargin + leftMargin: parent.platformMouseAnchors.leftMargin + rightMargin: parent.platformMouseAnchors.rightMargin + } +} diff --git a/mardrone/imports/com/nokia/meego/MultiSelectionDialog.js b/mardrone/imports/com/nokia/meego/MultiSelectionDialog.js new file mode 100644 index 0000000..efcad73 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/MultiSelectionDialog.js @@ -0,0 +1,114 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +function __isSelected( index ){ + return __selectedIndexesHash[index]==true; +} + +function __syncHash(){ + var selectedIndexesHash = new Array() + var il = selectedIndexes.length; + for( var it = 0; it < il; ++it ){ + selectedIndexesHash[selectedIndexes[it]]=true; + } + __selectedIndexesHash = selectedIndexesHash +} + +function __toggleIndex( index ){ + // A QML list can not be modified, so let's create a new array + var selectedArray = new Array; + + var il = selectedIndexes.length; + + // If selectedIndexes is empty then add the index and return. + if ( il == 0 ){ + selectedArray.push(index); + selectedIndexes = selectedArray; + return; + } + + // Check whether the list is sorted. + var isSorted = true; + var previousIndex = -1; + + for( var it = 0; it < il; ++it ){ + if ( previousIndex > selectedIndexes[it] ){ + isSorted = false; + break; + } + previousIndex = selectedIndexes[it]; + } + + if (!isSorted){ + // For unsorted selectedIndexes just append the index if it's not present yet. + var indexAvailable = false; + for( var it = 0; it < il; ++it ) { + if ( index == selectedIndexes[it] ){ + indexAvailable = true; + } + else { + selectedArray.push(selectedIndexes[it]); + } + } + if (!indexAvailable){ + selectedArray.push(index); + } + } + else{ + previousIndex = -1; + // insert the index in a sorted way in between the existing indexes + for( var it = 0; it < il; ++it ) { + if ( previousIndex < index && index < selectedIndexes[it] ) { + selectedArray.push(index); + } + if ( index != selectedIndexes[it] ) { + selectedArray.push(selectedIndexes[it]); + } + + previousIndex = selectedIndexes[it]; + } + // If the index is the highest one append it + if (index > selectedIndexes[selectedIndexes.length - 1]){ + selectedArray.push(index); + } + } + // Assign the new built array to selectedIndexes + selectedIndexes = selectedArray; +} diff --git a/mardrone/imports/com/nokia/meego/MultiSelectionDialog.qml b/mardrone/imports/com/nokia/meego/MultiSelectionDialog.qml new file mode 100644 index 0000000..827a8b0 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/MultiSelectionDialog.qml @@ -0,0 +1,233 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI +import "MultiSelectionDialog.js" as MultiSelectionDialog + +CommonDialog { + id: root + + property alias model: selectionListView.model + // Common API: property list selectedIndexes (currently not possible due to QTBUG-10822) + property variant selectedIndexes: [] // read & write, variant is supposed to be list + property alias acceptButtonText: acceptButton.text //Convenience wrapper on top of the buttons + property alias rejectButtonText: rejectButton.text //Convenience wrapper on top of the buttons + //property alias titleText: titleLabel.text + + property Component delegate: // Note that this is the default delegate for the list + Component { + id: defaultDelegate + + Item { + id: delegateItem + + height: root.platformStyle.itemHeight + anchors.left: parent.left + anchors.right: parent.right + + MouseArea { + id: delegateMouseArea + anchors.fill: parent; + onPressed: MultiSelectionDialog.__toggleIndex(index); + } + + Rectangle { + id: backgroundRect + anchors.fill: parent + color: MultiSelectionDialog.__isSelected(index) ? root.platformStyle.itemSelectedBackgroundColor : root.platformStyle.itemBackgroundColor + } + + BorderImage { + id: background + anchors.fill: parent + border { left: UI.CORNER_MARGINS; top: UI.CORNER_MARGINS; right: UI.CORNER_MARGINS; bottom: UI.CORNER_MARGINS } + source: delegateMouseArea.pressed ? root.platformStyle.itemPressedBackground : + MultiSelectionDialog.__isSelected(index) ? root.platformStyle.itemSelectedBackground : + root.platformStyle.itemBackground + } + + Text { + id: itemText + elide: Text.ElideRight + color: MultiSelectionDialog.__isSelected(index) ? root.platformStyle.itemSelectedTextColor : root.platformStyle.itemTextColor + anchors.verticalCenter: delegateItem.verticalCenter + anchors.left: parent.left + anchors.right: parent.right + anchors.leftMargin: root.platformStyle.itemLeftMargin + anchors.rightMargin: root.platformStyle.itemRightMargin + font: root.platformStyle.itemFont + } + Component.onCompleted: { + try { + // Legacy. "name" used to be the role which was used by delegate + itemText.text = name + } catch(err) { + try { + // "modelData" available for JS array and for models with one role + itemText.text = modelData + } catch (err) { + try { + // C++ models have "display" role available always + itemText.text = display + } catch(err) { + } + } + } + } + } + } + + // Style API + property Style platformStyle: SelectionDialogStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + // private api + property int __pressDelay: platformStyle.pressDelay + property variant __selectedIndexesHash: [] + + QtObject { + id: backup + property variant oldSelectedIndexes: [] + } + onStatusChanged: { + if (status == DialogStatus.Opening) { + selectionListView.positionViewAtIndex(selectedIndexes[0], ListView.Center) + } + if (status == DialogStatus.Open) + backup.oldSelectedIndexes = selectedIndexes + } + onRejected: { selectedIndexes = backup.oldSelectedIndexes } + + onSelectedIndexesChanged: { + MultiSelectionDialog.__syncHash(); + } + + // the title field consists of the following parts: title string and + // a close button (which is in fact an image) + // it can additionally have an icon + titleText: "Multi-Selection Dialog" + + // the content field which contains the selection content + content: Item { + + id: selectionContent + property int listViewHeight + property int maxListViewHeight : visualParent + ? visualParent.height * 0.87 + - buttonRow.childrenRect.height - root.platformStyle.contentSpacing - root.platformStyle.buttonsTopMargin + - root.platformStyle.titleBarHeight + : root.parent + ? root.parent.height * 0.87 + - buttonRow.childrenRect.height - root.platformStyle.contentSpacing - root.platformStyle.buttonsTopMargin + - root.platformStyle.titleBarHeight + : 350 + height: listViewHeight > maxListViewHeight ? maxListViewHeight : listViewHeight + width: root.width + y : root.platformStyle.contentSpacing + + ListView { + id: selectionListView + model: ListModel {} + + currentIndex : -1 + anchors.fill: parent + delegate: root.delegate + focus: true + clip: true + pressDelay: __pressDelay + + ScrollDecorator { + id: scrollDecorator + flickableItem: selectionListView + platformStyle.inverted: true + } + onModelChanged: selectionContent.listViewHeight = model.count * platformStyle.itemHeight + } + + } + + buttons: Item { + id: buttonRowFiller + width: parent.width + height: childrenRect.height //+ root.platformStyle.buttonsTopMargin + y: root.platformStyle.buttonsTopMargin + + onWidthChanged: { + if (acceptButton.width + rejectButton.width > width) { + acceptButton.width = width / 2 + rejectButton.width = width / 2 + } else { + acceptButton.width = acceptButton.implicitWidth + rejectButton.width = rejectButton.implicitWidth + } + } + + Row { + id: buttonRow + height: childrenRect.height + anchors.horizontalCenter: parent.horizontalCenter + Button { + id: acceptButton + height: implicitHeight + objectName: "acceptButton" + text: "" + onClicked: accept() + visible: text != "" + __dialogButton: true + platformStyle: ButtonStyle {inverted: true} + } + Button { + id: rejectButton + height: implicitHeight + objectName: "rejectButton" + text: "" + onClicked: reject() + visible: text != "" + __dialogButton: true + platformStyle: ButtonStyle {inverted: true} + } + } + } +} + diff --git a/mardrone/imports/com/nokia/meego/NotificationBanner.qml b/mardrone/imports/com/nokia/meego/NotificationBanner.qml new file mode 100644 index 0000000..1801fbb --- /dev/null +++ b/mardrone/imports/com/nokia/meego/NotificationBanner.qml @@ -0,0 +1,255 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +//import com.nokia.meego 1.0 + +/* + Class: InfoBanner + The InfoBanner component is used to display information to the user. The number of lines of text + shouldn't exceed 3. +*/ + +Item { + id: root + + /* + * Property: iconSource + * [url] The path to the icon image + */ + property url iconSource: "" + + /* + * Property: text + * [string] Text to be displayed in InfoBanner + */ + property alias text: text.text + + /* + * Property: timerEnabled + * [bool=true] Enable/disable timer that dismisses InfoBanner + */ + property bool timerEnabled: true + + /* + * Property: timerShowTime + * [int=3000ms] For setting how long InfoBanner stays visible to user before being dismissed + */ + property alias timerShowTime: sysBannerTimer.interval + + /* + * Property: topMargin + * [int=8 pix] Allows user to customize top margin if needed + */ + property alias topMargin: root.y + + /* + * Property: leftMargin + * [int=8 pix] Allows user to customize left margin if needed + */ + property alias leftMargin: root.x + + /* + * Function: show + * Show InfoBanner + */ + function show() { + parent = __findParent(); + animationShow.running = true; + if (root.timerEnabled) + sysBannerTimer.restart(); + } + + function __findParent() { + var next = parent; + while (next && next.parent && next.objectName != "appWindowContent") { + next = next.parent; + } + return next; + } + + /* + * Function: hide + * Hide InfoBanner + */ + function hide() { + animationHide.running = true; + } + + implicitHeight: internal.getBannerHeight() + implicitWidth: internal.getBannerWidth() + x:8; y:8 + scale: 0 + + BorderImage { + source: "image://theme/meegotouch-notification-system-background" + anchors.fill: root + horizontalTileMode: BorderImage.Stretch + verticalTileMode: BorderImage.Stretch + border { left: 10; top: 10; right: 10; bottom: 10 } + opacity: 1 + } + + Image { + id: image + anchors { left: parent.left; leftMargin: 16; top: parent.top; topMargin: 16 } + source: root.iconSource + visible: root.iconSource != "" + } + + Text { + id: text + width: internal.getTextWidth() + anchors { left: (image.visible ? image.right : parent.left); leftMargin: (image.visible ? 14:16); + top: parent.top; topMargin: internal.getTopMargin(); bottom: parent.bottom } + color: "white" + wrapMode: Text.Wrap + verticalAlignment: Text.AlignHCenter + font.pixelSize: 24 + font.family: "Nokia Pure" + font.letterSpacing: -1.2 + maximumLineCount: 3 + elide: Text.ElideRight + } + + QtObject { + id: internal + + function getBannerHeight() { + if (image.visible) { + if (text.lineCount <= 2) + return 80; + else + return 80; //106 + } else { + if (text.lineCount <= 1) + return 80; //64 + else if (text.lineCount <= 2) + return 80; + else + return 80; //106 + } + } + + function getBannerWidth() { + if ( screen.currentOrientation==Screen.Portrait || screen.currentOrientation==Screen.PortraitInverted ) { + // In portrait mode, the width of the banner is equal to the width of parent minus left + // and right margins in-between banner and parent. + return parent.width-root.x*2; + } else { + if (image.visible) { + // If an icon image is specified... + if ((image.width+text.paintedWidth+46) <= parent.width*0.54 && text.lineCount <= 1) { + // 46 is the sum of all horizontal margins within the banner. The above condition basically + // says that if there's only one line of text, and the sum of width of icon, text, and required + // margins is less then 54% of the screen width, banner width should be 54% of the screen. + return parent.width*0.54; + } else { + return parent.width-root.x*2; + } + } else { + // If no icon image specified... + if ((text.paintedWidth+32) <= parent.width*0.54 && text.lineCount <= 1) { + // 32 is the sum of all horizontal margins within the banner. The above condition basically + // says that if there's only one line of text, and the sum of width of text and required + // margins is less then 54% of the screen width, banner width should be 54% of the screen. + return parent.width-root.x*2; + } else { + return parent.width-root.x*2; + } + } + } + } + + function getTopMargin() { + if (text.lineCount <= 1 && !image.visible) { + // If there's only one line of text and no icon image, top and bottom margins are equal. + return (root.height-text.paintedHeight)/2; + } else { + // In all other cases, top margin is 4 px more than bottom margin. + return (root.height-text.paintedHeight)/2 + 2; + } + } + + function getTextWidth() { + // 46(32 when there's no icon) is sum of all margins within banner. root.x*2 is sum of margins outside banner. + // Text element width is dertermined by substracting parent width(screen width) by all the margins and + // icon width(if applicable). + return image.visible ? (parent.width-root.x*2-46-image.width) : (parent.width-root.x*2-32); + } + + function getScaleValue() { + // When banner is displayed, as part of transition effect, it'll first be enlarged to the point where its width + // is equal to screen width. root.x*2/root.width calculates the amount of expanding required, where root.x*2 is + // equal to screen.displayWidth minus banner.width + return root.x*2/root.width + 1; + } + } + + Timer { + id: sysBannerTimer + repeat: false + running: false + interval: 3000 + onTriggered: hide() + } + + MouseArea { + anchors.fill: parent + onClicked: hide() + } + + SequentialAnimation { + id: animationShow + NumberAnimation { target: root; property: "scale"; from: 0; to: internal.getScaleValue(); duration: 200; easing.type: Easing.OutQuad} + NumberAnimation { target: root; property: "scale"; from: internal.getScaleValue(); to: 1; duration: 200 } + } + + NumberAnimation { + id: animationHide + target: root; property: "scale"; to: 0; duration: 200; easing.type: Easing.InExpo + } + + Component.onCompleted: { + //__owner = parent; + } +} + diff --git a/mardrone/imports/com/nokia/meego/Page.qml b/mardrone/imports/com/nokia/meego/Page.qml new file mode 100644 index 0000000..152089c --- /dev/null +++ b/mardrone/imports/com/nokia/meego/Page.qml @@ -0,0 +1,124 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// The Page item is intended for use as a root item in QML items that make +// up pages to use with the PageStack. + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +Item { + id: root + + visible: false + + // Note we do not use anchor fill here because it will force us to relayout + // hidden children when rotating the screen as well + width: visible && parent ? parent.width - anchors.leftMargin - anchors.rightMargin : __prevWidth + height: visible && parent ? parent.height - anchors.topMargin - anchors.bottomMargin : __prevHeight + x: parent ? anchors.leftMargin : 0 + y: parent ? anchors.topMargin : 0 + + onWidthChanged: __prevWidth = visible ? width : __prevWidth + onHeightChanged: __prevHeight = visible ? height : __prevHeight + + property int __prevWidth: 0 + property int __prevHeight: 0 + + property bool __isPage: true + + anchors.margins: 0 // Page margins should generally be 16 pixels as defined by UI.MARGIN_XLARGE + + // The status of the page. One of the following: + // PageStatus.Inactive - the page is not visible + // PageStatus.Activating - the page is transitioning into becoming the active page + // PageStatus.Active - the page is the current active page + // PageStatus.Deactivating - the page is transitioning into becoming inactive + property int status: PageStatus.Inactive + + // Defines the tools for the page; null for none. + property Item tools: null + + // The page stack that the page is in. + property PageStack pageStack + + // Defines if page is locked in landscape. + property bool lockInLandscape: false // Deprecated + onLockInLandscapeChanged: console.log("warning: Page.lockInLandscape is deprecated, use Page.orientationLock") + + // Defines if page is locked in portrait. + property bool lockInPortrait: false // Deprecated + onLockInPortraitChanged: console.log("warning: Page.lockInPortrait is deprecated, use Page.orientationLock") + + // Defines orientation lock for a page + property int orientationLock: PageOrientation.Automatic + + onStatusChanged: { + if (status == PageStatus.Activating) { + __updateOrientationLock() + } + } + + onOrientationLockChanged: { + __updateOrientationLock() + } + + function __updateOrientationLock() { + switch (orientationLock) { + case PageOrientation.Automatic: + screen.setAllowedOrientations(Screen.Portrait | Screen.Landscape); + break + case PageOrientation.LockPortrait: + screen.setAllowedOrientations(Screen.Portrait); + break + case PageOrientation.LockLandscape: + screen.setAllowedOrientations(Screen.Landscape); + break + case PageOrientation.LockPrevious: + // Allowed orientation should be changed to current + // if previously it was locked, it will remain locked + // if previously it was not locked, it will be locked to current + screen.setAllowedOrientations(screen.currentOrientation); + break + } + } +} + diff --git a/mardrone/imports/com/nokia/meego/PageStack.js b/mardrone/imports/com/nokia/meego/PageStack.js new file mode 100644 index 0000000..3b560dc --- /dev/null +++ b/mardrone/imports/com/nokia/meego/PageStack.js @@ -0,0 +1,219 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// Page stack. Items are page containers. +var pageStack = []; + +// Page component cache map. Key is page url, value is page component. +var componentCache = {}; + +// Returns the page stack depth. +function getDepth() { + return pageStack.length; +} + +// Pushes a page on the stack. +function push(page, properties, replace, immediate) { + // page order sanity check + if ((!replace && page == currentPage) || + (replace && pageStack.length > 1 && page == pageStack[pageStack.length - 2].page)) { + throw new Error("Cannot navigate so that the resulting page stack has two consecutive entries of the same page instance."); + } + + // figure out if more than one page is being pushed + var pages; + if (page instanceof Array) { + pages = page; + page = pages.pop(); + if (page.createObject === undefined && page.parent === undefined && typeof page != "string") { + properties = properties || page.properties; + page = page.page; + } + } + + // get the current container + var oldContainer = pageStack[pageStack.length - 1]; + + // pop the old container off the stack if this is a replace + if (oldContainer && replace) { + pageStack.pop(); + } + + // push any extra defined pages onto the stack + if (pages) { + var i; + for (i = 0; i < pages.length; i++) { + var tPage = pages[i]; + var tProps; + if (tPage.createObject === undefined && tPage.parent === undefined && typeof tPage != "string") { + tProps = tPage.properties; + tPage = tPage.page; + } + pageStack.push(initPage(tPage, tProps)); + } + } + + // initialize the page + var container = initPage(page, properties); + + // push the page container onto the stack + pageStack.push(container); + + depth = pageStack.length; + currentPage = container.page; + + // perform page transition + immediate = immediate || !oldContainer; + if (oldContainer) { + oldContainer.pushExit(replace, immediate); + } + container.pushEnter(replace, immediate); + + // sync tool bar + var tools = container.page.tools || null; + if (toolBar) { + toolBar.setTools(tools, immediate ? "set" : replace ? "replace" : "push"); + } + + return container.page; +} + +// Initializes a page and its container. +function initPage(page, properties) { + var container = containerComponent.createObject(root); + + var pageComp; + if (page.createObject) { + // page defined as component + pageComp = page; + } else if (typeof page == "string") { + // page defined as string (a url) + pageComp = componentCache[page]; + if (!pageComp) { + pageComp = componentCache[page] = Qt.createComponent(page); + } + } + if (pageComp) { + if (pageComp.status == Component.Error) { + throw new Error("Error while loading page: " + pageComp.errorString()); + } else { + // instantiate page from component + page = pageComp.createObject(container, properties || {}); + } + } else { + // copy properties to the page + for (var prop in properties) { + if (properties.hasOwnProperty(prop)) { + page[prop] = properties[prop]; + } + } + } + + container.page = page; + container.owner = page.parent; + + // the page has to be reparented if + if (page.parent != container) { + page.parent = container; + } + + if (page.pageStack !== undefined) { + page.pageStack = root; + } + + return container; +} + +// Pops a page off the stack. +function pop(page, immediate) { + // make sure there are enough pages in the stack to pop + if (pageStack.length > 1) { + // pop the current container off the stack and get the next container + var oldContainer = pageStack.pop(); + var container = pageStack[pageStack.length - 1]; + if (page !== undefined) { + // an unwind target has been specified - pop until we find it + while (page != container.page && pageStack.length > 1) { + container.cleanup(); + pageStack.pop(); + container = pageStack[pageStack.length - 1]; + } + } + + depth = pageStack.length; + currentPage = container.page; + + // perform page transition + oldContainer.popExit(immediate); + container.popEnter(immediate); + + // sync tool bar + var tools = container.page.tools || null; + if (toolBar) { + toolBar.setTools(tools, immediate ? "set" : "pop"); + } + + return oldContainer.page; + } else { + return null; + } +} + +// Clears the page stack. +function clear() { + var container; + while (container = pageStack.pop()) { + container.cleanup(); + } + depth = 0; + currentPage = null; +} + +// Iterates through all pages in the stack (top to bottom) to find a page. +function find(func) { + for (var i = pageStack.length - 1; i >= 0; i--) { + var page = pageStack[i].page; + if (func(page)) { + return page; + } + } + return null; +} + diff --git a/mardrone/imports/com/nokia/meego/PageStack.qml b/mardrone/imports/com/nokia/meego/PageStack.qml new file mode 100644 index 0000000..97d45f2 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/PageStack.qml @@ -0,0 +1,324 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// The PageStack item defines a container for pages and a stack-based +// navigation model. Pages can be defined as QML items or components. + +import QtQuick 1.1 +import "." 1.0 +import "PageStack.js" as Engine + +Item { + id: root + + width: parent ? parent.width : 0 + height: parent ? parent.height : 0 + + // Page stack depth. + property int depth: Engine.getDepth() + + // The currently active page. + property Item currentPage: null + + // The application tool bar. + property ToolBar toolBar + + // Indicates whether there is an ongoing page transition. + property bool busy: __ongoingTransitionCount > 0 + + // The number of ongoing transitions. + property int __ongoingTransitionCount: 0 + + // Pushes a page on the stack. + // The page can be defined as a component, item or string. + // If an item is used then the page will get re-parented. + // If a string is used then it is interpreted as a url that is used to load a page component. + // + // The page can also be given as an array of pages. In this case all those pages will be pushed + // onto the stack. The items in the stack can be components, items or strings just like for single + // pages. Additionally an object can be used, which specifies a page and an optional properties + // property. This can be used to push multiple pages while still giving each of them properties. + // When an array is used the transition animation will only be to the last page. + // + // The properties argument is optional and allows defining a map of properties to set on the page. + // If the immediate argument is true then no transition animation is performed. + // Returns the page instance. + function push(page, properties, immediate) { + return Engine.push(page, properties, false, immediate); + } + + // Pops a page off the stack. + // If page is specified then the stack is unwound to that page; null to unwind the to first page. + // If the immediate argument is true then no transition animation is performed. + // Returns the page instance that was popped off the stack. + function pop(page, immediate) { + return Engine.pop(page, immediate); + } + + // Replaces a page on the stack. + // See push() for details. + function replace(page, properties, immediate) { + return Engine.push(page, properties, true, immediate); + } + + // Clears the page stack. + function clear() { + return Engine.clear(); + } + + // Iterates through all pages (top to bottom) and invokes the specified function. + // If the specified function returns true the search stops and the find function + // returns the page that the iteration stopped at. If the search doesn't result + // in any page being found then null is returned. + function find(func) { + return Engine.find(func); + } + + // Called when the page stack visibility changes. + onVisibleChanged: { + if (currentPage) { + __setPageStatus(currentPage, visible ? PageStatus.Active : PageStatus.Inactive); + if (visible) { + currentPage.visible = currentPage.parent.visible = true; + } + } + } + + // Sets the page status. + function __setPageStatus(page, status) { + if (page.status !== undefined) { + if (status == PageStatus.Active && page.status == PageStatus.Inactive) { + page.status = PageStatus.Activating; + } else if (status == PageStatus.Inactive && page.status == PageStatus.Active) { + page.status = PageStatus.Deactivating; + } + page.status = status; + } + } + + // Component for page containers. + Component { + id: containerComponent + + Item { + id: container + + width: parent ? parent.width : 0 + height: parent ? parent.height : 0 + + // The states correspond to the different possible positions of the container. + state: "hidden" + + // The page held by this container. + property Item page: null + + // The owner of the page. + property Item owner: null + + // Duration of transition animation (in ms) + property int transitionDuration: 500 + + // Flag that indicates the container should be cleaned up after the transition has ended. + property bool cleanupAfterTransition: false + + // Performs a push enter transition. + function pushEnter(replace, immediate) { + if (!immediate) { + state = replace ? "front" : "right"; + } + state = ""; + page.visible = true; + if (root.visible && immediate) { + __setPageStatus(page, PageStatus.Active); + } + } + + // Performs a push exit transition. + function pushExit(replace, immediate) { + state = immediate ? "hidden" : (replace ? "back" : "left"); + if (root.visible && immediate) { + __setPageStatus(page, PageStatus.Inactive); + } + if (replace) { + if (immediate) { + cleanup(); + } else { + cleanupAfterTransition = true; + } + } + } + + // Performs a pop enter transition. + function popEnter(immediate) { + if (!immediate) { + state = "left"; + } + state = ""; + page.visible = true; + if (root.visible && immediate) { + __setPageStatus(page, PageStatus.Active); + } + } + + // Performs a pop exit transition. + function popExit(immediate) { + state = immediate ? "hidden" : "right"; + if (root.visible && immediate) { + __setPageStatus(page, PageStatus.Inactive); + } + if (immediate) { + cleanup(); + } else { + cleanupAfterTransition = true; + } + } + + // Called when a transition has started. + function transitionStarted() { + __ongoingTransitionCount++; + if (root.visible) { + __setPageStatus(page, (state == "") ? PageStatus.Activating : PageStatus.Deactivating); + } + } + + // Called when a transition has ended. + function transitionEnded() { + if (state != "") { + state = "hidden"; + } + if (root.visible) { + __setPageStatus(page, (state == "") ? PageStatus.Active : PageStatus.Inactive); + } + __ongoingTransitionCount--; + if (cleanupAfterTransition) { + cleanup(); + } + } + + states: [ + // Explicit properties for default state. + State { + name: "" + PropertyChanges { target: container; visible: true } + }, + // Start state for pop entry, end state for push exit. + State { + name: "left" + PropertyChanges { target: container; x: -width } + }, + // Start state for push entry, end state for pop exit. + State { + name: "right" + PropertyChanges { target: container; x: width } + }, + // Start state for replace entry. + State { + name: "front" + PropertyChanges { target: container; scale: 1.5; opacity: 0.0 } + }, + // End state for replace exit. + State { + name: "back" + PropertyChanges { target: container; scale: 0.5; opacity: 0.0 } + }, + // Inactive state. + State { + name: "hidden" + PropertyChanges { target: container; visible: false } + } + ] + + transitions: [ + // Pop entry and push exit transition. + Transition { + from: ""; to: "left"; reversible: true + SequentialAnimation { + ScriptAction { script: if (state == "left") { transitionStarted(); } else { transitionEnded(); } } + PropertyAnimation { properties: "x"; easing.type: Easing.InOutExpo; duration: transitionDuration } + ScriptAction { script: if (state == "left") { transitionEnded(); } else { transitionStarted(); } } + } + }, + // Push entry and pop exit transition. + Transition { + from: ""; to: "right"; reversible: true + SequentialAnimation { + ScriptAction { script: if (state == "right") { transitionStarted(); } else { transitionEnded(); } } + PropertyAnimation { properties: "x"; easing.type: Easing.InOutExpo; duration: transitionDuration } + ScriptAction { script: if (state == "right") { transitionEnded(); } else { transitionStarted(); } } + } + }, + // Replace entry transition. + Transition { + from: "front"; to: ""; + SequentialAnimation { + ScriptAction { script: transitionStarted(); } + PropertyAnimation { properties: "scale,opacity"; easing.type: Easing.InOutExpo; duration: transitionDuration } + ScriptAction { script: transitionEnded(); } + } + }, + // Replace exit transition. + Transition { + from: ""; to: "back"; + SequentialAnimation { + ScriptAction { script: transitionStarted(); } + PropertyAnimation { properties: "scale,opacity"; easing.type: Easing.InOutExpo; duration: transitionDuration } + ScriptAction { script: transitionEnded(); } + } + } + ] + + // Cleans up the container and then destroys it. + function cleanup() { + if (page.status == PageStatus.Active) { + __setPageStatus(page, PageStatus.Inactive); + } + if (owner != container) { + // container is not the owner of the page - re-parent back to original owner + page.visible = false; + page.parent = owner; + } + container.destroy(); + } + + } + } + +} + diff --git a/mardrone/imports/com/nokia/meego/PageStackWindow.qml b/mardrone/imports/com/nokia/meego/PageStackWindow.qml new file mode 100644 index 0000000..b207560 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/PageStackWindow.qml @@ -0,0 +1,158 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.0 +import "." 1.0 + +Window { + id: window + + property bool showStatusBar: true + property bool showToolBar: true + property bool toolBarOnTop: false + property variant initialPage + property alias pageStack: stack + property Style platformStyle: PageStackWindowStyle{} + + //Deprecated, TODO Remove this on w13 + property alias style: window.platformStyle + + //private api + property int __statusBarHeight: showStatusBar ? statusBar.height : 0 + + objectName: "pageStackWindow" + + StatusBar { + id: statusBar + anchors.top: parent.top + width: parent.width + showStatusBar: window.showStatusBar + } + + onOrientationChangeStarted: { + statusBar.orientation = screen.currentOrientation + } + + Rectangle { + id: background + visible: platformStyle.background == "" + color: platformStyle.backgroundColor + width: window.inPortrait ? screen.displayHeight : screen.displayWidth + height: window.inPortrait ? screen.displayWidth : screen.displayHeight + anchors { top: statusBar.bottom; left: parent.left; } + } + + Image { + id: backgroundImage + visible: platformStyle.background != "" + source: window.inPortrait ? platformStyle.portraitBackground : platformStyle.landscapeBackground + fillMode: platformStyle.backgroundFillMode + width: window.inPortrait ? screen.displayHeight : screen.displayWidth + height: window.inPortrait ? screen.displayWidth : screen.displayHeight + anchors { top: statusBar.bottom; left: parent.left; } + } + + Item { + objectName: "appWindowContent" + width: parent.width + anchors.top: statusBar.bottom + anchors.bottom: parent.bottom + + // content area + Item { + id: contentArea + anchors { top: parent.top; left: parent.left; right: parent.right; bottom: parent.bottom; } + anchors.bottomMargin: !toolBarOnTop && (toolBar.visible || (toolBar.opacity==1))? toolBar.height : 0 + anchors.topMargin: toolBarOnTop && (toolBar.visible || (toolBar.opacity==1))? toolBar.height : 0 + PageStack { + id: stack + anchors.fill: parent + toolBar: toolBar + } + } + + Item { + id: roundedCorners + visible: platformStyle.cornersVisible + anchors.fill: parent + z: 10001 + + Image { + anchors.top : parent.top + anchors.left: parent.left + source: "image://theme/meegotouch-applicationwindow-corner-top-left" + } + Image { + anchors.top: parent.top + anchors.right: parent.right + source: "image://theme/meegotouch-applicationwindow-corner-top-right" + } + Image { + anchors.bottom : parent.bottom + anchors.left: parent.left + source: "image://theme/meegotouch-applicationwindow-corner-bottom-left" + } + Image { + anchors.bottom : parent.bottom + anchors.right: parent.right + source: "image://theme/meegotouch-applicationwindow-corner-bottom-right" + } + } + + ToolBar { + id: toolBar + anchors.top: toolBarOnTop ? parent.top: undefined + anchors.bottom: !toolBarOnTop ? parent.bottom: undefined + privateVisibility: (inputContext.softwareInputPanelVisible==true || inputContext.customSoftwareInputPanelVisible == true) + ? ToolBarVisibility.HiddenImmediately : (window.showToolBar ? ToolBarVisibility.Visible : ToolBarVisibility.Hidden) + } + } + + // event preventer when page transition is active + MouseArea { + anchors.fill: parent + enabled: pageStack.busy + } + + Component.onCompleted: { + if (initialPage) pageStack.push(initialPage); + } + +} diff --git a/mardrone/imports/com/nokia/meego/PageStackWindowStyle.qml b/mardrone/imports/com/nokia/meego/PageStackWindowStyle.qml new file mode 100644 index 0000000..da9da45 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/PageStackWindowStyle.qml @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Style { + property bool cornersVisible: true + + // Background + property url background: "" + + // Background color is used when no background is set. + property color backgroundColor: theme.inverted ? "#000000" : "#E0E1E2" + + property url landscapeBackground: background + property url portraitBackground: background + property url portraiteBackground: background + + property int backgroundFillMode: Image.Tile +} diff --git a/mardrone/imports/com/nokia/meego/Popup.qml b/mardrone/imports/com/nokia/meego/Popup.qml new file mode 100644 index 0000000..0996a84 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/Popup.qml @@ -0,0 +1,124 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + + // api + property alias visualParent: fader.visualParent + + // possible states: Opening, Open, Closing, Closed + // Opening and Closing are used during animation (when the dialog fades/moves/pops/whatever in) + property int status: DialogStatus.Closed + + // private api + property double __dim: 0.9 + property int __fadeInDuration + property int __fadeOutDuration + property int __fadeInDelay + property int __fadeOutDelay + property int __fadeInEasingType + property int __fadeOutEasingType + property string __faderBackground + + function open() { + if (status == DialogStatus.Closed) + status = DialogStatus.Opening; + } + + function close() { + if (status == DialogStatus.Open) + status = DialogStatus.Closing; + } + + signal privateClicked + + //Deprecated, TODO Remove the following two lines on w13 + signal clicked + onClicked: privateClicked() + + QtObject { + id: parentCache + property QtObject oldParent: null + } + + Component.onCompleted: { + parentCache.oldParent = parent; + fader.parent = parent; + parent = fader; + } + + //if this is not given, application may crash in some cases + Component.onDestruction: { + if (parentCache.oldParent != null) { + parent = parentCache.oldParent + fader.parent = root + } + } + + Fader { + id: fader + dim: root.__dim + fadeInDuration: root.__fadeInDuration + fadeOutDuration: root.__fadeOutDuration + fadeInDelay: root.__fadeInDelay + fadeOutDelay: root.__fadeOutDelay + fadeInEasingType: root.__fadeInEasingType + fadeOutEasingType: root.__fadeOutEasingType + + + background: root.__faderBackground + onPrivateClicked: root.privateClicked(); + + MouseArea { + anchors.fill: parent + enabled: root.status == DialogStatus.Opening || root.status == DialogStatus.Closing + z: Number.MAX_VALUE + } + } + + function __fader() { + return fader; + } + +} diff --git a/mardrone/imports/com/nokia/meego/ProgressBar.qml b/mardrone/imports/com/nokia/meego/ProgressBar.qml new file mode 100644 index 0000000..6a3e163 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ProgressBar.qml @@ -0,0 +1,154 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import Qt.labs.components 1.1 + +import "TextAreaHelper.js" as AreaHelper + +ImplicitSizeItem { + id: container + + property alias minimumValue: progressModel.minimumValue + property alias maximumValue: progressModel.maximumValue + property alias value: progressModel.value + property bool indeterminate: false + + // Styling for the ProgressBar + property Style platformStyle: ProgressBarStyle{} + + //Deprecated, can be removed on W13 + property alias style: container.platformStyle + + implicitWidth: platformStyle.sizeButton + implicitHeight: background.height + + QtObject { + id: internal + property Flickable flick + property bool offScreen: false + } + + BorderImage { + id: background + width: parent.width + horizontalTileMode: BorderImage.Repeat + source: platformStyle.barBackground + + border { + left: 6 + top: 4 + right: 6 + bottom: 4 + } + } + + MaskedItem { + id: foreground + width: parent.width + height: parent.height + + mask: BorderImage { + width: indeterminate ? container.width : progressModel.position + height: foreground.height + source: platformStyle.barMask + + border { + left: 4 + top: 4 + right: 4 + bottom: 4 + } + } + + Image { + id: texture + width: foreground.width + sourceSize.width + 25 + height: foreground.height + fillMode: Image.Tile + + property real xTemp; + + source: indeterminate ? platformStyle.unknownTexture : platformStyle.knownTexture + + onXTempChanged: { + // Control the animation speed with this multiplier and the NumberAnimation duration divider + texture.x = Math.round(texture.xTemp) * 4; + } + + NumberAnimation on xTemp { + running: indeterminate && container.visible && Qt.application.active && !internal.offScreen + loops: Animation.Infinite + from: -texture.sourceSize.width + to: 0 + // time = distance / speed, where speed = 10 from the platformStyle + duration: (1000 * texture.sourceSize.width / 10) + } + } + } + + RangeModel { + id: progressModel + positionAtMinimum: 0 + positionAtMaximum: background.width + + // Defaults from Common API specification + minimumValue: 0 + maximumValue: 1.0 + } + + Connections { + target: internal.flick + + onMovementStarted: internal.offScreen = false + + onMovementEnded: { + var pos = mapToItem(internal.flick, 0, 0) + internal.offScreen = (pos.y + container.height <= 0) || (pos.y >= internal.flick.height) || (pos.x + container.width <= 0) || (pos.x >= internal.flick.width) + } + } + + Component.onCompleted: { + var flick = AreaHelper.findFlickable() + if (flick) + internal.flick = flick + } +} diff --git a/mardrone/imports/com/nokia/meego/ProgressBarStyle.qml b/mardrone/imports/com/nokia/meego/ProgressBarStyle.qml new file mode 100644 index 0000000..1e11e3e --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ProgressBarStyle.qml @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + property int sizeButton: UI.SIZE_BUTTON + + // Images + property url barBackground: "image://theme/meegotouch-progressindicator"+__invertedString+"-bar-background" + property url barMask: "image://theme/meegotouch-progressindicator"+__invertedString+"-bar-mask" + property url unknownTexture: "image://theme/" + __colorString + "meegotouch-progressindicator"+__invertedString+"-bar-unknown-texture" + property url knownTexture: "image://theme/" + __colorString + "meegotouch-progressindicator"+__invertedString+"-bar-known-texture" +} diff --git a/mardrone/imports/com/nokia/meego/QueryDialog.qml b/mardrone/imports/com/nokia/meego/QueryDialog.qml new file mode 100644 index 0000000..64bae64 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/QueryDialog.qml @@ -0,0 +1,384 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +Dialog { + id: root + objectName: "queryDialog" + + property string titleText + property string message + + //are they necessary? + property alias acceptButtonText: acceptButton.text + property alias rejectButtonText: rejectButton.text + + //ToDo + property alias icon: iconImage.source + + property Style platformStyle: QueryDialogStyle {} + + //__centerContentField: true + + __dim: platformStyle.dim + __fadeInDuration: platformStyle.fadeInDuration + __fadeOutDuration: platformStyle.fadeOutDuration + __fadeInDelay: platformStyle.fadeInDelay + __fadeOutDelay: platformStyle.fadeOutDelay + + __animationChief: "queryDialog" + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + // the title field consists of the following parts: title string and + // a close button (which is in fact an image) + // it can additionally have an icon + title: Item { + id: titleField + width: parent.width + height: titleText == "" ? titleBarIconField.height : + titleBarIconField.height + titleLabel.height + root.platformStyle.titleColumnSpacing + Column { + id: titleFieldCol + spacing: root.platformStyle.titleColumnSpacing + + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + + width: root.width + + Item { + id: titleBarIconField + height: iconImage.height + width: parent.width + Image { + id: iconImage + anchors.horizontalCenter: titleBarIconField.horizontalCenter + source: "" + } + + } + + + Item { + id: titleBarTextField + height: titleLabel.height + width: parent.width + + Text { + id: titleLabel + width: parent.width + + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + + font.family: root.platformStyle.titleFontFamily + font.pixelSize: root.platformStyle.titleFontPixelSize + font.bold: root.platformStyle.titleFontBold + font.capitalization: root.platformStyle.titleFontCapitalization + elide: root.platformStyle.titleElideMode + wrapMode: elide == Text.ElideNone ? Text.Wrap : Text.NoWrap + color: root.platformStyle.titleTextColor + text: root.titleText + + } + } + + // needed for animation + transform: Scale { + id: titleScale + xScale: 1.0; yScale: 1.0 + origin.x: mapFromItem(queryContent, queryContent.width / 2, queryContent.height / 2).x + origin.y: mapFromItem(queryContent, queryContent.width / 2, queryContent.height / 2).y + } + + } + } + + // the content field which contains the message text + content: Item { + id: queryContentWrapper + + property int upperBound: visualParent ? visualParent.height - titleField.height - buttonColFiller.height - 64 + : root.parent.height - titleField.height - buttonColFiller.height - 64 + property int __sizeHint: Math.min(Math.max(root.platformStyle.contentFieldMinSize, queryText.height), upperBound) + + height: __sizeHint + root.platformStyle.contentTopMargin + width: root.width + + Item { + id: queryContent + width: parent.width + + y: root.platformStyle.contentTopMargin + + Flickable { + id: queryFlickable + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + //anchors.bottom: parent.bottom + height: queryContentWrapper.__sizeHint + + contentHeight: queryText.height + flickableDirection: Flickable.VerticalFlick + clip: true + + interactive: queryText.height > queryContentWrapper.__sizeHint + + Text { + id: queryText + width: queryFlickable.width + horizontalAlignment: Text.AlignHCenter + font.family: root.platformStyle.messageFontFamily + font.pixelSize: root.platformStyle.messageFontPixelSize + color: root.platformStyle.messageTextColor + wrapMode: Text.WordWrap + text: root.message + } + + } + + + ScrollDecorator { + id: scrollDecorator + flickableItem: queryFlickable + anchors.rightMargin: - UI.SCROLLDECORATOR_LONG_MARGIN - 10 //ToDo: Don't use a hard-coded gap + } + + } + } + + + buttons: Item { + id: buttonColFiller + width: parent.width + height: childrenRect.height + + anchors.top: parent.top + + //ugly hack to assure, that we're always evaluating the correct height + //otherwise the topMargin wouldn't be considered + Item {id: dummy; anchors.fill: parent} + + Column { + id: buttonCol + anchors.top: parent.top + anchors.topMargin: root.platformStyle.buttonTopMargin + spacing: root.platformStyle.buttonsColumnSpacing + + height: (acceptButton.text == "" ? 0 : acceptButton.height) + + (rejectButton.text == "" ? 0 : rejectButton.height) + + anchors.buttonTopMargin + spacing + + anchors.horizontalCenter: parent.horizontalCenter + + Button { + id: acceptButton + text: "" + onClicked: accept() + visible: text != "" + __dialogButton: true + platformStyle: ButtonStyle {inverted: true} + } + Button { + id: rejectButton + text: "" + onClicked: reject() + visible: text != "" + __dialogButton: true + platformStyle: ButtonStyle {inverted: true} + } + } + } + + StateGroup { + id: statesWrapper + + state: "__query__hidden" + + // needed for button animation + // without resetting the button row's coordinate system would be translated + property int __buttonSaver: buttonColFiller.y + + states: [ + State { + name: "__query__visible" + when: root.__animationChief == "queryDialog" && (root.status == DialogStatus.Opening || root.status == DialogStatus.Open) + PropertyChanges { + target: root + opacity: 1.0 + } + }, + State { + name: "__query__hidden" + when: root.__animationChief == "queryDialog" && (root.status == DialogStatus.Closing || root.status == DialogStatus.Closed) + PropertyChanges { + target: root + opacity: 0.0 + } + } + ] + + transitions: [ + Transition { + from: "__query__visible"; to: "__query__hidden" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "hidden"; + + statesWrapper.__buttonSaver = buttonColFiller.y + root.status = DialogStatus.Closing; + + } + } + + NumberAnimation { target: root; properties: "opacity"; from: 0.0; to: 1.0; duration: 0 } + + // With a 100ms delay the background + // fades to alpha 0% (500ms, quint ease out). + // ---> done in the fader + + ParallelAnimation { + // The closing transition starts with the message dimming to alpha 0% and + // scaling to 80% (anchorpoint in the middle of the message, 100ms, quint + // ease in). + + // With no delay the buttons fade to alpha 0% and translate 30 + // pixels upwards (100ms, quint ease in). + NumberAnimation {target: queryContent; properties: "opacity"; from: 1.0; to: 0.0; duration: 100} + NumberAnimation {target: titleField; properties: "opacity"; from: 1.0; to: 0.0; duration: 100} + NumberAnimation {target: titleScale; properties: "xScale,yScale"; from: 1.0 ; to: 0.8; duration: 100; easing.type: Easing.InQuint} + NumberAnimation {target: queryContent; property: "scale"; from: 1.0 ; to: 0.8; duration: 100; easing.type: Easing.InQuint} + NumberAnimation {target: buttonColFiller; properties: "opacity"; from: 1.0; to: 0.0; duration: 100} + NumberAnimation {target: buttonColFiller + properties: "y" + from: buttonColFiller.y + to: buttonColFiller.y-30 + duration: 100 + easing.type: Easing.InQuint + } + } + + ScriptAction {script: { + + // reset button + buttonColFiller.y = statesWrapper.__buttonSaver + + // make sure, root isn't visible: + root.opacity = 0.0; + status = DialogStatus.Closed; + + } + } + + } + }, + Transition { + from: "__query__hidden"; to: "__query__visible" + SequentialAnimation { + ScriptAction {script: { + __fader().state = "visible"; + + statesWrapper.__buttonSaver = buttonColFiller.y + + root.status = DialogStatus.Opening; + // UPPERCASE-UGLY, but necessary to avoid flicker + root.opacity = 1.0 + titleField.opacity = 0.0 + queryContent.opacity = 0.0 + buttonColFiller.opacity = 0.0 + } + } + + // The opening transition starts by dimming the background to 90% (250ms, + // quint ease in). + // ---> done in the fader + ParallelAnimation { + SequentialAnimation { + + // With a 200ms delay from the beginning the message fades + // from alpha 0% to 100% and scales from 80% to 100% (anchorpoint in the + // middle of the message, 550ms, custom ease). + PauseAnimation { duration: 200 } + ParallelAnimation { + NumberAnimation {target: queryContent; properties: "opacity"; from: 0.0; to: 1.0; duration: 550} + NumberAnimation {target: titleField; properties: "opacity"; from: 0.0; to: 1.0; duration: 550} + NumberAnimation {target: titleScale; properties: "xScale,yScale"; from: 0.8 ; to: 1.0; duration: 550; easing.type: Easing.OutBack} + NumberAnimation {target: queryContent; property: "scale"; from: 0.8 ; to: 1.0; duration: 550; easing.type: Easing.OutBack} + } + } + SequentialAnimation { + // With a 250ms delay from the + // beginning the buttons fade from alpha 0% to 100% and translate 25 pixels + // in Y axis away from their final destination (400ms, custom ease). + PauseAnimation { duration: 250 } + ParallelAnimation { + NumberAnimation {target: buttonColFiller; properties: "opacity"; from: 0.0; to: 1.0; duration: 400; } + NumberAnimation {target: buttonColFiller + properties: "y" + from: buttonColFiller.y-25 + to: buttonColFiller.y + duration: 400 + easing.type: Easing.OutBack + } + } + } + } + + ScriptAction {script: { + + // reset button + buttonColFiller.y = statesWrapper.__buttonSaver + + root.status = DialogStatus.Open; + } + } + } + } + ] + } + +} diff --git a/mardrone/imports/com/nokia/meego/QueryDialogStyle.qml b/mardrone/imports/com/nokia/meego/QueryDialogStyle.qml new file mode 100644 index 0000000..422dacf --- /dev/null +++ b/mardrone/imports/com/nokia/meego/QueryDialogStyle.qml @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +DialogStyle { + property string titleFontFamily: UI.FONT_FAMILY + property int titleFontPixelSize: UI.FONT_XLARGE + property int titleFontCapitalization: Font.MixedCase + property bool titleFontBold: true + property color titleTextColor: "white" + + property int contentFieldMinSize: 24 + + //spacing + property int contentTopMargin: 21 + property int buttonTopMargin: 38 + + property int titleColumnSpacing: 17 + + //properties inherited by DialogStyle + buttonsColumnSpacing: 16 + leftMargin: 33 + rightMargin: 33 + titleElideMode: Text.ElideNone + + property string messageFontFamily: UI.FONT_FAMILY + property int messageFontPixelSize: UI.FONT_DEFAULT + property color messageTextColor: "#ffffff" + + // fader properties + property double dim: 0.9 + property int fadeInDuration: 250 // ms + property int fadeOutDuration: 250 // ms + + property int fadeInDelay: 0 // ms + property int fadeOutDelay: 100 // ms + + +} diff --git a/mardrone/imports/com/nokia/meego/RadioButton.qml b/mardrone/imports/com/nokia/meego/RadioButton.qml new file mode 100644 index 0000000..a496658 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/RadioButton.qml @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import Qt.labs.components 1.1 + +CheckBox { + id: radioButton + + property Style platformStyle: RadioButtonStyle{} + property alias style: radioButton.platformStyle + + __imageSource: !radioButton.enabled ? platformStyle.backgroundDisabled : + radioButton.pressed ? platformStyle.backgroundPressed : + radioButton.checked ? platformStyle.backgroundSelected : + platformStyle.background + + function __handleChecked() { + if (!radioButton.checked) + radioButton.checked = true; + } +} diff --git a/mardrone/imports/com/nokia/meego/RadioButtonStyle.qml b/mardrone/imports/com/nokia/meego/RadioButtonStyle.qml new file mode 100644 index 0000000..867a681 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/RadioButtonStyle.qml @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Style { + // Background + property url background: "image://theme/meegotouch-button-radiobutton"+__invertedString+"-background" + property url backgroundSelected: "image://theme/" + __colorString + "meegotouch-button-radiobutton"+__invertedString+"-background-selected" + property url backgroundPressed: "image://theme/" + __colorString + "meegotouch-button-radiobutton"+__invertedString+"-background-pressed" + property url backgroundDisabled: "image://theme/" + __colorString + "meegotouch-button-radiobutton"+__invertedString+"-background-disabled" + + // Mouse area margins + property int mouseMarginTop: 0 + property int mouseMarginLeft: 0 + property int mouseMarginRight: 0 + property int mouseMarginBottom: 0 + property int elideMode: Text.ElideNone +} diff --git a/mardrone/imports/com/nokia/meego/ScrollDecorator.qml b/mardrone/imports/com/nokia/meego/ScrollDecorator.qml new file mode 100644 index 0000000..38d04dc --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ScrollDecorator.qml @@ -0,0 +1,256 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +/** + * Class: ScrollDecorator + * A ScrollDecorator shows the current position in a scrollable area. + */ +Item { + id: root + + /** + * Property: flickableItem + * [Flickable] The Item that should show the ScrollDecorator + */ + property Flickable flickableItem + + property int __topPageMargin: 0 + property int __bottomPageMargin: 0 + property int __leftPageMargin: 0 + property int __rightPageMargin: 0 + property bool __hasPageWidth : false + property bool __hasPageHeight: false + + // These can also be modified (but probably shouldn't) + property int __minIndicatorSize: 20 + property int __hideTimeout: 500 + + property bool __alwaysShowIndicator: true + + property Style platformStyle: ScrollDecoratorStyle{} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + // This function ensures that we allways anchor the decorator correctly according + // to the page margins. + function __updatePageMargin() { + if (!flickableItem) + return + var p = flickableItem.parent + while (p) { + if (p.hasOwnProperty("__isPage")) { + __hasPageHeight = function() { return p.height == flickableItem.height } + __hasPageWidth = function() { return p.width == flickableItem.width } + __topPageMargin = function() { return p.anchors.topMargin } + __bottomPageMargin = function() { return p.anchors.bottomMargin } + __leftPageMargin = function() { return p.anchors.leftMargin } + __rightPageMargin = function() { return p.anchors.rightMargin } + return; + } else { + p = p.parent; + } + } + } + + onFlickableItemChanged: { __updatePageMargin() } + + QtObject { + id: privateApi + function canFlick(direction) { + return flickableItem.flickableDirection === direction + || flickableItem.flickableDirection === Flickable.HorizontalAndVerticalFlick + || flickableItem.flickableDirection === Flickable.AutoFlickDirection; + } + } + + // Private stuff + anchors.fill: flickableItem + + Timer { + // Hack to have the indicators flash when the view is shown the first time. + // Ideally we would wait until the Flickable is complete, but it doesn't look + // possible given the current limitations of QML. + interval: 100 + running: true + repeat: false + onTriggered: { + if (verticalIndicator.shouldShow) { + verticalIndicator.state = "visible"; + verticalIndicator.state = ""; + } + if (horizontalIndicator.shouldShow) { + horizontalIndicator.state = "visible"; + horizontalIndicator.state = ""; + } + } + } + + Component { + id: verticalSizerWrapper + ScrollDecoratorSizerCPP { + id: verticalSizer + positionRatio: flickableItem ? flickableItem.visibleArea.yPosition : 0 + sizeRatio: flickableItem ? flickableItem.visibleArea.heightRatio : 0 + maxPosition: flickableItem ? flickableItem.height : 0 + minSize: __minIndicatorSize + } + } + + Component { + id: horizontalSizerWrapper + ScrollDecoratorSizerCPP { + id: horizontalSizer + positionRatio: flickableItem ? flickableItem.visibleArea.xPosition : 0 + sizeRatio: flickableItem ? flickableItem.visibleArea.widthRatio : 0 + maxPosition: flickableItem ? flickableItem.width : 0 + minSize: __minIndicatorSize + } + } + + Loader {id: verticalSizerLoader} + Loader {id: horizontalSizerLoader} + + Item { + id: verticalIndicator + property bool shouldShow: flickableItem != null && ((__alwaysShowIndicator && privateApi.canFlick(Flickable.VerticalFlick)) && (flickableItem.height > 0 && flickableItem.contentHeight > flickableItem.height)) + opacity: 0 + anchors.right: parent.right + anchors.rightMargin: UI.SCROLLDECORATOR_LONG_MARGIN - (__hasPageWidth ? __rightPageMargin : 0) + anchors.top: parent.top + anchors.topMargin: UI.SCROLLDECORATOR_SHORT_MARGIN - (__hasPageWidth ? __topPageMargin : 0) + anchors.bottom: parent.bottom + anchors.bottomMargin: UI.SCROLLDECORATOR_SHORT_MARGIN - (__hasPageWidth ? __bottomPageMargin : 0) + + onShouldShowChanged: { + if (shouldShow) + verticalSizerLoader.sourceComponent = verticalSizerWrapper; + else + verticalSizerLoader.sourceComponent = undefined; + } + + Image { + source: platformStyle.background + height: parent.height + anchors.right: parent.right + } + BorderImage { + source: platformStyle.indicator + border { left: 2; top: 4; right: 2; bottom: 4 } + anchors.right: parent.right + y: verticalIndicator.shouldShow && verticalSizerLoader.status == Loader.Ready ? verticalSizerLoader.item.position : 0 + height: verticalIndicator.shouldShow && verticalSizerLoader.status == Loader.Ready ? + verticalSizerLoader.item.size - parent.anchors.topMargin - parent.anchors.bottomMargin : 0 + } + + states: State { + name: "visible" + when: verticalIndicator.shouldShow && flickableItem.moving + PropertyChanges { + target: verticalIndicator + opacity: 1 + } + } + + transitions: Transition { + from: "visible"; to: "" + NumberAnimation { + properties: "opacity" + duration: root.__hideTimeout + } + } + } + + Item { + id: horizontalIndicator + property bool shouldShow: flickableItem != null && ((__alwaysShowIndicator && privateApi.canFlick(Flickable.HorizontalFlick)) && (flickableItem.width > 0 && flickableItem.contentWidth > flickableItem.width)) + opacity: 0 + anchors.bottom: parent.bottom + anchors.bottomMargin: UI.SCROLLDECORATOR_LONG_MARGIN - (__hasPageHeight ? __bottomPageMargin : 0) + anchors.right: parent.right + anchors.rightMargin: UI.SCROLLDECORATOR_SHORT_MARGIN - (__hasPageHeight ? __rightPageMargin : 0) + anchors.left: parent.left + anchors.leftMargin: UI.SCROLLDECORATOR_SHORT_MARGIN - (__hasPageHeight ? __leftPageMargin : 0) + + onShouldShowChanged: { + if (shouldShow) + horizontalSizerLoader.sourceComponent = horizontalSizerWrapper; + else + horizontalSizerLoader.sourceComponent = undefined; + } + + Image { + source: platformStyle.backgroundHorizontal + width: parent.width + anchors.left: parent.left + anchors.bottom: parent.bottom + } + BorderImage { + source: platformStyle.indicatorHorizontal + border { left: 4; top: 2; right: 4; bottom: 2 } + anchors.bottom: parent.bottom + x: horizontalIndicator.shouldShow && horizontalSizerLoader.status == Loader.Ready ? horizontalSizerLoader.item.position : 0 + width: horizontalIndicator.shouldShow && horizontalSizerLoader.status == Loader.Ready ? + horizontalSizerLoader.item.size - parent.anchors.leftMargin - parent.anchors.rightMargin : 0 + } + + states: State { + name: "visible" + when: horizontalIndicator.shouldShow && flickableItem.moving + PropertyChanges { + target: horizontalIndicator + opacity: 1 + } + } + + transitions: Transition { + from: "visible"; to: "" + NumberAnimation { + properties: "opacity" + duration: root.__hideTimeout + } + } + } +} + diff --git a/mardrone/imports/com/nokia/meego/ScrollDecoratorSizer.qml b/mardrone/imports/com/nokia/meego/ScrollDecoratorSizer.qml new file mode 100644 index 0000000..92bc575 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ScrollDecoratorSizer.qml @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Item { + // relative (0..1) position of top and bottom + property real positionRatio + property real sizeRatio + + // max position and min size + property real maxPosition + property real minSize + + // size underflow + property real sizeUnderflow: (sizeRatio * maxPosition) < minSize ? minSize - (sizeRatio * maxPosition) : 0 + + // raw start and end position considering minimum size + property real rawStartPos: positionRatio * (maxPosition - sizeUnderflow) + property real rawEndPos: (positionRatio + sizeRatio) * (maxPosition - sizeUnderflow) + sizeUnderflow + + // overshoot amount at start and end + property real overshootStart: rawStartPos < 0 ? -rawStartPos : 0 + property real overshootEnd: rawEndPos > maxPosition ? rawEndPos - maxPosition : 0 + + // overshoot adjusted start and end + property real adjStartPos: rawStartPos + overshootStart + property real adjEndPos: rawEndPos - overshootStart - overshootEnd + + // final position and size of thumb + property int position: 0.5 + (adjStartPos + minSize > maxPosition ? maxPosition - minSize : adjStartPos) + property int size: 0.5 + ((adjEndPos - position) < minSize ? minSize : (adjEndPos - position)) +} + diff --git a/mardrone/imports/com/nokia/meego/ScrollDecoratorStyle.qml b/mardrone/imports/com/nokia/meego/ScrollDecoratorStyle.qml new file mode 100644 index 0000000..2be1cc8 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ScrollDecoratorStyle.qml @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Style { + // Background + property url background: "image://theme/meegotouch-positionindicator"+__invertedString+"-background" + property url indicator: "image://theme/meegotouch-positionindicator"+__invertedString+"-indicator" + property url backgroundHorizontal: "image://theme/meegotouch-positionindicator"+__invertedString+"-background-horizontal" + property url indicatorHorizontal: "image://theme/meegotouch-positionindicator"+__invertedString+"-indicator-horizontal" +} diff --git a/mardrone/imports/com/nokia/meego/SectionScroller.js b/mardrone/imports/com/nokia/meego/SectionScroller.js new file mode 100644 index 0000000..ecd210e --- /dev/null +++ b/mardrone/imports/com/nokia/meego/SectionScroller.js @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +var sectionData = []; +var _sections = []; + +function initialize(list) { + initSectionData(list); +} + +function initSectionData(list) { + if (!list || !list.model) return; + sectionData = []; + _sections = []; + var current = "", + prop = list.section.property, + item; + + for (var i = 0, count = list.model.count; i < count; i++) { + item = list.model.get(i); + if (item[prop] !== current) { + current = item[prop]; + _sections.push(current); + sectionData.push({ index: i, header: current }); + } + } +} + +function getSectionPositionString(name) { + var val = _sections.indexOf(name); + return val === 0 ? "first" : + val === _sections.length - 1 ? "last" : false; +} + +function getAt(pos) { + return _sections[pos] ? _sections[pos] : ""; +} + +function getRelativeSections(current) { + var val = _sections.indexOf(current), + sect = [], + sl = _sections.length; + + val = val < 1 ? 1 : val >= sl-1 ? sl-2 : val; + sect = [getAt(val - 1), getAt(val), getAt(val + 1)]; + + return sect; +} + +function getClosestSection(pos, down) { + var tmp = (_sections.length) * pos; + var val = Math.ceil(tmp) // TODO: better algorithm + val = val < 2 ? 1 : val; + return _sections[val-1]; +} + +function getNextSection(current) { + var val = _sections.indexOf(current); + return (val > -1 ? _sections[(val < _sections.length - 1 ? val + 1 : val)] : _sections[0]) || ""; +} + +function getPreviousSection(current) { + var val = _sections.indexOf(current); + return (val > -1 ? _sections[(val > 0 ? val - 1 : val)] : _sections[0]) || ""; +} + +function getIndexFor(sectionName) { + var val = sectionData[_sections.indexOf(sectionName)].index; + return val === 0 || val > 0 ? val : -1; +} diff --git a/mardrone/imports/com/nokia/meego/SectionScroller.qml b/mardrone/imports/com/nokia/meego/SectionScroller.qml new file mode 100644 index 0000000..ae2018f --- /dev/null +++ b/mardrone/imports/com/nokia/meego/SectionScroller.qml @@ -0,0 +1,331 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "SectionScroller.js" as Sections + +Item { + id: root + + property ListView listView + + onListViewChanged: { + if (listView && listView.model) { + internal.initDirtyObserver(); + } else if (listView) { + listView.modelChanged.connect(function() { + if (listView.model) { + internal.initDirtyObserver(); + } + }); + } + } + + property Style platformStyle: SectionScrollerStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + Rectangle { + id: container + color: "transparent" + width: 35 + height: listView.height + x: listView.x + listView.width - width + property bool dragging: false + + MouseArea { + id: dragArea + objectName: "dragArea" + anchors.fill: parent + drag.target: tooltip + drag.axis: Drag.YAxis + drag.minimumY: listView.y + drag.maximumY: listView.y + listView.height - tooltip.height + + onPressed: { + mouseDownTimer.restart() + } + + onReleased: { + container.dragging = false; + mouseDownTimer.stop() + } + + onPositionChanged: { + internal.adjustContentPosition(dragArea.mouseY); + } + + Timer { + id: mouseDownTimer + interval: 150 + + onTriggered: { + container.dragging = true; + internal.adjustContentPosition(dragArea.mouseY); + tooltip.positionAtY(dragArea.mouseY); + } + } + } + Item { + id: tooltip + objectName: "popup" + opacity: container.dragging ? 1 : 0 + anchors.right: parent.right + anchors.rightMargin: 50 + width: childrenRect.width + height: childrenRect.height + + function positionAtY(yCoord) { + tooltip.y = Math.max(dragArea.drag.minimumY, Math.min(yCoord - tooltip.height/2, dragArea.drag.maximumY)); + } + + BorderImage { + id: background + width: childrenRect.width// + 20 + height: childrenRect.height// + 20 + anchors.left: parent.left + source: platformStyle.backgroundImage + border { left: 4; top: 4; right: 4; bottom: 4 } + + Column { + width: Math.max(previousSectionLabel.width, currentSectionLabel.width, nextSectionLabel.width) + height: childrenRect.height + + SectionScrollerLabel { + id: previousSectionLabel + objectName: "previousSectionLabel" + text: internal.prevSection + highlighted: internal.curSect === text + up: !internal.down + } + + Image { + objectName: "divider1" + source: platformStyle.dividerImage + width: parent.width + height: 1 + anchors.horizontalCenter: parent.horizontalCenter + } + + SectionScrollerLabel { + id: currentSectionLabel + objectName: "currentSectionLabel" + text: internal.currentSection + highlighted: internal.curSect === text + up: !internal.down + } + + Image { + objectName: "divider2" + source: platformStyle.dividerImage + width: parent.width + height: 1 + anchors.horizontalCenter: parent.horizontalCenter + } + + SectionScrollerLabel { + id: nextSectionLabel + objectName: "nextSectionLabel" + text: internal.nextSection + highlighted: internal.curSect === text + up: !internal.down + } + } + } + + Image { + id: arrow + objectName: "arrow" + width: 8 + height: 16 + anchors.left: background.right + property int threshold: currentSectionLabel.height + property int yInitial: background.y + background.height/2 - height/2 + y: getYPosition() + source: platformStyle.arrowImage + + function getYPosition() { + var v = internal.curPos; + var adjust = v === "first" ? -threshold : + v === "last" ? threshold : 0; + + return yInitial + adjust; + } + + states: [ + State { + when: root.dragging && dragArea.mouseY < (root.listView.y + threshold) + PropertyChanges { + target: arrow + y: yInitial - threshold + } + } + ] + + Behavior on y { + NumberAnimation { + duration: 100 + } + } + } + + states: [ + State { + name: "visible" + when: container.dragging + }, + + State { + extend: "visible" + name: "atTop" + when: internal.curPos === "first" + PropertyChanges { + target: previousSectionLabel + text: internal.currentSection + } + PropertyChanges { + target: currentSectionLabel + text: internal.nextSection + } + PropertyChanges { + target: nextSectionLabel + text: Sections.getNextSection(internal.nextSection) + } + }, + + State { + extend: "visible" + name: "atBottom" + when: internal.curPos === "last" + PropertyChanges { + target: previousSectionLabel + text: Sections.getPreviousSection(internal.prevSection) + } + PropertyChanges { + target: currentSectionLabel + text: internal.prevSection + } + PropertyChanges { + target: nextSectionLabel + text: internal.currentSection + } + } + ] + + Behavior on opacity { + NumberAnimation { duration: 100 } + } + } + } + + Timer { + id: dirtyTimer + interval: 100 + running: false + onTriggered: { + Sections.initSectionData(listView); + internal.modelDirty = false; + } + } + + Connections { + target: root.listView + onCurrentSectionChanged: internal.curSect = container.dragging ? internal.curSect : "" + } + + QtObject { + id: internal + + property string prevSection: "" + property string currentSection: listView.currentSection + property string nextSection: "" + property string curSect: "" + property string curPos: "first" + property int oldY: 0 + property bool modelDirty: false + property bool down: true + + function initDirtyObserver() { + Sections.initialize(listView); + function dirtyObserver() { + if (!internal.modelDirty) { + internal.modelDirty = true; + dirtyTimer.running = true; + } + } + + if (listView.model.countChanged) + listView.model.countChanged.connect(dirtyObserver); + + if (listView.model.itemsChanged) + listView.model.itemsChanged.connect(dirtyObserver); + + if (listView.model.itemsInserted) + listView.model.itemsInserted.connect(dirtyObserver); + + if (listView.model.itemsMoved) + listView.model.itemsMoved.connect(dirtyObserver); + + if (listView.model.itemsRemoved) + listView.model.itemsRemoved.connect(dirtyObserver); + } + + function adjustContentPosition(y) { + if (y < 0 || y > dragArea.height) return; + + internal.down = (y > internal.oldY); + var sect = Sections.getClosestSection((y / dragArea.height), internal.down); + internal.oldY = y; + if (internal.curSect != sect) { + internal.curSect = sect; + internal.curPos = Sections.getSectionPositionString(internal.curSect); + var sec = Sections.getRelativeSections(internal.curSect); + internal.prevSection = sec[0]; + internal.currentSection = sec[1]; + internal.nextSection = sec[2]; + var idx = Sections.getIndexFor(sect); + listView.positionViewAtIndex(idx, ListView.Beginning); + } + } + + } +} diff --git a/mardrone/imports/com/nokia/meego/SectionScrollerLabel.qml b/mardrone/imports/com/nokia/meego/SectionScrollerLabel.qml new file mode 100644 index 0000000..50c2caa --- /dev/null +++ b/mardrone/imports/com/nokia/meego/SectionScrollerLabel.qml @@ -0,0 +1,98 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Item { + id: root + + property alias text: label.current + property alias up: label.up + property bool highlighted: false + + width: wrapper.width + height: wrapper.height + + property Style platformStyle: SectionScrollerStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + Item { + id: wrapper + + clip: true + height: label.height + + Text { + id: label + + property string current: "" + property bool up: true + property int shift: 30 + + height: 60 + width: parent.width - 40 + text: "" + x: 20 + color: root.highlighted ? root.platformStyle.textColorHighlighted : root.platformStyle.textColor + font { + bold: root.platformStyle.fontBoldProperty + pixelSize: root.platformStyle.fontPixelSize + } + verticalAlignment: Text.AlignVCenter + onCurrentChanged: { + text = current; + } + onTextChanged: { + var w = paintedWidth + parent.width = w + 40; + } + + Behavior on current { + SequentialAnimation { + NumberAnimation { target: label; property: "y"; to: label.up ? label.shift : -label.shift; duration: 50 } + PropertyAction { target: label; property: "y"; value: label.up ? -label.shift : label.shift } + NumberAnimation { target: label; property: "y"; to: 0; duration: 50 } + } + } + } + } +} diff --git a/mardrone/imports/com/nokia/meego/SectionScrollerStyle.qml b/mardrone/imports/com/nokia/meego/SectionScrollerStyle.qml new file mode 100644 index 0000000..0f0043a --- /dev/null +++ b/mardrone/imports/com/nokia/meego/SectionScrollerStyle.qml @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + + // Font + property int fontPixelSize: UI.FONT_XXSMALL + property bool fontBoldProperty: true + + // Color + property color textColorHighlighted: "#fff" + property color textColor: "#888" + + property url dividerImage: "image://theme/meegotouch-scroll-bubble-divider"+__invertedString + property url backgroundImage: "image://theme/meegotouch-scroll-bubble-background"+__invertedString + property url arrowImage: "image://theme/meegotouch-scroll-bubble-arrow"+__invertedString +} diff --git a/mardrone/imports/com/nokia/meego/SelectionDialog.qml b/mardrone/imports/com/nokia/meego/SelectionDialog.qml new file mode 100644 index 0000000..fe4d15c --- /dev/null +++ b/mardrone/imports/com/nokia/meego/SelectionDialog.qml @@ -0,0 +1,178 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +CommonDialog { + id: root + + // Common API + property alias model: selectionListView.model + property int selectedIndex: -1 // read & write + //property string titleText: "Selection Dialog" + + property Component delegate: // Note that this is the default delegate for the list + Component { + id: defaultDelegate + + Item { + id: delegateItem + property bool selected: index == selectedIndex; + + height: root.platformStyle.itemHeight + anchors.left: parent.left + anchors.right: parent.right + + MouseArea { + id: delegateMouseArea + anchors.fill: parent; + onPressed: selectedIndex = index; + onClicked: accept(); + } + + + Rectangle { + id: backgroundRect + anchors.fill: parent + color: delegateItem.selected ? root.platformStyle.itemSelectedBackgroundColor : root.platformStyle.itemBackgroundColor + } + + BorderImage { + id: background + anchors.fill: parent + border { left: UI.CORNER_MARGINS; top: UI.CORNER_MARGINS; right: UI.CORNER_MARGINS; bottom: UI.CORNER_MARGINS } + source: delegateMouseArea.pressed ? root.platformStyle.itemPressedBackground : + delegateItem.selected ? root.platformStyle.itemSelectedBackground : + root.platformStyle.itemBackground + } + + Text { + id: itemText + elide: Text.ElideRight + color: delegateItem.selected ? root.platformStyle.itemSelectedTextColor : root.platformStyle.itemTextColor + anchors.verticalCenter: delegateItem.verticalCenter + anchors.left: parent.left + anchors.right: parent.right + anchors.leftMargin: root.platformStyle.itemLeftMargin + anchors.rightMargin: root.platformStyle.itemRightMargin + text: modelData + font: root.platformStyle.itemFont + } + Component.onCompleted: { + try { + // Legacy. "name" used to be the role which was used by delegate + itemText.text = name + } catch(err) { + try { + // "modelData" available for JS array and for models with one role + itemText.text = modelData + } catch (err) { + try { + // C++ models have "display" role available always + itemText.text = display + } catch(err) { + } + } + } + } + } + } + + onStatusChanged: { + if (status == DialogStatus.Opening && selectedIndex >= 0) { + selectionListView.positionViewAtIndex(selectedIndex, ListView.Center) + } + } + + // Style API + property Style platformStyle: SelectionDialogStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + // private api + property int __pressDelay: platformStyle.pressDelay + + // the title field consists of the following parts: title string and + // a close button (which is in fact an image) + // it can additionally have an icon + titleText:"Selection Dialog" + + // the content field which contains the selection content + content: Item { + + id: selectionContent + property int listViewHeight + property int maxListViewHeight : visualParent + ? visualParent.height * 0.87 + - root.platformStyle.titleBarHeight - root.platformStyle.contentSpacing - 50 + : root.parent + ? root.parent.height * 0.87 + - root.platformStyle.titleBarHeight - root.platformStyle.contentSpacing - 50 + : 350 + height: listViewHeight > maxListViewHeight ? maxListViewHeight : listViewHeight + width: root.width + y : root.platformStyle.contentSpacing + + ListView { + id: selectionListView + model: ListModel {} + + currentIndex : -1 + anchors.fill: parent + delegate: root.delegate + focus: true + clip: true + pressDelay: __pressDelay + + ScrollDecorator { + id: scrollDecorator + flickableItem: selectionListView + platformStyle.inverted: true + } + onModelChanged: selectionContent.listViewHeight = model.count * platformStyle.itemHeight + } + + } +} + + diff --git a/mardrone/imports/com/nokia/meego/SelectionDialogStyle.qml b/mardrone/imports/com/nokia/meego/SelectionDialogStyle.qml new file mode 100644 index 0000000..605dd7a --- /dev/null +++ b/mardrone/imports/com/nokia/meego/SelectionDialogStyle.qml @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +DialogStyle { + property alias titleBarFont: titleText.font + property int titleBarHeight: 44 + property color titleBarColor: "white" + property int titleBarIndent: 17 + property int titleBarLineMargin: 10 + + property bool __portrait: (screen.currentOrientation == 1) || (screen.currentOrientation == 4) + + property int leftMargin: __portrait ? 11 : 160 + property int rightMargin: __portrait ? 11 : 160 + + property alias itemFont: itemText.font + property int fontXLarge: 32 + property int fontLarge: 28 + property int fontDefault: 24 + property int fontSmall: 20 + property int fontXSmall: 18 + property int fontXXSmall: 16 + + property color colorForeground: "#191919" + property color colorSecondaryForeground: "#8c8c8c" + property color colorBackground: "#ffffff" + property color colorSelect: "#7fb133" + + property color commonLabelColor: "white" + + property int itemHeight: 64 + property color itemTextColor: "white" + property color itemSelectedTextColor: "white" + property int itemLeftMargin: 16 + property int itemRightMargin: 16 + + property int contentSpacing: 10 + + property int pressDelay: 350 // ms + + // Background + property url itemBackground: "" + property color itemBackgroundColor: "transparent" + property color itemSelectedBackgroundColor: "#3D3D3D" + property url itemSelectedBackground: "" // "image://theme/" + __colorString + "meegotouch-list-fullwidth-background-selected" + property url itemPressedBackground: "image://theme/" + __colorString + "meegotouch-panel-inverted-background-pressed" + + property int buttonsTopMargin: 30 // ToDo: evaluate correct value + + Text { + id: titleText + font.family: UI.FONT_FAMILY + font.pixelSize: UI.FONT_XLARGE + font.capitalization: Font.MixedCase + font.bold: false + } + + Text { + id: itemText + font.family: UI.FONT_FAMILY + font.pixelSize: UI.FONT_DEFAULT_SIZE + font.capitalization: Font.MixedCase + font.bold: true + } + } diff --git a/mardrone/imports/com/nokia/meego/Sheet.qml b/mardrone/imports/com/nokia/meego/Sheet.qml new file mode 100644 index 0000000..9956c64 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/Sheet.qml @@ -0,0 +1,230 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + + width: parent ? parent.width : 0 + height: parent ? parent.height : 0 + + property alias title: titleBar.children + property alias content: contentField.children + property alias buttons: buttonRow.children + property Item visualParent + property int status: DialogStatus.Closed + + property alias acceptButtonText: acceptButton.text + property alias rejectButtonText: rejectButton.text + + property alias acceptButton: acceptButton + property alias rejectButton: rejectButton + + signal accepted + signal rejected + + property QtObject platformStyle: SheetStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + function reject() { + close(); + rejected(); + } + + function accept() { + close(); + accepted(); + } + + visible: status != DialogStatus.Closed; + + function open() { + parent = visualParent || __findParent(); + sheet.state = ""; + } + + function close() { + sheet.state = "closed"; + } + + function __findParent() { + var next = parent; + while (next && next.parent + && next.objectName != "appWindowContent" + && next.objectName != "windowContent") { + next = next.parent; + } + return next; + } + + function getButton(name) { + for (var i=0; i handle.width / 2) + range.position = newX; + } + + onCanceled: { + range.position = oldPosition; + } + } + + Item { + id: valueIndicator + + transform: Translate { + x: - handle.width / 2; + y: __isVertical? -(__valueIndicatorItem.width/2)+20 : y ; + } + + rotation: __isVertical ? 90 : 0 + visible: valueIndicatorVisible + + width: __valueIndicatorItem.width //+ (__isVertical? (handle.width/2) : 0 ) + height: __valueIndicatorItem.height + + state: { + if (!__isVertical) + return slider.valueIndicatorPosition; + + if (valueIndicatorPosition == "Right") + return "Bottom"; + if (valueIndicatorPosition == "Top") + return "Right"; + if (valueIndicatorPosition == "Bottom") + return "Left"; + + return "Top"; + } + + anchors.margins: valueIndicatorMargin + + states: [ + State { + name: "Top" + AnchorChanges { + target: valueIndicator + anchors.bottom: handle.top + anchors.horizontalCenter: handle.horizontalCenter + } + }, + State { + name: "Bottom" + AnchorChanges { + target: valueIndicator + anchors.top: handle.bottom + anchors.horizontalCenter: handle.horizontalCenter + } + }, + State { + name: "Right" + AnchorChanges { + target: valueIndicator + anchors.left: handle.right + anchors.verticalCenter: handle.verticalCenter + } + }, + State { + name: "Left" + AnchorChanges { + target: valueIndicator + anchors.right: handle.left + anchors.verticalCenter: handle.verticalCenter + } + } + ] + } + } + + // when there is no mouse interaction, the handle's position binds to the value + Binding { + when: !mouseArea.drag.active + target: fakeHandle + property: "x" + value: range.position + } + + // when the slider is dragged, the value binds to the handle's position + Binding { + when: mouseArea.drag.active + target: range + property: "position" + value: fakeHandle.x + } +} diff --git a/mardrone/imports/com/nokia/meego/SoftwareInputPanel.qml b/mardrone/imports/com/nokia/meego/SoftwareInputPanel.qml new file mode 100644 index 0000000..75dbbc7 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/SoftwareInputPanel.qml @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import Qt 4.7 + +Item { + id: root + width: parent.width + height: 0 + + objectName: "softwareInputPanel" + + property bool active: false + + states: State { + when: active + PropertyChanges { target: root; height: childrenRect.height; } + } + + transitions: Transition { + reversible: true + NumberAnimation { properties: "opacity"; easing.type: Easing.InOutCubic; duration: 200 } + } +} diff --git a/mardrone/imports/com/nokia/meego/StatusBar.qml b/mardrone/imports/com/nokia/meego/StatusBar.qml new file mode 100644 index 0000000..cffe9db --- /dev/null +++ b/mardrone/imports/com/nokia/meego/StatusBar.qml @@ -0,0 +1,104 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + + +StatusBarInternal { + id: statusBar + anchors.top: parent.top + width: parent.width + + property bool showStatusBar: true + property bool __completed: false + + states: State { + name: "hide"; when: showStatusBar==false + PropertyChanges { target: statusBar; anchors.topMargin: -statusBar.height; visible: false} + } + + Component.onCompleted: { + statusBar.orientation = screen.currentOrientation + screen.updatePlatformStatusBarRect(statusBar) + __completed = true; + } + + onWidthChanged: { + updatePlatformStatusBarTimer.running = true + } + + Timer { + // Timer is used to update statusbarrect to avoid duplicated calls during animation, + // also onActiveChanged coming too early + id: updatePlatformStatusBarTimer + repeat: false + interval: 50 + onTriggered: { + screen.updatePlatformStatusBarRect(statusBar); + } + } + + Connections { + target: platformWindow + onActiveChanged: { + updatePlatformStatusBarTimer.running = true + } + } + + transitions: Transition { + from: __completed ? "" : "invalid" + to: __completed ? "hide" : "invalid" + reversible: true + SequentialAnimation { + ScriptAction { + script: { + updatePlatformStatusBarTimer.running = true + } + } + PropertyAnimation { target: statusBar; properties: "anchors.topMargin"; easing.type: Easing.InOutExpo; duration: 500 } + PropertyAnimation { target: statusBar; properties: "visible"; } + ScriptAction { + script: { + updatePlatformStatusBarTimer.running = true; + } + } + } + } +} diff --git a/mardrone/imports/com/nokia/meego/Style.qml b/mardrone/imports/com/nokia/meego/Style.qml new file mode 100644 index 0000000..870b715 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/Style.qml @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +QtObject { + id: styleClass + // Settings + property bool inverted: theme.inverted + property string __invertedString: inverted? "-inverted" : "" + property string __colorString: theme.colorString + + // some style classes like SelectionDialogStyle are using nested elements (for example Text), + // which isn't allowed by QtObject; this fix makes this possible + default property alias children: styleClass.__defaultPropertyFix + property list __defaultPropertyFix: [Item {}] //QML doesn't allow an empty list here + +} diff --git a/mardrone/imports/com/nokia/meego/Switch.qml b/mardrone/imports/com/nokia/meego/Switch.qml new file mode 100644 index 0000000..f23bf39 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/Switch.qml @@ -0,0 +1,182 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +/* +Class: Switch + The Switch component is similar to the CheckBox component but instead of + selecting items it should be used when setting options to On/Off. +*/ +Item { + id: root + + width: slider.width + height: slider.height + + /* + * Property: checked + * [bool=false] The checked state of switch + */ + property bool checked: false + + // Styling for the Switch + property Style platformStyle: SwitchStyle {} + + //Deprecated, TODO Remove this on w13 + property alias style: root.platformStyle + + property alias platformMouseAnchors: mouseArea.anchors + + /* + * Property: enabled + * [bool=true] Enables/Disables the component. Notice that the disable state is not Toolkit compliant + * and not present inside the qt-components + */ + + Item { + id: slider + + width: 66 + height: 42 + + state: root.checked ? "checked" : "unchecked" + + property real knobPos: (knob.x - platformStyle.minKnobX) / (platformStyle.maxKnobX - platformStyle.minKnobX) + + Image { + source: platformStyle.switchOn + opacity: slider.knobPos + } + Image { + source: platformStyle.switchOff + opacity: 1.0 - slider.knobPos + } + + states: [ + State { + name: "unchecked" + PropertyChanges { target: knob; x: platformStyle.minKnobX } + }, + State { + name: "checked" + PropertyChanges { target: knob; x: platformStyle.maxKnobX } + } + ] + + transitions: [ + Transition { + SmoothedAnimation { properties: "x"; velocity: 500; maximumEasingTime: 0 } + } + ] + + // thumb (shadow) + Image { + id: knob + + // thumb (inline) + Image { + width: 30 + height: 30 + x: 0 + y: -2 + source: (slider.enabled ? (mouseArea.pressed ? platformStyle.thumbPressed : platformStyle.thumb) : platformStyle.thumbDisabled) + } + + source: platformStyle.shadow + + y: 8 + + width: 30 + height: 30 + } + + MouseArea { + id: mouseArea + property int downMouseX + property int downKnobX + anchors { + fill: parent + rightMargin: platformStyle.mouseMarginRight + leftMargin: platformStyle.mouseMarginLeft + topMargin: platformStyle.mouseMarginTop + bottomMargin: platformStyle.mouseMarginBottom + } + + function snap() { + if (knob.x < (platformStyle.maxKnobX + platformStyle.minKnobX) / 2) { + if (root.checked) { + root.checked = false; + } else { + knob.x = platformStyle.minKnobX; + } + } else { + if (!root.checked) { + root.checked = true; + } else { + knob.x = platformStyle.maxKnobX; + } + } + } + + onPressed: { + downMouseX = mouseX; + downKnobX = knob.x; + } + + onPositionChanged: { + var newKnobX = downKnobX - (downMouseX - mouseX); + knob.x = newKnobX < platformStyle.minKnobX ? platformStyle.minKnobX : newKnobX > platformStyle.maxKnobX ? platformStyle.maxKnobX : newKnobX; + } + + onReleased: { + if (Math.abs(downMouseX - mouseX) < 5) + root.checked = !root.checked; + else + snap(); + } + + onCanceled: { + snap(); + } + + } + } +} diff --git a/mardrone/imports/com/nokia/meego/SwitchStyle.qml b/mardrone/imports/com/nokia/meego/SwitchStyle.qml new file mode 100644 index 0000000..ec1b1b7 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/SwitchStyle.qml @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + property int minKnobX: 6 + property int maxKnobX: 30 + + // Slider + property url switchOn: "image://theme/" + __colorString + "meegotouch-switch-on"+__invertedString + property url switchOff: "image://theme/meegotouch-switch-off"+__invertedString + + // Knob + property url thumb: "image://theme/meegotouch-switch-thumb"+__invertedString + property url thumbPressed: "image://theme/meegotouch-switch-thumb-pressed"+__invertedString + property url thumbDisabled: "image://theme/meegotouch-switch-thumb-disabled"+__invertedString + property url shadow: "image://theme/meegotouch-switch-shadow"+__invertedString + + // Mouse + property real mouseMarginRight: -UI.MARGIN_XLARGE + property real mouseMarginLeft: -UI.MARGIN_XLARGE + property real mouseMarginTop: -UI.MARGIN_XLARGE + property real mouseMarginBottom: -UI.MARGIN_XLARGE +} diff --git a/mardrone/imports/com/nokia/meego/TabBarLayout.qml b/mardrone/imports/com/nokia/meego/TabBarLayout.qml new file mode 100644 index 0000000..e3e4a7f --- /dev/null +++ b/mardrone/imports/com/nokia/meego/TabBarLayout.qml @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + width: visible && parent ? parent.width : 0 + height: visible && parent ? parent.height : 0 + + Component.onCompleted: { + __layout() + print("Warning, TabBarLayout has been deprecated from the API.") + print("To fix your code, please use:") + print(" tools: ToolBarLayout { ToolItem{} ButtonRow{TabButton{} ... } } instead.") + } + onChildrenChanged: __layout() + onWidthChanged: __layout() + onHeightChanged: __layout() + + function __layout() { + if (parent == null || width == 0) + return; + + var orientation = screen.currentOrientation == Screen.Landscape || screen.currentOrientation == Screen.LandscapeInverted ? "landscape" : "portrait", + padding = orientation == "landscape" ? 80 : 15; + + for (var i = 0, childCount = children.length, tabCount = 0, widthOthers = 0; i < childCount; i++) { + if (children[i].tab !== undefined) { + children[i].platformStyle.position = (tabCount++ === 0) ? "horizontal-left" : "horizontal-center"; + children[i].platformStyle.screenOrientation = orientation; + } else { + widthOthers += children[i].width; + children[i].y = (height - children[i].height) / 2; + } + } + // Check if last item is a tab button and set appropriate position + tabCount && (children[children[0].tab ? tabCount - 1 : tabCount].platformStyle.position = "horizontal-right"); + + widthOthers += children[0].tab ? padding : 0; + widthOthers += children[childCount - 1].tab ? padding : 0; + + var tabWidth = Math.round((width - widthOthers) / tabCount), + offset = children[0].tab ? padding : children[0].width; + + for (var i = children[0].tab ? 0 : 1, index = 0; i < childCount; i++, index++) { + children[i].x = tabWidth * index + offset; + children[i].tab && (children[i].width = tabWidth); + } + } +} + diff --git a/mardrone/imports/com/nokia/meego/TabButton.qml b/mardrone/imports/com/nokia/meego/TabButton.qml new file mode 100644 index 0000000..61f5f0a --- /dev/null +++ b/mardrone/imports/com/nokia/meego/TabButton.qml @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import Qt.labs.components 1.1 + +Button { + id: tabButton + + // Common public API + property Item tab + property QtObject platformStyle: TabButtonStyle {} + + //Deprecated: TODO, remove this! + property alias style: tabButton.platformStyle + + property Item __tabGroup: tab !== null ? tab.parent : null + + Connections { + target: __tabGroup + onCurrentTabChanged: checked = __tabGroup.currentTab == tab; + } + + onClicked: privatePressed() + + function privatePressed() { + if (tabButton.checkable) { + tabButton.checked = !tabButton.checked; + } + + if (__tabGroup != null && + tab != null) { + __tabGroup.currenTab == tab ? __tabGroup.currentTab.pop(): __tabGroup.currentTab = tab; + } + } +} diff --git a/mardrone/imports/com/nokia/meego/TabButtonStyle.qml b/mardrone/imports/com/nokia/meego/TabButtonStyle.qml new file mode 100644 index 0000000..c0ac46d --- /dev/null +++ b/mardrone/imports/com/nokia/meego/TabButtonStyle.qml @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +ButtonStyle { + /* The orientation of the button which can take one of the two values: + [portrait] [landscape] + */ + property string screenOrientation: (screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted) ? "portrait" : "landscape" + + fontCapitalization: Font.MixedCase + fontPixelSize: 24 + fontWeight: Font.Normal + checkedFontWeight: Font.Bold + + buttonHeight: screenOrientation == "portrait"? 72 : 56 + + textColor: inverted ? "#CDCDCD" : "#505050" + pressedTextColor: inverted ? "#ffffff" : "#505050" + checkedTextColor: inverted ? "#ffffff" : "#000000" + + background: "image://theme/meegotouch-tab-" + screenOrientation + "-bottom" + __invertedString + "-background" + (position ? "-" + position : "") + + pressedBackground: "image://theme/meegotouch-tab-" + screenOrientation + "-bottom" + __invertedString + "-background-pressed" + (position ? "-" + position : "") + disabledBackground: "image://theme/meegotouch-tab-" + screenOrientation + "-bottom" + __invertedString + "-background" + (position ? "-" + position : "") + checkedBackground: "image://theme/meegotouch-tab-" + screenOrientation + "-bottom" + __invertedString + "-background-selected" + (position ? "-" + position : "") + checkedDisabledBackground: "image://theme/meegotouch-tab" + screenOrientation + "-bottom" + __invertedString + "-background" + (position ? "-" + position : "") +} diff --git a/mardrone/imports/com/nokia/meego/TabGroup.qml b/mardrone/imports/com/nokia/meego/TabGroup.qml new file mode 100644 index 0000000..72011d6 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/TabGroup.qml @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// The TabGroup item defines a set of tabs consisting of page stacks or +// pages that can be switched between to implement a tabbed user interface. + +import QtQuick 1.1 +import "." 1.0 + +Item { + + // The currently selected tab. + property Item currentTab + + width: parent ? parent.width : 0 + height: parent ? parent.height : 0 + + onVisibleChanged: __update() + onChildrenChanged: __update() + onCurrentTabChanged: __update() + + function __update() { + for (var i = 0; i < children.length; i++) { + var child = children[i]; + var newVis = child == currentTab; + if (child.visible != newVis) { + child.visible = newVis; + if (child.status !== undefined) { + if (newVis) { + child.status = PageStatus.Activating; + child.status = PageStatus.Active; + } else { + child.status = PageStatus.Deactivating; + child.status = PageStatus.Inactive; + } + } + } + } + } + +} diff --git a/mardrone/imports/com/nokia/meego/TextArea.qml b/mardrone/imports/com/nokia/meego/TextArea.qml new file mode 100644 index 0000000..88df502 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/TextArea.qml @@ -0,0 +1,545 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import Qt.labs.components 1.1 +import "UIConstants.js" as UI +import "EditBubble.js" as Popup +import "TextAreaHelper.js" as TextAreaHelper +import "Magnifier.js" as MagnifierPopup + +FocusScope { + id: root + + // Common public API + property alias text: textEdit.text + property alias placeholderText: prompt.text + + property alias font: textEdit.font + property alias cursorPosition: textEdit.cursorPosition + property alias readOnly: textEdit.readOnly + + property alias horizontalAlignment: textEdit.horizontalAlignment + property alias verticalAlignment: textEdit.verticalAlignment + + property alias selectedText: textEdit.selectedText + property alias selectionStart: textEdit.selectionStart + property alias selectionEnd: textEdit.selectionEnd + + property alias wrapMode: textEdit.wrapMode + property alias textFormat: textEdit.textFormat + // Property enableSoftwareInputPanel is DEPRECATED + property alias enableSoftwareInputPanel: textEdit.activeFocusOnPress + + property alias inputMethodHints: textEdit.inputMethodHints + + property bool errorHighlight: false + + property Item platformSipAttributes + + property bool platformEnableEditBubble: true + + property Item platformStyle: TextAreaStyle {} + property alias style: root.platformStyle + + property alias platformPreedit: inputMethodObserver.preedit + + onPlatformSipAttributesChanged: { + platformSipAttributes.registerInputElement(textEdit) + } + + function copy() { + textEdit.copy() + } + + function paste() { + textEdit.paste() + } + + function cut() { + textEdit.cut() + } + + // ensure propagation of forceActiveFocus + function forceActiveFocus() { + textEdit.forceActiveFocus() + } + + function select(start, end) { + textEdit.select(start, end) + } + + function selectAll() { + textEdit.selectAll() + } + + function selectWord() { + textEdit.selectWord() + } + + function positionAt(x, y) { + var p = mapToItem(textEdit, x, y); + return textEdit.positionAt(p.x, p.y) + } + + function positionToRectangle(pos) { + var rect = textEdit.positionToRectangle(pos) + var point = mapFromItem(textEdit, rect.x, rect.y) + rect.x = point.x; rect.y = point.y + return rect; + } + + function closeSoftwareInputPanel() { + console.log("TextArea's function closeSoftwareInputPanel is deprecated. Use function platformCloseSoftwareInputPanel instead.") + platformCloseSoftwareInputPanel() + } + + function platformCloseSoftwareInputPanel() { + inputContext.simulateSipClose(); + textEdit.closeSoftwareInputPanel(); + } + + function openSoftwareInputPanel() { + console.log("TextArea's function openSoftwareInputPanel is deprecated. Use function platformOpenSoftwareInputPanel instead.") + platformOpenSoftwareInputPanel() + } + + function platformOpenSoftwareInputPanel() { + inputContext.simulateSipOpen(); + textEdit.openSoftwareInputPanel(); + } + + Connections { + target: platformWindow + + onActiveChanged: { + if(platformWindow.active) { + if (!readOnly) { + if (activeFocus) { + platformOpenSoftwareInputPanel(); + repositionTimer.running = true; + } + } + } else { + if (activeFocus) { + platformCloseSoftwareInputPanel(); + Popup.close(textEdit); + } + } + } + + onAnimatingChanged: { + if (!platformWindow.animating && root.activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + } + } + + // private + property int __preeditDisabledMask: Qt.ImhHiddenText| + Qt.ImhNoPredictiveText| + Qt.ImhDigitsOnly| + Qt.ImhFormattedNumbersOnly| + Qt.ImhDialableCharactersOnly| + Qt.ImhEmailCharactersOnly| + Qt.ImhUrlCharactersOnly + + implicitWidth: platformStyle.defaultWidth + implicitHeight: Math.max (UI.FIELD_DEFAULT_HEIGHT, + textEdit.height + (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize)) + + onActiveFocusChanged: { + if (activeFocus && + !readOnly) { + platformOpenSoftwareInputPanel(); + repositionTimer.running = true; + } else if (!activeFocus) { + if (!readOnly) + platformCloseSoftwareInputPanel(); + + Popup.close(textEdit); + } + } + + BorderImage { + id: background + source: errorHighlight? + platformStyle.backgroundError: + readOnly? + platformStyle.backgroundDisabled: + textEdit.activeFocus? + platformStyle.backgroundSelected: + platformStyle.background + + anchors.fill: parent + border.left: root.platformStyle.backgroundCornerMargin; border.top: root.platformStyle.backgroundCornerMargin + border.right: root.platformStyle.backgroundCornerMargin; border.bottom: root.platformStyle.backgroundCornerMargin + } + + Text { + id: prompt + + anchors.fill: parent + anchors.leftMargin: UI.PADDING_XLARGE + anchors.rightMargin: UI.PADDING_XLARGE + anchors.topMargin: (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize) / 2 + anchors.bottomMargin: (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize) / 2 + + font: root.platformStyle.textFont + color: root.platformStyle.promptTextColor + elide: Text.ElideRight + + // opacity for default state + opacity: 0.0 + + states: [ + State { + name: "unfocused" + // memory allocation optimization: cursorPosition is checked to minimize displayText evaluations + when: !root.activeFocus && textEdit.cursorPosition == 0 && !textEdit.text && prompt.text && !textEdit.inputMethodComposing + PropertyChanges { target: prompt; opacity: 1.0; } + }, + State { + name: "focused" + // memory allocation optimization: cursorPosition is checked to minimize displayText evaluations + when: root.activeFocus && textEdit.cursorPosition == 0 && !textEdit.text && prompt.text && !textEdit.inputMethodComposing + PropertyChanges { target: prompt; opacity: 0.6; } + } + ] + + transitions: [ + Transition { + from: "unfocused"; to: "focused"; + reversible: true + SequentialAnimation { + PauseAnimation { duration: 60 } + NumberAnimation { target: prompt; properties: "opacity"; duration: 150 } + } + }, + Transition { + from: "focused"; to: ""; + reversible: true + SequentialAnimation { + PauseAnimation { duration: 60 } + NumberAnimation { target: prompt; properties: "opacity"; duration: 100 } + } + } + ] + } + + MouseArea { + enabled: !textEdit.activeFocus + z: enabled?1:0 + anchors.fill: parent + anchors.margins: UI.TOUCH_EXPANSION_MARGIN + onClicked: { + if (!textEdit.activeFocus) { + textEdit.forceActiveFocus(); + + // activate to preedit and/or move the cursor + var preeditDisabled = root.inputMethodHints & + root.__preeditDisabledMask + var injectionSucceeded = false; + var mappedMousePos = mapToItem(textEdit, mouseX, mouseY); + var newCursorPosition = textEdit.positionAt(mappedMousePos.x, mappedMousePos.y, TextInput.CursorOnCharacter); + if (!preeditDisabled + && !TextAreaHelper.atSpace(newCursorPosition) + && newCursorPosition != textEdit.text.length + && !(newCursorPosition == 0 || TextAreaHelper.atSpace(newCursorPosition - 1))) { + injectionSucceeded = TextAreaHelper.injectWordToPreedit(newCursorPosition); + } + if (!injectionSucceeded) { + textEdit.cursorPosition=newCursorPosition; + } + } + } + } + + TextEdit { + id: textEdit + + // Exposed for the edit bubble + property alias preedit: inputMethodObserver.preedit + property alias preeditCursorPosition: inputMethodObserver.preeditCursorPosition + + x: UI.PADDING_XLARGE + y: (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize) / 2 + width: parent.width - UI.PADDING_XLARGE * 2 + + font: root.platformStyle.textFont + color: root.platformStyle.textColor + selectByMouse: false + selectedTextColor: root.platformStyle.selectedTextColor + selectionColor: root.platformStyle.selectionColor + mouseSelectionMode: TextInput.SelectWords + wrapMode: TextEdit.Wrap + persistentSelection: false + focus: true + + function updateMagnifierPosition(posX, posY) { + var yAdjustment = 0 + var magnifier = MagnifierPopup.popup; + var cursorHeight = textEdit.positionToRectangle(0,0).height; + var mappedPos = mapToItem(magnifier.parent, posX - magnifier.width / 2, + posY - magnifier.height / 2 - cursorHeight - 70); + + magnifier.xCenter = mapToItem(magnifier.sourceItem, posX, 0).x; + magnifier.x = mappedPos.x; + if (-root.mapFromItem(magnifier.__rootElement(), 0,0).y - (posY - cursorHeight) < (magnifier.height / 1.5)) { + yAdjustment = Math.max(0,(magnifier.height / 1.5) + root.mapFromItem(magnifier.__rootElement(), 0,0).y - (posY - cursorHeight)); + } else { + yAdjustment = 0; + } + magnifier.yCenter = mapToItem(magnifier.sourceItem, 0, posY - cursorHeight + 50).y + magnifier.y = mappedPos.y + yAdjustment; + } + + Component.onDestruction: { + Popup.close(textEdit); + } + + onTextChanged: { + if(root.activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + + if (textEdit.preedit == "" && Popup.isOpened(textEdit) && !Popup.isChangingInput()) + Popup.close(textEdit); + } + + Connections { + target: TextAreaHelper.findFlickable(root.parent) + + onContentYChanged: if (root.activeFocus) TextAreaHelper.filteredInputContextUpdate(); + onContentXChanged: if (root.activeFocus) TextAreaHelper.filteredInputContextUpdate(); + onMovementEnded: inputContext.update(); + } + + Connections { + target: inputContext + + onSoftwareInputPanelVisibleChanged: { + if (activeFocus) + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + + onSoftwareInputPanelRectChanged: { + if (activeFocus) + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + } + + onCursorPositionChanged: { + if(!MagnifierPopup.isOpened() && activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation) + } + + if (MagnifierPopup.isOpened() && + Popup.isOpened(textEdit)) { + Popup.close(textEdit); + } else if ((!mouseFilter.attemptToActivate || + textEdit.cursorPosition == textEdit.text.length) && + Popup.isOpened(textEdit)) { + Popup.close(textEdit); + Popup.open(textEdit, + textEdit.positionToRectangle(textEdit.cursorPosition)); + } + } + + onSelectedTextChanged: { + if (Popup.isOpened(textEdit) && !Popup.isChangingInput()) { + Popup.close(textEdit); + } + } + + InputMethodObserver { + id: inputMethodObserver + + onPreeditChanged: { + if (Popup.isOpened(textEdit) && !Popup.isChangingInput()) { + Popup.close(textEdit); + } + } + + } + + Timer { + id: repositionTimer + interval: 350 + onTriggered: TextAreaHelper.repositionFlickable(contentMovingAnimation) + } + + PropertyAnimation { + id: contentMovingAnimation + property: "contentY" + duration: 200 + easing.type: Easing.InOutCubic + } + + MouseFilter { + id: mouseFilter + anchors.fill: parent + anchors.leftMargin: UI.TOUCH_EXPANSION_MARGIN - UI.PADDING_XLARGE + anchors.rightMargin: UI.TOUCH_EXPANSION_MARGIN - UI.PADDING_MEDIUM + anchors.topMargin: UI.TOUCH_EXPANSION_MARGIN - (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize) / 2 + anchors.bottomMargin: UI.TOUCH_EXPANSION_MARGIN - (UI.FIELD_DEFAULT_HEIGHT - font.pixelSize) / 2 + + property bool attemptToActivate: false + property bool pressOnPreedit + + property variant editBubblePosition: Qt.point(0,0) + + onPressed: { + var mousePosition = textEdit.positionAt(mouse.x,mouse.y,TextEdit.CursorOnCharacter); + pressOnPreedit = textEdit.cursorPosition==mousePosition + var preeditDisabled = root.inputMethodHints & + root.__preeditDisabledMask + + attemptToActivate = !pressOnPreedit && !root.readOnly && !preeditDisabled && root.activeFocus && + !(mousePosition == 0 || TextAreaHelper.atSpace(mousePosition - 1) || TextAreaHelper.atSpace(mousePosition)); + mouse.filtered = true; + } + + onHorizontalDrag: { + // possible pre-edit word have to be committed before selection + if (root.activeFocus || root.readOnly) { + inputContext.reset() + parent.selectByMouse = true + attemptToActivate = false + } + } + + onPressAndHold:{ + // possible pre-edit word have to be commited before showing the magnifier + if ((root.text != "" || inputMethodObserver.preedit != "") && root.activeFocus) { + inputContext.reset() + attemptToActivate = false + parent.selectByMouse = false + MagnifierPopup.open(root); + var magnifier = MagnifierPopup.popup; + parent.cursorPosition = parent.positionAt(mouse.x,mouse.y) + parent.updateMagnifierPosition(mouse.x,mouse.y) + root.z = Number.MAX_VALUE + } + } + + onReleased:{ + if (MagnifierPopup.isOpened()) { + MagnifierPopup.close(); + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + + if (attemptToActivate) + inputContext.reset(); + + var newCursorPosition = textEdit.positionAt(mouse.x,mouse.y,TextEdit.CursorOnCharacter); + editBubblePosition = textEdit.positionToRectangle(newCursorPosition); + + if (attemptToActivate) { + var beforeText = textEdit.text; + + textEdit.cursorPosition = newCursorPosition; + var injectionSucceeded = false; + + if (!TextAreaHelper.atSpace(newCursorPosition) + && newCursorPosition != textEdit.text.length) { + injectionSucceeded = TextAreaHelper.injectWordToPreedit(newCursorPosition); + } + if (injectionSucceeded) { + mouse.filtered=true; + if (textEdit.preedit.length >=1 && textEdit.preedit.length <= 4) + editBubblePosition = textEdit.positionToRectangle(textEdit.cursorPosition); + } else { + textEdit.text=beforeText; + textEdit.cursorPosition=newCursorPosition; + } + attemptToActivate = false; + } else if (!parent.selectByMouse) { + if (!pressOnPreedit) inputContext.reset(); + textEdit.cursorPosition = textEdit.positionAt(mouse.x,mouse.y,TextEdit.CursorOnCharacter); + } + parent.selectByMouse = false; + } + onFinished: { + if (root.activeFocus && platformEnableEditBubble) { + if (textEdit.preedit.length == 0) + editBubblePosition = textEdit.positionToRectangle(textEdit.cursorPosition); + Popup.open(textEdit,editBubblePosition); + } + } + onMousePositionChanged: { + if (MagnifierPopup.isOpened() && !parent.selectByMouse) { + var pos = textEdit.positionAt (mouse.x,mouse.y) + var posNextLine = textEdit.positionAt (mouse.x, mouse.y + 1) + var posPrevLine = textEdit.positionAt (mouse.x, mouse.y - 1) + if (!(Math.abs(posNextLine - pos) > 1 || + Math.abs(posPrevLine - pos) > 1)) { + parent.cursorPosition = pos + } + parent.updateMagnifierPosition(mouse.x,mouse.y); + } + } + onDoubleClicked: { + // possible pre-edit word have to be committed before selection + inputContext.reset() + parent.selectByMouse = true + attemptToActivate = false + } + } + } + + + + InverseMouseArea { + anchors.fill: parent + anchors.margins: UI.TOUCH_EXPANSION_MARGIN + enabled: root.activeFocus + + onClickedOutside: { + if (Popup.isOpened(textEdit) && ((mouseX > Popup.geometry().left && mouseX < Popup.geometry().right) && + (mouseY > Popup.geometry().top && mouseY < Popup.geometry().bottom))) { + return; + } + + root.parent.focus = true; + } + } +} diff --git a/mardrone/imports/com/nokia/meego/TextAreaHelper.js b/mardrone/imports/com/nokia/meego/TextAreaHelper.js new file mode 100644 index 0000000..acd4f75 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/TextAreaHelper.js @@ -0,0 +1,279 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +function findFlickable(component) { + var nextParent = component + var flickableItem = null + while(nextParent) { + if(nextParent.flicking !== undefined && nextParent.flickableDirection !== undefined) + flickableItem = nextParent + + nextParent = nextParent.parent + } + if (flickableItem) return flickableItem + return null +} + +function animateContentY(animation, flickable, newContentY) { + animation.target = flickable + animation.to = newContentY + animation.running = true +} + +function locateFlickableY(flickable) { + switch(screen.currentOrientation) { + case Screen.Landscape: + return flickable.mapToItem(null, flickable.x, flickable.y).y + + case Screen.LandscapeInverted: + return screen.displayHeight - flickable.mapToItem(null, flickable.x, flickable.y).y + + case Screen.Portrait: + return flickable.mapToItem(null, flickable.x, flickable.y).x + + case Screen.PortraitInverted: + return screen.displayWidth - flickable.mapToItem(null, flickable.x, flickable.y).x + } +} + +function getMargin() { + switch(screen.currentOrientation) { + case Screen.Landscape: + case Screen.LandscapeInverted: + return 40 + case Screen.Portrait: + case Screen.PortraitInverted: + return 48 + } + + return 0 +} + +function repositionFlickable(animation) { + inputContext.updateMicroFocus() + var mf = inputContext.microFocus + + if(mf.x == -1 && mf.y == -1) + return + + var object = findFlickable(parent) + + if(object){ + var flickable = object + + // Specifies area from bottom and top when repositioning should be triggered + var margin = getMargin() + var newContentY = flickable.contentY + var flickableY = locateFlickableY(flickable) + + switch(screen.currentOrientation) { + case Screen.Landscape: + if(flickableY + flickable.height - mf.height - margin < mf.y) { + // Find dY just to make textfield visible + var dY = mf.y - flickableY - flickable.height + // Center textfield + dY += flickable.height / 2 + newContentY += dY + } else if(flickableY + margin > mf.y) { + var dY = flickableY - mf.y + dY += flickable.height / 2 + newContentY -= dY + } + + break + + case Screen.LandscapeInverted: + // In inverted screen we need to compensate for the focus height + var invertedMfY = screen.displayHeight - mf.y - mf.height + + if(flickableY + flickable.height - mf.height - margin < invertedMfY) { + var dY = invertedMfY - flickableY - flickable.height + dY += flickable.height / 2 + mf.height / 2 + } else if(flickableY + margin > invertedMfY){ + var dY = flickableY - invertedMfY + dY += flickable.height / 2 - mf.height / 2 + newContentY -= dY + } + + break + + case Screen.Portrait: + if(flickableY + flickable.height - mf.width - margin < mf.x) { + var dY = mf.x - flickableY - flickable.height + dY += flickable.height / 2 + newContentY += dY + } else if(flickableY + margin > mf.x){ + var dY = flickableY - mf.x + dY += flickable.height / 2 + newContentY -= dY + } + + break + + case Screen.PortraitInverted: + var invertedMfX = screen.displayWidth - mf.x - mf.width + + if(flickableY + flickable.height - mf.width - margin < invertedMfX) { + var dY = invertedMfX - flickableY - flickable.height + mf.height + dY += flickable.height / 2 + mf.height + newContentY += dY + } else if(flickableY + margin > invertedMfX){ + var dY = flickableY - invertedMfX + dY += flickable.height / 2 - mf.height + newContentY -= dY + } + + break + } + + // If overpanned, set contentY to max possible value (reached bottom) + if(newContentY > flickable.contentHeight - flickable.height) + newContentY = flickable.contentHeight - flickable.height + + // If overpanned, set contentY to min possible value (reached top) + if(newContentY < 0) + newContentY = 0 + + if(newContentY != flickable.contentY) { + animateContentY(animation, flickable, newContentY) + } + } +} + +function injectWordToPreedit(newCursorPosition) { + var preeditStart = previousWordStart(newCursorPosition); + var preeditEnd = nextWordEnd(newCursorPosition); + + // copy word to preedit text + var preeditText = root.text.substring(preeditStart,preeditEnd); + + // inject preedit + cursorPosition = preeditStart; + + var eventCursorPosition = newCursorPosition-preeditStart; + + return inputContext.setPreeditText(preeditText, eventCursorPosition, 0, preeditText.length); +} + +function previousWordStart(pos) { + var ret = pos; + + if (ret && atWordSeparator(ret - 1)) { + ret--; + while (ret && atWordSeparator(ret - 1)) + ret--; + } else { + while (ret && !atSpace(ret - 1) && !atWordSeparator(ret - 1)) + ret--; + } + + return ret; +} + +function nextWordEnd(pos) { + var ret = pos; + var len = root.text.length; + + if (ret < len && atWordSeparator(ret)) { + ret++; + while (ret < len && atWordSeparator(ret)) + ret++; + } else { + while (ret < len && !atSpace(ret) && !atWordSeparator(ret)) + ret++; + } + + return ret; +} + +function atSpace(pos) { + var c = root.text.charAt(pos); + return c == ' ' + || c == '\t' + || c == '\n' + ; +} + +function atWordSeparator(pos) { + switch (root.text.charAt(pos)) { + case '.': + case ',': + case '?': + case '!': + case '@': + case '#': + case '$': + case ':': + case ';': + case '-': + case '<': + case '>': + case '[': + case ']': + case '(': + case ')': + case '{': + case '}': + case '=': + case '/': + case '+': + case '%': + case '&': + case '^': + case '*': + case '\'': + case '"': + case '`': + case '~': + case '|': + return true; + default: + return false; + } +} + +var MIN_UPDATE_INTERVAL = 30 +var lastUpdateTime +function filteredInputContextUpdate() { + if (Date.now() - lastUpdateTime > MIN_UPDATE_INTERVAL || !lastUpdateTime) { + inputContext.update(); + lastUpdateTime = Date.now(); + } +} diff --git a/mardrone/imports/com/nokia/meego/TextAreaStyle.qml b/mardrone/imports/com/nokia/meego/TextAreaStyle.qml new file mode 100644 index 0000000..73a7f6f --- /dev/null +++ b/mardrone/imports/com/nokia/meego/TextAreaStyle.qml @@ -0,0 +1,43 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +TextFieldStyle {} diff --git a/mardrone/imports/com/nokia/meego/TextField.qml b/mardrone/imports/com/nokia/meego/TextField.qml new file mode 100644 index 0000000..45ff87e --- /dev/null +++ b/mardrone/imports/com/nokia/meego/TextField.qml @@ -0,0 +1,571 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI +import "EditBubble.js" as Popup +import "TextAreaHelper.js" as TextAreaHelper +import "Magnifier.js" as MagnifierPopup +FocusScope { + id: root + + // Common public API + property alias text: textInput.text + property alias placeholderText: prompt.text + + property alias inputMethodHints: textInput.inputMethodHints + property alias font: textInput.font + property alias cursorPosition: textInput.cursorPosition + property alias maximumLength: textInput.maximumLength + property alias readOnly: textInput.readOnly + property alias acceptableInput: textInput.acceptableInput + property alias inputMask: textInput.inputMask + property alias validator: textInput.validator + + property alias selectedText: textInput.selectedText + property alias selectionStart: textInput.selectionStart + property alias selectionEnd: textInput.selectionEnd + + property alias echoMode: textInput.echoMode // ### TODO: declare own enum { Normal, Password } + + property bool errorHighlight: !acceptableInput + // Property enableSoftwareInputPanel is DEPRECATED + property alias enableSoftwareInputPanel: textInput.activeFocusOnPress + + property Item platformSipAttributes + + property bool platformEnableEditBubble: true + + property Item platformStyle: TextFieldStyle {} + + property alias style: root.platformStyle + + property Component customSoftwareInputPanel + + property Component platformCustomSoftwareInputPanel + + property alias platformPreedit: inputMethodObserver.preedit + + signal accepted + + onPlatformSipAttributesChanged: { + platformSipAttributes.registerInputElement(textInput) + } + + onCustomSoftwareInputPanelChanged: { + console.log("TextField's property customSoftwareInputPanel is deprecated. Use property platformCustomSoftwareInputPanel instead.") + platformCustomSoftwareInputPanel = customSoftwareInputPanel + } + + onPlatformCustomSoftwareInputPanelChanged: { + textInput.activeFocusOnPress = platformCustomSoftwareInputPanel == null + } + + + + function copy() { + textInput.copy() + } + + Connections { + target: platformWindow + + onActiveChanged: { + if(platformWindow.active) { + if (!readOnly) { + if (activeFocus) { + if (platformCustomSoftwareInputPanel != null) { + platformOpenSoftwareInputPanel(); + } else { + inputContext.simulateSipOpen(); + } + repositionTimer.running = true; + } + } + } else { + if (activeFocus) { + platformCloseSoftwareInputPanel(); + Popup.close(textInput); + } + } + } + + onAnimatingChanged: { + if (!platformWindow.animating && root.activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation); + } + } + } + + + function paste() { + textInput.paste() + } + + function cut() { + textInput.cut() + } + + function select(start, end) { + textInput.select(start, end) + } + + function selectAll() { + textInput.selectAll() + } + + function selectWord() { + textInput.selectWord() + } + + function positionAt(x) { + var p = mapToItem(textInput, x, 0); + return textInput.positionAt(p.x) + } + + function positionToRectangle(pos) { + var rect = textInput.positionToRectangle(pos) + rect.x = mapFromItem(textInput, rect.x, 0).x + return rect; + } + + // ensure propagation of forceActiveFocus + function forceActiveFocus() { + textInput.forceActiveFocus() + } + + function closeSoftwareInputPanel() { + console.log("TextField's function closeSoftwareInputPanel is deprecated. Use function platformCloseSoftwareInputPanel instead.") + platformCloseSoftwareInputPanel() + } + + function platformCloseSoftwareInputPanel() { + inputContext.simulateSipClose(); + if (inputContext.customSoftwareInputPanelVisible) { + inputContext.customSoftwareInputPanelVisible = false + inputContext.customSoftwareInputPanelComponent = null + inputContext.customSoftwareInputPanelTextField = null + } else { + textInput.closeSoftwareInputPanel(); + } + } + + function openSoftwareInputPanel() { + console.log("TextField's function openSoftwareInputPanel is deprecated. Use function platformOpenSoftwareInputPanel instead.") + platformOpenSoftwareInputPanel() + } + + function platformOpenSoftwareInputPanel() { + inputContext.simulateSipOpen(); + if (platformCustomSoftwareInputPanel != null && !inputContext.customSoftwareInputPanelVisible) { + inputContext.customSoftwareInputPanelTextField = root + inputContext.customSoftwareInputPanelComponent = platformCustomSoftwareInputPanel + inputContext.customSoftwareInputPanelVisible = true + } else { + textInput.openSoftwareInputPanel(); + } + } + + // private + property bool __expanding: true // Layout hint used but ToolBarLayout + property int __preeditDisabledMask: Qt.ImhHiddenText| + Qt.ImhNoPredictiveText| + Qt.ImhDigitsOnly| + Qt.ImhFormattedNumbersOnly| + Qt.ImhDialableCharactersOnly| + Qt.ImhEmailCharactersOnly| + Qt.ImhUrlCharactersOnly + + implicitWidth: platformStyle.defaultWidth + implicitHeight: UI.FIELD_DEFAULT_HEIGHT + + onActiveFocusChanged: { + if (!readOnly) { + if (activeFocus) { + if (platformCustomSoftwareInputPanel != null) { + platformOpenSoftwareInputPanel(); + } else { + inputContext.simulateSipOpen(); + } + + repositionTimer.running = true; + } else { + platformCloseSoftwareInputPanel(); + Popup.close(textInput); + } + } + } + + + BorderImage { + id: background + source: errorHighlight? + platformStyle.backgroundError: + readOnly? + platformStyle.backgroundDisabled: + textInput.activeFocus? + platformStyle.backgroundSelected: + platformStyle.background + + anchors.fill: parent + border.left: root.platformStyle.backgroundCornerMargin; border.top: root.platformStyle.backgroundCornerMargin + border.right: root.platformStyle.backgroundCornerMargin; border.bottom: root.platformStyle.backgroundCornerMargin + } + + Text { + id: prompt + + anchors {verticalCenter: parent.verticalCenter; left: parent.left; right: parent.right} + anchors.leftMargin: root.platformStyle.paddingLeft + anchors.rightMargin: root.platformStyle.paddingRight + anchors.verticalCenterOffset: root.platformStyle.baselineOffset + + font: root.platformStyle.textFont + color: root.platformStyle.promptTextColor + elide: Text.ElideRight + + // opacity for default state + opacity: 0.0 + + states: [ + State { + name: "unfocused" + // memory allocation optimization: cursorPosition is checked to minimize displayText evaluations + when: !root.activeFocus && textInput.cursorPosition == 0 && !textInput.text && prompt.text && !textInput.inputMethodComposing + PropertyChanges { target: prompt; opacity: 1.0; } + }, + State { + name: "focused" + // memory allocation optimization: cursorPosition is checked to minimize displayText evaluations + when: root.activeFocus && textInput.cursorPosition == 0 && !textInput.text && prompt.text && !textInput.inputMethodComposing + PropertyChanges { target: prompt; opacity: 0.6; } + } + ] + + transitions: [ + Transition { + from: "unfocused"; to: "focused"; + reversible: true + SequentialAnimation { + PauseAnimation { duration: 60 } + NumberAnimation { target: prompt; properties: "opacity"; duration: 150 } + } + }, + Transition { + from: "focused"; to: ""; + reversible: true + SequentialAnimation { + PauseAnimation { duration: 60 } + NumberAnimation { target: prompt; properties: "opacity"; duration: 100 } + } + } + ] + } + + MouseArea { + enabled: !textInput.activeFocus + z: enabled?1:0 + anchors.fill: parent + anchors.margins: UI.TOUCH_EXPANSION_MARGIN + onClicked: { + if (!textInput.activeFocus) { + textInput.forceActiveFocus(); + + // activate to preedit and/or move the cursor + var preeditDisabled = root.inputMethodHints & + root.__preeditDisabledMask + var injectionSucceeded = false; + var newCursorPosition = textInput.positionAt(mapToItem(textInput, mouseX, mouseY).x,TextInput.CursorOnCharacter); + if (!preeditDisabled + && !TextAreaHelper.atSpace(newCursorPosition) + && newCursorPosition != textInput.text.length + && !(newCursorPosition == 0 || TextAreaHelper.atSpace(newCursorPosition - 1))) { + injectionSucceeded = TextAreaHelper.injectWordToPreedit(newCursorPosition); + } + if (!injectionSucceeded) { + textInput.cursorPosition=newCursorPosition; + } + } + } + } + + TextInput { + id: textInput + + property alias preedit: inputMethodObserver.preedit + property alias preeditCursorPosition: inputMethodObserver.preeditCursorPosition + + anchors {verticalCenter: parent.verticalCenter; left: parent.left; right: parent.right} + anchors.leftMargin: root.platformStyle.paddingLeft + anchors.rightMargin: root.platformStyle.paddingRight + anchors.verticalCenterOffset: root.platformStyle.baselineOffset + + passwordCharacter: "\u2022" + font: root.platformStyle.textFont + color: root.platformStyle.textColor + selectByMouse: false + selectedTextColor: root.platformStyle.selectedTextColor + selectionColor: root.platformStyle.selectionColor + mouseSelectionMode: TextInput.SelectWords + focus: true + + onAccepted: { root.accepted() } + + Component.onDestruction: { + Popup.close(textInput); + } + + Connections { + target: TextAreaHelper.findFlickable(root.parent) + + onContentYChanged: if (root.activeFocus) TextAreaHelper.filteredInputContextUpdate(); + onContentXChanged: if (root.activeFocus) TextAreaHelper.filteredInputContextUpdate(); + onMovementEnded: inputContext.update(); + } + + Connections { + target: inputContext + + onSoftwareInputPanelRectChanged: { + if (activeFocus) { + repositionTimer.running = true + } + } + } + + onTextChanged: { + if(root.activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation) + } + + if (Popup.isOpened(textInput) && !Popup.isChangingInput()) + Popup.close(textInput); + } + + onCursorPositionChanged: { + if (MagnifierPopup.isOpened() && + Popup.isOpened()) { + Popup.close(textInput); + } else if ((!mouseFilter.attemptToActivate || + textInput.cursorPosition == textInput.text.length) && + Popup.isOpened(textInput) && + !Popup.isChangingInput()) { + Popup.close(textInput); + Popup.open(textInput, + textInput.positionToRectangle(textInput.cursorPosition)); + } + } + + onSelectedTextChanged: { + if (Popup.isOpened(textInput) && !Popup.isChangingInput()) { + Popup.close(textInput); + } + } + + InputMethodObserver { + id: inputMethodObserver + + onPreeditChanged: { + if(root.activeFocus) { + TextAreaHelper.repositionFlickable(contentMovingAnimation) + } + + if (Popup.isOpened(textInput) && !Popup.isChangingInput()) { + Popup.close(textInput); + } + } + } + + Timer { + id: repositionTimer + interval: 350 + onTriggered: { + TextAreaHelper.repositionFlickable(contentMovingAnimation) + } + } + + PropertyAnimation { + id: contentMovingAnimation + property: "contentY" + duration: 200 + easing.type: Easing.InOutCubic + } + + MouseFilter { + id: mouseFilter + anchors.fill: parent + anchors.leftMargin: UI.TOUCH_EXPANSION_MARGIN - root.platformStyle.paddingLeft + anchors.rightMargin: UI.TOUCH_EXPANSION_MARGIN - root.platformStyle.paddingRight + anchors.topMargin: UI.TOUCH_EXPANSION_MARGIN - ((root.height - parent.height) / 2) + anchors.bottomMargin: UI.TOUCH_EXPANSION_MARGIN - ((root.height - parent.height) / 2) + + property bool attemptToActivate: false + property bool pressOnPreedit: false + property int oldCursorPosition: 0 + + property variant editBubblePosition: Qt.point(0,0) + + onPressed: { + var mousePosition = textInput.positionAt(mouse.x,TextInput.CursorOnCharacter); + pressOnPreedit = textInput.cursorPosition==mousePosition + oldCursorPosition = textInput.cursorPosition; + var preeditDisabled = root.inputMethodHints & + root.__preeditDisabledMask + + attemptToActivate = !pressOnPreedit && !root.readOnly && !preeditDisabled && root.activeFocus && + !(mousePosition == 0 || TextAreaHelper.atSpace(mousePosition - 1) || TextAreaHelper.atSpace(mousePosition)); + mouse.filtered = true; + } + + onDelayedPressSent: { + if (textInput.preedit) { + textInput.cursorPosition = oldCursorPosition; + } + } + + onHorizontalDrag: { + // possible pre-edit word have to be commited before selection + if (root.activeFocus || root.readOnly) { + inputContext.reset() + parent.selectByMouse = true + attemptToActivate = false + } + } + + onPressAndHold:{ + // possible pre-edit word have to be commited before showing the magnifier + if ((root.text != "" || inputMethodObserver.preedit != "") && root.activeFocus) { + inputContext.reset() + attemptToActivate = false + MagnifierPopup.open(root); + var magnifier = MagnifierPopup.popup; + var cursorPos = textInput.positionToRectangle(0); + var mappedPosMf = mapFromItem(parent,mouse.x,cursorPos.y+cursorPos.height); + magnifier.xCenter = mapToItem(magnifier.sourceItem,mappedPosMf.x,0).x; + var mappedPos = mapToItem(magnifier.parent, mappedPosMf.x - magnifier.width / 2, + textInput.y - 120 - UI.MARGIN_XLARGE - (height / 2)); + var yAdjustment = -mapFromItem(magnifier.__rootElement(), 0, 0).y < magnifier.height / 2.5 ? magnifier.height / 2.5 + mapFromItem(magnifier.__rootElement(), 0,0).y : 0 + magnifier.x = mappedPos.x; + magnifier.y = mappedPos.y + yAdjustment; + magnifier.yCenter = mapToItem(magnifier.sourceItem,0,mappedPosMf.y).y; + parent.cursorPosition = textInput.positionAt(mouse.x) + } + } + + onReleased: { + if (MagnifierPopup.isOpened()) { + MagnifierPopup.close(); + } + + if (attemptToActivate) + inputContext.reset(); + + var newCursorPosition = textInput.positionAt(mouse.x,TextInput.CursorOnCharacter); + editBubblePosition = textInput.positionToRectangle(newCursorPosition); + + if (attemptToActivate) { + var beforeText = textInput.text; + + textInput.cursorPosition = newCursorPosition; + var injectionSucceeded = false; + + if (!TextAreaHelper.atSpace(newCursorPosition) + && newCursorPosition != textInput.text.length) { + injectionSucceeded = TextAreaHelper.injectWordToPreedit(newCursorPosition); + } + if (injectionSucceeded) { + mouse.filtered=true; + if (textInput.preedit.length >=1 && textInput.preedit.length <= 4) + editBubblePosition = textInput.positionToRectangle(textInput.cursorPosition+1) + } else { + textInput.text=beforeText; + textInput.cursorPosition=newCursorPosition; + } + } else if (!parent.selectByMouse) { + if (!pressOnPreedit) inputContext.reset(); + textInput.cursorPosition = textInput.positionAt(mouse.x,TextInput.CursorOnCharacter); + } + parent.selectByMouse = false; + } + + onFinished: { + if (root.activeFocus && platformEnableEditBubble) { + if (textInput.preedit.length == 0) + editBubblePosition = textInput.positionToRectangle(textInput.cursorPosition); + Popup.open(textInput,editBubblePosition); + + } + attemptToActivate = false + } + + onMousePositionChanged: { + if (MagnifierPopup.isOpened() && !parent.selectByMouse) { + textInput.cursorPosition = textInput.positionAt(mouse.x) + var magnifier = MagnifierPopup.popup; + var mappedPosMf = mapFromItem(parent,mouse.x,0); + var mappedPos = mapToItem(magnifier.parent,mappedPosMf.x - magnifier.width / 2.0, 0); + magnifier.xCenter = mapToItem(magnifier.sourceItem,mappedPosMf.x,0).x; + magnifier.x = mappedPos.x; + } + } + + onDoubleClicked: { + // possible pre-edit word have to be commited before selection + inputContext.reset() + parent.selectByMouse = true + attemptToActivate = false + } + } + } + + InverseMouseArea { + anchors.fill: parent + anchors.margins: UI.TOUCH_EXPANSION_MARGIN + enabled: textInput.activeFocus + onClickedOutside: { + if (Popup.isOpened(textInput) && ((mouseX > Popup.geometry().left && mouseX < Popup.geometry().right) && + (mouseY > Popup.geometry().top && mouseY < Popup.geometry().bottom))) { + return; + } + root.parent.focus = true; + } + } +} diff --git a/mardrone/imports/com/nokia/meego/TextFieldStyle.qml b/mardrone/imports/com/nokia/meego/TextFieldStyle.qml new file mode 100644 index 0000000..646ef44 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/TextFieldStyle.qml @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Item { + property alias textFont: textProperties.font + property color textColor: UI.COLOR_FOREGROUND + property color selectedTextColor: UI.COLOR_INVERTED_FOREGROUND + property color selectionColor: theme.selectionColor + + property color promptTextColor: UI.COLOR_SECONDARY_FOREGROUND + + property url background: "image://theme/meegotouch-textedit-background" + property url backgroundSelected: "image://theme/" + theme.colorString + "meegotouch-textedit-background-selected" + property url backgroundDisabled: "image://theme/meegotouch-textedit-background-disabled" + property url backgroundError: "image://theme/meegotouch-textedit-background-error" + property real backgroundCornerMargin: UI.CORNER_MARGINS + + property real paddingLeft: UI.PADDING_XLARGE + property real paddingRight: UI.PADDING_XLARGE + property real paddingTop // DEPRECATED + property real paddingBottom // DEPRECATED + + property real baselineOffset: 2 + property real defaultWidth: 250 + + property real touchExpansionMargin: UI.TOUCH_EXPANSION_MARGIN + + Text { + id: textProperties + font.family: UI.FONT_FAMILY_LIGHT + font.pixelSize: UI.FONT_DEFAULT + visible: false + } +} diff --git a/mardrone/imports/com/nokia/meego/ToolBar.qml b/mardrone/imports/com/nokia/meego/ToolBar.qml new file mode 100644 index 0000000..4bce4c1 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ToolBar.qml @@ -0,0 +1,305 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// The ToolBar is a container for toolbar items such as ToolItem or ToolButton. + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + + width: parent ? parent.width : 0 + height: bgImage.height + + // Dummy property to allow qt component deprecated API clients to fail more gracefully + property bool __hidden: false + + property int privateVisibility: ToolBarVisibility.Visible + + // Styling for the ToolBar + property Style platformStyle: ToolBarStyle {} + + // Deprecated, TODO remove + property alias style: root.platformStyle + + // Shadows: + Image { + anchors.top : bgImage.top + anchors.right: bgImage.left + anchors.bottom : bgImage.bottom + source: "image://theme/meegotouch-menu-shadow-left" + } + Image { + anchors.bottom : bgImage.top + anchors.left: bgImage.left + anchors.right : bgImage.right + source: "image://theme/meegotouch-menu-shadow-top" + } + Image { + anchors.top : bgImage.top + anchors.left: bgImage.right + anchors.bottom : bgImage.bottom + source: "image://theme/meegotouch-menu-shadow-right" + } + Image { + anchors.top : bgImage.bottom + anchors.left: bgImage.left + anchors.right : bgImage.right + source: "image://theme/meegotouch-menu-shadow-bottom" + } + // Toolbar background. + BorderImage { + id: bgImage + width: root.width + border.left: 10 + border.right: 10 + border.top: 10 + border.bottom: 10 + source: platformStyle.background + + // Mousearea that eats clicks so they don't go through the toolbar to content + // that may exist below it in z-order, such as unclipped listview items. + MouseArea { anchors.fill: parent } + } + + states: [ + // Inactive state. + State { + name: "hidden" + when: privateVisibility == ToolBarVisibility.Hidden || tools == null + PropertyChanges { target: root; height: 0; } + }, + State { + name: "HiddenImmediately" + when: privateVisibility == ToolBarVisibility.HiddenImmediately + PropertyChanges { target: root; height: 0; } + }, + State { + name: "" + when: !(privateVisibility == ToolBarVisibility.Visible || tools == null) + PropertyChanges { target: root; height: bgImage.height } + } + + ] + + transitions: [ + // Transition between active and inactive states. + Transition { + from: ""; to: "hidden"; reversible: true + ParallelAnimation { + PropertyAnimation { properties: "height"; easing.type: Easing.InOutExpo; duration: platformStyle.visibilityTransitionDuration } + } + } + ] + + // The current set of tools. + property Item tools: null + + onToolsChanged: { + __performTransition(__transition || transition); + __transition = undefined; + } + + // The transition type. One of the following: + // set an instantaneous change (default) + // push follows page stack push animation + // pop follows page stack pop animation + // replace follows page stack replace animation + property string transition: "set" + + // The currently displayed container; null if none. + property Item __currentContainer: null + + // Alternating containers used for transitions. + property Item __containerA: null + property Item __containerB: null + + // The transition to perform next. + property variant __transition + + // Sets the tools with a transition. + function setTools(tools, transition) { + __transition = transition; + root.tools = tools; + } + + // Performs a transition between tools in the toolbar. + function __performTransition(transition) { + // lazily create containers if they have not been created + if (!__currentContainer) { + // Parent is bgImage because it doesn't change height when toolbar gets hidden + __containerA = containerComponent.createObject(bgImage); + __containerB = containerComponent.createObject(bgImage); + __currentContainer = __containerB; + } + + // no transition if the tools are unchanged + if (__currentContainer.tools == tools) { + return; + } + + // select container states based on the transition animation + var transitions = { + "set": { "new": "", "old": "hidden" }, + "push": { "new": "right", "old": "left" }, + "pop": { "new": "left", "old": "right" }, + "replace": { "new": "front", "old": "back" } + }; + var animation = transitions[transition]; + + // initialize the free container + var container = __currentContainer == __containerA ? __containerB : __containerA; + container.state = "hidden"; + if (tools) { + container.tools = tools; + container.owner = tools.parent; + tools.parent = container; + tools.visible = true; + } + + // perform transition + __currentContainer.state = animation["old"]; + if (tools) { + container.state = animation["new"]; + container.state = ""; + } + + __currentContainer = container; + } + + // Component for toolbar containers. + Component { + id: containerComponent + + Item { + id: container + + width: parent ? parent.width : 0 + height: parent ? parent.height : 0 + + // The states correspond to the different possible positions of the container. + state: "hidden" + + // The tools held by this container. + property Item tools: null + // The owner of the tools. + property Item owner: null + + states: [ + // Start state for pop entry, end state for push exit. + State { + name: "left" + PropertyChanges { target: container; x: -30; opacity: 0.0 } + }, + // Start state for push entry, end state for pop exit. + State { + name: "right" + PropertyChanges { target: container; x: 30; opacity: 0.0 } + }, + // Start state for replace entry. + State { + name: "front" + PropertyChanges { target: container; scale: 1.25; opacity: 0.0 } + }, + // End state for replace exit. + State { + name: "back" + PropertyChanges { target: container; scale: 0.85; opacity: 0.0 } + }, + // Inactive state. + State { + name: "hidden" + PropertyChanges { target: container; visible: false } + StateChangeScript { + script: { + if (container.tools) { + // re-parent back to original owner + tools.visible = false; + tools.parent = owner; + + // reset container + container.tools = container.owner = null; + } + } + } + } + ] + + transitions: [ + // Pop entry and push exit transition. + Transition { + from: ""; to: "left"; reversible: true + SequentialAnimation { + PropertyAnimation { properties: "x,opacity"; easing.type: Easing.InCubic; duration: platformStyle.contentTransitionDuration / 2 } + PauseAnimation { duration: platformStyle.contentTransitionDuration / 2 } + ScriptAction { script: if (state == "left") state = "hidden"; } + } + }, + // Push entry and pop exit transition. + Transition { + from: ""; to: "right"; reversible: true + SequentialAnimation { + PropertyAnimation { properties: "x,opacity"; easing.type: Easing.InCubic; duration: platformStyle.contentTransitionDuration / 2 } + PauseAnimation { duration: platformStyle.contentTransitionDuration / 2 } + ScriptAction { script: if (state == "right") state = "hidden"; } + } + }, + Transition { + // Replace entry transition. + from: "front"; to: ""; + SequentialAnimation { + PropertyAnimation { properties: "scale,opacity"; easing.type: Easing.InOutExpo; duration: platformStyle.contentTransitionDuration } + } + }, + Transition { + // Replace exit transition. + from: ""; to: "back"; + SequentialAnimation { + PropertyAnimation { properties: "scale,opacity"; easing.type: Easing.InOutExpo; duration: platformStyle.contentTransitionDuration } + ScriptAction { script: if (state == "back") state = "hidden"; } + } + } + ] + + } + } + +} diff --git a/mardrone/imports/com/nokia/meego/ToolBarLayout.js b/mardrone/imports/com/nokia/meego/ToolBarLayout.js new file mode 100644 index 0000000..691b63a --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ToolBarLayout.js @@ -0,0 +1,164 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/// Helper code that is needed by ToolBarLayout. + +var connectedItems = []; + +// Find item in an array +function contains(container, obj) { + for (var i = 0 ; i < container.length; i++) { + if (container[i] == obj) + return true; + } + return false +} + +// Remove item from an array +function remove(container, obj) +{ + for (var i = 0 ; i < container.length ; i++ ) + if (container[i] == obj) + container.splice(i,1); +} + +// Helper function to give us the sender id on slots +// This is needed to remove connectens on a reparent +Function.prototype.bind = function() { + var func = this; + var thisObject = arguments[0]; + var args = Array.prototype.slice.call(arguments, 1); + return function() { + return func.apply(thisObject, args); + } +} + +// Called whenever a child is added or removed in the toolbar +function childrenChanged() { + for (var i = 0; i < children.length; i++) { + if (!contains(connectedItems, children[i])) { + connectedItems.push(children[i]); + children[i].visibleChanged.connect(layout); + children[i].parentChanged.connect(cleanup.bind(children[i])); + } + } +} + +// Disconnects signals connected by this layout +function cleanup() { + remove(connectedItems, this); + this.visibleChanged.disconnect(layout); + this.parentChanged.disconnect(arguments.callee); +} + +// Main layout function +function layout() { + + if (parent === null || width === 0) + return; + + var i; + var items = new Array(); // Keep track of visible items + var expandingItems = new Array(); // Keep track of expandingItems for tabs + var widthOthers = 0; + + for (i = 0; i < children.length; i++) { + if (children[i].visible) { + items.push(children[i]) + + // Center all items vertically + items[0].y = (function() {return height / 2 - items[0].height / 2}) + // Find out which items are expanding + if (children[i].__expanding) { + expandingItems.push(children[i]) + } else { + // Calculate the space that fixed size items take + widthOthers += children[i].width; + } + } + } + + if (items.length === 0) + return; + + // Extra padding is applied if the leftMost or rightmost widget is expanding (note** removed on new design) + var leftPadding = 0 + var rightPadding = 0 + + // In LandScape mode we add extra margin to keep contents centered + // for two basic cases + if (items.length == 2 && screen.currentOrientation == Screen.Landscape) { + // expanding item on left + if (expandingItems.length > 0 && items[0].__expanding && !items[items.length-1].__expanding) + leftPadding += items[items.length-1].width + + // expanding item is on right + if (expandingItems.length > 0 && items[items.length-1].__expanding && !items[0].__expanding) + rightPadding += items[0].width + } + + var width = toolbarLayout.width - leftPadding - rightPadding + + // Calc expandingItems and tabrows + for (i = 0; i < expandingItems.length; i++) + expandingItems[i].width = (width - widthOthers) / expandingItems.length + + var lastItem = items[items.length-1] ? items[items.length-1] : undefined; + + // Space to be divided between first and last items + var toolBox = width - (items[0] ? items[0].width : 0) - + (lastItem ? lastItem.width : 0); + + // |X X X| etc. + var spacingBetween = toolBox; + for (i = 1; i < items.length - 1; i++) + spacingBetween -= items[i].width; + items[0].x = leftPadding + + // Calculate spacing between items + spacingBetween /= items.length - 1; + + // Starting after first item + var dX = items[0].width + spacingBetween; + for (i = 1; i < items.length; i++) { + items[i].x = dX + leftPadding; + dX += spacingBetween + items[i].width; + } +} diff --git a/mardrone/imports/com/nokia/meego/ToolBarLayout.qml b/mardrone/imports/com/nokia/meego/ToolBarLayout.qml new file mode 100644 index 0000000..e709de6 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ToolBarLayout.qml @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// ToolBarLayout is a container for items on a toolbar that automatically +// implements an appropriate layout for its children. + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI +import "ToolBarLayout.js" as Layout + +Item { + id: toolbarLayout + + width: visible && parent ? parent.width : 0 + height: visible && parent ? parent.height : 0 + + onWidthChanged: Layout.layout() + onHeightChanged: Layout.layout() + onChildrenChanged: Layout.childrenChanged() + Component.onCompleted: Layout.layout() +} diff --git a/mardrone/imports/com/nokia/meego/ToolBarStyle.qml b/mardrone/imports/com/nokia/meego/ToolBarStyle.qml new file mode 100644 index 0000000..f2b084d --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ToolBarStyle.qml @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 +import "UIConstants.js" as UI + +Style { + // Background + property url background: "image://theme/meegotouch-toolbar-" + + ((screen.currentOrientation == Screen.Portrait || screen.currentOrientation == Screen.PortraitInverted) ? "portrait" : "landscape") + + __invertedString + "-background" + + property int visibilityTransitionDuration: 250 + property int contentTransitionDuration: 400 +} diff --git a/mardrone/imports/com/nokia/meego/ToolButton.qml b/mardrone/imports/com/nokia/meego/ToolButton.qml new file mode 100644 index 0000000..4ff234c --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ToolButton.qml @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// ToolButton is a push-button style button intended for use with toolbars. + +import QtQuick 1.1 +import "." 1.0 + +Button { + id: toolButton + + //Removes button background if set to true + property bool flat: false + + property QtObject platformStyle: ToolButtonStyle { backgroundVisible: !toolButton.flat} + + //Deprecated item, REMOVE THIS + property QtObject style: toolButton.platformStyle + + implicitWidth: platformStyle.buttonWidth + implicitHeight: platformStyle.buttonHeight +} diff --git a/mardrone/imports/com/nokia/meego/ToolButtonRow.qml b/mardrone/imports/com/nokia/meego/ToolButtonRow.qml new file mode 100644 index 0000000..01a845b --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ToolButtonRow.qml @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Item { + default property alias children: row.children + property bool __expanding: true // Layout hint used but ToolBarLayout + Row{ + id: row + width: Math.min(parent.width, childrenRect.width) + spacing: UI.PADDING_LARGE + anchors.centerIn: parent + } +} diff --git a/mardrone/imports/com/nokia/meego/ToolButtonStyle.qml b/mardrone/imports/com/nokia/meego/ToolButtonStyle.qml new file mode 100644 index 0000000..a6439c9 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ToolButtonStyle.qml @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +ButtonStyle { + buttonWidth: 186 + buttonHeight: 42 + + // Font + fontPixelSize: 22 + fontCapitalization: Font.MixedCase + fontWeight: Font.Bold + horizontalAlignment: Text.AlignHCenter + + // Background + backgroundMarginRight: 15 + backgroundMarginLeft: 15 + backgroundMarginTop: 15 + backgroundMarginBottom: 15 + property bool backgroundVisible: true + + background: backgroundVisible ? "image://theme/meegotouch-button-navigationbar-button" + __invertedString + "-background" : "" + pressedBackground: backgroundVisible ? "image://theme/meegotouch-button-navigationbar-button" + __invertedString + "-background-pressed" : "" + disabledBackground: backgroundVisible ? "image://theme/meegotouch-button-navigationbar-button" + __invertedString + "-background-disabled" : "" +} diff --git a/mardrone/imports/com/nokia/meego/ToolIcon.qml b/mardrone/imports/com/nokia/meego/ToolIcon.qml new file mode 100644 index 0000000..9b7dda1 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ToolIcon.qml @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// ToolItem is a component that is used to add actions to toolbars. + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + property url iconSource + property string platformIconId + + // TODO: deprecated + property alias iconId: root.platformIconId + width: 80; height: 64 + signal clicked + + // Styling for the ToolItem + property Style platformStyle: ToolItemStyle{} + + // TODO: deprecated + property Style style: root.platformStyle + + Image { + source: mouseArea.pressed ? platformStyle.pressedBackground : "" + anchors.centerIn: parent + + Image { + function handleIconSource(iconId) { + if (iconSource != "") + return iconSource; + + var prefix = "icon-m-" + // check if id starts with prefix and use it as is + // otherwise append prefix and use the inverted version if required + if (iconId.indexOf(prefix) !== 0) + iconId = prefix.concat(iconId).concat(theme.inverted ? "-white" : ""); + return "image://theme/" + iconId; + } + + source: handleIconSource(iconId) + anchors.centerIn: parent + } + } + + MouseArea { + id: mouseArea + anchors.fill: parent + } + + Component.onCompleted: mouseArea.clicked.connect(clicked) +} diff --git a/mardrone/imports/com/nokia/meego/ToolItem.qml b/mardrone/imports/com/nokia/meego/ToolItem.qml new file mode 100644 index 0000000..08414e3 --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ToolItem.qml @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// ToolItem is a component that is used to add actions to toolbars. + +import QtQuick 1.1 +import "." 1.0 + +ToolIcon { + Component.onCompleted: { + print("Warning: ToolItem is deprecated, use ToolIcon instead") + } +} diff --git a/mardrone/imports/com/nokia/meego/ToolItemStyle.qml b/mardrone/imports/com/nokia/meego/ToolItemStyle.qml new file mode 100644 index 0000000..6d7a13c --- /dev/null +++ b/mardrone/imports/com/nokia/meego/ToolItemStyle.qml @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "UIConstants.js" as UI + +Style { + // Background + property url pressedBackground: "image://theme/meegotouch-button-navigationbar-button"+__invertedString+"-background-pressed" +} diff --git a/mardrone/imports/com/nokia/meego/UIConstants.js b/mardrone/imports/com/nokia/meego/UIConstants.js new file mode 100644 index 0000000..e0027af --- /dev/null +++ b/mardrone/imports/com/nokia/meego/UIConstants.js @@ -0,0 +1,120 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +.pragma library + +var FONT_FAMILY = "Nokia Pure Text"; +var FONT_FAMILY_LIGHT = "Nokia Pure Text Light"; +var FONT_DEFAULT_SIZE = 24; // DEPRECATED + +var FONT_XLARGE = 32; +var FONT_LARGE = 28; +var FONT_SLARGE = 26; +var FONT_DEFAULT = 24; +var FONT_LSMALL = 22; +var FONT_SMALL = 20; +var FONT_XSMALL = 18; +var FONT_XXSMALL = 16; + +var COLOR_FOREGROUND = "#191919"; // Text color +var COLOR_SECONDARY_FOREGROUND = "#a6a8ab"; // Secondary text +var COLOR_BACKGROUND = "#E0E1E2"; // Background +var COLOR_SELECT = "#4591ff"; //Selected item background + +var COLOR_INVERTED_FOREGROUND = "#ffffff"; // Text color +var COLOR_INVERTED_SECONDARY_FOREGROUND = "#8c8c8c"; // Secondary text +var COLOR_INVERTED_BACKGROUND = "#000000"; // Background + +var COLOR_DISABLED_FOREGROUND = "#b2b2b4"; + +var COLOR_BUTTON_FOREGROUND = "#000000" //text color +var COLOR_BUTTON_INVERTED_FOREGROUND = "#ffffff" //inverted text color +var COLOR_BUTTON_SECONDARY_FOREGROUND = "#8c8c8c" //secondary text +var COLOR_BUTTON_DISABLED_FOREGROUND = "#B2B2B4" //disabled text +var COLOR_BUTTON_BACKGROUND = "#000000" //background + +var SIZE_ICON_DEFAULT = 32; +var SIZE_ICON_LARGE = 48; + +var CORNER_MARGINS = 22; + +var MARGIN_DEFAULT = 0; +var MARGIN_XLARGE = 16; + +// Distance in pixels from the widget bounding box inside which a release +// event would still be accepted and trigger the widget +var RELEASE_MISS_DELTA = 30; + +var OPACITY_ENABLED = 1.0; +var OPACITY_DISABLED = 0.5; +var SIZE_BUTTON = 64; + +var PADDING_XSMALL = 2; +var PADDING_SMALL = 4; +var PADDING_MEDIUM = 6; +var PADDING_LARGE = 8; +var PADDING_DOUBLE = 12; +var PADDING_XLARGE = 16; +var PADDING_XXLARGE = 24; + +var SCROLLDECORATOR_SHORT_MARGIN = 8; +var SCROLLDECORATOR_LONG_MARGIN = 4; + +var TOUCH_EXPANSION_MARGIN = -12; + +var BUTTON_WIDTH = 322; +var BUTTON_HEIGHT = 51; +var BUTTON_LABEL_MARGIN = 10; + +var FIELD_DEFAULT_HEIGHT = 52; + +//Common UI layouts +var DEFAULT_MARGIN = 16; +var BUTTON_SPACING = 6; +var HEADER_DEFAULT_HEIGHT_PORTRAIT = 72; +var HEADER_DEFAULT_HEIGHT_LANDSCAPE = 46; +var HEADER_DEFAULT_TOP_SPACING_PORTRAIT = 20; +var HEADER_DEFAULT_BOTTOM_SPACING_PORTRAIT = 20; +var HEADER_DEFAULT_TOP_SPACING_LANDSCAPE = 16; +var HEADER_DEFAULT_BOTTOM_SPACING_LANDSCAPE = 14; +var LIST_ITEM_HEIGHT_SMALL = 64; +var LIST_ITEM_HEIGHT_DEFAULT = 80; + + diff --git a/mardrone/imports/com/nokia/meego/Utils.js b/mardrone/imports/com/nokia/meego/Utils.js new file mode 100644 index 0000000..1d5f49a --- /dev/null +++ b/mardrone/imports/com/nokia/meego/Utils.js @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +.pragma library + +/* + Get the first flickable in hierarchy. +*/ +function findFlickable(item) +{ + var next = item; + + while (next) { + if (next.flicking !== undefined && next.flickableDirection !== undefined) + return next; + + next = next.parent; + } + + return null; +} + +/* + Get the root item given an element and root item's name. + If root item name is not given, default is 'windowContent'. +*/ +function findRootItem(item, objectName) +{ + var next = item; + + var rootItemName = "windowContent"; + if (typeof(objectName) != 'undefined') { + rootItemName = objectName; + } + + if (next) { + while (next.parent) { + next = next.parent; + + if (rootItemName == next.objectName) { + break; + } + } + } + + return next; +} + +/* + Get the root item for Notification banner + It will return 'appWindowContent' or 'windowContent' element if found. +*/ +function findRootItemNotificationBanner(item) +{ + var next = item; + + if (next) { + while (next.parent) { + if (next.objectName == "appWindowContent") + break; + + if (next.objectName == "windowContent") + break; + + next = next.parent; + } + } + + return next; +} diff --git a/mardrone/imports/com/nokia/meego/Window.qml b/mardrone/imports/com/nokia/meego/Window.qml new file mode 100644 index 0000000..e0b96de --- /dev/null +++ b/mardrone/imports/com/nokia/meego/Window.qml @@ -0,0 +1,273 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Components project. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "." 1.0 + +Item { + id: root + width: screen.displayWidth + height: screen.displayHeight + + property alias color: background.color + + default property alias content: windowContent.data + + // Read only property true if window is in portrait + property alias inPortrait: window.portrait + + signal orientationChangeAboutToStart + signal orientationChangeStarted + signal orientationChangeFinished + + Rectangle { + id: background + anchors.fill: parent + color: "black" + } + + Item { + id: window + property bool portrait + + width: window.portrait ? screen.displayHeight : screen.displayWidth + height: window.portrait ? screen.displayWidth : screen.displayHeight + + anchors.centerIn : parent + transform: Rotation { id: windowRotation; + origin.x: 0; + origin.y: 0; + angle: 0 + } + + Item { + id: windowContent + width: parent.width + height: parent.height - heightDelta + + // Used for resizing windowContent when virtual keyboard appears + property int heightDelta: 0 + + objectName: "windowContent" + clip: true + + Connections { + id: inputContextConnection + target: inputContext + onSoftwareInputPanelVisibleChanged: inputContextConnection.updateWindowContentHeightDelta(); + + onSoftwareInputPanelRectChanged: inputContextConnection.updateWindowContentHeightDelta(); + + function updateWindowContentHeightDelta() { + if(inputContext.customSoftwareInputPanelVisible) + return + + if (root.inPortrait) + windowContent.heightDelta = inputContext.softwareInputPanelRect.width + else + windowContent.heightDelta = inputContext.softwareInputPanelRect.height + } + } + } + + SoftwareInputPanel { + id: softwareInputPanel + active: inputContext.customSoftwareInputPanelVisible + anchors.bottom: parent.bottom + + onHeightChanged: { + windowContent.heightDelta = height + } + + Loader { + id: softwareInputPanelLoader + width: parent.width + sourceComponent: inputContext.customSoftwareInputPanelComponent + } + } + + Snapshot { + id: snapshot + anchors.top: parent.top + anchors.left: parent.left + width: screen.displayWidth + height: screen.displayHeight + snapshotWidth: screen.displayWidth + snapshotHeight: screen.displayHeight + opacity: 0 + transform: Rotation { id: snapshotRotation; + origin.x: screen.displayHeight / 2; origin.y: screen.displayHeight / 2; + angle: 0 } + } + + state: screen.orientationString + + states: [ + State { + name: "Landscape" + PropertyChanges { target: window; rotation: 0; portrait: false; } + PropertyChanges { target: windowRotation; + origin.x: root.height / 2; + origin.y: root.height / 2; } + PropertyChanges { target: snapshot; anchors.leftMargin: 0; anchors.topMargin: 0 } + }, + State { + name: "Portrait" + PropertyChanges { target: window; rotation: 270; portrait: true; } + PropertyChanges { target: windowRotation; + origin.x: root.height - root.width / 2; + origin.y: root.width / 2; } + PropertyChanges { target: snapshot; anchors.leftMargin: 0; anchors.topMargin: 0 } + }, + State { + name: "LandscapeInverted" + PropertyChanges { target: window; rotation: 180; portrait: false; } + PropertyChanges { target: windowRotation; + origin.x: root.height / 2; + origin.y: root.height / 2; } + PropertyChanges { target: snapshot; anchors.leftMargin: 374; anchors.topMargin: 0 } + }, + State { + name: "PortraitInverted" + PropertyChanges { target: window; rotation: 90; portrait: true; } + PropertyChanges { target: windowRotation; + origin.x: root.height - root.width / 2; + origin.y: root.width / 2; } + PropertyChanges { target: snapshot; anchors.leftMargin: 0; anchors.topMargin: 374 } + } + ] + + transitions: [ + Transition { + // use this transition when sip is visible + from: (inputContext.softwareInputPanelVisible ? "*" : "disabled") + to: (inputContext.softwareInputPanelVisible ? "*" : "disabled") + PropertyAction { target: window; properties: "rotation"; } + ScriptAction { + script: { + root.orientationChangeAboutToStart(); + platformWindow.startSipOrientationChange(window.rotation); + // note : we should really connect these signals to MInputMethodState + // signals so that they are emitted at the appropriate time + // but there aren't any + root.orientationChangeStarted(); + root.orientationChangeFinished(); + } + } + }, + Transition { + // use this transition when sip is not visible + from: (screen.minimized ? "disabled" : (inputContext.softwareInputPanelVisible ? "disabled" : "*")) + to: (screen.minimized ? "disabled" : (inputContext.softwareInputPanelVisible ? "disabled" : "*")) + SequentialAnimation { + alwaysRunToEnd: true + + ScriptAction { + script: { + snapshot.take(); + snapshot.opacity = 1.0; + snapshotRotation.angle = -window.rotation; + snapshot.smooth = false; // Quick & coarse rotation consistent with MTF + platformWindow.animating = true; + root.orientationChangeAboutToStart(); + } + } + PropertyAction { target: window; properties: "portrait"; } + ScriptAction { + script: { + windowContent.opacity = 0.0; + root.orientationChangeStarted(); + } + } + ParallelAnimation { + NumberAnimation { target: windowContent; property: "opacity"; + to: 1.0; easing.type: Easing.InOutExpo; duration: 600; } + NumberAnimation { target: snapshot; property: "opacity"; + to: 0.0; easing.type: Easing.InOutExpo; duration: 600; } + PropertyAction { target: windowRotation; properties: "origin.x"; } + PropertyAction { target: windowRotation; properties: "origin.y"; } + RotationAnimation { target: windowRotation; property: "angle"; + from: -screen.rotationDirection * 90; + to: 0; + direction: RotationAnimation.Shortest; + easing.type: Easing.InOutExpo; duration: 600; } + } + ScriptAction { + script: { + windowRotation.angle = 0 + snapshot.free(); + root.orientationChangeFinished(); + platformWindow.animating = false; + } + } + } + } + ] + + focus: true + Keys.onReleased: { + if (event.key == Qt.Key_I && event.modifiers == Qt.AltModifier) { + theme.inverted = !theme.inverted; + } + if (event.key == Qt.Key_E && event.modifiers == Qt.AltModifier) { + if(screen.currentOrientation == Screen.Landscape) { + screen.allowedOrientations = Screen.Portrait; + } else if(screen.currentOrientation == Screen.Portrait) { + screen.allowedOrientations = Screen.LandscapeInverted; + } else if(screen.currentOrientation == Screen.LandscapeInverted) { + screen.allowedOrientations = Screen.PortraitInverted; + } else if(screen.currentOrientation == Screen.PortraitInverted) { + screen.allowedOrientations = Screen.Landscape; + } + } + if (event.key == Qt.Key_E && event.modifiers == Qt.ControlModifier ) { + if(screen.currentOrientation == Screen.Portrait) { + screen.allowedOrientations = Screen.Landscape; + } else if(screen.currentOrientation == Screen.LandscapeInverted) { + screen.allowedOrientations = Screen.Portrait; + } else if(screen.currentOrientation == Screen.PortraitInverted) { + screen.allowedOrientations = Screen.LandscapeInverted; + } else if(screen.currentOrientation == Screen.Landscape) { + screen.allowedOrientations = Screen.PortraitInverted; + } + } + } + } +} diff --git a/mardrone/imports/com/nokia/meego/qmldir b/mardrone/imports/com/nokia/meego/qmldir new file mode 100644 index 0000000..cd332cb --- /dev/null +++ b/mardrone/imports/com/nokia/meego/qmldir @@ -0,0 +1,144 @@ +plugin meegoplugin +ApplicationWindow 1.0 ApplicationWindow.qml +ApplicationWindowStyle 1.0 ApplicationWindowStyle.qml +BusyIndicator 1.0 BusyIndicator.qml +BusyIndicatorStyle 1.0 BusyIndicatorStyle.qml +Button 1.0 Button.qml +ButtonStyle 1.0 ButtonStyle.qml +GroupButtonStyle 1.0 GroupButtonStyle.qml +ButtonColumn 1.0 ButtonColumn.qml +ButtonRow 1.0 ButtonRow.qml +CheckBox 1.0 CheckBox.qml +CheckBoxStyle 1.0 CheckBoxStyle.qml +ContextMenu 1.0 ContextMenu.qml +ContextMenuStyle 1.0 ContextMenuStyle.qml +Dialog 1.0 Dialog.qml +DialogStyle 1.0 DialogStyle.qml +EditBubble 1.0 EditBubble.qml +QueryDialog 1.0 QueryDialog.qml +QueryDialogStyle 1.0 QueryDialogStyle.qml +SelectionDialog 1.0 SelectionDialog.qml +MultiSelectionDialog 1.0 MultiSelectionDialog.qml +SelectionDialogStyle 1.0 SelectionDialogStyle.qml +Label 1.0 Label.qml +LabelStyle 1.0 LabelStyle.qml +Menu 1.0 Menu.qml +MenuLayout 1.0 MenuLayout.qml +MenuItem 1.0 MenuItem.qml +MenuStyle 1.0 MenuStyle.qml +MenuItemStyle 1.0 MenuItemStyle.qml +MouseAreaDebug 1.0 MouseAreaDebug.qml +Page 1.0 Page.qml +PageStack 1.0 PageStack.qml +PageStackWindow 1.0 PageStackWindow.qml +PageStackWindowStyle 1.0 PageStackWindowStyle.qml +ProgressBar 1.0 ProgressBar.qml +ProgressBarStyle 1.0 ProgressBarStyle.qml +RadioButton 1.0 RadioButton.qml +RadioButtonStyle 1.0 RadioButtonStyle.qml +ScrollDecorator 1.0 ScrollDecorator.qml +ScrollDecoratorStyle 1.0 ScrollDecoratorStyle.qml +SectionScroller 1.0 SectionScroller.qml +SectionScrollerStyle 1.0 SectionScrollerStyle.qml +Sheet 1.0 Sheet.qml +SheetStyle 1.0 SheetStyle.qml +SheetButton 1.0 SheetButton.qml +SheetButtonStyle 1.0 SheetButtonStyle.qml +SheetButtonAccentStyle 1.0 SheetButtonAccentStyle.qml +Slider 1.0 Slider.qml +SliderStyle 1.0 SliderStyle.qml +SliderTemplate 1.0 SliderTemplate.qml +StatusBar 1.0 StatusBar.qml +Style 1.0 Style.qml +Switch 1.0 Switch.qml +SwitchStyle 1.0 SwitchStyle.qml +TabBarLayout 1.0 TabBarLayout.qml +TabButton 1.0 TabButton.qml +TabButtonStyle 1.0 TabButtonStyle.qml +TabGroup 1.0 TabGroup.qml +TextArea 1.0 TextArea.qml +TextAreaStyle 1.0 TextAreaStyle.qml +TextField 1.0 TextField.qml +TextFieldStyle 1.0 TextFieldStyle.qml +ToolBar 1.0 ToolBar.qml +ToolBarLayout 1.0 ToolBarLayout.qml +ToolBarStyle 1.0 ToolBarStyle.qml +ToolButton 1.0 ToolButton.qml +ToolButtonRow 1.0 ToolButtonRow.qml +ToolButtonStyle 1.0 ToolButtonStyle.qml +ToolItem 1.0 ToolItem.qml +ToolIcon 1.0 ToolIcon.qml +ToolItemStyle 1.0 ToolItemStyle.qml +Window 1.0 Window.qml + +ApplicationWindow 1.1 ApplicationWindow.qml +ApplicationWindowStyle 1.1 ApplicationWindowStyle.qml +BusyIndicator 1.1 BusyIndicator.qml +BusyIndicatorStyle 1.1 BusyIndicatorStyle.qml +Button 1.1 Button.qml +ButtonStyle 1.1 ButtonStyle.qml +GroupButtonStyle 1.1 GroupButtonStyle.qml +ButtonColumn 1.1 ButtonColumn.qml +ButtonRow 1.1 ButtonRow.qml +CheckBox 1.1 CheckBox.qml +CheckBoxStyle 1.1 CheckBoxStyle.qml +ContextMenu 1.1 ContextMenu.qml +ContextMenuStyle 1.1 ContextMenuStyle.qml +Dialog 1.1 Dialog.qml +DialogStyle 1.1 DialogStyle.qml +EditBubble 1.1 EditBubble.qml +QueryDialog 1.1 QueryDialog.qml +QueryDialogStyle 1.1 QueryDialogStyle.qml +SelectionDialog 1.1 SelectionDialog.qml +MultiSelectionDialog 1.1 MultiSelectionDialog.qml +SelectionDialogStyle 1.1 SelectionDialogStyle.qml +Label 1.1 Label.qml +LabelStyle 1.1 LabelStyle.qml +Menu 1.1 Menu.qml +MenuLayout 1.1 MenuLayout.qml +MenuItem 1.1 MenuItem.qml +MenuStyle 1.1 MenuStyle.qml +MenuItemStyle 1.1 MenuItemStyle.qml +MouseAreaDebug 1.1 MouseAreaDebug.qml +Page 1.1 Page.qml +PageStack 1.1 PageStack.qml +PageStackWindow 1.1 PageStackWindow.qml +PageStackWindowStyle 1.1 PageStackWindowStyle.qml +ProgressBar 1.1 ProgressBar.qml +ProgressBarStyle 1.1 ProgressBarStyle.qml +RadioButton 1.1 RadioButton.qml +RadioButtonStyle 1.1 RadioButtonStyle.qml +ScrollDecorator 1.1 ScrollDecorator.qml +ScrollDecoratorStyle 1.1 ScrollDecoratorStyle.qml +SectionScroller 1.1 SectionScroller.qml +SectionScrollerStyle 1.1 SectionScrollerStyle.qml +Sheet 1.1 Sheet.qml +SheetStyle 1.1 SheetStyle.qml +SheetButton 1.1 SheetButton.qml +SheetButtonStyle 1.1 SheetButtonStyle.qml +SheetButtonAccentStyle 1.1 SheetButtonAccentStyle.qml +Slider 1.1 Slider.qml +SliderStyle 1.1 SliderStyle.qml +SliderTemplate 1.1 SliderTemplate.qml +StatusBar 1.1 StatusBar.qml +Style 1.1 Style.qml +Switch 1.1 Switch.qml +SwitchStyle 1.1 SwitchStyle.qml +TabBarLayout 1.1 TabBarLayout.qml +TabButton 1.1 TabButton.qml +TabButtonStyle 1.1 TabButtonStyle.qml +TabGroup 1.1 TabGroup.qml +TextArea 1.1 TextArea.qml +TextAreaStyle 1.1 TextAreaStyle.qml +TextField 1.1 TextField.qml +TextFieldStyle 1.1 TextFieldStyle.qml +ToolBar 1.1 ToolBar.qml +ToolBarLayout 1.1 ToolBarLayout.qml +ToolBarStyle 1.1 ToolBarStyle.qml +ToolButton 1.1 ToolButton.qml +ToolButtonRow 1.1 ToolButtonRow.qml +ToolButtonStyle 1.1 ToolButtonStyle.qml +ToolItem 1.1 ToolItem.qml +ToolIcon 1.1 ToolIcon.qml +ToolItemStyle 1.1 ToolItemStyle.qml +Window 1.1 Window.qml diff --git a/mardrone/plugins/libmeegoextrasplugin.so b/mardrone/plugins/libmeegoextrasplugin.so new file mode 100755 index 0000000000000000000000000000000000000000..7e01dffd465c50752d916206a57271eeed271888 GIT binary patch literal 391295 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�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 literal 0 HcmV?d00001 diff --git a/mardrone/plugins/libmeegoplugin.so b/mardrone/plugins/libmeegoplugin.so new file mode 100755 index 0000000000000000000000000000000000000000..1a1ae4643c8b70ef2e2231d94c3ade44cc7828e9 GIT binary patch literal 6322938 zcmdp9hHR8%yVMo>{&fCzy==mOzL4mb@-NTH|*SP%;es6Rmk z!H$Xr8}^Ed3N}zI*t=rIf{MQ1XLsgycC&ja@Yg$^&)iOV=9y<^o_Xe(XJ+?i<@E2J zl#~?GE+uqyNMhqoOb%u6{J8ztP;w~LI3v_H)R?@sp*E6V{?k5Q z-gL9m8im9+mc$lzzLnO4bbNU@6iQ7Cg?3Z<)ED}CSfkL_6KvlXgyJP%@DKW;s#rk1 zPUr6q(CtK8;5PzvF@8E}KY-(HeD9P{=rD+Rj`TS^f5I1$zc&?sM*cg*N8)=>eig7| z@P84Xg%@{)RD}DOGF|Z5c+>rl`02p*$F~LcN|nEv_)GZp#Bab4BP{M3!h@*$Hejcb zb`<_s=>%LZ{!8-jBkeOQB@{XixCziCZV~AZD%c&s-AURpJjLBf`at|Vd>-vO9N5!T zxsKp?itv2WqrhK6-Y@tO3fJ8>iqL1|wZQKN{BWLKdHzYceF;tY3btca+u)pG8rR?!M%Sl@T+`+)_ z4eUU|2k|_T_|ZIbd7enxaXi0P^;}NbIfTcPehdC&^2B`s{7TYS6JJbv8gQ2qU#804 zMA~lT9nEtRZTN%q1^B0c+mAGghdx)h1mDYq^GLrN*lM015dR7Imw|tP@Iw6Igv&|G zlETUz0PHj5wZlg#`xVb({QpQ_0{q2z(={Tmg0x=b-w(XFrQm!PoKKT}i^9DFxC~&# zJwtvA(mx|@J!J}rKTY}?{F@3shqR>%p5)L%a2*2tG}7ND+>N|J#7E=zCjVUGYr%CD z`Fj#R3xAQK=Oog^jUr9lvy_=kJ*k8r!w(_Ud3~S z!aZ7^q@B<6RiRzczmYU?hZE0I;XQaBOC4cVR`S0legyc|l9x|-0&P2w^vi(xjrfQ7 z{|O*&9WW;V`vqxx65hb`F4E5+oDBR5^2D_Phq!s<&)|uuv)m6V{TkBu1^#Z*?#cqQ=n^K4IAM}Z8qUGJkJN$5X$F~ z{q`6={9ODi;2cWcca(3+^GEzK zq+QSRZk~gn@l^{uaKyjEKTX=T;QE8|%Yf@Z+7_O-;y)rRE=}@@i~9k%6@-_Ob{P4s z6&;dSMf%HSsrqJp+Fs;R7ji1>sYz(v&5w2XNmid`A%%_n@lxDHZ>Rcqia4RdAvp45Pjq zsOv~z-Xnf9zBl1)U{2;aiszZ6ZQxmCv{~?9O#Y3O7gr7Le~BN<^C$!EU|kn5XX3|$ z>n32{CjCfhD`9an36H1z1j_D9d@RpvNV@~L?mR1bK1Nw_2a`90@L{Cg#PekGkEQHz z(!V2qf`a>tH0>@Gc=ErdjJOQ)#^C?MKZl=7-mAd8p~|iRXFh2s;kCPl@S(t7gg>6} z5x|b%IT3#oY1*Adn+B7nU5*O30RCe975K&A7dMAzXH~YHofKM5ellfxl721WeF+ce zIg;meh3i(@@ec4;^IS?^l`1Qb`NU(CMV$*hiQkv_DZph?wmb2Ccoqw3JnYt{2<@}^S$c%F~qzsENP&y%F35-#>(!_lY+$V%le?xond=uZ7GOrQ;iM)G>AAr~HZB>4l)CImR z;Ej<#j`Skn#eJ#ZD|j9RoOXX2cupm~9c9J+%Ci&k3l!{faE&DGR`5?E?PJQF!E=Vd z;inVd512c7P9k1Ry$^zC3h`9pQ!T8{&qKg|3e1hZi-%G*lPWmzUL-EDn z+MV>j2`>g`d!FLn1^#2axNq=XN#7eheek~lw-kKu#-nz+*Dx1eQfmw}S8m_&=%V zB5;f(|2yE{!;i+7Qto=vqYD2L)xN!Xjv((X{9ODh{Nvzx7QDm3A?`=Yi(5cmDdk@# zzmo8Yq%S7i6#s&Pu_5i>*MSk&96Y1QZ%NtKr1b+{+$B8M6Tb`pK6G>h?sQ;!l726K zf5K0acdEkuJ!!j>_Azi50AE7*Jp2qrr{J6e%+2_hDRUd?w^3f)T!X&rD5G6F!rRFk z!}BrVzfidT0>>D_NtFK|VR7dYK9cZ-q~A)JZ;8J~`~hg`NBOTvZ_M*((g)%%0Hzzy zYM#r;i|~A(_@@fr1*CN&{5{WRKoyM~ju($Bc#Yf01!#BbA zC;uq$ufji0-edSCz}}8Omb^Vk&joHOaqT7$F2Nr_zPMMY`)bOGYYyxl_zHYy{Qoz1 zLO_Gs_@t+M()RGg>k~c12e`KQ)t0o_ z0Jz-;4xVKaCOk-zZws>FZPvy*z7kBf*jLrw*`x5)V3C-Y^Ww7Mkq zS3rOBdj4eK z^FsWI_?bqU4z^W+UvvV`2!1yo+)pZ)qYc=XRJZ{6rbfCBj#PmUc>a#B#@~j&53k)e z0%!Zw_YmnlebRNgx;*cqe5!%tFeAJ{Avo7a(>T9Yf&En80XoC;+)6y(r~DAo2CDSq zjWRzNVQ+AQf-hAW?T8}>7Z&Tqv0a~ZR zjnOggAUwl>D<&-G5Z|h_-_#Q9ApB2C#h>xgpIXpY~gN9B}wCd~(;)ekLkt(axw;A!K zgfGNT)R{bURepb-PpEW`dP4W9bOY21UcztpfV^|Oz@GSH#a&B$ydAWDPv-YU(!6dG zWm_8QR|7Cz)jQHie~0kRD&9gpkL3B33VZQJ!O=wF(RoXWPs5L;Od-#+jQn0kSi{Tn z1t0v60DFf5$~4M-r(k=M_K=aT@%^pxPtpm-vm@bqC{xJu2$dc-@+CNi@;~Aa#-FKh zN%}tc&nWw(N;`??Wk&t46TV8td+;nIe>lF9@Ou2elz)}@DGDZyuy#p=Ps5jsSNW3H zjqoT9#B)#fBP&V!i12Pak5@Q06K_J^OyYl&ekNYrZ}ubfpNdO#3gHNToJyNS+GK@C zfyW;&limt{9tySpkck2%1ci2s%F6Tl25`~m(o!j~(!=ZK4o zk+ui;ZnmSLFL};W_$6rx;WA*d6#RWE?`Ps|@YfI@4csPR#7$6eb_|{&-c3h%UI_eL zU}q7&n{ckeXMlvRB(hB5dCkb!-M~G;NSEOL!wo0!C zZlMZK1>aBP-JlpM_sQ_*?3Gi{~E(_PbQM3Z8e7 zzc0^!c+OJk8niL-OzPEctjfO>*jD(>;QfrqN zd5d^2l|PO6`6_>Rm3AYDuO@9gdH3-=f%F$hE28{5;?<=0#lK71ndBWxxCQA8@G-(= zik|(6i|Y@}Y|=g_{w98?og6xj^f2(^S`yAD?+sN}(iV`nig*`%AB9WO$C3U&6;CqK zJAz{pUb`E}JBmm%l`urrb-e+jVM~BbCO<~PdX;!PY2~C{rOG|Xb0Gcz=s8W*J5S*{ zowQTQTcP5=kbgh%(|PWPA5M6NQSW%t-lNQ9m3BRKoqf+FXF{r3G7XTzvQ_Ce<^8y@zm}E1$Q*hb4b4( zI-cSA2)M51IR&3d+BxK}R)vlyJd?D2czyuf+oT^rcoAW7&DAqm6KN-ht{^=H|1@RC z@?6RDOuV=e_(us>QJ=V8_?DEvz>3*FpHoKMBfveZ!V-T>mHA4g-ORH9dWsb8Z-M!c zcwc-zX@%r}$8#3X0jkXNJXhoI#D5OHbe{XG@{I{^!F$~ez@?}*eywN_m_rF?;ybIf zew6JE+#A%tFJ9ca2EIYmGth`j{#UAQ2~Rch4w3}iZuTS8fjYK=a}Y4&2}h{sEW#&I zzO5>EhNAIV@((1v6Y1wko!~f3;n9ySM!nUP`v%xQ@xN2YB|N+GJdpIWd454$+|Pu2 zk#>(N`<8lEkUviK!H1;1L%a)cukd_?^m9pTWupjnQ@A>kzCSRx5ijG}8QjO=Zvgf@ z(hgK`<>XBvd_Kf zsi%am1papN9>ix6K2j2KQNk~QVAir@ z0sbn5=W?DG;kS}5t{E^d5_)sN+H~Fgg4{YD!g03 zmqGY@o|mig3n{aewBF!3n(!0&`|xW>dkDB8Jlo>mB28R2X@^jD8sR*Zb_mbcNq`Nk5SMC#WNx_*XpN z#eYJ2SDqj7w4Bh5dqwb5*J(T-C%-38?S2P#I(a>TZ9?K~!h4gy4c{KvXQ+QB;l`@W zNj!5DO@k;C0lpvcJp6Mi{a|p;#9u=BDqw!5%qgn;v%vgE_+j$I{SDk^{B^_&fNg{? zApK3!jwSpO>1XpifOtNBIq`n@2f^_N&x1%S;rS4BT*_12Yvg6{oJhQY@Bqqh1@10< zZ^Gi%k$w(waYqBUAMqoIkK^g*Z%rT~j7& zZ{qD3wa=R*g>E@5C3KF;&;AfzXr5x71ql4+c1fXyD6C=&5qhpUl7Mo8|9CN8DJSup z_Du?PDohEDhAe@9IEVRiZL+n_O8inb(g(8nkv*ft-$xNyM_lHI#2*)hM>)awr8dA2 zmiRLmh?dMvvBE-MnEc}~2E@zLajVi&Ed5UKWj=~rc{$mtPvD!wn7JsT8h$OC*a*fF z*B)%D?a1}~{;1m3FUuVv*6)2c% zyC+-oP0F`wn-uzHirpWQ-}fZ=ca+^9lD`?F!_Q1i-QHFg>Dui649kR3PU=r(Gx!Xf ziy?#s-;FbA&xOe%!mRjjjgvz2QOLy(A^3+J!+6fI+b{9EU*fF(*W^%pmH#qI(8UPS z3sn3Ml$58VjY49Blm4B{_%AW|;pq+lDkt>3`y6um{bXzH5d8g)W*#$tM8346{N?*4 zg&K2Npf#{U@4zFHLT!gSx?EU*Tt|zj__A8hTTS3;s^v+sdX<US@cS_6TRzg^pDX@hejyL^cr7_wW4HS! z?>clpHfKV+;Qz3g{$P`?=R@~oH$8)at43by{KfEV>oN!a$Gwt5ZwyQc$+Q)G_s}1k zFif4O;>j3Ro%9O|a-{DE2iz`#C^E#n7X(If{h>wj|F;$$41)^UR{ZRH9eQQV z`e0z3XW&0#1^UAbhn`XR zOIS~C!7x3VvXb982|(opU*j#z5jIYGzJAPM$4`|)y_{eD{NJb_k=X{lU$Jq&3*()X zZOQsDm-+h}^HKNbFXtmq*l6hWW{F21+qM__fg$goL4R#?SW0Lv_=LVf5B&O%;g@|< z;`(c6^s61L_fo&WZ+MM>a+3B6@^vNhRk~5eBa8lPHiY$`xWNAwL+9t>nT)Tj|5wtV z+DZ8)@Xt&(3dMw_{BMuzT#2(c15wEsM;^Cky~-c!#D}q7PGP;&{P*bh?()fJ!f&jv zgGiS3b=?HUt7D4wj+4}PApCX<@~SWS62E^d_5kF8&@1z;7= zDEOY}WZyR+Orvc>A>NFuJ3d* z7GlgiI@!)2`8D#iwY{DTzL(*r`wV{COvjZMJM)#77~>TRJqPd0`fIEg?K>lnM>yki zQ#(uW$1~*FeIuV^>TC>_8JTdQeMWV?>`#auD`cO z{yw)D8v^>7?(c$1&XSNf$5Bk$f6FT54+pIbyA>~-=f=0DEAyNEfSx~MpGh+0%XO{X z{r?9CKySc*M}tQCYd_|rcG8}oktf^kPYJP%TJqzUvvjVaANevH!@tlg@?|Urq{syh zfBx=~=l?CluCpXLE}!3_x^^cy@^9&9=qtv0d9z0!xd#4ed}fNZACUgYdkK9SeSS~s z7y6sDObX3mKlK4|$!~ip{D5((k%}k%K|nca-;eFFY4o+nOUCC*7dCIboqMpZR(37-v2-gCD=(z~N@{h2A;0 z5>QUc-}eOako^T>$11!&e4o6$d$F|JMmUh?* z!3#FONqsv!@+$@T9Xa3O-%CCE&Zie5-!5_5vyS?{;XqUCS3^Iiz5Chp3q9AM|FuBA z3jH!(qpoI6MBkOZlKM}keI1Sc?`^N3Z~o@!o5j6YpRTj_F9N?W{Tq2TIaHzAdm`hd zo#4!)eM1*I?d$kHdsOtxZsZ9)n`c75v0r`}{cpyb&i<_ML~Q!#=TvLKCk@6X$9`Dr zF9WVco-^MiF7$Mpj(n|h=Fd>%$xQ4QLW|V*C-QIOcxOB=g7C%IcY2a9>r+$uXS&*d zwq(R_xSsZ}u=j(4|BR6UDknJaV*c*nkmVS{lK(6Fo0eT2{i5wr8d~x>t64^$VB8hE zsKC!f|I<$Lzdx7$HT3;2kH)TV?1$b!o@yuh;Jc5}U#~d()iosM80*1_McD6$w_|A@gzu+qL7xdHJRQ}ejoUyKU_Up6GV1EWbY5AGQME=dtXI5{~)Y$F25_^_* z(w=|6*D*VPyGMR5^5nmB1m}DhuSZi%#%q+=7slE8kkCK&3+8JpXFpJM1op6MXMFpe zioJGJigi~=;3vXQ+6g`5Jo9JuIXc&-@6$!>N7#?*`Saby$Z!r%ivbgS^O=uF8}@?F zkSE#+{=ebxdB%R`9@hJ8BYy1h*wBYM>+^;R^s@;LKYo0<#%9x#On>w;>>+;%IWCY=Q{13#Qbl;p`V^#=Rxm! z=+*P@4)l@Nc>zV|mt6-xV=s_=sqeM!$TRF~x2yQq@W%}7quq$hcpj93J=j>U_Vm~j zo@M{Oj`D3)`I}kqijDT?dd6!L^R>ynDb`uC%-_jrj6e1rX}{EWmuLLbC!(JnpJLgs zgx+5nzx%LnXnou)uF4|7+x-9?uuQVtmkV%T@jp%)c2NJUmWZ z>U-%;Y-o%pV#$jCi+y?BMGikTOJ{wS%_2_rQ@fvK1+5>U=b^UPTaEE7EQLSN$2C8W zZjQX~?$~F3y~HUm^zViJSUbTNMgP)H;%{KzO?^DYI7%H9&3~1`Wuu*PVg`C$gjQkXTBTldu5G=w)yeOJ>2Doe~Lb5=$l_X%^LR>@*6PW zmw!C)86RM75XOqO@D_Sdw1$4cYW(tGY6k_d;UxP%RXd2vEMm}Ji#aPKzE>$2Wj?egEbYr+{Ta&oqxpSdPtMoIIP+`r z_2`o;9Qa3au{Rj{{skAnKl75~`uSCyr)+%L(a*1I$9VK{^oQIE?DO+etoKW#{t?L6 zyw#l7untN5M;59TTrN9V(YFJ8dMm?T_N7POJl_%c*~!*>-%?)Akq_+Z*z<2`%6N8n z;wxaRmGtju@JoN6x)m9WJ^&cp)hzTF<2m#1+KfSTVZRdzsDfX$HzJ2d;5RLC-l4HRDMVF(~ZxiSl=!Xc{m&UzypSTVCYH!m6P#$ zll{&!=>J-uz5OrRdxE2HeR`yZmil?u@J{&6u&3O}dXej?0rnFRA=1_CX&Sjl5L+F#iTO{3RXS@#k5;7a055lbmd;&e$_fg3wUq z>8}I-V7=k|uRVD}UpwUUflZzB;xOxJ3)Ulq_y<;VMyJ+O zkyraI<=*UVDb`(M>91i2a^7Xk?+boHe>Loz?~c*f?Ebll^`^}!tnY{&p>G}YeLM4A z*DrTFh8p8Fi2Z#_^qD505%{ym!PiqAey#l2jX&jK)<9LTcfW)CB&U>1_Guuq=l{FtzmucW(%#0N_4M}>k#9zOcSm2IGdLx*7+C4gD~>?_ zHTd=IXMksZoJ_vV$MaZkEUL#PCz+Q@X$BdGzbAlidA()nn)z zhJ7>d2Kskpin`y?Bou24zZv@eiOAO{E=#t)<0165#@?7YKE>MaNW5SO=atBhdsY8T zk7#P8J~2pzMXcZuFW2w=BFZ0k(V^v>c78O zFSoK@9;)KMp9lZWb@*f06!tp{Q$pRz7yWxivU~hHG5@ub_B?m3jwycl#~q*bE%xez z(WgNp(K|n)QF_IA?#@oc-8h=2uh7%Y66_dPiWN*738MKUYuZ zzK+7*$#WjP+b?eVuJp8L>`dk(>kZT1qOS~lVs*J=&u?47{tEku=GWcON41kSo$1lX zHvdk0J399XmH=O+N9Qm|mHueSDr}=j!{WE`{WBc{%$Dd%g?5 zR8K|z&vg3lOzKY>>&W|$H@M3`w*dLS*wLTbFh4q8=bW#$%b@=_&k%Vo?OW?vUynkc z8jU`q$Nwz&VGHwH?|(Pa9_?iP{~mcU=oDwY_~&lqDf+ndt?*;ivmfe7d)Cn&!7up_ z{=^!I{1p6R&pF{~`jhob&)1koerzt}e(mMX{rRHXDX5&(*@t-aPG|n4#^^8P@mTVt zzO+8%8~ykB1<2=%o%8OlmuYM^f1vt>zA)CSk9r_K&_{LuogJpXSRZwNEoEV!)79yZ zuV*mdXF2x0q@&#U4`w}TG2B^?GJkdFmy*A|Bsp|Fa$d&ko6qSd?A`rUd-i91u4a5R z|E-(F{tbTIQ{_MGxu4bi5Y}5`y+8DR_~AK6A3x+T_=WX2UzI;;JN7!mzO<13)6SYd z>8yY7lhiNtbt}W(z{l`(e~iFBJK3<$-pYhr@se|YB7ZP@u%0%&jQA7ef@MxWB-^`K{b|9;+$f820) zd`UOsIN@M&s_H*Yq+uhy%J0C(nH0)#RJoO)szOs(_aU5u*KR@{1 zjc-SH?7~UE`cilP`xpXqjQ!g6EObk;N9y&iJMeET za`vmyW8sG(4u2i;oEzU~9kJ&d`DdWNEks`uc_QQW80&e2`{7k8z5xAs2l}(LSMtN6 zC@3fVJQ~HanQ>p>M-d##N&W$>Z+`n45 z8u+JapW@eX7qFk_{6WvxbhY8{|3S$->u~{naYo z_ZduF_-S|exvQaXee2l|f6PE_HP(*~%>M<<|1jlc{e#`D|2p779eag#XT92k`&o^M z3;j9E!GEixzyEbSa0Y#+caTxC_8S|%gJNVDo@3rytZ>N{JUt#F?507Jii#_@> zRsX9jRGoS|_Ma4w{5kAq-UDQRDt#~gG2EkH-h+KXJAt|BM(ktQd$qm#Y3!#v4Et$w z@MUxVu@|tSuRY-5x5G~%AN^O4&+8zaY{;v5&+FQ3e)z7y9sgfSQs@E0o`0W*A7+hk z!+*ZR9lsa*{q=99K$|^&QTb?va?-xn-eP}(yiOx5<9Gh)I@hMB68ifa^cNw&S|Pur ztiT`Q;pg4aC)UD$Og}3>d9)i}6wi@oMiCF$FC#5|8my1V&qu|_(jjR+wPz|_LN2n-(2M7C)p{X zw#0=$_UHVuFXxX36Bqi9M*eMPebn;zIgdT#wJi3>+?Uk(?|AsB5Ag#FQmpSW2>tiL z-#IrYTi>mbcqQ#=e1M}*eEtIabL=%tBa5C#G5j1?=I9sybz}aZ|7iXi48K0k{L}r@ zXb$6n{-N6&I|oF{NuRAmerhN2t{>}|J^p7RKa#M|3?^CnBMbSeoxtzM`WEYBzmFpM z!#X8#AKIp0;w2ZuFW4uW11s%Yagi=<<9~WB@|69f&Y#Uf(95tVy-$0)(_SH4${&)( z{e45fnRF%eU2o5K$?sT>jK!Xs3Y$y(oKF~EAQbAxd=mL6^K}o8eWcL==$FR) zj52Y$8u1IzXIG%l&Q|o?>Y0BBABIeUXNE13u7+#JB|TX@NY)HA2QC- zH%s0nL(NCgCy!x#H(_s}TkP@qj{QX&XMcXkO5P_NBjGqr7}Pw>h3ydVRkoZ!3^KAU3T8wkH@C;8uRV*iwsV%^7)`hTcIzgm(U61I}~$Ji$) zvA#4VF7s*OUdX#{jy`%p8|-a4j{Z~NnLqd6t7{W{+)a7S9Y43w9sl<&=;@FWx`bq@ ze;nj~W7u!np3`6CG2%T-~{w(xBKgNS`K>9RguK`CtGWsLS1#wdjFZ&Y?H+ge)c>%5 zJm9qNEfk5LjQc>#cDUge&U44lM840*e%hL3X@86Fv8Nu!`m5^uo%U)c{ZTfF^8jPL z>;V3ynGXHGXkeZKf9T`rv)JRLJwktfPk$cA`qmhEsQYJ2GtT$AJNC!&RL=K%JN);~ zm+&9@vy8vc`(aP!?HFf&G@kKqV~qdqMaVDCNA!GY<&hr;U&VYvAKOjg`@yr{c{8&eY898Yn=wX z^v_1<`OTnb??=$L)p@*RUe;?z`c^BPg#itBag{?S!cfPEz_I)CuucfS?#{U15!Hkdb{_pSfSGCb!_n?n! zC-iLUt7B3h-!Vcy?Xl94XG0JGxl5h>+Ba{rUvA{w&uzzk>SN@k-rxTICh}~DbKiAe z*FP?hpZp_lPBX*jy+_@Oh-O`)h*`z?Z@Z52Ei1{|SAa*?(y#`HvuXE;=Z4;zu1zA{=@nv>x+!{^Q_O0AMf<%<6XF~ zY|Qsp=4xu}{u%p+JO1=}tdGb~EpNU>e$GMP(DJt6ZtO3{{_R@&Upr~vCpWQP+~&yN z5o2_&UEjtK`^PSh{o?73?)-vo$Xx7Uy-1e+`Q=912R_Xo7o5xfnDt4oe}6>W-g$Sd9XO+4orAEM7{ zC-h#+d|rz^A2zhwJ7hI{@u;&O=(AQs+wyGnlu&3k_LHV0%YNsSPmpKWb7Xy&{W5XzU~BpY*-ohxznvnaA-*#ER8EcjL~Vn414MI_=v~bo(O=(^iKd+N&m81iGxkq?2}}RaLa^p@ULf*F z_(eYSx(@xY5pkjK&M&d&qHpW||H`8e&HoKR&E`@KIm&1O|kx~ zPVkqaPiQCQt6zYBwmIkbmm^Q}*dH(rEqdPX41LgFLR{$Y!^FxQ&-?iBo5auZjPFrD zghC%<&(rf^2OF%j4kHgz?f5Xt{ zjw9`=9)g{9ic!0+itn9qzp4jukxzMxu;Cl}+I|;6?>y)HcijQ#&pjOdvtmB;k^4w` zd_OhzYf^s(^I<#smma_SmN35P<3fjwPb2i}>erI3|D}`oEj!R3vrq|B;?JZ z#HGH=lCfu<;pitnBi}pR>gXFE{f7?0ew1Q1{80+Ig^zENE_26U4)eaDVK4gPB=oyc zj=nhNBR70?JLEa~jLa{g?|1SWw@8V9fAED*h_fG*e4)2hDdXMWk!QUa*vrsI_54bD znf>aX&i8fB^z7F=3S%lK{d3VnjK87ZcVT_mfqhSp=TpdI?Ii7^>FA5Ioc_<*hxhBM zocH+;@|;f`^EUdsaXxo)b2?Hv!B>F2r6u}s6T;H|6W-vy?_V}QN_)rus-Y#Hvy>dx z^D&M-wl@=_tFfN6zSj-^9E>uO^CjJ$quxX={gWL3UQ-G3zl(7ncsuh&JK^sqM$_Nt zI_uBf*pqTkbL{aaJ*=T^`W}1+`@lx$dqy{3=FT5_8}__AlH=bmTQzqK8Atd05n z*K&9MJ{P*0=~ zuU`*8-00l@7*eRI6a3&tzP00i+s%ZfzGIIh?X=|3KQO5D#}MitYSe!c>&F802fhAp zV?EGL@Qpedel_O*oAB>u#!JuF(0j;#HD3k)Y|nh_AOoSC;9Dk&uyPWQJ-~S$`cHep zLhrC=;fJ@m?*ByS;(~8d*AVt0hrWl-Kwn_}-bS9_Kl2jS zhlS4jC;xfqnKIptudy(Sa)ST5DaZr9_tKQG=u7vX%Xk>;;SDpe2O(dif26)Hddc|$1=X?Gg6<>_aF9%2Ml|}E$G8J#{Oh0 z>yLIq|Gbu*Ck=P#-F7DX59IN2{!P(7rD(@F#lK!$U^` zsGQ)u{7-CF;BQS>=xOX(e=hzM{l>6&9(g10-?0Ab@tVcJPZ{aR`!hW2#|QJ616Mfb z(|6BdzRz{WWB;q+SN4aysrujXl;80(^ACMlx9@w#Z!6=6Shf0N)ZUcu?&w3?n4hiK zpG(`MJu8q`9ZQ`1#u>+8k21#p1myKI7u)t#fp5utiyfI_{ojtnpX>u76zs~#CBM8fUDO`fQL%(WHT*|MBxZ&5ao^>_sd57J}e$RM+WjXg1HnHC7@%Z}$ z`X7BI8#FSWE6U&(@^$}Tw2}GnpM4)h>e~x_{GXL6veSW{Cf0isPeY%Uf6HcZ#t47v z{yyb-H+@HY@1O6HCnwy&dSje_%@;*fIq9D%moxvcufhgae-sSU zxpx0O_b>Yq?te)8r2jgd<<1}E(HF`$AwQFx`|&s2g#E&>_pE1svI=?94K&gpAJ9MA z2|atG55)|9ZY1>;&vy9vJ@l(w_V2oXKf6_zw&^|oI_$5;{^^iLz;nM)a7%q#;O92T z8(qHg7WVA7JMn!y?Y}Y${TX?AoGQN_eO)`jnT{3!g;rxo@?Lw=rj4d*w|tLY!deq!iV_WY9e4A>WbG2q*? zKF&7Q$5H6V+O;Hb;I}$v*FOk(Ih*_6dViAT;g7lOzp7_C?O%B}_7cu#HGCw=!7nrp z^2mqntRIhD>hwFW8Srf6DybbeXQr9-q|fDZe~9#J0t% zZ#?4>VLUXyb%c3DObYnhg z`Ba$eh9B@S_k-B~$g(8;F%HB_4SHs5<^J<(=lf}Uao^*g3vK$P|G#6tOgHA=*Dun) z+noLCRP^iZtPfh=o{Kz~ZpedYY0rUIJKysOw`Kn|#Tm~9@as3&xBDylMj;QsG34RF z+~@wscz@`w3*7Cyf%S7u#J-;)^6xL^|4{5dGX6sUX7ry`vz+gYn8X z@E?6L>jmf4`HG&Wrn~F=!83nKP*k2U^!;S^ds__q<<#+vr(thhIoyr!w~O5IBWIvb zqaUWJ`UiGEAH=>a{VVM`?F{%w>02_MkBoJfPwK?^H~T@&UllQTeqWFM;g{8{*Uvih z<=GW(_)}8hd&Xln$x`1H*mon0_hJ=a{iGZIIqbo+pLXPB#xnHFo0H?~$&?+exAgB| zib;EZ`vkdQ=tm0=V1IA$=hHu8=V5)5^;5?8n1$~8Zs34z2Ku}7kIxOH>%-z_b*{j3*W^;>(^RMY*lPAeGaY->H|P^3!<_ki+;8sk^BePh=N!l0a^_}t z{==U7&gcED+<~^eO6Wbtvp-wOd|Hn@*6sNO`(oH=-$3k1Tl?7W6HEU!W&UUcw*OvDiSPy!A;Jlx<-m{+Efd1Bn@i|T~Y+O4gq)tUp4V^zQ=XUsv>}w#23U@Vl^Q80|mq zGI#l59)9Xc{ZWIyZU2JbSRXshWzTzwEuRJdQW&X~VZXR_lpFuS=(ADuS-oBt{KR_s zfb)LT>fYE>$J+cP^#AZD^53|B^pK~$nJ`*(o?}nhivFUV^g(OZOYI~+m-aX2d>AsV z{%E#9=i1{n=sVW?HnzP&>OTa)#zuRZ9ZGw19D7Nz$G$#zDe~<2LBIko~9B zE%Dorbl3NqM}I&69(Vo;5%w$ChxGhf1wVG+e3E8Z_)bH<-G_WTPQ_aw-&(^z0x$Z* z&(QNH>$S93(OY>_~-I|-4}*DSVI5&Jk7E9o-z)5Y%gbj@uBDZx?&4D zQFG_}7qdL}%S(_K-H{i&DS8h*n}BlCM{D0hU)syz*F5C?Cwxyr+9%`j3-*d|nj=5D zy^8$!&FPOTGUzYk{zB|R^egJq{MNH4{W03%uYu?nkNo1?2g}|IdDhM8pX2*NPoY!( zN(4_g?jJUV9_img)=TY#{;g$<$0g{au%V21qhs0s8Tv^1E8vITV}O{bVp1sdG4>&vP5bDz!os5Ik-`bF(nv|{tSHgq%Cf>qk<#K4iR2E*9a7kR@Zjzv z3k!+%CT>I{(a88%VRh-WSZQ%#QF(b`c|~fdaMXZ);c#9w+NUhPq2(Yr!!s19(1T1M8 zQ>4g{8RgNQWu=u>71c#meWNAi(Td#saCTm=Xi-U|f)Z1s1w|FnXlYLV)ck&!FAGPN zPCKKv@@aX)X;ay>0!WKGB@@<}mN#TlbaK>gblu9NWtep4mX=pn(Uz*{^s2g*4`=2L z0eDD7q_namQdL$_$6{G#wZmf3X>}}@k=MVhC{hv~UJ)s$qw7{GEo{~%Jz8DaBT~o0 zUGfS_BjuHo%Iex9;k^9F#Hd|M-RKLa=kU4=VpTKhMrN9er*kKlm&A%Cs)&uRW_C`mik4Q^c>vNpcm|HI zj8-6D>P7{;j5H}LDWN0EkS=8vG5~cf9L_436e$LJ!URNN-TOV9ZI&x2tF9=jt4!*g zms?8XDx=nDb+3p<>eSA(j6udo_m5RpNIooN(fh*lkV|J75EP^|WxDM;%&Q=k)bnZ0bfK_#8@%k*dJB`wBE#7IQ zKFhR$GaTRO^oo{5tD*^aIaBkkJx*~+zHGJ90?O8VfmdjQ@a2cyD|jv7iK=%a%BcmD zRBW#GwSXtC*hExo#R;^6h7*whX{`j+)Fm2DM@?L{S6@@{*opdUBCDMMubQ$G)q7FZ zT6vI4({LJsFxEYDo3PSjo#S?vV) zX=^({f*-nCiKs=pYdATzAg-M-x021T}#;YbVFu5Jv&s32K5+ z)=Eqrl-7omRR`p?5*VoRHk_S-68zBB zPK1x%z7sU~VACWF2&WF}F{3Kly`myAqgPmtQ3|m>PL3577DtOv^fRaQ=8(hE`NN&3 z43193W*4o{2P6R}BC-5_MfP@KK$k%pHk?_ZO3TqoadbisP%)}7VbV+(0m$z?HGgVO ze(!>`!u)Gc1%v5IRH}i5Bxq^^5*s$-5+Q6L`S~^XvI)AcCU66*P0(vK>u6YK`QT|FvH9Ve z`|U)XR1>;^6({PYnw2!Ln|u&8klg&BO?iUO3M$e-5)$-SP)!Z%wm@tRBs||RDJ1AF z1FC@)CFmgodBZxzM9@I;^20uQUV;ws18-o}33|q_mWFkaFQ(cFwyq&X)uRRhurp^0u*QKs!``b_Qj)~X*u}?a`|V- zumH5Kx^ham$x~XD06z-&#Oc!uITWufle<$@+)}bGKXo2dz|DlxiMEzLYJiSsOh7@; z$sbTqn9++HOrjzW$fAAYtK*>kG;BCrRc76^$?g%;cczRDKxaCjq@=7UN7QoEW6_{1 zE4lVkSXN!d9ilFSs`4r)iu#Ub4xw_xYdlJQX(3mriYBQPtF!I6r4!3dB1n%$CM(j1 zwpINpDQ`^8I3ZSja6lgvTA zxn>1oi%0BOm&#~W@5tm>$qWOLl(w_OY2@d}rbkQU#)nN&KRc^vYP1WQTfRXBzW-;V0?9Eh-a2NHajnBUe+zcES$w3315S6)Tn2WetCY+>Q z#M}WDEhScADYG1>-mbluSI%5JJV=ey5#oTIe3jt~H_tGGP? zeM9*?2wj6YycUG@8noJQd3HPT!Du)?2iDj?*&IZno*KKRJL=B8iOxxFksSoFtN1qv ze?u8K5MP5ixHgRS8narFr3FDWoQZ=lYNkW^s;9PE8^&GKB?StS5)~V{a&f1Ym3M%u0+epm+UO?^;j=41*Ry4Kc?04r@bAJ^}P;p}$MIqRtb= z|GJu`x75tqMVwj_aRZsu2T?=$GZ7y8t=l!yl4G1qe6gMW3t z;*+9d}wU2R-6D=y%^G`acYtb@TsEV?C4idL*-*IuAOeWizM?dLcCM_ z64N@HXVvlVMc5x|(S0_|^-&soZzWbE7eXzeYb0_7Lw&G@y9ia0(xRxkWHGTiQo#j^ zqAAs}3U^usXS$I}NwYtr!1g z7KG*M3-=)M%VK<9rXp8k&i2%)Ode6<@}Y`!1#29-`iGwreU`sk$*cQC44#=@P#U6u$-(zta<)LdS>G z2iX^A>^oLALk@CoF4^~t?98k|y-Ok!D|2~oA$MS}=+szIG@Le&5zH$qj!KrLx(L%c zvHd)=9bHk;{&AMJ?)#FQ|Jt=!87d!bPQ-rm{9&8uR03jzg;wqv>x)$OhvMb{Yic3uT!(i?(F4x7snC4&g0OvkT z0D$Yg>L3`7yo`^a1wqw#RXGUI=Y`?`(8QM?f(p58r_PsOg200g^n&2s=;McG0pPWt zAp{f*vbhF<`Fk)s?&)s^I+UOD`%bE#)J01Insm6Zin3t?b5W z&MJ;o`a<-p+4gYS__FHKVs5+-j(^}Ypo=rhBWyo%^4W(-AX<^%k5>{3s%Df#2bPO+ z+lTK;PKp&(%6(#1mf^ADiBW4yXd&s4FrPb6p6b*MSDw|whR?1-YBp_ez2?R|)Gdd%`f=m3WJzWO%i_WmZ zGO#}NXHsCWy@RZ45%f~t4PXJER2FBU&V#Ivjv9$lpWi5(r3cAJS#t)Y4XO%f8RhNd zAc7}G%b2wlGwd#wT~yW};TU;kSjq(OOgMA0h+ngF;2Aw;1;PW)Yafa5WLS9e*w(5J zYZ#i&78-ZgC&uJqxXzK{sbV0o)EirG@au1%StYw4-Ef&9nP{$T1}(kYo0rY>tzwed z`x$H7-`gHqH;!;t5nr=plTkT5Ry9emA`A)&t+DMa(E^yPNam*Onk@a;Ta_C{exzy= zV~dKX=Qs)VLYEe+^D0)|3S>?~%v89#*dw$0S^$F1w|}kjX7|*qxLv(#d=ixp z;_EiMz9`Re9Ocb?g12z^PI#PF1E%S=zaOcYE^766@-bRdn6B_$z7boU7 z*TnkZK)B&OdZ4$$F34i_?P)h8O}1WN^AYtPy)hUvKzo!ME~)ZL=XAckKQ)|2xH85| zvuLA*vNRRON+*wGSJT8?dShljYW@7ROYfHh4}#%{`rw=eLdX&8}tV=9Fo$ zLSS?AE^q4jDLvo#jdb3etlaaO^xXifT@8#EI zx5P+mo;AsqC2f4`nfKJ?@0|H+y2`4tM zB`D|Y=yFWEU4jxjr_C#kBR3EDnpXp|eONUJ z(w9?f2d;%twVk!5*?6afg1h}_Z2^SVyPs=6-%veXJ7CSeuR|HXQK(n3#N$!FPOrUU z#pksH)_Wk_BkEki_hon|yJn{cA@WyqTzq7pb;c!e2M-9WZfCcEfrx!={d%9a>@4E? zO`@6v=vh=V2aZU5&pO}&Om4!vpP@2!JHtNzvnuhw%azs{vvYO%h+Yx7zS*1q5wvb0 z@`1U@5zgHbmF!}D1gvaEL&~Odu_MAoJG-8t<@}c_SJM(#$02LQ43oUxe7-JzH8oM$ zaF=LlJ!{LVH2R^h^*6L!5{U9IuH0vrF97zauFU5WHrGw$e)(|ueqppCQFmq8e`ag9 zSd%@lv_$SRCn7$rvv0u(6KXG+&i|EKe;q4_jKy*tvW!o$%b9HgLc?9kOCmG+Mz{!5 zRM|TkEgl~!I@2x@cn>OEX8iwXLgd_stTO+sbb#OgIEKR}h|ucMnX{@bj&bg8Bx+B# zL7cwy0gdW)hY4Ipb|T!`FR@NSWp42!XhKoR=|eO0CRc>W;Uz5%aU0o~TRCFo`Y>oQLU z7fs{>p?)Jp2vVOVrROY=aG#R0@sSey3#O7EzxJ0sAy!gi-4={r0+WCRDS$pF&RLV} z=BO!CV*oR!#frIjWM#+eft4#F)6|-3RHesQ-8_rKXH;4@T3ob-Q|YLI=z=`n?C93N_M#9ZuioOtk3H2c9raL zz3}0}5$;krr7%|6Q?8TnwOH$pBe(l%sW~l;Qg-FJl|!bgv1Ez0yEg&NtWuL^RI;R% zm`g>i^<~EEGm2R)twWXJSY;lsB2DH!q&iTT2KZoJU#n98`z|*J<<^efG~Z<}o6BYu zz!@-ud;jC1+)5Y(QH(@T1IU!{&#tvs0^UV!2*}$+p&V)M)2b z7`d{j-+T0}KHU~(Zlrz`q*+p}cDM{RB(+0!;ofkZZE6S4nye?D3pSB}koz>wbhQ^m zzqVx*`N%B4?n=w3F@Idd_?F4?nWMFr%B(2}YAxhzGS@4pZ>B6>eD$4m()m!kwd^JA z)++8}avk1Q0IW%;@bJ!}y1(x~dBW3TrN#DsB(8G$42Wli^?@+g*nSCU&DP_UKrDG+ z{KnAw;<|^E^g98T`ZC;Tms^!GbClV}r#<1$WzP1=erMFCSig=MPIbQ2E`4mjkmiS} z#`cQWc57^=xD=gdP}U{FnkHX?pJ>+_{NkSVhFo0UJ2dk$gC8+9D)xi2aCY}u$l^We zZGzR235GpQ7I~Z3y4x))E3L!qi8?xyAwrFpR(J#0ei0<>%L#eowl+-_aGO#m=%OtY61ExP7N%=VG}rh%U(#j-zvS z!m%_bTwEM;fQnVC{HhFRYWdGPG_j0#Gwem#^*SaMTkW*-`gt49jIy+qKI%0MUQei; zQeodt_GPlVzOwHl3TrWJ>gg9Lz|dgt$`Y|%SYA^{g_WD}YU@2-uC~{r1M7XSUx&tb zw|<#|*Dqb~R(}+uhG|h0Hr~z6#<=4B21F3q7SbB~DS?iU zoc)TmSVH348@*ljBPa07E(zPl4%`nJgz(m(f1`Q%&_BZ=-S>UrA@T2DNHhC6Hxc>Y zjnYUt*1IZG3pVmIbiS$l8u_vTFHk5Hh_z@qAZcMY3YUa*z%V~Mm~3Lah*C8oD?0#> z{jW3DT+q8-V_G@&WmHAZjB5vOlSihyb7ZrGy_<$ZPAv*2fkE9x0=3 zB-X1LS!}c9g9gqkfbng4L5BU-QD*nba&}3B zY}MLVUOp7NO{x*M6x29+kHvs4lMkl!mhUgv4HtH_&jOvk)6&8^2C0#3yq~QBhdDsL z_)OE71FGdqqLkpt>@g{x%oMqMqP4-VR0l&jJvX$XGLkUCzmf1u;ni;D4S3uvrDLkADtU`gNrePf{BZVo%lg@?Y+9)` z0MdHfUT7LXrQ`hgB%??Tgjru&cnWW@M&vsSy?9-*D%#ijD=GeR*3+MSR&nX_A3iELK!errw2=`Vs)AWmeXZgyy+b z!m?>K%UVW3dlm#!n4WHb*`THnmN)FJSM8O|Pk=*x9ib+Ux{@DEg?vb=cPuKG0HphZ zi3p=_Rq$;CtNU3W8MQDQ(fI#;#hX(b8YU_R?r3qWO6s;2Gkd9x+4@<65v*wi4W>6E zHK^m`O?D}u!I;uTvF&MnpQ7dn#E}JkwJ8B!jQH}=i<(H)u-276G35l&r#ZxuiNUl4 z_f~vd>qR4gAkEp31 zL!??kqUI%a_daMmRjzw zb9F)Ca^U=P`KCQnD3kFFntF^KbTt03A3LM`AmX*LVVbxQ4p0(Z6Wnt?Z2euJZ zt)cM&>0DJNQ?9q2UMru5(=h~B#>({+9nAlvO8Lb7gT*7pz5@$p0Yyv7D%JKaxWB@g zMhWK_G(iF94rXE#Z`#C74jGm50ZvNP_P;#y@rIwx+u1tA+eH6DJ@V z!=1SXV4c`oI{~@CsRV+@jF34&zOSk{(`AU&caVgk#YU4R8%li-z`<&(QHe`t)F4KS z6?;Y`E-l7CO^j`iRbM=_kBDm8K)6}KRm2##eM}2);tu1+iK|R~2$a)uO`v7Rt&Kju z3~SS88-=Y-@M(r9EiSzF-KAO@lIlWkwnJ^Q6PMR(q_xMd6KE~3&})Rl5+jp|Wg7t! z!@2AMbpox8KHE}T3sjK7KxU%roipdP?u^O2#;#{ws-)*kn1JxAxn~QTxxS|zd@sa7 zpqGhoX53_HV~#HlCbUQkGp@zInP%vmi5FEqMeV7x9z~5N7^R%|!4lz)Lun=n=yc6( zHv1+9^1RaMjGRW|{o}p(X9)~u4XVPl{|9l19*WxX&7qPHe@!#aUaaA*F(}rhN&CGS z4{X1hz0CHix}r$EPoO>t*t4vxf(!bh$<3$~3q9|jSk`Mfdr7wypZo|{VburaoYNQk zBhXlKI3d@coRdPC)>hX@6w2cYlIvcIKB#eBXNlKf-aNIHQrE>(v$NzV&zd&@H`QwN zg=YP1gc%-6~izX;n z*2RS&>cZj4@Tn>H{cai8E@edG=>r*GCX_%sijB5yqA+|Ct6p|#fT4` zeodA4Mz}4^2Ocpkmht}qyk>+(RuPt0DXbZ0owBNRCIGmLY(MG%C%iMA!yF55VwBj8 zN`;WbP}!Qu#9-$3$iKN=Dro&=3<7!=8WF=&X$lU6+2~~(c=j*XB%TvC+wn^3c>ckC&bOZUBT4}vuLK8O=`!UmZ}HEf;DT< ztGWO9=ymx2XnP;HIIi>Fdq4M=Q$X9hNm&Jb`1`X%L z3`!pXzDI&rL@|1b))atKG16-`o8*AF`=rvK>gA3I_@zFpLcbr;Rt z=!upEn(MjPv*jhcb7TI`81Uel_+AoDJbXYY5QxdfeO!+)UYeX6m^u;n-4Cy)39nvq z=-uk>Njdr}NLv@lb` zbO**kq(d(uT{X(4+-62>1yE;&Q~YZ^U&e)t)f#b|lM}F>q~aA?o$>Ko*6LF&Rum>|C6OjB!<-TQ{fw2*3YyiBvk1afndM*I=m z?fK<#=TSl;-ZD#rSz>k(Yl-Qu)HaJNwJn+}^{vt)?A@v7Kqfs{7x4Cj>YE3#q*5KM zQcShOPB`Vxbm?1Fu%w?@N2b&q`{Yov3z8y;E0lx>4y>J;!X?&yBIQo+HoUZeHwI!e zam}+YRYcsgFJ&y;6TgtGcLx@gO86pDPHa9ux3xH@hwNVfH@0n9+nOtjL!YPOrQ+5Cs&+ z?u)$hvcav~wSE~mSAP9Cq!qFe=~5uu4p!m5kLlD>dF(uePMxF2n}b-m|8BI8%I;<- z4@R`qpcYmwu0Ps>4^Xr;Kg4_{hBhZFSEJ>@SULNxOih7Hb*#6v0XOjD{-b_1*U$V| zR4m|jbFaCXO)7PFX0*!d=351E+pUVo*$X9V-~}&nGE)hK7Z+9fGK`NVzWkD+*>;ep zrtRRvo}+ub-UcbE>AuDpr@ryjad=gM(x^T+4P@+?9_@K+k#g8UBXHWh!zk z9Ns%9`I-YYwbw;EXR8;)=tRpI*8 zrK~GAEXg_}tdm#Gal!-X?uSG83QJ4&>rb zYByTu6fX!iwO~ySOtxpos@ZPdeo);b;%*M|0E7iD)V}Tdsxq=I@gZ4)=&_l1EZJfe zMeG3e{GiqPX-P725 zGrv|HYs~RBqS|_@3aB<`Hpg~bA=NeDn6sV7PGeAv=PvxNE?#`4N^cn27qxb>n+M_+ zajdmDfB^*cbt{#Qih&(t^1&<1A9gJ26?MLaWUdFp4{;?WXGV`z((qk0R)nz?fes(t zZid^l2lv2zxUu^VAgI28rmji!m$W!{cw4#m;kBVtY&RseD3Sy^Iy&z0Ev~0G&15!Tu%!u| z0OmX7>Ma9@S#KpJYP?uR=lRN8rCL!BnY`P3pu}@Pd!omRL!oAL26{`(+k+g*BDN}H z#~{gf6h8YU#I(nHBvY5qZz#@<-cNqbENq}X>+In5dCNLQufS0_kIXXswOt;I>HkMZ zYl*Dm$@bUshvn4up9WS4>vp#OkbCy5rw#8EUrF3$SdFD1@r`VBh@_9zDYoS9EAt*_ z-e?^|d1C3>)5A7$UbFIWj6CTwh^xP?rV*pio3-nY4pWSi>mW1RC2ZiDv#g!sbMn9D zH+G;pRH9Cy)noa7r%=hIWcE*(rDS(UtUq{47sT~9lt_PrQ=DcGC+`<%g(T}!`AIYD z+80!_+mfA3 zcp0HPu(AGRn%khny`J=~D&k5CC|38SEEZ?imXu(iu_4fS@2SQ%E|<{QU^*k6d-Xgy z$Lz)E2Ilb82hbUfF&eX>k=PbH+!*4*MXhnyEE=iXF|P?vD)E!M_U}As9j_)!@k^V$ zuC?vk&Zu=QW631ESQUHCYFnszAHN~3M!aGXdp*baE#^C0nosL5RU{-6zecRtCv4U* zmO#5O@p_CJ3OL-%s&^a4r0wZL&TkoPJ8r&XP}6+4u?5e6C=IK%DE&$t757n-BY1f*zlI{trtEM#-0ms7BY<;jR7oVq6WWP1C5PA=JHDJVeuVX zrB=t*wxfr)#dT~sU85=Lj6G?)qnsjgtWp#D-Zn1LIp&l?V;zb+(VckMkB0!6seJ`a zlT`O8^i!(E1?*0kSc*P&_?rFl>g;j8ic7p^ELOE^HVF9;dL?IpdG?t7K28OcqNHQB zTT-5WL%wQiLyn}c%28NcQwlZKl|F!I*@<;ftG0yM$?IGiUM|SA@uF}(Gg%;d*Q@rv zX&M#i=&HvOCV0GNou>TIl6XsWY}2gs?y)`C(tI3Cg2a+p=UvuWcS)(#is((_&HF=V z>YDaixGH77=|#=T|7&{^G@5P@^b-qMHan?ks!iN{nI zcYKwNm!M9gODR=lzFh(zg4ZABKW0aPb8;nRr?7k*?!D+}lE?A;%uYlV|IP>Rz*9fh z-bMc~=W(ZLfqJ*!eflJpK{JJ`CkLK0&S`tm(S1LnGk3pLU< zFGSqr_`?@!Hcv}#J&IP>@du6`_djs-1nQ5t4VW?6qQ-n3?;)jTgYH8O4P5VNjprW6 zUcEFYZ{o8GKdkKVbeV9dnpF`z-O_mUOjAqfbUl|H=ht-B7aAqC?O;g0g22Vj8e2*{ zd+=TB7Sy7L8c*EOeEO8?d9cs7^&QUTCPOXF)>4$~5Mw3a{CpgDBj17VB;X-MO58EG zN%f$8`Z`HU4q?sGP0YD>d!nP(S!jE6PzP+G_|*}zGC_g3b`Gxm75Zec?Ill zZVtq%L%Wu6JWEoCOZzySI>=fA@r5fjH77}&qqGzutO%6S1pnZE!z%)Ws=2r&g;St3xTpj~B=!$PIMa zB#dO4 zd@-LRd5=!4=pE{47zdqu z;uNiU>Ld^M{o3JGmezQ5N^`xd;FfNTAUYM~9<$pS^RiM7i>~Wrm1+$A*X97Pm8_G~ ztrM5w5@#H5eAFX8wv;0saqUeuko0EUI)|g;;_!M@6OR*y)i-O@ocOh}?OX)fe6|t} zMzyp$xAvT4iEn1&0yrd!%t^`G%P4Wvjqxg<-n8F_LC;fWUj$^>7idD{7%Yg7e67r< zx=n5*+o{4QXiCcPnwsKj{6sb0G7d7ts;>Cd4msYDwBdzQ_3Ffk^RE}K`&2 z)AA{vxaZRom}OueV12AdFC(+M)574KX{cB4v!v-SOVb0u%REg#-C7}?`{>ftP-~{? z*fvlh)1~Ryj9oL$^dX(ov??Jr_cgsUlMZ!`)$v+SpF-MTX;Mqs!?u>ooC7(hl>Fqh zMk)>g(xs62q_t)WDFdWS!E9s4zet(pB1%z%NinYfA)QzE`j6)1cx@?e^;H6ME;ioa z57eIwsx8(MCR}gbUe-)~&>-RK4+#quSzj^cSe#QhSt3P^zFD7rz;qes06XyFE*DiX zM?aj8Q(yh4l4ChHWnHm*OJkpGU?OU2blm4^Q6g!wqrPQhe)E=JeMlWeyc*{sz-I%4 z564`*miwK3fx7|TR#GogYoBItK7NPk1Z(b6Lb2{t-!I{kTUhYmFydH*X3bEcS?Zm6L>TUY9YcBc>Gu`B9`{{#kTy3{L zjcDyRKcAhjrkwp9dDRTmFHdXOdglZ9EVWvNLMCcB-Umw5S8qOas-dzO-+HKaN{JUl z(&BtrCQW^P$f>SyOtiG2`7~AoLBAHiM3g?&%*9=oPmQa{$ zYB9URaF`F@eshY*>d?FL161Ed%1<1Y#x23R@4$yb7>vdprjY~t_)aGl9cRBs%CL!r zQYtG~sR~z>h}mkiK9y)cSMNBeKKp`CR{5LFqT3luH(@%f^Q+|E^wF&A<&*SLr0f(z z!^WKCgSXI{gLq3HD}9(tw#VjZ$IZJz%P_&o_Z-99{g@rCJ|4zT*I3t@d82VSx&#TT z58d2>7ZNceFX1{h`#@u>V9M9vQm@YGq{z9j@ew-xJiia?HlD9GK+Bn2Xk0-zzDsT?-{gn>sP8 zE=fM#8v07!gF#q*W*b)eO47l)4jAb zd*h=j@#BMg_h2z7EVYbJv#P{A2krO8aW1QEI}YB5_d}Xn@HIT2E=5*&j&*8Ua}3PG z+0W*)R>m;b(%AXn?)nByo@_pDCgzoxd8pTe{yAAkgB70n`KcZF%-+evct`q7lhvgc zi(P6c982kI$izhN^&Dmm%&ZaHw#F9RoT1aJmKVWg#u@i1ifbF@ZJQqptx@0W!u6HH zi7KG(4Oy$AsR=VQtk1%!k2&K4h%dyQr_}|fr(s={DH5{2<+2+y8IPUD8P#Hz@%|Fe z!8@z=w%~1ZbF+EH#ZQrQI7nMR*Ip(YlYQ_JEPVKfpKZYdin&y_dhRdfX1sQSMK3r( zm|3@j;Y+bt*8pdF+*WPj(fCIYJ6x%187eQP$~2y>TOLq%Rkgq~mff&keNJ>H?hyR; zR>}%n*3x~taD&aQlk%$E zI^xyVnep(AVl|B0_@Fw0?9;?-9PfCrHPnK*Q|&{WNWU+$U%=}z@6NolTKDlakAebo z1+?@>TF$o5v^CPVr-z`8XWqQ|hHV3-?L(H;9bo-&Z9H|S3uH~%`iZiBf!cVcyd9rZ zI#^c2d`lBA>8K|l>y;yQWpP|M*68(OF<-Tiwsoxiv=nz(>|si^a@c9aIIKY4ZT|XJ z^UFYHTGm}D;jofZczfu?!|}(Ma?GbqEas25qe6IDKyC!3Sag!_OC7-b6?h_3OVz`~ zyS=gM+iVynyJ1^HQ)@a;B%g=+r}l6<-C1Rx_{iq{XuEjjEkQIf&F$%0LOazAdcGlJ zwyafmn%OQ*QpzVKY3^zjzv*fFBX@D@a_P^qINM`yoWwuqsB4wqn5vF_jvS3&b-#zan<}6*$zdZT1I+%C@JgsQaaj1<|}zpZ$+xA)$g7m;U)rHAwOeO0rjcX_Hj%GLb_S7IM`$S>s z?vNG&DrdVXnC!J3X7+NY%G(>&qa}*x zo?tybTxPj3`TF9Jz`duMxSE*RV!_QxwbfHxi>Z!H5KpnTSIR>Cyt%pn`SunTME82I zjyd1ZvEQ6ucQO)#x{lVD4JFMkFy%*E+V)U0Uw@IaYkl!0R1Ww8CKu$_=6#wY7P6a3M--evHQ*QC46=txch6$f%4m4u1w;R~mT)-lgJRq8V##e-U`hAqV^%O~nj2SRoS zb?Z^9wpAx_Nrjxndey3GMRpgK*uf6teRKIFx!o2+?X$;fL*vU6@~D;Uff8?^x%q(_ ztQvj#e!qD}-od_3UJ~Y;F3i~uRQ31oX$z{vtsSb%BI&awlvav$`}mUM;fFCk)P`29 zdW}-O2zs>s7`jvSI7^S?Q>|u|V8x89xC&h$r>u7a;~P?mPK8oa-41ov*{8o*-2^#1 z??3~>?7`L3jh$;r7oyzyq=ndo36&0wA2kq+*T~TuAd$rT4L#e5CyI9`zm|&6u${sv z8;t-y&FUEcPITqlk?R*^iYv;?`UCw`_n$<}DdnUp{u6Nl)<^=Y1^63}KairMTAJsv zu{70Bt-is){&TIX+sTzBybaqe3^^*P8OuD{C%#%4cTZFG{uAc1mC5<@N*|!<4rvQp z-cF3Xq!c}p=8@{{aPt#kyc+Bw@tt-UZ>f1CAJ}#`g*a*1I(<{u1tnf)(ALfca8xfJ zu2gA(+Hs4{vOtry{0UE_gcf~ipjn1pQ|$CLwN@dpJ;s?7+HUkn7it4O4{hp}Ge@<1 zR2v+h#>Hcnbh2w-Elh5)pj~Ho?%4g6=1o%DqxD%j-9bw{jih3zdVX|(Ao8iOG} zza2=ssg*~;+M^D)cJIa7k+ARJ2iVo|C#+wp@nrn~)!k4IS3Q~md_U$?s1>{TQzhH# zRGxT5ODPf+W^!?rl;SayO9~|vBPVOaZ+5356N`0m?o{19cjHVsgSYq4x5_)WTx(jO z?dBr3vWF+BxmMJUR!pf2SoK$IyH)qax@OHnVKj1eXa%NfeZ9>duW<)Xk5md%wY9yn zP^J0k6??8sYIviUzdq=1I^JqF@I_QyN2b##SgMD^?YJS~g9eGorjl6VF`q2hy2LCL zxg(2!q%qKvhngBf{`hJ$>7Y`7W7GZq_@UTTNqf!ScvbH(dHv}#Rj%;JALL2Fr8%1L zj3y#e97=Z{Gk2G;E=U^AFwYm1v^u%c9fNNtswx=n(yClwvG?&PZv28PkR8qF`Y8$HCI&iNvi0)fuydJREP2W5{L1^ z!p&NHu1XcaC+_CaYwA>&gqbH9)RVpuN6+qPRTnvr-bn1K!gPB2NRetmmZ^ zL97QY^E-mh2c$e>tiboBI-TH*bm_)DsijKSdcSXj`}nw!+zdA>g_JcHR#!Qr7P>Us zpmE8WRgZPur@riE%&sQE3EC)Qswh+DPLh*16jLXMDHPV(ymmbpUoKLSZXg0o&`2RZ zjWfMob%)w>3NtC>F~^~T+stT&&DL0ZmRCJW^2TH0=z!6 z$>G??nv^R!$1n#(O$SK_xTzr=5{J8t4PYxzqr9P>frwWV+ju7dc3)Crkl z+u@xD4xhqWq5fvo<$<&2KsCM}>X>VNcP!8PR`X2IVzKk9AGLwpIs~&%0_0Uc#LQ{j z7L4rT?#dm9y*m!5?`F1QRvYH~ehBlH)b@oyj~TZfYVQ@EX-u z*3F%%ztD?)=+aO86l{vKDd~_Dg^Jgh4zP)!I=b;GUv#p^j!J*dAmfQ)DH|USPl(YJ z9QW126l&x5;~SFdOO^Wln_o%QJ_6}gGY(m~q&p~8V>2P1^=3FR{a85tyou9jIwWxu z8|Kd6Kuq>c+M`p?icA|MCOmx!r~S&JcAjY2PnWK8#u^8}HBR4&N#PgALmiyrc>MZ3 zvW_TpcQ_qx`XbF|JmGw-gDac^#C&0AB;6{XvBT4!Ot?2XrfGU3-R^`b z-?7*A>{e-fO=`cJBXdwlJQ{noup zJw&Yg@C`-0P9geJ#X5vYEBrTkWQm94`^~5DBGo?3=!mPK*G{LzYlp6?Kh_x7XmC~O ztHjMN(uR#ju)|Kj5`9~M@l zKPT2WXw66xE|-`VWEpLfGV`0ajqGbtbAa%WV@=sNA1@P*urA`nkajaK;dt%dlfKfq zJ26Hrq+PqAA(Ie4OKx9^jmX<})e6NVdGrFRp^W6pIQbZ>oH34@7@QtU-fCw&>3A&z zYh^uMSUvMe$C=qrwV88C4%A@k1Dm0s?T8fnHsFf%p>=1Z zIMQ@S>K$-MeD}O3>0FQBzuwzr;tb_jI9+XA+@{W?O?bN`adgY{w!YQu$McqQETlfJ zcMexaT<3>*q!DO3hDClK#`4}LxqQ%Vtdm%%sz^#dg>R#Dcj`jp_9SePc?EG z`=(HR>+PpcAr%bb-Hx%Amgc60+Yg3rFY|eBS6>u-UwzBT#`pJ}|qFpSRKS&Ci4Zeg$RoUmUwARH7935SK#!mK;Ycyolg z!hB(Y&?PJvb_hF#UBW@(kZ@QyE}Rff3ulD0!a3oBFe1#aFm;v-D}GBg_@Lgl=K6&?77p`h>fL<-)MAN7ySYzSB(4 zBPEfI3+CFXX+~!dW56GG2ysyS~w$I5JrTH!ewDpXxt^~2&;rO z!dl@GVV7`P7!fWCmxa0e&3N;KE}>gkC@c~d3q8UPVW+T5=&CZ~bqfoHWkR2@LRcxR z5>^XqgtfwUVYjeP*e@Iq4hkoQ6$eZ`mBK1vjqr%DP8bjdg&|>^uwB?8oDfb5r-XsK z&2)ppkg!wOCF~LQ3eO7rgy)3)!a?Dra9J1?8uys#b_jcfy~4A?0pXzVyl_-FCL9+| z3a5nA!WrSLa88(0ZR*Gs<_imiE}>gkC@dE45>^N+g;l~DVXg3puuj+@^b3Q+ZsA$s zIbpwWKsY2E7M>T52uFou!UbVeXdE>2pC!x{<_imj#X^s;Ot?!}F02q%3afA&Le!j3k=n@tRi-g5OkFZSW z6P61bgk8dJVOW?~Yo=Q$ED{zAcL}S6HNslq5n+SSFANBS!jP~{I3^qyP6!)5V(Re= z1HyJ;x3EXpD?BSaC+rsv2nU5j!eL>~N6qwdg?Ykr!hYd^@VszbI4PVGP77y+bHW8- zM7Sti7FK@D)KMj@7S0OigbTu`F!zWVE?-z6bO{TEMZ#jCM_4BG3A=>d!mzOLznke4 z35$ihgjK>CVXg3putDe-282OjNZ2MkD;y9G35SK}g`>hT;ka-@I4PVG8XuSP7Ul`_ zg#|*FuuxbeEEal%WkR2@R#+!&5C()nVMy2}Y!`M4yM*1su&_tiD;yS%2uFqE!b#zj za9TJkTo6Wti^8bTIBNPUOPC|f73K+DLZ5J#uuj+@^b321bHb?5sFU=B`N9IBOXwCB z3X6nQ!dhX2Fdz&HL&A1php=gD0&j|;FgTf)b!ZG2va6-5!%xW<6mn+N@<_ldy zx3ExHBrFzsgf+riVVy7_3<=wW?ZQrBm#|wH7WN2xh3AFi!WrS5a6uRm<~N%8>=bqh zyM;Z%v%&%4kZ@RdUN|Zo6OIcfgpK<-!VKrLam^EvymN3XcfugbhN!Fdz&HL&7#;yRbvpDeMw<3&X-5VXyG4uuphS z*e@Iq4hn~a!@~2z5#gwCOgJu_5KaoGgww(q;jC~@xFC!O7lq5hs4%O=Ebkm)o-kin zAan`c!a`w@uvq93mI-~rUBYr z$Pw!PjA1NOH|VBru#&pLAa#Si)D6xEbEqG`ebf)uQ9sy4{b1xClM~e@YY&hr@az=AhUhQ+jtVR2FZ@0yoTcCJyMpHl*h&9^qx2t` zMgMU>{m1?E8#pVhpx^NOoUn}k!tb-fY5EPnUGx*!E}RzbqQ4kkI7`3b_Za>5MU-EK z$s+m_nqu;~5x?E^8`vS75th?`*xoOkqaX2moPN9-91t$hkK9f_g5C5Z zI8Hx;x%4CV(~sOw|A7m_D*6w<2ZV+6BYy9q|G;y?S^5#b3+XqoQ#dQEp#QLaK)66Z z;`apo*t*Hcp&vmH{Rr05k6;J=2=>!|U_@9zKjL>K{Rjr>N3fTE1V`vc(4gPI4&jW@ zPyb>2gs_8t#P1yX5v->Fz(HYze&lxg5e(Ch-~{~$=FyMbPd{=${Rc*b)$|{J4+@Lu zNBl0Q|G<9X9Q}yjMf4lkC7csh(tp@KD2&jL_&rHKP8&up{Ro!PkKhsd5$vQN!2$XY zTok(KNBpj$AHfj)2%e=M!BP4V%%b1GPT{ODK>uO;q_C5I#P3}C5v-yAz#-ux{mAX~ zBiKVff|K+km`^`)KmEx4^dGn=tfBw#dq`MJKjL=<{Ra*R7wAX)E~ekWZsCHkivGj) zA>ktZh~HE6<3Yp7qaQ&Z{Rr04k6;)52rkoqpqu^!tLZIFxr7p$XRu#bAd8R`Yy)XV+U3l38!xJ;ek2z7$S z36rzb`7_+Ns1vN9PB1{7U>0?PN2m|%q&{$f`alH!<52Ru(b z;3#!~S=0f}QOCb#8E)zTE2#qvQU}<}at3p#2lUWyU>$XVUDO2*QWrQyzkzP*1IMTj z^wV!(KXrn0)Cm?*C-+k)Sk7_=N2nJxj+q>zZv4)nZg7FRXAPr}y1^>y21C>ho~3Ru zm%70+>INIA8yuouaGH9-Lh1#_sTT}TFE~KG-~#o6#nj9F)C*QnFE~oQU>5a)xzq_p zs1tQW5p{yqdrY=bCw}))CzwZ_ppQC1KXrm(`WGCgUT}tb!6NDfC#V+;QZG12yO zs2e;_-QX;BgT>ShPEt1*qHb`Ay1_;22Fs|M`>7kOqHb`Uy1`uP1}CW-%%^T}nYz1C zUr;w#OWj}xb%XuX4Hi&0SWewwkh;NM>IO%s8=RwV&_mte6m^4b)C~?(H@HmQppUw_ zpSrINsM8_c6_aEiLY0_p~%)IGJ?D5Gxh2z7&<)C~?$H|U~nu!6e55OsrRsT&-n zZg7FR!7}Owr>Prkr*7~(b%Rmr26s_6_ft1mL*3vcb%XiT4Ng-x=%Q}WxC0#9Z1|`f ztfOwQi@L!<>IU7^4OUV&*hbyp81;e?>IHq&3(in4*g?JE2=#&npDV#~>g9gw1#77n zoT6T^fOB!01c&HfaGH9-EVfI*TIvNC zsTb^_UT~6n!F=ikYp9p|sTT}TFStOxpoeIQqM8=RtUuzIQ?<4MwONETe94 znYuwAb%RC9-`Pfu@^`k;uKb;CoKybJHpZ2|vyENK-`R#=`8(U_QU1<0&MSXs8?(ya z*+#DNceYWd{GDw?mA|u%v&!Gu#BfGgJJV=Wx>2tw-Kb}kZp71Q##63z zXBr;r-ih`Cb%UMM4GvH@I7!`L1$Bc#>ITnJH#kb&-~x4n`P2>isT<6qZtxs+gR|5P z7E(9ZK;7I=-C#R)gHh@R%c&d8qHeH)y1_E){ypTIy1_2$1_!AdoT6^9lDfeVb%TA> z4USPa7@=;kfV#l|b%Qz74fazvI7i)J5p{!p>gImx20N%5G}vwfE2taHp>D8}xITQD8(gGr&_&%~kh;NK>IMg>8(g4nu$a2R z0CjUeb%UMM4Q5d{SV`SrE_H)d)D7;U?&mfce(DCp)C~?(H#kGxU^R7v?bHqSQ#Uw4 z-QY5HgKp{uL(~oCQ8ze9-C%^eK@W9IS>08_c0@u!_3DJn9CksT-`I?!L`N zkh;NM>IO%s8=RwVu$H>PPU;2+sT-W4ZqVR;1}vg(u${WW0_p~bsT*9TZqP^FU>kLF zKXrp)>IUII9b z7wn*3&_%uAdFlnD)C=ySUa*~dxu1H$9_j`2sTXunCwPQ9!7A!}Z-&uEonRkzf@9PP z)=?kWO}~P})CtZ|CzwN>pocoaPU-~R)CrDICup#}0hUuI*g>7#Pn}=^^?^s|PtZ-B zU>$XW)ztYC>KEz+&rv5hPMzQ){RuWuFBqm?@I3W`v(yXbQZHCWyIRFb8yurC`V8yui+aFV*gD0PDY>IQqM8yux>aDlqPeCh^wQ8yT-Zm^iT!Ex#abEzAw zqHeI8y1Ada!E@9N7E(9pr*5#Ay1@W-gGZ?Q1BTH>-QXZ~gHzNE8tk_KgVYV4rEYMH zy1@u_g9X$LmQy#_L*1ZITQD8(gGr&_&%~1$BeH)D4zVH#kY%U_Nz&HPj9E zP&fBeH#k7uU@>)rLFxv}s2dDXH`qYkJCSed28XE|oS|+ohq}Qw>ITnIH#kAv;4*cC zZt4arsT({?-Jp-U!71tn3#c2crEaj7y1Ada!9nTIVC$8{9?R;52oEF6su4P&as%y1Ada z!6E7f%cvV{qi%2)b%X8H4F;&&js6+x21lqHoTF|qkGjDQ>IMg>8=RtU(BSIN&Q8=R$Xu#mdJ2I>aSQ8)KfH+Y`9 z!Cll1c2GB1LET^{b%P=5z7F*!b%SHn4MwONETC?%i@L!f>IP@18_c0@&_mr|Ep>wf z)D2crH#kS#U=ekLe(DDMshj($8yul-u$;QVPU;3LsT=H~Zm^BIJCJYc2FIxzT%>N$ zMcrUGb%Vpy4bDVt7P&YV0-P}*z;3##271RxO zQ8!pc-C#F$gYDG){%oV4y1@zR2A8QDbW=ANrf%>&b%S%%4dzid=%a41j=I4i>ISQ+ z8;npl=%H>fNZsHdb#p&;gJaYUR#G?EP2FHMb%SB*=634-CawqS24|=n%;9|!^iVh0 zN8RA~T_%^Q8^7Ju4OUV&7^H4+l)Aw>>IMzA_rP-M20N%59HDOR|L-QJs2jg)sT({? z-C!McgMHKuhN=57`h}<)oTY9sSKZ&yk3`-0eU7@piMvcjsT;owsT-`KZZJgM;23p- z4b%;0Q8!pY-C!qmgQL{V{nQOkQ#W{oy1_o`1{IS>08yurITnI zH|VEsu%EiYUg|!La;0u?fx5wb>IQdFH#k7u;1qR(S=0>{Q#V*c-C#R)gA>#Z2B;g% zrEai_y1{Ph2FIzJ`>7k8rEai+y1{H%lyKQNcNz%uFrk5CubN&kUU)CY#B56q|kz#8fVd#Dqfq)zUqPH=(#0|V3x z4$^;Mh`PZc>ITnI_a5Yvy1`}Y2Hn&RR#G=OOx@rtb%S}-4f?1XtfOwQi@L#S>IU1W z8!Vu1u$H>PUg`#?sGIw#8;npl7^H4+h`PZx>IR3Y8|+uQk#D6N{bovcwo#~bXB$;Y zH|k-f8}+c#4gVNz0{ewz3%1`M=xhUP}zf-!={#ClMU+G49 zE8Xy~(w%J#E8U1k>4pxa8>H?BaNneEFmJC(A9dq*9d&~f)D1?d8!V!3u$sETHtGiZ zs2g0QZZJ&UpohA_Aa#R-)D1?coBOF7%&9ZkMcw#4PTgRby1@zR21ls-67HMS4dzof zxQn{M2I>YUsT(v{4}-ID7N2@VRUs29I;s2B85FIY=IgB{cj_ER@lgs~{H zOE@RY<2XCEw+p9)V~5P`lfoI{f^b=w#qoKB&l9?YMZzxOkT6RB;rQBnP4?1{_`NLj z(VzI;Mt_3C^e6YzpP-Na1bc;1;SrACWBYkwCH;-xHNr6cj^C5VOnQ!+3=1Q|BMs*E zUY*u(MwM|j?Y3oI8fpXCAWVtIfKEDx}T`2`o* zZUW1gUogb{fI4m*KVT7cg1yuU zj#4KWp-!-XI>B=41pU+r)>0?9Or4;QI>9#T1c#}U`>7M0piZ!wI>8?51Z$}i?4?d{ zh&l(ejA`lwv#1j+rcUrIb%JBm2`*A6=%P-rf;zzfb%IBz6O2+PxQjZ$cIpJrQz!RR zCpbx+U=4MGz0?UFp-%8Db%ML7?_SgsEN`%zI>9J)f`!xv)=(dKj{3lH>I08Z4|ta6 zH8@ROpo@CApL)PD>H&v%zJiO?1xBd{?4gc1!FJOo|xSu+}Zt4JYnLb!ezkoIL2iQ{yz8Cjt#tR0jO^yp|Sbt#qd0~Lp zJ$~=v^$t$6oWOQoxBM;K#p@Qo&kBp_2mH?GbqR)qlftqFbNdK&RN=nB^qE33n!R9e$O%AU?tN7`-Ne~`*?;C5zeUkGQ$X~`VH+> zRj;94On>9JKE?}Xsd@?hv8p~odz$fKd#`X=n8Wy9MgJ{Xigq=*8TUKp7Yy?E6x!MR z4Yu+3kF$(UayRN1ZU>k7dlu~-*3+Ozm_t5<{utph_2Ksb^?wxYLUKR)dC8ySxr6*R zo}ZX6Fpv2Ht9c%QVV=+61kWe#=XnIqF~6Xn`33uVK7m2%0|$9tgIz6I#@oRx#(xU_ zV!43jj34Y^{NM=V2Mxy0{nQOsGk&m_@q^PWH?WWKgEKsDxj%?>!1K-ERfbW_-%p@F zi~InNC(mF%`Hc*t@Imk+sJF>87{{W{pWr@D{v6NcH`1F>j50J04TXt;jxkt6|iU znCIOe;4z8 z$j=$Z7};eQ_%82zN=Ptfm3{tNn7 zNzCsnB>x@#(c}!yEAnUPFC}Nu|47cEzm%Lu|0DSt%Ab54M14k9Wf(o=L0ms%O@?unti$y}9>;Szc>>SlWK)JQK%UGn2FV9A zj3M$g#<|E(;`$;#gX@{>%rHjD&*Ax>{1W;L$R{(539<+M4CEhV7*k{~u5a=wT-W5& z8OAL64Eig`uVokuU;8HhOvwM zCF(D7Im4(RSI{3qW}g`Qc1sn8f=6=gDJeCzHo9{zo=p{sDOk?OZa5 z`5|O0+S_CZ^B2g6FmIiF4D&t64va&RpT_-~MEiGv#JqwC`TJ-;lV8I9kbDB|cJdEU zpFaThVqB8^3g#t{e~9r+@*LU;fA;@oIe3Bf_G~DE0p#4vt$2kBenS3TrcqA*J;p=H7tzij{|V(!{vVV-Ife2kr&0dozoPuf z8I(Wy63U;%{8K-90p(B5qx{L&QU2sFQU2r`D1Y)Y%AZ_C`IA}b{~)hH`Vy|F z^Xtin(QiOLiuM-yNwn)p^uzne&!FFd?A&COlV3ppJsC!S75NqP-;+q#4bKbYH_>lJVm?O$`EB&?k>5ePg#1hNLy@ECmmtT`4@HinKZE>-O-2X#j~JIB z(GS=~PNMwDDU?6?Qn}hL>n}ZL>n`o#4}L=iMFMS zMBCC$;$Bin;+!fX(RM5*PoqDEd*^B-X@+mx@lFwurb>ttRpP4*|b~f3M=V9`jXlIiHc)lYC(Vs&88J>s9 z=d+9s^1FC$AkU*6PJSQHf8<}GT}zJOd5?Sn&&T8s@mx&)2;&{(k1@_k{(orSlT zB>x5Nd-7lLTuJ^L%Afpqls`F#@+TKi{^V;YfAW_oe{vD!PcEVS$tcR7TtWGhSr`u_ zufq5WnS*{w@@mZ2B{5zXAq&yJNd6b}Pmo3Emn3gPzsM=@c8rsdC3wCfcVe7|d_Vd( z$q!(@E?JKL5pp-?>ympg--E2gcnx_E`d7$A84q4~ z4!rRy%mX2>$u@Gx0*q^r@4~nz=|=wpS(t4UkiUa|a}whZZW8?xg=BHIQAFN``5mMe zzCyt z4}X6B%ok^JBH#acCEAe23txPx@Q2+mRW6?Yxn-AYwokJ?nq8#XZp|*x>^#lR(QHGr zmwy>cH=@~dnmwc0Q<^=Y*<+eLqS?cmJ*e6Jn%$?_y_y}?>@Lmj(CjwN4r;bvv+Fdw zR@Lmj(CjwN4r;bvv+FdwRu24)(Cj?T&e3c`vzH^9|22C~vu8AWO0y?4drY%O zG<#UH2Q|B2v->o=SF^*K-KE(bn%$<^LCyAScAaL|YIe0|S88^-X8SbTquE88?bhr9 z&Cb*89L+Yw-irIq@~Y{7+7Zp3)9e||p3>|I%^uV25zQXf>_N@$*X%yc?$zwDW_M|J zhi12Fc2KkZnq8;awVGY6*_E1IuGv1#_GosIX1g`JK(q5SJ4dq(&0b#7{IA(_nmwc0 zQ<^=Y*<+eLqS?cmJ*e6Jn%$?_y_y}?>@Lmj(CjwN4r;bvv+FdwRG`mf+gPQHv>^jY^)$D4`uGH*u&Gu=wN3)AG+pXCJnw_WFIht)~_HtD7zh=*A z_KapvY4(I>k7@RZW)Exjpl0`LcAsYVYIaz&yEMB)v)eQ~sM&tauG8#V&92t$O3g0U zY@cR(G`mQ%-I`sX*?F3squGXLFJIF9ui0~&J)_xEnmwV}W12mp*~6MWsM-CR-KW{T znjO~cF3s-H>^98~YPMgq>omJov#T|`QnSl7+o#zc%`Vbxw`Lb;cAjSEXttr*%WrD_ z*X%jXp3&?n&7RQgG0h&)>|xCw)a-uE?$hjE%?@jJmu7cpcAI7gHQTS*b(&qP+0~j| zsoCY4?bB?JW*2F;TeAx^J5RH7G~3YZ0ALm}ZY?_ONCTYIeV7 z_i1*oW`{MqOS3yPyG^r$n(f!@I?b-t>}t)f)a-K2_Gz|9vx_v_t=R>dou}D3nr&$I z^0MZC&7RZj8O@&3>Bw^E5k0vklE&Uef%p*>jpbquEoMJ)zlSnmwY~!jpbquEoMJ)zlSnmwY~!Mzg0hdqT6vGr>PqTY9JFMAVn%$wr1tUToh}_P#GC?d!JpbtUclq`mKvqK=n?X~yqPTJ?Q z_mw5>yVc(J?xcM#dtX7)zU%FM*Cg#T?0wM-iT?b>1$;a~Q6_TL1*7YkG65T-m$m=cFD?@kk@ zz#&X-nlLM`rq0hVUUkmTtV5WoG+}<|5a#=7!VEfuIhQ8PmmR`$k@NE7Dc4q*PH1mOdzazi_*- zM0lI-|IKtoBiVTl^I+1?QW}BU3z`BsP5|hKdXJG zf4^(fgvW*U&8yinSMB$>ep;Ko|E1d1rI+V|-y7NclS0h5#2od|J(%x{x$~7*V}ALD z<9;L|?qL=8ClUAfHHPs%#GMbGLpmFeyDA~>&#Sm^LEKZ&x^g$>6+`#X6~%pXLfl7G z+%Ig!Tua3LXNbEU@s3@QPa<>i{=QAc{RzZf0bjHu?g;%2d*eR&K|Lfq$6-1i~wv+%`VAnr-% zj$Bb$`V!(kqvC#Z3+4?YzA)n617rx)Xa zkr4OyRotIP+;x^Z$hv)9`~;<#+PN8iu(-Wu11_c*^hS|z~U>4dn_UDY!&xSh&zfnzmB+z z5O4U3{QXoy+*7adJo*03nA4AQpO#5WX1U@Eon~VNWfX_psHaf;saZmg#?daI@>j{*3?n z<2vKLcf6S4-~X8L-diVfn=<-yyqA}L_oRJ*%)ufTpRxYAD#!iD6)Q_m%^O=b zW6!T%Ll1$g2-e8!H_!Y??zWeg9)CS=%kPG3pzF&EHP02fe)riD#Mb^gkM`i`N?2qC z&b=(x??U0}Ri^jEMcU1)e{IL~@z=ArbcU-DQ*fagF?Fh#?z3Yml$hLVOD95Cum1BZ zWYy}R9n1S)uiWyPa1~;?d!Y)kd`87mX2)VkEYXWp_!)$L-|BZ>A>XswXU9_T`fXbt z4_6|VTNf%3%i}7RJUfnf41@|JC+|ImX2^aVws&UM=TvGmLJ-&^hzu}YD)(~ zkFFeeg&bKqWykW|#k?(_3hzQJKbYTzSU#m<>9=DENi0FNd#wUt|6A-}rvaXXgo zi`Q@YWY~vTo|*R{mQSi!I_+2vNi27(EuTc_Pp(|`3i-&&0Xr7|#quqWh0732`+ON< zc}&G}%#P(YiRD(c-nq-Gt7UhgU9k`E zj^Xdi_&bTeJMmYDztzeN<6rUjC-{35e|O-Ip?`e&1k!q8{$Feb-+%4l=N=AwUEDq> z=jrOwUtRw6OKbuEC5|uHa(U^Ig$X;vH(qNCpLn*ge`P6mp%9wel;&q_%>mKuS6kYU zYVYNbzC`w1Za^ws^WV4Q>Uiy;=N>}p+}>iR-f?-SO1&M&yOH|)7rteOIPuzsV!%a>PIfW^(FG&%g2yP<$UaFEr0FwbElCyx0l$df9Udm z{FHhB0FHkvQjg9b>)#Ll>cW$@io(}I;bYIbpyKoME~p5ZrEjaauwa({%V3r(gw$`m z{K8Mkw_dJ8YT5Ijw&Pk^Xnn2~D!4r&=g;cWO7xGFiZ`Qm{Wl@?;rTkH;#(J5?T|AI zE#bOn3!tKMz5ps(l!~9IG4K><9QyOng6&_5xh`ihkRxs2o?EIku{$W6+xxq%eIOJQBkM11d)0; zdfQLQ?&uMu)^TCC9aq~z^K;Em!R?>0RkTH~Qz}9@{zj-Mncr@Q`1r!9@R4WpkopT3 z@{sx|m3pn6dZDE5R$ERX)q~NOXUGH5ciXY-S~wZrYX2I$=zq=+6}gCY@>TPWw7Rq{ z`VL&tt4rQ!PJiyRmzS0=<{-V3Dm^oH`g~#DEcv;4H%k5_(s^g}xtSm1UD7|t-@W+z z82;YGJEjx(3*ql5{x0r8J05>~@YjgH+wkYXAH%7($*!mGz^eY5j{=K|2j?f)d_ z-0ITLFFmOA{S?R3OMMq=?GWSh4}?GZY!>o^eoUx-K&c*uR`YKAgsA?4+VTKW{r;u9 zX2|beszoZ#y}H+q>l^c*c*br;@mhv=Sf3fDgC-@CH3 z_-c`>>Df=f`m9RHzxVPIdgo`zYPF>aX?9$?YKClAX%{VA4V6somIVVAbA2;Ple|fl zD$kaDSY)2s!m~IR7MY{A@aoEhMXsonc-6lNi~N<^!dfT-i(HuBjI>xQ&dskb{ooR< zm*zja^=ad)6>RB@?0r{7hH(OaU%Mm2_)q)=pTAbM^YT zuR-$HBKg}C`S(@k?+eJ^rpP}-A=C10FfBcQp_KXC9J%@pr~Fl`{GER*`aIB9|IOqt zQ}VYt^0j5=?`Gt0bL8n|Gk>)kOiRySmP7u2`leInwE^bL5=7tb%hiTp*Eo>d)kl{)FTO?cVeVsnY1Su~m!>ZG zPz!zeb>=B~?-%OxOQ*yy zn6f=e_SyIG`1>46U*&Ho7waYb8s)Cv=b}q1 z3ud{$CGz)|nZKKmzqdsG_OhA3>J6r)=g&x)zZ)VSb1c7U)u%OiE&4t;aIPh`Q{waY z1%Qi)>bu7Pt%HQHO=(GEc2SLAO~(5m%rsj)^omB(P4_#?Fq!3J^#-A z?%#g3_MQ7L)JDa)!34S_?~+GZTsI=IbYjW!J4}g^~xXB z-QoYE-B-PMjcN@p58WQ<4x|34#&71K49vkF zeS>G!c`D9(KDzY&*Ez*0z9Z*=KfuWdpPr19R&38vAB*4uOm z+w0f6uHX0gV8)+5Tw(T5wxCY;;)vln!|z5OCl@mC#PomO$QkS^TVzXfGE zw3^@lj%QbwzOb7Ar*H3n54Qa6DxdV&E(yM|cZLkSVQe*?yzyyc%ang*>F?io`_ma= z)BevlGQ%Ffam%JBvYyzCd>vZYdRNBQtDbzM;_4^1++}QS+WSbwTm6PR`wy;pBIA}r zyK|nr_Q~8QuY2P9C*JZz-jg>x`PL`j_T=V2MZd|bW{O{lz8!umd*gah@TDl9;<)YB zH)!1m>v!JBnjyEm!QS3?z;dblo}H(C;~Vcp2}E#C44@rz_x229JDA!B;a5!`l!y;< zZ6EBheQ!Nk0?5AtrgPV+;e7uv)NH!3gu*|Oz@>uoRm zzsr^vzP@aF;Tg0tOfP%|?f=V51usJ>0cGsR|KFF4;>|DKjTHIo2bbPG zQ{av+efRYYSLW6nult+m^M5kB^uhW6y??HD5Ld-r^JDumwr1S&%evC~($lS{AFkNa ze`t5vmoG1sU$|Dq5?!iOPwF1j0He4*aYbEtU~gxs$MsHECN#XD`cyJ|SC)SN()Bas z=Ps4?Zo)W5=7bwpko#g8O8xgP@tmdAd1?BUO}#r^8Bd|!dG%T8SBNexzE=8NDS9G& zNC*8OO8+tBCS$^gc%o+C#>&!1E`9Hnui9aL@>)qa7x}yE^=wyGpgMK@Y)W-F8g3%zML`k*SqTm-kuLo!?P?2woiRzSQ{& z>AGa~@Tas{^wy#mp#8%AcV#`B z@$@4VcO5%^*YDS7Z2e~K-_;viKYxr@>b1xI?%1{em$o;LkE%NVfbX4|Btv!}%OqSv z7M5(_kg!BVg%Belh!oLAq;^Osy#Z8VBPQ7K-N!J89^_cCl>d@Yo6<#AwwX45fBVES1mdv?!8K}Q^b+i+Fz*P`@ zv&uH*z!bEwSm$TIS2=?*%=LLYm2WN2Ya8+k*yTO!Cfnp{>c7jng|tv;hM)QZExg$l zYDtwQ^A@()h&ma$EpQ!ZCs^zXSmixznk~6Bw>pWpm50ea$&E>9s}bH54$pd04vgV# zC3(|1r@ZWa-%88=X|Umi;Lb42Rkr|t7NHVh0>b0iBaMTO_*lLuj6nD~_6Hxv9MlFI z{vph1WI5dB8{W<)|CnGqZyVOmxxAgXb>QZ4wVhA@=yvwN%1wMTJE^_a_yX;Gl#jzi zTj2||^K$Tw+PRGLkNUt3zIY44>wUT4*8wL<-A6q->Fr=^)pg`>*?NY{55;P5`p;22 zXnV_5dGxS1JE$FUcsoeE9dZ!!A*bye!7a{x!St#+_LOF;GUH*pyA_$a#xs`7%s9_j zRc6Z6w7pF9DKg{r4(DaUFqye(7%#IqFV9$Og1mg$Z~Qsn4YZi&m$)ow|Zqm6u|CmBfdD(yG+g7)k74aq{nu=bnC+fQT747T6+pU{5$ zx~T389Mm4?Jc0HrhLG^kiCIpQ_0248WVQ=k_^lxewru zNgYDWd{L;qOcb`m*58b^Mb{Kjpg!>z&qVMj)^R)L(%WGjPLe&?7Z)-^pbzULdZux# z`bJ1~vuCiP_4zBS>n)06ZjYkKS{hj0qLLhU;7Qgul@9% z3v=Qv!S_Du8P8kvQ|!!#;%TA%#?n-2d{bvx9;`?CCJ$R`rBWCrH?#Fn-yM&XUibT1 ziifZk|AJszyL;xBW&|bkxLuLVjV=S1%q1>^Dw&VE0<+mP&q6+%89j<*o{$SlJIV_9 z>S0zF&1om(8KBJIl)SE?nJojY>|xP8#$YRF{e)INWT$@hb3bwaTWA|pKa62~J|mjd z9gxzq=!MkEU-RBbJ>VqvAqXCKXW)0bpLPTYGlC~ixo0-_9`>Nkt1#YUt42sd8+T2{ zz7GDs4Z?cBX=wXKjPFN*mjTbl^QxAs7G70a*L-i$*|Nm_q0rnj(Hhh230zY@?o@R5 zW@kWm?|^QstWRp(CD2>F>bOxUUy*+b*rg~?Yu4dAL9c3Za&~3UW z1U2|nuEFmtgZ}<>c+C&#t{&Q5;hr0ZeDSFD4V-(Fe>0yYh*rY6mjJ8?Tq8Kgt>~^^ z=uV^+z221w>U6h(ub~!ua5pRX&upDCS%Zs=h~ zwU(`p@s07&JN7!p?@#1?;~TC)QTmU&lv+M~K`lpl6V+85><->s)bd`nmUpVPT-$Y5 zu$Jq8LM;<`Ef0FBwATk~xsT6qM7t(f%Q8I+Z@d!gim!X3yvXMy2?s( zsuLTPS|7yPmDa2`IWjmjIx^I@tqj(BlxqQR+i11cC*=91ZDsS}o9n?EiCXxCTntJv zr^I$@s&ncB>sZ(}>~n*4zx;x_fB!1h!|J%5cczz0e@tD&df8>X=0sC;Cu-Ms`5M;C z-sXLgxbnI)j<@e?&K&%U_ofHyuIoyLW)rX0eTJ$9d70KLpHD!m!-v$L&fz|PI&Xa+ zJLjLI_O2(Kzp)%C&UND+V2nRI5J;BJWMdEljD?;V4g8+D@CAXaMdH61@|KFQ8UM#* ziNgK3>v$#NQeXPDY6&5DY8vdojr`3#rBVb-2CWAbMss5 z|9Y|iPu$4~a&sG>X^EDmS_HgU|0~jB;M^omk9Ll>5R7qVp7E_F0c;0DOq_NC%xSjG{>UkmfPNDtz(#&A*+W@OUBDkLDPvh{vzBJzZpx>!h z126l`q4d6gsaAs%ay7V9&AD^3L+O2wgYr11m^(DpnZx*XpmST0Ul06fel6qta=5A9 zwW{p^d(?c?CECNP?EqFSND1}A&0JcDm-jf7-gl>i{ELpeD}!}^uk+WXlY+g^!Lm)8-ukxWZ$cGzI>l=BkZ|YF`%@RM!u z#QE~LgnHOv|Gkzf$l50ebqJXVCnhN}Hx>7ddvW)89po<#VL3uSWOEzjxMiX!hAR2+ zf^Tz4A#S|xd*B;_uldMtNbBAj>_u)iTdntLtY&HCIpi6u_M-pt^%>Q--lx?2X;=o7 zmR^rqu1781Y)6mM((6E3$0;Z&>RqMQ`Y2{44}xyoX)xTQsb#-|1G`dZkC=ZGDwTQrr5@V4YKa*YUQN zf_1(MHN1+~aAJ?r*0VvG%_%88aj5ewwa)2kogLO0!8%X5pw8bv)4O3`pq4FkQn|n4 z>v{S=i`STFpYb`LTKH4%)x4!Y^3K6Lyb|)53K=$Fo?VELi$L>n$#_Lpzkv*I#(xW- z6>=R1c#32?18YXmdx6^#o&tUp&yOJ7la9Om@qaPm9s%4&IMQ8?c(rL*V?wj?ut&V` zX2aazfo<%)VSOuF<#V%p4DVZyxW}k{>s`LKp}w`&tMn}yD{ZB39Ryboa;~oHR{GYf zpuEZ{tGj6wX;%6Cipu9A>;530cVEEg9~wp6*kvNlKJK8BX9hX_dp?E}EhWh5B#Z&X z@px~bZ^fd{|KZXY;r-*VzV%d>(zj-~lX>5YbtkKRt0Y+GZ#_z#yRimU>U=+Hct5Y9 zqf6;q_knUBr}TD>N1g9c>%5NF*$s==oxwW)_9xVNJ+Jd<2lb=_+}c1qh~RZ5+HS4` zQC**hED&sfXTH+TPka3A7ktcp(sT2$c1~97{3h(SG=@CwN>bbTUwn;0?YvQ~^ZH<& zOHjiSUc*gYN;_W*%C(%bq05LmU!&G}x?1POJ>RD}|8P6I>{Np7ernTcYMnjoNj^sq zEjw7}32L3wc%6wK66$=G%VMG@V^}-y;Ok_ZsD!P7<_pPXP}})NSH3#?`rP+HF84uZ zJ|~$&c#mWZP!CA5IWrY9g#QN-n(^NPnbQOA!1JGt!}mpi8zFBe0G|SF4&a-Bx2Isw z4>;B9V|5jNLS760t>yeXZdZCyB`B4g@`-&nIQnaqqpMVoHg^9i*o!KDLN8jvIoj(Z z4$`PJSe6`M5YMrNa8-sP8^b_iQ z0&7nX+kh3ehm8!@`8IWh?O|cTI&0KA`&@z1!s)_k1}<~`F0%H`_2)Lz-tru@tq$$@ z3_>Hq9P|U;FYxUcYTs!Hvk|8N;UL=mUOZn6xKyG&-;h#`B&5>b>lo~Ki{@CV?%LSH z^YI;%D%_DlA+|-x&~AY5t{;2S{J(h7f31|8FQz9~(YaIFzo!2J|Npi64!t*LZPm50 zE%VlHZPrPT7Dk%quB81}y|L8vvFTBhQ0r#L;JFmjoA1^&)4u(sY$?4h4{mx8XNID& z13t)(JE$CY|u0b8Sp?;%c(&*H(A4)jfXFlUT@31O^>2{ zF(}_O^MgoZYU{iWI;5b~Qg77Z{adX$vRs@cjagH7txz|z#09J9ZN)-$Oi7jOVzJ%P zB~_+o)Z)3$h>~VgFR=Pf{k~q)<=7i{vCn(t;xyPbarR2B<05|quVe3AXxN2{pGCSq z1Gz_;Gtd@eHVQd<_&Q88x|pt;?n5E}s~Fx^I#}W7xOKftT|#Cg;^+~l5h;h7GuG0X zVv6bVX<#MyGly?@yTtxaA74YMVVEDsa35b?Z>W1z$>`E_cs1Np+$GMpUyRa_o{*WKTG%L>kqJK|F!uNO(0&ViY%BJw>0Q^K; z>?HE0dR4XjP78W;(>Od&uA)9e@=J9L_33(zuH=$2r9!$;L#>sL zI`vu&C59j+RU%ruH3IEa0PLVmP+QEzIgrvB0*h%ccpR?QU)YSZ>q2bd2j60xLHl{# ze*YoBm+=42L{WGMp$=g^!Vr&^{lDPRbN27@=ve0vj|x>Dk!LFL=yd0$d6fMFJX-J7 z^*-mkm`Ar>f=5e(JW3Dp=u>D@ZunpZc+`GQ=_3Ii?fkF8qc2M`bcWK!dTpZ*+>X)eP^VZeZm&Wwn%@D4 z(aOaRboQDkPJc&yHJ3137)HQ^>af~UQ(Pbv}8#f`|<*Lr~ggK6=%4xY(YaaeTbq{C55Jq^pbV_?B7RMRW1$p}9D>XJ{^_c~nTP zx|ZN{qp&gX|3MjkW}rPPe<^ECRoCKwCH;R;Hf&O08Hcegn`J*cgOQ(}m918u)p4lc z)A9{SmGF!2&U&be%BU+Hk$z86k}PC6*-m(=9Vy*N)HRtAK~<3l^z? zu2d7G7jim$+j#n7kUoRcpHt~Vkeas=!d#SEN%+NGXT!Fn4-bZsyRfm;%FC{ouY=s24*#_&5 z4wWZ3L1Tb_pPPNdy}rvquWAV;FTVX^I`+T|Nls3}Qz8qn3V!{HmOULFX>PUz7BJYb zoT+laUkP&5sdxw;DK@q|*evc7(`dwa)*oI%9*BNs#>r_am4}Uk&#Rjmk*|j(IkmlG zp=lXW=VO?M1MgByoPYI?P~ZMb@NI#=J&M2Wa_p70&2_7dhtGZIT~qMg+TgoqaH<5O z3p4=iD)V>C@b2_v%6FdpV6#3a@<;E8*R~~$;E!gd?QNaV&Y{s&sQ$?u)BD^k3h5Y zusa+IAII|gJc{~+NVmwEoEVI~np0xV$ks564&G&`Wvkv2UvgJbiX{%eWB9MZG8*_$ zEsywORo?gc0xeg_b6d)5IolzmiRqc>DK2K{*5c$lwP7dP;fhF6xC_AsoI+L0gQ%}g z+HQJKzP0ied2itiv$i+gr|q5P6*7&jnHK$IO{)%Cv)-ZuhHv|}YAu?{+Ey_~geEOo z#Ee@CZ&Hq&@7y`^s~7r?@sv!S)6>V zRi9&N{pviO$=6AnjF$TUsJH6W8*FDgeTVIeXG^V-fIDK3JZXlxl>`iEvAjeM@1xbH#8G?>MG^sd~sOV&1yNE=gGcdd)bopgtV z3=PG}PN}-OlO4y(+{HfX(v^laQwqkzcIc`{5%wSiWFK0SmF7HZd+^@xVskoUptGFn zfE6w?fv=W2K%Ie=n~Rw-q6?Y0+YfP1gPPqL3hDOYBRFUq6Iz=>my2EO=`L-9STE)`Af>W-IntVW zM+`3Ju(@z!pc7BYKZHi89mu=AD?-v>7NA=1>~^uTj>r;PcWmM%k470spllm?iNo+O z4F9TvCDk_@B%06u`N_gL@L)%<%ptv;`q4O~c&|M)ML5}D5hjmljhPa1if#wVldeGC z_xfV5`lCghysGs|Id+Qh#WqWE>8nCuWG2qM;J(SC<-XoK+}eg5)14O0D+Lnyes9KT za5>8OX$Q?)w6gdDXGdJ{BP0AXZ#kFI$KA^6^l^7))y)mbV>HlW;R~&BfL~*(fd|PbGG)>|Eruvn9MBJ@40pnU?>lJdulyGz8 zlqj<}MQR;G5`Zxu{Tm)}NgFA}PEV|g-Qn4YpLneoqLnmv^VUtC(ezMRy z@~V(#BVQlIV!VxozCgVz3O*-(rsKbU_#OC};MVr8c88RNmZr%5>H?1Sc0XCLuS9kG?jnf1PYum!cJbuY9FCA9gwD z_mGFG!~0I)`@ygkDgFHRGy0lt$F^Q-99#41auym=c#$Z`B z8KIIeVV>zhlQct{p_ASC-3m=jZoxL~X7C}=lZr9fBDvv9zC>I)zC66wxFAO_1FL_kSqlMa2 zVxE}4tGv9tV)fbbU8^%HqMT>gC<3_sk28| zUNX_RCi=rm(_jNIAlF9tCMx=0HXobr1&>GujsH>Fgx1YfEmTGtpGV@XiVOBHI;-Mm ze^)gcCtJ|ET5Mc6@j_e_XqIurmMtcHPo3)UJlk|L^TOr{hxXYU`kOea|+$T@9z<>tzvz z*W1v(SS@Wvh;4arHO-a}lt=gOa+2M19{)cV|6j&`BgRK@AGM&9Ek`RDa4N`&879!G z>6}~DycbDW{TtD?y_i=XZ`KltN0KY>AD|#5!3)r?$EP@Q6K3($+cIn|A$v z4aP^}c>;KDFlOOtJ@;28+P57Ou>0s@-5qI?VQK_s?^H;xpFQt)!tYYi%p3f=eL_Zs z=|z*S)`@k3m|-zRGzqmvSadS*ZZ76WofOfCSp}LpR>3yHzqLkTF20n_!H6?U(7$nR z$;q~0J?~_(U2qscJw#}kE*6d2>NuviRTc{w*^(iz)P&grxo<%ZPTcfB+HWB3|7FMf zq4RkLj4M@`Ig}Pi<`#pKXj>JfqEA0f8}os=6{mQ zVLi|Pb66a!4lh>ouWA{yFa&AZt;wbL7EOWYoMDDhJsq6Q&kpY~<*abBS)I9(kfEQp zIc-h(-tts#?{l%WD9IeoQ5l$!=3uLOl#?qM!>!~GO0Dn=a)efZ)nnCR{YCjU|Brlq zwoBz}4Cb4w=9?YN_h2wz6VEq==UaVD;rAR^B8)AgN@-ma*msCCi|KMPtwFY8O=)c5@k@}(dq}b$S4)kDUwX*Ol(rZJcSn1*BOw$^ZUJ9wz)i~Kz z-D9p_Q!M4d0o1l}W zbcgcMIT;pnORIpHUbAnigi}P4ZjY1IST)d9D&#e$5m+&1MyS4jh zR{|%x*-@NiC)t0`CY6r8ZtNnVb}VLuFqCUkQMN^BD3FBl9c5yJtxTU0(|eCwl!VM= zGwIvL&Jdi=5Xa+gXq2}i<(au5(28$DnZwOuY796dhb+<1nx~@N zYkQ*WD`Xw_*IeY^D^Hce_uWz{)~+cw<{Kch4z?U?$jc?6-pRs|bDAVJU`GRMAv$~L zXB+*b{|aUyBWHt<^K-Kfqn630+lw1eprJ3fr9mUjl%jh>9VM0=*a3^pdY*IWD-JfL zM@*;FP)?l34Bf8Bn_D~Xl0zjE-rUqN73)x%gWuwF6t&qQtH@hR*JCJgGClTx#_@b5 z3$+^B?0|#mdMaeHglOt<|EZ61jN);qTyZv>SU}pbYN?`npZAY!7E*f;=Rf=m__Y4~ zvpHXw8*=(vo3P%%e$u?y7L37I4Pad0cgUk}*>(I5d5mRt<<9fK*rJb}%kM+M)*JXg zeIaIs>U)c#B%x-U6p^hlM`qvHdYwg&-4`e8=XP2e%RlNN&SjUjm*r!I*SBVsX3cLa z%PQSibf(P7Lc5KojM4(By=*GV{Z^-tnQvC&jVnzCghM0vcp;g>4cSBU~ zH$QPN31@E?(0EZ_rk}2p=+2noXR&FFD+Ax6U`fV|X(wsRg|$l=`z6e@SnFX2#>o;e zT2&pk{!JfP7qaX3k zd%<_en&V(6dgu&=lWl|iYg#vFj0qhy&`bh33sSx@z_JO-h9IR2aj0+HYNH;Ji}fOL zcMw*1BlLIZFX)egS)4FAG&36Oi1#PWjBO#0rNR}O66(@ARBTyU zxN^&HgbdMyW4B>jekG=9B<=0*Vhtc}n72V&{_cu*%e57^CpU z(|~DzrCl{|70KZLe`%8~+}QG{tdVBt=Y5>_&KP;LiF7sC*6$j6CSCmOHhKmdd%*tA z|C7C1z=>`Rw@~%_sUHcj=U;4VKZ&^#<4S43cJ9C(P89bePJd8dcH1M+Ja1m*XLg{Ancib@aI*B#iyC3=EN7gamD19LFZeVCJ|+yVQ#gWb*P?Ft=szQsmJ0W=8Q-G^Et zu0)ib>iRSAzdpDg4V;$`*yJ5d>K?MmV@B_+LcXz~l&_Ov2QE`*2GvGd(_1zwQ*6t_ zGIE*fV8@Uz#;ldU#9kT2{f3uw=(&q_*73YSef}PvfB)LMj*lhJ zU^Sp`j< zbWa>r(yeNV#W>?+yE|eq&dBQe)XBzUy%2&NZ-g&oDCTDeo8P6iya+A5>M-4z>crh) zq#sSg`TgpP(%N)UT0YFrl-6azw9+q1>rI|kG}0<3u1t`&G;1T8(YiZSeH}DYi3v0<=WIgbt))!ZW>Owa4(e5MGjRV@#GGMQ;)()E9=HS|lHp zA1V}12^bM4M~kV~%-JCmR$Un0nqCQOMC%#36gF*bYkB3zfD!QA(C1(Ck89oymy=DY zu$2CvkA9c=GVa<73wNqK;dZh!6K%PV_iNbalQ#+35zwWV6fP^TFBj5Ju1GH5EQ^vf z)zAJ08NyzaJQ{jWgn6_i<>%(*eU$g^D5M{V^P(U94t8rv60)vqjm<7SF{!jBXsz?( zY)~OA(FWhu_#NS!jbE4da{P9BXW;jkHy^+M=QZMYhj%jU&?`{7d;FRBALpNd-(UOE z@w?PF4xF1%xk65s&&rd@^XN~A=gokYGs(qO@#oh5VC$P4|EF$Thcibrvv@W>nSkham?c>sG4lio9(G3*dH6X>XaP+6jy9oKy#E?uK7idWaO-dow%(m2vKK zoL$nuzVQ+~PD3TaUT{r>O*<4?Wk@e`3YnSa7fl(KB%~xFrEHr4DLvLL@|3i_Q_ypi zl$vcJ7%@epu-O#>8e#Xq4}iu`2mJ7f-%oYGrU;JZ$e9xH^fRn0PQ0t|?%oiQ`|u5~ z?>n|j)z<+_ky2kY%jeOQ_}lZqE;RK9ZUbY&DhJVXGm3QcbIa?d#fX5z^!L zhVNTuimwrBsDF#;jGe)n6dF@Uc$1L1x^*<9r=W9+q@OVo)*}b*7#`U$y1u?Jq;>S( zW%9_qw~(HJufl{kIoK9k7UV4vZ;Y}fHfqxt`viAEIPe_`niU-Ey&etjWf2R+*(czM z^^7UBadeudhOzNIiH(}3&^;J!y5-75jDT8s`5LkvBsPX1mBwx%Bc`d;l-L-)C#IIM znyz?^OndC{d!wq$FgowHN9{A2(qQ4qLx0`Mt=3eE_ka;R(giO9u6aFyHL`YleM2e<$6uv_kXPJr} zaXr=>6ESN&D1V5(eb}k^ml9|sx7);q=h0Sr#AR$r_l`=^KeqVKtw_Z^76<%fdD;A- zDEtCtSdLKD63J}`6S1?Q*bekYniTUE<;8vO11}mo*yGf#)_4BivOwNYf3gcqZA9TNR>$(WXl3`R)npfj9SJr{u~nF)vs?~IV=S&GjPK?!+z+9x)^6WX z>0pbxHQU8%!s_hW?HDh+FUOlTxW@$6WAqRBfi-MS9~D|}5Ndd8I15z3x&09L^M-w; zMu)qgi2vVoYpTUM0jaFB3rMv9w3A4mvE$uSB_+L8c8V$ET^)3uslbnR3$UEiTC2>? z@TH3o4*%Nu zzqfsg&5&d`O43U!Rx@URhDtN`ugW8PKZFm6pPBqL9|Yp0Ax@|oX9D8pL7cWq z#`b>H1m9V4=MR5vX2()4D{a%?S{J`zl!fTN%5}ov*qCKMepwU3GZ%I-;He< zp`Jp9Ynwf6L0IYCMI+^~1@KHX(d~K$)Mp{)?9pyPSPlJ_)(1y1$CF>=NN8+gBYL3y z(qDRE*fS9u#B}=B%aTF|>?3rm3-$bU9i;6NwhZ%X6#A%x$)JUE+G1;9g>uA0vU(a? z(lcq~1MFZ6>>8}z}L6dh>x-$cRlll#s)yzi`o9z}Y_Pc6qIyd3j+ zIku|hIQW`U4w6B=951C}CTT_t8YLV-`+79zaW3d2uf~@63-YY}wR? zPhsXs!~3W03Ws~#Q7W%(xNRDHZ12mvcn^(4Hx@30q_;#wn}_LXq-Y{C+kXYb~AEx5Ys>Vz`l6j~IJ+ z490Z)4k(K8Y3KAd`clV%6&s663L%l5NqbY%lQ$n&FuGd6{gI;@M>h!>4EEDK!QQ{A z)4=15M2y(RQB5QFP>klzL{5!q1hpxS(_ZR)F8J2U&IJBE8gE54#xzCq7*BOZ9f;@J zn^7$jJaup;j8={}@l&ADjZU1H)maE$$0;$u<^v;0ci8BpSYTHJBX|X;j083V7{NSF z83k-IFoIc}G8));cZ-E!synU`-+S@Xy-x9vRNM#(yZ$?t->T(*1*55^b8Sgvb>yDA ziXsrV!?(KBQWjqAVD+|N0~-PCY1^-W>48<-^al#0h^Fv8BlePJwL4h5POL(ycIWwd z&k@M`3^0PHIVBv}7r+Sqn^VZA!3>PxC!7)q>_biDMsEpx;_UoEp67YWTBKYLjNsFpq679MVStZw3hmf# z14eKwr-TB#9~i-VI3*0&23MGc;5t_$xM$*bR>a}|YQ!M8ipL~w`=AXIq#Lx!PRwxk z3~8<#I>zu_=h$JbFvk{M5>_3CRtQBaO!RGnJ;B_f$nVb`xVr)JGYc>YVIdQQEwr}7 ze%)IG_%7aCWJep4sh6zZFH^}KBvY|iL6b~j-xMVyiJ4&w$kdb$k|}}57-Y-TuhC%5 zV7pMJ+B+^SQwg>qnfkorQZf~4`>srRI)-HG^^Qx)l&wRNDaIaB%jCrVztYOe`B0Lj zmq8)8i=P-JS$Yl_!Fo<1S^5(&f=_Y^$S(MSWXjjXNS2Nu z2EjLZOp>LgxP_45V(e-wG8M_^yia<*D^pKfhs)Hx9+IhhUsYsE3%MzR+_d*&zZ=2P zCkRsxD>AkETb#wk+CaGbyL)?QpclptJD)NLDX01Rm`V@qpAE8aIsJ8&9@sw{gfB0} z->K3A`)7mfB&R>Z=|WaQtC$^W7PB>{gzOM_xM;HVW^Fck=i@ZGpDgO1bBp@>+@k)P zpVGwsd3e?rM8pef|iK z{fzqWK^}Y3neA%q`}}o?eZ1|@>hn8z>_4gh*7Dd%XKK{gtNhi7{dQZm`g}Q${kZz? zMjkuj%p+>->-`TSc4ON%_4zeC_CxBwt9Wd0+khmc)_9pe;Bp$n` z?H)CDn*VOZzPs%%^?4$XeW&^_md9>uTd&3r_pd|jinev?bAiYHt@_W2(-T7LXKicM z*nPe=h`q3FwfejR&%;_}_1_sD`~9|Gsj*M_DiC{mTZQ`k7>{jI|9#A3|E=v8YV7xY z%Mm-J?H2X<8$9;S>c4|Lc2nC;YU~5PrHCEYwp4wNdo56spQ->|g?|Bme^@vI{Iy}>An-lI z!pp#)N7$i;?SM}reA_Dsj{rV^a3{h>HLM3*jj%=ym4GV{%GGcS;0*{%)$lXG5`+Z^ zPpEu3>!ucXO#OEX|Af{7%fl*{j(h(AE?s8%gZlgv9($|$?|mNoyyXEk_S@dgh;6Xk zuRd?#vF}s=9pJIQu-vW2ZuD+MY|%o$bc$<-H&=?CCN`!?gKQ)0C1i0Bn;1?|&`2`| zPvfT1IsHMLYsJZWJgvlvb2Wb|V4sL?9dNMQ`Cg-g{l-gk5$$@&IN<>O1h?j62g^%V z$K`5?enllRe{}BkbAkT4oKsGmJ9_R$HO>v3(thsvxg{!P0jKnz`{vvtl`@x8H0|G> zD^)24oD$nEv|p=IF5{Gx_UQH^l`@f2a@(c$IVxo=r_5^4Zog8c#Bs{}_Ja1yRZ0Y> z+|*v&K0~EwIAvw~()K)+;>67Zf_YtgdHZE5rI%ASw^z02sFd@Z5`Ny*o~cq!bBf`- z{``2A@^4O=cs}8Ln%ZWcdM07MUV{F3J;JpJ^VKjH@N$G%YA66SB1}cdNBFb{9)6v; zPX+J=gvAIOyKw(XH~J*-T!c)7Bn0?{2yW2r2wx$5ija?R4s<#r6UxuX3^JQdmvYaS z!eo7`Hh04*+M7=2d(&B--{O2sA$F$4+-S3yi}@P6yT8JIae`T!yP|bGG$#0exC^Ro zv1s87K^EY79>u0tXdTaW7zbPEiLz+ar@89WJZrrA^hyu)s%4#`8e_B?Bb~23Xw{wT z={k>nNStetaIS^CO2ym^>`*81z2`pnSc^dxs%bTAL{Ij!*|3l(eK^KrK2Lo)0w>VE z?}UqPwsN|?swJT`LA8xclwxPleo>s!!Md>Sq_YqX++j-^BK&@E*9*=3k$8FK>p>1(r{b_8 z^YX3YCBvO7YT0O=_Z9kc4*KwifPu2UbcwPau?5QdI{cNDvc6`!u&imr$~tCPS>uP5 zRXeP#UhD-2T9c_bV{c(J1V_}eKDArnBb9Y3%6PvW_j>|9DC5Km_8#GHcdr7=RG7=p zs^c7noXgLEYj6fUqPN3CdMkO}G{_=$%|iIN&3|D>TmoCpZoU)ux(#bzgzxi7xJ3^5 zIVj^c>_{Ed+g9S2>|BrSf*%#is`NMVa~Q+EXBZKhEQqp$p6a`1HpVJvG%s^_svBkFtbNm~?MDoof^)K`YDQJeJn z@0&u_U$g%A>)&6mH3?~P#zB1Pg6;qr%gio2GCKE!?;xsa9Krsq;y*S>-#bHp zH>&<)gE+ZKdoZ7N%!CSOU5JZ>4ig5QKOhRJ2+0V6^31-dJa2YUdA0`2a|RY3@@5+< z&)vK{pIGrNxEBKD`QJRs`yL)`L>kmS#G_c;uM{$@9T_X)eb0zEslh#NJ8#3M)%N}F zJK6jl&kp4stg&!jWRM-jS=D>-{m!%a?s^V*d*Y(!hc0@4NPSNIbr9Z+wl)ZJm94BRB+MGIOnjJw?D1#0?+nc^o;r*c>&OU1dKgn zrITE#(k@elDfaNOMq2X@fBx77&tJv!UaSXWB(Ww1zFbjKq=n997_)`(uN+C!A8VR9tvPPJ-@L|Mhu)HLc@@v=` z2AP51p+SB)@QV89G+vK~@DAOPu#T6F#)flTA~fKjlCKWmE4)J;3$R-RTfiXe#~ua4 zeH4@*l`RT1oIJv5vvPS2JRCw=_sTouBgu5y8he7$R!;|F>=%K^Y9Apc+E=+Un_og|>=94Akl4&Y^MUN5N)+xe5 zuPsf*Io~Aoo+_^SY{Q&76z9Z6ac<>tnxQw*y#UxLM!$=Z9>lDfXwJqsn?o=ZY1S4|71vV*76*!{P{K0elHY>w}Y zH3RHK*Z&%8s`*$04^ym1Arq zz6&_WaC1-Ine&Pa3UYedAbZJ5{i485_zvsP{W62B4s%)6VQMR}Is!Y2xM%Elkr>l5 z5%ZA?Vs5pLxn7ufe^IPOn4(3CT#hsUPkM4N9&VR!#~A!D#$p}(n&0({Gjh;78X&{Z z6NOFGK1_Bil$1;bWX`a%3t-w^?YF zWLeDCwrl4Jh=#z7 zLwj{^_#*iE--w2nudkQyFVf}J2$a8qV4jgqCh)5Y5GDY{1&|NndyvWP34!+=0=!9>XP9bM*j9%d39xNpSGXAK@qCGIl`!0u@NnsvdeQ>x3p30EH2+E3`XrQco8N%1?1=R~_J*Uf*fe!a zqxj??PW;gdRII~ZE!Lt0KjLfBB&7Aer^Z6?@17WZ#YIRT#7V)J#sS>LM`r{Q8+F@f zLBePF>85-w()}au?@hp0fcz}izq)v7o>((difN?x)&+BEP;>b+&m{q=*8n5<1g9hd zd)QL~?={ALk9;v&A~)QFQy0@T%W}hlIOKXa)_HE<=*Bpn>r%&}1+dbEGNDGdICLUtbd|Ch4(a=^Dg(_=G$LJ#%ZPr=3#S?Ed;ZJ>BWm)L{g%YU;*9Ivc+hgh7OT z&|zy3u0IXi3GC znzLe%ePqLZN{}|ak+CM+wlN6*CeoiS)M4Vd4)X=qVP4~Bg?`MOnTk2{Q)^((G*|<3 zCVFDe@Hz8C_xI14bTUYpSr590&zb8xhR>OFE&{ej+ok8sILw&??6I!EoVoisQCRXk z&6(SA)jpywTJbjrd7A+r-{q!DZjue@%sqI9c zpnF9%b+KH+f8`eCPUu5-w??6to#~8vh30egJMP&MObFMw?DeFEp6mt+)Y@(p%O+ zHK8$J6xNF5dpf`lL3#)txiFasx~J-%TO&*)GvR5TY$;yov|{P zqMzf;4cE7;kh`CqgDy|w{j^%_IR@92w4NA1p9t6_E?u6lP$ROv`BmGSf0*sf&n!IW zNa){R0;5t=DdL0Wi4B%#m!kjk@;s}SXLpTK9%FE?Zv^J=C57l8Sa+nMbQX9vD4Inl zPOuMhKYZx_PDRTg`>FV(7WyR3!$RxhmY*-c-KI6qU^drH+bu{~rxkVN$l7|{wC!?@ z5QcS{q8B`3$ixj6xT6W}1pTr*QyySNU6(;`T5Q!JUu*YFOQx)CctBnz)d=*~T+%5F z@5l|pSO#RF_Pz) zz;kTIdWH0#0>r@?icBr^LAr_HD;JetpZW~Suha>@h5?-77q^q zmcj=-1ylEd^M1eoeq&2?3A8hKY=vO2RB5f()z%7!ErrI_c(r|$f6=_9r5P?Qj4$d<1Sg9AvcqhtD{4$+M>P6?7+OE>6`_dZ-=hsbG=NhmcOst93M1 zz0f>vpSC&`w?B(D11z&A1-mbRooF4aMoMWKi+Ll(J$C;%j43n%DI*5#jM)1pZR&OI z1CRpgZE@VuM({6=ag8EI#&)|zbB_P55(&F=F7^xDwlJ<~3?$zH>7lQiR=W2&8wQ|BU2)fc$l5Ir1_7!c)gV{wF#3sxaLOdEQ6<$fHr$Ew%z_H0qk{N(22% zUkva#?u$g)#u${HU?Q&rX&Why2(EP`JM@?*Vj9I+%V7BlVCAM}HYBX|BEV!cU z*1@aJ$8J?`t_~MKpq1a7N7z|@i@X8YX*?r%(nofoamZ1?x_bcMktN*K zod%7HIQ@}t!FfvS1K$_0PrPwl5FSFvLC_%dwrKeJa5TIu#GL!grSQrWYX2&e2^BgwvUV;1R6MZ!DF7BjpaGPxkMyeXDpa)p4{W6Ta!X-yu z_pp)I#|Cjv+W_uBK`zfcFYgv8=dY7=GiR$dyg}CLdzox_$l)fQLpjgEg*EyB?oXg` z?^bT7pj|T`b9l35VS6oXH@f@=;WMmMZZQZsnK(;p0B?)BGmx9ZHZ-!%;;DV!`JeN8 zSwtVr>lVRJGxo^_SaP@6pf!c#4U0`g>pkY{XX!lto1Jf;rxhiQr8vuc-5*OsaW2JL z*3fKtMf+q}jR7e|cNa)u+x_f1Klw8opr?nUobkAq!?4}QcH_(^jR=Xg3AG7(h1w)& zUbCb`NPvy|EES+Gc4*H7Y+V=O?cSt@FR&7QBw5HF`4!ESTJz0v5?c08c!Jx&w-3q4 z02{RagUeSOm#@*a@kl*x&uFB+)INfLhvI;D1YZ@7Xc+Ya(lsX^_v~B|T6>ozq)v-5 zbfvW)r%E+a$o5d!!In9q8$(fQFKcs>B#wlH=^$apxZb6Mg!Fk~DFN&uD2+tV+}A}? zM6z%Wv`{>23qE^}Ka0h)|KQ%t5IprXJ8`vFipg?JOs z6BNB;xb8^rx;<^@jgN{#B=kAj6YFh>mOgC$=faUVQSW1so{wSuS8V@Axe@7qV?PR? zR;x*G9Dr~22f#B|z_Mh22bhdAc;LPL@4$=D|30-JDVc|v4jQ*@-hm>Fus%4O(w8Pk zqkYdQ^j_~F>}}^>e*33jK5aQzGDRxHJNg*|>@`~<*Y17n6n~3G!zR2n4g1O%JJq)| z@V>$qZrnu;urKA@)7sArUHHPdG#9m7;17JiuAiN; i*}Vf z5NoD?yXxWE&&>8KtFLOB-FPKp{mn6=ady)HYqpNSU6BJg7eMD(`dPi5`VwJJ@vpYe zM$5eoEt}vQe6@TfFgmwN@KsK^3fO*N1j+wjCtVF}H!y-bIAsnnTK^MN*8g*X)p*`G zOYjMg*ih6cMFh zANp1X>(}2sv$~*ZM&nG>?^?$Ub@fyPeQ^-q|5NHU$jbP4W@aMS8&DpC*Ygq<09ycz zU@@m$4s5Px^;v>fdgwG@KhE%6)1==lrW?Vb1@KD=G4I8B^X;;Dc|Y6SQ8+&b_q4_4 zlgGPQ+mAhsX{FPvEoIZtV-9v+5iDuAJ-<4?X&Q8hF3-#$Rj}t(=W*&8PhODPk1xwl z<<$Rp!WySHP21yR&$z>0QEuUi;o1d_VUbjJKs_(}RFs*%VM|c?hHW0Olb{eh4ycpz zfwcl7_)kum29BD55nS#bk2uru>}|L8%*k!aI>dxC6#;p&{!0-4j&L8stq6NR6@D-C(U!x{cNS@P*Jw#wPmC`&sYd;Ir87Db<%XO>UgB$HOZ8 zhahpe;9p$lYrz<+J9DaYnsULv>pXPEprmkPQ9m;r(YN02jadJ~GI2Gm&Q8{(D zs>S)>C!lcZ4qoSMlxz_&f(tk$2iP^h2+rjc`g-~2;50$Ejb#X|5h9%l-$ zY+wW@a>`}E(tr^h%PB@+2KU@E1moOWgC&2uD+}Dn1~;;rGKu%zO~Gf|x+Ya;Hcf1t z1a6%2tp_(IfE!QP?hMBG#x}lseA5JQ;{*4)AoYYTqdJ3A-*9UiCpJw0H#WPpDmVJL zj!FHc7xf`%=k>}!$vy-|@Lf(B59}>q1YhTr2`J%pzzCLb%0xWd2aI4Nr%VDy{{I9O z|Nl&2T<9zI#Tn?#partH*NcmF^))T5OZ5B~HzQg)6mb9BeVaYJ=269dXrhoLcXqZ(1aPUtg(f7wi#W1a1XLgzz8ZbJO|38#qgP!>MuL1)VYSv!8QbM4}W^P(Fg$yu`G^ znE;Gn8mB~~1P2kDU^9PSA72?7vtSOR)~=Vg_qK7aL_A(#0aJ0bNXQRdlg_7Tz7u z#iqi(M!FbmA09;)8(>b)rF5}=*4q`(#S-{iqz|3NTcnFY6I9IF#lo!tUChJ&>n2^SA3M;bi}mBi0Mf^WF{{}{|l~d*d z`@~PW*Z@1~|9)Kz`$yhBcDyH`i!FCi*#f$l=o-?+rq}|y7=4FM(Z%}NrcUDMpZThv zup0jLznRGOag>7~-RTVd6Bzj$5!}ovmjk=UPrBFuyVFm)SRbqD8PdgI*&C*d^|9CO z7wTetY;jLO7wc!;-GLdTj}`R0wb8jDS5!+fDw%4lzdCnbpGud(#6U; zjMaV2hLxwHi;Z;->0%2yhIFxKU5YN&k5lylU91mZN>y|*ANzwppo{gf`ff!R!?@vB zbTNEO*{A4Y7z??MN*wwNYDjQDAbqJDmJVP9w{l7ju={}#yoXbA!H;NQ1j9LHGM@bg z7{N+TnF4GjFoGsdxeVAXzzF`FQ;fit_(&JSj-GEw7c*P4z>SsQhN6o-?HJO<-mwnp zVhJuq7wd-~SwI)-!=1N^F6Lu`KcI{Cu~FTMF6LtcK1CP9_u##XF6LvCgWSkQ$%q>h zc?mO6G7%U-FYjC9fjNK??B|pT;KCn(5qywSCgNE;FoI_|WfHKjfD!zHQ!;^l4ve6g zQ?h`4>?K`nfPDxV|AwzKNf%3S4C!K5IY<}l$LV@S7sDE;Ye!ucSf1P`H11h??AjRkfeFoJh+N(wN1GYq=e z0ITAZaj3r*7(qWzC$+Jkjfcg6U@Es9q#^drh(qv3ucC{=zUC!eZ27zJZ{MrTTLr)~ z5f;4zA9sXogk*%=zeA=F5)r}>(vi+o@M;m~)fnWw*&oow@EvS_ADe?Gq>Fjsdlk^d zyqK3s7sDuIS9Gy{_L4oIi}f*&UD3sS>}zj87wco++7(?4^EvzzNEd^Bkk>N~rRWAm z(8ek8z|H|9*v2XJE%^1o2v%`QBDnH2&hZhf0fY?=v1$LG;0HWT60pAmBY2ool7Srp zMo^Jqvhcs+Azf^M?e+Arqga`fF6PBI4+FZG7i)GJkriFci*J$ybTKc^MUyVp55Fiy z7eiaw1G-or+hA98F(2A3po{gfwRS}p^RY$X1?gfw_9S0lMWPfk%13Y|FEQ<;(*8d| zW&b}KW$Q+4f;RqE40sR=9uSP=yog2YBD_U#4o`>dTvq@iIFnOG0m}nMa0;i;4nUTN zbg=<8!9%)OvOA!Q{o6Gaa!unF>0$#c4Q~(}%ik;lM(cNidQU(X^Ri}cs~}yB#*2V1 z=7s%5!O14o3omif(IEf$#zj9){|9uj&?AD-_p;Kb&%Z4Q|3PrQB?#vczC`#KVJw1x zdskxN2QWhJ=ez!~+`o!^*|sz*zHG{O93qGLvK3_XF-?cEFW=7=2KVJjYnfM(7QsUIKJ1t z4_=CUS5(NID|X14<^8P4b{2awYsxb!_m)>wc9!p|%&ADfKL=kHNv=}9_#yVr_D~N! z1i$qQeM1b~H{@UN!03mMgVHASEzwYTL(?}`;NO;~`#?99tf5u@ipn)Bs7{tj>k9OD zTgK{4DF@#kS%Ytn>@7dL+BmJVJbh!1WE_^WUzHNE_c)i54Jbna>XjSdnWQu7ruMOE z@TnMKCVy7)e?0?#jPLhr6?>Pshx?$yf@A%Dzt&HFz^^q*nmzrG%?Y>*2x~3WagJ{) zyqIY3{6oJWYpV&H;XAuVTUS>&6StG%mN2F_FwAke{p!f87HPA@<*fX}6<^uR+4EMnmdylz>*S`)Ch2L9$_)%6q*zAX| zleq73^g<2p$qsSEm(WRLoVRymjrFqI@wHp}Hx(<^5S;VFy1*G@5gSMHZ^GgHlRtug z6At%naQ|z$c!2#DyXvq3SP8FmimBhSBi*z952nf21tAZRWaWnWQLxxP-Aoq5K6s+U zABeBUZfPU&xR0IUD|1>!Ug_KhPm=+5xpQP=A1i}Dv0&a}xkj}Q^s#iR^{)2{$@3Wa%}Chujob;p0%WJwgOM@Aix=oB#KWX}X|Mbb7ULlS z(2n6N^dx=&w6V}P{kbLVJQvPQi+&;G9=C5CYg-R=6{sY&r@QY;)-Hcv9+NZ7b&P>b zx>w!@-^_&$Ews=UAZ8wU1#ht(TlYlqvAe%mw;tYYv&OP@0I5Vl4c8gH5Q8vmgvn{fSBu}@!8_jz`GZ3 zj)DKsm@nswJ&@_QTZQACnLJTZ9dak-VUARWaQJz*h%uh`Q{NjH`lt|`Y&e>yxr^Y{yxaSdLg+cdE|xm4L$OX z;P>eq?}yHDFQNvUrC#|(=y>*xxCp-yL=xs{t!bU>o|4{iWyc2U&jLUoLa0|4zepqly<H#x9J|=}c9np2^VZq@De# zaOf=b{hP2>n5-RZ5t8kXar$Ck2`GR44U{UCXhMm9IU=!+E*zIRY+P1dG%nfEaj{%x zTpk&?cwC6qk@}R8kuDmUf3T5BxnN`nUw;c*kI`cMKKR8rUx?F$w6baj$c6!Pf(S)? zW0Tc-ku5_HJlsX}GFPB%e2b=?Z{$O6d|QjX=mkW?(_{Xw6gA+r{uSqUl8bL0wq`KR z*6cmTEE@Q2ZCGC<|2H}*)zg*W((KiVl;)5tu-vbq3DqmF^YcvQV*iN8fJUJ+k40lN`}EprmH~}vFMPtUDe`@V#u(2)F7rjzpsW1BF9%#qx0i_46 zPgwYPpk18q5GD91%*swDScnHG_1CsoJx&Lt@dB{!HfH@Gvl~4JL{5MgF z#VGMFhhk4scaX#BDcFkPPa5mi_O4A+VL(JZqBl0HcEDWd1>F047f$XrSu|F3Z<_ZN^!-%#AlKPS$ltcSq>&LLxB8%~#g-O#B`$0(0#xBW6X>N$hw|fo6XThPq66yV2$~>@j*%$}Q z1Nbq6&Y#Y%Y3zZHN>SO&a!nJ(KP<%PXb}sb1fxRZn-$KJv@LdPjTfJ3F|!|U+BJ-Vz{exfTT;~QsUSz>u1#`1v@ z#L{^d7~Msfm1V24{lRwDHl<<|Y&k-2{dqsfy@%gs{I=ouT0F;%#xoT^oE_rU{bG^E z{wRFI!k!N&=?Zt|;>>a(le9nL_7=jzPGjROz}AL&j1vBHp9ZusA9@})a=K-4p(TT6 zXb&UOTc~VsH|_+AwcU+jOSO;}hus`eW#M;!)WZ6b9_Zx~rMU&W4MpJGs%rOgp?vTv zz*mN56&K1L9D|uZaVO%I!_M`$FH<{-;@ryi(Z5RT8Er2#Xc%p80KD_TtR-3HI+1LS zsl9V0$%aw#Dw_9Ps1~==9y!T3#uc}ZFi2?8FgkxZ^oSMAy=s6)p0M@o0FC@NOp}`n zxdwJ3hJeyq#B{38gw2W4zal0%(qgVY8Tcpk+_=z(1Jv#uwEKlPYV)rBng*dUT}+cU zE=fSt_!`)=q^r8`qFrRVii+-g=F42>T&#|i^XtmyvemKpywE%#{~A^;;QqCnRc+8* zv}~JaBGyO)RLfcuw&@4t*E=m(7GQrzR{xj3MdN-Dq|6&kb!Xxp2rchCXoMH7aJ zunQQFxAu)@d)~|{o~y?iB;FcmEl6Q|SY$5ZorDhl|2uAP`jv5`_ABEC`^gK&&8&`_ zAv$gc&nx5hM@Y+iTSy%t8ZFOYWZeFVRAk&HsN*&+I&OagKcB{J zzkhh#CaL3QR>!R$>xaf|J#MM}ke4dsHc+9ATj*fz4YlP@?I%AYiQ*XSVBnkC2V}nQ zr{!Fx;(LV7nw_@Owlx+@g#{MyCfrwh2zvWk1HriQT@DypTKq&*(k!H~u1aOXr<8l?PT9NQMTS-0t%zW#~A}A!d0Wms9M> z1pPwrH=*TWc?Yz_v*6?R_GfIhs!aJnP6T&SYs?b)Q4C zP{Ds_(6RUZ@?^{vaY^*$qgp6p8`&`O4wQ8(@qmunc&-!pPB>3GXg73l+)DiBVt?6y z=jG?KAM)1ko6nV9k@-w@N9MB!ku4(g*#oWj@0!nqOXic-Z)85P4}j+tna>`?{-gPP zwV&qmD!($HJ#ss^0N==?*f>(kaM664ead`V{gL@}!!ASNYV?F@K6~W=)<4bX30U9J zd^WO`qHph&PePlXo?qgr%;(CX;rV=ml_LmWU}ot_dI6x4P~$zM=-C+_p3hXs9U}9& zn5Ahx1K!AdRzk;^-uKH_gF@|*-w9kepWSjGsLZF~jtl4WSCCUYh9Ax60X*yAuLhn3 zSj-Gczl+<7;Y&?5A}^iLx;A1Jt;(>Iw*d>MdMF@2kz8K4^IvC;7x@fPV(1v(8n{iN zw=RAEF~-mM)(Q1J@dXhRVY1%UCK<{Quk2?y3*mLTO+ri#qyZpTk~j>9?0c=jTq zX5kLm13nRti1!xIn5}dM!zTfUNaqyehR#THdXKyfB{ZxA<&d4FR(xLS1kZwEoGJb< zl)uRry7IRckPrCiY`mPu5|U}em&Zr_tY|wi|FC_axuiQ1&E*MLN{69Otk}sNTFr9{ z+1Y+^z4mCmOjfUx)k{9R__H?FN|9j(E=+`k7&+I+gTT_*Trz|F;?%i zTF?BQ^;Sgd{hifY%j%KeeEObyRYc}-VgG21BjfT%R&Ob*w@0nFAN3TP=i+*AN9#Sq z>dj>Jo>J@8e@8uVFrw|epVc$5diSXH7O3qcpW!;h&mg<-1X0rf+6G)cO-DEJ7hws( zca+;;F=OwBKNWMj2Is?ju(H#%?*fP6G;R`qAJjpEs{pob8m#&EaX0IMK742C)0Kpu z!}2Ji!QvJ*t+d%dwfGeeHK%R6RCyG|HzQnm-?#TxW&B9*9x-*`Er~qa=xjf-nWQ$< zg~tQ5YVt4Py{qChYOlq5s5>~ie6)&#*n70<9sEYry6k zHvQlWgY!spR)TLT@|;V*_bnTR;qMKAej*<#@I)ha!EQR!UV>U^O6}i8k!25NC8lzk||dr0UQXD*JKdePup!UuEwLX7tGUZUN&= za=3WRlOA6ATP1Gt2dUk#1v0p*qh1*b(5lV=KMVd*z@J!_`iwPnT=C@+X;oXevKsWe z1t-3HCt}XhxC?G-hluYiL&^+p2KE#8&Ki2#Eq@a{2}xPO%x=(~xbM|>!?uCi5;~Xw z%+ZOl)!ne+A>Id-J`uE3$K@>nA7=E4n7nHoF?qTZd|sMEfM1q>x~8}c;KRlu{gtc0 zm6bQqk%jlhyi7+X@;-Boa&5@_Dfl=V$0Ypych?oJ=K)oVu~-p!-}M6BH^F^*FbpXr zMz}uwCitT{;;q;tg}|%o`))*_&RmC)@x6rFI+k03Hum^4(`oi6hM#9p5pxh0Zv>Oe zu7Wp-R*A;*ABcZ*fLTMenr_9ruv`H@7qDnXiN{l)#CXydx$H>!_b(|Q9O7s18d1K+ z^&)EAqk76n0X5i77B`u~)>~coNJ4WCJXdg2o>0Geo0N%B{0D4eazw?qMhaVhjqt)m zc`efG(biFHLVgb4@~pKR+yu00%E%h)P=j(WtkFg_5Zk8PdHRwXHq@Zp3v2v_YBWEE z8bS+SC^QPKn&!>c=bglhRN~+Msw6QZ-jQJLMvUH=a-xEXGqMq!Je!SkmD;l5^{ei! z4{zqV67X1*H9{P4SD4?lWe}%EpQE@pnYmSEMdd)Hhi=0t?es#&H&l7(%#Q;I(Eym|1JEdqwt?n z;ct$@U(4VpF!*;e`141==dh|C3=+*i{%c_S!>9sftmxfcBi?OQ-@(u14ax9EMs{~* z?ANz=lE{-GQcFE!=+;B~zh^Yvd5|jgjA68b0sHh3?9QMYu)6b7kg{}?D2aqBz<35%{usV>U=kL{1v{$~D!E6M~UimKYqzPY! zq*IuM!9FlcuL_b;Z6 z;Ey0mbF5~gb)MZQZ)Pp&EY+edZBZO_vF}l&KUznZ!g?nPYZilbgu%K(h4tD^3am@# zK%|`jQ~~J7e#I+KScbn`bp}SW5!%OK#j3E@0~Vd*Bj=z!+OCV|fZ!)E_@kom4N>@C zoue6kh{68?@&G#9%_{r?_?IBLBGF7dD5f)R{yFHhSjRzo1}8lHA9cgKLS&r#VS7H= zmiOQ>c$=%1=#KN7KEA12{sbk)ILStm{yN0U^RS8Umn(3~#%}0V{#w;X5m#NHQR)t+ zlqZWR(7}PU5*{Q$>HLkfaC+pO?y9IiJK8~R=_>%|%rJ{q+tcn{?41$5?&#e@*pAaW zqjo5_uCOdYPC@j5($CwLDtk-;e8!IKXWa$;lvqF4M*BG^|6y=sKZj(09}kJtu|aA- z`B=spXM5z4U}tIHN}jtIK6*T29Op9l^GCqH<0AOW8T{8qz(2s?zX146fKPZ}kjxl^ zvG76_k-VD0Nt=xkHe%f;VLX#A8P9HT%}0*sko*|R8z9FCW9b zZcsTOuuozsx?@iOKd)P!37rD+a&n=(U-7$U#0kv#6u)b4V^<-*eK#W9UC!@XH{>nQ zDH-8+?PfN5iEhR3S_s~?>C80Z-hdHdQh!?CBs-4yY7D`m{`+(p_Cl8dlrrT0_#))~ zA>vvB;u+A8SOt*#cgqV$$o-!jq_tLX&;;Du%+}Z_F}9&wE(i)19vmveZUgA2ngIFm z3d?Vuk8PzGRV{#?ixmS3#7q8RDD^h@3uG1CBb(Sc+!Ubn*nxO(LJMfG0*;W50C^lt zh5tPseoh{9-MonJ;2WPKKPSu|C1x&Qk@yzvtc$Jf&G61OD3<^uy1@sh{y99E=-EzotCGHP{kh5n2*MLcKGOR>MtA!{D z=Isyq448ceeXQ@l&vqlGr%s#++&Zk*UCbn0RJSjnacTBXhj$YNLh=X*D;b24cOUrr zs!cw8a>FYn=FK@cs)J^}6f1L7^D5~HtL|7Dq+wdfkOpPP5I4mFPIw6P**W;Q4$Gsk zACoNeM(oA(v|!bABfciZ5+|twmHCp*@(X@S{|}^A^!#*ypEC;7?uk!FvsFX#dq~gW zb%}h%YdYoviq;Js#w8lG;-QjAI}F&%&&vk})0h-f*vs3efCdP`tHQs|@-6#8+jPrr z_yEX6UMg^tAWj~C8B$hgsWNca^$tb_7H=c(1kOK|eVE(IrdoR8q-$BZLLP<&m(I60j` zKja~tOa^w*e)pJKcRi?E1)ujJ()~!B{CEU}L~zIZ$PVjpNO%sy_}=HZ`X+vpT_+AlfeJddnUGiv1DGwLnTSg z<6Ew@t+U1DanAIUad~6F*WjEVx)jbv2IFkZKJ_3t8=UhWF5+!maq125Htqp$Ll52t z=Une1?#853h2U;*&YMq0_#0`bOeg<}nC2Nc-#VeukkJu>XMF?umEnF9d^tsCpV1`Q zx?%IKNO57aFhD!eRX!awYzgZWd(sT-Hu`}=*tV>5?JNIgrCCgWx*I%Sv#7zd5zy1Y z>3?YD;Yd!{%4Zt5p&{UNoWRu0KVHUh7+^Id~}Khgi{S$aO& zfA>iZyr&Mye}&dWCZ10X8Ugvfpr%8IHGCKA6Mb>JSLx>vd_!Ns`Z*-W4%*MAbZGX{ z`}5E*8j^RYP}UBb0A)pRHQJW49dYkFNYV~_y}q>-O52`^w(T8Ad_(eDwQX4c0}|Q> zpFjhX)VBRWh1xYZ6Hs&1w(X3zZAr9kHH?PSfO7u%xgP-vVwaucPtL|jiWtdu?6M+e zbNN6aa?+5q13Ba~>uEN>0|Bukjm_^9(fKt;Vb5o<(*TqFO3`y1YXSM=;`$QLifHpd z_(NA3V5b6h9bl()q+orl^=*NL3-p~pj~X$PEnUPXGH@>^3-nsd~gr8O}-kW{XP_ZX(3@m?y!>qA|&>`s!P`XFD1*n|ppKaYEINM7WL zVCYXFZ6ka3uq^gjzow_Dk331y9Xxb!G^k`P;&Bdvf5hd?b;Po@*n(9S3y($zkvH8D z+Z2+I!U|@F7~5h1es|0F;jTx2g>W~bSUSK%M7|;Y%X4JlH;XmOGsGER7PlHZ` z)RjDi0TC5E?_+>6Kk3KM;bZ z)0G&JBzz&qm(b?^16A>?& zN3T8%4rM;B3(19^HPF(cejH{s^YNDc!byTiMc^{F8aozaFEZjAcli?0(~$giAhD$Y zGJFm#d+mbny`X##n!gF^_Z)#WxIGiZofp909)aHy$Kb~S*1bUk;PY7_+y@NXDGpjl zevFmN#_2}=xfk#`Czq{f(5d8`Xukp2cDzpy+Fbc9P8f!~y zO1Bg~Sfp*#*-cj&=jj_`?Aj(8l_g$n%Qz_=9%pHMSHiOv`Eg%hHO$m5z>GEJqRbkP zt~E>4!~0Z7e%nJdkRF)Cd13&8-XHa+?4{foFJogY5E^$*klKeHLI@Xfg3elEXSBm5J>J}Ig-#Y}$ zwOmoa%B9xSqcxf0xV<5HotK~n<@a$j$`r@!4dPr^z7v4tJQHuM0fPKBC_?ICZRz|X zf~-R?NA0D%c}PCu&lPzU@*)N~9*{R77C5zcJN%qwim`w^ljQ{EkJ+~}qu&Z5KD+WQ zPhc{m^bi9?jJttiY~Z}}#YW@R6i6Ytp{vbShvydTr!Jf2Ug9S-Tmyar_QlY_lp8*P zPxoJyJdWFHGc+xO^3DL0qt)!H2*FBH-(af=LGNAvGQY3hMv=|Ku*s)Y9)F`Q^i_YX z%X=$PNCs&CV%9J#SVckat&yBR1!93!HuZavn9Bxk!6`9(#Yt>6Xv0@G#y|ej{)fST zN)(?1CG*C~=Ro1KBK0@dcIa#Q(^gEI0r)VOw6T4&2KDCUu47B@LS0&^#V_9psma(ioA@DL%fj6(Y zb1H3^E$ot+QYH2BklS5N@!J)xG|u9!m;q`9{vL-8Wx6XK=cvp>z~f1U?G>pVN?&Af zAgM3Y(3i*5zD#f&SjRVOE#t6aA6UsXDg8L(=O_K*pr?gyy-s?im=fJE-6AEW9KjHA7za5#Q^CsuYsbY-8eP;@!)1$-$a*Z2q%Ut}EM&eDOoJog@G*T^@% z@4Je;q7!>{P+p1^Z6x00|3OXNng=-DqTkv#M;T-2h_GJ8A$I+*;4|5)#-h)%g^Si8 znu4XG?yVA(-NbZ&l(OG=zPqeREgP9T!*}3a48yxa(3T);=^*^75&qKXDmo=2?F%!& zZJgjT;~r4x7CwO;zofC1OU1U$l5xgHo3S7$uk_}#xF{rXBrI4A%}a`ra>kj89HN41 z-0)Y*c=eE#!>%9uA#V0TMEW3ZeK)9qHV>ozU}b?*6yp?ni)4k0{rF!vvN!(<_T~g- zy2MQ<3n_x~8fdPdoaB2MezOT)U9b;wk&!(9AnYr?kH`NQc>E#R1c^;hUIM%NAh>=y zw4=vOvvvZMQ;1@JsC+<@)7AlBqGNmkjq&_`&DL>`>&5Zna!?U*CyT}74?{njr5)15 z2AnWxGfrXmhH{>1%Y`6Uh{^b+<6(F$yHZ?N5(K`Q+Bd;(?F$BKJ?C;Erqxd!^@s$a zy#Lx)UAlAzztzCbh`uhNfyWtC2>nQs#s%?(L$15v_e&}5@MYl67eo}gjMj{H#I}R{ z;U@4z=*|~Jguw&24F^HJRxTpn#`OJHed+B9sL|Gy-kRRN9UQqUS@{H%8}hWc=y~45 zx4=rvn&zAcTP<((r>R`t_%FHqan5^iULX7AQt1ArNhT=>ADbGfwU+ei`Psd{oQONu z*nZx;(KS;v&76q48_qzSZxjc0BEIqF z`q`|_bh>e7ZYsFQWn|5ceZ?~z%R2~u7OkK69wI%63)gBLc-?wYJF5v?Q*FU|&ScUS z{Ms7theUX=)Yv8N z4DcE79{{=`DDU=h*=aW>yEMQ7jpI5O@ZguMHU)FgMIGdXPYHN zq+)S`P910b1kC&r_FYIxU1!4ld_+;hSY52U8i{7`Z?}Z0=(D<5r z>Y%3#J7>r+p_Pm{@d>U+Br*L3u43iV8L{xi1?AD&+oSF1;1z3!M_JGHW z7l1Ex*6>@&YIcHX#q2+86`V9Xw}4)`KZDN`9glMc=t62S7aquT^%+{67xTSbb`W-D zQ>Cj!ilfGTnTmJ}#zGo_k0EJjm3G<8E{eRDG{ab^wctkHrOn_`(~Q$98&-zcE2qZc zZxIm~l%M9Zdtm29u z*jzlWxagi9Nn;tepx1T)(o#F17}M8tEvW^jMvky2o1!|{a-{vR$|g)<@&s7=A`Q>u z!?x(7SfmP#gCa(et`4k$A@y94qUbquu+)!1{UlbOEQOHm(%!MErUh)y#)BZo72ut5sipcL9r;BQf^M$%>|$lX~DexPulNnW@&v2ot+z{ zM3E%qR5lkzZ7n9mJ-o_@_FEiJz-PM2wMu%%nsS`8REyfIBy#|=Yyqdfp@4Y#DPhta zq}BTQQcCd@3&=$~_Seo+XQ@Ylr9Ed!_i_(-Kbi-Q#T*_zRu9kq&N(OfEIY7iBQT(* zv{jNyw--EJINENQ%}t*Aa%@9fW7bLHzl7zVB9g+=qO|&>`h+7&&h2W>@tEVI)ATrN zo$)89G7iE`yALXFvF`*n4pYqB!8BbO1cf!y97NURu z)0GLUsi3^0D;7LC>>%#gmN=xwNmObOvZ#Sj{;(OHJvx`?TP35)DTCC7&gg3irW2_aTiwEs@V!zJTUKaA;dJ+l5B( zNYSfXf?Q5EqW@4D@egv$u>45`RG(kKU2+ssU;F8H?SuBPfRPX2Ru$hweAtbqgr@Y4 zbo)kAIk<^IaPG+)H1+}?{j~@dLQI}C#7RPE8T7W$1Dxuwu^UAnq}@T-0`Rj&w>$&C z3rD}s!@0|G>;F=BaLay@sAFgFb2$?oNjS?=B>F!UbE*sdH>{JAaBB>}ul4A~{61cM z5LQhE_}deh!RX!FK|N>U{6$MVF}PO-WC0u_9oyxWdJ>@dxo;-VEuF=4UxPk>8$ay5 z;6dSR>6(GnMqHLR!(4tmz7m#yF{JqG)Uv;p4RTBZN!0lvFP)ng>Zl3O!h}C<*k>y| z>(^j`8>+7uz@N1G9&#}&M0n6F&5yAF3?T9LVC)ocaFhM_OsNNjIbv; zmg#yFw~Y+f7%3Y*o%pF*$1+fX6lL_yfnCxS>3`u;rLR&VdnaN4e%J}?ux~9(Aw4J3 zXS&H{GSlhBi-N^4L)Z;p0rr4g;Ge{3pf*sLSNXHbcnhC(8uvGfP;-9?-@eSMc^Wi2 zbe3qIXy;Y5*8+$MNiruMwC|fxkwb>Mek{(Yp~+*z6kTJ6sJ*jNM40`d^_w)J@K12;-=uD7J=zcneV z@`Y&5852<;0eO2g$B!~ZZ*6kZewi=EfU2W&lQ`VmWNI7o9sJ~J`kchNxAy*R${gSt zMk7s1leR-gzwLU$wf$&I=wSTX-(kM^JRb8RxW=so73M6#P8sLD=2X0tZXYL!_W0^F z`*JDO9$%AUw@W5_eC-7Lr&6-L98t!~tCQ^IHRJ5%wPWp@r7`x+)kgc~n$h;nwTbqR zq*3;dsz)^?*gvX?w|`I@w{=`~tbKX4!EUdPv42{vw~wpQ*_YR7?e-dt{nHx3KEC#r z+GlGI*FqYDz5IX=yuyYAj4`Z7z=Ne*&XvfCN9qMNC*UPdZdN}Dsk_v7ue18&kh4b3+0W{a zMb2$%PCM$`s?w3O4E1$l8d6K}j_{xb^&#^`PKlb+fciRd0&?c7IgfeFRk~){cME-5 zyrce4SKqDkXplqwpQPs0dB6u0ssEyyBYAYqu1f0vSXQ6a+P*a~fEEHvekQV_jmixq{8VH&yNbboJf3E|c2-Nor1ASF+lF zQO%LMTsE{?!~qmtZm5ENdpJd|SG!=^g8($FP&% z;^A?lKgN9X{cr9m+aM{XdrCld&^ko*M+;5x!RfkZmgMnu^g$2ndK<2OB%k zKb=zvMm%Kf39v8aadsMTmLCb@_EWtQ{uzWr&9J+U7kL+dRo`LwRYX0dzXWw9pbp2# z4#2vJsHcU1sp$Debm@uLFdw}pZTe(TZ}j&}^qyeMW-vynakc}Xk}w7jABz!=&<*V= z*8lfM^k3np??7xkH`=eow+R3Aq5(VuzA+%*>E{||NgaqRp5nkAEO?jnICr0ErnJ{O z#!-dnS}oRi=atef=?SSx+5n%9hhYB|faerwA~>=|&smBz&O2~X#T^vYl1Q4%}RO=YiYk*z*?H=h8|+eTydQ(Pnu`D!WN0ot~Yz7Bej zxI-?tF24@9Tii`KOR;UEEe=>l+$I-bJ_^1v(Ni?Sxj}P!K+XnNA3Q#AI_l6T6UMF& z^B$9qR)GtcAWj#Had!yFr`)?F1AJNR!OiQ0+aR#3hk{zb?N3M(D;%LlGtMU*_@D5fC?=UmYcAUp!9Tk92N3^=@LGw({S{UQeV_1wYt&*+ zMvE^>f3%K0MtsfDPJZ@m{>79Sm+=~+U-!bd5$@r*XVPBtJ8SQ8L`8#k=vHu9NMm_2 za6p@Bt+e;^8c>z!I*=2D`PaU)W|mKzxvY#{+p$%9H5(Eh$`M ztMpvq}jKWy@R$Ky~=i*jMv zfKoBA|1-{3-oIh(K0eA703AbjtuS;}{m{)ITGk9MU;tiZ{s1mZ8@Mb1c|Fs|p9+l> z(CguR#$_R${E_=p02U9lKLzA9LE4}0WObAgo*uq%dsD$o&haKwSl$DV zAYphOqgqbrOwsf2L*TxkG;s%@)w^Hes1&@lR8;D09qK(BI%tO#Ykq;YLEAhAyXfY@ znng7?j@hxUL}+}tq})X|^l7k|e}(M;XFQq)E@uv~AV-YZOZggTJJJ_=u#fxYKY{Ak zIae=yMXE3PLh>`+5Mw)yPhxvaM*#kl67d&!+>jmwVAX1D<>0XuvCPZ4#$2pRtQaPT zAeq9O{r5B3!fTKoydnur1TTTD0<&8$dTW%OSPOfR(SzQa9o7!#wF?*Am?v&WBq^Pp z%hohJT=EmfJ<>QB*^mZX%^)wH|a=h32Xr6c;LRr|IH z+BDQ&tuFz5n1I~qNx)zKfP|iMLw+M<1z$+_h-rN4N^?1Q*9{Mp5NSExhT28OZ*1v^>zI;nw@@1&qL2oS8G_$8~lhj&syIsJ!!QcABP(n zxKZ3kRUG$mEqqhs$K&sK{Jj$CIrv%e3q|dixXdiHq1|r*6nJ&aPKR8MVH`$>!{~fF zcm-A;zil?(b1QhrxP$xQvp$40q8Q_xe8SJ~$b)6|lh)J6iSyW5`fv@0{gHUbW^~Cdkj+Vc!4z02!j^D=o4kEa+w5_!qWaXBn9pi4BBxC&!IR`2e5g1~f4f!^ z{|BBTz(wO{&Bw{}ob~K+lAaU~71onBNKsuM^ZmEIKqHNZ;X_W)wo=kOL&D|8;T4pV{IM0s`4%?B>xG$Vhs1>$4KTLq4N0^|UG+>EC2 zYf^aeboIQ2$AHIJb-tgYlpp#OkL74lCLq7y(Ziz>)g(WQf9T_~36^F@LHP`Jx&WK} zN?Ul5TC*ASK>(USQ={+i#Qj%k*=DPTwJd;JQXWR8rJBptIVUbWUahR5MxO$S`V`}& z5-HJln|#x;TknSyh4y(4H))M?fAy7UYeI0I*aqHSYRs6=_*v8=8%8`HBi=L=R~8TK zvq|@taE*u-hyGYSbb|V;5qm6?=XxwW2Om?M1HZ%g{ZwMI7L0JJ6whzk|EcMCHF2Ph zfzLV>-+CMJ>FQGQ1Ua4AJ4&T~ISzIq0gNT3wSF!0bIZa01kpS#hJte2N4Cv24xEo9 zw{Abj&O`95e{!q!oC1YJ=txa%llel~Xq{cI#n>P<_%>h4;4;h9OYi?yl35Zm=)%wrl znwC6_8J{_3L2A9h`~kP2IIcLg4wfo;8IJLblb3K)9xQnXu-CB`u9gHlmlx-Nwp=JM z2cApMVwo7XRTo8r{QFuKFWEzR*Q8YG-)9t5<=IV6A&#nVYd)E z)%P1$t#~)|L2oT?7w_Q&aaA$opP_7)0cuylkJgm77Ajbsl{~wu>kums{6B7;*v-bby!u z2)YIyQC$PL|7%*YZjf5(G23EVt8CgstOSs4G!1lOA;?fOYtpv02kOxlVaXh^VW_)a}wPXq?jtz^fArAuRrD$|cX?0k5l#k8Qgm@jtz za`%?!w=9c=go)Re$1fOHylc~*nq8Fwc!Yj%SQ2nct$SM8 z=cG~avAR~A#EU7Q|MT>Ym&zoQUmoz-Bt8T`1Xpv@0>_Hjj?$u!`-~*eewhpWz6|ki zu=C%KU2<_idH;o8|5;m^lB;d;!y33y%r6`xUeT_HCfsVoWvzz(?HsYLXz7dNA zm#%R+++nZlc~>zsl!|k-M^onF{THWPn_V~MtahwGsS~c>Gfxo5C5_z=z9UM4PWHoF zgGSVTq;1v~#o4S^RqKrC5Mw<4vCW#t#aG-sJ5LKyPj#qL>hlE%fYy-oh7> z37#mQE^U#x#^aKyg|}B>Cm-_8ihj|LNFyt9Vp;!0HkOkctx|U5YRL!>Q>NX^ZFXCZ zxFVCR9+C$q?!l-6u}YU>n4E9ESc?No}|Fd40@^b-|iZucV|AW=crU>^MP z8KkiCDHQTN5s`B*=b)9nTU*{%{YyAnwHQ?7-O0wlRNmGls4OWeF zkyH$?l(F#D2oE|{(CVntg#HSfO33!uoy-Wor)@>4^-sr~8NJ1t;NT}^E)XV_aXZ;L zkW$ZQvGXAGmvhGdgXOQ|D$k#U)haq&a?M19Ip$7PFA85g=+-vJ4i z53$#8S2b@GO~cz%%^T9rYpcM0)cs@f27=TA_Y~0#4~aydZg4LrX;>vFM)ythzLGc; z)7`u!8+cn)HFq{2`mce-Qk#ea{y_5W@_CB2tf8Yo}Bnh(6esDDy`cJX-bNK(i97rm=%Smg<+Y-~(azXk{))Z;9lE&e1}gus%ff`~Erlg3Siak#WQv;S7teEMs(zcB+y|5g2>5 zx(}IR=hd%N0b9DPPh!=J{-7V>^NB#+h?|MV>DtMcJm3!5gD&f8g zohZ_I*=mhH4!;c0D5=J3@X6Qsr$YKqws^%TJuCesu0{Hfl$`W!X$PSD?`bi4>3g`9<=Q*)pnZtEJ`uyf(qeKSxF z)FUit{qp<%-z`R}@j>X|0{4B}%gyP;Yi?y)06uV+h~|5BC{g7P{t@E|ZaA}%8++0Y zNk8tGU87DyPjJ!|;+O{Tqyuz&;O)OH&jsy-xI?fO+FYJ9hwf|IqBT~H{VXDHX~0+W z!T;yzeMV@w`{WjQb5%Hy>xWKb#{?BV^ibKTb|LHj673A1ye&9tUm`2HDO$32=nYo# zr$hgV2&fvh)Ufs#0T-0oCYRapWnI|J{M9eZlha1%E;?@-Gm6vgh21&tFIUX2_cwTwjuy8(A< zK3w7Y@xp{wx&!;*hhvrNX7-IyfTMNLJuRi)m=)(*s>0{lx0QS|JEyNh?1zMoaiF&T zIIyrRk+mW)z~#(xXko1=4;ajT8P@8MX#3@5jO$c@F-#1YT)I~6HV*oIx^^zpkLcww z&}YSZ_3ANW8i$_cLPpx8h1bwbW}iq9lgUdoo@1G}XyOp9#tBBxAL9w{m`E){ik?eY z4snml&L@J)6_9^)z7qGAF&%_YPy4l^RpcC_&JsN|25+0-ox~5#T1qz#jt9kaw~6Qa zZ{xT{c+SPIZye8Elf=Vll;>O%ch=0^}`63w5v! zT@C9U9_$Q+{k$*slh5ZHiK8a+;w4z87N^ays*qd7wwU0 z^~dy@&!#|IVEddjR}R(-)|Bttv$?q6AFq~5GjU_^$?L!^uP&tPzm& zS3mZ?a5laye&PKk^(98EsP~wEkFmEPZaaRT-;8+F_>En~asRxPMyfO?S zHYm}qlTcp>Ju*P`H;kxn1XszAC`HtpKImR3b*8X7ajecgs8fJ*5ONu;g-YDSNhgJe zP6}`L$zOXZf*pCD^vfYHVi4`m5hFS&`L+Ufg8SqI)qAavd2#g1YrLJM>u~led>X!i zW^a{#=@GgwzT@UIe&m>P16is2NJ=tA*!QcFtP$F@h;0Zj8N(jchu6(SIGx z<3x}A0b4z^znS3ofu2e5bQ00B{hjr5re&*X^2;sIyN5n#lTY5jD77Rn&L5U%2ITr6 z-?{+wNlHCYMhai%^_8>^1lSdu3-yf~Yo;#Az0p{tvp-Zq)}tD`)=n0HG25KfDPp*!T*vv!9hw0>(kAWbZ9fiJ9B^pJdDlJ#eg{0mq&PiC500r@ZB@A_dIOZS^U z_qVV0tkt$IkY-4SP4`G#gB~rNA9zI?z33NGt0|_1R!&Q8ytuqr+j7{XZPc`aZ&j2~ zh}bxddulW-t-zDlkH-T?n^th#{b;)$G!EwrU#qO;$M?rH0Asvu)p|S=y)kUvj(6Ty z#%C$3d6^YET$k>p7~K7Qu=1y!iYWd&`v1ZtQLFnEKiT7*HK?PkcB*qtm-Zz+t8-Pf z&X4+k&+1&)KUp--BC8oqN6c;waA_~3EkOMZ63oLx07(l&USBuZ`(c(nP>#cahVdPvIqharXMc&CSN%E|;}e>Lu<*K|?( zMZ~GmsJcx)=sroM0lEJ?#SWv?x9929<*}*<&)sJqAZimlgHRPjnhZ$(k%J(azcMOF7yy;8+n?yfjc z*;7@thT7TUh88x{g5?|N??(KsXvJz^Z-RR%qRhvOKP#(U2)e}MBfq!}v|>MD`O-qE z%m)dg57A(UECP6JtvWiLv#`h0o^~PZHBs2`&fBmO*txsw)D>Qp&A<*uy5w+ym~!4oFC8t3G9N9Fn&hBfotHOH z!MLpP2(C$hw>_A@c3-Wc`8l`X=WDspp}|Z*xQg|w4K$6X7PrGpFYHR`8;iS=QEPqh z;`aOGo!;U0$GY-FGc0FmrOss*_|Wi7x5f-3O|iT z;k!i6JHrL`Od9unQpdq&W;~+4BTmS`OcoiXTmB34=t11C#B&zLVU9aj#O9zSW;ytk@F5TW zJAEzbWqN)RB+ji@z8%`qm;+E;^n5hP=f|9&wa0RCX3**-D@~%bJxF=w9RXo4@#uZv zt&q-e7GSS{C9@Ycy99ZiJI#fj#BzBPoa4aDg+IH2gffb5)Ge=Nt)%_+jXuZOw%L?= zwXd*#J^VV8j7#xt@HedA)%Y=A%YbNQR4Q&QIQd8FUHXWARdW=*OP}nD<|ulXKIr{o zb*p-pkPzUM2Tn}(!7mrB`it}~#r4%(P8NKs`(R6D1c!kr0Gu4yAp~ez56V9|Z(B=g z#m>8JEoZ4(GyFGa*|lcr%*Z@3K2Hqk&S(L5(|#`J3I_R5V1f$S2cH-EjAW+~*qPcR|VUu;cL3U3u^)L>rN|j0QUWD&5AiLDYY8dlm&GV8oFIDQneb_ph2}2kyn5qS!)QV9J5d33j354xW4;4zmMaoY7_J9@t;NKzc1eAq2OQiC<&7WUd~xwTxb z@MSH&T62PAUlm^p`2Y4Vb=VWV@?Fqg5^&Zo?CPl1wR@pOQH}A6btYg2tzMx+w;Q90 z7_V2kW`gqOCi&z7H|j&9D9tJC;agS{W$Ro3nw!Tv(Y>eky;N;`RmS$~u&=pez$4)D zq4D4DlW%k9i_rAQ&u~a1Fb?tE*3h>SqTdpkbzuS81}}-OyVfXlJm@HfJ7PcwShL+r zXXRlxu@~pn#keRI*4DGtYqe`0iRz2lL)tgV}Jx?=9$L#4m;vj^={i ztrFi+-#yFTIoLarfBWEHhCBx}Sz7u3GM%m_{U;4{lub8qF4GOdJpBCyq=&AgC4@s- z2kz{U@{I%Uf9ygIW4Y3Em1ry*jUAo?C($P#h(c@2e8==SZ@`;xJh`HNp#i&pz*8t{ z7wVDnc>3Prr*hmCk8s?{QIP-VfWL*G20yg9ntWyG9Dl6{%R{Wicc8@z&ZO3B#Rh%n z=*Ni5ZRQu4&1F1EJI!Kh9pWQ{ZskKO)V>prQF+IR@SN+%6dy*Ux8?e!?VU9ff$g#E(?aYV9(i+eC$_ZOFjk1p*wzHI313L%Y z_p=<5RDpCY(xRhXdLHSYAf4=RODB=O1L?`m(d_F_`o=`R-j1)QM8BQ{`psMv^Y@r{ zb0zd2ez#BJE*qBDuy&-dc6>5K?Kp-AOFMJuTNo}BDro202#yZv`?&@#+944W zS~(>YuDuC3a35?GsP8z3f$3iP37oKsm4_F!8twQch@Wt#kK^`&XZu6jsNAD>W2P{6 zOuMoZ`gK3F-J5PG;?%KBC<@tle(hd-K(H*B#6T_ungDe!|beWA3|; z=LXhJE83|Y(aspev@u>3pT;NanI!49Z#nJ+a7DoZvSIbg`94L)bZH$Q&IIFIIcl9c zX2a^0_xrTv4?<(>H2jW`?ymNt_iY!wKl3l;n>=n^WWQR;^BkoU3hJ)EMNONKUWD|< zYC(iXSRQ|TX?3Tm?)r=W=52`AbMQyt+mLo?9<)pivukYz>2V44WmmhcO1cMJYQyZj zij$HJd5*3++w&4}FFx#QudpGaIo%@+v+L0AzJsL<&Ump1aOQ}{IrrGcNw3(JOT8+@ z{apo!KL3ENL&`zD-CeKQYNdX_H_j=lRN%LD)kD|w4O^Eap+r+xpZc|@y9%n55>Iv+ z=hUkZ9s>kP>O#p)D5>bUlFtII2;Jn*7J$ZhA2&AT481V_bv3{4U@E8_Jw|m~IZIVc$+NAfiXL&t+EV%zUQV2EM-epSI^K zY_>L=t)fCa^e{iUz4#EKtc(#;v8(O_PAPE}et4ayS)GgR+aKy@cnaMsk`BN}5@-|} zo4b$?T)fEc-HSWnu-&^C5t8aqw*7j7!A(tf>T}bMCYCjF_m?bNd6VfW()$dLg(r%o zgQM~PPX`k4|7`=YF0vU9$v**~6TZs^c>G@tzF#Ha^dXk+DAM6Pm6KRf*zF#(HY^(Vj#yh&LtqP2ziOl6le>CaL0*tX{NXWWqr=Bwu9Rk!1TdNQD zfTw!V`ks%|PQfWJZd;_=ed*Z2b_h2JqL%4Iy^W1s{X&kr_}gRIx3%TGIwu~;`v|t6 z=11nrBj3sLJ?AbzS6LT)uQWh&^%}lMbCvAmb3te23MZi1=NRo0at#g*Y~2m;%Jp}| zrwq&Fue@8HH^k%rj3N3y+4m=k6VdigSai%g&P|VXYA`osU6%z-Hux> zdW=H{J!}1RjU#3{?=Vc~oWlI?nzJE{!=-a(WOH^X#Brj5-befjc;!k}?r%Kkk=rnm zmz%ToT_fjg0~^Dp%govP?AzLMAv$MG0UEPckza7|H~T4$H4kr2WSf|fh4a9}@2RrY zmhQ6Y%5j%xwJf4XekcGB#HhFaJL(xPsHb28)vHwNEoANBrjEz_#yN!C(GD(mv~v|S z<;TDS2>Hu5z}`Lb*MTsPncf8|d3fC&hF1Y)-3b@0yCY%EMe7d!O^0&oE?9T<6i4p2 zeLryBU1p6Oa*rHupO0|Xg?-`THBxiQc)R>G-mBF7;k9#w#v7H45XU z$9TnHykcH_vtj4&FXkJ$J`aNmmYSdL{0d(%1?8~vUSlT zPZ}DprbZ26t<+QPZ~x6&(JE`@GUJ?d!8p%l`o z10Ll_9Qu&im=|1T%?hBIsBgOHntj_xIMnlvlCO>CA7J^%)O<}e|3#Mnj+#Hb_FGu~ zZZ&@x7oTMLjcWcdF2WBRzPpa)b5l)DU2gKxgz`r2fs(^3KQ;Xh=jd5@bPCHy!*Tfk z1GYcE&Mgc8$%wdRYkc9M#jS~$mtC8tk;*)BrTvj2w#Ws?@mZ) zJ4>HX^M~$xR+evN`Tw3aIL&bH2*bU@X!>cFUi*| zt%nl8y7=t8ulw@rA?||u?W}%1>Jz=F?DI10I*0u{Ay#|%@_wGaj^gm;#v~d2xVTL{ zLHf>x^tKls;E1YDILk4gyTi1b2i^x1dYkMwU^lQwXykXVvS}CbTi2D0kz%qu^3g6G ztT=WuxY}}kbkF{{i>(=2-<#pR?qcS@Y=l$2^qc4a-7$|y`7N(ecL z&a`^Vy;!-^uyS#;)8S^P$ITA6I)`Bz=hV!lZw$93LG{;WoZ&%4ppmWFf!17(j<@>% zH#|N=xnTq!lK77bFH)$$-HdVlZac#- zP3O6zi%#&FbP{|AK56Ic_A9<`TfB%_j^8kDMSKBzYQ$73-@#@U%c@9?1*8#VytY8>a}@+5-+g-7nm3?i9!TB>vEE zD*Nj@4EK&i@5aM?h%QJ0XzzT;b0IEuLA#mq?_~KTd4seLyak<8z|P`fRKjuWDhiD- ziqQyd;2>Dp4S~_`oc{1k?~y&oO=9PMO_$NtTb*Yc1zf-l>^tUIm{0z4Ll^8D!*e_G{_l}rVE!0= z-*MJ|;-+!A@C@^?ICJo=;DYU*4jCE|5E_{^sA$lrk&;a;;@t#&uf857XYrX~|_< zrmy3&Ew$9wTym`s(^AW}PD?G*hgzqYK7^m=^SsZ!_YGXo8o%@T%7i+Uq3BE3r6Z&*(UqL2lyQ|_ANi>&-b{C@k;|ZwdF4deDLZ0gEst%h4+^oc$VI~Sa-3&4ZUD)ugjzt z;5YKlUykwkJS?)fvvz(a{x;!%$-)2S3q62Z!^o!_aEo!|Q``Tx;BWP3tkVX_V`Ats%q#Y_`hrV2g(G}CDO}QeSlwK=Dc3I3YI!GUi=?2T!87Jp|f$wZ@ z@}~7)zwM!IHx*SEU5~x!)%b-Fv+d;?lXji1H$$H00r^66c$ zOcNJPX+<$+i1Gd8Nv!Q$gY8_BP&Nkbx>C-~=Clr0VrU!M=_wheslmAh`)bx{!099QM%}lpo^aW zbT9sI&GVl=qU;)_%C2!A_LiUH+d_%IufXp7`KRwHyYnWL!8;AKJ!7o=uc*0OR1chf zLsTE_smAW|_<84T_oD|UVV@UuLqTuKollELbAGsSU&5cSI#PB;fAd4d56ye%>_biX zKDn=GPSJ|~;%)P`-B*PB`nVl*I@+r6iRjZa=Xe+Ozgsq^C<8qz2|X(6h8udXH0@Sn zN_o?H)$lx=8-M=k==r${PoAHHK1Ir3W1JbGC-98q{`}ML;#;^$tsJ)*zr_-b=j>U{ z@%C7o{4*PVJ=T8foYHAO-;)rXh;ProzOCq)qW>zI_GhlIUtf%0uHpX;@VND$?MKn` z`pV>w@ooJb(+-J+sXhNy8tumaQJx*WAi3x1((+PgwmUl-HxqESlr0xrjW5&VU&q(a z*UNuBoe=Flh~L%0iuxDUo2K>LigOcjQ2sdap{T!TzC-j|+>Qf|zlff9S#~t;jzD_9 zm^Y)%h1GIx`Ym_ocs7?8R~P%rwtMoc%eEK$JY$I~%RLpIN?%?^`Wh4KdS9`xwq|*8 z^~#ml=6n%3x2#!TS?sMTt@5d?Unp-zmbngj72fi)&1JszWsiFDe4dIgAuq!$Z%uK{ zHcv@V(ieHAjGM;Dsj98$P|nKjXna1|7m;(*7&&=smic_uWt(b! zo|QX%p30iCs>fdU%VfsFJ50- zT!M^Swst;$=mtRU~MwGZYjD_G`WHoT16GE=is(;Ow9O|@HZ+frO! z<8f@NEh{hC=Gl2$adm~exU!_Ws;tCaS#^VV+twR4S5<0m-}Px(Rg7VPo;aIFwYjN%W8c2)m2_kwQuLriQKn~HTRZPmQ+2$slqd5 zUK1a36_jGaF&=8lTqZu`GR;kSmEKz4imFPVXNPY}36tbu9gwx4y125YoE>yZA!Av` z)?`DO=aDHhn`%JbvAIKY?8S-*Wq_REBs*o^AQSk<_u(n?jc2}HnYn>>dUXH_Ei^``68vQMt85-TC0zHVi8byf8e_ln}m$||3`xTdCTYo+_{yEZ+9 z34Ed3SLMzx-s(Xo-n{L>yVtBPxG#U@gP9o%uS;=Pl!3Q$tGf(SUrmbpk+PDl9$$?T zU*#+HRJ*;^Rhyuv)ZD7dF;%OQ4Q^Bym8-1rp)U$#sqlyzHK_?>ZWCUN^et7@6~==L zHMxi~(@cVQ8=h8#Z_ETCO2SGM$1#RONU2isd&)2$)%c1leKn%IYIAY9N31qr{7@31 zL7ayPthy4H#)G3&=;ndqC34D&%d55;yo!ETbs2gd)VQijQBYM?4%KW!Sxwodvhp(D zPBC6p5@B6OsAbDgSHv0>Q96fMU*-+z4K>EoukrXwt4e|^KbvmCI=&)5UzitFj+-$A zW0e&d#ha;et|%?8-0CSwULewIy(L&EHkK4upckkrpwr?dm3jG4;Kf%S-HKoPXo|62s9TmmiRB__N(ew15z@LQg*2pk@7ku(ZqvuoM zGvSxOXTz_8Uk$$wek1(1;7j1E;U9(H1HTXc3HWpWJ$ilw-f<2x;FrR$f?o^20sdR? zTi`3w(_5@Eb=?||Z`s6$NH#yw0`cI(50=%e7++^ljV@$jURJra+=H$YO3SM$ z*p8uCi55`34hfGaEoB)VSdE@=T`^vbJ&rKs=IbdU)YH~MO0szlWoKWwK$t2J;dPml zYea-sChlGjbsY<*sbMr_6Gk>BVD+|y`Hf(z@(I=U!f0}#-^{&yAHj%Tg@Qc+vxx2r zB1j5TLS4Y9qIzdzRJw&IFQngzhoSeDixO`cgc@A}gL!LJ_0C|~D}wPH?m#dnVWm_U zTrES(dU)XtlGG%L7bZeUAqsknSb-^Z+aqN)9xR^W2Ut;6%NaDBXe``oG0CH*tD&iQ z#L68|LyX|+sz;ztmz333h+M47Mv@9auO74S)GG$m>hb!u3$$4HS@8Io2@wT<1m5iM zb0H!g{xXv%Uz#b-G}2&7n7~&WfwnUOtsw%9bs1mo-$bCj7=d;=0_|haVD1db1#>w*k(x-$i$L2HfmRRNcT99Ek$qZc_hFJ?W=MkOh3s*7VaKdO>yOB>P_p$fWdJQdL0$~M=ytF{CM8}qD* zf2`;lkH>v?!HT=qFOHU8yW` zn#paHl}fcVVqMhCf2pdXmW;`2qDo2~v)?x6Lw9L$jSr2sy|^5v3e(bs3j0zqGee@+ zUGCZLDc1@-6U0SK@e{QmmNj`%T%SGe%}TR$qr6I=drNgyg&XQUw2?}b&SeW4sIlZ% zZVfN_=~L+gMm}X&z+zidwZ-=cluETN$S<2{#8|*YfWn9L@`Qt4`%{5H|7(XYef}ykCk{k7iOJM z_sL|cT{L&ZVVQWNHD%sl{BAzu0E zlUCGL*Hl&KS3z@u2Axvv!R)bF8OYJ=s(og{YER`>s9un&C9rbITDMDqz83Tg#+cQV z4hgmK0*xk695%t~t*@%89;1eaS{Ax!O<6@P^i~gcbJX1NTqX*1qZ+Emn=vavQ7ZE) z4WB#{-j;p^LN#E7bhfLJxJp!n+Ev`Wp}4vXQ)h%6s+){?^l-f=eg4o3o|Ge4QLYmi znUjwYu8n3#osGI1*WS(M1XGx6-W>QVO`hxZZKgQWNP8dx%^QJM7lHP(2(+FEG+cY1 zP?sbujOO~W&bN%Cam`#EfmRTK)&d&!vIle;^Nt|=7JRpf_H`tf%O&5U2(;V?wEIA# zeCldD5w3wp__99-9$+{>FP?hT5qR6(dFNU7KO#K+?mY1pko9of9V12%rX29#uc0GQ zFQCrCcS09@?-`56^bHyvV9nlM22-V2^Wdtx)~#6i;Oe_pEL;6xLGH>mE0x8>IBURu zAdU8uU@R=tDB+9!%}^_9aDEEeK`;n2j8#9J6gJu{ao9tijV7h74v2)78Ws6dc-2o8+Q?EW_Aj zkClRVn=!VA!Tu6_tL#ghCy4Wc#BmtpnE`sxv;VnGanea!6oGbU1R4)~Ho;7t z1Yt*=4r9DH4w%9SDjgX^BBUFa)7*Rq)nc)gf76YY$hbj#eR0O}o72(^vhg>=NW2M& zH|1pAlD0yW6jyIE<-W;a$RtDN%{QlIDF#oCxdiqFwDltLq%B^I5>y?Qm)Cm4Cj8Mg zSd8?no6}Y-U#6()k1qdaB&FT5?B*3l`JtS;^eiT)ExviVk&Mzq9J=gVz>&UUQTnn~ zs(vuOdtrX{D$r%5r-5g2W?CAg7zrA5_0rRC5ZUn08jxx+|fe zb0vfdPbFMsGM8aoRKT8;Ots#v)i{r2#%jDkpVCsuP#u#SoaO?5_P`?mKqpm+{WHERXpr_a0Ast z>N|9ZufZ*YGCcW;s;cUeG|*}*%P=EXxJ#kic%cRRGTmgu^Qwo(Y|P_jjPEtYc%?gT zb>Lo(aT!Wy+3wk_vKS>rOwUjv$CP}l1Mg}lXEUQ&abw-Z6M%{dhRAba< zRdw;!6;$F-A-oD7E-z%{BpX>$SclLfrPlZs-0DD8*k9=R{^_X?2YpZJa6 zBlxsfCV~}Ggw%=I#-yi&1`aMg7@I%$_!G%5Bg6cV#>1y_nOECDE-5%TA z%`3MkH; z%|k&=P@%j=+ZjVTsOB1zkuhX=u{Ag?VNYZhw7eGAR;w}ni6b57&j;Y2g>Q#{0lo|V zRe1Bt4EwUajes3u=&n!L>S5Ter?@`jQ5GXZ?=ZSS4aOgipQxRWC*z7zxu`K+nlUu4 z;N}FX#PZsjd@SMUZ!5riFQ-#aH4M(iNH^r=YlGTdmE~oX+yO*P+_FWdj(J>ldbecB zUEyanKR0ZRG}?>JdC9jM z{!tU1w02WGDDU+MH2loD;3vkkZwB3(F;~8f-XPcm@dgy~8U%02DMY`8OUJ!*^F^`o zdRRAYc}<}%XNmUfy^@xp6mKTc-mX(LN`!h&ea$G)xl!8#|Fv9(PxMl!LR9eb`^FRn_X#hy;@CXi zRqNx*M7@cJT|8(igZ*G4-I$w9R$yhr)l~H3iFfQLjC0nF@0oRGzl`L_a}7M7k^PvS z@A($^@wB^jx|uIzgT?s*+l0Wr21a(Gl27p#IA zmAsI2JrY!-ZQ=1Ovxcs;hJ>m5PW=td#C{ZPSN4yo+I6l@Cl5W_mA36*JV@jGIi6Mt zS}D9OKko;-Okvuy|HPnM4h6%evmL&JNbezh`hkv#(~oc~nssB-aU+=^D`U)eGiE6h z+a)-jh`}*~;26iW1bD73LCP@6cIY$ z;@&(Dm)rGcD=_yMHY`{Z(-%$1HDUe?_GhD%$^W{M#B<(R@Gkh^__Lx z<1Fo7(;d+<*GF-yiz}R|%WTJPguZq2eyHRz946B#!X1@Kju9rd0o#@R=|XM}7&u0Qo_036R;(%Q@F(EA z;7`H#!oLH57Jkz2Sdn+!+DLWJxWR)ovkqkboW#%yjlbj9lnHs1G;AQX?wC9&11!76 zJ8?2W9dkYG=h!5uJj*Iea;wTqCeK)n3j;U|oPq<^=dzkoW!fsmF8fh@kX2ls0|O|^ zD5r7SUH$6Lfn_nH(o9~-&6;i1ym3_pt2MML9&+EdgQiz_1ksT)M zyEnK3?Ajdb*)mZFd>Q{B|MWUf+Z6$){y8in~-5w^vJzx$pzr|_M! zFK`{=8WqVgZ65qJCeM7?ra03`<6d_>Uv&i9=Lp{|p#$-X6W9LS5sT13q zb!B@K*~cTfU|Mj`KxEr4fFDoG2Q3#KcjO%SFBru}BTNzDb=dgW@LpU`##x8J@vo-< zM-HN(tilMa07ZSQgM%K!R4ZWBgL$vGI>d;312{Cv$Sf82dOX`oigzkGYjK5F1=eH2 z^r?{kiiV}Eu7df30V+%?a35}(VxnGynYC1vuLQ6nh5&}N00xx+29$s`t2eK~q|cio z0%6jLMx|8{$FQF2vdyHT2oIFOoeZzV6#|t5gVbB9s%(6)9Dd$>k})Q?nMh@oIN=M& z3vh8j-TN&r4-=sgR&Dcy)BN8c_b9Qv)GGU>!wW0YfDOS z6T=tc$mh=!m`Ytyg-Px*FFF3uSz&?|jASAjk; z4KI+rtN<4-i1&I*P+dhS#Q{_}Kc zeca0kToJql{vmh{=302>`3^ki;~&7Y4o&cMKZPg%Gw|ep9-jPv4^RGXcsj1F0=45q-e;i;K?gy?{bc*tOybymu)wdo9r2aHZ#_b&%pgI-F$fF zxdEQfKxaNVV>~@$EagIVV4lg`v&XO}f`0+N6aHoRlkjiC_raS>;_;ur!9?*^{v?u- z64n^DtE(#Gsn|0Zr(~GojW6A)#hL9MxaL^8&QnuWUQ10hEDx3w+o%ixov&}ib7(Wz*tLHq+#n~_VR{(yp zK6n~wz3}hApM@WVxBd-mZ19QjN$_d#neey6uYz9-zY%^Dyt(fhJqU+!>aGuaa=51% zG=9Pprs=CbW39ftX;o}uDj(C4OL5j?6cZLRzOzrfL-Gi;(y?Yg_G9%4o%)_Gc!I8| zs`9K;kcw0LP1u~9+nCR`(Da zrwXc8;&(`J3Dk=ZFmglY0!)?$i8mK;RjE8g5X;KFrNv_19n0yLaZZi&h9-_Lp3!l9 zah|&qp8bt|-|V<1#=~=74SJ5HWK*1U(w0V`-5r5e9D!C9f%d%!v_FeL`&k4U$6K(z zM6T(tMWFr1I2zkv1pWhfo}8t_UZe0du1dLwLEWD4^Op=|iz84QA< zam+U2e86-%j_rrw*XcOdtZMlCbld}Ea0mXdUOxnq=KwGo#*%};X~083JCH6ZZ*+HC zTPwbUw%B83l1M@!F49^p;=H)lGRG~yWmyt?r)?v!9Ep!gzeVh`pnV|a+oAyt+@CwT zyEW<c9|pcfkm^Sl*wj`sJF=d7Sw^^qZZiiU$n^gEaH?! zp0VIp0vZ084qtDm+SZqfK_$M6*pkWfR9# zxXT9eTQ)gr6YtsNpiK;`@IDE0vy@#@9F_8z6em=;hvfI9+!rN2mU38%x+sPZMuB`Z zO7=vFjwpE|O1!GVeI$PzB@af6(I{CLjsMx4;Um!?cSOs+XweldUyT-Ts_>K3&{}QN zXpS=Fo+d}9iG6m458EA}KWmrAXNec=vePb3+7l4|z%KX4 zh)?Wt#4hS%7(Nu^0R3o;Y@H=KV&sV!@oJ14;h`AW=nx|@a*spocQD-SaDaZyA)982 z6Aszs5Iqhz!k;+gq3L4JbXh-LG)`yusp$^TJEqIMvqaZ)`Ra7>=5#m0BhzKGQ`9@< zey2F(WcaAl0s0B2Jm(UxI%SVj^f?m{{>&+#oFVqkkPS0L(+q}NXShJ`nj!bcik=zr z%^Bj|8BT;hnIT7Ji27L4PscjIb2e7K>k>n;@{?GxXJ!Jz%`;`!OmTFkJT_CDP~o1L z4$$A7DSKVw!2c6eEFa~V}DMK={T7nlF=)dn)rfwlTCbcG4`_)F?XBzNK3`@ z3KK0@#$e9GHt3B&>oU=TdD~31U|kNIXhFVu6D`Q+Gtq*4MJ8I1Z?%aQQ;*^WO zCpgW%872Fo#6T3%>Y`;JS~Nt%Z2ei$vDpO*H# zT^zE@qju43mk2+lCsoC1XRfn$$o0p_wiwYEBM-%hRuw)T!;)j<>FMH~82RLM@m`E< zn9k|-lNhnbk+ugEha7f@L5D>6V+T{4rjxUEI&-y6huo9X8F5GK>=M# zzzY`ftVJT+Zeh|}774CF3!Zcjx}i<%v&wc`NLk2iwTb;U*$j$JB7Dfk)J_{Ydu&id zhHUcVC@KVwp1{@YfG@VnEPT8|Z6bw%WAwnIRNU3S~W z83sSJ%OM9>_Y)2=iq7f?t?^5aIK*D8+z!#;kO)8FU}}ehoUb~VtH%KWA2{SEPBH3` zFFVEF>9XA^4osH^r;8)gm$W*?ekYggMyEs=%QsRxo#Z_2WUgLzw;`wW&kzkW(40qR z$Wt@1Y|G;_Mf(i-!VGaFHX94@!I?5JQyf-{@sXKK?Vd@_x7gc;X3EZ4VtA%}b{4vu ztaphV(JUC$a!)Wy5ztt*>RZ|nkApQOnf#=`q|&I4__wy zm&qqC6MHX{2sd2D)MJ;C^X1D>Qr~5=dA2xvnQXdTe0Z5W2ln{v{g;c6<7M6DVmMwR zJQ~l`mdnZc>}+J}nk^d>#L3xmPl9-Jw(OfN24-guUm^OgkRM(l-n~L1Ja7e5_a~6^ zNCGl-B*^+XqBB8$a;11RLG~nwzJ%<-D@D(h^4%-Nn^#JN`>tf_o;l<^I0u=I&XFTm ziS{}2gR8`eIkIbx=$Vtejn z2LGKhU)+ybr-SroqFJAr$v%OJaUOo8-6EgFBOX?HRGKRRd6KMI*ggrd9Nw?;sdq5L zfrHIbSt)j4>8C4Un%=)9Xnid|0&OX2m(=8umCWj3~K)crDC zIbtn2!s*Ufm5%lT4lD_k9Wh@w(c+IYPei`P)99{K+6r&Tzszi@>^o*>;kkO?(I#H=3<)BZ`8YR%T%=&$bznT z?iSY1&ic9H=AbXhQ#2tI~{jNVQ^ZtXGsE?K`OTai;0_G%r3&EC($Rf!1iE z1>dJX0X!J?Z2 zthX2zo{=o%Gsd6O1>-_|da>Vl`H)yA zH=>acd2}}ZKo^BheApt7sNM<6tL&q1S*!@|xCAmX!*z4cu`YzBu~=lI&WWTO`udfz z*axL7AGL_;9fKAzY>^1oTWR^i`@cE#yiWEh^^SmjVY(U%Y4Ig^ytUA>vByCA@e8CM z4yTWiTSvOl?$@y0lH#&Ner%C=2;uFq&120es9!-?j(t9!FB8v}9f6h-rm6AAeIoZR z@ucg%KNs=&=vS%0+o2{5FJ>FfVc*$rWo72eb5SBiz8j^c#9Ri}(p0iR778x|u=Vu8 zhJ(!wb`99BSj7qKGpu~6jaC|aa9s9*MGjfG93Z^kN_w-EJjbl$@3J!Qn^wvhuqHz$ zl(~aawAf^w6wgABvxyFy?6-+-n>=Ns!3W_%MITi>2PFAhrF<$%v`g8DZH1J3qC~fp zLsIlg`HmDHsPKrQL+=Ama}@cHMahmR(G}%DxqVT5z7M1L%%f3wdT4wgH%F62^ey_T zZ6<4*&dhM1GS-h|%vCfGLjPx)?%&){%#pn@V*ZmcFUN?}F$}*OgC6`z%=1=I;C$pa z^pO-tK7QX6R2V#Vxch9 z4RJ0b^qfxWPD-Z&_Dw?X3e)X&87mUd-fdx8XzodZj3z}7aDK6KKB68}XW})NS01L@ zqoq^KhTM&$Y5i(`A#5lX`2?2~Xjx*ZO5^iiZE?lRB^ETMZEgG}HId@kzO7mS&l8k8 zMH>vIqZ~a)vfe53c4ZIBMfeQUjDDutC&{^1Yy|x{=|(?~=W`^$95YYp70?9`KWxg! zeikd^)flNG{h36z$XNs8K%XGcp2<=0Vuak7nS>kTXDlW26YAvfB8^j(93~`pDmPGt= zT#p5V>@)OOs|6;FdaLb-S_PkF^`5uNGgiw9tL(Dc@b+*=B-CR|!ezRQ`7>;T%r&KP z@0I{vI!W)DQdFJX>{oAFj7jt6(%;=C#iMEf$&f)sbQ?{R;87dvd7LfkK=@5-EOu}MR@Y}%vDe1kT$7DFPpO_|^e>oRkhfmS zL($^6ly60eP8r)ACC*4$7bV`6azKi6Qhp|NXFD1ddmIaQ6gkgC$@*xqCz^j7qba8? zTB1Ik(P;4=Md*#DU^I6s+n-~9rR7#P8Uho)GZvRaN>?bxga8-3^o%2Rrf-!dEW*pb)D0xU+@kgYx9!?9%Nez~ zAoH-4kpC^ydR)h@cH$qu_XJ&LK`a$bZ(syf}!1ocie!G7n9UgZ%dCvTlYrK3#t76faMg{jk+d zm#1*ZHr;jHDL$U=f+ers8QbI(Ey}9*yiEhj<(cB_ zjM(;>;h)z6=z~4!tW{iu;SS_ll-s% zBJZ;^CFFF@q|DPZDSvRLJdNYWnXxeM?ZrVH%ziF;c$R2#$$dC*bID}tn@(0G42`TfPSq{kmaF*jUNRDF%hAkR>xtG(OC|USb-~X!b z|Npb^mtKc;Nb8!>v2&HaybyyTKTNmJmh+X4wbVp&!45hHe90zSkS{(=Q#x8A^o3R6 z9huLv#_DJTil*+4U`tVeJ=L9R3G5-=urbYc-Hto5Fb7mahQ2xi>k2I8EGnBICh^^<$3OS$nJ8Hq1gv4p`8Sj64lLvjbiBCsFU1Pe|uT}bY* z$P+Xg#Ul*kGS*qF<4;;elM1(6CFosN6abg3>N##tknb#1M!Vo*Pe$^wou}9n^j*tm zzObxz@?AjI0mXy17PBn&B)QO%3d1An23h|Uh9_0}q6sgk|XFm_YUo7>{&3aSR{f+ED#RoS9~t^h1qdQJeSWFYaz!QSI3vHUS?sK=WDbr&_=%jSR}Uy zFKn@f#1>VdG{rlQ@(MG+v((|k8OSEs>3mSh(OgF?b4PFP^%j!PMe1wcbjD!CH zi~KNX32V@OwC)nf$PUZ+7S+`(xzC2d=C?s<{ltpbhi#%S;T;<4=AKkTsEhhAwjxjq zo%jnyR+;GH5q{Dd3m#)2y=;{T_gW?M+8`PG-+7^D{{OtJQkJFrCa;|Fh^rt1Ejt1& zB?2uW0!>Ds4P7&_+`b63ZqkggYTPSH%vJWAb!e%hCjQ{u+Z3ib<7Eo&jLcJaN&KW6 zwgVUUakCSaDBBt5<&rUZ=D;MIA{L_^R!>6D4AbMe?Mslk7>~EZhLHhNJnSFgbe98n z;#ddn2ychXVRz`cQNM6m{gcqU!*qM_{j^7*HHT@C>&Dt-*sbd)p?gW!_7^@w;{3Jh zT1yG0$pTZJg!lrH8E>pfODE)6t@3b=a8HpY$H-fbcF)2Zg$n>*LmfEZpSQ#td;PUo z|8ms4LwnE3VEP5@O)ccRzA<-}LzH|Xd`5w#@a3r3 z#%R$S<=7LAt5WhqT&9YW2=9-Upf~fD)br8KqcP&;=!BDY@ouzpBwBnDEfH>;=EUF5 zY0kH%i8Iqk`9x9n+MUhn$_gmBjEcW6<8n$2_rv%*Vvm0Ud+Zp7aRHT6zvxY5pD_BV z0}q@ly*QuWf;HGH9>pVdsPrWE;~6wlDBCfXBD%vW&CWDu+KQ{Wu_%2tkj*-$ND`G_4K`nNC__acOYCl8JDO68ORbokeo6UTE`ZP&)g!i)j4)Tvv$usslTn9PF z4_~RDe~RbaRRZfH`AqB6?Brb7;4nwRx0}+`zGh*8T2E*?Y*O-#In}kwINK@#-A}ry zZK#8ngQoBJ;y43q7}h18X)Q-MKg_S!@P%08jXSHEstoqoYb{qLWn)_4?L3>hk!KsR z*kSl=utGNvE&!7JlRV2n0@GA|<9Sw-9D66q&lMXmPi@DZubb)5#PNO4iM=0np0BoP z`yu<7bpr-|Bk$tD{!c#Ro``b}mpYx&sL6eW&Cxgm>bMw?u( z_J(+VUfI(xsXiLr_Rn zu3B?b94IPI`mJLAAqzGt#_HE=iANX*7ohLsrlr|R!pYfaFWqn0UJ1~RlCURRi*Os$ zj4^pd9OjS3Zp?0K6Uk|=k+(WUgW^$ZiE|b5(7axR_wG}4wNBh=)aRs)rf!?kyjCS5 z!0SED?n$yb^xL6lsOwv{=sN$+E$M4}K8B z`Zq;d64UhFf_pbsN9pvAO za|9Ng0iJI17|-II8@m|ogSx=Csk~||Ih7tqyAhU+rZD|-N3LNv;&X48yCAoS#R|W& zPqq1XX{^`SpfKQX*4VDGTVtQbA&oMbbqn|tG^S|G)>xpiRO2p<2Q;>5?9g~pW5338 z8tn^=auPMBY0S~MQDLjUPGg(KK8<$Rx6y|FOpQev8#H!kJgd=ly}`d!W2weQjhz|? zH72AO{5cxE8V_si)_6{%n`d9B&uWE%uka7t4u!h?+cZj^ZQ^}w)Ob{*;Q21-1sVey zM>OUeXWjl5jl&vO8}|_W%^J^X%r)*s_z!Cw(wKugBgg;g{BGk;O2F?&yc6++%+cKg zKqu}G2VOnDd#So#+~&{KSO9DR{eX@i))-J2@V5h-kbYLvhcu1=8$r*yozK_i&(WB# zFyJo))+4<^)0;H50P8^S*YQD(!wLg_`Hj)tJCL3Uq}*(ctARey>vg3y0$pz$2A1oX6QL*7!2xe5dR0^mlZH|lsZun_Sc6>szRX&eBOZ}l=m&PI(T3Il#G za5d78YI=vpE?_R`V!4sesWCxez@G$Miu3{?`Ra7~0gZ=&IiUCI_*soZ3IqNTU>4F- z_?;2jD@$VzFcWmYj;rsOklv)?0e=fH8R=(qdcVd&U=rxbIflGUjoAt@&j1sUzDv`M zZ^PRBjflsC-lOS#8V3{x{O5Gs_=YXucds<$rzi~gvw#Dypgua@I|f_*BZ&7SJ!{qI z?sLFWpdIBk0~3LV?-<=(0Bp)N{x$UH&5Q^9!wTE{ z=QIv!`i0^~zJOnp7;;B+{xR|bHh+RnPa-~J^>5Vi65`X*{w5u7QRxo9+hf!#N26CE z)>)19z^;Ejzx$kyi!Da^PK8)Ufya?v2RsRE-iqf39xpZcx`F2q_daBlQ>U=a@7K6X z;|`5JjRt?4KZxa;esPHLaglOL$CMlJ8}$qL8xR%5%yE{$h2p4E6xqugdZXS~KF zg{}TvU?$q3Nz((sY{UnE`M|{T(cMMBe4rOt2lNAbf$TSZzNUBK;Ycf5#t_FA%~86~{bAd`9}~b{Xl73fuh68jk|wA!kI#?cXL}n?GJ5o)>6G zx>v8QkqOnb5hsI8Yt^Tt*eoo_v#(2L`pA?|vd(v?q(2jT;Fdldgm<-JN zF4isJFp&MeXpfP9m%>(m6A}F-`+K9i)4-Qohjk2C4=ez70{LD~0yiQqzmIhqI0$6F zKC{;tH)nyAFMeQPqQ)$R&^t8dD-8I3I_}rlpy^E-k1K5T_iL2(l-uSP8b=hp&2LA% z5cSxo=mCGp7;N>|YyL)!%{skH$9pvPY5IUh=MS-7L9Tlr%5AmyTZrh#Nq>U=&+>q5 z*B&6-DYs#CcR6qukoDZ5(WlX?v0P)R#u6gr?s|;*@IExQYwXcDsIbjHtWoYKf54xt zu+5*TFGOya8Em3y}Q%z)8<6(`)^FghE<9H++UFGI zw)sb1GvrIgF>mB5I_4!E59oN8#%^HgznQp^j$zc zZzquTkRKZ9E}#qX0wB&`{B@e%r0Lx{eg+uNeE$pm1DFe>`~qMy;!VITpnVAYcc2$o z2c9~l4N=#Ri1=OC{i&jl<59{4T#A>*IG zE(7#^iuVibAI7@&?|6ToWB>my${R&_&&>AMpGQALJkx@;6#caXSc3RT6>szR0?QH4 ziDo+VafPk^9Xej8@c^(Me7!n;R^yOD*bjiaC}*0%7XUUP?z9`_rfDot*ybK)%Mp9%=cQKCfC=!kQ$qEDh9AE*`1B_!n6jwtA;=6#%e*jpDcqh;YlyeQb9q30qOT}TA z)O0Vf4)mt4VQv8q0y}|4ZuAlI&ojz70A%}|Q*r4pO~SJxy#U%mT7r&J=^5pfO1y^h976(&Y^p zOTgw-^sTdK_cWuv&A>v$58s5b0vyUT`IG#IjyFu^L*rTxzSPH)3Zy4#$ zYy;guws)J3cWNBa=vrp*l_y6(_8^TujXN~@HP&maQ`qY70`fVtSFt?QM`Mw~ zR{u$j!y1$BFzS`25aU`Q=0hEC0aBhT*Whz%Oi+maqH*aMg#N7g$~AqL#s-DZZ*{yM zNckmshWsLp9|} z?9|w!v0vkmMt1?`u7AfIcaKqCn!+~!QjNJ93xM6=Ytr!+jcp2H*VA}XW1q$$U;z2* zHyHAdDs1xyG`1^*-A7~Z7=)c)^9^g1_Zsb%s4;mA;`~#^ah|2IK&O{$+%X1W=hJ*m z8e4R_fp{O9en!*JYCNY=ZZzr>uQ5p><`W$c0IA;v?jv8Dzg=O#-=*=4#E2Q|g z&nBLRzq-~YW)xV(PWTJChrf4W9?JO9cdTM1{IB7MQ8vpPUT+m87g0vxMV2vHUHvFC z4Za8dLT*Uc?JVk+Kdx?eWbWFJ+l&Rc@SxpLjuf-D+r&NazkvS@^4xdNh0FQ%pIw-T zMX;?{Mla;%T!h@7i|)uC=fc;-mk9Nu}3b#`m_&&l{M8)5;2@Cv;jaG3F{8Wx|lJUt@fk{qpo)nKE z|1ZC96R+S#_bZU`z4zn(GIz}mr(Bba=uKQ?ajJ1qi&g|y0M+SXr}|k z;r6zFQ;PS|MnC?6P5chO7w|Ut^X|X+cFIeiy6^lv13!|D`mmgC$jdtBYvUR`LfGn>Ngm4**>c4Dqu^lh7XV3$q&7I}*Q=;GV!LeImtVj2CA zyZRE!y->Lqlg_qc-A3eMFU!MrV%?6SZV9?>^>_}pQvuqk$rElT zKQ1r-;!kYiXAS66k3rV}|1}R>xScMxZtPDiqZx9Ymr(A-mOm9A+lh5+K;4FQJCUF5 z)P#2G-4br6z+FJN2QRviNbJb`LKx^42|p&%)q4kdH1oUy53!r9WsD3+T~y9^HOA z>jd~+xm7IMWbA*KKOX$~@Ml4HgU<3BQHI%lw9hENK>VGx$dC zx4>KeGO}E={1(VCJJ;Q)=l`&ZkKpObfUHO7(_{Jm;jfJJA<&(zHsMA-x?RARkhTWD z60j2fR|uyAFXR^Cy9PRzHDW5O;ui)z>lys;5q!Narx*CU4(v~n{@YHgh0qK}tbj%2MBfWM8 z^f#o_ok9GX%Wa|po~|G9A0q7yoj%C)**0+>Jl!zjKSTH<9hd8+c))2B*J^$j;;$io zi;gEEo;Mx)4;@cN{5F(di#Y4mfO_#+816EKM@-?&zX|gcn!*Q6;Vx77oGF~tZscX% z>0VlFJV!m~eehYR4_!U*CyTHa!v6|9QLt-Vt8E*KA;KTlxf?Rft{rk-dDtf2hkpq^ z=*XLP+=vg*l`hM{Gsh8 ztXntgR${6f+tH8q3cAN@jj$I#W7iIEzsGo=8-YJU+OOf?hJPCV75J$fWw$_v*?o7r z5qJMR-V=POmQP!R*-mp$qgDI^{Ds^XvD2`OY{)!%5pw^~b{f_#1@&q&)s5}ffHpF_ zmCy<3ayqfEfe&aK&M+_!X+MU49R30LZ^KXJ)Vqfavnz(KK{o=r{~z%F?={{(*Ictc za@!%SXYh2FN*`ev$&eY)a+UD^3x6W%Bdi;L4zbZxH@06n+Q{r4hrUK<#}{$E@VQ!7 zp$*AwUwi#2tGHILspkA&HcWkvWgLfG*CmwuW$Rp&Zs-7B!E z(H;0ln;3$x*S0s>mdtjypF+p@?M3JrX4zAP*?uge0W$k9q1>s;yx26hAM3UQ^*U*) z8{6*;+Q{s##vYxnsmmrxUcxUrYnvSRs^)$CYtLfeg)@gs<=B2KqXTlCmr(Ads2|&p zb!$Q0hT(%w&3|Yov->IR9CSPI-<)*9+xg)rT-F0p6eFz`{&V>E@on-0&xK_vrr+Za z+mB_Of!y3nDEIfMQYb6ik9F%r-7-yeWBVON8=2itzGK8Q|H&reyD|SEA6*l00n&cH z8@e#?$M{9eU%^l1C_f2u% zhMb_g)^8JSkaZZeGw^o)r~q6cZ~@X*!run}(HX0#cw=h$Kl&GAkI?}+tRLNTTE6R5 zj8FJdE&n+1VWfQ@{vRk`+QjA2;d-ge9j?g?eq(7w27a>2i>Kx)3c0t$ZRml4a%Pi{}6V1Ws66>c8seVZR=*c z{FOM%xCMSH$9HiC?}CouAsuG?@j8QE{~Bx*r_gsHpN_WaF?Rd!!G@@L6~piOhw}={ zXop<;C6xPnR!e2)yu!LQqi*NmgN|+2h&D32xAz+Hrhm4HVk(N014(hrRAQPA4{1>;}a_|rCH ze~q*&>uq8d{M!hBu6cub$0KDQh77Y?iM(`uZ`ef6n>LXRxpW7Bc}V*){NwNsz<(Ql zDo6QgkYRQ&={#+q+y5utzm`A5`XlYiAEN&7ZzKHqMaUl-Cx0dK(v?GY1HAhEO2i9G zP=BO(;2(gWb(>A(!C%O|u@ujIvoSyKqCD-2_Zi^<&_;SO|3f| zu&fHU3iwOqIFGW76v*tkgmN!M{Wy=ZZV9N@aZ}wmj&jgOL5H745&xNP5ya0l#%37t zt2HjrxJYB3#*G?FH2O4tSL1$-O&XguKCSUNAb&55ZYKQYH(3P#`(*!eDXs$Ir%MEW z{zWt*&L6kM&kzcZj5F|2@CgTv|1-PkdgK3?i5 zTHF)*4ch-lsMEtaIM)U3b-cs7@&2B}Z$SPUGQJC57tWsIA=`uWL|`fI7(IYG{04j} zh<8AC5zbdWN4>Mq_7&jcd2uP|y({o8(DwJ?9b|*{Yoy%Om#dNpEr5ZPC z^l3bx@uFn233j zeEAydG*r2gf<2jAVnC~gCP~!oOT|myGCpDhY z*r)NV#zBqeG>&MLnCqF}sWDz-;{W08Yv8P!zW4XOb8l0LrcNrFYN{!t>AmzaP481p zHB(bfiYCo8bEmnw&7EfM^g>bzAq26ZqHc_BBL9juQZ!!CL`6F&+5;4y z)?pc-IiTwmb*IU2uAAVxm?GnQfC_z}6wfY^ z@kyXb2o|XDT+nq0$4{00S`sMLlP;hgKyyGzehnz;I|w=uv}rExfnhQfpC@ULX($JL z#rePt%o!1X5@(ZF>l>@UAHshZyYfq*@eBF9LiL}Z)W2?4bSo(JuRB$EmkJ+H;e(*0 z_NbyKRs1PM*#en@8x*hjW@(_Qpvx6K0=fj@qAO+omVoCKW&nsu$zTLg+%t&4w~@plu#R6fTP zOI-wsOo+XGqz+T%KW#DL;KsT|XA&Yi;hK@&iagDwYMg0t+0Ky#N#J=;LB z1<&??l0Aty`@R8mKjRk9>pG?36kx-P$W;x_UX)LpTeV9MGkpM?lwsF1-Wk!7uw) z%KCEG_?{u*fpr=5oKBTUa{@eyC{G`H3cd2n)Q9#8%KXkg-D<9NV_EdmhLY&pI zoN^T13QF~N8>r9=O6}vI3LjJ96N;Wv)P1+aHw7jC#)CEj?E*^mJzep0R5+-@OI3J{ z3U5~7J&GPt^pv8F?veUBfRg@!pj2p?dmJn25!|Kg|kM>CBJ}CW=3fdaHTu@<`qWeL~ z4~Y-Sbb5nQxIobgMG+;#fD8=jlmg5I@x^8Nq z>^lTL*>_mcBZ?kX^q8W@6+Hpk0_iuxc|Y=3Z$)zyU8v|DP|8Qb<1&9eKq;IHO7^T) z6hFnk0{q3!#-9z9T?fJMjX1qL<8Vff>c>&g4A2~$m!ono0j2OZP#Q0ff|9O`C$TSw zXOC;1mK0Iq-%k8>vGG?lQt6!7s`?X9DwlfC%KDI~XsV*wiuyr&0=EuSvg@Q@-i@pCqUESLq0EK!uqDts7p1H#K*krY40KUvTCiL+Hc zdhe9|%Roib70m*rdNm1@^5+L7dsc!D1U(2!=^azy4zJ4kp9MCsflFID{Y zp!7U@r=o{-xm{A9KJVB4pMdyrzz0F8eyjm41g*VW;*&s0Um7U+r9{!ypos`?SK(uz zEfB8vhQ##-C4LTQJJ2PHZUCk9*qf4OgA#78qN_ov4(9H0u~N_jprT&9CG84=l06lm zS)lrS<1oTxU%kE9g9O#r4eJojL0GT?4p3@Wn?NZ)`$5T` zoqu6mG7jVWjo9PrE$m)O7&_hDEaS@3Mc&{!x^A7 zubKqf33MrF7s4xg6qM><;t5&KX`mEd2s#pU4=CmT7^oj~(yy|9ECHqRI|#Y~bjfcr ztovV|59;+xFCReJW|9MbE@;;8E|!ZtZaOLZiS3}-h;Q_VOm875)x)DIoc*T^Zv!Pe zPl7H1o&Og;?Ft%q3SR&NT?tC*Wc)4p`$6AFc>OBj&O1rx-+@D0a2gjKn z;0}S3dO{IUs z+sjH7e-bnSa!t>XA@(ale_u zpu~@Fi4Pq<{2&Yy-kssJEwjNV_sFkQ7kyPv&>a z8?BVy)!EO8kSMl)k%{EU!dR%5QHKo}}npMZpsP*5R*< zJv^n2N^d3jbrH7?l+xP|O8vrNQ0ngv_m=uupBT}vCxB*vPye>zzaL>y-$9olpSh_h z55yk;O#zL=*;DdMIw;wfqr%HU(-1zWXncS414vK*cM8ApgtcEgWoOy|S>BsLn*y{4 z^gcJr6VGECBfJ!p>|Huk+PNN-`XTo)nNB)r7lh}6CW5X8CEwQ`9>XpHEdpH(dJHt4 z;_)n=>>da@5>#)8%Md1ityKK|ph*ay1f_AW>4+HC33jB9l_S<8I)GBSF9baVx@4j(rhnnz4wlGyK>RF8!4m({@Yltjx;$Cs zV<-4-#O(r206hvydQPcue5s62RTM1oZ$AEFCeop!(vt&zJ;W6$8dP*4D7D`TMc05* zdh0;bL63nh1}!O5?MBfxpyba+L0N9;iXuwCXqB{9FM_{#y@9_2>X7 zr4wH+_2H-ZC;c$GqO+2(03XH9mV=U>^`Hr$yFkewhd^tC9swo2`ah|s&WJ8bPuy%N zp9o5Jq$-*XD(W>Tjk8-pm+4ACrJfVdbX9uN=16*Js_8z8>I{zI0I1m#gSp zMJqrP5x*If+E>YCR(-PE9vgRo(zhCX(zgke^z8zr`f?Do6f^_xPBQ1O0C89`ZSSe% z=Ymi2%RotfoubSAPEg_W{&Nk& zIfy?6O5>mYFB?Bx?1!~|lzbBI?2&vbDA}2wX0T`qBn}Q}F+#8hYbp|NapAt~=(^5s(sQ8_V9#!#d zvBW1Tnhu%^x%HrA&jC=8pR44!nhR>qpC1?(duI0lW#=;R$-Z3*7r#W>)diI7Nmn#i z(YcCNfKs{X^$iy*t4tfA0b%{f9skKu>{^{*W}aF!>}GGz)YSXl;%k z>fd}&?CfNYQ0Z*FLE5zkl+rn(=qW`TEtByb6irh!N7107%M@J)O8(dnN_pyWV+=b6 zs{f-pf%+6XN~NE0lU(QM{4M7bpZ;C>B~HP0!HF_&FfTZ-#5>hj!0rhPzaADo9u_{Q zt5tq*Sa?QQczIa(g|P5fVd47StonP0g#%&Xm0{r>Vc~DX!n?a$_5U0e{%ImkaC*JN z16ls^>AvEWlv%;4WpI}-e=4~xKhN)HsguGm#2GW~Qg42c6@mwm5+OZxR=Kxy-qhLN zQeUAjA4&qnQw#Efd29ipG9i_XVi*!AE(?~H=Lgfh{t|C#YG#@@-=9|s_-ya^{8F#C zxP5>2Y*dMfzT$$wobj;J3+#!g*z6+jOs~uxu$?ceq9r4WOUi>VHRzoigxsZ3<+1_F zF3l@0^XCNvrGP&W6>iG#g+A{b;15T|X9Q3V-if7oCGZ!}aTixH6Xc=tvcY*IG%Bjl z_~N{hvZ4TG^_r-_ti0)7sTR;JQK4zRJbz$%2>ex4FzFpr>hl&;hfczm3d3i zj*)6%R4FvrfZva_18Bg3QgSE>t%xQxz9_H2TROC`5FLo}<7-vLj}MfW=2N5pEt*8; zh+-ID=FKFp4=VNML7?lDDBc@u@?M6oESOaqKvN6Ov+11rC-i4?Yo^Q8ZIPCjYNo~1 zp^=tamz-|C%v~L6%&eJ4YbQvGme)*?sVt~_BuyXJOp~SKBt5OCp02Y(T`H;b)l8k< z*^-J)HB(`9!=&W*nkg}N(4?k+ZjHPX)^(Gnt81nyqEjbbdupc3RExs9d(x`q)hMqf zt;Rq=`Yt|weZ~+$3fKNO3dP_-`i`Eqz7aOV3Tf^9ZS(NZkuH zQWri*ktTP3O)_fMB!@53HL6CsA_g{6b*oubn%D0QdZSIPcRIqWISL+kRFr8N=`i%R z#{P0>`foANIYpBO%HwE96`7{-5NR!R1Ujc>(m-i#a8zMls+dPjr2C1ZkaN1G&cv*Z zY^dvXa#^NzoJG>9j#%fUtx71xB1bLeT&wlUDo3z$lBV41!}@EEYBDWDH!}INBh)!X ziw??Ti$X`Qnyd>A@klnyQNlS{J5`kWd`DfG`iuZ6ZgfOBr>KilDjzw@XBv|Rq*H6U zlP{dpF%(cr-5fP!nr9YB>k>z#b6REzI)svw(Z z6;QHw!C*&i5f&xsiNH9=cvm(*;9KP zdmX`!35RQ;H2-u|V@8MeN7~J(wznhoP`cwB6-7)&;pHWcXvfS(sG(Hpw$j+a^McsD zDb1UglCr=Eutt7lZJc*H_G!GO`mVCgP7Tc22Po}U>)Zc%Gwnp3O*3^0s0-MdCfnkR ztxE4k*v1~y3>KD53Rs1{ML1H(*%FgBvf+UetGafx?9_$LjXwj(?2WQgJ0WKq!sf}H z%B<=hM>sM|mi{1YQ$1)^a0=l_1Cq31>^p^W~2rYxYUbLOWd%ofMjMlSNj^ zhY^mn+u4fnO=|K*!D6eC##6796!b=*BZ`9oOV1~!E^_9;CSC>E@puqW zJe@jF`HQ_qv1#6EN3=7N8HM_ z6*foOwOI3-$sx~+oDBO9bniSZ-Lk`UFuTc(4*sl?*-=&Zc2ez7Ic-;CY^9Ty$_%ts z=ir6!{(mIWV|4#MOPO2SCUSCP~ zXTMZM)^_R2#@}2WXW8m-@Kx~tO!MtdnoX`UFI{Qb-JkvHBxP4EBE%gs*|?$_?yIWO zUQS9K@~565u{)gPD$Ai#;E>0y|2JwsbW&@|WyB=AKkIW#H9Q_E?~uof|4+2u3$2#3 zbPG%&wmmBMGjNS_bUvJr%PY?JvKwzj_Ok*$978Kj9V^e=iMgYSV;cc5r6SJn(P~B< z+;iRL#4HQ4w^xKQeZ{^YPHf=>&(LBV1@y9}Yr+tvYR`pE@s+WkJ_}>RW}F+$G!6&; zT^RzWlS=c_=!78sTj8dYn{;Y(LMh9f&7GN7!d5to6?k#(Ffh+S@YyJWzOuY&ey>bnLJ5vEBKw~@SoHyT#W0VEr)RsdcMFJ@^qZ>7**iR)+ z-VG(y-*10=nO6wRm@z0*q+MJlL|z05QdB|pH`M%>Vpdd#cUAH24O_7toI+lks1d> zEz_(}n`0kVTjI}ZOXTJ`T4if2`@XsYx8NvtUDf_2K)uWi*iXMdZy2C z;ZVLqs_Ze&zPyRExm~-OLFe7ft%@Vh_2?q7O(tZL z5t(Dhq6_-UGBM`N#DG)4w2G(>^p%bC&I|YzyvL04>({;1M+Ngny(bTq_*{j12R-r>_M94+9P*hCde{M^{Hw$E zIlyL^%2UVw>VTc8*Lxk<>^3`}g!&IS&}b^-Y_X{I*6v}h11zEz>o(luAYju(bdjA7 zB9RSHm#DX#+w4gXMXaS?7Tu?5GK=}@Dw0&=n53-R?RH`zuLT1oLkp&RFU<3od)ec_ z>f&^^n`R=ZsjTA)BbqjvF-)?qci5>-Ntt8ZI$=c)7+LSwy$)qUR39<85 z+8YuAWI6yW_2pd$P{5ctsYe3|ciN{HHg~$r877)}Sa^jES0~g!{^nhF>OyuDl=xWN)pn4S6yl9?;?ezz;5;_Vi7&h7Ay_m_ z50uVh{BHX+kgL$bZHFx;WGb!H)YT+4)tiQOMeTd+6o-VY6Fc+#giW=T#M(KsO|pg6 zz^<(Z_GMdaRjhA+Z`6E8=0PcC_ph-NOi789V0#^)p@sTk2Y`*PGuGNA8_H>|$gX*BjLJ zD8SW@0IB|YE58tPY4({lE|@pN%a)F@m?5X|{jw~P3qqM-mpF2+bmY8Z}(p+z-SpFBVi2y`CxUDe9>O)w+eysKkTXonB z$qtMQ1jH39cBMTC6IEPBiPEGgLfYHeCW88;*{jX`3q_Hh1Ot!1e+`J*IxPCoW(O|ADZLn=zQ_ zejZ(7i&zjL#R64ER#X}JwmmX3@l#a=Qq{W_ucVW&ab0->XB}oEhvo+=rUN*(J&ySt zjo$Cno%0_kIT}TY*wG8Ehm2_nt2fs<<&>0}K3qN=7RWCzW4)pR%Oa|_xHjtdvYcwl ziIvdes6sF&7?>H^nuY{smIR7v+4@k87&pYBC_81YsEhVMYi>HQo@qm1a*}i{Nu(ii9D`KN+Ea|VYVuh>(M;26;yReF4%{=p+ru@>=lz+Wad21yJGylia6Q|npgs3g_ zQG-<6J*a~V&E^!1W1LuQ;I%KTI|1-RzPrTsWl0OdAf{>W+hME)hAP$<*N2TD4P2pQ zSWXzv+?{Q5;$g>J!{u!Wr6pf!!+O*}WoelnhU$xa;B3IRxEN#DV>8P9Rtdm5t~@F# zEq&=C8(S)^a?uIcozz3$7QoIlo>PvaZFM%n8CZsAuoC2V2F=Wyo23-8o1?&d#q<^+ z_M|gJw~M{!j3JZQKhAtSg2jRwZ#ZI)<~cfmDu*)XljtZ@-Wp7crjPO_U6mFUr@KmG zS2$y_L22_2CAOv767N@Aq6rN=cB!LX*hRBJ)fJ#V_DnGiq7R^4yqL4Uu`3rjSLjJw zT(m4V-lCS0g0o@bjcQ(2im6ltdqG$XyRAy7%~e9Z2b8|Yn#?lFY|;-;{+seDfXE?d z;H}N_OD!9*J=fezV#Z7AXd_r`4%2Ck;So&Jc;b&>mf?VrIGHdc;187QQ}sI{aQVcR z5B+q|3l5-svP=hk5dreii?(2?j;K=@o*SFldRYVr4KBwY`{AUZ{J8uBlnrhLbhr3HfLdb&*x7fQhMdsV-O&_Fucu5^!x63m6r*RH znja{^Hi8XTJUXAaDpITf4^H!orWT1;@UnJyg_0xnDJe=n1=x;orf!emj#(YW3nOS> z2gfBx!^o5rbBH}#L%BA0!&It2x(_-e7|tlb{3qz8)Vi@%I*@{PV4;PWtlvG+be7Y$ z1NJfn^l?BPE1fxmVcG3;Zt2P86KKM)!wfR>M<9 zDaa^P$wHiy6VBQZ(xZyVTvj2}T%3n-EYSsm!+s87YGjepl6ha0l+fQ}Cd+EC14gtl z$CS+FV`+i&t1TU$3q%gtrz9w6Ge*tn$Cf;ZXm!$3uTMBCxz9ej zHN3&ad&@(a3tV+c|j-h3&F z2I~4S{iNGk<)vj3>*$=Yk zjOGoNctas;8mG#P)`%U!A5JWz8V8Ue(dn&>CZ+bXiSwRlS6agy{2u zsySBGXqrvX>CdTE6_r&Z3wH*+LAqF~EBF!$DzVw99FbL$4WS-Jjx1HRJv1c}#c%1t zf1+Nls(Ng!Sxy}rStAFhs%olwr4K1*&7P@2#w*F2(S9vnxf4lMNzy1@-8bRI&Kgq> zURA%CCO`dH86>M+(v>6?%5Z4X+u&K)=iKFrQvlS9W(LZF6Uwj?`~n23ZI-G338g&Y zIVg&p-MwatR`*~QKM$lnJ=7O{?0JffluzAeMC-G?ffyg1Gg&0=Ax|jw&Mm>FH7;aoK_K;?oywHiq!(cUQ$&P|EfAw>6Tt zPVHB0uc8g%4FLU~VM*N`HP>RbXA5bfj)(fzl$4^pvhhWw<;64DKRP3|lBQtvvQ_Vm zO0l_y&D>{Rj#khTq_-D24=H1RVOn)M%|<1C~qR@-Q!YRYR&5)UJB@XCz_=ToVr-HzlL%@)lja%foOI*nmOma8i~<5 zrX{|JCqLGnoXy#t4bXam>b(i_r70;Xc-Z7EEza|g^A-*XloyLxAvRm>qS>=mSD;=d z!v2Pcb3+f!Ly@8}YhleB)yKeL zG&%BEzyDt4CDBxd=gBUcS3-e40qEbKqvd!G3>x;%KOf#H2v_YrsEpy@2cvu zYG7BK``_7cPgQk=*-)pMQ7qW|9%l-ol$yj_xQ&`yg4+?CgB>$9VWNo*d%q3!gYtb% z>UCa~bXRKk!YahxO^oIn(JzYIbRyAn&Z`1gwjDOH8ra)`J*{zeOXZ1C20}fy$jt}Q zgzUOgh}%W8la(v7bSP4Z5yj3)isIMsF%(vWN3oP>3LN_{XmaGS$A=p~R8LZu#$3KKb9Pd>1OK zv^@~sU+P8-mq}89ozbZV zLLF)%R16{GXbg2fq3?pQ*Pv`si(;l@7oC#g$YOoE>()5dDf{fB78`kb>@>7k^L|l}n%g6N)b)ZY zYOr*bMqVDMk-Rk*V|&)b25EmrubRk;`o=zotYbMkcCvWzqMlpGqAoM~W_Eq=C>o7E z%`$d;1DQ(3T0_!OkEZmgo}|_5by6%7`@;xUVuoYYR_6k?q#7Fg_m8s0VcO3zoY$YN z>8G1u%+i$VxPcbcI-j*1q>DHfq_o;neU;K*2V0a@T?2c6NTtbI%1kA=VJK&`-)v-> zc{9v5uo0P2Dv*43GpL||-pWclgshb~Uj9;AbGG#=&fb~{Ve?%u*>PT;6G4Qfh-0EVPI4G^NPXb|Ug*GVZ_lX5usH^ae9lTxO$M$Cc3w zb|mihxlwSYcjx>S4QIU@XgG+)&x@knQL0~!q!vVzitwg7%>8{$gs76N#(x)^v#SMT zMVx(ei8Y^g-$}3*sU3nfnEIcnA^T>F^XGHAB(MRiINPu^T(SOf0BrplFGxBGn3^?+ zS07}0gGB-PZrhZUK|y>NXd3R%S-Q&yudAYnSQ$3IzKUpTulgN{$pxjcm}Kp5aL$xb z!&O0Ff3q{#Tse$yJg_6x7a`Br6Wzy_H(Ie@ZsqK9bRlN_^kFUB4L06f`hYDUbiW4^ z=fgm#QqkXeMOutALi(ZXI#=7Jg*z(4%Kd&4DG8JY#l@Ib*V-X%E?(W>1f(2@SH}Ni zi?Fn9N}9C{tAf%Ik+^|X#4WbPg}a(PRyEjK6jiva%}u4pssyv%RvItr!^2bBu=St1 z*ozP2B41G+UhA%32`>wjm*$5q%&|wp`9;10?-<-c@!^padl>Ao7vl5--bHFwqkqMb zUJH@u_XqOXf(?}+^-W|vMNWOJGVlVGDtoF@C|;F{_jf$KG4d_qM;{N*9G)zX!}&>X zX|{Nc6nkV-I6}U9#0)B9IZuV7N=m&Ycop5?^1?!T<8>Nc4&M}k5_iViYz`M*VD=_T&h*JWybE0QE9#e{C9o#`bH+?!6+0z1uQ|&6=H8>ca=v zrsn6B1@%55IUy$Ww4gn^9wGT)*;o?e)R{P+Q9g6#Jn`mR^zYX5!<|||N>w^MelH6q zj#)oQN zN!4Za`uuh0DkmeW!z*2?ETEPxmvn_h#GK|WidARj^h0qox|xuAr`?aOrRd0Gbw49I z(*Nqz3{JG*P1eDA<9*XHnv}667ubRE{&ENWf}VDG`ChFvdfD+X`;f)Wmi4jYqbI?) z2^8d@Eo5e1=?q*6!+G+?DRwHT@0VwY*fq8Qx}_^`_h$FCQveh2B^2=nH=iHp*5&gD zc9|_$jz`120nC8#a^?s7*=d}v*iusg8{I#wdrloI-djK~&Bv#)!Hq03nUI_%(2MoG ztnm<(xVW7VdikmSL~uZwokF-F(_2=}B);q=W9PyDbi7g;Qri?_8NM3pk;MmF7*SkD)4D z|IxOo7J2h$=nH@e;#)Cd8PGG!4m}N*O+xkifGtGkR;GzOPcO}z$vzxsr>s=W?qn@y zdD(Ul`4(oH(@YTWxj6pZ`Ro-OW9?GGEzLr968aqu84{K6J_lf4kglwnfL(5}*Qm0C z7qtv3E})l+l$Uy02Il%QhpG*Vc{;t zZR{@~%&E$C6()y~k*pbZfFh&qv3;w7z10C5nHGDk>QM5=0pX2q9Xhg8KQngA*9;S} z;d+lpPAJSP_Xk7!U1d|nxAVHCvBQ-^RsAf`MLHj?RJ(Z73l65yDIX+K94>*j=bbAK zwA|**dLf*JMnJ1z4C10;ejm=4JqooDJ?CuvH(|C)jGiS6_Q!B6&Ul1;$jU ze&ocGqRqzMoXRm)M>Q0VsxzVs`>vR?HU%gf{hJk*`ZdbR(Z7lzU+1YW56bO9;?12p zW|b8a%0Du=FM<_b#l-t~4EsXDs8)Bve3R)BRq27~e5+S*v>lsLC!XnQRG%!o(4(@- zW5$G69W!r1rV*0W#t37;F>^(gF>}p%78S;psaF>>Gr}dJvP45zoial>8sBvHm_?nn2RT&(c`G zsuUdY@?X7q#!W|-Or3aSIzBA;eEGhhwdr3_WjRZ4aB-z#HifsdDng-h98*+TjzUce zMS2l@9Xh_#^QaR1o23)ua5M$huC1{m*VwG?quG#Fm<=IC4rgz*ZMF5znTww)bRL;=Di`Dsj8lcv?I-${AIL zMx{Hj+!?07%~gl4a)#oY4%AY0^buz?St?$%s$=W;9P_T5Yr%JN#@ken zl~K{5+R^4xMMxUxM4hO)XLPq^WS zwS5@FV00bXVR}iR#RpGCF!S_RN9wig!wAT1pLijq4*1swAYW#wBiho4ZZSc=xl-qk zis0MS$EWQ;p=x+P4TF{>Las(nzcCQbjqvkxl|rme?kt_$pf9`VUB)u-!bInn3)(J0 zZmmSbR8ya;1RBaJYSmeLDz!v94Q{Co%cEHx;iN{@6tKDsH-<3N9{y!twj6sHL$Pjl zc;%0+zixh)f=8vq~pW$?9OONyq_*_9<~-~xi_AUg}xLGtyYDsE>^6LCeEZPp`Uiu z2b~GgBy1|qOO@b5EkW}~F~!^(N7w<4nj2F1b5(F?-I-_&5k64*A{yXD)c_mK&ub^8 z*Mx{PW>p7mBtrY5$HgrFncV}}?^trRr?KBu0qstrTIMw+RT8i?P&=LMmj6i4lU33~ zv!XyTz7aVBXBqT*da!z;8F|yZeqHvT>dC54hU(IZ;adxtq2~)IEczmJpg1KZWOTZ3 zdXXRhO)ttHStSiNjqN=MMozuY3f~N{H7L}?Fe&ER0Syn?^)c zf1*ZW);j-%82&f*9mL+py!~sMR$J=4asJsf0CkHfVgnXdzjX#%TmzZ=qsX8Wrtf18 z!FwL@z8dxU6ulPhu7aRAP*cEui~_Z(Bo{^0EkHZW5y=+`Aui+X9Pu9jU=1OO)=O)5+U8?}Hx@?GO8GjuaV%?+15o7&nm#x#pQy$v%wg63T6AyYK z0CH2_BxCH`nD3&o?K2%93D7~0UcC<=#J-8fOWam(Fl z>}fnZT29Zvvhm86!Fi>|K{8uMe&hf(xiX0!XxV7PcRRw9V8g3{Ep)(|Yvt3GVc^z6 zdRi7?ip^uSSycpDUHdWSEG{;N#IZeU7thDy-*XfI}nnjt?JhJ+M;_IBNxHeT%(ebkRf_si&Lnfb`>#mX0ZQz|hgwywK;Amph<> zUUAsYyvP5X1GG$>zoSDadeVoZBB>VX$Xd7BXW3lGQk^m3wd_G>XsDjGLlrRBGrjmD zYFf7{0N< z&fIPOuD8&O!Kn@7XXZC_u{NA1BNGUp#R<^npR^+AsxSV=5i9OH;PJ1{;Jq#+rFF#L z25T=wvNQ~Yw0e=4S!*qrYSKDtC219ZKM%-uG15sF>=c{(zpjad@IT-x9^G0d%fG#L)imOsN;oVNBY7faA8P=MQ+ zR@9%dgqiF5+c74J@@=#3xOV&@kRgHZDneD=0>`&+0nx7aui-%P%hx(5ih#O*ZJ{x%tM zv*vvSa3wW&3B2z1X^ozCPJGw!64-x%5MbjVHvje1c zoA%?u9DNYKIsJ+Il$h???%P|tfcX-kL^8Y;9|#5QM+z;}xkz9uK9r(IkqMkS8$J5q zRBVb(BTw)l6m9(J3;l88&qy$k#t4wM@$M{;cBGyI#J- zVJ75Ur=ad(vYCsHLi`~|NkF{2UMu@ z4TSEt-PZsx=nX10>cArbKaB+-SD5gl4q(Y}E8`u8BvO1Lk42`rt5pleI-o_dW-DS| z0qJnlCe-}3G2heg^^FjJU(DO|yZePPtl0xGjUd)x-~+%s7?VK1r(le1wm*iNafieo z@%wG5=flJJ{ca2y*fNd)UcVl3$?KGEyt^TSiS)D6$d_PSv;DO%r8IoV zQEjqZra`=B?+O;r0>3_ixGb2id>Mr4AH&YoZutXsQv3B! z^po21417XXd!%U$YoU!NS=O-Im2PBa#VX3oi$1tsJ2!zc^K3R%$wx1XL1v~-K!&xO zhf!vp&E&|;<1HyOErG194Y-{nGdt#TWah@tC^L8CZ#^vs_%pQ?H*;jB)-n{Ic9GkK z%xuLt-#{xE$yr0zF!^2bI4~0mij+UO+R^ z#@40wx(BllxAy3Rm>Fx2o=MhqIYrJXMoew(D^$HYtaEvO8B4yDQ+1{0)rwQiOdd%U zlRpgY^~EoAi6TBjgkB59%Qm5ynS%L+!AyfvU2=@nQ%~0zN6kQIW(j6%gGrKcX7RBC zF~C5O!MgZ3!OSt3pTcW8bG%^AGniee87q^s1#^YLq&`Du77FH52GfleiVomF31i8h z4@FN)O_uK?z|G_@@NPocCV$Z+30)NGE&tBU+u9y-NA~}U!h(-@?3pIHR%oHgUnX@z zK_g?ljhVLv=M9p-+FijIb@6)FMgYu*I_z%$2y*i4h{L`kDGbVp?)QQe-$3Oi1gkx^Accv@(*{tqQk7JT5 zI^v0Dp6I0i%thZKcx7gu=%oMp7i$mEN#7j7`{&xrILk&0=Z_LkR0GzF@5U@UIfkEc zmCE4jV9Ey2iSe*D2l?Cf-Hp)01oQdFQCYW%Wau@5RS2fYMk#3hM|_^3Bc6 zWq2^2T$_JijuDrtMT(i38wbfce9E;-a-x~Jbvo>+%a>k+PJtwYX6CPxz&wMW!p%m( zyv5AC0re=k9)IxyNRi}5GxO6lFwf+J%T=0hnwfhC!P>L!p;}EZzIGba#_{9OE+kuY=6-|O zhkw5ZYMb-&mN4iCVu;!!`?5Z~&lTXd;O>6l)@xwp_Ts|c1fF@5%1javaiY8G#f7#ASPV(WLzjto4$+ar(BZXiFcNc%qx^$sZW4`pMtIdA<13Hx#d7 zL&G4^h4$ty94!!iXeZ(+F9=>AK1Jt^G|7qXHHB*xn1xVZQD~AAyuN&j&RcAf6Wwbn zzZBQ8MgMw_Nlx(k@kHDr7QE+7a-!=Uz>i$brQ_Z=$qC*--sNpI5&YRCC%WE2{Pkhz zm#ObPOEdB(y51rDcT{K5_qGq`rSXH?6>k{v#4y;4i*9)+|GI9Bv}Kw}PVk2D?UPPYBKdahU7Xy=Cwt|WBe@4g+viS)Din*U+?sb$kJ(C|`hAh@*y zZ-c4TnE;El3oy2Ftv(hTF73+YSgdG!AHh};>)3q&1(Nx9gw-ymnHm2ESl0396U4cI zH#i${Z@fXAE%?hd|En}-n~1+LtS>D9xb`bgt$Pj4qbIvQ1-u`98$!!*T?}I|OFQ#? z%%!y{t{$+&)y941vMWu&+Gjq69X9O}*YoIWTy5(0Z-UN7o9ZG@x_Et8o4EclClHgX zV$PzND==JXc`D{iiaB~8luT1G^(bb><%r2wF=tRr@#oM}AY;xzT5)F{xej^?T{}e5 z4cUOfy@B|RKa9@*ZNzaturI|Fx$@$%*Mpq#7(TF08Wj6n4_)TcqdFHb?NZnKLJNx- z_$-Q6o9TLeDQAC>mKffOQ}JjQe!CFCtj6d_#V^dhH-&aH zc)Jj@KIx`u<;*eQUQ&P=MBS?pGdzTl2`j+Vc6Ag0UwBt8k@^)N_d4uA3Jup80AbxA z{x)V)nzt@ycKktuNnoTeYFOdIt7Bxh^fCeB$P(}l4~Svf^#1p%Zs`*<@3EJuw9m~} zi}63rJPi_>FN?MrXozjxG^BG7{}Hdg&@Npy6UKC>c;PfzfZh4kKfzM}#b01qMX&3LqwiLfDjM<%wieB>a$I9r(2_Q2&h?kMz ztn`K$Y4?N)4&pr@Ln)Qsj%71H5@NzbG~v{O2aYf%mkHRf33*R6*7EgO$BKzUJn=+s zAt!jV|H2lqkn3%hyXi}$HK)yYN@upg8^ljy7ek1Co}p-$9gA1fgr$Z| zcm8TW=)3&ZeArH<@oBP&N@DT0^-OB; z8X5!uHkM9j+LCPSH;6v}c0)r4WL6j={~TF}x})&dRNToW{#66t+Zn&KSAoL+YT#)L z(Lw+9M=(nf_Oxvl@=1=f{$(Yz)tEKGz>||5^xyQzElU5@2A&+^fUnqayYkP|2A)>Z z4)|MrLsfpiH1IUaIN+CmTCDV+i_Txw0kLH+GC}J!DQPZ*6_ckap`nJ5J#=LS)*r&3 zB?dIqBgC1tu9}N^tAO5RK&c~+G+_1h2NZNi7*urJs;=CucAqBl>e@_LC zZys`kNZa~HuZC-$gnNXoW253NiQISVS1OSkDi^XyuG{rLmESk2C}|OY=$BrqlAeWa zZB@wDj0wEmA3ev9w7?ul$PM;XwJrD4!Tz0uRY&=JdTVe4!I8eyw|zL@yA(z@1wM%XH# zFHNeahW9-NG{RN^-OlDHXZ>zKBWztc8Gd~^1+O2Z{eIp&A>;vJtIE7Uz0wB#wm=Or zP{K?zYUl5mA_x$IS-HoT5Ozwh8;a!iP^AD07Me_4@f(&zF7I1Wu;ySc8rJ`EA5cA4t=6He z8ai2L^n{8ji*{=w2uwELb0-l&fe_`?VLsjjNfz=vEbyK<#}9gY%cUo6IsjnIFs zfhVmnU`BsTe~$c%HJkvf4+9M5Gw~fl?aQ|3DGhtA0FfBfyl^9`^;hg&#wMb5@*k}z z0H$;W;OkDu6(Fun$T7;0cfWw8M<0KbOAS4(06m?ZU4Z)b%Wu@)RgQr&S5txd?nRmc zQzKh!pv=`&ppM;n0tiB_H&DkHqJ&iQ5vcFSVK5Y^y$0%t3H1&Z{n`&7U8QuLFi>W@ z1nS4;i_~26+{BO*%ytRX@ws>uCsG_}pv-m&)K4uosT2zhl-aJ6AE0=D*?+I9FSi&d za=YB_qEt{qAHfmYi9fDW&}~tmw6mi9wsnB2GzUXasG;2x?f0gyC^aX{Jlg5dPCly7 zLE_r#`G;I44#sGIF43ow9n8F|FGqTRJ$i@InQrE7%>wW5hp1*q9M0#JW53Jc4h=)wQxIi@IPh*4>siYVPWrsj$d?6}~K;#$*GAWe#P@=NJD(ty@d%1E$mL1lpwo0HGZ-`ltP(I&IKzUFY63-j-Q65}xU`4jf zc@x;?{H|}5(VrODQ1Zq$lO?My_%1ws71q=}Ka^D}fjIF;c~7L!lFv<5miG+9Mz}D6 z_dTQvWSW5$un4`_n!>YRVZ%*f*a*FCcsZbUdE0-MPHT&isNDhwN8Lp#3d zXQlVd_94Auz$U$Dz@na=$M=m^DmzT?K2_ZIT7h~$J_2+l&SFm%i{b$}5>BavSL{10tcBza#dIxgaGlYORJ^IuJ^T!Wx z)_O3QTFN62^LIL~)Am8cTSc9jbArrM*0d6F~HWT1>H#Cgq zKVUyYOanI(Ak@5(i_g!7hAe)cPtA|_1E7kH&a?rMjDsxNSl$TZhfwhospvJ`Fk%pP z&@>DX*bEWPv1!LpQ!uCWHgch5^TV)6zy{dEc3c39C-B27REsGzVCI~+>4ron@im%S z*DNKN(QIJ1KwQL8+vNJ-aVtXa&;)EUKXF_+;C%yjd?7Na`Z58#gf~P!sr>oxfEi1E zJ-J-IL0^tF?_>s8)a3J*|59p(gisNQ74ikB7$Pwrp#;F(T?vye<l7gQ3*qqg7^NC-p2Xfcj z!@hVNusM9xI+dp<>|yUcgNiwq|BTtIc=UJB9`?`zXq(6DV^2aHqx{z%c3l~o%Vm78 zn={(_q;V43!?n=vSB^ZBb-rO-w#58A^p8Z+$*ej$!k z&>={^!U}`Sn&Sbpwt&A^n=x@rbZZ3S!~M{)kiY3t&G=J7e7g|Z;zE0-P$XcB`0`o` zR;z0W7TPM+VT<|EKU6dBXuzlt^^z3YuHxglnoeXJu+YY?u5Ah5fC3kN$K?hrv>&a* zuI5c~+*ZKuGhm@@XdQM9zYtFq1#Gtg3+& z0&pW=)kFavC4kvq0&o-m;ammSLjbd<1mI@=-Vg=&o&aVa2|xvZ3P%luk!N)W!0a6X zxP@a8Bmq4L5RuncZ$n;h<0*fkwo(1P5GZSJ{`&JkEa%S*SBvMl5r{csP=9adbM?)E zRS}4XJ3+?^{^yx0m2DA-Y#h$g?%-uq>&cE!A`m;MR95nRI58>^RFqarMP63%lwN8x zptXTG4!tN@k(ax8?{O-Xv;W^g)g{SrShABP&&lQbSu9f41l<5LO$XSm{MbwM!{KX$t%~=zH5Vday z|6{d6yc~fLHRol%??F{Bjzl0t{d|Sje@EF-t5>)kqHgWvC0{EYNf8KL`U-JV1VUK)249V`6*@LWAVhBW@FBmeyu1^E5P8|l z*K*a8PDCI!Os&PV_jv&(h2o)igWh`SqlyaV2Ye6;jpoC=6EQ`hfjRJ5^jZgbJhsOK zbCkjC&2d+lX&>_C(_^ICB15fWe#FZ$aTStR8k-2|G??W6lZ zKElEr1bZIZ*Zeum$HZXK6NtFi?-1>H(Q3@Dj`EvsVeCCjX83rL)}6HWHZXtSO9!eY zNPq<2k%B>NNNPXw?4z7*!qz)qW(cYt>UY^gJwgoGfBjF2ivH&$KU}2R+nxvn9dy#sH?MFIiC^ZxsYa^Q|gL8Oq>rx99`qyQP5cC>iagaPe!m8U~^Clx*q9; zGQu0?Sh$#&&~ zUO=+fyOJJsu^)lrQi8GJZkkzNK=*&$u|53*aOtlC6P4J3^wZUb;j9bhPqAsw;q;QI ziMLa7v%plBh`Mv?N@GXNz@r!e*b)Kw7|Z+E(O1n=8r}&3pq*|Y#g1Qpsan_lVCGR9 zik-9%tH=42Uj2SZd9jglI$t>pH#G9E&Q&R=^WEP2|nA7CZgjas~DoymUSrlge1%=5`^?8JO6`URwIHis;T)qAtezdyQ6_p9o1C1%Ncx zVwWX$=H!Q!*a!BgtRg5cexJ@c)6DR1d(_4T$Zg=U6+jTG4IaXo+#%~%I$zris9Al^ zRj71+y9+)kJu4Wpd}$U^3+}=3II1PQ(5eSU&$<$T@?-jL!?h8BA*c+ov!A$KEw$H2 z0G`A7=-4?IV4F)Mu{#Wq&Tm5x5W#|4AveE>50A~(?$^{>trSdsC4A6s5!|)b+WqUka7gn0pvk?>(@16spL^?=1 z+)aPu#or6=#oc0e$KH(x;#08{jdp@VmK57Dg(CTLl$Q7i3RU!u zBUn4m&LioQ2A~J{xG5(9WBRUB0Hs<;!=|Oc4|lhQXrlZ{e?4P^taC~&Y=<tn-bv zTGF~CUR?cl?L!mml0^5yU6U8%OIwBYP}CRnjfJph>4b?mlP%6fd#+!Ec--+WWS$#T zU2Q=pqCLx~Zs9<53p%c`AUR(E$E1{=N3|j1ItXDNA@h_6JErvQ>fL? zBYPI{;?KAqh4aXs#oQ}o=#CuOp6B zAKXLE$xcX~1@=5r@1huKlGgyx8c;{k ziC)i!XE2_VGx;L3dOFeTdF(2f%kMFy35P?(bfVX@aU%_=TS83OTM`F_PqgXC8ReY6 zV<_w{ZaI6N+=Usoxa9nUnJ22^=HdUtog9*@J5lc#+>&wMr(^XiMu`slQ;XY27MNQZnn+mMl`eLc^LgrLFU=LC3N@@88)$J;iL19`XnYz(_il z<@w;xi`B!*0bu}nEX#9n(gF3r(rX3iz%n=|+R+i#8aJxi^g2U0e_IeEATXyLjfiD5M%Lrh`hJua4od zrQqFd=Fwp!&(XGMNrLyRnMa3_Jm0i!rFid|d34;$^X+@>RC;V=D6dqma*v<9faK}8 zmFK%l-&7@>90f{Slb#dZ(Xoo*Cxf8U2g-v2@au-n3NX_Es6rBe-|*N+YPih`&})l8 z{rTD19;RfEd9*@C_@C`&%Nm?iFoW4sH_k` zH$h)__4tX#xp{h6xPunZ0XUl7Z2x4a3DfBtD_A}PN5Xm#oySb z3h)vqth7`K#PDlID&^PP2`GDoA#VP~OG^0@29}D|VuOdj{HTH*41<}q;nMd@D&>C- zm?&c5b!A{I-;75_BKKV~Lrx0S1k)T*3Do98v6>eG6Ab}MS&rWdR)-H-q^w*J1~VsL zm%sUhf<0isMDpg$oWa+$Rj@qulalZ#gTCRMg{nQO6teKXgC8WFSQCRWMO$n($^=6^RUeWxxnwsWeS_MQfGsGqF52 z^tKqFKx-OGN z&_T~0JZ<;{9MTmdWQPa@J$vvZ@&Zh11Y&dqf}TBi+VU&jSBR1b1f7}iB=PHibjdRl zcNmBdslb$H=*)!YeEw;!y8Qg2J&evwc-nKAET=eM+QaC~geRHz-mT6|)EgVhyg5-i zGvVpLYyCgcz64CiD(wHc-{+Yz)_Hjm8G~j@lz0t>F^sXjV=!YId-i=_i%OJ`EfG;F zN@dHE7E7rRMWqFmQYy+)p_Gd7|K0aF&vTwx`mXEy{#{qEXU^|;?sK2}>^oMpWY0uW z!8G185mkfg&$rZ`iS7l{c+W)C9dsWi+-1+i0|nD~&qP#By5n^mkw%kDYYL|Eo{6Yh zv;xzGyiQLCa?_B0yk{aROyA&I3fVL9OFqVNObSHRrkUBgu`i4zT|LA}rglr=J&B&c zZUpIU+~NmkV`d|&4*mY3F3}x4P%1q2qiZ4FBoS4gK83NR5KU&T>L=vgnGw~19(+U7 zRvKE~of%On)Hz4f-ZM0*2XuasKpWD7OEm4Aq51b12rZR1VVX{KE7Q@_&A(4TXpQJP z7TJWBYH0r50zzv{z3S+;V2Gh{8s*zd5tT-jBD&64Y`FRM7w{Ifs3!F7AJ%83Y^EoEy+SXYH zYqX*UO||E@eAulI!Cxl5UPNcw<1XelMZB6B)t)w9#61LP^yps@RAxk|0(PK|m=|Vc zsCuei>u~3{CGjF*)C^jUgGn}3gl8>B;1=}QOeisvo_t1S zOPd-pMMX|6fJM!xF>fJ4d-*7)z)O*CetD1c=l|ny4JXQp3T*Vi)pIAA}vf9mwnNbJmEMS|yXWjUd zf?R32mB0^}c8>at=EK;m7hPl81*V|{@G3ym5t@Ybxx!AByLvKoZ7z&2=^!Tgh0)Y7 zXaE#RmestdujyZR=gt6TNC0jjl-|iV^qs8}dS*U`^gWK#-ub%UuqGcvdKTZ)#_F1J zARj||I47tsCif&e{gQ_fCh5QYNKK|_hF?po;$rknobYh&pS7ug?Iuq6u6js;wqvaD zUBAAEj{*27{sH2gbpzZvJz@?vLX--xih)vvgD3D?g-XTaZk5T`p2HtQL5r0yObm8z>(K)ow1BasW#);qPeSKv0_HrXYL$avWg<>_%&JB|p$GB#2~s z1--Fwoc${XXOb|p@-Yr=MF=Np7;eWjl}|X9 zZgtB;x^ORh#2ih#yI>km4~NIt)7$C;*iYo9Axhk?hVQk*H|uuwjeHF5zJ!a?*mT=! zjWSPPGD8(U)wc;3qX(+nRtpCI^t?kh_ie((iQjG#uv9NMF1q^?EVC1EaS5Q)kbW>@zh~6 zO7TkLs{xJ1YIL{~4MGQ*wi_Usct$*2nd+cVFJH?p3n|gq3MtyjH`JV_2p1? zcuL?Dj!_h4V<+};&EP8?$yB!$1T6`y$NmoKZvV9%{;R|>heTC|k3nQIiPzoo& zHGjdjx6_%L z0GRh{4xknt;+mY>s1Zh-ntcn`ws&wX&8_bvo=??)CDTIGkl|J|AJw%a$Y#&G%iy`E zaBHf^h3WM$ZV7p1U&bfm99aae>1|t9l-$A7bTbIUml%y8aVhFZ- zaCUo`u@4ls?n}hH8%4$HtoS@*pDS#^2QX?6dTDsTy2XaST_(U56nq69pAW3VRO0ub z+jNFe6&o(ws$y}F@rxN;t&ys zisffvKS`Z>H=#!#KQR-PVm&q;y100$pb#D_Xt&gc-K*9aI*|7`9NmOnLrwXc+Q3Jw ze7Ww;OkxoX57O81jj;GETRY@ zyA_%R9+lF5Ll~|Iaabj*+NlLnNhF+Sf~X?5&dYuL=&RnytX@w5q>>P?8SFz{PM<_4 zW5MY6+sS~{5CKySW{D>7U8n)H95VGVGJSR)-=al(Iy~62s*bPt3>ZGyZ1`IdX2h8Y zZ;AXFC!ZZkBVDO(mmlF=jGbX}j3H_zlT~*hJJJRYN4{V~aUU#y9q`=MVb#E?zC426{PT=KE%^VNR zlbYZ4!A7cRh`oy$y*YqjQ}*tr<^zo}24&}^hLE8MDm94i~1YKF08jE)-y z`^cS|H((-9QuB%zke8ZRBE$VR2vtQ~y>=j4xT(2>8)YBLiPs1o68Y7Hh`gN;5eJkm zF?4qZ`4gM_@Y(K0mB{U$kBw&f|0)fNI*g6j`09D!Qxn>K7XVEYA5FXkao*NODKss~hJe zz&+;<{Kzv8R-k_q+p6EN6dVE_G4gFtnQMtS2O~VI1NIf+DV(9B@3pM7;#gQsC`=zV z3RwI%QRhde;~kvh#7r4D?`jE~#%#nvENVfU%YYuF$(ToFEp2)ZA;eB#pV((DXlXiC zR88U8w3pGTjLKs=p!9EUTM6YTr***MWpSHM_yru^XjuvI^f%T>Rw3itL_>Yzdth^3 z!cDXeJ``HXpe^YyEbAxSLf7$+O$`{4fDvY`&hS@*W`C}-mQ8&^>aTEc#6jj9EWUJ5lEVXHbxUbSgU0b~TcomFZ<58n&}6yoR{F+3gS=IRiY zMK@wJg}v{9)vH5{s)EsyuJ(aiUFg15+>}%pRuJVKY#d4GLp^ZqolT8Bis&q}LoMlE z#6Dp>MTIz^z8-}Q8RQ={ZbG@6CX8oQAMz+`nZiFVcUr>E|n|@)MXv;qcXFf7}%3Jg}CcSJbGu%x~!*Puh+n%hH z&D7&JCf4+bRu_sM0Gr@Y9u`^VN=~aqIelR4{xOm-dKhjM0aCVz`y|g@)z%tZC*TqT zE`&@}0W30Qn}BcT292&RZMV=){}(M+cn5_WJHm^(mm_k~jtDKBhbC`UY2A(qqpM+f znL-JwMV;6xzfmQmA>HlqbZw<(v=aWI&RuP5DVO9YJW5b(pcxd{{b)cj-Y^VFaLp(d zcpJ0jBI6sw(36)uLQc3jPzJe%b0b~$80d`(SS#==7F#$U(hVcMT0xC-6Y2+IA5*mg z)nQN~tw+cS%>p@?n--t#jZfUAehk^LP2exAg3Ul}N282S4dw(6JwX;GsW1rg`&=;* zChHaW{a@{Kjo+t$g9E9Uq8Fcg{XThiE@5=wiJH2Z`@s+LST|u};O=1>yzU3Nx07&B z;EN)bY9QlAc}8d;x4@$FC@!Irz5OxGSY{YHa|`2EyXj*(`|mIeow<3^ zFa_~^n{ekNrvH75_-8RVZNQgC!`-Y6p33B?LpI%a&by$t@u_$&{1PT!g{+I zCO;*V6S*0=q9(%7$YIzi+#+K=Gx(z>BHy!rcvc5`du|${CX6raAhz9$ppJ&&j~dT( zC0w^Nn;?7LYbeqv8lJklE1|km3@xLGd(Lo$rlTt2nmDOwa)frM09vm2vWJu*boGpu zdp(Z_f22kDQ0Ki#I?}g{^K2tJ=-eo@Y0g(~YIAqUL(3Pfg-)qYbk#Z8aK!{V`|>ni z!dhq6U@dZ`p@}s9fz5@s-DzA(OWSQ|(!tP-kDMa!1ym(}CO1R%L)4C}gwsyqXl=$a zFuSkdD+_9q^OShPHD`Wxty}B=;^wkD`%0NbQ5Cffc-}n+twWuHd)gIRTmj~EE zxJ{yd->MV!XhB?mGKhx`QRS9s4^b1m_)0R!k3YTxq7H_&BJ~R5=F@y~R4le~N}lZZ zUmje|ABpPqjaKBbg1GrK-xBpIDsd71Zb2SQ=TO_`&8Yt9$%}_S3-Tc9>+CGHc`qt) zoX!ikpykzh!Pv(8a^vu6)P@`#LYIO(a9==mXrv3}<^|6bGBVp4U1^FAeNfIO}H<5 z@oLRIVz``@CH7E8Xmg@tW@*~LhGqU)1PQ=;{v!)P-rC!ol4U27-(pI1uMS< z1uGT$0MFD(JmwjiUqPnfO5)VnTG}>4%cr1-Y*?t~O_i>%v;w$LP(-$}*JB}2 zM6Nb8zk=z9q2SU&hp-SUw1bA`SCDBbo$Ll!o)Fq)L(8Y2h!|(*TV?^Q3vp@Svb1(iES5=Gb-wojzd)Nl8Lm33@D+exPgMHH}z4n@J z7)A#+5+2nQ9d_CldQcK0-&jF~YK&n-`g+OLtlRiyYnO+@y?N+h}52W z?cisL-`&As-h}rm{s{Lip1Z0$lPC&H+6kXJf9W%P2R#Cmm~avS9T|frkJ~o-!^5OC zbeqJ|I}r7vfraP_iY7NA3MPjrRyu91042V=ekbH4gP@dFAX>`75b+|dOa_{h2Th_f zwV~p`o^BO!B}>D{%Vb;b`#qo>18~Qf z(%AD<;dIQ&Y1nFpcV5rNa2`g6!CSJsf@D?rHRjKyh+_TwVF39GUcukku_Wj@g?2XR zi=_>EUZE2V8r{^O7Zke4p!_N<3Loz{tMGfwmrLN14=s$odj$uy-2G`kp+fx*2n zJ~s?jA2NjTM+{$$B#gfeLstShQ?Ru8XUv`-bSO7Y^Bb03a4QDUlepHAmyc0t*sbBUQFicaA!)Kww?_zCNKxM$7$VFw!&(_2_yex|4PWVf_ zf}hk?wXk3jS`a9LmaFr01R8odz;(6C{fved21;>C)O!FXlP~u?3Fpz!qQIE)cvF`d zT@B*`WJBN35nQOUBv2OX;4G9TG9zB6>t4+Jgq8-{VP~`GyVL{SlPGeT)DwZvifYF8 zd<@<)8Co82s^~a>osS{cO+6hrIS;|3mY}Qo7;;tAionNcKZH@~L03sv58g5vdN%MJ ziit4N^D!hY&j-d>T95vQAuXgjoDzC5Q2rM!V@5uPXu2ja65BTO{rPgV3heZpk#SPxBw-}l6>)$^81EVecfgR>gmH^K5nT{r{A3vNhOcH+vo~JX zjF^W!O`9N8S4MUFtSh6sVQ>@UGH$bvx{Nl4!RI<$#_jgs&CrA6xQsFkePls2tzpk} zWjtyaY*WaPJFIHiJ2%2VXW9+SaE--}wT8krE*Vzf0YAu(wT5cj_s`N<1bIxMv0bf}t)2nC#ShAB3TgH%G&6j68a4BS z{NQA$iM^V1{_f)k5062ZO>OEOP_H#l@q_%FXsDSz8+|!>YV=7z$Zv**n%lo&%q8!M zZuNuwUUR609jU2}aM%yN(-%Hl+RHKc5p93-gZuzxC}Nl1q_1@=G0SHJej7BDVQ<2U zy}S*2n;+!INJFjcb+|509;MCjgZv6+sI|T1YfHU!InWRCbGD(jcIRdKIok&fsGhS8 zW!bNy^%Jox45*&74Q1Qcd3Wzl22}MT#acaQ8)|1y;llED9#mga-o@^Z`i?6K`r8Oj zCb^`%t9|wynnMQ5psMo<#5)ZTnQr#XTlI~_wG9|nuj%!$`%KesH0vyl8ngpwiTvLM(S6$`a?`0n=37g4T4Z5+NHkE_tmeV>IL+d6I~+IbFEuR>Y+?-=wv*>|X&^VA0D zwSj|{FLXKuXs>`H9uQ>7z730-*Fo_v=H|IlIx4gz<{Fgvpj_%)i@q)bZM(>gI8@6+ zy@ksjeV}|-=Zb>|>k%xjdxU`JSW^`0{v5MzPS&q_JUYw|@*-WRyYm{h>vGg-mLKHZ zzM&q@=`y-#KJN$R6~~^=`GXqVxWk+- z*pMbVG&9_M`pRoeBb*Z0U?`V?3^QEOSDRL7Bb_%faWAxmh9;`|X``H5Ki3z7Y%?^` z(oY-hG<-$B0d?HaL_tlHd^Og20$YG29?|Fw`qSP|8|PFWtCOdOq4{+aY2%&NSeFxN zoea$%C~r*;O>~~Ib>)1oq4^CWw7Z;c59+q+IYaZuRA_fQV|r-Xena!?CbUV;49v|* zn|Z;|{JQa`=+He*a)zeeFuy>92<=|y)JK}u*wFmC3GF^-)?K<=G0@Qbx(RKHGcZR> zn`dZ#-J~c_b(W%0lcKzlX{so5U4sfnD&_~AqlNWFsULWP0P+-kXr^-!ixhlMBc1kx ze1lPFmh=2o{a|U-BW}FmQ=YS!?YxUpE8Dkk@`KV+%yEh?(Pt~t{GdE%G1s{^LxVm2 zpgdoka7;4{GAH^MrLo%Pr~Di4R<>Vd(tFpAn0 z5PIBM@SLR{L2YFSToPbIo(Bv);grG3xRi}ChT+fjLVMELfay4)Ej2WMRuI~9C*!)V z1K%<g9ar=<#USgEZR z;crTZmst72CMMn=6_ANE5 zhND`$A_@{hrTx;lQAXAQ$}=)R0&p?s^ef2p0< zOw)xXAs>N@RchDiH)siI9s$y;L__m#v6z(<={@{d8rfEA_apb}Ymo0YSUSZ&1Aje! zei`vu%{Mg*wBxp#qg?+{6Si5+-J-F#cmyERxmd<|e2<66aaSdg&^t6B4`Wn&I{Tf%*gH zf>Wow=@!DzJSxP@IR$K5`Ek1JobzL&k?^SxJ_(&fn<9(7cqY-G4+5KRAz|cYr(5!2 z50&eov8Ifv0??HD_Z?%U&WL+WCv$(#pF|Fi$_im-rJMDD>mkpxOBgeHyp=lZon&pJ z7xGCE!o!EKwp0g}qJ4QJB+)2jveen1V#j}60jfgm+Ni}jE%3p&#cO_7R z5do(guq?JTyFN1nTxr1P5dv~w<<*wesO_8RkJB~}M6ABTfyqW$HQavPVLx^hjbx*C zwZ`ih|H;@NQskw6O`=03K{z5iM#sI#gk7rHR^J%uMT#;5h#{OB0jp*s9U9H14`D$+_DgBA@nFZ%ulm$(PGV99|fTlYw`fqj-Elc$~x2>k)@AN0+ER z`4>lq;1K6mCD$ zdfUo#41k$D6%bR zV9h0luLD+xTjVt~4iXf74B!?t;5hb%4q|?aJ_gWv4@+s`QAB4x0Rt)e7{K$VS;`QP z!iEg;k4w3muIy(ib3MvyOyM7waxb0k#!@zV6gkerKQ3h|jhe{m@To_U7)hjCxW@pN z7gHt4ri)AyZTSa6^f7=P=Qy0W)tV*oF|U|I7er+LQ! zBwzG1T=y7&xKH)m)p;KG7=VCJ8SpX4M8lBN2a5vR1l*GwG`hO9-9kJ6U$k7|9TaZa zr@WYZIU*PBh|ucip?$)6%RL4ljNXPJX68(x1m!*kaKFd%X481Yi(>$pXhWXhlDyKR z1jPn=lRpLKW1oUBb{mEyxMma!+_PTGIB6J?J@roin*$TE%*DBp=xI0R7>wv+0GmSr zi}NAHGpH&Z?-)S#LhZAm@u|UPfw?WT&#uO&cMPE4+hk#IhV?(=(>n&xnR^=2F^cf&sl_0Ds4zrfJE5q`Jz2VqxzXKnZLuqXD@oFtI)c&>OuD3HkxQbbSoq zWlX!$iacJuV*uxGfZ%N&3Yq#Cz_acW>JcN;I|gw6O|tkTAN}Qls%U%10CL_ASWTHx zenqZ$dB*^H_Og|T6edWvP$Jx80JU5RJ@QEKjscYXQ)kR6hM_aJJ_c~@q5kKWf(eh>tg^{(D+LMIbj$&6nzZf*?O80yV8p*GkkSPvU?0*PNEL4p5c0x z1gx)*0sL4?i|m@4rWrT}unf(Us5R9vyh_3x189l;VDz-1NZj0G04cFr##@GRTFGZUGx(#Xj{($<(jt>`(-1X%3}DY_ovz&t!yh%-Gk@KF z&~#KqToY$WBTf6N09vm2vIiUkxQ@Yqq(C%!6#k;? zkF*FM>MTQM7H*9KxQMyXra2Gaq)pf@4=rD`7CJ3fTdLBXX1HPkoqhE&fQQOxk*f_& zr11|z*2e&9HBp^6+HYvm!SId&TttN`mHdU=4Al?ujsbl2osMbTs@zubn_RYuUvnxp z(zRgoV$XZ=m1K|~oyCMZAnLZiweUs-ar0?DIjZ(|I;une%Y&==BT+{qn)_ry z+SEc`%(r?-;AP=HG|F|l>7q$E~9YPIs=X41%w(-7P51&R= zLSI3Q*{dKArc3J`18DZOinL9S8Xpo@^CRWKI|i^GbC(>1O}h*7VG_YT25=dBtJS#Z zG(4yb$s$!p%sU2f@>AUgmwpj(RqdJB&{M=51E`jWnyWVRRD;j@zzF&nz-r7{vKo}_ zNdl;k0W7`~%b^U8@Pqmoz>phoJsyLz{h&Su@Ni|V;A1?t8_M7|qc<0ZWX`}qR6I^>iXd*I(%?tdbrh49%~gJ_hjabsh3!hUQmL9|KrETnGBL zq2;rnJ_axxTMQ)Rp95BKUqO8g;D+fsqe?(%Z3rrhEXu&xo=NUjbW z?DMp}Dj1I!}jsZBhph!*NnX!Tj)iXR#mE8wPiEN-aNBz#gcf?V@3`WGg2RA-W zbUDq$8{w)9`SU0yZk(q6Y*g0!FlEVH&pa zj=)Wr5R$P^5YIiUmpx1t~<}yE%K^15+3AjH{ z0++h1K$tYb1JxX7G7-x@7?_VGc=0~lV?Zkbj|A3b+RFQS4|Kir!!wP)3Y4v5E4@Er zhUgt!sA9&WrN-X|T4EEN1aRKS&wD^#VTWJ!3;En_Mx`BPv*lBHxMF+<|$ zhO(SxoDKBGfd`S1lSf9F_M!4`d@j%$tKw{P(gs9ovxkUtFB}s&9pjvt{Ha{k?^1R^ zVFboY(Q&e?Dk9%^e1Xn?Od3($jmQpLuv(Q?nD~(+o=fe#@msReiV$zQ<-Mu3h}mhj zkm(wv#aZWmT ziTrs-<6W#*3Azt1#n=T3QBPuLyx7LB6f3_fa1M$Ev;>ek0ppWkTA2QL9WU0MpMaOl z(%zw?Ktfka6Mo;vrgI9d`x5Ifp#d*q-Y-;TGq2*>7&J$PIxOHv)kdDh!+oKrv26?w z%Y`hfu$8(EON+s@!<4YevWh3%V_RuQBnW6$yu^Iy^|@=Q;@oFR`-0xYygAO#6#t+N z{`^wgwV2gtfR%Ps6oS`eYK#!k6s`3xy zlpF>%8q%M?>jj`I1<{nSRGM)@FMi#!*^P-xC6OpA9a>@|S{AFh9sURI&zL7lYeMBp z>soWP$AxNfw*XA1HrcwGoaYCpOoio}(knQ}D0S#sKWO6sR9Z9IecW9H^n*XuMvAte zr{E?&Px!$sEVHHI9yd%y2xuW|cuBSfYt3m9s&kJ9EBe6;rQkDzT4Ot;_)PJGbGsqT zRutbyYum*SE^3UZw5AOK?Q^mRs(JooIuQ>>8+xyXR(W|oMjveSO>0XJH`M{`%*WU= z9V%o|@gbUVJRjqgJz!*0%r9CGLg!G$-PPj|a!Fb{`t=>HM?yZv)Jl-io>r~Wp|r@y zIDyiT){(m1VOu*n;|?|qwj0v@&08U(6V*cL5ytF%j8(V`DlLabW4rI+9gwj;AEPB^ zo6CcCLA2(4TKu-GpkxhJ*!QD1>M(1(3J9dYYT+Z$@Z zPcp_uTADWB7h5a15voJrm+YxOz19K&u{L}E!xN~NABSE8>9Kb;^}>Hq8&Ld3s5yjM zVY4E|yo%7I?rA{7QS+t^r`5$FqPpv@)RR+NnlXaD?S!?*_PH6Nwx2eVX3vA5Ngj=> z!~D`lQPuk(?fC*|ev!RjN4kuqrYLFjCUak93pJpW(unpr`h5k=df4Ya4o3je#?xy@ z!2iv4cPrU<{s1_UW;6lFX3cs{8$qS?qICSp4O5WYvH#T%5<-Mer_K-Sgnlu%@c%!# zi)nvPoxs;}%N3>n&-%VVy%MxB+H*2-j!?$hMeLQt|^n6@zYAdSZMQ+6g5lRPx^J1#>;;)C#AWDNS(#PLn0 zw@`=0m85Px14{2(;2JBO!jriX(4*IxpV}C+NnKdEmHna}pj{O5SsE2PwO4!sS;~HF= zQd|zULNEvI2$t>f73XY&h(!LZ_*6Dt(v39W>atYPcyx*)O-}<14SXqp-)>mUq0s8S zc#+pCb)YN`dPbTT-v;1Wc(X#g?{)xhM+*`NJ%QHBwz|jTaE~@D2*xmP4BP%kG z_YH7=vI=o@_W-P=kU@3Fa-)+1E$-&(Ty4R1D zK;JErb_%;asK*qkkNH<; zhhYY5O2Y?EwjxhGkga9T^)RW!5GY@w9eH{!I#E)4y_AoTd_S~ZF{P?5XzzOjc;49o zneAB%9aiyt#=}%U51W->j>vPR%jX<4NsFLQTICDzg0 ziS?D6Sha@^m}Eu1=AbZ2v%8P_1L_{*x-XDW47C#rio8;j6X|;nSian(e63t59q+4* z)%Dj-uiu2tgHk({-|55duU^QCY+d;nIvT%2>AHT*ZiTS6J%Y+vjNRUkjpZ6>`)@0C z78vQrj*mswdE*<5QzfI%_G81a?>h44i#Vw-*b9E_GWG&Qc8+>c8*i5%t9vJ~x9+N{ zu^&84x|J}%jec*Grer7WoLLKSdC` zZ+TG1YfwHyCbn)y_S`*L6CU&k&~MSNz}{VnsX)>189z2Kh>-XFgu_vS?eJsc*x!4< zbkp(r+>h~KBJ%!?BP}(S_}!0{O@*=t9>zX0ky+wx*B;R2?wyeNK?nmz8KqSBV}nwl z%ZH6l>V$3S$D|oJn6_V+zJ7izZ4Y$$1T!pF4bDi@J$< zoyOA?y-T_-@WEno_|F2ngmKO<5Yi4~WXs8DT<%@V>h(z$wvP1e(lKEDg=sn>tJe!% z16D@AqlYZ*LcO|RKTAgc+h@9*K(C^0;A;S84>iZ>HE9|+1HZ08+9jsfXlyml7*q)B za7uEp*EfqT>@lf_c^KtVxp&_YBdm;}ucDSwE@?6KpN1BlSEK)#QI=Rk?x8h_-v^)N z=~}#Hu^V?BYv5pPMjTbUgqsPp(^uF$lW`M8&=-o=PH&)E%LvoA&B@~Ho#C;_?&3(j zTX$PllXYnPGI~(!7f=dbLn%R<)(7{wQx*CZ+l@0O+`&RxfEg=a*bFA_Q{=CHo_nwk zcrN&`fKv@9ZHo5!xPUJjkbSBV2q(BJW0lZ8%0m;brgggm(R!tl1O0yXXt~Z&WW1Gr z8U>hRPz+NeDh5hZm0dGFUs2Suu$czNU_u&Gk(Kv8hNyq{!hQIQJ8Z2y%=OGSHe{S> zSXvjqVR;D2REtxl7;QL7Rx#v6nhA#ToI+JNAxlyJAJC$3fOwOSOtNKoWbINRwxo;@OmdMbOymu$f9-{xrB1*e*o#*n;4jJ<#T#i$ zBKK*eIdM&s5eP65YX=?@`~pIQoT`@Q*qYPLa5$6X;y9W!$#ArYWDX`;UOcmDnFs5_ zs)LBp-nV+Vr~&$R5_K$&txWN2nY@pOUoDcCgLr&vLS9EoPcBst3Aa?2i&DNhFXmCGsotu>T*wiA7M>GTAdH@&GH7RpI{! zfbba;7>hXH@aGkL#;H%fp`+sVDJZAm$W`>YS?q%ex8`nuLzR&2<4?}U>Af~AKafz` zD$}q&By~PE(zgDAIz*M=xeGs=f?$%=vvKVPG!9toM9ZN`Y>2jxKG$I$3crZ?#$zFfSZoUjcRW{F2l0;|JADqycdCF>ZQ`%Yem8h4ofdzO zm$h=Peg$P}d+u(4ycI3nwHC%nJncjs4MC=%l4NsaxSNBns}Lp_g5)ht=)NQcOIIx6 zQI7zXd1qy~$B-r3^UEF%zBvQ0Y4Q)_)chH^BfAVw1L9_4Vq zik;o{A7&+TszW<@zOVl%w~M>RU`^$fz5z?HHYgdIW0_Nv<8V z^)8L+@T^SkC~)F??{soDjdOm*Z^WqtAdx@gt)rD)_#)#5m2twOOY*lqmMMh3mfk0rO4vfkZqne?(R#G51`=^ZMOSmsh1)T z;2v=L-1C$BrO2AkX)XWqJi5_PFGY^+gb)isdgvoJo>*4UFGbck2jF%FRKm!PZ@d(l zu^d%7o20GhNo7K{s~j&ymcOhSqYGvnqdlLJbrso%7JBlP4DY4LUphmzP5Dr%9U3);&5{0^W$8&tB6_fq8jIS9A#K{sAO?N_RXv_S8_;P-Zea+T#$cz-Bf ziY&@z%`TXtUy8IkB8-u_Dac;>rO1j~^u);m!w@a7Apz4^cqwu~613oic{v|LzZ8l4 zebhYtA;XaBHJS8Fk^P(LnfwbL11jj3B1dD$#KTA`{;_Ka*iXL{c^KV)s^tNaGH&wl z70Gxhvj2mibS#MCy%c$|kDd*O^}j8E^S$R}^W$v_VCF+V6daSsi@Q;Xf^dC^7~OLH^as)k=P$4imFU@C%MV~W(lE~;OO z+}8@49Lj@wFGW^-Lf5euJO;woFGViJ{D|1L_#xLA0QF0e@we(!sm`FP{WVyF=1Tx5^dnq#decg<2^L(lX%zG(v z)Hpo)#tHJ3=iO!SW;nbQxp0q`@vo7gD_i|iWb%ia5r5c?uA4E0kxff5TP59zCWax6 zih3zB+<|^OVOh6uUcHkUZsFmVBEuc2Z1aG1JA?Q5L4GMRoI}eh>KHr@FjyNjBm}<{ z8SYFszNWL=7RDMWOurO)@ivVeWGq8r`lZOnGcBtGMm+Sh3DA2fa>FS+jt07oJ377i z*6}j2_fllB?mRnDJ2wX-I{i{)F`2w*D>tD-KoX@P-R8D((q zrN|;9dDyuzHwPi;mm&uuel~rP8xD#b{xL5_zFv=sy6_m>O60N^k%`oZ!~NJehjUTH zDFg3`>XU!t#35!H25A(t3O!(oIQ5yrX&rHz@h7Kj#L41Mwt1X06dvn#eE{pxt-7B6 z!m?@)uv)D?hYxgw16Al3j2c_rc@=-t0(gp*uOQ>-`~J*eUzx$%;DO!@9`9UjH6(Hd zk;424?Po?|{=(paH?FoCb#+w0Vo~&?ALGkoTTMtArRU}d1kc~c?SM@^ToKdX?60C9 z2}x>C(CSh~#Bw_0#~A>@r?cV85fD7_biE<3W3l+Z^! z0y@InyJ)py-yQI{-g6I@Mii~V%5dvgmQDK&dLyGlWJaXbx@SHQSWHKvt3U;{3MchO z3dT8{97DUoG;E_dhrc4?80W;oSE6!IzwA)=)_0JMne|`&23riyK8t~VW=adVhrXJI zqz=uT3Pr8j!!QpqTdf9Ib`@ejnQ82WhJza`Ur1YVZz6v!^4v}5O0^+Lasy~))56W* zo!g>~Ox?l4kjT7_k=ZPS3SF=ReykiO{xVyf-=TX!Kl!l)Oo(Q-Y=Hqi7jz07^<*}s z0evT1nUObc&{({|l4uI%Y%?tjKeFJ}OB6T&k$-~s9uq0}92O`pGFiud&MJES9aP1~g&ZY8t)8|M&z;?Sa#hKZ8-x`faL4DV&KwYk2-=#>s*@axMeXv5B+4XPCc?#ad#UWLoZckuk zPoO?7(}ZUe-pUM2*G1bBt}B$ z{U@$e5ZT`tg1+bE%Q~=D-#1V#Np^|(+Rcsmb6x05M6ut`sI`Qe^q|K&y-dpnI7r`Pj931#E)N99;7UOA(&RM`->e3^3$_zFNZ0 ze1z}UL+PQrY(1R%))4lhz(9w+7|&-8KYzcD)%AP?UbV;^apzK9pei5pl++UVYUa$5 zS5q`0Js*MZUCtb}=3hn6hVd<4FiIde>Lo~+^m|9l=o26cT9b{JDzL09mh1J zmnU`Hmb;>`W#Tw$=ggVdu%RjuT?wMv=19jm?|_=fpAq?t$l_?-!P~jQUNY%>w7Vk* zjJGo1=NgEopsEmKnM)ZW=UXJSe4%0%_ow8qTAsU!i}`}S-0WpOvy>}-POLV}zn>)n z6SJ=PsF$|b5I^?vO89$r53C_I;zNEc3R_$=pG!Wav++tlmW>x8Ggob{rLi~t*k_I4 z@ABppQcrj&~u6O?Nuw0eL>R+)MEtSWO$K8mycL2SM?2);42L=if(@Z9a zjf_3a7h-?rB4W7y&@lMp8X9%-lKoC;cMjJL@{#_(& zFa#~3G)vfM;SMvAaL^F6guPteH<$lgk15XQBS?9F`81CaIr)O$d9l_Kq`Ysbiw=_z z!ubeN-d`zmpO(-eA3@6dtDjwgcn)HGK7y3@*Y0>n2eCL0A%lLw%uVLj-KVr2ba~(Y zM_XGNW-ol?FYh}_g|z8^^l*Q9f0KUJA;!YoCh5!<3T-X)T{CyT&GUj)!O}$}iSA(c zJ!5KW%Qy35C%KAzw+s5Fk}AC!Q$=DJaS42H#We+?Q>NTedO3yToQJ?oqio*lT{OL^ezWdm%os2xa-?`LD7a}F`vF;tcf3c zv?*rX1pC+TkGr?67q*$J{gp#Yz?E~Xb5-wN%5pYJwlnMc8=7w+X_E6d>QJN)7_TCA0kI@__4>9!rz(a zv4@~E7ppJ)*az6zlX-Rmw(dv|<)XpTNxHf}$8!A}{K++evT-`C;?CGFS?DQH4FgK! zkWRDFf6V-~3r@gOrUAw5>GUJ}Jhu&-<7uz~SvBqq;YeoY`A056&xZ`iy1{VLR{yp= zMmNPTFhPu(tF8Y1$``t$zt0eK1uuQ=KZdrzCVQkfoiYU7a!OzO&;7GCA?B19geFK| z`_eTuAtIq#K7uswf5n|6MaaxYkkri!aPF|3no$d zG#KgfC2SB932Qt8Y?Ph@&sQe4)6(DdV=@f*w-+YcqyhTT!`xgeJ&&vHus2Bv(WkxG z>ufC@i)+s|u~k;8nunkk1~V~m#%6uV_^t9Wq-Q}?d@C|XA*8|Zd<^MY1gO|R&6uB$ zA$<#*ez-}8vMC=!Iu{Pj*?T!N~l&TmSGfFq-cQ8X0@f3P$3BV#WWS-6@DKvQ@(yS;QyHC3$tHDWex}}9q zs__uu>#b-)2`Z1)SJHX0N08i{jGbW!B}g}S&>3Mf6QrypQ<*4WC8=m(qfY>;Pi$Y7Q@{P(@P@k_+4Hfk3W5bJ+#R9332L^Qj!nhiS4=$b$7p*G8w%$n;?Mj6fA^}tg7N4eSZ(j) zy0_Wd(2%erZAnSv!Q#1-^+edzGhJMu!4}=!s$Kh$g@&ROVHlWY_SeXCrEY7Kd?;J4-y9UM7aZWP3 zHf0A9*zpydX`!}zZeh3^JM)DU$naAkqhk3OY)Z{)eC0PcXJ@4?1}A>~ZI+eQgq@MI z;}<=Q$Dz{ccb&HdY*AAF)L_dS6exK+E28pto%oWyZ7VB7<Nv$k?c^GyEZf794kKDoH-I5HvfTgJIX+I`xvvPK_o;oB?P>_S*^c@Z~lmB2Fcs z4Ba1xCEU;uj6-5WeK2MV*2@_;!YUc+1Vu`P&Oe9el0wrCqQ4p{do0>26WTeCtg@l8 zFWc4)q46agt6Zq`c-tx;Iu>%Q8|6WW3ZWlS-Nl8n>)TevP!>Y37QZSA%~>)wgB_TWXTm!qwBtMH`@9fGBJaPf2!@m3!ql$gOm6N|HWFV z@8H;1Om=s=js$2l2KRzw_arWYC{K-eKX3M(^l+LKsGh{!>>kAFhP7b+RfX9~<&(m} z>^@W)b=(Nv5*(8~n3n%xStI*f*+Yn51{*olLaoK6YUD&Kdl+$n7}?Lt9!^~OjT~TQ zkDxEv4PlO?X>c1==SD0+kD>{T<0MP=Xu6$0C-V0gs?Xn}t?aRK@Oq@^K2CHW6^(vm z_IOd$l51JACr~kHgGe>z^LW`4C3q)3fFpp7ZD!x4T!`3ZZ9fEjw|0TAm|Da!%)iKo`(=@@HJ}gif}V{V46j1Y97YGS8o6KP!n1EdouF(Qn9JMNgvQ{16Nr53fR8 zI0Xe(7;8p>%49F$G1-A(}+<;stTyTeg4;%2f&*x47 zUoha5F2?6u0`4~8H%Mw%?Arn!H=qn9wQb)K@LvO7m}bQ860rQ=o)Pq`6q5G41*~Vl zlRlq&1ng))JxwP*-xY9-0c8qFE3{X@`3BUJbK-NKfa?rcrKpMLdjh^^!1GuwagFf4 zfF})je?Um43w|VER|8hN-GB!LoM^z? z(d}}5ek|Z31IFO-2N(QAz)c2RUe|!13izP`Cp9+UApy@A@a>2J4+|K5*)u|sjt2Z( zzyt%zlNmb6jtbbsfLpMm&DHj60q-R`6H`B0bBbxWg+;0d{^wm^#_K718 z09q&rC(j5FT9bFf} zh8hgBuH155I)({(dcYHk?mh2`&;I)p7>u4U?rQIQ_CG(K)r!1kWF^swP0-=W@3x-L z``p8VNBfK6k8Fhr{_Tqfohw87D<9!eEGuVU-S@U-afL|b{`KsjB`iR%E&JLjOz&`| zNDcB4rfh}|*Q+(tt13Aj0mJ2r=g9;AahUN9s+$8?#2YJFdJBk|5 z(_2eQU3H@mpN(&Z&uE&DId^$Orlub(4lmh-DDF=EN^ToJ_NbO4)>IdJ% zDWvSeG@`U#q@3voKgC>Nb`eU=)U$f4{9w;0C{&bw#dOl`s0!&FKlpxaC{&F0qcmPd zRY>3X!G8t;EKaR12dvqgqc8ix(M13T>CtbVdL?w>uo+In6N4XIA!Bs^Nl}gk#Y*{;D zeClk#1|%K9`tALJo}>hNOk4Zd^IU03+1 zhwocBh|cWDKX7CLaZUukIXoCp5+r@&oPO-eV*(+oRF88e!9m3E@IWD2)*~*$BL#(U z+RG45Ri`+u?Q*`$#eohV!Xf7pyULHWyA}WZ2{Zep)A)~y#W0j8SGvh(0c4vA(OmyXOrtohhyvk`ofnr*<-h_@fZU#-+% zWvUR%FP)z8AdG!K!ibfx;OkgJMDIbsrsA~RfM=&67!5WPaGL=+P-_g`ctmG&QWEum z#_IkrLN1-jzA#dU`0ZMI(z}M1gvjB315rN7BI(v zoe&KA0lbV{x?OclzxC#D@5)1{LVvJQ?K$7lVh{9Ip~ap(KCPs^Z}u1vozAxIIqTzq z68)hcD~ZOx^qn7kud&m9jCb;v?)^RXN{UK_9WS>0P%Q)tq0buhMubq^5csuXm(cf~ z`k4OWNVPTuPHUIYZ?;PqVF)~r;1c>j(?Cm@ZwNf;>=FiSa0wd?VULe6@VFbq$A-W; z)0HsjoJ+W12(l2Mqd7R*4WcC4R-NiU`GOcy#wFA?gabap&^KK|M?;WhI32|B4_v|o zL#XUC)X3GYl1mIhMv7X(sAVqUbwiMGrY4N$N2w((zAyx73^ZX(S5$&R_}dWlin%2B z*iTTo3!yx!0&NF*q*Y58chb#FDTZ)inlbhGE&a8G9)=*JRxM#d7xb7Ui2Dpdrie9R zV)SS&;b}uSj5-K&)uQA*yU=qM30lFW4**0hy$k$AzEda8`3V&q&cCw*Pi4h9>>P1U zumgAhD%QiKqSG#!$F{WxSnV3#gtb6bKQPj+G3InEDqjdjkT29e;+`gdHT2x28BvE! zHKU0zx*CRz%2gH6EWTE(5}0U z8G0&SICn&nsO#O3-Q#|&9!cPLvnTgK{~chN}DS(6u^ z+YR`&x+at^;+a7cc#5vwz;L=I)XhiWwbFKj-hbaxW2^Q|aI@!LR4MI-{PKXd(Krta zYU#XDq}|YKSdbADJeH3z<2UFx`~|F231Pblp8s}}T3936)`pqCD}dqB7WPMak6IFf zI#&%%T8lc;8*DeOQ4a2)>JNf0`=~hLP){WC=r7__bj0Y(*bLk%(+qXSMe9Q((f6J_$M z%t&NG%Da2)e{ct#Xt>8H4?!LKACRJJo&g>~PjQ6jE{KKa`@FE>u8#fBUX5@T8+Z5E z{|A5TEVS7#OC9@v{WvnmN1h+IcH4`gUik4%5$*Au=h2OZI`&@|*MmydDuQVU6;E^Q z|BtayCxHQ#Fz&Jc4wcE`4l_0PJgGe99s4h`Eua{K3T7Om?YI?4X2Kr!58K88N_ zKj+tgx<>DSVMt;2j{Tp_(2P?a11jia|AR1fAh+;2XaIBqH*k;rH^81Ms_FrfGH&wd zWB;>?f|6Mf#XI)jta>aTLm&Gewk}|eK!rg6Fhk{P@7VuerEO~vgJn_pby@I^{SU&Dl7LAD^p5>+ zZcR#TI|kjtB6qFC(oJY}#OFxk(>wP6ZB-4<@q_xC_dL1pWdtp|Kpl2$KM{+aVszx9C-xh>MFEK@|>Z1DC|I)gM z&4E0qckF*;6_ckI7X&4ASfbX;|b4xEm!$;95V|35nN@qE4n z&Brmv{x{(YPMex}usQbs*vHuUTJb@D&s_+;bz1ctEIgu9%>Mq1~N+)Y2FOjO=Y}WHPmql-OfR*(E zZ~tjK(8_vIwhCoM!<~Dx{(kIOsyYOlpVrPDrN*c>jit#LH)O5biZaG_wW%vrcd+g1 z<(jXN)n8114)_9yYd@F#ez+H%^>N=;sDwi0TtEI^ zbk-;53h5fE4ihAvt`R4F4NH9b*v*J~`#iqY?O9oGQYY;4q+uQk6YFja2$JAXNEQgeg9Y0_h~W_2HF$A%DNu^HP^`F@LUC&; zPH}gN7i)`r&zU<{!t(yUKUi+&dCnQRGjq#=ogWn(xyOJlm1CPQ?8k`ZT{>5IdmiIF3Rp@SHDV#s2} z{>^Wpeb7V`FK5z3RGLkT{m92Q#9@rYXqA?sTUnYDi1k(OVLeCK{82;`bxe;+Fuavx z*c>MmElaBiW!DP6cWkgN8>UOfP>tJfFaR#g0WjQlZoC9Lu32#7dWOxs6B70mEa)0 zIj>av%9PaH(Acl}?eFjn0>$YUsFw-iB=0fynDSu?+-d?{1ZuB~{su$jcno(rrQ==S zDo$6E#&%NdUrF&^rnsy&g3(<01al!`pJ|BeMVj<0lF&vOi1`P>*y_QU(*XrD!j@~i zEYb@eu?WUM+pqm(EdP4w7>VhO*jcvAM`TKaf{cvHlnTZKTMDiP5$UK%3`=X%E`*LP zu9Sem7lqX}tq#2jv`j!$@k++8ByG}{X)SDMay^y9g>Whu)$+9_O?3a7_Y}K;??)dj zdePsF6iEvm`%EdBpN!vKLl#JK1YXJzl-^ zAc`fU)%kwR&ipgmZwQ_+u9tAC7 zv^4)!RCjzU>9%p&mDEMdF1ge5?Le@@((T~1VZCcx=Jw_(gHQ=$X9M}%Bv%*a)}4vp z8;2n+Xg2-`G;N=DG7sp4jo*I!FeU~y^PJ3EpzCsH;Y&B@K_&Pd?2&cn;O!yK3x%K< z#1o980CH+Ti~%^s7ON8cHi-p_U7Wm~fu=Fc?s`f#c)eXo^EiW|DTop$-?;Pg^3{MY zGf`rr$&q<=kFcE!kmmIWF?y3GORF1jz#3KJ>oZU`aahMLO9K4VL>YWl9XLkXct*)G2spG*Q zEbPI5w z;!cpmrE3PLmlK&P_X(vc_3`vtS>DeRPsZ7Ol2=H=zIJpLJeU|-o7ar9`xGDEA07^Y zWest}PR7}NnjgSEFaai;pk{yFXZXmaOjDa`s+HhbJ{DVNgyeKnQZvr(b3F0}UL3`_ z)(Vnwc9*kN!0=b3_N1ZKNq-|%BFC5cp0DN7*%PZcnO=8_ZA@XViTj4?nbiwSFcNL0 zykyeCiIL`QlW}%8vE^$mvmNijpouK^3uQDGNkk$Crj12^wPY0Cc3Z_GGBMwOnMOv@ zT~vw41_MAH-hPuN`d-Z_x*zfp*ykvk{S9J>G)trCuBK!fLgwIKLsl9^cNyhLH8P4h zV0L7^CsQMhqPv@I$6d|_AYL1fCW=`U&WGO$-jysUkDSVX*cPeToZhA?T5}gAEAs3l zJ&1TeKEiW<5FZ!V_zaUREL#nJ8J5s(S1My&*2aGVtQoL+Joz`sWmewbqtu8%`58lu z{TOIrwB0P&A76tw;!4y0-H3i|SX@)8_hcy}I;66=X4+qLn;8+~$~=XsanTmSEdPREVKrOEPL0Ef%b+%%(b2P3(*1ZxNYsJ3q zY-e$mT9uWxc8L``UlCa4(3-Mq-fd#h+veA??DJc%H!&EY{VIzn8ddm@t~lm zpjpJ#eeO~;?5q`|DX_TMYI$tzUwSRC4NQ-j?s$%?mkrY?f)IepB1=vt%^n9r{ZC!+ z^)hLQGzqj96+07_gd**6&#>Mm2vS;raO;|YA4VG-gLh8CB|34x(~fab9bXZ}sE)6- zzozV&FN#F3 ztEayu4+IiCTR{sZ>gt(~jV0!?Vxq2|JAl+1RXbrAbF z3K!|t5-RKJg&`M^&>uZOQCBZE!>(Pv%K-ICc=_k@NW~o^TxisOtabIu#rhEUDr7`V zT|}C?dTkXtNwF=p0I@_dImL$nvaVi#iAi=rsOdovb@k?iL-4%EA%kst{54 zfeo`_qORU4huP&!<01FGf$1@ex_Y#L6nSj99fu539oavj!E8G?X3S z9xF0{HK=$MJ}ISuUow$sUV1w8Ra$ZuZ~blB7*TV|5m-4>bqHlGq9;@9H*wWgCB_<5 z@rjjMOAtX%NiQU&+WIlFOR8hYB9Xn2mg=uBNvNF(xj4P$1~He~VJj`=Xsm%b#kVB5 zS`j@`gPKLNVcHBI?2iqKH0?>cU6uFY42X z*x(}ex?&SF#U`Fm7ex3a@z-=CTq_9)UKZdc6C|a2pC(?RuAbWg@Z?-QEpnkC&%#kuJT@5|!xAe=T4_ z8+`_%HlU*1b2pc5KGncwMY%r;RYG(JQ%y)#l!u4k;=EVN(Ru@OitmbKMR|0~M-onX z5X5W#%l9jrrs1VYpwdDSQFqYb@&0;>Mo{q@t=THc>BE2qZ(~*~+IIo6lu!jCKnM75ne(3HO~ka zl|Zivf>BX04x0>W=w`p6H(BaD;wz`j$9tkWahv$PMV+X^dmw#PChnG>Iebh5A+1&a z*dlY91CykNRDVcS|9+b614>$<0f1_}Lys&voqATNKNQw%8kc0-Im=Y0$Xp>;7iRMpoK}`Zfx6hjsBTXs-(3!+1 zzIlXKGROn0J_NkIkW3(|smCK|xKj8ASJha4U?8Aj}8H9&R_euEm&XaXiML=AXE zd{G0O;-kBg;vl*B#%r-OCGn4k$>PsfM7a8- zI97esV=a+Ub>?lIhLXuK7o zmh&M0dFfOxwL;W#9{PPJeahWdh+58HOLj@AOKBjqoX3;Dl2Wft$i-=QNBq%YZ2;tdk?_{sKfEE zjx>;h;|xKk`0CTeqp)W*{>|#$sA719e5pY|)jmBKn%|zl@K<1atl00Tk(GZpA$Pe* z?w)}O#ZIzU&>+(N{(62{PU%bP8P=nJaUN`y-ZJ^)~K0<~fh zMkz|`iLk-)C*0gGcK7D(cyUUW`&TFCmyKiankcr9U<#P`?lmlYj;sxbU6;b8lxLt!K4@|u(Ta* zS~@-hKZWxtM4!@v1VrP}%2k_|j?c)qqN@{(;h!)it2(+$*t<(i-9vA-Fru}8NMW78OY}fvB*dowu5`NbH%7ng%lq6Kh zLPG$hG}0-a(0hpRisG*@BV6>rS~n~il?0>4XACi3mW;}R(aU5|+-4tbHPs1KA~NC~ zkg1+R{Opt})Ki*E5&SdjrNA?cT5a*Ah+iA3|SHzD82lQ$!8ODJ5Fq*h?jydAvHgoaPy zxbr<8VEzk`Y*Y;^Tl}gA=!K0m361$8fd6`crKdx(Nu&a`*~)w#C%Lu>O-cb*zKIqy+H_4`^f|R z7RwU}J&x3cWKdZnD^hLhE0j-9zaV5K$^#_tGoklllqYXug49&>dMg;I6W&9-zsZmT zUa|)XeI9p{pAau3f_R^1hk^b;u=*Z4CRw{pmP}%98KDx_EK4m4pc`UduizLwO_3U&^2M z%~8Un%^&4=+xZPX-UChfB}^__S@xk-tQbxCB}}Q4BKx)GCKfHGrxT_sHk8943QyBg zXnHzfT3|H5IUeBIu>hyHUxA!%F+n*!OXm(Id=of9R*OH4D4pV%3>T;4{t{+>_)`+z zdJyOvn1or)Ug0bSb_=qs9p*{v|iF9=Z{1X}G(nDee5niZL&7DUjh1l28l zFO^_@_XumJf;HM?87~3FD_C<|b(Ol-e}R=o;ktj-sf#fjd;S&1p(MJzzZ)_1GLeWnBJ8XyGAMW8AW)Ol9EoN zB$<>iIfjz#rIAxjvMAd~G1HmgP<}Wfi)K183JVuV+li3it$ge$E5lkVD14v{%2^mE z@%n$ag2E}us9eIgPT~}V2UbvcNIuFu?0%pm^K_`+GR`uZiS(RF=P&(@g z5bseNfkkP~kiSxYHPGW8sPKjYlugu`KK4L`JCsd1Jrk`lL-gmGg+G*CiNt3Eyr2gv z9HJab>_TX+@fjMac_)ENa0EI?8b7rrhW?8+Q!>pk2PlA4l5`;lw3+h9O)py^ClR@g^QL)8GZ;^eNBK?h;o!9e6+mEwQIMon~L1Kt{m1Z0&+@zAqx;l#1^6#58SpvcfDy{52ij-uiW|V+6C4v&E_+130 zph=Mmgr^jxR8K`Z6HU}mU`Y>}Fu6))mCI{UDkF%jCAkE;IA_`)R0`oMl~=mJk>czA zf0~7}R6)6qDNTOm|EF1aOO=$(H<1kQ>Ykalq&ZS^mntjou){?3o@Ghkv!YHTK>NuO zswl0n6;rGUCL02n?hp=BRb@ClPAVdvY6XSIR885DOU{E$H^C^)WvZ@ZQBcp<5s;?) z6FyT71kt&GOp zieMD?U$J| z4B-jID{Lv(7}Y!&!WBwTT4Hyi(9zC=A$*}kCHHoj(s3RPI#Vg3u`<&k{iz=f1`Frc zHUMm*ba)}XF)a)9b@D;b!su9|;ER~CvL{xc1KqNWYmd#OiItuqTuph789=oOCP)C( z#7E!u#Omd10+@dTr*f#hZX!wQiQg2asCh7q@=_Om#c(>Sf*FnwH5GH3xm90G+U;R# zTN`J?xcbvG{5Q-_M^YyGbFWd_+;<*M2}n$QF$T4w74-XxC(JL2@J8aVp+>m2-%5gw z1^9hh(D^4)uZuSoj9*QLIMhx%Wg)Ryh9!)>rFgG@nb6|9oLnQYT6)6t1YDq0w-q0h zgczXQx2kc7hwsFUKtAa7qs8%yk%dnHP?p$Up@gA(l2jogKSX+bSx(Y$^r z&KK%JYWcS&L!6x!mcmdf&&JpVa6#~3_nnp|PbtGA0FH9_2 zoI{tG>eCgNH#~Itnxgq~#Ff}L68<62Z-i^5gtMkG)0Nn79Cj0m%d)BvL5nP!--1O> z9Pkt-hqv$$oR9~C1NWVm2dxdV3XX=CmiV;|`x5vZ55b1xAUOErKzS#~W~(4=07x8~ z2_sH^%0qD403>JFoCPw*Csx5H{UA8}OgIEHV8KJnyHg%lQVB=mC5}KXXL+koArL{& zV_0saW>nF!$YWJgP`qlau=EBvIwY4&Y7492a%`PU9Fu}3#lJQMWsD7iAvm@nW}`)n zbF6|HP5>L9XC7kQVhYL_Zy$%&30a%SJf5-&J{SnWi9ZxZ9-o?mGR9u%Q2>*o*2@#~ zGSs!?(YGZ8rxdDri z_zBDfCe9g)-TK0Qyfm?BzOF0e<_^parM_+>pHk_~6oB(O%~Ld`MTnqRf*R;W5*PIR z2LC4pMS5wACzAIIML z#1)rb0vzlC`eXyRD#K_bdaem()$&~vmMQV4>n)J-ohC@{NpG=JvHY00I-;|}a#6l7 z5KHd@d!QpsT(b*n1|r}87?>_xx*mkr7HuONU(R~Euudp~jwx|n3g)UaHbUyleMX4p zm+vEr^-ty?>V^br`4$x^n%|Cs`VA)nAlb(QtU!{R8oh_)3=@>w>=AYRJFoaM?d-(L2IiC&xHtTb#9t3jM?T4yYibanI3so+B<@b_AzR^K z1Ji};mjhw%^gwws;~Wt5YPrP;z55!kkyk!#He{i9Kv5)We?@reBF>XmjE?q9JXmzA zlzU-d&P?!BAYAV*6d&f_$QGUjbNO1O(Fqv`AyG%vJ2FwlK+vm%fQ~-up=hPy)*;;{ zSD-e2?AtA}v^o$j+W~#=k$C*}OT4*Z6s4#vNDh7Ok$B?KE18%1gz0to@Gp=#RqX?0 zsBCu`m|lJdzX9QNN$eUHglirII%_BK%rJ}#1>utiq2MUgi*xBq$=06}eYBq0@!25z zXSaK@fm9+$^g7li=o*Z|x;PSF|A@NN*dl+V4{~;C5=Qf)f9|8pBhz0ug6hk3ak!A0 zW|7Kq70{Io(_|(7$&jka2Vq}*;?;BL7R0%%(R{~TaIY0~Aa`eoCr+-8+4)znR{5yYkS_wRv=cQs%pX6&@h@=DPtqtl;W*0zL}yQ$aTC3y zdLG$irK`eU&T$qKlxor0_`*x=f?vC;!qG{m-hubvrIz@GvGnTP*4Q$sPJBqW9Hcx^ zaLd8QpE+(hC|cLXGO5jwc^|bNJ|@Vl#$gM+ueuk}In{eel%LvoB;9f_5+9wZYKu0w z&Pg4HdhM^)!8aEH>Pjz$TMoiU+HlK3#m-*1<={+L8*Vx9s;aO+^=njzAa!U9y5(R9 zvJ;~I?!@i@bs=V5a;vUU3d^Hj#E>bks-&~AP&FAV1Yzp?PBxZLZL=DuP^zJY7%QMo z!CGBG^_PmcDNyZ!cnho5vHi7(n!Xs$p;cpk!goMwo8tI%O`QzOQ(WauI4hy@OgMr^ zjl>I%P*-8$(xo;piK#8M;V>I3rPjHlu+nODJ$$L5o;y@~xVM%vRcQte#uh3l$Eujy0H7xDJ=&lC!02(g_KLu@cSHnrPk7G>Du!YlI4J-25 z=&ptscvrZq;TXJ3+|}^QS!|1C>bVUH-PO<-l?`__jDzLDT@4LI7S?m-!<$9<-@!wBX9Q{4|Z zd&txi-zn@7Q+GDw>@SS&{$dzrt551G>P+PQ8B>?fV(d9n?Ko`W1yeWU z4ZlPwWmMSTObtU>zhY`CjQ4A%Zb1>eVX9XN46~Se6sF`IQ|E#54^tnk#NoM2or7lb zA5*iJ;p{zAN3B=b2c}lW^1??}I-y@jy1b(8IGpv&)r$u>8_w0$SU4EL)r}~nkzCCk zVPm7X`YaKb1#xvYEY}#Wwr^!)W4U^NFlXbqnhPDnc&-kqtgs1OP3p_pM6RAh9i7D0 zL^O`cT%F@@V^g@=2Mu5a7trHUsftIPeWG9h1UlacbXt zbs>geOmD_Za5`z=zt6Vf3-@$S9J&Ir- zSNEY?+|Sj549$U>mub6SJwmbM+`z z&yMlZ(Y^byKe&469b?D2n(t?Yo#5)_mkK+{OE>73!cOthb^CN@r;#K$PG`89^%FiI zL~b!yJ;&9*urcaSu3kx2s4>>n>cX*X6v&D_Zi$21lDhK>=#kW?|H1`O?;(h*J<%mA zYA{v?ZR&Ekr*<_fa*<9wKOEobtMgDN(yO~#;p+``d2<`O@Y=69(AYwBjm`JC0neKi zo17Q3DM>^4nHJE!8C@anj@d-I4>Y42^5~czoB9SPdfC;#(AB0>2P`4!%P{Nd)x$IC z&b+D{$UHQ3(j_Rut-T<`}HY#RQ%M`)6zUuCF4CY~TZUyEc9SlsM+Aag^r+`?AoGx1%Len% z23<=*wM9cR4{b5pEUbEAWK=}u@G*<38BrR=)RU=X9uD^<^KcFIu7n!4lgvZvR5A}s zRWc9VqA;dZKjkI!ur7kkL+!=b3Z*u}R8<+Z3p%MN^&I-IvTAM&=gO&PFaRj8UXCL3 zFaZ-{71dm*Hk>lm4bztQ6MGPUq2M&@B2#`G``7f|{z4_z=shk57%GXwK54vVrd z4+R5-c_{Tsn1?r)P(PXa2>-!6Y{xVw%tOC$M&=?*qHZl)&zp{~exD?9CJd{LoVID4h zFU-ToEW$h-S;fgb#ChAuJZwCrka@_39`+_vr=Aq%q4aG|=3zTp70knHOsc{>1e{UG zJT$(-g?YHe$vk|7*@St>9wyAgH?Y_+4-GICOy*%LBlBQKZGd?w--D5P=!j@x9`a-r z=Aj7wgL!E0%gHzzQR20@w34^s0~p{Fb|8T3iB`!1`p<;_#0s!PNDmSdDsxCka;+W!8y!BhEN-s zhtZjYdH5dY59Z-4su#>d_Z^(f!_sXEnTI*ug?V@bFAL_O2|78Lhl6<2Fb}ukKEXWP zc5pHe)6oyWJj}L{c~H-wONV{9I9Vb4a5)Pj`@oP**oS8MIoXH2ZH0Zfh277v4=+)r zU>{DQZNWbLv6jO=s4rn&U>|zm-NHUhJWBRKeKekteb|RK0sF8gtFRA8jtKjZh%eS) zAF_6^k$vd?QP_tMWrTg$@Ju25@Caiy*oRs$zOWCYcXF~1NkxTy2)w|_K9nB9$UcO^ zL4$obIYS})@ZxVy_Te5H73{-O*nHTBaws#{huh^D*@utls9+yTE)w?P{r8;gL*fHQ z_TeLZS=fj0*$UZ*Q?SUe54Q>^WFL;8Rlz=V$Rg~+d=wPlbI*|2Nz-1fnm6edvUt*fE$obR)12PtdqvAKqsW z_TfctT&2a;da!Y)xEcm=*oS62;GV&b!I_19nE$=75982H!#?m4oSoMr!bceuK(n~mKCB_8b$t^=_9NXr47k_rp^815O~LtVxmA!8UB{{>$IFZ?lA z%Y@n36WpshLSaw28aGa1&$yamhkM4=^5|w?aJ4%AdkHxht-oQ5(QaRHH37*i;xmd(uGVNeh^V@JVEqcp!$4u!U&E_N1>BpO!%G2&5J=&eb1o!xpk) zAwSVrXRuO$@c7n*>_mS7qytQ;J!zy8Lx?vTI&=n*rTh5@ftN+&wI{t*QV5Sg?SgBK zQo!yGx>U@b^g)>n#OI1Xj>-S1IMR#l9X^dz8%z2m|HK)E;@FF%bhdTicJ0fOylgZt zk9z@<(%VS0cB^dC=n-(W{zad~c`T__u=O5?H@$%F@ygf3kgQt>^%YOp{vm(~8oj`@feJe&!8)qq*3a8Mxk+G8s21$*U{vOD|WOaT9c+K{m>ncpfpbO zV5FOj986dG;w4h_d<8Ma5f^J+$NF-XG(+j}7}XDPa_S2W@Fr|-(l<)K!3v`^^IKMM z-8D$gR2ue?!{JX>aM;fPXDhwx$pL&2JP1SW&|XN;x5|rYQZmX49)NqDG)KwXP0q9= zS;5BW8j|KJW6>_IqcZRj2B=LTT*RnPn;phdDSGFmdCF8|vpy;YU;BS>>EfHD`O3ku za>MSW|AR|+;3O?j{_UV>m*9A{*0biB2D%O>X`%A`DSQ`7L&X2VrJHe*7AeP8$h&iz z{~uf*RG_5AO1_z}ZKQYf7r1!2bYD)=_ex6)=)`?FtG`U6xviun%85kzK8~9-ajh9n zG9<=Q<-X2%ZZgE(W|Hxvl3QnFX=9WMy(uI{=vby?#rqZ0CnZe=y&s*iTzMTY(~)E{ z;656R6^c)SWb`)~;*@F`%SvVS3OUWW)MQW*h#7UghKLlcQs$yV6)8Gta;a23xj!k( zU(1-^nq0b`Ol$Ts`qj#D%+3gvAu#7!y>|*4b)I@o*C@kA$W&H0Y2$Bxrfsc~xI}8} z@)^ylZJmYB_jrpxi6pw$CwN;87OIVyHV0M zg~JA&LNW7hU#8JLM@ie2R!ikQN3*_66OsO`JU+y5wuEgL43>qpzYfPsl?NtiH?-F1&D|i%h z8AemhQ|`zJj#$CH2T@q3l#y6_6S3d5g7YwamUKp`33rml>RjolXB2Uc z*#q#Lk~Jgd4kKWa|-WyP@2>C^OmJq*0HbM%zv0<~f;# z*(ObN`&MnYl)brR+IE>V(c?>60eY`@ltp{w+T@THkj7)zo!pLvKez!~L{E{9kpLW4Nobur8i=mORT3l3vt)|6FOfhFX(X2OkI#$ z;Uqi1MMr@g34i>x^6n{T6v7J;Lw7*?ErsYir7}MB6?L?}0g89)q@e+H2--hN$RF|r z_cLj9v5Zc;u^I*YpYq;I7SMMlO|0Ui@-{5V+m;uz=gW`@oTI0u1M4)~K@FoT*Mehl zle0a!j8_k=(}?@1lgmHviUCN)O-PDb9+Pw!cU8jxK|PCKn;L}>ySn)hP4hW1o#&-y z#&3Fc1410?HVk;Y)ybHe%AiifZ$@=9LNckhF?r;pt}IR~HOukqtKL9}Qyq{@D>VVI zQCZZi_*K=u2+68;oJ~`4!_nvi)S>vzrnW;!b~Sft1ygZlkJD6K8T$O5~eO3$T1anuAYLaxHI@Ipw2@` zLA46J*X|Td-*W4Uaag7?lMOAac7spCXR-B=!4WN>vnq$PT4WJsAVw@$nOUCP_ zVN@PYWtv>K7rp*s-SGOwlk+Hw8+)+?=oUe>O;Fwh>L$rpv6HHU0m_|J+D@(H`dcP3 z)}M5bHyBPKu6@6q9H-ont#uUvV$0=ygMfwe zQW(W1C-uNg4!2`cNM?(8SdOf^7=jJAVDK*la}z;C4Z%D`fi>Dt9|@`8A^01-qU0vy z;bsZJMpnU2Fo(%aJ7I*+`+5k{{b|X~f5h}Rl`NlO6>RYdf-RhQr+l3$DBeIc?`i{> za%c{~VhEowQ2>8nYAwkJW1S$mO{O_AkFsb*0iaFMne0L0LZujS z1zwPyPJ4|Jzd_;(6vwR+C_C@03CK^3y*!#+7#;i_V~?T765_D|Jz|als#-$a(H6Z8 z53)ByaFG39e`0IDgNT?@5a~ebQb#vp$|AgT6HGPhH>+#_pymPQCSt2|0UXHQ0GI5D=6B28SsS>=x~1QFo}55lCOIIews=7DnS)vpEt zwUc%ggil=e5rTgjaU)#2S>;C`#QM|>*KbyNb6Q50p_iT-$Y?jK?1z=)1t?sUm;OPK zcC$);Omm7<)-(k5Y|xg&@Hq)tq~yFFOZVT!q4(`e<_R% zI$vlA=_5Znd@=k2Klv6j@5I>iWyTd=U>3UVkzm|1^lLhdn^nTLBX)-Jk{KiC1!6~@gf@mN9>Z%)Bnsw@G?kTdpqS1B**xUr8aKa7VU#il-C{jP%0JK4fd;#)i zm2_uO21~z0F>Y3QkJ=}4`8(0HMnrkgD~r5YrB6rMQeJ+UM!Uwtd)WGpmN%Pl*vQrX?Q#_wC={dSq0PodkE}dh(kA>ni=lHrvylF zvI%MjV}@tuxdt;$?J85P1bz8$XhlNpVN=q$StTCbhyd?cK~WR;^LcQlL~1i)x=Gdn z`djzS#l0yf`TUkL_F`#iNW5Saur2ylG7{1caKVp>>m!|~rAFv`K`hmMvNdX4)d>E<;Nd@|4 zf{dG0DwRV83?x8%kH*a^+i7Z{qzM=|s|;%ofcoqtL!Dlf@@ADrWhJBkXAI+Jl|8;p zJC}Wt$)GaR>ogr>8$L^^jx7zMb?r?{L#YVHLgjpfY<~~ZGPD#$ae1@K%loL1Uj6l4 z>ZrU~W$8_zVV|MK%_;g| zDLKcKG;UV;eF@&m22;woStUD`U-@q)VBD;7E)IF1w{qW9XWXpPYq~V!-UEyx5S_Vk zvr5=*c@}RGVpuG-)KQ1;n<90%O&zi;l{c#t@t2J5UuM+f1?EV`bdw>|k)@BqA~M+= zPp~6{{DieeI#AgEF5z^uO1%cy14SU6$6^#V-K-K3XbTu5tJHmf&cmQVFl&AYR_C2C z6dyxz-C$*B#p(;4qE;x|Yf`W|Gb({6(|=Tew6qU!puu|cm_+jcCX zT4M~&;NOPO1vC-WsT7q^dkFb}5%TtBN811uRm4rxDt4X=*D<%H1Ii;}wSW)`=ynVI zdLkeM3NrbZD}#UrD~~WX6!CKI;$LA(DD=W|m~647`8oF>XN|4dl( zLs5{F{2+UlN7x3Fid{C`2P2)DeEu@V8uqQx99sdfFOd7&v6kJiRtr=(ZJ67rBi5rE z*7D7b`cx1E8*h{y2BP7)u?}o5BM}>^-GwEiAbSp|4AUOZ?x29e6rep0-$?=GC_sA* z+(Q9%DS#dwt*~_fZ#@nHLH5@8%}--28ZwKI2N6h97ct^DNX%tqo88LB8dabfm-OFm zzWJ^cO<7z{{sJZ z{4xN0!-&z%WKi;aV7zlw!%DSaWJmjwWg&Hp+JU_M>qrlqC+cGuIxqx9~~>|$;q~PCPOAtFg`h6 z*OrW3CPV6=V=e-j_qtUwmg^=%7Pw$=?~6KvBL`YGoU*_LL-BrATE-G;GGr`t+iRfB zd-yULOJ#$BqPV;r*+}P|6%#wc>NYdMa6T08C@{VEM@&QrP{u6uq9xF@W{mg^61%Ux ze;f`i-ko4ia9b*xICnH(jkXzNUk$Bci}4d=r@}$=p#bfXe$lEB;Qi?B*%mlQgALp(#FlMlm#rqIc!a3YQ9L zjR&eo>Z_9&F=ubA@+u?H{=2qgjdSw<5D`s$6z|%aH4fx;g+iQykeuxTK zY7k|K1k-igL3Tx<-#46IPGjf@(;n%!-&Snj3cQeE49v2l2^I>uBM%{<-+<6nBE}ga#t6&?a!2>B z^cz=|_&HFJ+_3{r7I!3~wQxtu0eXJ$6Fv7@M!zd*pzDZeOuzH#>odnsum<;jNP$ZW|=Lja# z1f!P85Vx-gvpRPq|teeCLqrjD~++!NA5v(%1ewrl0fZ| zeuG3n`t5xfYtlZ*{=kbk^c!Tqjo;v`ThPAi&&o3n{&xzi|1CXGHy+WE)t@8HfUP|z zTK(_x1GMo~h{2a0xib-uS}*P5*)dUFe||5F3q+m|5vwS%;DVDCuD_twD~a8*V&u2g zU+BaJ!boD<@FTTXz#}|wL0Gh`4=NcEBuJ59xrtJM!HW2e031e-F(Lp5LL(r^P6y-# ziL>Hk5R`HaqMpJ%e~mb-n9G!Xv@`&HLXAo zD5G3GjAy$T9W||}jgA~*Jk+$3R(zSnc&KS*V?5*(qn)Nz+6__IXsCh-3bNBfke$xA z4-&V9#K`BC1t^3rY>2UI&vYPGkev?SjInFabf`m+II${7W`{yz>{Z62JYw(@y!i)w z>*XJP`5UZ6_Q6&WyMOhy2v@64K?$q7vFDemc`=ub?VxzZCmGdYp4Cc~>Gufyd7FA~ zF-D+j_~dGVQs8XvMgb1&_nyjWk7GJ{)twOZLD}3ikj&$ z!qu%8=-`GGn0#=mu~#^j5a+;$+QZc5tHjpogBT|dQ`9KbpkXNfzwsYFZa4&N7(ORR zT7;`4u3>3bjGrdjb&+z6==JE`=&(df7yoh%$xogMyhv^m`dsc z{9@PqVJwnj(LKwFeqJDVA4KFUpfPncrWm*yjot?lj*p~r8orF+HaNrx-$P|1xE3m+ zqB7{Rsk^YEWoKDlVDGfufBbHudSg+8si7DsVVRZ2dHz)%WB8(t^Kd4Ge=@(n5*pCP zl8R!y>EDo3&49OM%fsnC`7hbB8p2)^(GJ8DR)|FSQt?-W5iX_>EaOnoA|&@m!A&r^ zi|T zBIq%mfG6$0J_cW9@v^3%=;d8}5LU-iGaO1eCsG_}1L9yEC;>)6u zkInhNlC$emt%7^^0o$@BCn~~fQ&7gZ-~nRXb|0IcDS#ib3bsPc^xwV~<7R%>L(qvm zNB%pGVm@DVoqVz-kMHtA@RwXpC=8)+@!GWMhG?FEhULF&`Eh71XM$Ay(dm|k`SJg? zVhUpvz>`g_F8=B~1oyP7gK#oXy-f`75&PKv_fA1y!Kax@MeTC&Uf2!mzkdr_r4U?g z6&ySi5gwRO0fI+81P5kE9uHlpDr3BB75s>SmjB^Ev~aGVN3!P8#fLpXj7KwJ=ctG= zga~>CsF4ZSZ+7xD%XtWvMMvjqR1d+Kqak>rANj#lIMb|x zKNbXb@^LYQukjGP`zMlfdT@H2n2hGekD7umzNHOfJd^b&d;>w)T@#Duy(pz;JKv?0 zPBrpRI-EpC+scEU)&JaPOhNK6lOaGCKbiwYdwvFpqTW>|f?h(u#zOUl{&^wT%oLOr zc6~GiFSWsNfT}(pU<$hUU+B~PFYo>n-vUzYnPpxp-@A z6!E{-d!F2RaKyzZ-J<+>{oLFPe`*uj_yFSrU@tGtDRp>Z4Jkue3tEw_K|^ zqX1rr2zo~2QG5LF?065s8m1tbA_#gNLvrqp_rhmvB-qLnbn)u5AoxHTDXYm46GKxN z3b}`45FwvuDwR!P(=iA>{sSjdh-$LU6x6np_&+_f2Uo0-@C8$tI%1^gAexu|v+EmV ztp6CoPD!BcB>vAgoPspHo1D}2yy^t{`riLVeoPYz0v!OT6^2eYeguhsnYl63uCz}! z2#7wYBHqE@Q}v?{`Wu)oe5eq#zi;x4v42oW_)LRNF+avjV1oR{0vGLVed;c*cBGVclkq7Ki!U=Oictu(qtZW+?-?b*B33Xb z79RbBc<>3C|C(0NO|?9Pci5^h@(6h+1JvGlBo~ZaeDq$-LBk>8V+{sgxd3zX{4^E) zBLP~;6OmQZ+>;`l!fgD22@gjAZhfa+ApXU06c??7Xp;D2Rz;gZ8Z$FI}^DUpQZRPCyf$yTJJp8*(xP zJl~5925;Yh79Q|o1jIuAX>VfzFKMeN`RcvewqXH(Ykw&rLr_NoUTJ^XLsH;~2fWt) z^2*gC18~Y>d>bx3;0+2O9=_;2qph%f7wH5)idC|_Lo%oLHo;4 z`KcIE>?2aixP~#G;+V?};POw!r&b~4L6LvjeXe0@DZnQG^zxa6iW^{;e>zxsE%#o0 zjG;Ka1X%@r@tynbT|49A0|o z0X6>wmA{3ouXutND#B}tzp~EO!<~_pQBNdTTY!~KkZhX88x|%`a_b0gGn0E0>CqL{ z72rS<6#bZ#bPMoX6TD6}UV^a#+-!nZD9aM8C%{uCNM(SYmyXB{h)bdgL+Zw!5aB-M z9~gZK6%hY!uym5W(f>#+n$JxHme6Jb8eo137wWY>sV2XTC9r^`vEN|!Y!;Nd_;f1v zhFdpc_dTNJ@unsh7gerFx#`lQ?rvhyJRaYY2Q>W@j?_&uW0CH{ADAT!XkG>TMufYt z!YVir&SpT1I#ZCmgQlP`>bPr)8ed9ywEQaSrYY#+qA9j2;*{72D<&Fd>z08M%Q44N z9^;N9!Zz7_kkZl=u9b&KX*3^zulfSoK3qjv_W;-3#v5q&paKf2$7i66zxF}p?Jytf zo+6Kv%qU$vTT2Lb%mm*=%fA)d&+cY0pI!$D~5<^oXr`z>==uZt`(P?T2<9e&)?{SH1{7?A#8&VS z6rJ86_a0f(8<~RefT+Lz`Uh-_q*CC0tk|c+Na^64SVa@qbSviChF3Bq9QH|IYpj^) z^@mTV)r^h=ZLCUS{Idv&oeUU;_Wd<9x!s!PAL~`#d>3Z zSHP$^xUNDj%8JcRg52oA_oQ5+iA8fiOt=J$&D0EqHrxm|>x=n>H{;g}ddA&O#hY0} zT(g~h-q}X;=Y^2R31I=KWfx7oU#>ZE7+(iW9NQmhNH^cm`{kM=tm5Qgmn`!<#Mk>w zVIrrb&m_ydf)x|?a;kSO*?%;$V#0V%%lTB+jXqXv48~&tGrZwQiE^E8#ilPo9>2NY zU1Dpj*bMAn2$=aBHWdoFqgLzzhUx*cD&bdPcTFss7hMjyZ|4j~Sp+OF%3|#vw4yKk z;H7l@5ieyzK4S(q`#vj_<$i`VL?T{znfM}xE_m&b&%KxD>kYm67hWzOc0AQ z%Yoj|&=~_CI^c&^=voC<%8IG`fGv6WLB69n6N~1`N|g1FZ!ufQ2OHu4qnP*hgq~&T z-clhD_y4N$~z&#O4f)>kJ1y6%gus)*OJ{#L?1hWP)zpQg929E(hAO9rN+~a@i493tR;Flbu zWbBLnhfb|sxp?z2P`q;{W_&~vj{gtEdLyY*4=MijBsxezfA>GMqZAgef#TiG@ztJS z=0(YVRsg!r52N8i@4fAi%&K5&6+};C%RGp5U-iC{(8h!C789re`$P3tKH7tj?HLN? zz?g9P@|JlJXo)7^(7;ff6G5)*VIpXaMYzP;d`Q6IZi{e`3lSce1mV+b^C1C8*TPK^ zZm~C5G8a+<&4&d17WEqKi~Q!o9t4{12sk#fiJb1JVGvN7t&)(#JLhvs;S^w+>)c)& zX*{IF+V~Wb`C=m%b$=i~{5SIX_+tUujknw&vkrU_7H9&VGn7*D7f(Nv=UAyd&bx^EJ1+wNWVcMz}p+&#PCw5 zFqvj|Mec#W-*^DF%(4OfJ`$czzlW-|3M*9t2^#%@- za&aaW&3pe0xfkn?qAGNwaFKPbsYLVAXmzf*Z7q<}lw@M!exR(8imQ)2L&bu3NAbx=@UkdA3 zp0J6AFfjTwz_nuEKpcNa*m4uA!rOLh!(1z$+-I83{iaTdt$J1nTN6m`x+&-4tM)_Z zPbDzi64-xMjCS+8R^NIibp|an%7W631kra8u8sF5OBb#T5ky%4qi+gaoAP13Nhoe) z3d@3gjQ-HIb;s9I`@k;~wvCL&ZU{>DJVU#F0BI7ILR{O+V!Bfhc6t!#bbr^YAMJ|P ze6E^Nh&K_*>F9nJ<5|!xiU#({gYgsGXjf+5KT0z4EH?^4zD;K}q~dUA?57enrUDW4 zLZJQLuA|qcNa5zDuq*`HHsbni*+oehY7(S&LHKr9MLh^24L6TsCxys`+k+s|aQnVp zM$zpv0zQ^VhmtJFZ*Rm&e~nP1CK5xhP1(OkWqI%r-mt)yn^-t^R7Pv6#PeeIM#Sy3 zQxk>lIs{f&ApXFH26`kk#(sq!^J7gt$X*HYlq!)M3+Q#m55jzLL>pG;B266Ae4&ev zMX}YHa@3Eru?XWqn9}i`OiyUz6Y$>aO#Q8tjS-)hA#9Eno3><_#1gD>oBS14XZj|r z1_`+yR&2^$#5bc$5gd(1nkJc;W(DfZOu-0+FE!(e<{Jwj9kc6UX`Jsg!?hhTbr$}L zZbCH83#Km3IM!L5bBS!W{}`BaCE`Wq$T-&d-Z@kn$DEjg)iSOV4#K?F`C)%SsiB-n zpp@$xmK4A|hlsxEXM{Z5+Z*NZqbRXd0=2Ts!yOd9Ol$#|VT8*q03|dj&INhB0XxN9 zztp)>fPa{v%oF(&bv7=2ivvQbaG!peuq!s?g zXQa-_ukWBhYMO$ih&ALt4@A^2KH|&*QMY(ogTXqBFFfkJt(aY`PiUpU9HqWNBtdqn zlQH5q$o>tU!)W(LkX`#-N&y;!uoxLkD=a~F+HDggHsRnaWQ3%z@egCoXZgjShT>dn zXv;)2T)h^p)h2k!|3TjO+d_bxnc)^_dq-Nd4mqHoB__TRXwmw35qynO5HuTBLA%1o zXxSJ$z=}a#SQWUR*!6>7?|qNJNI&N(V=1MTm)r3*LUeslg6v87&A)mZV{P%^qz9JG z3&U)`dUVLJ<4sMJUY5XrvDe1$@hni(*<+CyHFOig)tERsP0g_aEAre?As(rAOgaj{ zaiKb1r(^d-`tALSezV@C-%nQwZCILq2cdW6jwR%aYsHZ5~JrRM}3zdP`{L!}R;#cZ8<+&~G3%3vtH)^mW)-3!B0n=YFQ=E?76?juu5J zWSvXnQ~3MY^gIx24BSyCAN@vOqwq>Q>A4tYW4PnzaTKy26B*nw9L@)K)ILSOA?FD# zj2grpGf^hUQ5E`al$}aoL|OWsnu(Z|$#Zn94yWe@*XY;Lj6#Ad5@&T;dfuL$e*4o7 z0>{gn^c=I8p38To-{__kQe_OuCiJA=wks&ydn^4WU8LV<@91|wR>im@GOu{*@JY6+C-q!R}}7sOhGV#L1+mb7u-) zu!o*&k*uRk06jk-KiB&#C;t2qq^EX1`t`+ZJNFKU55OI3u(51EJ_x^N- zo`+*Pf;&!cqTk62@aw&J8--Vd$BlG~RMF||+`BBM-MFLrGzw3p9673?#c}Uf$0&S< zs9iI%Q1}D-rrkRSRdvVT@MO57Ml}8Yf(c*lJz@;;hl;X_`iA)3x)A?$UkZP6i`?-(64e>)iw072cPqZ@yK9R4j!Tfa{9)g6SmGz-pwYDCOFF z{X^oMh@g;z;(cuxNcyYOuVd6aLMP>+=eP9kymtgqT=fr;p81UlZG`1e?p-4zg-i`0 zboFU^etwU_V=(Q{9niXxr`?Gy}fhL^A*zOor4yoyw}a8@Nd&ocxh@2-j!+hxp!vlib41z3h#yqWbR!e z0cZmMWuL4Vfz_DkB9gQY`U|!BE3M zz74i$b76D8fjntzNx=oI!5PSYl&TR=5p+@pQXrEBsfA6I2C~6zN!$Hy7G&=SOA01q zJY&doM4xTMvo^a$W;l8=1DS^1%Z5yjE|z%KOt+-^KeP`+CIt?MA=7H4Mcbi|mi+9l zZ$Z{$OPnFo6^CaT+A43b#8a-gfkg8IO@K5B#iR~*ZicBMcLWx*MMerfavZ@0EWx#W z5nYq(P6Su91p7^-;32=DY9?BOC(kD(^Q)nfcCiFk*-pXj=OB2bHFyUp83xCd&$R@r zHIUsVekZ`*U`yk6rMs$YmH%4$A-&l@mLv z{}tl9jJ(N-q>;key1;+lLH^_hjhd-v3s`3kkA!L3oDb>3E)t zC$Vj}Rn6;N(tMuTs-}Y8PNBxTagYpQ&M5QP_?=nqd(hLH;%iM&|rk7rD1#F+@-m|KJujSBt){#!e zTfC0e4z#5O{p*zeo`UD@1?p2_h=KZ4sJK8+M{woo$b(OX`4%*HLtWNyb0FTsZ@@$< z+m&E*^=8@><+rj-Y;OW|yxxIN!5Lj#$AT)VkodB=S3)^kXorw>r z%NWsYyd7vxZ^*J_9?(f)Za=>HnwB{mPv$KeGUm?0t2WX~!^TVSJE>5SgU3Rg{|ISc z@q{nP1dvk$_8WjRfs#{#-zKp@F8ZZg1}eKI?Ym`nJ!NG(3VoD5*r^I(L8{AgzXKck;OQ_8Zp|ECQUw4OeMJU@xKtaV6^jK&_uht06$$v zb`2v91|p!Dc6T9O?70+QYz1km-Ccwq!iu?Q7Q0MPJKD${YpXE>m5gqckl7+4_7u`& zySo@K`U%;3WuO3Pw%uKvFByageRk?%NC{m=$bMkH{j((8s;ztA2W`ZMm zbaO;qz~=lLQ|hQt{ICaurtRGwY%jCQ=pUNViz!HLXRP}NW!V|rD1d%~XWXUd%~=43 z5T{XfZaaXvS123c912E6T85q&+Jxe6uJl8{N3#Mv!K8_(v?E#E9hIMxZ5m@xT80*1 zB&Wlz+_#i+dvGWMDOx}@QRVfh1mlX59^)zz)$X*4P0a9I7_KDRf2)PrY(<1PVR+Rk^x(AvCqijw;jZwdde0)bl%al}qbCGOLF(PRmp zF+uI1B=;E}1qVf_eQv6i;8|X6ChiX*wLZJ`Y(p)rmblOHGH;~X!d8%$OWfsbdq*=( zZCwJj*G17lT;%vN&(TU&7&;xvoj(psyi|(^Qf%dUuym-q)su-dP6X zBvZqx^UnQ{&u+Gw(TsIQM{DD|47H*toDaVhyenD2%c;CV%$m)4W~#y%U%SdqWX4H) z5b^#x$oL1Iu_#SNW=5ENgTk`a;FmFwa@&=dAd0jAV9kKl<*C! zQ57vtSBFR+7y{iT@jD#=wz3b40h}I#lO7;p{2Ii4#gjJiC{zX4=`}HpcN1KvSbo!Q zD8)jtG>{`QX+M?*y0aW*Xv&hTdmcUrQ#d)w62M)E%2zxgMiE|4{8irw*J6}l1p#(7 z!KP3G$$_M?k}%X04Nw|tZ8bbcG#kuVdx~?l!Eg$3NvL{N#f%)aYRtfmDaavDhhPJvMUWhIKEW*ZCUzbx7IF${cHf6vCgduZ zSV>L`9XaZ)#-K=GQXgI^y_y(%D{#ZKNBRvC0XSe2W4Q)HF$&HUI(a=PA*%p}PQf%S z6?{ksyy(!W+F$mN=NRaQPK$z*sf0RMgV924X3vB8aC!h_A;A4_`r24o*UZtJbw}U9 zxqoZ)QDw_qx{m80+KYhsi*dhRwH-M)n}y=#ye9X;j8y2F(6fw9{s|#2u1sJobX$Ln zbwxwYcL3!>(NNhjOu2>rG8R)c0*f}WXnwFI+AWNLrRO#Ic; z8g5si>+lG2S*94_+F>Lvo(`rU^i<71aSyo{2&)VN5|N69htP9}GDz&CfjLhili~+` za8?Y#%VtzwWA~#-$s5pwcI}6#NZhtSB;rP^DM+-6JZg#7RKOhsr|dGG{v^=w&rlcl zN7ohlbTdAQ6G?O%1QyP>V(?P7k=e{fiQaQ4d_S)dw7?h{vU5& z0886qI%psykG#J8-n+!!{xCr;UGG$gs1F2LJ zC8Po6TPlU9RR7Os?S1w+=eob=@%#1szwh&$v)5jqwbovH?RCz3hJDTfqwL5~^}*aO zFrNJt-ikTwhg3XiF@ZMt7AkB#rQiJx{zNk0g}6QqiDcEnt+`t05R5(a6r>_+zVpzv z&UNmoMCs+bAr#5Xwa3#f+}r9ts&y-R=-MZ+4Qb1z>)j#kHuli0YoB+~-<(6!&<{)cJz!#72Dn}=pygEw`X{!Y=lpLyuo z?-N|FO0Rofe7@kJS=W?yy-J?0b&I@Xqp@}`9y>JcBA)cQx`$@{qFl?#v$bv;4_(_a zm-YEG9FRbFh=*p4PjM|L&)2%oc<9<2n^@hEwM93}L$hwdO>EQOC0h3#4_$jB?)e*^ zJK#DT+CAl=SuGI)qnoL9BYVC64#ayujP9X!qFdfWv+}of(d5-y_f8L8TMBy@qx&+Z zm7?8yJv8gtUtBbKgVufAL)YTi+SSc`j2WBxqK9TBwYB}-rggV?=-QWGa?#RBJc)>8 z9`ewv7cp7a^!IhGd(K1G_9F?P`B(GX| zXx7o%u2;$LYuyJtbZwb8U9|Lo>m|-pJTz-gd)w~ES~t@}*M5L!2u-_NGNj$z9-8$S z{w7R+KhwG=Jap}I3*2^-d6!WYez4|y+>_Vri0g+BpNun>^MmOSaiQT4uf^A3u_IFD z!EK5?%^f%A2^D_iKKwiA)?(2PxX6|~Ut68xvpOu(c+`_tiCC+jJ&TJn}BOP|#(xHBp(Z>Ciu)@oy1)ex&61gsAF(et$@t!8Sgwcqz5@LGQ}rg2~f zBhU-4EfK2~0eKO)zME?`d9}7T$!9MahhE}kciIc|{bl@Ri@o6id(C&-@!O#79rD?G z?qSo~D%uP5x;O51ioLf2_9}I?{%zCtuE%v)cf=b%YW%xQdw~%zvd)Zn5y*S}ZGFJn zdtKXm#AmPCSH}C6UpuIqUr{Vxx?D2VE z&%YVv+}ufiU)#I(1Fyf;a~t#w?FIVVr?c@d0(sBgd*4|9KGyd7`RtuGd9S}8U|x=~S6175 z#AmM~Sc0|$GuYqOM@_!;3D~O;w&Q!fwzu17uXh0x-37E4=}UsdyMu1{eAsG z)8BIedt-jK{cWo4rTFZ<=5F0pzzp`c3{L$deoX;+@f(Rbb0%Msw7um%d!PKr`1b_u z1^U|rr#xcs`GCDj_~SD6+Gu+heD<=i(-d?c?FIV#aR+z*7qEA-x7~hIw7t6ydhxrb zl8HtP%wT^@Uo`nw6Oh;6JZo%!yJ>r~efHK=G_4J$y+D84;hB5s?}UK8hB)0e{q3dg zo$}fH`9|a4cG?T{w`48T-%kSedbhOp?$`EeBS+lrW1f4?76)dqzrQEA`#(Tle`k2d zS3|VDNj`gh7a0G#(_WyzdG0skJ3L@7*PqtE;o9CIpS=sWnbBWGdx8F*!tH8_-&+BD zuV6}>iQi~#@A^-@{`RV5#^W;W1@_NJP8fSdAn*0}y!#J^YgO9bBR+evh_Tla%wT`( z&okrECt&ZbMmC=(X?weU_C~cb@moN9f&P}n!}8MK4FP*+pEeqyx=eD*HvGp#iMGuYoRzcTsKK45QRQ#&4Ww7pF} zdq_697nWkg+$I_5%H_Ho)|ELcrdFF4n&{w7pY4d#^rj(CxGr=oxnUPqe*5K6|NWjJ;K~7wB&T%+1jIzkt2!c2Z9A=i1)&N4@?YUTExH zroF)a`6t|I5qm`-@AdbNwMHY9{H3<{h|gZxW(I8uX0X3M3^Mlm1ndp$YvXrH+uQB4 zci=u_ZvpKE`um`}KiCkk*W_Mn?+0z~+GAdSN4i(=&d^?}d(You;}=;g=UXX0du>M=|Eho)>~EJ&#=oY3 zy!Z{mX|~DdeA?b}pS@uSlAuq}UZB4};qJcV-}3=`9r75BP;$Jscfn`x<_4yIBND$)0`?BxWc|BA+pGPh z*WV-G8GCVH2K&3GpNU^ZKwf|E^x}7mwl~RVufSqsuRHAp`rGV#V{drCUb`CZ_|`sn zIut4wy(9EB?ghr*m?sqN$lHmy6;y^d7^9u^jiG26eyc3nB?d9v3oOIg2GMTSr50Bf zpHhoLEmmH=hABVMW)4JE@vm?vOeox{ z6@GK6)wg`P$?Nonuq%-y62r1d(7HoE9lGbxEr;G-{Jc2c27mC&(cjQ9rnt ze)#wSRgh5`auY&}TllmZ3Z;l~uLZm(7=sjxa+WIIiVm4d%yH?3XvCrw$YcxBD^aBg z#Os2Y!ftBg_y`E-#OMI5^L>pw445S_0(1hKz z^3C__jRtSQa|P_k*GoatK{%pL zxma-I^OYkgRx$Eo+-m_}mcf9;qSwJf;a=Zh`XqZHGbjqx|M65{GDe~Le5rst83UiT zM0=7a(r4O)p%y4A(I1I{G-UGRJ}^@l6zxhZIvR9hbOzS>#ut%1SpYhL4kboO*8UFP z5Nd4v34d;j#BemK+5@r0&bpshTC}& zbqT1$7Mz|0-8|X*h`T>2N{j+FPYU7&9fc#Rwu=S#Ck=7q9C;#2p%gLhwGfMbgt3W5 z`$Me@SH0ABll9Wb$M!m?;d3 zb|n^l7j$CuE3ETP$MY}9lQW|#=k$|@JXIXpJ@|@ z-XxR$NDQPQlP8~nnZlrGS7Om$Kqp4?A`1EP^AW^Yv?%BVI+Q46?RqJaC-Z)|sysOf zF)vSkmzv3wB8UN>iPA@=2~xYNJXr}VYCYVF7s}0o=2AOo`8rQ-f?Zc4NhI<^U2AFy z$rJkN&^?E4IrPTn$>v8)p4?2$I)IeZm;!E|w3x`zyqnr=!C8lu&68b2^l1P-h3E>{ zJoyHv0d?4d za~La|C-c5^|97Uk0ya6X~qsdt38@544z6a<8 zHjx-5S$heN)3Ap)`O8&}eAQq5Bi~eNX5{aciaYWTO6{sf{ydsim*GpiQ0}-kms%Ns zny*KG1njyJNg~l9n}m!!{dDM_L$@4yV@JNi?`V&Eh)1Y74v=!5p@2K`GjUHTqMifl zum$H2tnA1SAL)+#8dt!Md`&#uPvMCA$i;#qfA@O?#VST#jC(D_q5}~GT-|^#g$LBZ z9)i7)Jw(A8i}3KOZx2zhMlsxW_s(=Ve3B>9XWE3JT2QYyT_W884dtoj4PK{pnp?NFV%Yt`lwB$K9rFH*m;Oe%$M>~=v zsCMKOo|6nX(gX96jU(-}vHN|-k}=hufxryJP8yx$L+9+Y=)D?U>O;@qBD2UMlFw%VR^XBLlUuvp!?V$~BfeRHKE?dwqT%^L>n)k7%@t5B<>IW@!7kcBGr2 zIwC_~#p62uq3MEi3=@&@+Sq8Hu|D%{Q%`Gjjt{NqV4nAk&`}0 zzML2iI+8KT=E#d8J|KL-_Ico&cUngl>88qgXrCiE>NOEruF-}*^pAh6BQI-5h6t)7 zG6mBj0ued$h8>z$w6SM=#wtGN8cW`y(JUYO<@?sn9U6VdhkkRHMZb6on@42*DM9)8 zdt^hWLl!-u(a3KMfJS?}^C?1Y-_o6^A*k-e?8DhQ@eoe8%&@+z9ce4#daIdK$~N_p zMj!N{UktP8A&pM;p$n(Dv2J@*JMx;(kty-n52@7j^xp0R=R%h*2u zqnjG%p?!L+w2tIj$K74;bRYWd5R3jt58QS^^}tO5ZF2KxjUMr#Z{a;WX17s5EYHn% ziCxs4m=np?i9%o6P88OT+#uq5Sg+4-@6Z<0=v_Ya+c@h;X^r;rp??;!=mqWOctLe1 zmf?D;>BOHJUF1W5#SX=EqN47^hl1)(?8QG+U;~?m8}Vi&Zq$yP@i}tcJFc-39^AT7gTrR=}xv2c{JMBhn{mM^o82qE|%v$FR1Rs z=y0}96uH^%B^ql-Uhz5dY0hej`0^m^^)Y(aG=u3u)+n>D(@hqlXd z(Y6zGC%zF>kHlAdvyH@%Rd$=0qB{|~Y_opg7sXv;$w>2EOQghCEAfGp0R=7;c;IxteLv0Ob_kz*ABO-4pJ}wZ5AF4~+f?!w8g1i44|hz~gIIWn+HYu8xv&)Uu3JhacJ zjjbaWG+Oi@F93apS=|)vW(`4gC!YSwj$${Bw)LSGagJ|xlYie_iG;7XKIp7n1UMp+=q79XLWmNH!ljRJ27#G4Z!^x zy%tlC-6O&YwOrk{Ma1&lW`gQYe2HVqz;1HtSUVCWbSHX?xZWntJ>(ioF00)f=b?S3 zKVzeLy++f0=*-4ecZha#yP&!g1v=SI4AMZhT?JAKquau zW;;<`cj5*S*PZCQ)w)?%yLp#~_L=P+Slpq}K0dU*w>^#4ZjKjJccR!0wi9DDy2yuS z)v=vusyp$apn4?wrf1tG&UdnZSV_7QXFNv+*7f#3ZM2*DaqQvloqn%qyO^TU%09Hl z&(_VJ1r(oE?gaG8XO++539{V7kje3#xW@a2hxCr{YR>_@mEbDwFZ~2D@4i7K%9^>_ zQ(7wS)t;(SyQ-@_-@vB&9`42qcPBQqDaTaIf~%JIHG?<7k2{IDAioz1nkWh~BItYJn?YulAg; z779@qZ^3Y};MJb+Q*u3+R&ljQjC(D_q8zhWbjusO=EDJz>o?L1(TGLQlgSpOSE9uAS=ma*A7$sSI7arWf$nVQ_RU>~IV&2IAB{ehh z#c~sJN4~Puu4?3u!HPNwU*d&w$F;fCas$+SJ@Qpy*Of>Ti3ZsuWaR0mL-!oI<Mz`xI8xakv#Plsm4?bq%2A>yfVvyRJl%NYu$DAtO&e9lGbxEr;INk^iPI+T+M~ zqGl~X%DIyQ?#RFBaC}Bkn=LrUu(BgR>|?!mji?!}fF1d)p(;e-hSY%Tj{F4(VB~2PBQM6i z7Glx6&{^Ea-^!8afXK*8FGK@h!Xc9_NUucIjQm9~Q`k*yJQghsIx$)q>wF(Hl##Cm zI)P1KR{*kh6Ws5{$iG_Psz&}(h{B=^hs*!&WR@4Fb5-*fHuFa)( z-tzUh#$eZ#ND_&gpsqE2BTqjay64a>hu+wcf9ra)x4(y)l>sTICI#G)uYRQ zIPx2Dih31Ccz;988~GxISTiGki&WhI`G!)vs*!&iHq}1(5-*fHuFa+PljZAiZ3erp zM3P7(KwWG4MxK5;bkCt%4!yA>zbLmE`Mapu7LanfQNSJf`|u9hi0VxfY{7XCD?9QH z%;QWEHO3XNBi}nQ6rylMEpoBo$lrU0pjgGoi*c`oSoAh@HWu9v-NHS7!u>qz=emZo|p<52Uv3c@SdGp^egqouODQ5x&+&sBI zKeyvFpblGbe#Oe>Ny2UJ9wNgPuz6DP)=-GT5%rFX1@mO~L^&#;Rpf~n_gaWWdm#w1 z=p~?q7yW`fVJ{?42GuH4FYx~0LA4e)_0Kfp@JXIXpT&MGS_SHr=#Rue8Zvp(7)T0( zA{|7V-9RTsAI3W0QB2;){$vd31Ui%`WbOR8W{>?z^qQ;6lhzRP@}!T{OrAU`6*o_& zN$slgq$osH45u&gLb+McTxtz1U+2jz2)hzVA~7PHgyaeRbm*Q#w;Xz7^Mr3Nmt%<8 z)LaZmIWJSd&67(va;Vn>b=ZPalAt>?r0r-oPd;=7Y@SrcMIQ=B)Xy#!%#&WPOP?+YT6 z{zwd@A(JNq!AxOLq=RU40_eo(JgoDT!OaBZNe1WyI+Q46?Iy$IShGsetICsg5cBe6 zx719Yd?^(-PtHp1s`8`(L{&4)(~lR*&4T7q>u>owPkw{2E0H7;3$jT_p3qN+?m2YJ zp*J>9^5fBb$&($_3}XtHatdN?^JG&k?oW;Yb=ZQ_gxYSNWFCVV5@JHr1C0py9`UJJ44D;OKR))HvpR(X*p>_vG+@|rrds|H~eFI4DB zbrweq?5v`KQd2EvUI3{xtXlbd0&`xksg~H)pJ5z$$uNnQc!o)lWU?KJp15c-?0qm( z7*5@ZSo9R=#OP(L^G(Sm$FzA7%LH}>Q(-~Y4&%X3?1`pbcU2ko2gJM#i^oG^_Q>W& zskj+dUusvCVd=1`GT=+RP;UM-m)c&-*BRCbc3p`ik@!2Cgk%`~bm*Q#w;Xz7GwiE) zvnMJGq4<`7l+%d}h?zIq$7C~2H(Um|8H!Xk+V=tamB`ZdBCJ|8TQ>^3Jiu*YN$)sX6J532Z zwNtES+>ica9}ci&l0-#3z@#X2yAo|ll*AR2N!J2NVb~-D@ak63xafs-z89yV@mMq& zbOK$*R5*~e+k7o&M~88f`6`Z)o0afqQWvS2ebsQOxS2FjYFCv>r_r=J3t!@ea`U9Q z)UE-j`8t!*VAqvM5{bLBNk}HqPlxU~bjzVPHj`TSHkmY#nlAvt(_IvBGwDDP9wVm$ zb=ZRQ6IM2pKDooa3i^^OU^8jy4WST)BkC;|3ue;biL@+Mkx63QYatfB7eTeO1^)GlSDSpJf1ktwmQ0eUuvIkG0=6pA zmPAQhF`0B9kQ9bZJB#PPK;!u@tnHlr)*Nftou3;rTBLxS6zhG5_`U19jMfQ;(qguh*l8dvtWh6|k9fFD6G&7|(xE zPm}}ydYN+EB>*x>aIXbC|Ahg;^Iy;{-03$QMY9*O$9bUIwg&@yoCm5Ed*45MlEWu? zB7LS!7DpblGbdJ=T=$wamb{w z^h)&2$d3mzh27M~W6}Ab6Qk>~&bOwyjQmc}32Y)UO0xFMv2y;@tn5{dd{>BhBR^DX zX5^ycj!VOJtaBsOM~kdddK4&8I;mP2ps z$QQ#P6v&X z9<1}_!kuVr?dw4&&^S^7Wb!~v55-N{GoY`$DSPC}Na!!j0mV0jKE*l|8q*DTcsmqs z&)1K4DHjgK@xAkS$$%QG9>c5!vXm;1b-a+yeIP@Ate(X}z0mqH-TG%>#&N^&S|>}XMQlMx=L?Xgb&YMdShm&&QB`Yst&^D; zJ%M!s$uak%^=i8Hl=5huyKk>`vXm-~b-a*HH;|@vjn%SPw$@Ke>muZ}PG(}X7jzOx zjv0d16LjmJfEmZ54X<^wl$y^LgmgX!XmPv` z$Fo1Lb+VM2!xn^e4uLeSYiy0hvbElus#?oyoy^4OQLGb4jv0&AE9=%@brJGfCo?hH1v&{N$4o-&G2Qz6V8-zwPp@^dlzN^m z2Zapaht@Fa4*E(5B6~;PVNT&@* z)4IkgTP$1a$E0-;@>(Y|F`5FM1d?NBqIHvX?|>P{%hO)#WGOYBEePp+0MfLsu?&l4 zYrQK~wU*a9nTgR)uudR3W)51fqWgZ=^=O@sVSBBUrBp$z4yILTtbDNuz1`C(k3p`*WjHa`~!D#H^KTbwc-mL zl-w}<8Xi21q*cDj$H^u(0egFVGbG$<=yt>=>=YEUOFXmvH{+2hi3UW^uYl;|UyK&f zI1zov6BQ|ZIO8aSvf#Ck!=c9+?-N!aG!cqKg)~=%$O&x|pMjO)RD;b?p9d=*}6;o(R87?${OLxe$zmgR2yJ9*;*@V7Qzv z8tS6EE*{gxTwP@8;vHR_(naK=sF&A84PCU=#e=$-s*7)RaZwl7;)V>Gt*MK4x_DU^ z+jVh77ngK#9nPzvFiaQYb+JenJ9KeW7qu}vACk>=(N`Bw>0+@i{?J7MOmc_hjk-wG zML%7OWm;(-ln{;uvF1qOAQC-Z|#Rgpz#GGj;l+i^4U3AsOC|w-T#R**~ zOeuy!SzX+ri#fVjp$mSf7a}Kh5yssZ)Vk|ph%TPdMV2n!(M9HHIaa|aasVejpT#BpWZfK;iq48Z-sp@+? z5D}?tF;c+z^lz$~$GHv7EJg|#-yM*uD&R#sk)9SK1&r^rNmXy+3Gm1h79$0W&yuIA zlV^d=wHPU2e2O$x9iY1#Ek+6$XDFtsKj3X-zr{!a<9n7;Rf}(dov|1xV0>pvs@fNY z&Ahj`eJ2HsbKg?cp4`9^EJg|#XGf)~U3q~uvKT2~oIjJQUd6nKNOy~o0>&8@scK^! zuu&Ex1&nvqQ`Irt|BTGC7%5=9lbWicxOEpBL$3CvQyPzTv3cftGazB1&r4wF@CsE7Aa>jQowjU3h~6%lSl)Lkpjjm7OAQk z&aWe#Ek+6$¨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 g=m(!>G9#8zL+k2p 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

  • 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πy'bcjKL@23+xuIZgWWZQSnfyE^%A?%PE#74!bBNZ zF12TP$2v!ciGSXLj(eH?64q$s!nsF$VuX*&;hQ5kW}zRk7d;Dq8msTE0Kk0|ibn3m zc+^h(%-i)4Ai@<(V2|1B6HLbv^`Vz-w<9#|R$!~_X4gy~SU!M->z}|Lx8FKt8f06* zTt0cye9}Jfm|-^FM}=#j@Os*g!$4QM-6wriI7PWkW3_$oBa_W-fnb~@6d{N;_K@}_ zwc`PTlk*VI*+cI#DOngL1XAOhJHq05`<<$Wg-ev!7-p0KJdMBdRQyNyCG7ONd|6_l z9rwY>m|lM%!sQ#X%9#i+EIExw!?HRHYVm4vxqZBvd>7^dQL0e8hdDyixg6o|RKoMe zqZnm5XQNRURR5}9YL))zcW3YegO*g{w9=b@kKeQbQ4-`$neZ0!>l;7ZHLP5gk?IKa zV0Q@YVgTdu5s2U6M00v88FCc**yEk+6j*xeCcoiYW@MDA_=t!^cMo}`x0_iB&cikV z(Oe(!1`TWRB1N7|?1_32dNA@AeBfCH;w)W7qjnh5p9Lsr0-5dx8{e zkV-H>M8-Gx2!qA+?hDZ_s8$eBT1^$Ytpv)bPlstrvDT?mIO6-LAL)JDV}CJ?4kAkF zRG|#40i_S#oM^JKI2`fRVlW+YJ_U7SeGrkei~PT~3tUG`s$wF3=|}YPf^QwE^if}- zW06MnS8jkij^H{AUN8R#=;%^iOwUm2Q!m@0VVZ#+p9GmEZ}l2seIE)o^L_$t+RY

    $ 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%0D1(2^bTq~@lJcbR9ZAP~UH5CA`D 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

    eE>v}F*8rK#TACepo^rssq? zWoUFeBN-)RFO_Z$d&<$tXQsG!FL{n5p$Zf}!bC>y#Zh%Y#!`4I!y*M{cK92_1o|1h zftLE_-SloIq?4%}D!xXmxtHdkiR7t*^(TYorYN`=PWNX6rwM(lqOrnJaQbfiA`cpx zQ`aIcod%~r{|UG@G&!q5bML0n`H^~C+7X5BKxCDukx;say7W-;jG%`I7Y+zL1WtY* zP98=5^BOd7)GvZ<|9&4O&pfJ+vGI4!fYw{8BeE;`$6Jct20dl^%{Qb%c2HVYkjiF7 zH>D|>H==duGsr~`h%`vAwEpKEP|D>^HFQU|UOa@9Ztr~cmO=5hZqf}Fl}~=xkjj!& zu%Aom?hfvIofKY?B}y7vn3V1z!T*LTIz?|kTME1MpRQ>pyr2=yUOLa5097kP4OO|gmoC}lhwd(=kZ6+S&w{;g zCXl}T88sO*4_N~(*!v-BqrL_jp8~HHtVH=5>pOB(64BU{E2yNlmDAXi{ZOn+NpkAD zYmO-j|J)A!hZ{eMtM=uhHxyk)2q{(C6gSeBq*JO?>0|zMOM{H*w#<;xAY+mvt#nvz z%Ceu^IDP<@vh2js0Lbz4MIF|r98X1Os#}{RT8O4kG*XJ^BivJn@@F{p{O{|XCyENYAP@Dmfv&{LeZW#)#V9u{m)Zs?FcMV@s@a%JlIsLR?{k z^zr|N(ab0k&SYQz8|MtQ;?2JPIvC#UkbeHNn6}uo^z;8*!3lXku^l=D8|3}Or+X}0 zxT@8fmmA6LIwob$gxW2yUr>~xUos)S!g1{ISV0RXs7m(ppy+j~e{!{44(s|S*TSG+ zw{AepB}_nUNe_tm^01XO=W$@%TM>>*H8AeOWllFlF57@7$~G;L%U;J=Wv>pAE$Qc- zh8n33pwt=_0P0Eq;Wtg1A`R4&9-uR@o7|vA>U0AmK5tNipHb_O2=^b@cM|t%e^MG; z7$1U1i-#l@kU}36`*Sr%ZU@EodhXOdxI**64()?0+`%dIb_0gQx;i-^Lt?)@>U79Z ze-nhFHir!L|Fp)bWmtvM-#N4lt1$FWrjI~9_4=>zdp0O zZggy1E=NM6V;>!IYN;R7CeF|zg*GOkM0rQbV-iyOI*l9aUxe|@mhxEtlswLq$Hhe! za6rbz<;&)DRK2mI1{)Abd3;j74-HeKrj1XkdB(a zX57TMs6kFGld9y%;Yeswl?ABdb}f_R{@mw)OpYsq#%YI4iLHFiVat@*!S6dA^+D$| z?>V%5(76tRBD8lLwB#DUI3UxK&-6EQ6qg?{$2)U#V*`gig%D>> zPpPju+%P?*?*L~8W+YX_jKb!r8A5% zw51P|vto*4T5VH1E9RAvrdk=S3Kdl+;Y}18Mmio){0q!%YoJ4}QLCMxLoV+Xr~78d z#5^?eAQsO_Jcwtfw$$e&uIy`B%suSf#P3rajd*V2>RwLByrh58t=Y89OKO3T)W|n$ zsZ!~840;+wQl6i9yPaXK5DHg6in**!N#W|R1T^ynu}}6m(peC@+viMYVW$OG9gu~c z-m=DiNoY~RzBP`77A5qwO3&tdKw|4b}r+97NG*U*e? z39a>q9dUYh-Qtis4#>L2Z361p`h>V<4qMhI{Dd*rp3wSsU6wl`?Lx2t+X0zSx}n1_ z>nH5%>a=D3&aBS*zJBLT1TS_i8xqUhcWBv=xG>FW%f^@)=J+YKZez>{pHs`G*#7Yj zb2r7#z{Jj;(B}BYXs|ZdZH^zm)~RJn!qIjPTec*W8s)TQYutF`(WYfw4jf9gN{sxzS- z{=H8fw(RiV!s3G6+?`2ZMmZANnG}M_vK_K(!ROe3ZL?+9g8b8*-rb%2+a^asyOSRv zjIe9j6W4IFBcVNUsbS89_QvLNwt&5{qbE2a`x4&3;)BhWeF^#YJ988jfB6T8xl!?> z20FdFKQ104s!hxOxQex%kk8^?!vcW~@>yKL+D=;zB!0ThkYljqxeS&pS8>C3=jDSoRtyK6UhnAw1jx08{$Y}pM z-pjdHUSnAFGSDq(1lm63_+?C(go}q78C5u|>cr@I~CWy^WNl$$k-6 zqOLQcBUhf+btH7;%H0gpU>Vnr#=YWtq4vfME~dX@9Bh#*hyo9oK9%p$EoG?=qJk^ z=AIrscYT1Cc?G&VY&kve$5u`)XOcb|=P2tlNoOlMA!q%$ayqn}^+#cK*`DchF@5(t zw496Sis8i$IbSJnsv}3|EA>Di>VR|)$HIXv)91VUyE_Zu{G_lq9JZXFRPTC#ma~UG zb!s`g{o?@0t?h3*ZMk&|kAEDtJYIvf6}v5uPcCq3`8wfCY*e#BzD^ih(wXTCvGXoF z{Bj{S1wE}jp>Ja6B|Efy6FUTtsO^w%V|OWl5AW4;Q(&ymHO4et$g+VV@>@$3#Qzr=Z`JH7C0 z;@=?-bAL^o(9~HXzs2Vo=79Vbzhas*N55U%i-%M;*Zp?!s})XLZZ-NGy_5}dtI
    FI(_TYj%n;jjbpdzDGYoVNVlqECtw(&9KmJ9|QZWSkClnEOY@ z67=tO$er3v@S6#nxp!($8{^E;-CB>s9a`?z3dJKNyOw*EzHaHza<7s*$qBh%Ia>_} zY>ebf5(qK>CE&$2}izmK>kTMjjqm~(7*oo zo%Q8kf5>}I$bU(_o$CnyB^Ad{BJ5fo$DURk=01*nGsvmsNlgC;hhLt=Y%Aplio_Jnlx2Z#w zH)|R;X>uyXmCj<2G&zvg)(^14MX~d|PAfoaU=4DbHaEpI8*Ai9(+1MWe*&}xQS6aF zoyLMx5S^DJ>xd&i!R{Y>)!pQHc;jBU+Ef{H9rzPs8_y#APiGuVNrcDl) zCQ+F(61(X{!SjP410a*yA*k)&(IR$CE zwJM+`nv0TtH=i$R+CW-`*`Xr~x#+`$P^UJKeySeeklYj-XLf3uHjv)722(B3JQRD* zoHuGPkn&d!Nc0toOTqfAy-k5MC}4rGO;Yda21r^#o1~t#0_=K~;{F_9fV2cby3jDd zXRlFwy`j#60_h;0*gKq&ml9I5I<ur5116#wShFTdw^~EDYgSDy&VS9?mGb`P=LCuuHuA& z)VGLfo7PGT(hqduoPpC?Dbqf|qLd>Ok(BgTth2#@bUiSyk<@PnViCJ_AT7%gkk>+# ze5bw>2GWF%W}*^a|L>=N2qdJ!;UtG`<68z!Bf-bWQSvcrrF@M3LO#aa#79VP{9J^BBP#c43t+wqv*e@VBKe5ffsc@u z2*4@y#u>y5S(WnG0F0xjm28LZ;iQFvPdzmd8mLhUWp9s_+=4`SUk`uJK@2GPY-Kvc z!sO~@mUlbw_zSIsl@SUJFU8kCCh^9AmT5REqT*TzVD(A-4-Hfm5BF0SL!t|Tyiz#%$DZYNNm#?op;%f~LBOmR@?$pql=lD9L z0$+>fhECa^`ljqp&4Ot)miuzMgL1pGdlS**Ij#cuyVI|V(30)EH zvP|CieK3v@s0N{Y{w+A}rN|6!+W9xWt0+Zga%Ta-0)6oF!XmS@Z*C=Di~#3zdHD`m=#QSE$YORlaUUpTgEul8c&jCQ+%bwGF%xp?6R2CmHj}gj zxv--&K!iIl+6QXT*Znw^p?I!ZWUXl8PE~6>7P=S}#9CsJj>KK9mp!C;!*a(_ueNU2JfP`DM_bOm?#kC8G0!KF7U~O>w(tU>UUJ**)C0D`fc!G~Z%`I*PCIe4u<+ zDshLn4{JOw-$G0iRi)IYeUUWn%@P@+D5cvev@Z*13N6d^776cwuqYV(Fb0vA0XPon zlOgzWFv}o>NL;lk>~-dH32?d*?vnT##kVEbEM$AChqMO8H()Nx$G2rRdOP2PMSMSZ z0S@c%)xo`6DOD4FuA9z;Yz7ub&(qlu&ZTA#^XR;=XfF6+3?i*S-=;CUk&~}O@?kZQ zMJVi3=CUQ6ZiIU;u2FnjW*~g%4k>>=8+w!J(=i4m@h#HO-gX#LWjEwFm-Gbiu!~^o zsg#w|RYPjLcb$)?0y%$ZAb?LK52-sElV1VEm;h*J6GIxV?yA3;t+AcQr=*26JKYHD zqMTlT=KW@+98L3kqqA&3Hcd}CnvUOswhreJEK5q|s84!FC8Xor`g+paO%+J`b=1$0 zPUo?8NWf<-UNrT`pcv9+JGMRuFPds+hb>+E9MTD8iGSB0(yc;WUGuAWENC-MD}l1K ztUXZOTdvW?5?+p~-xhN;Z#+=A)&kfkLEjCSh87i8VVQdfS9fKyITRumH zPx|EOXIef1v2;kklh|h?mEtR>9yq4=2ms#y9rI@a+<5^|8I>WV|CTv8{7b48%EXp; zXxP0DMhtkTi(aa42LPgJ7CNwyL4TY#tz0)3DhKC%W?C5p?IA-SVx2?M=o_G-EH&E& zz_971^fYF_0LWe$Du-XfY(g}A5&(FI+TDYdBZ^}MRm+C0ZYkxN6yd%Cp{RqX@)g{C zjgV`Zr9l|@i&h-w!4D*vjCMki#MGjGCQ>0>!sO2ATZNe{qy&pO8nv@kc!*?uiC$8CzFi%0 zRKAjP;gcX3F=8+qarrrVN8hx^L5M;TM_2t_ZX$gPf`gfIK=EB8xyvBmeGD9+WvIU6 zkm5VH?@dLx_rjE%!>gl@EOzEQR-3mY_n>*&^YzAhj`2UjTewwUr`a6o2R}hm^aTO$ z_04RFz{vN-UoHgLXIi)wq?q{`LVNOcMfiV}d{wWyaO{dw^4IMUEtZ9zv;IAJJH6to zh4GAh^P*XE4ZKVfqswg!*zRI)sbg}0KXDgmz7GzgNA(>~$NScNCGN8=K^WsazIP*7 zN61XJ=*!J)kq0mA_4u-a`?ha)Q|69^MPA>>urbo-z2#C4kS`ZNim&B8d{KN6#oTP_ zKi%=6`oUc*}^UsXyzImbR(;XcXfe|DME4{eW%gHT~0TUH?G0dsaX z3dZ$cJ`Klrt~QQn@D0PUHn4wkE^bprgM64m_`bt)8pT(K&!Y5IMQ^DpB`;;L{$4>% znBNkQwH4oxe9V927WlrRL-|@7_b#6&4p86hlAOzCF`Ubdt?>gurDSj<>lhl;pLIke zqTyC-+^8~i#NBgknU2I*@F_v45VOjC5!!jN6exM7cImPw`J!Z}iXPHx?BwIcH8teTJ zOBycU2;94UM{;tpDkYChU?aZ@%8j1Jw>pR`S5_1cI2kHC^4p+T=4`{fPVu=OauHtx zU-kWRSK3Y%)NFUL+d(ZE6)e@fd^;3`?Tb1--s^YdU~3jyHk*qc)9gJ9GTMfJq0O0l1Jfm`C6TyCXUO?6K$U?OB@R_Yxz z9{2wv?M>i(Dx*LCd+z;?8GM=XrLSc$YFZ@A%%CwdW{^Ew)@<1+StF?s5{eW;q_js! zds2#MRgqAV$`)EIr6i*N=bU@)eeQR@)9?TP{rh8+~?BKq-D6r zW2>J7V=Mk}4;>Q`{f_X-3{lE69Nhh^58)U(xfk)J+`f6z6Rxzjk#ckFNl&`cwnoY$ zF&xLqy#f86G@)9^dXcq{G=#*RL;TSmI+gTEGbQF4q8?O0hY)`x9ruV=4AH_R_@h1a zXVSiq>ey)rb{2F9aXRS}M~TyhkW}Unf3%1GN_qqpS}d(l*7t+z5aLYI^Ba`NHH7Mr zG3wc*VO{mJvDY*4I;R^Z@JD+v;;h>tWU)fJ!xyG#1VWrodaj)kOAVnB@JD;-Lee!T znxf+!L#PfR{!Pk)D}?yL5UPVe$wOB0W7$d&>~oED`}Z6Y0&7s{B1A{JA=KeQ*u`g8 zR-(BfG#37>4>`s6T&=_apMWcP5KRfiH=tI?z;3b;x}Wu-#Ns=8gj}K8CVElS*`n;w zN`y#vFZnlBZq!=-u3H11DF2@|fJO8N$0t`Q&*5*c6dzBLdl5VnQz>_qp7ew(%`no~ z8X#fY8)<9}n2hC=mpSgyhLE`Z8t^3=c_HQ-qMlp6wFaE`h}R4eTLUgVt2(|igftO; z4XFON5@!q{sq|~WKaVR>DeC({b!ZJ(iq2FlZDd+eS%5o+48$xwx4cPdt5)SNhjVx3He)WjU z3=vxc?%J$6S{g!Q(HgK8{kWudkWZKzFu%GM@~KAX*MKt-uLg(%Q$#O{I%~@gtwxA+ z_mY28<%Yctla=b#dFjsXg(bV{L*47gq8nMv=jq$+%5cEVg+;?P4K*Fa#$mg;)7J9ZQ5DEXKGIOYju#mp$SUA*vdpHcW*uTns5&%H1(F z^o4p7pF8_Wc9xq>l+!e$FiRGn5?=ZEsIEOd9+XK@e61z+403U#w}U!G_WA)B zB09eghI`;g*zv}xu_`-dWO?%O+l00IJ7Ppv5(7~!j9HY1M_dVSp5)5O%RyJL%=7mL z`OvrS%Tp?A<;zketMNYjFnHyyT6aQeKcloB^~Z6&@BM|>*0?~@6cbMKBRy2H23QHEvxo{lxWA`#sfDbSBfDlIWn&qk??Izg%@x5bp zL81l&lJJ-^A=D@1E@*MQ&QR=rFEXLFRGg!$AGaBb9pzC|8z9x6_Q}&2A2k$vA%^;F z!K%a05tVlqE-pCG5C>ZOa18F@Q!P8g@QYN!_x>02&1! z`;hR}lA3su&28^C188yL^BxkuKHC!y*cmuk2&hLRhN5ZS-F+vXCNmJla<}F+Yw$e( zeg@*%voTGZmuy3+Ap(4RcmYDQJG&b|(<;E;_xI__;2j3gw0?t!sXL?l8PG^Pz zG%E%8duLY#mK#6~5#a3BRvN|Uv4CfYQ0FegLvAtTxS`aLH?M>9{;4oW)s(x~Pq37J zwMMA(b@8s3sL3rvsYyaz*m;@SJh%wTvrEu_N1jx>W*0)mxEyMa1pz#3`V|j$B;HpF zVN!5&DCIDmNp#NvHShZ(Fn0*0tW8_iYX&A?5}RO2HK)h5R0B9P<62doS5yGCR}2Z! z!40Z>fMMB@F*YR7rd5jFR|pGgD@J#0(3oE`m>4KtR|6C2wWjL!{e`fiQlDI*(U+i4UskM}!Nkg7VoK5zmnk;MVB#7nXgRbHTdfkp zG;x~d_~Wq{rVc`sq95T;vHm?ns6|4QrZH>OZwC#b#(eQBVo9O*Zm_KNwNXD4E`p#-sGN=jYLekUUXL3Qc)R z#e$q9=wX8~5mRU?&|KuMVDB1C92nGAk^V)qE7*?)6K(1N@lh((?x2w-B41*ymtjj~ zdgz>X-nE%*K29yEvlDT?#rB zVst@)baUCb0%fB*&BAuGV-8ABD?>EvZyJt??*hA$e&~nO8+k-9s%Y#WUiL|-K`_}J z11%~V+qD)+yNViM%Mp)J>7Amn<#@W2P?L(a#6j9@+o7Vd`|w;mp%yj3p!7Djt>hJc zB7;eoTM@&B+B9(j4(?$rt7z=O>aeX2)qaDlPK@;^8Y@M>GU#zUc;)B$G$9s)XRF)> zvoh(s6vsNuiF_=M_~A38FN(*_~aj$C-EQjuXTd|G?;~bB{a;aNa#cns4 zv;$g`L|Y!+y-=~o4aPYhqpcymhzFix+lL0@Jc_~c>0fMM6YQA5IFDkm0_syw`+|yB z`YGi+3QTv@D~%|vrM4N(4a>O|!!{X(d}>VJ?@)HQVWn4)c~%a6#+B_Fs@767WezYg z&9hH{rqryB0&5ruxgwlNTNgaFNH`wRt6G7xlu04-<(<|^(4pay`r1TDmv zIiV#z&`GImrX(qveZ4+GnQ2A6f6 z>@-r(2Yjg$Xx)OM%=16G?yiA1H(&%fhy3L7VJm<-$O}g z+#Gt*fKu)n)7Ca{_;gx65s%<#Yawv~Jv0MG%%De>xy90dl56nP9si|;P84xY>+LR}$tXgQx7J$|4M=IFSgM;sv|i~Y2wh7uFv2pQoVr25|>dXyM?tPqhw zGJg4y8c$LpXr)zo0Y)aF=rA6iHIt8kMQ=L-70pLm(cAu+ii<(Gs5~8MZt*ehbABXk z%}0GI{&W&*M)8z`_^n0}EDc2OsC*-;VWm2VNUkisf2aJF?cYzi1RNd`mEl0&*tIx= zy7^LF8Fn)v`Z_to9IF;9zTHP$1@6jkbm~7ZBK$%lWLR@3y3f9|jrwja6LndU8{FNx z7M(c=jgq)-cO1Zr$I<)xV@Az2hyL&ZtU8~;cqlr1M{l?yoZ+W9kLo;zb1>)ZZ3MSm zYVNxWqtOKykJWKzW0r|E(DgmmXQB&dW8)y*;D>Ry6=DZoKD@LD?~b@u-sK1MlEKT^ z(ZxMst0dzQA3*!aE2`0d?C!;p>{or&RzqG=jqaqnS*UC%+qBaUI@@17fdXi=?LF`w@NqIUHJx2}Ex=@t1{6l_M2D0Wpj;G!}2sL+Q?qB5@BC8QqDxTf6bQ#fM|caVr7{2Rnf>6Jc^0# zqj`gY{1JVeV;;^0k723#0;YzpIdtLaeczhkL>>O*aIoBYL*s&Hd9HJ+NYe(MG z5IRJtm;>S`nlVs^2;+SMCQQf3BKj-cS672CFhXo5><vS9-Ksn z+FSYn*;5pfLp-I6c5o^`uM5Le7m0Bz5&POJEIg%)_Hl;KQmlH>7%vY;M?2HnIqv%K zwXqnI#Qkb?f|Gff_N&9=2p+yfOVTY(9P1x6NJzcscLWz99e(d;q1%jOCk6{s>BcLyF}M&6*%SRS zj!~XDMcaYY`hk!ltU{+Rw%ul=0SjG&@+k|ciB_dfFQFE9G@+W8CtlzyWdymxsn&OqZiXOXb@seA)=wI-bW|dM}D{6rJP-cV7GW>x_)aY zT4=B06X`Hap}%4=I9rHic0a812~qWGFKuo$)7FT`w>U0wdS`SM4Hx&9 zwxb>Wlz6siq62+>i4q?fLOPWkir|TBV%VAg1f0#|ghRd^NaNY3u?46;USM*pMl7TT zfizxsJ6_OBb@t&Yfux`cgem7n$T*}NHue^8PR(z^hbB06IV>wSQe-Q4Bjr6PAz6!J zSC*A=WeL~NR~X%7 z_rMN+9C9DaSSsFOmq!qXcKBjQHl0EQr|b!PSo!b1Bt?dTjj8h_=p92R@F3HnC&G&P!9m#QeKht3j-gMiI7RgEkJZxEvzlsR`2t@Bbkk_$ zm{3ed;PhGesrZQD!6c|AreQ$$00$j!a&_+Zea5 z#QtWhX5B{kBYYKo%WT;RgkSmztX1>(KUh*92N&SpmMtuK1HTj*{s9KVk?Zk`qojLb znnB?|si|xg3HP$M0dLKFMZ&#p-7HdyH;aUCkPmiY9#e|Pmj0hfrT95~xR3qiGd#u) zUt1m>c(||4YeF_9W6#L7&L6nbPw$lGJCjOd1A2eGQ;P2#eF{nj=$$a%;XMf9fqJJT z-x+xTdIq_7N+Pb5Qitw?o+0*bi8^An;ZG=p-A^bS#XY2*x2uHRPbic?%Dn9=;i2~O zJ8esE)gEMpZ?=z#7R$-yZ!Cn}Z!DxdD`Bb;XHU2rVaP;{^H65w%F_GS%U=Wh`zdcg zmD?CA(Orniv4j`AhX@}v!n7sGa}C*3gzp-m)R7?3ONeg`kq9fj;Jrn7#t3EQyc+$C zb%F2=GJlCS^wJZvvnAYT5c-dcc_5nY6Dbn0yR#+S_j0tV0(3Wk=vScMeWh{yI%~MY z0Aigx0SXT;fe{TYGD3#&U{XrhkSWu3_VNk?SFj$)c$^i!u>dm%_5^JW%6OO%zNr#+ z4vXyPpp54l;i1ctn3JFwqc0uo;*o@x$iu$ZdG>j;0k7x|?mnqc?r4MnBGgn^VIJ6Jk>wW@c!a;y!~@mW9?t`KWljZfkQk$ ze`s?}?=HjpPafj=1wWt<7X2lf`016EZn2-2%i;qq>NP+E)i;5PMi;uW|@Y;E#C@-dM-HUF?iGU5L{P)x{YKE~Tu65U(>A4A3jUw#U2GfMCa|C``3 zI#yQ27)W%qZ2CWWNCFl0gC-#Zi>cu?1$S#7F@hDjoyajRXCIfhxLeC)>eVJ!Xs`KT zEY%hSFIt4xeP2aaX5KOenUckC&3Ncrqn^}m<41#Z`yLQmHSt1iPDi^fdjRViO3VyW@Bh`oa;YAMl4zBZ zVaf;Bd+(x7HdHW1p+0Z2<$8<9-;)KI|~rR;1uK3}Qd47FvgW*v%+ zIPKGmzE!Gx3*Qq#N<8t|T^BTs4Pq&%5tBaeh^dyC)FTcMYqpI%q**@M0JYW^vgV67 zFl`kz&lXLIHQR?Z*L?XfmV!0A`=Mfe*Y8{s-O31h7aD2r&OYUyy00Z4B&m5;Y0so4ky6kLV&wZGyLOa zI8aG|cVhvG3~JuN^Ox{pYX?4Cj@n5-#8Lom$OLet_DKb-R(?X&kR90L9X|TvDsnYk z9t(K!@Y+@Q=O2I4Cje~?6)dJg{qin`z%s%fW2j&;73$X|f54JN*u2O_^PI@T=F+IK?GE}>4|UQI`<8HNhlCDdepMOXh1DDO%QpMJBE7MhQJ z6l!=^YWS}Tn^n!BpllKL9fZ%U^2Q+6wO;xWj(4nv&)(w=B`XJIykj+dZq>u8vq4bC z&nd#^mt#}8Op5xj%*>j+X`)aUMwHWT@xDTonI>n+{;}}C>0K0ku@K7niKQ%2h$rGT zwF~{K5XM;rjGw@SiRwlbJ7X~Ry+_!zAKTR=0hRDzSred9i4KQaCs{7h&=6c~JRKow zj1I_kf+5rne%2FCppvcCjwyyvJA^2Pvj#QYPZ>h(5F(MP?^WV`Luf3##27A4LqApG zupu-SA<9ttUbQ2st)JSfTz?1=q1VwvN?K|dLhTTuEKNay5u&Xj)E`2Wqj?$XkCBE@ zOL>cHI7(aZS7MEluw>Z}RHIglbh>OF}ejc#wKmS2vgY^?!;#kml# zYwgtx>10^J;`CljPyC~)ysHo!r#GD%-lObF!-_NF*h}f`y=uc(h1fV7E~l69oJ4Zv zykVuoX1!iHyMnesDp(rEbm{`eK=9t#a4p)8VMARETc`~a?qY!0#!IxG^M$QLTWUEj z%X=i0mA)a4#RmMX)dy@BBhP#ax9r`dKW3Z+$Rvr)p$=Wd=0(0QyI1aA8mOh!G8Y*=xq~W&50JNd&wyVqX z3Ij6-!iKg~@1O#`8DQVJqoy1x^Ex!NL+Msv5(9G|FaU3}3%94^sR}G(z^~r$`+UT55}|| zsR(zWeXvNdIz?me)rZAhY2PBPG2ILnOnG`1BJEC3l+}67?Tndf1G|OjK`3qR$p7(J z!mCq)^`bxU0ENpbeQ2;?eHW|`MUYOxjsP<=buYSpwA!1FmFgS>VqzOeo6f14x;_;b z*$}#GyEpe?N`PQHKDiaqB?8Kl;Cf!jw?7TPmOAAf5p z)}KO*qP`d<2=SAzN8369#!${QovxSc;;Yc^TZpl=4ht!wq9zE}i3;#m@bEa=g4dgP zosK#i75v!BEB3qI|G2RLuzMX!@=#>`}>Eog? z-U=SRgOaf(AzQ&u6pis#@bI0qHAL=K@F>cAtN`BE8Zv_ue zqz^Dl;e}cnR5XU(*a}agZg`K1w;9unSPaFJw}OZ7qFqUryA^yz9Krjg!&B%}TdVOl zCUk`fdExn9u&J~F?=4F;K5a06sTA=Eb~hdUTdQ#uJe^i;^-#@Xv`wSVq{E432J;to zJ#F{UYGk-XI?Q1HdbEd4rwYF)Hs4_WGPH-ypl*1oDB9K;%wIkCu$i=`f@1p&<}aFi z*uB&V#YeP-ulG}0fVi~shSBgtlzR@Yq~%fCe81}G7Dq^09;2rRc#po~2uaH_%E5}T#PUcSA!&J>$_-UJ z))yk`xX+}YCTRusuvFUvG?Un(Do?DRb){#FR5zXQM&j@a`Vf)ph&Sl22Q`+%hEN?cGkueuuBJp%ufnMn;w`!|QDdoLh@g)3)TX6c+SU-7 zS}9u_XgFFf$Zs7Wu%(ig59#Ho61j#@e@I$BqIPI7#g5)_grwzTs+_FE zU2%k1x`iG^-inSV;s{CYXVmmBP0OY@LejF8p2XW5qT^5;!CNcCU(ujimiy3~Za|`> zuAl&l@M~&GQ68AV|h%3c}D1Ntqgxd3vP5=wcU+c74D&N7`RHv zaVDg@?=t)?t;W_S5zaS4_q~wte(H^SM=$v*-31Dj9-t#OOx7a1?XArit zFLc+CW&8T+QL{SOV$9VnaLtl|ksKP+$ZcDP3F1&s!|)a&cK}d8&t3w5j%*u0CHVmfz976U^w$CMa#9y%lHUVPeNqCCg>=bXztI^-jt=S$6g3Z0j5-(iQ|S0de`t4)F^_>HH#3YKRYFNe%Uf+H}6mmK)h} zqjJTW*p^r0>NyZr8HcC%HRQlnyqp3o0gBo+Y=-K2RW`P0%_8fndO0D)wHCB%mUJZT z=?ctqu4?c;Zc}RLA^c~ie{bur4mVZB`0XPVEbD-9>*sSY(p}%vi9;~m{_C$MZ z-DTnyCYo{tDVM+#c;FyFht{L?6~6ffsO$ojk&tR#nq&8-Xn50)LkAf+30xr~-_06YhSRL9DorcHW4z zj;*o`L_o^f`WyV39V$SubiPcL%Z^tP;;3`|8r%-^ZDc4_qYMl)>kQ_bbQ{MbSMZ_S zzft~r$iMG?6{0kaz$2(SBgDaO0Cg^+Y7IC$^cH^8`Le?*2bz(+Snu(2vplZpAcVr-)&>i5f9cog+vo$-%wcoLYd?^X+~HDB}Wd zZa#@=sA!ns$5BLXW}=s&6^7stvAJ0u!vM+6_x*_c+{DotIR3p*XtBb}&4s*KUz5+e zIrECa%yd5RK3k5x&z2jhp$%|gb|{^Ne3>ej9qPE5{19%3`F1dq`6l(kPqJLWwQeTM zU$^`B-S1AsX0jkAlle;)*`dero6eW1Aw2N2I@ZTeC~fGr+bye2saE*PNOAfM&!hQo zqE2(C;X5Oxh)EdbB)!)HNljXVi60fvOBmavrO+Mq+)9b|e+bOn$sy5LinJUZDe1m( z>(FH^{eh)YBY+HS=2&SJsB0VB`VsdXY8q6qbB$%CRi!hSzrF0Rw0}_As|zB(gjU{U zsdTcDHm1MU!S2iHU;N|H5}hMDEc-b$5u}rh}z!d2LMR`@yX1Y2wq|!AvL;*@%gKT0iQAZFUYV^AWLGW)zKS0#ctg zmJ-TxMDO_syE%n_Ff0&cJl#5$O+DlzYZ>7m51Bw~`m-&G$OzY5X)O82LnhOe7qKlh zd_+ewX0R{w>?#J5%0QHJ$PL=3h|uz7{B*9IEf_6qT) zA^bw&Dyl}sofP%nkD4RCS(phxfjK-t^F6)L#K0dyw!wMVOM*{60#<<@Rwl7$HyVX zeeB==(U3{QycEM)5#DGwJfk5mW1(wpj%-Iy8)YxS!zAf_t_ccx&w1K7d;HBR>>CvF zASCTh`|A?e1&-{ciAI<&2Q_94wW~diw)$}vNUpm@P(17+X$$RAE73E)6N|uTenlef zG5a;V<|*3u1hw-yjTt{s$I6KIOrfCe+qG$L+GY6Ntun*CxS^9@h)UaFKk_l|B_e2T z7J820ozH1o?PoBk;&BpP=L_Acog;gr(|)kOL)GR1AC2*KyM(;HoA!r2;VM<}P$3mA zkm#)Xz;-pfR!D<;C{kL~`RPY;i|$v3kP5CunzIfIms0%C7(xp-ulJ-?cdo(QRftL> zJRf*3!Skw82Ks>?ESG3#2#rOEZnSTO#&T0E5ok-WlEB(((7C9__n=|@MgrbvEUmAz zc8g*!$6`ukRHP>|l-O+uzmd?>CDP_Nt*|0Xrwt;-DvLIw>&ZAZshb*Jex#pxO&SAf ztDL6Tzas8w8cW0^O_Vv5dXu&jHybvXG*S7HbKpsh^!`{3NfY90C#8%kdesoYr12i0 zw11sz8>4uAYY^!a4d?C^N~;kHqi2*f*qCz!tC%KL)HMz@M3*C2-6F7<^m2fVo9O&c zs<&^U0Kr6y@}Z%RZr4Q5D1t@G1)CDuvtHf(N+B#RS@S{>G=S3Req&g1fws;3)@|DJ zp_wRBaX7HnOpAfnnXF&Jy}h|fbMKC<2TTE`OZIK+K4! zYacv<)k=Tqj55|8N-4I|V8KWk%Q$6U zmaEuT2J<8J3>1~`7u)%SvgeCnHRg;Y=W)zzWc+j~Mu?hsK?A2XM2B;rSkFp|wJ})G zK*lmEI!$`G6HFR!us8!n<%MELzfg8r5iAT8tW4sOx|)s;3>Gx7+G-e>miTE^$4$qt z1`8UGx7a~P$!cj6^~ zXmaNmENCEO8Tn4?Gm5PL+*bq(14U(PXH`4J636>#4jR~GCk%Wz zamRj*xwgTA1~Qh>#mOnIC84Lm;tUj(uO&V=MZG<>2o?s4%Aw9hc$h5dSYfcBf$vU3 z7Vk{#iU-^)u_#2_3}#vwcRNwq;lycpj9Cwri+(d0rvvfvzNCyv&RdOjmroVk)-vxa z^5%%b-tT<5N7>H*#k$R+)@KQ|%(?jmwPBnI#ZK~Uc)_^@PqDFgzZDMWt1$8UDX{beCODS|s4cjG6VHmBYlSc+fCv$zL1 zJl4;u+{6>B2i?CyRZe!qUvu~MXIYZfk@bYr7W{c9{y7hAyb4&3zrdVPcUT=qSLDj^ z*OxOI3@J|5DQ>SxKE9mMtQ{J84vEd_?qbIaHcBwBbx;=BvyjPaZ^9%?re4p(u;hdZ z5Mia&`Uyt7-5w_^i0lI+%cBqaA>4+Suf|yaJHF40bSO@ArZ*C``TpxLdHgeYKU5aF zKC1E~?nhvY%e!r77A4>WnzZeqzmQREcx@km5w{*fM7u_#%M)1_Unaew*Cm#F3rR0& z&%;nqEV&byDIqSEM{84I#J+#=l#(8f)x$j{7P2y)qbITmE+zVl#-J8Bb|#uhuK&)2xS&jzRR+@ ze$k$+%>LJR#*uA25hknavv^*ZIpCWe2rhT1>-D8^XJE}49%FYci4B>Vg9n5R+x{g|lJ3|t;drV5#?-t<89XDQ$mvLOCTDShghg+FLUu*5f)hMaK zW3Zyra*V<gtkjixBY4UIFDG#eI!D|MXmMiu4 zLkO5j-!~&`7m79lme_=yYE*NgW#z8?9(*rq^DJ4NuSce%=$2x$jxl z${E?tmwADCOGM^RdFAwx^TscV&z}@L$&d3N2#7=Fot&!{M z`ou|g=xtUesZZg2wt7$rj3zT1(AthH?m@p@=HTNmvhM0&(SJD>7B&x+~t`=7yGJJCkzv-M`sUbET&%gKvU*h=}E_-sR z31zOLqxhrKHy0r(Z&M!Pl`=X4o2)b6rM~xA7Pq1(O^s#!G4nlI+lE)17b8?M2c?wb z__cZw3R~u8(dN(_g`~Yj`iV$st1m?5Z`nhIy>r`Po0B;zo_d-ez~BzMb^`jo__&M4ZC}FwnuGYk?U@hSN)?l?qVl11RDvqJsPFxiRFzNF_5KR?iDFa{ZNpn!LzIRZAYYD( zwq^Y`zA9IakK&1T+dBfEz(h1ec-|bno)2Y08-#&=0A zui-8=vOGDHHrn<49>m(jzwbpTr`vVUsOwn#g*X~u0Qq8EmMrN;dxTPK7no)MDP{`v zT!`nAqTz8LfLXjA9PM?}LJhppm!;H3q5*Uo3#ayeEkgtEj{|svW%P!lzgVvJ^FDyU zyzCh5(-3<^B<8AUpMyTnlNa%#eRn>Hgyj`2?6)-w!W&|Ru5a>44sz_j4aU*rq6qh( zpXh)p-Snk|rA*~;_QEaTr~mn%|E2X{TMz$qWF z`pQ|*(IIQG5G1MA_^c*8X5d2Op90LqG&S@Osu2$Qg|~73FU0A31DCbF&c~;mvxq*# zADv#o5=~Zd;t!~!L_3|K332%1A}(Ai~S zY&Jv}#=eLCWVW4;Oa2L#W!0sLPmm?I&IN_}S0!3m_35o)I0lVNc$Jx6$Q1q?!G*Y* zk{`9L_DnP~1pke*Xm1^3W#!Tdbjz}5audpl`n^|3AOE@HLyxhIB7CG ze+|8gg)c7ulp7Q}m@#KHrApjwP!Ny z2djc;OCQxzlWWEi{V?s!YDf28qY<=^BVIx4n$@04-K50mIO5gKAUaUeuWHBqIARA% zN!E3AY@^!oS{yMs4LUl~)7V=g+45B!aS*j3t25?8j@5$;?ioXH2;}?v>d?`JGEjSj zsDz~l^@kEqWAji}R~i+ztHt}59|kcc zjyUoebabcWYL2VpF`s~ud*>k;J?VV$9H)|Lz$ErBJ?cI0HlYxa2 z!|8i02+)C8Ld*_gBj~>Sp{O{1B!U!f4&$|rq$?&uTm2%ipvt~)AYX2wYf#gu9kbUi zhKKSgw;Yl^hJJq>9sc0J{V_AakEPdlfxp|k?=`X;|A25DO>e9#TR-@bOB2f9`cC1F zDTVv7|J4sNLX=OVZue?NXQQWa9U#j8|LI*opY+xYelS+A82x{?_gU(buFg0RtM~t+ za{9aQ@9T6^3c1}}CURbD`u|1Us_#%sJ7z;idRc@{4K3nJo`;u#dJ_c%)Fkgfi8FSVb= zpE>j{n!MyP)T6iUCiAd?iq(7K6Z}=IehWs6UENUr%FdO48Wiw9{c{=-|649}Ef#NX zIb1*%8$~o=Xg%n?#s<8rKlRk1NHcQ)5rjC!1bA7a08?)~g19$Ho-jxIMZWh%V$1N0=z6+HLwo3@pk zUwyU?j?S?x$`oX|XftvP79wZ3E>QWo0aUG8l5!XDaKSCoD`SiFDpRBx&0Tac7uHueHFAYw%d?=| z#n~86NU`0@vMaPmuf!Tb?vfL|bOH9~psWhkuydD={zr>LF)V*;xOy~f@Eum}qfj_=1UE<5TKtMXfA&>-f%%p*59v%ZPVtUX?44H`P=b}RQ=jtUbt zXW+;`VD4US`*0vMS|?VN`)U?v(j<;pu3)ufp|IF zH4?4dwND_CZybfe+k-NvHR5{n0W{9_U=AG%%5LEnXx(p5Xb~vBFc9Alx1i{}{T-&P z;)KhBvYW3(?yr9iFZzkBNlH$e98ZC9x5E?*`iOgP}JTVU*l zWQZ4@AA2@ji$}`2 zo5$awKvf@ree;h&_Wl!iswwv624#b>qLusMVVuS+vTi}y7!LQ*ub7aDY)nwb^NQS$ zdB3GhD;@~S_$cb!E%%;OTUG{Tm_wl?}i zYu|;StkGuJ@&y)Ktd(4l(ooW4opYum4BDRLjZK>yfJY`N9nVYcd*uq4_T@}(rD{kl z1wU5Z4f}SMyHtI3w+}!jwQpC|x71h5jI2IMt^Mi|jA^*$;dBeB99HGe2k_`(KM%Xz znt3#~X8z>W%xc7F?!l%U@NZTvSBO^X-l6_=wZXaws*+o4-ILbt$GVGEmT6>a(&4L7 z;9Qg3Fc|x=Lz;s8wGM$j)ng%RTz7O1%$@o&uE`sst>ZFEei#jS*U2D?Tc_%>6H6n3mUd9E1@* zHQ$PC+eOwB6xn&JZJqzuiEPEc|KQ&d18wWy^G;;caI!Ao@9GW6dVZr7x$vuHt=I@n zKV5?HVBXEwJOUj@aE)Q#3?2{8#M41LGGsL#6GW<)Lu`=)+wjmha_dnWYih%Pz$YFe z1BUaO+BqDYR6O$BatxCr^`0WDWMl)%Rygt-=J}-}-(%2MI&vA7bdn>f_}ENJWdFxx zm5I#8{-8*t*u}P0HgZX2yweq_g(2-lk>RVch8!vOm1UKWgfAkiLZm-lTCEsqHr%l) zMdtl&Td9#h&tla)vY;(lRU#`ZI9An2XAWzX$(oE6!n{TAabn&bis}%lRE-m}t_v>^ zuEIi}6Y1NP7YHA0!HHSdju!}DOyk6)flP`tT8OVqMBcldkeE69IWdpnHyr5=zEorp zMxv!7#V{#Mj`Rp&X)^NWweVqN5ZdI3RpzQ4?8`@Umm=aTacxC9MtObm^`{&}pNICu ziL8U_P~`5vIQj)>nTkbz#+%TIk#+EKQeV#_uI-}$Nc+lols#r5tew=3zX6aoxT^cg9xuM zLaqj$@H!E;HbM>=6TG7kLkz(Nd%-)2aGDYFQz%c^S%gm*A-7d`$ z?lD3+(J+g4j>g8T1I zJ1+0<7r(IFhWM_aOd9F4{m`~ZBmGEFwh@cGdFTGcpo8ipvgTmQK$l)-(TOUTUdv*ndKQx1|6kRh;OGn_84J98Z&CVl~|u0 zUq+Zu$3BDFDl{&Q@ap@Mh*(OG+m_{1&Ll{yQYatNx`m`T41?{hM(rNZ#B>1Rei|Z& z#N2es$5U!CcUV9+@G4k)IlYmjj-MHj%}7U#SJKw^ux%oQl&oMGmwWj^sTQCnIji&- zv`-k|is+qOx+5Ff>(GV0dg|Jb0qqZC_efqAy$7qLF40p6Ck-riopUpJH9gy2+sP`0 zW!ZG^7M10&Oq%o@w+U@PHXfr&8`?DxPMX&oy1|p(5(p>FYc7?YixDxm6>|dNM3zT4 zc(UgM;iP$ONH=5lAnof1fp8+rr%OAjY=0n}G`)@J&~$P=dp;0OWQ{2U8}Y<16`wZg zlcu)`ebmBs+ur&tQ=iqm5k6~5f1x;YPedIH%bL;djVc=v&?(Jwb2?H2AL8O%zAq3? zWG!eTMkZp*vw?8ZWVfU!#xWA^y+AmTwW4QGK_uLFfpF5Cx29VcXt=)v;Y4;V{SKLg zyXYB{c4_L{P!;rO5??0EH0>g5O9eSf?qVj2_9#jqDLzR`q# zjsntW`RV)-tke*H?y1DpXitg1>olMW`j&=^F6w~9;ZH2>0y%|1wMO&cn~o;&v90)o zFa4av+02uUI`kga(dk$cZ9s?)2$n2YDT(+Shi-}VxGNoDq>FNl^n@#&ZKU#`M#G+T zrOzAb4QT1n0Pt=n`aNm)!?qRSxIZ<7#GONv8pEs$jzDPWbnqq&-+wVukdTFLclMSK@rq zo*mfx!o(RvXasvvcj-dXVwfOAC1kZ5fu}==f0IhTtU4MRLUjyBn~AAQZewgK;#m3^ zLLDvy6~F9T)iK2oEnJ5SVHdvz^C8jklp!>hYMr6lDSrMdB{uj3T=DIjNJc{Ockm{i z^f!BrFoP!lfRKsB-@o1K>BWI5q8BxXD^Y5Qt5^V&L1 zL!{xCZC+$_OFv7)^X#ge6YYQ}%a!*Coy%x=zCF4kS(h>~$`E?EUfErkS}nArM|D~6 zekN*YzRH;iDFCb(8ZeO-{S~5mFzM55YH$R zVPv`IJrlfG+>`h0ZP*Vg#MNN+5Z&VlNy{_#Xv_kIxYH1_WSc{hmgnq> zzp9Q$;|Q^Ig*{@467R+llG>H_#(hfcizCF+)%NX=>VU*Xwz>{?GcAK8wQKB$uqRn8 z4N6fmxO`x#2ER>vWMgqBT*l$!U~7-X6xqo@&T+v&BN;C1xQ!%#=bXuKIj26v4&BL7 z@+GBkp>mhhbEwN`l nE+~@;#lwu{X;F}pRMq(kBZL-wYn{=-jWSBU5SKbt-X@p$ z)(||G@QBNuap*Ng$9Y5WXwf6Cbk_WMX-~XAKPGLi;`wp0jvz63%qWVsS=< z`-4KBoP@KSyS(|wg`kipC*itIF?_B>LZ+?`sO8B?xSrDmyCy~0ASmR?Nw~h#2CFb4 z>>3pE^2U#e^1K#AxNw|Si40AD2yE+(>=O5u5rzDaq z!cT%io_~aMo$AkO$iqP)&p*O>&aYT}k&w;{fppfq5o+_DCy!}gQ!OZzZ*CMgS7zXi zlO=F`eo!bM-Du>@L^mVCoX<<)r0%d{D@v?(j7Z^|jsAi3LF+51+$Lo%{aM z<%ySrLLMWBn>oLQb^N?FDCG5taC4_+9d*JlK_QQJ!!4Ypcc?*0T$sEv!~?EyOQ+n6 zx(snyP{?E9a4Y9UtTo6w#5F-755B{#ot5Qncb?TZDCALJxQ(;$Tgx5UO$-Wo`W9~I zbX%;`w*R7JUh)(O=V|HeN~;^Goc&#g zzQvp+e0``EnpSG*Oa1d^di8_x-9zU>wk5|x4r1hawiK0mAg8QHsQod0JTo;Yluv#3 z484wZYBrOW1%>jJsa~O@7iraeJ1CToefAEW!0s>!xjQJ7CbduKoAQ?RBAaoRh2pRj zJc2KCqQB6T7!*a!Uy{zBW5O#3r$0?eiy9_HQ z9>(b%5?a_tpH{9kEL$0)S3cZzW9X2hHhg7RKK(PEy(#oXp4wo);-@XnUeP-=bo7M! zp|)Y;>=pLr(DgXpPh8&9uyOXvN4tiHN@HW2d`)etVZ~l`mtZ48>&IFyw!&ayY7iS4 zs{R$Z*fxWSl|gJ&DDPGMRM=^QiGhkqxw<8^WR|A6%B#MAg0=}ZCRFVf&7Nik3)&{w z*if5ps%@CTf|1H6t;U6xIodeSH&`%I!EOunxLfCb4SiLd!74caE3wYoEu-Ab|A1`FCI*o4p#tbj>B+SOn|+XR~!nt7WJD<&E&Xq#Y@ zLW8@iwxa0 z|NjjNANUbX)6CE_=k>d`m0$PVgOKvollwyNPtjc!IYFWH6thAl7wXp2Zb6}Z^<;MF z0v4TQ@9Ef}P`-L{e`wiIRXaB*l&_x533Worl&_w=V1(|WP2mSaIj7K|eaHg02gson zd(pAX4ee^9`_K=XP&x7*MR;DQj<+|+dLxiV8CcE_O~Z<~=k?x7t?z zlChY-^Pr^~aa{SW@4(;G9YK=i%F_GS%3qWH`^Nn#`(dbuwH549gUQF2a5m|eh^w6p zIo|SxF|YFGw{LM0>vc#dRzkekQzW?ih4K8(_te3P))^yY7*7CsexBcTP(y8GE3QN6 z$(#x|be2rd^SiB>qD@$C9Kf$9<#(S}UNv;{0o~J)-y<2Tl2WP01Z9nIPYYkrNDf zcrKIdan}xj-31Dvr^*lkm3hge)304N=_v2yBulE)L56 zyc@D<7BWUY0G1yoyQe}gmGxkmI1nFG9@u}hl|Q}m>zd7X`r#yT9xwyPC%WZesUO$_ zMvoe6<|=FC~4rn#AhCPrG9z9kZ@P(f4v+*3FOPk7J{P&MMa1%z;)+Rsr;V@lE@X?K6Ldd@==T5$dG{u=EwMxl5ji&|q6UC<*9o3TaL2eG=4 zY5{tcycrdoBRgyW)gUSByY3GCid`b|PLnQeWfqCK{p`uAp%w$KxeU1Z<$j&Ip#KB+ zYl-X}tHv$2?iYp&1`NJKE9@ObQ#?&77`P9sQBvm~HyntoW{3Fj_|y=ux?}wt z%YEtYCI6<%jnoi#@!9f=JGf5g1x%cVAiqsG3}0r;jqDKLNDXbWagGQ-io$8llfE>k zH77tCds;J-+=~`@TJz1=*2RZZJMcsln9YnksOn;GFB51Bwmd$5+*eMD@Q9M*^?)5vk054(LtKKmz$ zE+9Rvd1=_KIS!p=Osv&3>uJqz9p`w`H+h+97`cK$dRp^1tnE0I?}O&F=9f`p7D!3+ zPivNPG1Rct^t5KVKf}N8o`$Z%l_GrF2p@q?bOc@dVetE=2)D!vjjbNGNwCxZg~i0T zRoE(<{gjLU#6?TE&h1Zz|X3le*U7-9&~!G*$&FZQ(N=|1PLp79J9r!`+Y#kQW{ zn!MacQp5*(7Bks%ietwq6Q3ADGF*wUeJ3`E2=R*{qr5uwF zJ+1krvbM$LkS=4P+vxbGHFub&A+IqZ{nMIfH`kDTO-TQ=<^db9UzycTG$H-dnj3G# zAcBQUf+6*^=G(r(E=U%>5e%uPH76cG1Iof3!H~S7h|`*DzJpCK$VNID6zXZsH{)4} z2upq7r!z-B8G+N9U&3nwBCKJA{%Or;k_eAJSs=OY7D4f_e_C_t9zcf0B5<*u*4!7P z4AFjXP`jSi{4$nV>A6Bd{nMIHl!xLCz7#t3wB{$hN2Ys?PCbixt9@cUHmnYYBQE$t zw`%*RHFw>BZLdsJ`!FV5?gSsFHTUj=&8!SGVL*z7tHL|2Im6R1ppXXtwB|B@YQen6 z5L&q9Eao)lG?q1_=ssr%E!=uq^K<)^_}CCyxaEB1=5%hCR*;_!p|J?jjh?((iRedu zTA2v6B{|+{&9g4m`0@?wHxlr^p4R+hhN|oviz$KAnir#clBCTrL<^M76fHPU|Ahu% zj?*F$`TLAPMCzT^oSUpVJ}`hLO;2ks-ayU$EtZH$nx58NVT@|4@UicPVAAxo=Bxx& znH!5CX?j}o=24oj{S6UJnjCHXuk-5PNZNe{kxtQY{%Os#M{0yG8CEb&s;FxmT9~ic z{vxoL^l|{4*8DF9|B?fx(DeqZZZOfJd}wGf3bU~FieQm)!KQ@ny+mEuuMifOta+j4 z%PqIjooQHcffipqt@)mdROK3ji8lU0%z9dLMq_vIMqe0A1{g|w9y+y8iN9hAcO0Te z`W_AK*{3N@-xBMUpv&ce;R~TE*bOOO>G5A|jNdsFPHWygOEYR#QK5p)muRj`7*kfG zdE>tVzz@PUP8f`tx0rOKC^nc45};GUUaa>>fU=+Z>6L7dA1z|S4obM{j4E$d6dPyx z9SK?cG^wNiD}ZPD0}0=>RQAcD*f`5yNjP0y-STBo0nFggKdt$FuMj(*6_HdipMN}) zK1x`Mr3$yy7Zt$wk{4imLK?;j5@2vq0nCurKdrgxw{D^xdf0@Jw3;8O5B_P*t8(1@ z!UxZa3SlzAJFWR_Rrgax4xK;%w?MK=cOd4U)_iEY_Q9#2!#Qq$CO-5HF{d?Oc_~`1 z9Om2(pOXwH=xNQ%u|~;eP&Z!_gnC-@f*Z&cjtvU+wC0=2V;2pFoEsGCY0dXmQv=ug zLNj5JWFZzkt+_p(#>jx;pke(U&BJCD8;&`tU?sNtX*LdYwc)hpRqGYYG?;jhT?1`; zTJviYHPY?|3r4D^H4nf$JQC?W2J<8J(xIm{*IMn)^=MTQtj3Jfng^dzm0ubxXrP># ze4tqAS5({I1`8U<7*1>MxJ{FL*|vDEcm|5f3&oDLR+VjwU}2zOWfE`1lB%S6tigf? z%9+V&iSPfbF+XCkpn;6xwC1J5G|~?Z7Uw}xnU^>WTM8uRV@0qqP_XuiAFNXY%YEUe zIcT7s*8KATH89U$K?C))=5ZJRNTfF!EY3hZt$F1^jroBhSQx0MH79a9K&hN@8bPhcM;5BoDRgt&!})(^V!l$d};_^kvB&a_I~Hj zXLWgwpdv6N*(0*dVNbT65@fwKpz) z-|@UuHVvB6*+Hox_xFBWXNTNh7G}%+p4|C_8a-y;wiEki_F_S@(c?BZ*LJ#P*P%od zsz$3sNPF2f#_-)eSFpwvob?4M6Cp;jX10f(x9m%nSnk}X{0;=2DM52+7T$wt^sfEr zCGIjC)e8y}J43k1?(+#*^O^6+LO0SJ65%Iy=>oEzL!30$7rN`CIYg{`t33xh?58JoawOk#!Oh_8NSeCMmpY6Ulms)i6E~F!aK1Ac+=(ybm zPr=#eq~1ktbAas7-ME>~`Is7-!l(7wqJ0+`DiP8+dorrfios=<3s(d7N6lh3XGGqH6L^A;!pED zzIY1C4ppN_Rcs}{V*#{K)m=!aTv>YmPWda(zn}65I25lk9OxT4zLa|U(wIe^=7pADmiYjN zU}cBF%75%y$C2!{zG`<_BD#}WEw!u%*d@FDK*3rP-AxtGDsi@GVlQppP8NUTi7J2X zxxv+uPrN1*JxRY}Uk~NRN#$tHbM*O@kajmxwg;Arw6*h9ZAfo3QYkw467%=)SQY!O zu84Pmk!o0;Uq&0*eeuFFtu@kmP@JL&&rzcN?UHaS?I{}BvLDuC8rT_eoQXwHyncn5 zQQN8Vigp&2cKfN9C@_ZY1fsGtsIF#A!#H9G9=1gfQP~!HfMOp*u&s!tVh)I(Xdt#e z^YH*Q!6zV`j@PxKztSjFBM~k(LQFOLBZ0TtJF%WaZ~Fqt883VIYbw#9_CP$KrSFSE za)=)?MLRgB`f2Bu@Qqh&#gSfN;cacvKF*_$DOR&+jGz2PM>}Psx>c=xEQTcUPO#_% zr*cQFa--u2IheF0&907V1L`BqVZv>0+(p=En64geTW8T)(Mmr!bn~~!qoru;Tory~ zgzh42v@|7P%qVIP8MP`*rh}I_u3FmTc>!uyZidMfZTkF(ZU!CVl z-V+zSn5LD35!~#*Qiy0sBXBf&bdvoE2<`&u8$;BC|GhHJXLv*x+KB`7*tc`B7`!6H zGJD&bTK_KD>v_ekX4=&7+GMmk{rWvp*_aVG|5eK0l#gCXA7W}meF{l&J|jzOP?aUx z#!m1F#4p0D=;70NPRYJq?8gt`3XZiVRjsbM@_I0&2y4-tTQyg{G$He8Fm}dAYt#2w z@S|T$sC@bmUu}ujp((?WkkEHtLJ$`(qDM36^abssE@q+Ixw*^N(JZIf$J&iI^+UQH zSPt=ED%zSxj&a-!8SDr52p*6{+tB|**mnn3QFL$5%w2LriMd&dXaWQxqJoqNBq21D zkc8g5R0Gm`RjP{85k)}33Q7@_rh^6* z>F1o8oiZIO@Yof2-IKw^n8aW33)PniI}BsdgBcCw+nBjv8QVPu83(vidcFx&8>sW20fnL325~h{-{5fPuB3Az%Tt?m{i(qhFfl zR*kT&8e0slTd1|XUfN)-3EQW!Y1@&SwsK}2AuxD>5%eOgE(0qOaK2i4R){}9$Mv^_ z>W1Yt;+pav77rKNpz^ixfwML{M;LgY!UhAt2V5A)hU)%I0 z?f_W|y3{8hMG8#Zlo;I;Ys$R6kb#$F9*pL32!3`BV(`I5Dl|cMLH>NQb9Okua_A3E zc4s+DnTog<)q(CRMeHODsae)Rfx#SJfiZFxpC~Lo2jYT+Q}%anw|bcc(-eUow$Wk6=p{ zRdH$U!;+DR`uar?deP?u1T^3mMIa-M@100#dlLRCWtT4A>e&*MMr))Jlv-T8#V;E7 z!53D3Q5UbT=1P#W^-nUR5P0tm=1qvi6%Of0hMHp7I!!2fR2DO0(D+7V3)v9%`T>6VU{$VSSlsaa~%& zbzO#Y?O8AC+RInu&l?E$lKvGaavmzc8bRA&aREq?v_6P#r2bW?$gePD)+o&^%++d* z*0qScLt?mEtuguq>N$q1)f&q$ib7lrSF1IvASTLABa;%fSgJBazVb+YtO!T@kmr!c z$iYZ7o%qDqs~w@&7|RXMLt{=o4}TLWANTS=)bryWNMwX2Kg4=%Mh_`iUOkWS668Cr zp$Zk+>uq5!nKdE@Yq~>qqAb@1=6J%Cn@Hgdmy6gEzlEHMo#4)~_F3j($?`gMk~Qha z=a9^;!SBaTL*6Gh><;a7+I{atv}_>+PHDFfffN#9GEV8i>`fR)&9B@=7+83aG(z}Mu*y!ix@Z%@bHTz0V`bgbI_SRDG6SRd=M!|nVD;A}agJ$37gO zH)batpjYT{7!J@|I~l&9-G8|c2j~ra$ie}71qR}*YWr}03kT@Ywu@-{H2Ok}-7pd7 z+}jNhdl5dOZk@2}-ofc!!j9bS6B~rRcwLy-DC`Ey!^9?GFP&=O3z z^FFZ~;o66ZJ;EM(AWZB<3^;0fpRk+5w)`UOxHVxIp4)9+3KPFVCY&$)N9!T)3wt{h z%zgZe6shal!8=rK*{`k+Q?lcrbg;pHUdP<4`@ zP~L|iW0CwMI%=S^2K39oXCT2dcmxXQF*Qy;ei0`*`jZg;HMtoOQV~J3q3U&cfPY#M zv~^33m)H1bc*Ikf>rxYC_-!KRi_!H6d*Ig+?zI6oF?h)XTR^!x;ExREx#AW=IF1x{z|9Pn^1#mm9=L_UG!Gme?SWev z?Bs#r80a}-e`0Wy2R3@j1Gh6c#{-X+@xUDnuJ*tM zGx-j^Nqp4emq1EI)SE%_4sBZ7BiT8!BIgvpYeeF~KoIY<75>J?u`;%V)`|q01 zeBp2EVu7?yT=29@Ox@`OgHFm&4hkW>@d(Vz-OWGXqb%j(?GVB=cx~$5SqTgV&pQU;r^4UX7A-*mw=Id5jcBrbk~nif)t~?;etAJlEn0fP#6bdTteDW7Q$p< zu>2(1Z3g5k`2wa1$&rwWA&i|V$b(N_xM+5GH+LCG!XnHKDod8echON~5(fl>v{zf@ zlGP`hU3t@j!RjRuGE7dHV>W{=2?iq&MEPY*J98GzwqWo$_KT=+c_UMb4N!&hOfdKz zmXoR6vR45iI?)pnN*aH1nJt_rC=mV%i`A#r+^(L|sBP(6T^~?}0zX}HD_jzD7$&O&6ytWm%%t%aMn1;_NHUvPysbpE| zV{;QmX)v_%!EJcxkE*KNg$X#mb|HhXOXy-~L$u%#hTxkzQjf2*NHWI@kPcZ;wPc^? ze1beTIo6HV37IZ`L=$1~{a}z5L8uvWGIsN^Qd{SO+JDohsHvIq87L)YoXEkbDIfj@ zv40|ed=vl4FgVMmJSrmL+LP=dpYPpIs712lNG(OlCyB=zPe)WkyQ51b<;f>AJu&3l z;;LKrSXLRhmj_d#^e`NY$JQbVt7Xy0l$cAVgbsKzh15}wd?QS#W<0Kurd48$Ohepg zi^f?A)^gC}=&=h82m&;g(CLr1zQS`C8W-?egxG=Sk`(tvdP#rqk_1FsNAR}`jS{p3 zuJ~x{Hoc|60+R#g?L&CMVrbl;5hLp{2caQ^MyOHn*iP$NTnz1SXk6iOkcQ59(Pc8d z?S&4RNo7EjPi62WFrv2pRWMeP{D^1QM!--MKpc_$6xfL0 z!hk9Ks)7gdi5CV;Ww3zhHP$D1cO6({{18) zAHZYU~XW&Jpx+^L+IBEHiijPJ%ZVR&$ZcqH?%$zzVHZqMv9Rz;FQytc6$UKRvN;< z70(+9S3Lp`XANOcOSn=Tg$-?EdLPd!7{cJNzDB|`9-%gL5N0?zkuR>tWDH9%q4QBE zgO+XyejME<1GRmd{&u4mG{+Tf(dz_jIK3dhFs3qQ8?Dp?8uVsmiPU5|D@f}HLQ<>$ z&;|YU3os-3395^m;qPsL71W9)pMLS_Py&8^8zQA4zoNJx6qa33^PF zn(<^ZtaKReq>Hk^h--WXf!Vaf6eCjV0#x8_A~^qzC=OnTD_$JC|` z0!ZIA7lc3>+oU$zGR_Em2wsiJg&rrRHs3NFVIHUVy4d68FgSpzE$?8)ixZLIhH)Y* zI2nXiZ=Z!#&vFB116!{g4)C??pe}%9Il3k?(#97F#=PtdB)HX3$Zk7|W;3XCHsv7j zW!S0hem`sQQ-pK1==kF$tr$*i|6DJh*h96I3l$bzREE%DH$Gf&4385bR6@rOY6>kO z!;`@CT}DEula7RLo&-anFX*Yyujp@D-ULsAX`1u_JvHmnQ--iOgh1cEQ@d1n))2Ob z5a@evYS*n>g&uUBC4$pD$&pO$c5$pJqj2;%lS30doyMEm{T@CyauGZkLKuf-VyQhp z!PgBYG$evz4T*R#9ek8ZOc@zJ+pRY@LV2%aIo# zGjlrnI%9`}v1CX~t34APgR$Ge*xsoMN6Y~5sWwpG7UU(kcVF)_Q-xzZ z0?$|LbI8(qUKwR_^-&0c6jNHScC$=}+7LpZQ^M1F->qT@CqoEy1bAAXh2#lQ!C7H$ zHccAn6!Emai=0X*8A6~V!qfUiq!T+_a10q(+8bIAvn|j&Q0J?+>cyMJ(w`8&3DA3_7Dg?@ z;cPqydB=f*!Y9kEQAp(IxoF<91k@*gFA9A7DxTaw5Op52cxmHWzH9PUjhNg%D#@e2 zLcnX7&D2W7C_$*_=Rk_1nYNf0@DbTcdz-#7WcAJ(DAKl4SgnQ$OPf`LH0KO(Bl!tx znBULkU+diWUdp{Eq>kL9wD)I0&2!}*CVs78UHrk%?M?aI4#t*$h;ScmMBXVqvOsuH zxLmc6t&bDVnnqhb7;D%HU1Hucc#s^fUNE+|8p6%TJekJ21!JrUKCLpwXqgEvmQ7VG zxHQrb7JCHKBsQTjq%Hd9mdVXQB5)ab<>5V{Wd6L49DcU%12g6MpC^!OFJ2b>5CWHM z&oIf2$?X(DfIk=Ef@CVArArH9GXjcER`Uo(LIINSxtL-KqrFEk63FdHTlNTcl5_3Q z<-fXioG7?=FF%LbGbVf(Lg3!LqS9)U>-8Z7?%gX3Vz!$loCqOs?_RZ+287i8eR*=G zfqVCtW!IS~9?L;^MqW%s5BPe+SyK+Ccdxlo-=_1!Jd3A#Q5fz%=bEgy}BP zOHvQq@&See6dji1>i6ie521s`(e!sr2Q2uo(tf88e`Vn|Jud5_JLwKfP}-qK$ce56 zY9v3Q!}9yX{HwG3K488`GI)f+3E4qz1c4T0DvgXknD(hhGv6lLQ^ZGkW@eKMx-&EM zr7P|DrrkJ0gpzjJWdu05Q4%Nrg-+%sAoC&ZCC$K%HSMYYJ~!>BNHF&EbqGGQ88hx| zAd`ZzVPnuJ&aUn4w1Hr(=WNu#xz=-}pv=ks!Pr}~5bn?U^-#Lh9H#_h+tUyZi^i~R z5WcEh$6iB>8%(|ax{UB=0B9vP^M4WLiuNe|>sm@Fq8LM|?~905?^(~k+s z#hxrrQ^?D!aV~@`;(ZGs_uA3|XNVc@I0AN+#{HIBMYmh(*9Xg0c)Pnu4IZw;1Z0NkJLaR{d?<_iK4wrfDV2Z zcP*v;H@K0J{$eo3uF;+L^Ni;{$Hkmh%li3lqXI@he-}bv^?UCljGehD9mzq^dnnVe zK;mdx*!MWt_-X@ksIT+RCD^H^+{kT#GJ$wtHx&v@ECdny}pjU;3+LO_FxlBIM(>OjSJz^%tbm4dEgA2uu|VspAs3 zHRFal>~2X5$dXM=L+DBb?ko7ZmJ3*v%-g~Qewi?CV6Eh#4}sa3KvKFIGk9-mT1i=8 zI;&{TCx8Dypg8&nSz&5njB^Y1q~#aRuHWN$|DavJ8}Oc#_y4`?_hb4LQy>Z@%16?XjgB#+lL6yMDjOFad|T0iA50LIZIv9?ylb^vG`PosZF`l4aANEijQWxuWg&Kc zrx>&hch_%g%q`0DA*k8)+Yt_#Y~Z03o44yXye-gP9?DI}-St~_BGNw5Lrqw->-S zd+>;O4usH~mFVs`!hxYN)|6nr4f?D}n1##||p zmYs$ynO(mt!;SLo8p1HUetRrd;ugBLe1#ZV-MG7c|AwLai@*=v;E-*0{dV1|G`Q9S z-Ce)S>Pjv4peNSd^;-f10v7wX7t-DJ`$s7Q7AWN89dVjnzs<6Y*kl4ZwE;@K(^Pm* z?{2w0Q|Q>+Wv4-q+4cL|lRnLOH9Lc)IptSaP8elc-YUksY4cg*vTV8nq9xGh8aZ@PoUO&?yld*T0%e6 z^+LJ3eoJJaWoCJRyX!al3rHa+<26^DQzQ4@{V`Ufk4^Gwb{g_#cKv>vVi<)BJ9*RH%xELC>vwekxvWeSUH=9(yMAY38dNsR zfx5eXdlxr4w!h0j{ASnh3muJ$p6bRA(Cqpxbj8%lXTc%OuHVZ~n_AiGg>-lQ`c9zm zk9(oqUB8L=h$8>>0C(5#ILwoCtvrl*SyRdGuHRkQS;}TSi9lThtjyhAzr_Zc3Tf*G z*Cx)$s4HK?vLlu;(v!i(=GlZwUM^7&NroQ6e+L{Gz2uee!Gk|*fWG}*O=M$+x#P`!!;!A zSB;rnzjZMpg*t-~1ZE1=-St}xqxR#V`{WElb*Xxd*xmJeqbcpqU74LD++Dw4G$Z(D z7Y1T>{qDuE%_lFqNRC~DonqHufQoE(t2U-&8E!%0`F^OiIh)hLszXX zBIQ%w{FVL&-jg>Qe0oi9S*jbhvn`s`M-P;IvbP+LA#2LwuhGY-Tz#^ce9FQ`y5;4* z#JW^2dMgHbW}&gN>28Go>N?)b7`%?;Ct==y&A*b|_W`r$xd{bY!&4G1T`-#)oU&9t zx>AaNNbYc#qQh%9IAz_k9{|quKq6zmFQ;g^kE34Yq4x<*l5LA3ci;Q!6qEvI&Iq}O z7^53kHWx-rPuQ?eWp&z&-b1{m@Im)%TasLDLXGgP& z2J8_6R`>l-4jqp|PIf^jeT6Ykk<#8bai3AFi(Cd|GuYF2815Wv>+LS+loPq3DbZ?k zS<`MWg)qnsO&KI>zlMdi&?GVsMpCAgYBw}xu)Hu$h}8s^BGBnonCi8bI$a#aZxB=0e0hq^meXt8Tuu>pz( zWx_drO+JH3M((KxgM-uQm?=G!Rn`Q*;{`X(h8gYEeV7Z*aZ!9r$zIznzDE+W)QfMM z#McaA%HQ?M!h)s`oPR^N#p zjn%*Qo>JbE8=-@_|2HRwZY|nEr(97LA1CA2*9{B%*)krLGD=xyJB^5R+k&G7da)5@7eMW<#&(5d!@N@`{=FN8|7&%fF?5sBdlwM zVhXrKone~)hxLu4b?Q$i^~L95CNx`CdOQZbDMY9=ZtD$-rUhm%|*?!ECtOe)+ zwpBt_#az5B@1ev-mm~9Pz3kgx$e7nA#JEe6ba=fY+bSv7?=t3YPzZzUt5r%KY-hUd zbeDk$$iP}p%GpVfOM|7)gF!k%-zqJ)JZeI2_dq>yV>R$Cf;TPyB!COdnbxU{$ye)X z`FK2%s$eipaaQBmMys6cKNFEfdjO^puu#k@FQaK2Ii)0#K+Y#l&T@Jc-gj)v5v#spiU{%UQVmJnp6ado$iK5{>eC70bea5dNx}c*_$T(Z2 ze7<^SdS!nIgN(D)&3ElBQ%Qe&(FYl4>tmIGSrj(Tk38<=P4@_GoUMiG06a-%)XdIs z5<{lfYOiR$6kE*B9xcc?Tiw-v!wh3Wc7~&J$n;t#RJ%@Q(D)hAbPXCo%s8xSh8g4h zb9O-}J2KAJAXOBfrr5;NX)LD3v~jk^t8-r&`|HQtM|SXSwQiXKpL9VdePn;FFIBnO z#{Q%{ zM~)qa`-BMG)U!Q&pN?XR^@zA_)PAQbYRC)R+!$k!_vvC&TimC53b z5W8O{9FtmXVlYU?*-G|R!|<2Iwjoeg7yU-6ILC+Nx)J94&CuZBWO}VmzSp2*IruwX za8ujNXzr^NW|H=;8{8>UGR{_8U&-f9wvU7`$S7J@)wrf6kxuYG%|`-85RGq(5kb(M`PWqjiU9ZeEDCaF?tX~YYc4^tu&Qy6q$op-LS?eT8ZjX z8X3iTE)pP9V~nEJ$M?-?1RP6&x4UAwC;~UXXWn5OJA@-cjD^~o62g{eWdY&GQ}wuGwYXi8Tlz}kRi$d*4L+(YWl8A=VmG<*6J ztQMff(cY_=f;bu>JgPEnX3ZL!C8D0Ac2AZvtJ@$E)lUDie6f;kSrFIw;(T zo|cHJ(YcCgwND3Q2dV?B8JB5Pb8Qbxmex@mOz~{W>qtjede7bjp$+u@HXUlc_IeayVQb`qz47N5Hkg6TWs)B=YxQjN9t3M`LkBB4IZ@%(T@5jp`zcHbw$Ei#nmE zt^PLZH?*g6At1Na-`io`r_69crx6}nQx!4wao@8<{U^As9{wHc0puGVjZ{Row))3n zC`sO~AjltA! zyyUieDjDVUJB2IlVouE5R!{evX$bW~2;5fBj9aO+gx(&(v;l6bXZv0enlLp7p^~Ki zt5H{1VD5^0s%ao-$4fztqn)xb`7vD^UaKS{;sGT|Bi)#9E0*DKFP3 zB7PFFlHVusuL9+r_nuloDbbq3TFKuuFioyJu}*VSttf|yTGh6;G77LxFfv@!s(u7M zDWyPWc}TLXJRS0C%=-nkJ~n%dXgSFQ*34H6f!@yn#>*8oF#VYl(ZERk#*MIBVnW@^4q=c-F#DvKP%qzHBjIh2KxJoiTCE2D<|Yj$f!v7D z7S@0tM;oJK4&i*E@LC7xU- z8|XJE-u)SlMnKf`s`pkRH@=FjXef6R!?teS4Y=- zdd*IAjh*XFd}|frL~-{+`cfwSVD|iv&jul_sXu>dayl;<8ir7{K6=CGfbWB$;egU_ zLnE`&`8^mK27#Gb^-ZW7!O(C(wLi{nMq-hbf>M|@Or+PnSILBWDjPIhq}QA7B%_uG zCCmE#F%i_D{zIBQ;DxuPjB;i0YeA| z(Y9xUA4kV5#0nHR6Apa`izUMBk`?+BpVnzdx;i^H;$w61*SPnC{ zr^n@N$IH3Dqm}&eCR`gnL}C&ML4i%rIW`Ag8JF7v5)j}7>z;F>PNvcaVr<9;A*Uzz z*TmdAGB1w=L)3FlkHaTORjY!l_aZC*u7r761VOT&i?QGU*(*rkbl*ApxGAUU z*;yc5JpeKHF1?NkdaBPA9)Ycf(I@w}4+pr5KwT_sl&Wb>B;?&~D70%H>b6$Q%doal z@)_)n;Y<{$;+6mlF$|v^05^~s$sWTKR88xfTyi#sjj}aSvZaI-PMB=>BvLXo1Z9om zmzBCB?7P`f-S4VNRypBv2}U<^i$`%&5Y%_{v~+qNxd-dyx%2!<0l4$%YSq)y>3QW> zP<7163#}5&D9=a0q({gT?Twl>oewIhG`Mke+Dy!4oc$OGB-5E!S?FDXuSf-Ij|;!P z*1s%Y7Wz8Yc*^bHJGtG z2g95w#l-!*Bv`b)+z}XqYkO^MkSR7;Xk? zpT>xk!>tR(&SD2spiW_YH{#QP4tp56nSthiI=1{)Ffv>OT6~KI)hsVi&CPeR90B(z z&~nNuG`gqhJ(r{|uw>a4-e;iIWjOA#P6+t;ZwT2s4PUn83n5?_7SaUT$PWO%8Uj|H zj*x8=6vTcM0+MSRc&;O+6y^6JU{+D&zWu+*hCJkf#^m>>BJEHbU)<#F5b&Q{5Zm!> z?B$mQtGoF$A@5y4K08%<0;!G90mjQF$B>oh6UQ1?tpO37R`bk71kCyk)9`$%Q;%S5 z#yTXY%cO@4_F6Eu?L%N)x58=Ua32R_KUYV5FD!*4&e-=JmMnKPMlQNPVo>wn9Qm*vn`0uwvjG&*XAC;LI^(C2IfCa=0@4l!Hi@=*^o3$R28_{-}6r@yceIj!M=X6Bgg z3kbXwJ<&9ajzrMKMqWG8OULvFX59VN5XOcO=-h|E+wE?^2$AXe*o(qQppzp4Gdoku zCc?%L0)6ca%)UL;G5uZ?)V7?pRLpwkJieW>`Hw_%eLyp3*1MgttBqMz9>B^baLzw) z*O=PTqf){h7JW1d%$n6BhOjY&5VZm& z_`#T$g_dwC2ceQYUk4ICTs6p~G`ND`+=RoIiKCP2Qb+HEehLUhhjy05++v`;B5#Wa zRG3f-bTB_HU)iBB9_ClLuWUD13-c?VubgB#N)@E)>J7n>{DhSY4EQwgh70J?7EkXQ zilr$lb5PhlHI!VMa?GPV$T2kJFipPak-2Rp@l0nRTz!l$e_V;tweS#4>4u}sE>LcD zufJ&wiNPTIKzYw1Z97y zuu8zT0l6XsWryey)!=ko}V) zsz;(3WS0sC*+D6)9>IJxi%km#*+VI&s^fe^20M9RHOVeoaW!@`vO1aoU5MP4t4a3J zN~k~nKxW zV@NKD@0r=FmYt&~)Sqx>IZ4H1n4nf&HdP=pdja2pZP?KNwk4mdyXr*#W z2+9sp8TH5KKtBsX*+Y6-EiH+X+!lhei&R!^wSb-tLD>T;ubM`nH1gEWmS3kmGo^z1 zrxPN7!lQ7)^_V#Dj4IaGbm@k~;C7X59LjD|MfF8pTq8g|zrRN_CBR-#Wwm}A&>3Dd zuJ%IZFeO1n{SL|sk75L{r<9~>4MIAPdZ;TPC_U)H+haWr?}Wzs;17u#LBM!KgsMZ)ljRBBN=b~Z^=p8U8<>WV}%Kq z;U-V|gEE=K=aL0dROfC&e-k|J27nf4hbdK!#e@KbmiK}|_L$PtH^t06STs$(X>C!B zzvu^QDO;hPClTNk2MUXQrgT*n3t42#5R{#!4E5<`l+IueWh1BWVG7h%t+2j=b2!V5 zHb65ANHx1nb<{Y_tuSLv2!s8mx+?R1DN3O>tP>muZdE@oh#>H;-l#!+ua>b!CUC)QKSsc7&R! zAvg_}v%DmP!Jbf4CFWxvKXtC1Aq;kfnyHRhoyd&8LKy4|HCM5#O-gO}Iws2|rF6h> zppBXlZv3foE<==;e=G;sR&~2-yfM>Q;6^nBEsoCkjrkojR#rweI^8^K{0ms;lu=_i z-rJr2Le<)BF+l<#69=7H8MQVOF!vZ1;MfC>qjlQ5e!^iBc5w`&!tD3U3S3p9FvC&Q z9)vl~SUVDvcI$-Q#V5rWX@7PF|BbQen2L;oviDd$_Z=%K0U6C(y^12b2>FrxB+UEP z{3~|@=e=G{WxzHJmd*|aIzosO{5fW1dJI0{U7swN(Js$CA=*>C-5*To@Xn)B6DE2D zUhowwf1^});SD7VUC^vs)!RifUU(-0vVU~Z0L6vz%ZBbgk{}vy|x~9f*}hg#hoK ze8`LeTU#3JB@few4Q33A=uJA&m5kghKwKF^65t=oW$t@jO}Lc@GhG=&$73}ipE|K4 zSl|g*L^(t((AS#ZF|Vv(9x%e;;}{_F+hs>TUS|@ZV8HQOS zlSdO{lOhQCdMnIEbBra3psO%h=Gg^oLh(6>v4$7W#CUQiq)sf**5t8maKLjfBH*Nt zaiX{!<^?n{4)CJ@CMPX3$H&hI4j9=H0jEA$2MuGn7m(%((4x9O<`)^$j{j&T0DkrY z8tje24tCkaoQa^bcOm($6-|(ry!ey7qEFom6B#qgVH%U0Rw*Jlg^+gv0>0fI9Yv;j z0Zm?Z;cH{Y%r{V(TzVb7fbnt{<^nTjzmC=VY(GYLShD=0H^RO9Vl0Hd6C(6@CxCN$ z%u!nCm%#zkp+z#@>;Df5=ztfH&hrhJLwz@4?lR;3vlq|@@m5~10Wz#4+m zBrLLNP(Hg(1NPBvY;%!i=)LXwg#ODVG0DZ8z`wy@WPEa_vgz7OLI|TVfXn!FA`SthLm=hPIS9$}k$sS` zpf}bS%ku;V_2Xo@6Km%)79P9?(BCX481XQ`#d*k)c+3M|()rGWWy<*MXa^KZx(8C_ z2TTi?hR=@~OX7Pf@fzj3GqD^M*bj;@W9iy3lkZnt%n4k%Ap(D1Cd+ib`5}bTP)r$L zbi!Qqchr4<%t1(&ht493WtV0n>JtR&d~@28<;f(7U%smlLf#Jnt5L|6t!bt=rnwu^ zbndg!2)XL=deb2iiQsgI5fxBiU-th50h@aPO>vZLh6I20f@L~)e=lIX+=)qnjIaMx zrZ}bqW6$BUNyeJPaM-v9E(*rZlj8sGaHP-|3H;<@0b_v&qQ*16--1I^xP6^*2~Zk& zvHBq6he7>JFZ8!?a^eJTlnlc9>Cxtzf)XG&&GO3t_=p z=Q!I0V{|@J#*bybGT~lwvA{rhDhS;0Gz4#vZT3|3Hp9@i z^Zk@AjROwk*yL)|$9K&7(v;RU!ns!UF3pUcC$FLA^0aiS9Lb^W9vQpN-!OT3oG_;i z(;+|^d(!UW6^$V>T+AsyTJw;xw<1;zGof1ufesqV*f$2_LMBWIAw2Oa+Qoi-Sf%`-j`ksi5#%2P0<(Cu20v`uV;S9+@7| z8ln%C!8Z~P^(a)36YC>K03FWrhH1o=2;w4qM!tk~^%+O@LoKi(N|xWe3+^9JghNBL zBOYJllqCDSgx3-Bp}&my7lD~FEzif?W)zlXVXY>U($Kw@4*Gc)v^csEBc|z9EHux2 zm9G1VdJoZAnQ!)N50Ci(vMCZ%g|r{}1rwBZnVDF@Zui1p%gzr+CzpK+-b0vO{#zmZ z_Pftx$)r8$PrCB2(w6&!_8IsX zQFfbG;F{a7VAENCyF-@3m49QOI47<=;L`9Y1P^ zr7B$cHv-Ke#va{)uKXK?-dWV%j=ogPejl?gvGy~sDpB129YdxPw#wxbadu05A$ZKb z)59l9+F47ac-)SA5@R=e>Mbdru)nRY#FKVE#QT(83(H?i+y1AOC}U@Qro_{BRyoYs z+EZY8%Gt6lX4`Fk@U(reNKwUZ2Skgxq7iPe_!o`I<;AP_C!f$_3baCPS<%%vYY=g#ziwnoY z^5EjaCJ{cmxUdJbA8stX0hi(cZY+F7iQk01`UV!{3VRd=g$IS*w7*Xr!nKJjl{hTy zlJF#sU{Lm)5PzVapHma zK;Ewid%@d6{3UD)hfQ1+_A1oyHI!0bC9VtmF_iTUVGn}wzA5Z4Q3SVy9abJ&P=vh= zrsTG;=YaB$u+J^RO)|osjc)RvunQ+jaYxv%F2mwNVb{dxg?l2g+0gEElVg|hf`*U3 zZ<1oHw3pz+!OPNKfl_)!+OhFI@v5}1H1~;d(w^B+ir1w5LT8_NUD{_yN-0n(zl4_ihP3bP7h<}!PrU3C zZz4X-!@MOEGdhVG(tZ+3;B9HIDPpiG_L1#Ud?M{PcM0*Sw0ok&7f5?C{#z*R@6v@>B<+!{gjg)?)=Px=OxmMw2(d)k zvbq#YrQHQnLZ3@JI-tZC(jEw!f`*9h)YkeFsIbLE0OjE;ma134!h>?dx!0e?;+MNV{3u4IpI;exW69 zMG-uP?kDZ(N6>UL>w!`HJN`06=uu=rWpn{NxTQ`#lhD6vc0hps8HTP8Lc z+DYt@iS-8e6?>5+I8OVdUEsbFzaY05tnQcg1uTsERoaJJD(Z~&bX(YgG2E|Gl)2au z+ov-7$}Ob8FaHY{z&?Xl((VtHtn4CKpW(9?z&*9>0?0)!`@mQM6+Q=T!f&tbjNKdd zg7!YB@H#gn&<0P^ovt61!W&U$N(s!SWR8;Uxatc0rT)}7XkCI_&Da0?5MSLBkWJ; zTaos7*q(s>F;qsB{ry@6wb8W*&b+g~JVNH-d${=p?P*AFA-fV5Dn4u{md0H+_77bJ z%)_c!1@n*#1}56>ng>@v*qvaOi`cjn1Lk4uIR*0&oghW5JsIP@;&!`SWFCH+tzaH5 z!kRv2zdKLCJRI6Z=AmV6AIw7*RLc`~hgM`Bx?r^VlpThVQE6Mk$1G##MQJ>3?;b?v zVapIQ4}YNDmA4=Jj?BZLX%gmPett3!eUdPywC|T7^YBGHnTI+bVzH#%8dFt?b}uNY zBzr&fR~0)J!?|R8UrPb=a43n)!$eGoRkw?w-PEveeIdv^Tt|;vFYKrG;NWB^DU9i1 z9)3gV!#woD5FO^B7t9RI!+3m@g?V@)n$1I{`)nR=9Yp&S_IdmV^RODzoG=eVD+n?V z%~5_Z51-6J`-I}doFdG_cz7x>57*I2U>^P%3~vWk2}Tg+p?@!Kk;ghIG7tS>oM0aE zXZgrH)WZU8n1_RLxX(k_6_H$+hl3xndAMh@dDyyGl6h#H+ehYM#U4fGp%^smabZu} z&E}!55)_xc_@wlU>;tGlw=;pv=%TAiS;`5W%Do)M{&V8 z6;xy%W}r@B9`>R8!aU4}hYIu1_aQb9zX5}J_$QLh!@4LR%!Azur3CZv;WRc6FT&uB zm3FyXY##PN{lYvfPf%nYe#GD$<{?jSx%8YiLri4|~wJU>|<|97`DS66OW=p&#lN_F>XC zvJdw834-jy2J{Kohjj(mK5X5}_Mtg;tie7M=;kB)(DxqOhr5YvAC_NHWFO9BtOol~ z8^#y*Vcd6;>_dw(Y#*Y3lVl$%j}l}b;^3gcKJ0!|k$t#&9n0UL{L!gkALhg6!#*UV z%wQi*R>fgbFqBYKun!eKVEb_ABT4q5`8h%M;U0Wh*oO);71@V9u*k3vCraU)rL?!A zSHV7Xv)Mk(MM17dk}ASIllFlx6xoM0HP}A%eU9xz8R#e2hnHZAVISJuWczUHGTR6L zb+~7E30(^N&;vuU9WZrJBd`yb(79kA?&M+na5Wb9N=v&TY}_84CxGCv5AD8zdj>lO zXBPHh?ni7N#zRfRKFF7)I3VrGD4yToPEh}ob}sm32c>=U10@c@xFw?hNjonbvLkRx zCMod;3^cm-Q4~2$&oLAh{IcWH{&$WPCt%7kRzE52wa~$*a2H=6+zJm$Q}jQ$4#3VL zEt`Zm2Mc=Vo=LkZ z)a+Gh*TR3-5DrG`I&3le?G0%+gRq;@UR?z48D3)40e7g(G#EfD^F=k3tWt%^WR+wz zhL5m?=)_j$2sMk4Q;gI`#-;u7N!UVBrs!uh))}dm6W;WBLcW8(0MZSn)XIEC?I9#L zIyz()B1^aCW5%nX^IDmIs|$q3qjkZxMk!!*2i>r3W!_Z}!)J{+Tu_M2d#aG1mv=<8 z&hHbM_svgbj=jjtLXe+r>UV($A42A3%=l_F<=|Gz^*eKe%)YZ020`Rr-{M@BRmuu8Gb3K9MYkUYpVeTh$mCB!KN_KGwgD&{Z{7U7;;E_+`-{UcO zGSEatSN&#wtt4zvClrjl{a_kh`kT30b)Iid7+ml=z};%d{EWXQTb0dJQ(T&paCG`E0bKs^HTme|tR|Df?`+W9rQBCX@eoG}8FlXvfv@{U!^s z{oJx(wQqVh=k$bHU(BQ}!=tgrH?&ezucy=p>&&;wESH8trH><-XH=mB=F`+`F6cO1 z^mQcjtU8Y|0Dm4?7{VBN6pTOB7pqOKHh~c!=M3`a_C(V-ubMfvaf~o_8I$CZqe$2V zRVBlu{|;f~w_yp_K`6h>i|YPbwC@7_@t)nkzVdmId0CCe3>@Fe-AZ0<3>jBcr%D(; zk~@gAq>duwRrUT7DRNWqc#cA|r|P+(Niv4I$u%_)VIqk&%wZw!dcQ*E4Ry6X+WAbp z*G_UEUv7BxSeH!x_)T^DvJ~`2t|W%zfDWCHptn`cfub%(kcZ6w)SWO>Kye<8zvA?hSt2vHuLNe#qmc=mqo>n>?=&f(#%177 zOoK#>EovveF&Ljr+P`Jtx$27pF#xH)5=pVEVv-KyE=*!7`xpH6*-3a~*{e3wG+zMI zd13ZL`0KZq<4w5zH3mGn?J3hFrs5{yZ(e&9-sH1SV)7`$UQ~|0)GWZ?Nc$Mx1nlAX zpcQ2of{n860{ENX9)dRo?CvvZDsC(~eIa`^{yuDX#hb!*Y-NS1xGFnoDlQR!qwOMi z6Jw9XsIiEhtGvQgoDYAC*`x3#)?N}$Q*nJT>083?g}-t3BD{Ibe*Z;@skr?O6{h0$ z;cqE>4&FRrryws++LutsPuaa=C8pw9HxZbMdlbGnzSI=Jeq}v?s-4sxBYr)AdcG3e z?%G}Zcfl|Y!>CwEWm>!5Wc-$2qbwu&DbN(fEeu$nU;W~N^qmY~eG1utS5jSbL9>!d zuhgpD=*!7Myh*b2V@Pjgb8x+XyLMxB%=FfZM3_y~fFV$Ct=**VXwzAnhY*gy+|_P= zC}5Uc_IC+b-Bbyq*xD`nVJ1gT^`fT5g!mkp`XK_g`VxbGUaPq{IAHNIz*;YFgbuhR zB;Zf*ifXr=05^*Ro(vAy1Lm;yb3HJ^mjVscWY)w;cZSz){|TnQsbpmg5je9*YKQv> z*dc&Al}TPeu7PCP+Xt}I=Gg#Sc;HZ!6Y?<#U!`hyzW%io^g<5sq*jt6mm;ZI`DU9u znxf_8pik+WgXt)}1itnice|q)6ZkJ~aL04_iSj7B@B+<{p9E_&M90y=-wD!(bieKj<#NnCW`)>3*()*N0~?mQdiiv0#g=+dY&HRoJCz| zNHQo7x>+R#@2RE!-#4p_JBPyQ16m|MiCA;93jdnqz7I?S52O32qWGlxyW)1c*hRCQ zT#1`iZpB~@kOb2>Tnp9$oSRk3QNjG_fkZY&2sf*o?_|Ef=N*dRb4id6?%b^M^J93A z)+oz_5cJI|54~uXUS+xjw3XZFXoV(yaSs7I(tDj_=Vp~pBG3wkdGDQ@Rc`Gyk+8%r*f|w(8&fZIV?20nQbIrb_uXLbn0ZGJL+@_lH(ud zCbO#SG)NTsMSgKX2{P#N3Bq*Ym~kW>zKEMucK+BO7?Q)>(Qfo zv&v(u5&Ogt)ZDDn+K=j6=%MUjRFjO>_WhR!=w=V)rsLkM^2d9Se9A*jSULumsenGf3_1nCG&T2Tm1kcvF48#aac@?+gVx8nY)&-YPAHeoG=aHUWpH=XQ${?PMytjP z_45rGXKq#@dm1DSrAlW=7JA878>3>5Z(Rt(+^q5pPMK_kJ}-|DLw7#!W))2T*CFs< zH#lUQn^mS3GT_4~Hyt}}8tT#~OB8xY78@zF*op*du?CEkKcN?~*v4K+_hyx*P$LY| z8Wp>w6DyZ&n%eg7H<3x#FCnG&ifXu3{Jp zu1Rnkb8l8z7m4;ujpRv>L1pH&X}&k*ZB+|P8o2A#%}zsMGvj@AAl~%90ofTkMb)Ia zS>@VU#PtSIxKtg~+^jPHIMB~?pzh5ot?)^YYh}C3K>X%rl|^Mu*`9Ob2WW0q`3`1^ zL*^Rg#O#1i%k#ZV$Pxr{w}#E=0)&kf~#8yY#t2K%_{zA zU!j*wlj;vJ@VWLw%*`r2Xeds(n?l$cjhUNOBH-XLwurDz8Z$Sm{Ln%PEYX1x^dfX` zRv8XYZWri2d6`h%u)IdB&!8=|K|O}j@yQ4{c|jau;C<>vOu+bLDHjG}ZdQ4oMsG6R zMRMG%vZo3S5PNtqB}TVw_hyy8<4E{~>>R{kZdN%vhTs+1;Q-5_KOpAqh4#2aZfZwK z`Sk%r5mr5w>=*tc`y|4v-a$D>Tc^Q|w&;xa1pXV%hrUN!blR;ytRnPv!)U8DzMn-~ zF=OEt>&Jd?(u=3*g?=nDgI-jp7y9vQDB)aq&etc8V$oFx{=%t16e2lx;xSBtGehO3nO0`p_ZTLYSbRB>zT9oF zf`b_`CZx9g7;xhfF6}R168` z4V?vx9*(~W77e8nEd7R#jEUycQxh!xOgprr`3%hjOFz@O3(C<+1j3M41uMUzEag?M@#szBntYfO9lTTEGn z-E)Xt?!jw4exX?O69Jfdh{3d=zvap8hIus`6L^(DuuZM{UdKi~k`#?U0eZ?I4ntbf z`To|w!u-pGY%H8m`bi1I(&jx3tSA98M_@fxMG;c+E9CkNlYRak@51Ql`>p)Fra@k< zEaC4>F=KMU-+w<)k=_qK_3YR2j+XEbJA}7#8D2*66Z9CrpCkF_P8Z<#9dxNiuVzP` zBeYn+OC0_oe7x3z1IH=)Sb2A>_a{klIx4 zE{l-WbA-g9tV_{ErtdEeu!Ren*%1F*zx|DV-p6~dXFdEgY92BrFwu)i-zV#T``>WL zTHuBWp7rq0Y_Zh@-0B8&if&~=?OFCBxV|o#$gs5VQ)dPIK~y6QNHd z2k#zQZm<{+)3YW1w({MB$VMdsbR*>15`TL+y^ba5gc;ew4Wvs{-$U!~Dpy^_;v$N2 zm>W79qqF?xJD-;EZVnlG#=~Dt#k_^sS9{?pM$}8oKak%S<*VNV{WS!o84rIC+29Ej z=06_F%EAa>N*_7&CIl3R-8UV<(UGb8>{@X?1Ogpc{$7 zZogN}(yeZY8yGE;<{te2w5?~bH$AK(Pd)hmEr~wDE%|d#rosOE?67IAKY8Ke<>HNy zdFN%E55=wgjECuY2Y+MLbFvX?Pj(U-ph&oYwStW2+h6_nRzb;e{E0cJT<3ZM!aq=* zi88bfIcO9XMM(1$el)N>CgQQ#X-*;gDLbfMpZL()WpKTHlr-Ej}R861*9zZ`tcgtVsw#kmPze*EF`gQZ5-RCGaILP?V5 z6#Tj6`8N%tMGl6ZQ}AC?OMdc+ESMoV(qp(C3^||~1AjRc*UZvq+kKFo<}eaerFMp~ zIXgqANY5$wACZd_&`D1bg&U!R(wu_-QMs)mP&G9tx)~oB{n0Z12>NHVi=yMwz~3Ju zf3Og&q6g^ly}yW@goTmZa~c!qR2j`e_>0LNxh!4qeS$+W7%NN9GX*~>I3!I`_>0Q{ z3r&?R3=YX)33>EO6Y|I4kTf6QU!Xp1YV^lhH>5TXdQQRrxO`!jsgT^$oFqF8mhpuA zw26^XnixUFsBdfaKZQ-ChEe~)j50F)D=a1@yWZDhu!Dg)np{Y!@~y3DiQB}O?4|>i z9geR?{(`=}eJtH-76J_1)6T<|jle3(k9!$x6Jfchb0HUr5lHL}E%l{Fg6;yTYQ@$m?g@z(G%qNQ?DwAbur5J0^I1c^xn;Z)3?~^InVXc+* z)PVmdc@UeaeX^6sVUMo5OnV!Nt0~{=ckK6(m!Cy=Mw_2-Md|lSNxsh-Si=4ueZGR{F46Nb;jkJUMe4Ykqp8?|O6v6EzS2Nn8o|j;q#dDl~ zq`&wGh8MX{ps8TQVW9xys3H=qNP48=tB?w3z^Yg6EA;Yw6a+ELSV?c|)u5O1Sx_VS zNyN&IX_ly0lU>FR?t9}hno!R&cZ7@TbQ&;)!FN3HJ46Aw9A7GfUwNSMQyENS@HY=E ziGhrEm`w0m%=p)1u=2S&7ImwA)q3f5kbL>@n@)xTTPSwyQr@aWz0B*d7krKMGer2A z@{WLXP*S}*rIQe_xfjsWYlczxb*KP2z+5%}ji zle&VEWs3`t)9fyJU}*$$aeB$jMr;1uQ;4o>4jLymS<-RG^;&Ez3C8#w3{xA-X!%l6 zFqY+DxFuT;St|x#qh71ONR=OW5YLEXTI&hrK(kP74@@~H-<8?s^MW9ke-N2kq|R%+ zY+efSKR3UzQT;85&kci(P2j%(+Lk`l@c;4l-qBSR-TV02xtEY2$mJ#o8k$5A3uuBE zF-CePgg_F~XqQNpu5_e>N^gpwfPi2Dk&eE4?HE@DvCRBX3AVEzxYopWT zI!JX40Y$8)n}^Wn$QU5qVrIHI^EevLAOgnbu^C7vqfTTO! zyaQE`-ZLN?1uwoApR@f92%WU=-RWi{bbS)XKWs?ubaM(mj6yd(XQIeFB#sx^i$B{F zgAEZ(U_!pEQ`5~U=%eI2B<+j_2&?JlfQEiYzJ=1y2m@2o&7H_{!KPTuOgFc;M3k0W zh3<5-2BONha?yK6Nad)RZu&5pl#iACXr%KoLev?fY|#-p-=s(ku9Ay__F)Geb`|50&<-h86RCzT~6WpOjrK~OjEUhW8%{Ebn}iFU7vdv zP1DoO+HQlHlAneKtEZa{;iQq~wz>eroo=>7wUk=7p9#uRxzo*4@JUF``rZhm)~V^{ z=9@J}SfEe|!8ciWrMvi_tzc+HXGO-8PItN)+J$e$vKOO{m2;-K>PcrljUVewv%fKH7&V zv}AIrg(fe|baNL*_|lHdpdb;^YFI{BiUUU-z zwR*a_1w%iPyq`fgOg-IQBOBt{uC#rxz?0h1f$kR4IcD# za}NBeg4JSdsKWGgbIf6%Q;nyaZGh>#G1JX$7&Blcm=V=}%yhFDW_)V8InAJ|`kCqG zX_OZ}{hc3nIkGBofWAR(@X;a5krADlZZ5$9nQJ{(!VSevH~Yb#q);7ir^5E{aED9r zPOPQCbn{aF>E;|l#SJh|#R$Vr9%{z;IiK+TQ#{A2NB)boD!hnny#kdw!9R#WE{FvG zll;ip7gzfuo^DP)@e-z+ETX2H{I=E8{F2@TwX{4rRcPBkc>jz{H$OJ-&2&?wrU>_E zgQ|E|Apxff7_r1v8Tb}KK(Bz)1iamXdYmfYbO9S!FszZ4oFQN*3(81cPcmoTcMQoN zX~AFMxHDk^++-px;EkhcJo+8fchW0TYX{A$4xWpM|FRMl0 z$2an}dN#G9U$MeK&@8RyhaZrm^Z$jbUgo2f3<1KW;cjWQAa?lB}t!7C}x4;Q2 z1f4LEM%CkY3H~#XidB#NH%4B>9q);+O(!>g>Q!u=e=7?+_LG}dT8a$|Sukq2)Bs%s z7CcX`!^KI-?>7Y?3!cgQ-38B=;NnU?JRQoaE2v$`8jEifk0-B!BTa-0!TB zd~lv{XvxhNfI&~t~C-gDHP`XuP zNX~p5LmhhBf=otL_wUqE6P~pMoeCigxYf<5&6c1wuzMtV;3~8|iNj}>pfwzYyE1vu z3iQ!J_@fYkFG5a!qQhogWo}uKKOf@ds}aeAOD@oaL`%?dU;~&ubRb4B;(=>#2&f8o zPDb# zJ3TvKye)O&A~PznA|>uRJ*Q*1CxqbZ1qsUOc^gKBVti^E0xFGidM<=<6X6yXGfvN! z8z5pm7?AY4CQUg#yX$o>n&6exPS07edbG5Fr0evoiiSjQ8_+mCAHY0_KDF;%r{@7! zD2d~*HYC^SS%dwuH>@&IWF8WyoSuVM>%`r|gnU`2oSvP3Ma6}&re;P1gq72?_|v$K zjWNEyQV9c7PR~bS&IKD|G2`^?^e~d~yjAErJqM#3<4Q$u8zGgW#_73Y2I9*>o-oq+ z7$G`~Z5E>AdI23ta;gY>Y{D-gLn^E`86wr#I6bpo1Nu-QR69K%=Mhr}i^`ZvE6`5Q za(h6TSb*Z?X{Tpr4D{)h0z9osJ3X(x4pn>eQ>@c7mG{{Elpl37LpwdoV}L0QEAU3X z`N-+nEW&}Snc#Ii*7)g+tLCI z*XikC_mg_?i#96M7Yb0N%#G7? z9g-llJq2j|5?QGC*xZSgL7{!0pXO$=k8-x_Ob&a~q{%ovmsdp@al9)ts500%J)_V( zIa2hnS5iAYFFmLwv%Hep>6v&%H{iiuN$vDp2~#5VV!i=Y4jHFs3Aguuy8y#DJ)eQ2 zM8=q>EJNBB|3TWd)AOU*dYI~4>!#hU%i8H#x4T|SzAHaN#mG24=V3rh&6uL>yKbM_ z>6w6Cywt4_s-2!a;4Glg2DMJlk?=6kd?ev_1@sbqwoea8RYNzK#WVhIlmPS(btj6hC{T9C} zkUmD-WoW188cdNz#|*1OS9w0SgFQBv8*3}IwrIvZH0Gezao93sfMA@S;fsCFZQS!; zF!4YdwbOI*N?mJ8V#E}DbW1OBn^4vW(;|!{*pK*FtM*H*8iu|z4(N52~|H8J=dzK?3I^*;_dO@{s?4~mm z>-6lk$VGL$F?QTti${>#sbm7@Xul9XS5F^K?Kvf9*08DZ$PHWQ(y!i zSkYj8d9~Jn?)wJv{zvoPdi;uda-|xHlz*cM>K_D+k<@I=gIYJa&W_!OENJ|YMXJ1? z`ozUKt((6LcQ!LAgC!&0Mq03_)+a9BY2BhFw&MvlFdr5Vxt6OiU>9t9ehhN0lHt4- z>@_dOd6|6SMh(4}4?@1Sj=@w$q`tAxGZA9JBOJ z&GpX4g_a=RB2CEn7=47SMQyVL@!V=c`#0y}9%R&DI%x@;@SBT)gUD=&T_#+)>AEG% z#&4I9^(gF-_)jZuHaR3dRIMR<`5)RjT+b53!L127o!-!XmM)eclT=N}eFHv;8@Y0f zvxMV&B_{(h$jJ_;SL+~_S%TzbBCWfFoYtM5#2|;ZGAOkeMG%hRL+j3s_URttxDf=# zd$d}Iu4CNwEkdDxjGV2^V3i*b?zHauLl4c0-QsG`$GUts!pR#4e}w32UNmdfOf;fL zt75DytX}z92rT*&5W25JYNgAc#01q|u-$AHupT#H3!&8Dr53xN@*aKMY2B+tO^xla z82s}m5w$+Y&==eUTR>kMEYPTnn$yfd-u2r6zo!I>i&S->0crbcI@r4ZvuLS8xU~?$ zp9&2FpT#I&($#(2oI@!czkeU`ZOWSD$*Dr}zLWgQGw;=MxduB6IM#x?`E%_^ z=`s-m?4Mcd(gK7k)D$Dvly2gr+GRlPFHzo*l^S_%DSmgvDM&Xr?GLK?zf<+Oc4JUSW4end%;Mx3^B?Y?6;v7A~eW? zUh$3?1*Z)723DEoSqAqCVs;RKFb4MH4Fr2F!|1Tq$rX44rI+&fR$f^-X9bMPe6%O_ zw1eK*?Izv-Nv|t)JJhBOiQ!##EvytLSFPshgbQuxYE%#!V`=|Q`KffoeE4wqt7xf} zGRlz|!Wc1!eFGm`MiF|^fX>6Ml`<*?xgibVEb}jNwSt}pV4zb*--(Gm72jbJFP*Ul z$JB>7)v{nwfh5vYtiGg-?TDcswXs~SNWgIqya{lm1^*94;~flXXqn|o+Km7r-Yo-J zG+`!J@m-cC9dshScOH?M*rqkWA1x?4t|H;;@VTZ<@?S%=qTpUv?bcI|yxh7N;-*Z# zhKVcPXSvc`6X|}8S5lrDc{{>OwxIO&iPU)+B%kRHOGU#hn7U5oxx13rWqH1ZN%9vQkDl zVlH~;I_S?R&oZnw`y^BFM7r-zFk2S^;hU*hQ4`d=FTDvCm7HAXQe`Bek}f zvfx2_X2qcMzODT)$Y(t`BEkhc% z+Ch-AqU%bvjEmkfv}83KfRWB#AA z{9CNn3AWUW4Z*}PWyNUtzj*zcc33Qt_F&sy%E}LTDeX&sFMW)=y?~w7DX)HyU?pF! zTETewm5b!{zu+T~*hanMrU{Wbi_vb%s^UNToSuhaI_@`^JK{Nyu~^FL=IC^VkY0$; z7G8^#H@0HzFT?7=g$NSFnkpDliiYPbp&x=|L&ib8c>qIuA#5o`kRaB+b(`M#@OdG^ zXtq-8cZ9Sb^NJxrdoCBnhI`O~@fd(^+T*5P&9^Zl{0+hz%hyM~CNZe;Rho&n%=reL zl+9N#mf^RQW%MA7(dczkwp_%xQLy0#Q{75DEx^<{<*lz^DaBSVEJQe37O{N$4-~Fw z*j9)zjqSkJNuTQ=P8K5Y8gI(>z14LMxNZsF#)og1XhP+8O-5(}f0Q?6=fL-LJ*iiS zz$?`$yZ(Gv6S@>4@Je;c?)TSd!ni_&6t>{+tV4B^s<^BWVIrJaZihAw-xw^Q6Ck6zeJ#uD6w-SIQ^@PJDf_QR>ULYT5P=t!Qw|*XT?gN=5P{c> zQ$BcWswU(WBJhfD%7-tN)Im%vMBv5Ll#ecATqI+_6--c7PN#xbd{aLD659!du&)q- zJ!>fkZ=8msbKKpZDMaAq*px$I@OTR$67}92#6a3`FKXM-YMa=@RMntZ)*RCwz_I&E zv3n}f3-GS{l;a&?n0=Jy1+L$N68-FBB*#a6yujaBs!jR)Eb60=rWimSSsF;KV2x6~ zNZP{smNTkGE(59C9spmC#>mP?+buAJUc;z9<>Wq0or|C336hq;%;qF$v0PmeWU3S6 z|CL|xWF|o#<2qvtzQ0Z8Q^>8nJg3dd^?1M#KdcJP!{jWjF0&VHT4-3K%2e|P>Wd=P4r@X(MFrc-*;!J zFL|+9OK`K<=<-<0e~aa|dof;gYcp{YibiyP?!~fhh0bTTx)uM5#gs>(&5ZgB(cJ~1 z)SJY3s^1Yx=O4$)z9_9}2S@uh866^5 z%(Qv!i!=DxhcI-Yf;tt3pfia``ISS=s)BDFquGi9FW zggI|&Lnl}@0&e8s9z5e4UX2m2VBLEB_x%9U8vJ32gTDz=aqCYo zwKQL8``NSn<*K^4POEq@vjwiSb;{hfIt;2)-(%Iskc;^4$z-G`Sn?OV4{rJldjNv3 z;I^tju=NRYss!hsb(~#Jup@3#9D^_A;9{jQVZl0O$r}H4+zFI>A`DmvG@Oe-k9N z!7mNmD{X7$IjQZb+Rf@l+qU=MK9ST+;(JcGB&!f-ed@ByG02U%P*z%=9Q}T|{Mu#S z%Shhixa2X7%Y9k6-&(E==l_Iam$5<^|K?`^T!tPzb)~fDiXXU9Fzxy2n-RfRS0B{3 zE!JU%QvuOMQ@Fb(QuEr0XoBn4NUG^ZJe}Ma=A^C~H&)*jH_$71AFex0U0tU<1ZNZy zyb%`>r><%LoxYOqb+6#Tx`^wWP1Di%-nW7>#*U{ExFI=p?ee?yt+L;F1y59i;JT+~ zAma3)n@D#UvZ6lHv7uT`y);;n32qv9zXNRJYTWHj4_QGS;)`bx;^rUwX~7JyUPFrl!msFx_#xx(7NA(Tc9^DQUjTmSV-{uV~EbDql)7?ZqD)cRuD&P^AO_U=-0_%V@iW8 zmPi9Rrbl{zkJ!w!N?AvM$!J@*!dRvr-GCl|)>(#t@wESDWbN_UAaX^dkG-mQw1(=> zhE~PdbnKtph;*v{S2Fy`sL1JPzoDCu@+0DA9f-wC+e5M`^NlU z)ez>nZKx}*j7a@z&_aFtbQiC5YmV;Md-@`^Pg-dn(IcUgV0BYZozFmg7g~^QG-~vT z5W@Yo)+(GI;5cpeYHf$wlltA;e?#zy73AIpg5e(`I^RDXj!&?1=3lUa@zi)81kZ$x z*VUxtA(II(X`>W#Dm>6H6OkAk7PA8ek$<>INO=`eCjKG1y8V43vhQ@{eW7fn;JBzkxV zDq$HK@f^y%%BNb3Qk6uRxav1GNP`!kT$2naUj|5`?PVbuMW4+EnC^nkFe-)NLTWT! zjmP_8)P-YOmS`&U52I-v@v9syLFLAW6eeS^lX?r?)K+KT3(%siPaQhk6JQMOnxMhA zyx=Xkd^WWLRYc{M^dIwr$z01TQIAa+dTuI^t$4uI>T8)hhQC;_7mL@vy&X3h{qVm?kjVf5vd>A%0L_K;0OPGRn z&5uE6w_0#s2sS!D2A$ofBPD_@%!k#2&K?)w+81ndehfN$egUVbV2AT#(Anz(RuKg| z@5Qi*BC2qfv$;b-RVs29c<~%dxSEdhvUyR7F+R|M(8oir1>6 z2LAi6&*An@Q%nHvTJ<@&8>0q2f2&^+RvH3?cVI0n>hWb**b(79UW}dBQG-9`Nz64U z{;7xg~zqlO)UyIfc~1z3sbL!oOR z+=@}dziz1GHMVHhO>C@2ZgY1ryabkk{f!NCPkQMm^ON-ZarLrH}?5!9+c?Xsg}^u+nJ2K#})=L`|*R7d3FF z5!4%4qNW{#2bym;rEiRkIvJ+6pF~an3@H~cGksxFF3S>{FeB-L-b7Q?5iNMil{C(B*{~=J;oV8~;xnkg3;SVn1@}#~$na75 zrPjUpEqs+yXLd4XjSmRRVj;Y!!Oyx{ep86Rj^U`q-%i#9!gwpc26hZbEg9|Fg{p-J zpL6%LGzNeNpXE18TpOy3QLH)n+dCIWKXb2%xVg;9rSdSP3O z2+y#XIYbkKW=N|Uko2oub1$l`fz5U@_22K6)Q4yqp%bMa3rM<$Xtp#1_^$zBSJlly zS2FRw+}Cb!h-2kvaQETdi#>G$YcVD{02%%~Pw{!-7>QFGBjb9E)FGOM<+R`cBj{$G zIz+P$&1C}T=rp4Np{hePA-F|lN7SoE7??Ulb1TLHg1u)kbBN}L6Nu7RR-t={#&H)q z|20A?N6jIc%2?oghNE-qH*O~6V}$5gESbt;X+vhH${>D~B=-=_V_2e~E>>Q)SD8aJ zonWG9bRkq9qPYzjv{)ei|CAK1B07th|KxV*!SHh^FBjUF&?`x`{{4Qio_pVN54At1@G%uEV&? zMYRXt)>xv&+(R@A(C11`Zf|wEhiHNuwcH>p=N_VY9WyWqZ-&LpA)1Z}TIp7!G{AvK z1}g*U9-=vhZ7>r4sRC3fb90EM3AX+SE#kDBbfuABA`A5)n#q`@2<@)?G&hrdl!XzV zWO7qxsC+VqXnsQ|(vI?sI3)E&wM*{NO=zrFQXirz_Jx*Qw*bQ&qM444fLGY4+IMcER916Jkpg{)rc^Dz!)vJ2EI-X< zB!oRa#itnk@-tM7%pscJu^oV>F-6&T-9Ggpnu9!Udc6>;57Fdd(oXLh)E=T)h#rMb zTEHBlx$RS({y!OXi%ibRRHjw1{ZeG*zIUU8O(Xqj_V@p>y_lu7%r+kv{T!UnMP7|59ScfQQWR61+vbFyA07$oswJ~N30HA<@F(& z-S9bxmHNGC#yu4Oj%Jkq!A-jxioU3}JB}i(=8mB@Gu#Z&hiE=P_b!o41sGVb8j?Ol z^8king7sl+hr;wBnscZ|*dl=YpR7`Ih-Tt*vi{GA)D6cRqUqVkJw&t5pvvN!Lp1+j z65^wu^TRGjAELQXg7*=WK#X+dlM$UcMDxlfWkh{c-B9cyn%}gohG$P@hEw4bwis0? z-ifsoxH-rd4)>kCsJ0Yt4x<3`RE)3~%|p!?zuK0-e`EZdX9@ln@IF>O^4}PF5!s1{ zYYG0h8011p@W0ECoRtawgZy{|e0zJh@_#evU z+*mJMS-|GdSo)3?a1~-3^>GwVb`%Qu5IlmFe4E?wxc4&`1?RC#(#7( ze>LZj{N;}wCHQCIeXM%qzcKP6@PE z{EbAA9osSfb;KY)$Gy5M+zCWC+KrKanG#j7iXGjg(oe{a%a0awoCn)>58=d1vq6KA zDYqVk+ZNA{IevALzC`qeZD--H-LlqkNNuoIEG`lKK@^ z@ku!3qc5vp{)%0m40EEds9)ig`gZ~Icl9g6Re9}@QTd00oJu{Oc+`phQ~e67SfMAB z{H1>RE3z$){#*UhD*sWxjLLtjBgUm9mhf1qXqLLSo#RB4{ux%P`JG5ZnEvT6_0<7{ zfg8Jo9A0WFRtcj0`e%gGP^CVccuRp&TwH@rbBSz({ux$EVjHP{`b(Yu5W$wvKf{|# z7TlnJMmQtx!#YIt)w_@dBO1PoFt2k4_uRsnSd2JldXC+L*CmOQ)RQlOjxI%9j!xH^ zuYz>`5(=MZVl}%y?nK{6T&!w$0hf7nvrl-k_ZwtO%ac=uKZ0qoL~7R&igN#rLvx;N zLy-YSJbjb{r5zi*=P2*%GOyt9zkzjXIUUj4Wd+%p0tc8hzAka~aq14g>4X)GCuxeI zy8{}#=EbC8cI_OavFLN2{CEmW$I*G^N+G6k{9fgU#59qHO+qpr{pmGMdLeMlX_P>> zGq^pLdKUoW=}IY7-X1UDBSPX~o@|4Rr*fSk*s~-Sf(2XV#n$#kh`q)=t5=tIS}c*? ztO&W@%aahB6E;A}n?&kyE7I{;$v=>Be-r}WTLiFAkJ2P`nB&+}9m5^I~t)iluOd|dDH=;Z6R(uDW7FfN;8zzSf)d|By`g#oX z4q7`7dAZl>

    $Jvs_^Gec5fbd2Fh?xhu&4UsfHl#elhuEU#@caSDx0*Lbo%|ule z)HvRTgX4}6iEso`J$_E`zRqGdA>4LKu zpyM38xbT7}{J{IG*!r-FA%XEcWWib^k^->sIoRX&r zZxkSKr3x;oinbt8`;-YPH`1lT1(y~AwgQKmu&5!zr7Z!`=IRz) zwjP)W*S44u=Gqp_Yk=7`A#`Daq}dR-vIUpdnxhG03lO-j1y>|s?puOikuQj<#8oZ0 zveqk_5F2?^9S%0?9fVXwIZv{)D=H1v&w-^1){(1~=iN&~2%p~S>v;F)@7dbZKf`s; zR`y>cVg!iXvxPoKMSqCK@Xvb~5SIZuDBwX0sGd#lP3uHeF~cd9VTi9&_gxRubE6W} zMzWc)p!8jjQ0BWD+!PB+-_@BGV5x{xLI+|&u18)MdIgg;(ldQ;!I1Q*y6@^rrytXd zVh%n}At^Ns>7KgNZ;1Cq4&XLss3hyYt2e#!G)}A`m+5{Bnr=b5r+!ovQ4sM=%P@V{ zK>8IcOd>wjf<|2WuA#I7@e{^#%uw-T3j#W%?;1wC-qVbu1sKwIJxa%B=qOw%5Q_9& z!)Y|?q(t&+Bvhr*#6xm&Eak4z`E)lkR6Jrwf$=mLSs{7-P(Ft4|0YuiF*W@kXDAQP zypafdJfwDVI-?#xTXLoKg58g}uJm+0*;Dm&TnU2%7@$2IkhsuaiT^hF-f@ z=gT0A8O40>Q!r=LW=)t?fFK%%o!_nr+kArVXGO#CrDkd1y#fU34oCLDT)ZUiA`?`W z>F#h;9bi+qI6_F0!c2!HUEX7R4rt+umSDQW#}@(<;rlISgrz$iJsxwpLKwgV$u&ce z?r_ZbO`0&H071ILu}!eQLgKz9Ul6)G9CsL|jSylZk4nYCM&+66aZlKK(yNYBr0le7 zvD>@!2E1&Son8YCDS+KU8KVMD*%|7WSNc+G{F?b`H^!2j)>B1n?&+&sr^u&>0|e;m zbGV=Tjyvb#w)S`NazS);4@|<|anFaJ1e}Ck;<0o&Id?SNU6P!iN3zGAl+e?4%5I9B zaGbfv;ge2*ryQs3&fze`rQu9P#F9A}u2>G1uFAeNxf{HAE@qvN)u1=KLhjXfUPiyO zm;I-+I-c}=7>Rnl$z1$89qaFvfUf=HXT$$z>mQQKAJXY6Y+)^Xtm#Q?vPb}-IKtNo z(`o1z2xl)kANoH)q|;s+|E=);?wTa5$Tcf zdN7@MtPfPIp~Ry=7v@9L=^AX9Dtlo^s;i>7!xEf3=mli%9UTIh(@B9U?kawgLezw_ z5QuQG*V~3GJb%P5c?EEsdaqQ$Zb?k=o8NVI;dV z-SDoD0~iLHRKnGdJf?bqCy6#~Lk^z0%6*Dx^g7R>Jb7hvmw`SR*^J-p#J7ErXmHvs z2WOMVzud#Z>Bhg6vpYMFTe`^P(wGUbxi7$1C5K&zS~WD-DfGtYz;fjc&Mlr~DC`1- z&HP;AcQyB(cx*Babi6!bU%Zsyv{VJUB@}{BVao0g)G9hW3J>^8wHhY^y5fdW($fe(4%ee>PJCzcWu$8um*m3~) z71I3-fJ(E(1_7_;5T_BncLaAL%w$8t<*QUe_JLYZ1RfFIbqU@Ndp*Oe%sl%5?=I%? z1s}OIa2*u2!fzECyO4bq&~Z+ug+a$j80!wOD7%1uTi8Lxp^}cXliURsWf$_Tn{(Ap zS_-!lDTlX&2wRSb&+}N>F3+FCa@;oohPca~L0!5G(!Pkx_o&3~H&!3JXePbyT zR}N3P9WBN#V6z3|)k=4m#n=Um*GF@Smnq%Z7GoDMUUAN)R$Rz0!e<5zcM^N>NvfGN z0vr7kdx$BROMfLHLq4+7>_VD(0yL?aP$H+1+qrVQ%)JKlk}6da^QkoOeq0eZhnP5< z=FlzK_&JYwk=EfBcW)C+!)#L3vJPaWT5j@`Q(9a@_^KMIt7SWsx!d1{BPFim^N_@6 zI_=jobUt0DW6M6fX$=sPU2zWBdhZ$$4NY*efv6zN5$8f zPjVUz2u_0G$;rtW#4gstnZc*<=&B-dnE`J;C-0Uj;9U{(eeRtFy!jRa>JjffnT9!u zlf-v6%|jQEn5%O$!q*Vw5}#9c$HWVvahBscmn)|YXq`o+>Tw3((1DyW$dwaO?yK<( zX8~OgTl#tT59`k^noSD{2jF({?A0Qw(H@<|u7Pkbqydiiq7;S`VZFKXPUl97nhaqV z>3*ey98q&3{Q8qid>qEDV~MJ9B&Q@~I=R;Ac z*|NSWIUuhiDaE8xS78tBPG@&2{8dLGy+tnZAqKYvd{y&d7ZR9phvS{&QwF-1IoC$y zcxF)K7SPyqwjTW0O6@Ppk9XzA zo#j!I*9Z7)2sc{k{YwQnP!ngK3q)PRfaCsb!(f*xl-V*16ydp%iL?{h_zbxvVAZO$ zscg)pw$SfZu-@!K?()fmT>1%PgxlC+>;lHOVojvp=vQZw+tZ@buS1CM%W@}KZxNbA zm)}Qmu$>FW8V+)uWk`_m3_dX7z7x-wL4%yawb&C^r%3ep+AjB^Wl2bi#hy4#fQVvv zLXLSKxYvbD%B57}!z+Vs*sTtR>VSFkN4^gDOcFZ0N34$64!EJTv0T{<HYuz zzBgC4*3i0m8RQUeesy0h;LY1q-IE2p|G-ug_lE-ByyKWk7dOe4_~@RCee?HRyrU>r z76RM{tPs11{yam4uwxH@yZ2_$}hy*WU+)HD;BwQ`#NOc)0V?7 zSOG(vBC`T))jE+fFeWC_D;V%!2)J)sBD)ZS4+i1o?1jK#{KD;|&=pC*bS{OZ|2?s?0l+)t4uTP%TH$dcX|9Fs15!dY_H z=bXfHNa8@(Jz|NHC5Ud7-ywg|db0~Hf2dQm!3wlAC-O3uIdZA{A7B+OVUo=*G~#!F zO{5>ueQqbWyhT+bo=ABBHj!IDA26L-Ak3n5-QE_EP-9!uL^@y7arOq>F_yzFgn27o zrE=vuOLvXM*kw{JcM(STYRX*V8=KsHmc}lq;486miLd2x&st2`V2g?N!UQOK15N!6 zDbA&=zwlqNtK$+b*)xbeO|9U&NvMTo=~^+=Njwu^Uv4F^L_Q8EO9Zv$tT-XhmlEX4 zMs7F9%8OkWU#ocAy*o9Y0YP3%aaUPy^+u9QySY2xZM~&C2b<^b-81ptGW5=6Pbb1N zS-Hd$`8eEelI)KK^V!ph@T5{M@npSQ+OpV%tmT>PiPQ%LzmD7*7B%ApPsF#q4P!!W-S)t(K*GDCBW((;|P)0OM`TFzWf}nfreU z(G4eX0yP4BnWWnv2zQ_O%}%Zu!}|7g0<{7>uJO;IPN1G}x$*INErfd2%Qn;}Ar;!% z3*$HZAHksy9h(*Gza8I|fQ8o)-(Q&Rz6c)`9d;o)j7H_X4KIE?DF0*`>_R7X_&o>r zXa0^KY!CK@TU&no;uqn2G^6r9mrGahLg(IftqFl$TE1taYWSh#dp6SY{6ZM{2lB{{ zMmRqdXs2wdE}%}OHCU;D5C2d}25Z4|__bD}wq1!%yxj-9rTkxpKXw`#AuWQ|v-c@jaQjw2v)=fAe9mbuc^Qrr?t+N`zey z;SZ5dr0u|R0&Ye;I+Ye*MCs%Ncv@sC)t(dcV-!A5X_1ro5Vih+VyuL-%j4X!Ru{Vv z(({-~SwO`Bj&`5U2j^i|kHyVKdd5dKc&6MRTj9=UQWn7hL&Q@whwT+8SlwB9OkG;icEK*Wb}cSRiBK>6!Y4Svjhw<`B7JxsH+qo!L_D7Z zxEW1GxBMkQLqBl<)9IU!Ffm!*ebEZA3pe26=|q?l;cv<2%2KTRp=GJg8(IGRXz8lH z#zduiEhbWRSH;f%)m1SU|D>yehH@uG!&k7z+z!45cK$C7%rzP&(pRWg3j^+>5Kwuf z>I3G08k4gm;LgkkAj}?fAE164`I2-T{ zR2>m^AqQ_=!)>M+W2N$86KOgoLKnm2v4H4OZ>a8KVt*%+R+2UFZJBOoOH_3)SMDcu za|(F#y_@dT0^X-4AfH!RZ#8L|OFy#r?gHMtf5%NMZ4wk~mp>U}mmBwx>>j+ihYfbF z^q=g+ZlWpjlgB*Xh(u-LmBE|$SG!dUc<_0wWS;q}?n_U>7o* z!_Fn%w(QQen8cgSqm+-#5YIa)-DfR>U6AJOXXp|UBRXy|k&d-B(VX}_zxYz=Y5oLp zhV(Q`wG$o9QU{;s!slWuKq)_9PuF&ww*zh&_^WEF%+u*~E(@FWqi%f*h`A9P9&9J9 zTe=%;v&8iR{QwIYKAsekps$H-OBF_k+LS~ z@-`qwaSM58SV|jKV*349B4=nrYzE$ezfIpc&U+Afng&&2jQ3p~h97>Xo8Q0S_c9uT ziPsj82=&36{(Fg!K`4)A!_!$VSXW@#_ye{uKgRwO6t=_1R?sSlv;S;`<K$fFln ztFw}*_F~Toyh^{LC*eqQgb(4b?DvjyOBzQSCflpT&N}dVnuZSI-!FXQI1kA0K|{0I zgXe~O!9#V2(94U$Zt=iNSX=LbPKI?3Xy`h_!5J%hv#K!8?q@_%RyzNlh~G!>dli*K zCd{KO$GtAV3Uu!wUC3&=zhe;8O~T*zpjW;DYSbi8u>eoy75RZDY_7V38KGiwM56*c z)=)P16Yw{O8q~-9P)H_(RuIpX57Uqr4&>1pc;wMhJlE2YSnxz1O%ZG?o-3#wo+Gv3 zRl6vUy2C^MttP&WEEiaABiCt)(0{zq#k&D77)f;)Wn3qNC~S8JoBh6o`^5c zm1l!741bB`0`rA2g0U6EQ{*GzKc2DjD7+=`$fKEfuAl{os|8P>fHq1JR^o|&W)l2k znFRmXPJ(}|C&44XA)u)D51x?$kjN#zayM{u#B=~slCfRfbL0Z#B42~QE=crJ{N7B( z@En6*TO=v7fz9XWKGqffc_b-WD=AqF@09`-Oo+t_BxE)5#jooi=QT#7ML@f5imPq! zz-t-twEYH<2609|Og~BBx59I+)Z`Zc?dGtDn~J=GcuJrBzGDA}k%7(Nkw>-hTtfzU zmLA0KD+pt`DB1(^J{EYA>LDIln<~aP;QuybPthZSN#d7F;t#?91Y=X^X~FUrr6uIg zffceO@)2YuqSF!4-?@6=-)iEUi#T7J;xBX&y~WKYZ)8fjCcLnB6nVle$!jb#=pEs? zoF*Yz>5!_9Kd*VYM`u9U3?Bu25FTsDcs)y}@%se?zl}bFYdc-QlO8};ttDQy7z(*z_zSMdqjvb6 zN6qo%+RqpC1tPbY+Ap~mU;8Q1E-(DuS38Wzsan*Yt{NHA* zZJ?%LQXf>}4#EF4W9<+K*B_NcRZ01(EKXW){AD98b<3ILv5S_$>lwA)F~DsEpZ)N7 znz~`l&Kv0RrCDFXV-;OO!gr{VaInj(AHTu-c^FV$wkuaXJ&vqM!zxEQ!g&CH-lJ|F z)q_VK-7U}C@LWs0CRE)}&gD^1u)pEEjJ9hmDZ_ED3I%RLZ1QL?JfWJgnvkoFKVaIQ zlNjNP6=n8!HSz6c8DN~pUtxTv`>XOMu~L>%c^ zY62Ic0i|~c=?NXF0-^U_q!;Ogj!2h|5RhJ^cM%b3A|eP1B1pF&A|fgv!uQVX*}J

    9@S&{fl9C!*>o^d*m3gV7c zW?ot{5}8SvuH)muqx7B-H--{?g@FdYtzZi^!VgX@8Ar~CnpV67HzjRBt$<(Kh!^9s zfak%HWz+`H)2Se<-$rHdkI7-eIx4JKW^Jds_{ZcG2z8cG{|KuEXhzH;z+ zTL9lNV4HMcy8zH1N0w0!1Q6JX?VlD-3iv&g99$G98~p1;aIM4(YXk zH5`{E5$8REJ*`+x*XrSz1z*#|^Rj%#FXNUP3tl3QpgG70Gl66@{i#5OhD%0aEGAKVe6*k3cr>NxpEs~wp?)<$2u25@GK4uPZ9Mg#o6*D zsFC<(#AG9QJ8)zfRR~-a6NAO%eZq>hv$&iv`H-+ug(YRhC_+a;<^;2hG9$TKp6_Sc zV;pt(ai-E{6Dbq@JwaM#Z2RE#)+zY8fgYd;d;{ehjqM*?k3IrJZ2>VjvIT@WXTVYK z1jeq9e;^jP6ND8bKX~o;KCJi~M`rGLl>#B1q9m$QiQn6#SAlg#OvO59OxbjH0}n)N zH;`(7{N75h;7pIW7I7a+2QL$j%m{&*-~0xIe4y2Q0|QbZe=6e$L0yp6kZlCjQwX*Z z)G`n@P;gI8I|0#M<_JpS0@f~b6vc$^Ku{wo2LFSfD~K1hi^GDFY}s|n1x7kG68CGc z`^H$S6}W8}@heppgzYx6f_T}x1GvK&ai97KVvy+Qf%952nVV=lerLhbD=X$fQ5r-h zvREd4mWbH~MVo0eIN1=IEnw}XRe0S-X0NQK=%d}L8kGgRA`Xn1%&`9NF^^<7I$HeJ zrP>f$jiWuR`K+uX?C*lKoOm7m4FDn$T#O5nfJvttAR0r7W?;3#VINBH8avY_Go6PL zE-Wvn(_@g=lF8UaVW93p8b)8M4ZxjP;2oMSX~+oM=ty<}y$AEA(R$&jz83Ey7zMf{ z#6yAiLEyjD#4mPYzas0pw6Bp!rE(76o`Zxr4*qTha}uzL%*f)+klDgXCF$W{IEK?0 z2Z0j|jeCvhq-34nYN5~Rpc?y0^caiK{at!Hh#Iv-7NMQBBo@rab?^Y<8@kpS2`|L& ztyBx=k@#gai_gK=!Ozwooi?MIU~v;m)cO&>YMGR>sh&$85_4h93H*!3+gCN*e^@;y zwGGE&B+$D&C-(uU$M9<#@v3%3@EYIi zZMA@h{zE}e!_fq)cF+N~XdP9B=wuLA;|Oh$P7U#!^XYL*>@_@~Yc+8^VfP_qOrA*O zieTAs8FlWVWm`|Y|DgeXL#iIutb0ts-4#bikoc8^hLi+l21xsOg})!m?7^>f^vLVd zmH@sUM`*uvdV$}v*B2{mtBK!~$wfu0@6tX8encfxAz#toAg!g>0Jv0-H{JCdta*Ob z`B|b3R0S2IZv_|nr~P|sp5J7`Q6HUc6*U55H}&bSVS3g#53^)*4vyVRp&wvj<)JQb z+2n$=f_N3XGE`T=;kl=O2wj+x0x_MA;k=IW1Y3ZR`RP;=ztiazoLQXLpwF^phWK?6 zuLOyVS7d!{MWkz}#R}PwPW|zFg^W>I;71&IEpuHF zu)5ZlLB7H)9;4bzgV70PDNYKK0iDpbbPsfn=|)U;d!9(}a$#S>W?`HHqkScw664pF zdYS~IXquS+%{!0#on`;Ce$n525}m! z3(S53E7CyVzbG!pQT!IB)x>W|<j*ha<_CAUn%|<1imy5&n<`lm`;GjCNsc)CYQwF^q;AbOnt99w7Uj|Gx1V@p#V}BVd%>D8a1IJbdhe^{rL$~E?S?MxS0pe##$ile ztP^1ByyHNA87=cFfv|?I-mSVfUgt}NQGPXTTt_3PA2^Bk4+|7E}|m&`ef zq>|Z?{rU^oow0y2paTH@3_2hMl*wsKb`;P{pkBt2`Mo=$%vLpx0(u?Hp9NqQ&=ph< zP2+t~^#+L5NBS#O*pN;jrc-lnHCGVt=VERiMjX_u31WgEh8c*&yckP?TbvP}=x+<+ zO%PWSZ!0lbdNX8yK@eDL7qDvs-SsmfZILMhh{@6$L#8SSYsn<-poa3hjgsC; z?eH7Z1f0doX&Q8}(iI%pp(bpf+&fn}*{f zl#@$PVBG5D&h(R2-Zn~k3qvPi6`h4QyRoF>`B2~ZGkOhtr&&$>4&>?3vld5b;PS*e zbhQF$Kk_KuLt7{jy`}+c1q8XgoAr??;36S`(n)|5ZBTU zNF2ej%V@`!>Aaog5LiYCn0)|;XPFfOq{nYwJ`3{tM!35G+%(Q%ZScQb(+btl`HjrH zq*V@t&2$$MB_R<4^lmm}oEV~y4qhv~eBh~?I9}{9Y2xJ&4ljKE}F})*)|qLbAhm% zx@(?Poj1rJIJ@ZN+hDiX`ForRVDF{iV<7a?Bm(_KTWfHaQ+||+!?3gpjDZ;~ z;tMbIAH4Z{}-7_kYW6DmT97|7nwPRz8?6ezln|o z4!C+$c!Lcd?+{7`y(aV8>(_;Mn0cFtX%BIJ#&Pb4B2^Ux{H>PPh;unf!?6!3R!?-4 zmD?b#p|lmq#8o=;bZoU-LoF`|p$-Uoq|*qN)S`40OF3b7@in}J5W81SVwd0uY|deO^EJWDF_Qlc z8fED@PUp+sAgv;y5L*5k}=3^>8iiVWiYg`AK+ zr}|2fJgInkHN?**#fI_*#MSb?b++kQs!MwZl+4u}vD^dF8v1GjqHvvuzCx-H1 z;328O04US21TNL(rY!gV2k2TV4&^m*m>n|81}!V833`6aDv85$3w_R>Af!_}qeHlX zT0md6sw~DY=l49K91xR+{V(E%-8EZ18*mVU?-4k&f_u5i8pU8faqiJ5FYGVhG=6D)2SBDD1g22kCjLE0U`wfe4FVg z94uO(DIWjDfjp@lD7sQaJAm7b5jFgxD0JsS(K`mUHk88RF(Uf|h>AB5ybjEJMoa9x z0x*0qc*6|dMd6hJaTU!5X$QsQdM(WaWG#-JR2RSXIc;FDk?0;!*R${o`qQqM4LS?n zVdm+2_7skQ&7kYxU1DC4ULuh97`z9}3(;!@^1LWe!F|CC)jM0f%~TTf#yG}-xSP;@ z^h(R^nlp8*vXr@zESXndW=ZZR-X7KzyebASomPqajqq~^ZNoK2;9$Rx;}6K~q)$L& zz59u`&@!(Fu#%M@g1~oSX0X6&9FkE6gL9cjrz?>CAK>u(Np(>eGmcJ8z{^LcN1^pJ z4v3EtacgvHvaHeRN*SFp{E8uBADNnD=g5?)mvLZxc}MhHBhxb=pJmp|N2V;r$z&Xv zqGjMsY%&T^Ygzp6swNp1LAS&K{&>t}GgudR+<85(& zgZ|jy9TnadLyq^xX|S{a4#>G+Y&!h{Vme)w^I16`!+9;4z#a4$zd2c+s%6nvS^SJ% zNW|5&Tk{;)+W~q>=6!`~-3J78nsLV8YT^%5XwA^D;g|vk=lKIAUDkCVts#DCDZW*~ zydOc>FZY8&0o9F9s+C3$%z%Vi8D-+v7$66ZPOg>4uopd;7PLYnTlWAhp>6?=C2tnHK2R!qq`7`(rad>X5 z3`~>BPlaWsIaR*dq4DMjo1?SoP&f3EKbNOzwh*VnDdubC(ju@3*AlCCTZuPo)Wol? z^cAl9;c7eW_F~)vgwJj{+rp#K6IroH6c6=!(GQ{Z<2dn^g22+W!Rf225;iAI^&))Jk49G)v? z{usgMz#nXlZA=LAw^%GOg1^Nd{EPnJmk07^F>Q~eX$3zSoa#6nk>ubru>lUx#a{wM z-cTHe2nW9v7+pjpKdi9_zk}jfo*BVsbbpcPDiT)kO^!48y%auU@L5Z6KQ3Op-1k3& zKNGO`B|%m}W`qVf|f1igrXZSZqB^+3E1K}95N&ioefl1(}d0`Y)6K+UXVX8n_n4@;WUghxR= zjwADXy#?=>h2aOhPlI_u0RGKP`)L}=-nSrjFp^5AeNrS>$ay}_t7sTl>GYvo&&Ks8 zI)>{>uyhrzm){rgdl7zbCLK-}#PK&w*hIHL-vs(5x{s?vxI(SwdHu^s@d}&5^D_3` zMrg5&y|Jr_KmEfoEZN?rorCBSOySyQB%Xt`hIYP+#|b*Sm{&k&gAT(Wbac9Eo*u4m z_F_MYYx7_?ZiW5(4bnWlWdg4efO{$PYz$EPx~9dTk20sta{2(bm8wYY5)?poD>5UU z4#*v6E8lUJ)7SX783?UE5Pe<02;#0FuHkI7SGxe%ha=m!@XTnhR#84k?4@Pc_TU-d zGN$A)l9opy2CCnU_8ML9LF#wy<-`w19)_x9PVXI83VckbN+70Fah&072XJ;%7tQmo zi{DLR^wN2zsbV{98f387lF$=|9oh<{3xj5b{#I+`Pftja}3T79$f`^Vgk?MB`%o76@UQdlz%1bT`67fso z0Va?txQq#;M%*jNiO%5rNck`hPbpU`NTyRU5HX2|^I9^Qo2W8=&w;8MxH>@m zOl(OYf(PKK)CTBNNum1==j}8T=hEPnWnQ&V$fwh4;V;G+H&wo^!~;+pM`$&B7ofVL z+HNTv3jPQe+f%WVOM4eql*P=At$6MQX)R3!pf~^<@ocka2r=dxVax@iAQ*e8Mk31U z+r+O!)#r5CK(%4vBuvxE*m{^W(tkqaAn_xv%OTbQ0M7_oK?BieTn)l59G>CS6hi4V zRl1X-ab6)0bueHDjyyk5B>@xz%UIZ9)>>x0>l2QxAzVlNbje0j_T6;y;x{*+{6q-r z<3yn|o$7*+PRWYR4|m)J>mClzFtF1>SVZo~QbXMCPy56IWb0HY7CmhzbkEIX{MapAvcv8^c zNA)@bXta9_W;F3uSXjrFg>}U(65`)Ac9hEPV%ZKj zFi$D?4RzsiXG~<_@HBMs%pvw)NDKWKEMpz~z5;~yH`l?9_?-s*YeR4|y^o6nIHC|J zsd9D1(;b}9a+(NbQ^C~+qR!QF)c^?Vs34}(ESwc$1Q7WcQPb5u5V1m9Zw`l zkyfrtB6f-y7JJy+__#Q^nyGJ8ln zW{`3j+4{~jUAxB=%4KBe$E)#?b%S7J=ADgZW~LgMS#`KS5>fAyrX8ohP_+tXp=la? z#^eYQouDpVJ8K0)Y0U?kqUpz}Mig*i6pEr`;M^yuN7rFm!JK&gJ1JW5aay>Sw1WBQ zSLCjN3p-A$Q9}zBpbl=67I}jDbsnr0EJWKHo3!NP)H_kr3P#b$er6hJC#myt&|ahX zVP+Z{ous6kFs3*i+;1AF=_hIXa1cvV!?J#)`y|cI0dvaHgidBMTJT9K-4^y#q|?v+ z;$bH#+vi9qnsScyBO^~zSXCh7C}$hfA`NDC!Iu~cCeocHCUVbD=Q{@{c zX+Ek;!Rpj#fk|^yR2Ou1j#F$_aGKFYj0d-3)(JsBP6>6Pp(XVyj6s3W5cC%}fon(a zVz6(}+{bBx52<&gy-~WNX;CGh^aSt2j zwr{O#qsolWVq)B>?U+)Qw=o-fs;5@Na@DAEgBO`n!AGe>7LdwkLDOP@7LH8~!Mj>U zRd_qnB;`$gTnUtl5$#Rgk*Ui@k~XT+mt{;!SZcGkU{U3i#->!}x`hV2w9)QNgKm+= z8w&9%z)`P~Haa-dlMpOn8ZD4ff40BsQpq1xEn=00re?D_JTMx&)9uaS;nHSXYPPN& ze$usnq}HXSjrm+@nu{nHM1RYQ55G87tqw6&<>Hn#PqQn1Fzg#IHdh59+uyVS?@s@D zHB+SV&DKNjSO8Tz78Do7?$3@*r+xGjQ}OQ8H9|T?szDC=L{shWSosWb_5nX8lKN0jr6RDH~0>Cgp#ekMI2ijIgq_76-ZUzE7nOwlWYHg0&n}?adPcLXt9)(m|nH@ zt#33f?`<|z2=0ZsF|l*!j#wW3IhJ=<(UPgU)(PvYr1XwSxsQ1Yo8B=gQ@c6!W^TOU zq^6acgiZ(5bwgu?BKoxbrXR8F0w}SI$+X4*9dV6c?*tujh2c3T(`43Ed(!w3rdQ(T z*u;-Fm_ibqv5AAx@(F!Edix28WsnrA3epZmW={pfcnux zG?jLfyVhxsk099!QP(=zBmH{vyG!8JPo47NebZgPnG%dv787G=n54|kh`UqM;q8pL z{x6)`XGXUi;m|%a`u>N0?V@E?oU6M7GAr)l31>k5?_XFKEwiIbf9KFLJ9^ZgPAzj{ zN91;tr8%)*RB-0s+=N432V`zSv%F5odx=$UI}&;?@j!q_@4Z{EpCc~sy*tw7v}Imw zvyU8F=EZI=>x|3%*j~6(+cIW;>}!~RwddV}xcFR-gcij8eZ;AyPE5OaQ;P&@VPXlq z4cw-7VPfq;PU9BEF2&v623Zt4J&!Zx#qp8OMq_b&fvnCzElDo0!c1A}<&xw#?mLZJ zIl;R^8)qB($vhViak6pq9t~`LP4CJiZ*- zX*(o6uG$TUE$MM1hB)K0q6crvve~ktM}71V?OIkg91-DwtZX>_l+%_EQtJHVfP9d0 zcBtQ@PCj(N;uqv@i03ej8@}Y)s@jcoM;KPs9`v@;fz`=XFubx^w>o*#EWcjSvL?CA zTMi%BB#%I6$8>4GG(ZwXAlCO;^zS@!U+L*lP3Yju|yIYs^sn3z}x}?>E zEVT?-pY(lgN5xv7w7$O+vLX2irX+0kZ%A&1PP9FtO0`amaoAs}R^EV$wK4A5M-D9; z;|_S8T6%V0eBA-**}V(~cJ_oiwR~{Zgh=Ez#Z15CNO@CCcZ^W%GMf`d^>VnlIbjE0 zzh#Gf829&Urdp{IAI6QV?$pw+>ej7}SoW)0BD)hZpyrdYj)Vr(tX#}l47XI7>2g4} zRB0DbgSW9FTS3lXrY3`ob zZ$5UIyC-&Tf-|ALu{TgKZ3*p-&3@b&-F?e~vF>Ao>|53@pa-}=F}{Vvmi>u0ac8l6 zw7*l&51f!r!3&+{?w?w^i6buir+(baY0Lh7S)9Gm{ri4A;)EPXDu-`v+RQzWv;=o? zyDcBZ%<K09J*Pv~&9=wBU>!_|7nI}`dert~TYF5Z!uPWG*LG!1F40E#D_zs^WlrpV%3T zrVhx2XCIheOOyEhgaw-ev@9&x$6?F&3$L|tYPpiUcCsUvt|XtU;)Gm{&6UHU%r>_r{6 zT$|SLR)CgsNA@_ioZGc70CIO%F{dqe?PqRUO zPTW<(8Mjh^h;bZR8PB>yK(K&H?nED8&`jd)0SUTI(+TW@@oq1bcXI;Ld_2y zw%kj|GSg|xZxc4ZZaOVZ#r^8H(LCEyzF$2hV5a5wgzV0`_j|&-^_|8&NI2+rXnBy( zp}5nyKjIoCIqd%BBkCOfgc9{DpX)4y7>^bsRLaxyc$X^MoW;s3j>(W6iG1(IO>(ZC2oVNVk^fR7)BLMKPFo&Vk3Q;vJgz`?%G>+D=HT&(SHfL!P94 z72+`WN!oI>?{>)3dd;>vv^=dhYogPmf9w96)1l?xx*=EqvTJ!(^+IchmSn+C3}>>oW9)&dC@kkoCETrZOwQ69(_SP)YT}ddppzM)5J5_ zAicN6ugQQBRc}|^)Mdaxsy@(fwh5c~7V^)?P!l#W#hRfrVJq)om!cE4^3;h8iGF^* zh|@Nr&)Zw0-!H`ltX9$Ncg$4rX(IT*G+$bPKAqwg`X|f`>p=P)_j#2)hIKBAZ$8CT zXTU((XEm}0%uNa7P_^t%fHdiJKuCfp@%RNN45Y8nhC33?M6pBsRl!IUq~P8Gu*{S^ zz(1*Az(6W~Ex^-Yiu+1)x&TtKpa5+l6f-oxGr%D2wB}q5PqR?c)T++x0_naU;As{* z`yNIl_JDxYHzot@(w%0`M6=MP)hMZsfMlhFVso9^K$@2$z|(9L#~UW`{smBN_NQKdKIBd#GwJZ92oCXY}lbD)x!17V@_#Mu$g0wWS4GYI! zj4zytg7hTRugz$6!YP7&`OQ>kv^q>X7g%K@D89rTr#_HU{toapKgCbk?#xY)CY29> z6`)ubcH!G|6QsrC{MH${>7#@ zH9IB`m~Dcj7IaMRhkg4F^NUdYpKqHWBSDb9X%Y~#*C?UkC}&22^eHwQIJCV^iS4sE zwSn~UzyMfLs(SYaCk&*Tfr%ES4&4p}!aC%`E-Xi)MQPOF*PXV3wC=-z(ou}6U%`mT z9y5^M=@VdEaf<7LLT`tGbl`qK4wRst>#I9qAPp+)x6P=fCFu%%^RL5ka2|0vla?}=&{;744iCXzx_1F;HBHwt&qwR4x!gfL`{KFyC$Hh*r1LdF zal13u*o%!@g9dle@@N<=Yng&882>6_{HkS6*`;YY%4G`arel9grjYI>Mf?kHjZp`M z+&+su$ih#!5*|6#vL1PWj{$rB%ht0c9x#g1D6}&so;^f=z-#>W5Cc5VkG6(bb~%SJ zE9?UB_zS6u=^zTpS&GlUO+yNL>kfEGzse~HC-g$emx5m5jOI?ff&W7g0nzu(H-i}G$4$JXR_r_zPC(Z5Mg3V`X!QL4; z@XCZRZ;7^et6HQtr0vPBidS$?W+Z4`|7ug!6PlVJ1Dn1bDqpl9aaOApjxKvuV=+W*c@STB=48|)cW~x7{zsX52rsDNH6YzV zH893@2L~nNU!Ju;qKH)a5~=3R5z~!b$=7l`Pe6$lmUDp)?ZoYnxMljb3Tt;cD|6K* zZk&wdUmb&|0&+GNqqwaK<14r@6g4{MG7dO#+a+X^H!dr9>%~28&_t1#2|4{4)NNqH zNlLJsI8X*4zx!)QpafkQ%&CmR@@>wIqKO+rqtILE*QpRDK67>>ZX&}tLPj(sE)tTW z1^xtJh-fI5pRb1zx1jO?dL+;jT60#DENjMO(al!~CPyNY4l*K1{O88jLYQIud@=wj z+-?y!!x;g8ya_-DF=4j}(266h_?Aw!D5gi@<5Q?8`YQ!BtwcT6w7~Ta{*{=yjWk;6 z+R4}JbAkSWYaw4(;H~FtT)59^C6dz1nBeKH8IX}yWMkepDTIpBd*WUnTLbsU54(6=B>5}DDMwdx$*iK zlTa@25)9>Zt<;`DNSY32J`HT?P8xljnH@p3bCn_C9Tpbt06#l}D2xGGS=v1kKR(So z9Nic$&XoOY=5o|I-TdxLI7jhisW-6b?54B9WrLAMPk0o}mK$j>kIoAV?}S7e3?d_A z%F@IGuR{FB;@s-dJvcaV*wa)593w=^vwXM zhQg3*==S;Oy>q6`$^ba92}ZnKsi(@-Z2^D^^d1_bT*H4m@3(T(0;n7j@!W4^5VYqS z^@!&eIE_C8RFtO{`vDj|yOc^J7Yc?g9B?DF8dQ$C%)NQmP$>XVi8?)im1B!z+ExH| zX{|Do^1ItXC@KX7FWSxL{Bkar9)ufs?kfL*nT^S)ClpCc%^k}`TFGh2mDxrLGet;; zET$_PQYlYd&~w+p%}MisK-Vk)TcK4l01e~NMH7HhEz+>5AMnxc5Qs(@mwXO-bFh{- z_9}{Pjou4WL zyW->U-Z5vnL)dW)zVGEN(*&Esy>+mzmeup_TFG~Fu@OarK4UAs!)&_dt-lb?dTStO@d}sAX^3gw{y~{x zvA6XYv`5~N1(;v-F8JOeqxf7J*Di0icv4=3}E4{Fc+pYx(|^ge{Wy0>s$Zqv6-0kw-c3QnS#BBHG0nRP^9iJtJlqrgySyI5*vLKiU0WVAKm(^`1&ga@~K;qR)l z>EkyLg-_?Qq(`}Z{F)u}SFmpB1&aWn{xL->aiszLn_OPX<7998}hg=NbY+(2oDp9y>W zW2_mzJ*pI**yP^v21{Xi>Gp*0IQg^c^&GSFq$uvHh2?bVg5R*~6yENeFhq3zXP29K z2X^fFbCBYNV>Q9=z+-gK!uQ^I6TQW9OqaZejfF4~629+2UUdViZ^@v?lK_4Dzs4;} zZlQhsJR_^|pjK}vJx~e{snKLhX+`QdSPTF3A3X5E;ia{foCFM=onRz-#P=l`fDaKfkv1u8jgkH#@agyNrZS!m(0u*!0}g1KyeG8G!*Iq+fPm%q;8vy7$CVV zwa8Q>sLzKySH*Ftg_7}s@<&jo!e^*^^!pZy>x8LmTorizMY}ka;t>mFFNK0SJ#VMd z^|OVtrzof|zu{?it|p$Ge(UWiF2XH6{Hs&hNaGGPm9bEqBEl$uvp*pl1<=R>aAGFl z+()exV1NZswf%Y$>fP5(aYGS9=2`%igaFPz=N&z4=}rrvk`Ta!)e$Nz7c78Ef}dv$ z|8{Xn(w?C8qQ5MF3O_%{7=H0-E4(J30eN!ygCT&5)CXVL4!_jmf@T2Xod7d`j+R9_ zmk$?G%}ZMgr3?|k_dm{4^VnSumw;_2;kas z+~cIm-LL>E2?1OmlwT#G=l1(5NyO0{^t8iou5_bL7GkDUbi>6s8p+Mrt*A88C_aE$ zo(^CFIQ-7KKUI`k_*J7EM3zQue!N#t<-uS(ul_jjelCKVB;lWJ=S{-sF8r4wuPEMT zJMZyD@a}%|no94YpC{HD)sUlrT??hMGI=u$dEC;cZaSMS zfHFh?PcEb?z?T+486tqEXKJe?{&WINLj?725ln@Oxw+7kD~FXK`x+s5&+^SsYGN&b zKX?eSp#H0X4a}mZLjX#dB&g>XiYS}keF@66OQ0|MK2UaT4}gks@zemlyl{=~VM;;L zy%Ydr6Sa5>`w_t;ns`&0=g#N%Qk;;J*r>2NojRy8u+sm+8kQ;n7x6bZ#Db`3AvGwXmG6MmJ8W45A~O6l`k%%&sjH4gW-?{H+CJXB^rx)2?bN?3ppSqw-i_ ze(xO~1yc=--o?t&mH?-0+`pBTA(S#sS(zFDvj;Q_eX(7^Mp-aP-tJ6RT2Vy7R#`9! zjTHNMnvaFJ@N6_{g39q@P8c#<5TSGj5fJNtvJlE5L3n8378SP;4D;=UKAz6rLn>kP zX#V!))(2{<+Kv zLwXxZ1Mv#2!&AL-cl#s*;smA~!(XLcN7U`@Mh3*&4bhlIQEIx<;lkM1W;0T0IvY9) zQx|kCAC{4ri<{H#$>T4l-HAje5WJVnVtQcME zplf-!gEjxUdi^hl%??L*p)`%c^B50#TC>H=VY7&Tl6Wi`tFwP?f zEP-BNnNwgn3;A8(JaWJisU04k5m=H1<2CZ?J837{HPud4tT7+?>F0IJh(;}zg92G|23 zfEsjevI69Z1i&5w0o0^VFjkRL6VHGQ4$ViOIlLClY^+di86~bLk6V9^GE*1ZVPs6#PTmGFEUujoX`y+M1hn^}_IWAe3Vp@TOrWlPG3;qdahTqeiG`IHV&L%gDeik!{W|c#(kEIj1 z74r^B7tOG^$;JfW1mcLhXb*FY28O2yZB-zJ=G{R4Po!WpZZ7)90!q0{p);r&;ge_` zmhD~iD1e(5iA&*^+8M;X=do zDobOw|9f(VCEDwVmAfDY-Md{58t2$N)E93vzFvl2@0aGYl79a8Y?Ae6DpLsyRP`&m^Eeg{%rj%?Js* zg>xi%aZ8C9ei9Stlnn9ga-}Ky2>I34PY*i-oK}W%u+Vq<9nPRpey*AsHZmb%H@SMd zwC`B)azDgSV9fkRjC-~f@*i1D2CE#3xUP?=t73PR5!YCeA#NjXS(5W9FKY=0PQ2ss75@~ zTZEu}{LZghOW-NhhznGqJihgW(oawQLS_x(3D1a2)F1Nzf++C1>AVARg$mYC!;3^l zNEi%6qRetfJfJCyk$Rg9TpkWZ{7dn?t~0{oN(-Av!mZ<~P!8Nh7FUW6+HTCsMELZ5 zuOno8EUuE}VN^ttzGWk1zq7d9{2BMxM414H=%|MmfN9TO4mpLTn275%rz;>4=&#y+ zi>G_nkcRF`Sg#uScncv`#M92kKooHO)-ohR|x#Kl>IgF==Bl^20)OQ*4!~LBw zxWxC>h>@;xMbv$DZUzK*Um~*7fE0W%0~MCGGQy~QM&BkP8;vWDSD`cWv|k*$xo;B@ zN{irPs_wGbQ@vrJd214Z-oP1w&N zy=))aDOL0thF}X~x!wWue1fR%M3_wt_irPL(xfK1RdiyA(MGDaiu;)n#i-C_#2_tz z8&7SRTb%ybuEu1`{0O8k%o21N%_}RT1OD{ET+gYNq-mMdFzupUQkbQvXdQgth$SCc zl8Mwc8)96VxNk%%&c*)xq^vly87!`gL3Svn6b67y=zG>Zq%8%30N z9cYbD$MW5`t6$Q%fyL7tw2%>XXvRi0w>HHuZX!fSU3#UN(y_tPAz_TCI+&%2s88oR zD8v^pM>M31=V9SB>vm=% z^px`FcU{LSfy@q812gOoz>pESu>GV!4XV)tukl3>irO>pnZetL$-;=16qH>R#gWX* zjG0Wx&H4gCZB3hd>)LBB$StxGOro%z5L~Tq#8jdea2FkBu66S@3ULZO$7YU*BYI2h zLvztJCq`53^LkzsXcs;4v%xunWt)gU^^upcfrIj)cc_$0S1^T|jE3HU^g9+Z@wA`C zW@C(UpF&yRf&=5JV-8l{+KE95F33i_LxVo#6ec>^VWNjmT5UrQKI4Vy3l}LfEIto0 zARM&~rvfXkVh@O~DbHKw=!H7t_Fec1bZZMI&)5)V$L3%$@|tZbcVgnadv5ST4R_&zQ3rt zY!&gf*8c+h4c;r_Yon{pBB8ul#Mjn%&w7+Ql>3(cpTVKL4)1HH-&?|c>}+-OV$Yhd zz0Pw&I%UV6k-Dx&pmb0a4^u{au&J=4qJ%Q#=MSKylcHo}3hzPibyk$DOzC?Qdb${t ztVk;?l=r6iy6F!kX|Gm~UtZ}mUS6p$MHGyeSNe>XSC)lm=5`fdPkkL0}>J1>w^17+zNQy){ig}Hg>l7+P{WYRRCiwfaq6%4)5T_0s=_40Aign0P=Os zf*uVWw3rOW3Y?U%ZfTR$=;aavQrHskxS!?go`{hHM}i*NdE8C#^@zZBE#ZY#u*vaQ z!`GAFKq?J=NsDJ}nep{n(g()WVY&p($iVW%TV{N3wYo)yEB!10=YoMU7Mp#2I%0x} zrdtR$10yb8Z1(m2>KXKJ2w;{cDd_!=e6Nf?#sI@vW3!EKKy5tCOg94rjm#OvajrPY!X1c|Go-WHMw4ik-CDhsydO38_Y>YR={>c{9-y%3dzhoGm z`4Q-L3(Dm@qXF+vyP%*K1E5kbR9RVe<_(p$Ud8X5DDs_& zKzPK~?*CW3L+FFKKdMAl{(lQOBv+rr9$`uD`v0S(Lwwzz(W;OZj`<&f5d6zdW`s5t zL?1{@==1+uhha>4DvQZf-EY!pH}^xzLz z!Vzdk3p#pD0F-A=d>@w@u5QxPEocT?1$wCPO{I0O1+{8{GC-i8w8*Az?>8-I23rMs zSbJLqD>Tj@feg0t^o{RGY*96PQ^A6YttxFneHMjwTlN69v`}KE9d-1dhMIvIYoR1r zg_3T{vF7Fz6KgD#Jw-ts-*#Sk`-O$Frzofs#d0V||FBT@6s7E(x<6N;^2Ynaar;A+ zbtpCxv@ddhuTTjuM@b}3k9n?q5)Qrsl5Np2bds}7s8VgWs zM}ReF_h8s6#qEoiqr{qXy=$m^x#vW|noAu}v95MN36*+WAi;00RTQN{lwB&;3;u`a zm}n7vJqvG@#|-%Eml9M{HOj*KLu=F`rJwg{`fiQKDwXJ8X5m>Y4CZ~BzS}P_h7-V{ z0D!Si(|4x`9=8|3Z6`nygPM=A{^I*lJFjU|;X4IEtI8&oPTO(-{8ajZ0=$+1a2|WS zeLrvAM23cXPJo#X&t3WM-uXqX01UKH_F^iiUk{-REIsT+7Rp{s1$A%nBh?Q-WTB*j ztLh`D-x}j)D7tQ2DDHEFDHP9``R-qypmb%yU|9KYw@XmJ`^KrhW?2hmw@XkDhDEC0 zYBLLEw@Xle6x^m#9A%;GcJY2r-=Al(%|&u=orRK8C54jxLKgCVPT!*^?^zpyW+tp4E#shlzrE-Y1v3Ep81!S;J&w)1~i4R8s~0 zCIHI$iJ2u)h;@^a>K6Je0LEDb7_Y$ih$`e!u!1Rm^Emb{thErz4nbtXn`o5ZCoP1sLlBv% z=oN*yYavuBJjLh>p`KqTM7FAd-U=cIMO{&Ll(rBxjCcsbOS^H06ki%y2xW&La#9)! zj35SD2o(=O`5jWt?>F0QG!n+vPG30f$Gnu7Rmp<+6EzB~!bZ^HAu0^rUWT=btrEyjUi5-Q z`P`QYs0i}jM_&QT5u+k_$ij+ScHac+qouznqaRsVfAZEelf%`5bTU*)MOODmgmXY< zh8);JG%Q|OUM~QfA%u|>cSU8$FbgX%QLb`DEPsVo;ALGBk<|g%40@v|exkyjwXhP5 z4A{c-bgHu9SpYVJ4X@EQtdochQ8oN=kQ+AZHOtxS^i>0;vW61|1n-^om7*J{@b%Gc zp#h9YS%E8KM8Q+EWl0ejZy+PWhGS3;81L})CDOvP3RcE~sXBLcFg#7B*U-1RvJ3vz z^CKW$8OyD{s(Gy7)Xl3`Q@Rd|1eW@8*r%0XaVlM3plZx03ugB` zsyq^HK`U~qam{juS=9!13!){Vv>84BV@`xwrv%oT9$^86%PHNnVD|bhuy*8yp8^Z5 zg8)e5p=!DSI?!fwI99;{aHQ6mj{K|CwDhAgB-V|_pkPR1V;Lm?dvhfz_M%Q56lyI{ zDg;)qQ^lb-Wjd)~r~OIVQ3vtD17BY%kM>NGyl*K}4ho_lwMQ>O5ZQ6>bVNV^11V;L z8m^ZEz-AA!L=b~$KW?_7qOo6vy1(;QaNiI*g~ywCo{olFD(u^>c`G>fHaGtXUlz*@ z*ov3Kcq_Q?ZK}Ik`E=stFy0F88%7V&d*#VQy8m(*Zw2=ar|g)M;5ksrUDxlP-8S9| z?i)d8+}PB>w#C03##_OCBWc-v&DaXw`Q)%s&ln!X{HQtSXAOYZlBudv3y}(3X4(mZ`qqQ~#v737bldQG7&Oc?r(x#gz_tts-gN3)Ku<$eDqm+n z@Z&7Lg)}HlAs%Hw@TODWBKoSKvLg>tby_OEETPzFH5pLFLU0p~oE2Y|QWf;5Wa^<+ z288(XK7BS_=@^v(A-*i5Rh`VGuM7zBWjV!QMp#lgoB<)eq*Jb*%8r`>h%&~S^eU28 zKx^bL{;~^Pan~5!f)-b8I^m7PzV&n*gL^6K$reK7jXkWsjr8Rsh3I4<>^e5n4|7#3 zGSNbCRY5Fe?7EHmpo1f+thEp-6+!Hv_%14ylNLgyBIEE~)G}N(8+R>)(jkaFG-j4c zCEJ_+SSTGbGTle3A{C;vg-|*Kae#_pSx_u(WFhQ24pQA(%F=-rLU}7?>l1nlEtll! zJVvNq4_bA^L(0WrI`q3LIeRi7r1X7CPu^FEOBoPSa*ohfYgM^;ngJo@^E13YO4(5W zMcHYGl&z!G|0ks*F#|$;IZoU2C`1Pfq2eLFoS^z>FvZ*P84%*jNh*+CAy#KVh^43K zedMj^IGzC^-kzpv|0rL6&VUeK&d^Fcy&*cXH1T_@EaiQdzHg~ZDZKq~3GS}1Gs37f z#=cA6MM^=YaetVq`^Ax8yzkO?i3(tPOqd-lrm?ls_Z`jaj<1umVqT^p=(vjH zQcKdDeXE4@JDxe(tis@)x1 z0=!L4FHKqAujji>ujYm3vKCkMAbmr?{fQ2sKPLBrdO(EzwoA(GIK0%y_cP6$qiJ){ znW3I6EhQU4TKOKB_i1Xf8iGt>!N-Q+U`$B*ey66`U3PB9>w>B8W&V$p8Cy0%JuYRc$!a&MS)bC$>&akSzmwN zLP^G0Ol4L>U5shN48yF7uqsSm8k20ayuAhDqBIM`TZoJfKoYHa74ht+7r>@^7Io1w z;0&g*N6pt?pYVVgdzitZ*jmQVzxW2|ZEi5*tY5Rq8K@Vy&Ya)<98)7d8RHwI$DL!g zrVNXayhh-v zOwJBp4X-7;tz?a-hkVoYqHA?6H&CQn5Ih9L2cQ5B|(tH!H)#fmrSLU)h{`IZA= z<8rp^#izo3B*2D%3NDi3_Yghden zPY+7~4oq8aCi@Q!DsYB+AZ5LK)&b8|j#)3nKIxX#98dnPlHM&guRt`J%yljYYUKizmQ zu``neVr4SF={VZ`3C>Y`nct12KCN*joZOzCzxUO&di;@fPY9jHN;Ll_YBC!;jXj~n zNEqb`{wwA86aqtMP=Q6r{%(xnVvQ+;Mhp>!wKjRod7?Q`~fmn?nEW zhuyEy3;c7@et*J9vurcSm7;gPHFDfVH~ex&(UF!gh4!J)cq-8-lu;LDX=^%WV5G$m zU=sCP2s0DtaV+}wC_*kO{}M0~-p?l0ps7WSKCg>XEu2b|pIz}Zpoq8F>S16TO$T$0 z@|r^b;S~s;<}_**-&&Tw6ml3tdQS&xjSY4#I^>6l%`%oqp^@+&PrC%=!&a|Z;L-=GuM$(p!Y|HC@h%}abG9hEBSZ=oE4L?LYQt^w#Y_4Yl zef7YYTXfM|3=?bl1SK&!O8w6X+^eC>pvK{)eqE~Ql>75 z35Nf88$wnoX=Nz21A^T-SPJC#7B*5CMRo}Nv7c@MDCBgywMqt|mVDip*mFN{gT(S`ULSZN>Lrpm?- zis-pfYPdAg2tNWncVU**f5XZHmqS{}Ory~;21cGLdiM8>R)Ka|l8RYPPsJLuNS?DK zG0wPxVpvcA=d7kp;^z3iC8?OH`uWAAjb&!mj{Y>`DSZe+)=q!;Oi31HrUV++3bVT& z|5!=ZuuJkrbWcBhF_w|I>7Y(_Chs=)4AI~2rI=&wOzwnuM(7u_V9J3d-?x~F@`}bH zJ@v>{XsbVAh8SZML5Z*d@yyplH{#BC)d_*oyl33AOy7kEJVpCcyLNsMwC$hLUdR_!^XuSTb;Y83SL_cM*E ztq|ArtEk$w88O$d+d#;JyPik-$P!A$&Hxn#AhT=JG2PH`AwYxiIwVgX*DrU-D7t@J z2vxXw9>-J2wI5TKQvCCE_WQ32w;+nTs$$eCh*%4u3OCOu6~TSr8s5OqRj7@HP^k!_ z8C_qmQkm*R*xC|fFG`W(^e@&iMcY;j>u)3weOBpd@7jAx!Ol5h3Q;7SR+LqU#}>lh zNT~NpcxJe2V=k8RpqH%5miShlKEti2$e*K|DZ`^JfO3rio=vW5*tsI+c6K5hu8A@i z}68+;7c;af^I%j0!4XDXKQ1{E*5~7f=v#3xL0Lr%a>tA zK*d)C8VBW@uLLGp0+J1KvisX5=nS?d`HkOG~%MX`pX2Y&Y_CU!Jy9Q$&0{{mkEgZ_F$d}Dm+k?g|#me@Ed3P za4zV>RF%TTmkDrR!06H@QSCZtz$WQ4=NbYo3c&(NhP<`BPNG#$a66o_Z zmq}QekVixiQj(*9@fnRDiZ@P2E3-|t$6bLV+x z&z`oYoSA+0qW2eQ8gcxF-Wu8JN&?8YvI?}1n2GMpI?@R*_z1Qc3UrN_mWnQlWhwa{ zcXU9^b68)L`rbEgyPkqna6z>fW)xK10#8Rw|3GtF8!k6x$-Nd?U{XZXOPcnyp_u~I zDIf7QU#Mvd42?UHBkd0;SYT1aPQ3DySs!3k8MNB(m59O?%PMyb89=ht}IM^1&-QyB`~xS3#zg%CuwO z)3gJImP0`iIVN&G-dBi%)<8GUE*A=l$olpYc;etg#mg&WhY~M5o-u(7XyV ztyC+!YHr;Uo-{N!QKt=x$j>9+AFoS${yn%*P(=2#i{Le~D7e+oyb69b0ad&=vNc|9 z^T)&JqM>;^FrPOna58cNUSRU3FBQZ#jkAJLnm|^zmU zmB1w!>;D(x61bFN{p#;+Jcs=1FM}ZoZ}B&R^A(ud3I!9tm{)PHaD42a#rNff)vM~4 zKmO0=`1P74ySh1wm%V;@>D?{!cL`6i)~SN4t4@1wp$XmlwiW2eWFOZ*9hr?}y&3{xmq zIhfi4)7S_XlhM!_5(}?E*7N$NVZatm-UQ9G5XB19%2+7z z`yFg*(aP*{c%;OHr_}p2F9dYoU1$mwNr8$N*5f89PgCfUOTg!ozIYNb+xv1?)b9^e zVJQ8$(O6bZu2(Krar9=Rl{}0e3ET{tO(yKJmd?r;VOecP*18C!LROoF zcvD!q`++@{4xu(}3m~M&BQH7}Uz@x*idnj67UrrdmcPyD@!<42RGxH5RGYyo5z;$y zx5Ejv`DMCgmF|;@Yd9)a$+q1F46sV~`@FuBR<)?KxzM8J2bhJGzK>W#G(0=K__v5z zjBXc4$3hspHYooGC~;Kw8hpj+po8~As|Rtx0NK|;Ut;g2bVd5L7Fk!@O2jr)dj>cIhsfa4RDvB-OqGvb9{jJ;BOP>F2)C;Md8ezp8QC zvN#SUy9}ji3Vq5M|LL8)`W1I0CiGw`T0ftLDE<4wr}fUrKo@f&^I?e6XTpW`%jQ?^ zB4ki9*GxY8_&8a~+^-jdp(3}Z2e=}G)B|UIMIo3pw2gZy}z;{@emdvT72>^DKf*kGKeNk3aIs~=m83ly>21nr*=^)6D+ zXKa_X8!ML5e^O)td>vAyScB>nLXlji*pa;XANvH#S!@Ef>o4Dcfa}zH5WifgVvy>@ zmZr4N$3&ajyGY;$ga)`^EzPktXRP6HBgw|`Yt9_Q(IP^eOoX^kv}vsi>&~i^h|M~L z*vWG0(T5*{Q_k0}4C|w`6i5{%+AH&7{rm7Yp#u6^O^(c!+}Wzhs__4vLAb^Q#zKBV zRuW3!F;+dkhOshXA^yaz9*fQzQ@8X}cxI13MPur{2(o+}DyF{o<4`g3DNg=4l(?CtU~2*X2IUCt@1%u~t8oK--tEMa48?`M!k0R^f0OJSDX`JP^kckPK0AL~hHD zm@tB+C`XjddS>}74x&w1d&IDjkhvJ4iMb2u@rZykg(9o%pyLGftUF1eCz@yFEY zX+z-ONR>BpW7_)zK1G;o2$g|5gvVy!jig9e?GhZUL*E%X@2&%JOG&>U#$J^xBJ+l0Oy>-o4w018TufyyESK+My6k-w8EbuSuci8T>#@FeD<=W)k_)uC^hc9Llr*LYTv7(r*?&X?nm2B2emFk=1Z@Hc@U z%V&MfdKI8V%u@1k2o$1j#KDOH38iSpbmE*83%CSktr2*&7D%i}?>ui=k6au9Ph^Q3 z=y{NXHwt4A4Q|D`A_^}4nca`|d>=+J_`p&)+zr~7`Qv~sUgZzt4LpnQfd}W})g3+# z2+N$?sq(~x`+W;o%}Zhsa5_1IRzhw z8ezKnmp&Ew{=H~Q7~G*^`Y*zE--D&vx0aYmv!gZl*8jl$BMPZkr=o@R`aR|uPa(vW z23Ug{HPt;Zr?TrT3g>ZPd;DA zz>?UIKKALD54oW9KUC7O;$SqQE#D6k8&{fpp_&xqw^cI9y@X{#+87K=ClB(N+gv(b1;sfHzc;iD#*5m zbHfdecZ$MkKx@lDMk`82?-54j9E=4xHk8S3#UH~KienS*g^J7lz@Xq_H@UphhS%xo&#JAs})z=F*8BsSfrx1Pee-r>+l8K;F90>aZ4En=$UvQaqj~F5dvp zFCg$|j?{xz)YdD%A^#;3sQ=D{UcKl)n>6*U|3=NC;+LUjU#kBItm<;6iS5av{;<4> z{pkZtB50ozuGEu>g=P$(U$GTHH?uQDZ7*#gO`HNj3D4;S0&EU*N*jc+0n(b@gXR_4 zGWMkUBMq_mn%yD zpY>fxofC9n+{`Zb|042*uTZ`#sBeJOFxL<@ug1XtRbdJlCA#DnwAUXf)vpcMC?hT% zL$9YzCDStI?x4XqrNGUHRLS2(!@Of5WF(YF>{$O&e&jVoo+0={+!<16ADXy-^Me_- z_48;ntwWro49HgZG7tII<7Wna1(WA5NbNiNR5mTd)TD^A^NxWNQLYYCBOcC>Uyr2A zKjpLdpY9c^5&v7*-vHkT9(pnhQ!M->>d~(<=dw5>4R8xH(PXk~OI+Th4-ci(`J2RP$|s!CqJmSi$x|^n~CCIEv@93Vx5% zApWFU8yTLDXjbr>QGURyQTM*!8yL83t7mZ>iA$Qyy%w_`yXUt!X`D2L%ZaC!C5e+u z3SS-u4gcYc%M(g&)+(Qslv!r7o*Wf<5!gS>0+v46vXZi9pk}zEQAICS0ModnYNzIF zhrW%y*fW<9ullpFIN}JnpTR2Ah;DtXq#D#%%Y4CLDRc^%PI`0%HoC__MVjx$+Drjf z`-_V{i%W^td9g`PMp#L8=Lht7c)*KQz|thC-hM2Cq=8-aVkf>v9_r^skqK51?esdH`3AWRAxO&|L?6w6{YW!g)z^U!tl!c-;1;2c3_efl{B4)dex*CXK&I=Op|76 z(o8?9mbP$$0zYhPL3p$-md@ zd+j`fUm>ZCI~kA$|Ne(>=muZhCE)Y%4@4mHq6oIt}mv7n^oMYxh?al-Nht)(hg6bB4OlQnM2tEt-dr* zH-Q8%_S;Z2oiBgEl2sadH81vf1JwT7_i?#Tunu1A-vf}jZqWO>@J4yDDxH9R^+ck^ zX1kcoFi`+&hCK6ug*cp2M01q8=~`Stq$fO{LH=N>+YR(|GbfdaC$eA_@?x8 zT0$JAfvP+l9U9BVnB|yK|&jZ^u5AQQYzgAwX7k0FgzC8&K%z_Q^V#7Gz zmUCE;2{y%x@wy^uYs^4PEh`pzvHLQh?DsGKsdd@p#YU}z%x#6Rc9aFn?_R8TI&|5d zd0bcQO)naF)>E2fqt=Vl5)iy$xUD#}~HgZF%>S9je{M{T1?T&KhrdutsT(4A)&M|j$;dgkfuJ@bsyGfNUvla7__7D}#Z)SC76{axFd&!E>OJ#87fNBXk+mXn9iKtx6&G zM3h{u*fIU(tZ1;JdA2|>c59F&|8RyyI(-aSG3v_PxmS!I$t}&=>6e5nd1k%M?ax!J|6~duk(2 z`>>}r;5Q%k)VdGgJ+&LRd{*w@`yXJM9IX5Bg*wTp( z#^M7rf#8v?WEBif#>t>yFyaB9RVesioNW~jmdCWVNN~VM@Xiv9_z6b`gZYY(RW#Ub zF1}3`tTh1p<-uwH;ByketN;3}xZw0gxGEW3T-3IT2U~Jnt6<7F><}i;Jj9v#svo*T zFs3ADW_2sxAY6itK0DZ@HE$5UT8A^Ux-oAMep-SvQv%GWV6_>9%zTZReV*XdBb=GJ z_?s`-5&ZnYnV5+d2u5&^4z~AWYcja10m?Ag6E-<$6?}LPm*t#R(~xjkJX^u$_woMZ zig#@!ABH`#gR3FhAAIgQCqEsQDI$0lx1S?}t5L>L!CnnfmT4_Vc1QAlye7&Utlfi? zZ!*@0bd{PZ~IyV-6|c;Iy8 z+bX!MAZxex8z#-hGydXDCk2bGLmLh@&x5IbaQmmM-IDilt17r8KWmqKlM81MLZX5v z3-j)2g^@jmTgi`;d`LmsKDW%|26ET@ETl)vlU0%=ypjBheBB9GeL{nc1$@YWc_LA3 z8f+?H4FhsFaKL5)_AnsF40xkA7shzQV1=FNEd-ovz=bF^2W%@5MHB19rN>-(;~XJDTIg zZvO-9%p$z>V`u{Di(by?oO> zd1vpS$rs*Qudy;-tP!RO$rn?%SxV1ZUW`45CjWWsbDzSxda?Dd0sAZRAe{1YnLX{r z*k4@oKcDWh)F%vQdoeN6|8|9KVXID`doeN6H|}84C7z>p<-l&gggxRzT%+e0lV*U8 z0CoqLY*XF|I)hO&&`4Q4F!ltO?5F+{HTIAPV-Et!_~>{sUAZ-Y=>~%Xgm}N697zpv zR!wF!oxR``Z0{#W(fN^j684lA?1~!&$+@W$w!kFjY%jQ~5A?}HFSpkdgB4!zYCC{= z>1JyU{^$iKN1=xE(N|UUwBe!`{H+$i{8V$KPBS02Bi*d*r~z#Y&>Lg4*s@+Q3$N6Y zqbYZa&Pp9GIKMl@2Ix;nm#p;gf=#hGo?MW&VO=KRcrUnOGsFg|1{$4!bG_iRKL9LD zb2{jlYrNpX9Z2(jT91N~nESoppG{CgvGn5W7&>5R=!yX|Y1rUVR&pH8eA-rEL1?B6 zA&bs$huC-;S%NG|VnAAtvSnFR6>n3Li<3VSXyd!k3=(}yQsY;2X8M64-ki|DMBN0+ z#9L}n_XQ8u<6&r9n!bqA1wY?|y_kR$%hHaoE#=wl8^**-msrpY62c>7FLAzt%>>s| zC{o@Ng7hT1eOP;1yW^2Q3+G0XQ|N1GC4DJ&w$WJ3WGXFeqU~hpZY)GEf3LBYjA@0$ zgr<=XuTjN@4)(+otSWVKu*sfyVqVj!&};bG7u$*tJn;kzQzr-8=!qxhHG>|<>Ot)5 zZ=QI9Wzs_}G8lXtQ%^iG zy^qp$H0R2&E7bpPtQP&eL1Qm@WQtj?O{enMN|yzmc!JfT4VamTF6%w<#AMf{`!J8; zVUZ4b;t5ud-a`kGc-KAg#GKcs5z}?NLNJz2OBJjE{RK?oB{8P+E~dUA#bZR1^cs5N z3D$_Rs%ky^c;d-0(1f1GTS*xQCV1ir)|7s6uy@>e?P&?7M#;@-O(9b8l1T=|mh?G{ zij0a%Ys}5L$;bNnV=M{$81l2qzSdaA#HVB03ycG5O6XheyZi+H@D&cN;cuQ)*i+(f zIrWIg*ivz3k*1c#KlyZHtUo`V$`9emH=T}RSFQMLFP)9zYUV{p5`B$*bUGguy81;sL1U{!v&&KS2I0LuGa~1>+OhhOA&e_gd#h+hS;MHK7_BieqN`CGkLpw!8iu&D z&mdu3i+UQX5lLmBVMs13GU+$q; z4~dMmhM`j_*%G4d+_!$xi~}wMMR8~qvXLwII^3a?@#dNVlWE*lB8b8gK#x>Cg^k{if z`cp{tYJB}5lq*5UVLwVct?Zin?VKmFZ z5Km<(K5Jw#LBk`Yqbwyb0@x_ z%`RXo497-*-2gSm4Fg6pzL2eqq~ESi%#1H=HwA3dbWV~VDG(l(t7=)D#)_&v*5Z zHLI3U*8b#htd-bmF+rJQ}%k5HVkb@#JyRvz3vm;Xn$pfQ&_w>iLYoE!sd+B;0-Uxi<9^i`x$5bQS@C; zOkSMCSF$7Ui4uuf#S8M{B)+oUDwl4;ExaHvPU5TB4Y3O&F$a4=UYx|I+6O+?;1n;& zi<9_}9g#i)7uRr3e+If*(0grh>UVp@=+hrE&nAQSM zK6(8SAGXh7^F?CDdqJMf#b?^{u`|S_P3c}xzO#{Kmrb_SvbU`lln-rGvtPn6Q}tEE z9N`6df)!ug{(yA*p5_I4)*WBdrY=6UJMoDZdV6A<7vwo|d@cJ@K0SXv z?FD&%BEGg=H%S*luJ=5Jz_Z=>I`&&*v_cPhL7s5M*R>0Os<$Dkc|o2F$Jetzjlp{R zHRQ9S7v#xze0_WI{XVtM8si0d))(KA z{v4y9tnGFgP%Yo$o7#7-G^qIdPNG9tv&6UcpRkd5Hy3q1 z&2;Dr<=gphV1t&ErDvG3ku^o9?!h^0?{9Kmzn*!^3(Ds`AM>xMq2Fz;@`CbZsSf_r zMReEP=LO{hpB?=daXL);?O$F{%yMV{f%`4%J65AGny@Yx?ZI3=O4Y-EAwfs4&J0mm z`ATP*jx%`S_VnjDt#dHIaJl2FQr6$R5Nkzld&07wAh1<`6`l2p}dWM@rU*SIPZwtqM zqQeNo&7rS+sB3_~01mdv7u4P|T+vq-m(T|K*A9n;h(twwV`!qPmo~^><|ix>nRdp| zL`yGius^(9e;zFGp__40P}8Jc4fVex?3Vwj)xAIPnJ=-zY%0hBMj1-gnd1vUOr$fA;eCcGe|28(A{>hKl zI@Jrxmrkbm-|nZyF7|@*rIV@t7HFCBrIRfN%%Vd5F(ka|uX-6Ge`i3A02#FCFouTL z{QDYOYP;l?iIpMuDB`F2lbo|bF?hk~+Gd$pzV4rZ9dW7AkQe+r28MgOe+l;W<(qQt zT`<6YaB=<}_b}pT`d`IFj8~KNq#>|YZx>UlKZ3bX@Fc>m;FH+7qhRe3{F-uV znBPD?yqDiVHpf~ZmsPOke>g(jh8*GFl9;>(PyCKqR`7fT<|$UsN;`a3${U@qQsGHU zN#e9p>i58J8ipv*@?`1o2J-6-H(U*@Y=Z+gpr}J@B(yIKjps)If5x@El*TgUVDFMj zww`jRuZpKMsq-hkyo`*}RhOYYOR2spp3?I9Bz`N4MW%`#U^3nS^7=fbb( zQmAxs$kU|`;Qk2@kH)`?TAf^ARB03u_y%A5o z2B8BkmOzmWF%dbt$p7-~kUI3K6diGz8_~%N?%h}^!*{~4NT*txouKAD+-4!`qg$Yk zcnGh^gnH_KpdNh+5yq}{I-!knRFw)blTHB}Uu>A}J0-l>;0Z|Lxi_JcBoX#vSDynm z!9vBzN59(Uz@9JKL1V)ilLEx&gnM)wVx_zgw?bF*bT^)4&LO;5qLf~6t#Bhdgdu~6 zTPZJX2jXo8d=K3-OuS!p%9wBTONW<3csxNOJYpvUWF!b zSxud~NUNqQ4JJmcOP4&kEPtg(`4dn1F82{TKqZMoE7e}lJ?KdmB~R$X5?)7s&2qz) zKn>Ov@N)ycis8+PSx>;-2ISowG~1FNSXQORYfqy&pK(Fd^1+p4Rccb+nb+l7?y8bP z2QWxhYL+})=eRUuo2AQ(eNCY~1wd#~XR7`VTchj*wH8Prp0HMGxdSy6I%UG6JO}Qm8%_(UsblnD0}ve#XZ^QMW7Km=bmC8VO8L^`*W@U8&nEQ*?_Q zm|cu&x9Y3HmAd!B`{l~0NczvcS-ecD)PrX+!dh)uY@wB`D)NQmNlZX2%Zzd62Gqe?Z9#PG2~Z&IUv^mjSn6~_*E4AG|$><{50oUZ{6jm znVCF_-qTO><2cr}Js0nveh;zHEXm`i`MW=T8a>bGyNrsjYvZRm3+E*lAsj~`zVHap zewq&#CkrR>ftK~6+D~(XW57pD$ls$FT0Y`SH5?2H^2@3o)iMb{WE zxe{q`xvCH2agv~DKh32vVB7TQJt^8xbDNDUrMF8Fo!N6Zq-a0Q@8P%}3c#gsF$egM zLm5RkzGEpLxs<1v!hamfQ*^pLOWEmCL}&ivP{z@qkz5b#tk9Dq$#gZ+ewyFPr+SW! zuL6Q5+Uh)OKh0|{a5|Ylbt`f?$`w!z(tespVsFQ$wl2~5Y5r`XWql$o&GpkP?P7xA zYLCXtBz&G5uKb{DaIt{v4EQ-@VjyVU6^?pV33xm^=*f?!eIvBMYBx75!_cy&w?nug z!{wq=+|}H2w8(uzYkwEb%Q!5I@rL0x3YA`VKh5vBJa_kuSGe%g+yG<78t6-3yOe;G zfqI8ffP7PPlVTh*45@I<$me?!2Sh|ht~G8MNb}ULm`nLa;qOo?7l z`)OW^YXSn+GN9|H`R^zU=Y1GZP0g)q+<&~-03NAk_zK{hD7}!Kf+E&_n!8|@A=2OV zO4ojxKf^XFZMZ9{TKL0H^Tqoi_<)N-ruNf3-+5(v&B%29G+$gx7JmVOimr7ELUnD| zPjl<_K8ru)K`aJ^a6ewtG-;E3X_veS???WcL; zU|p|I8HP7&;?($#z5E|!ZGoZ4plEp7p>a9?Yxd84z2#?l=Ev5e>_e@N_L0;H*U6a=UDL5ym6AQsQ2y_%iH24nXNk}95(?q5p(@CAK$IV;3{CLX^xsgyV@8(&1D~g z|`xX`bGR6gbrjYCp|=@5g7pIObw6sQom*Tv99e zlM5P4Pt#XSbT6hL%G?5gCr`k0S+=a^$yeo?R{!6k3zW z&8xM76%5U*p!U;zw!2oawV`691Ug9`<yb6j_P);#9en{l!DN1Rvazvs4@fMdas^<;rSq{d;hspor{e zpC7GhLk!KUp!U;zVS;T9!~P7-GPFAAMNXppo(g`Nzry|6%G`lh8ye>W=`jO-n*S}J z87B(c14Fw6N_un(cxozYA(H1*UvDF zT;aNYn*F7 z`4TmQCgC1T<*$5m9#q?G)Wi!$wgmW%uQRR`f5iO$u55@E@H=0DEV4F08Jg;XYELtR z;HA~7yu&vYC+{WtVwZvF0`BuI#!6D6Z+Af_`twn!--EvUD%(o$3(OF`1Itv-c(qjd zS6>|*dXoeK2-bPm4Bm3CeAIUkrc_c%VMaC?<5(Sv%W6yNG&p+ zxJyPdeGB7X`GT(@-hy+PlP+DoL~<0Y9ox^>-Bqlto3w`uWv!tem0> z$+K_SD7>OmpJmmKorB<*Cvt7GtU5!im?zjzUmf_Ee1e_&S#?i> zFT1Tf;O~%fFW_~2?f}{jm84*CI6@rr38YXOqDRYsNoD5ZtZTF-)Kx)dcqy`YSFHUqD#Xt@EIjE2B3C}V#2#r{X1_}s^g%`8Yo zPm#mWF)y9jrC+jL%R%6ckeG?qc+?X_QgFK?ft`X62R6BO7rqO@;VQ>rN}3CIkyG>E zMzPd1;n@10gz)LlZr0j#_R9JddrmPkzK?;dr`$LJ{VH%XR%$Ublit-@&T%6;*$_96 zvxm0Q2M|`d1WdvBz(dSUU-=7Af43`IZA--LrFw7SMl~17Uv4CCFNyh?iv6n@g@14| zpN(;tHtr_tU6zr`3@HZ1$Rgg8iTRVx;am^3%7OCYKjsGgP!{MggR(x*T+sUVPk4(= zuNhRD4!+I&E8@oco@tGAKQX9|%j?USYQ8SGuuQuR%9R+<6kgB7bo1p!vC@@$Q@%d} z?Xe7Oi8O*cvgZx6z2A_A&yHWF2aC#vAxU5k+X9R@yJsa`F>P`%_TXh(%yBAIM>|j) zZ5XU88ga3zV4R^IIQq=)0ceKH0Qdr~YsH+S!RST;E;AsEXE$VUgl{kQb7-FnNXF4W#7qs;Ey(k&PFPUPR+Lyb+5J4d-vD0k@oJ*%E@Uga-&i0(SnpWrDG=B3J zGsG@*pFXPAH#-ek;*(%8PuX$Jb(fozgCUMd^U~xpND&>DK46CGd}QB)Y3c}F zE9XqiEb4`m@i7(XS8VuEu04*vFv;KIdo3|ZG=2awQrrM)6FnxGuHDvSRG2{-YM}^E zread;h^=}U@8rf*16T&}WGbdU4H^a)>|7z^+~^KNWHh8{IDscqf%!&;6k~?G!H;Q7 zq3xQn@!pK4Gy^*qBIAT%$e@xz!I8*c3%Ya+FY&oNeS1CG_;&%a(UR_~<+FA(Si%c7 z!%QirHO-FKIS2y`><10`FO1e5(}rSJ=;qdzv7-uG{4?UUr^^p(Y&c`*753^jXw!ja zHo(p{rtkEcNw69PmLuYOzK>5?*59DR^*^JkVO4e;aSghS!^1J(`0_nwgR?(72k$`z z-s8*Hkl{-%4CI^3NZ_)sKC)|507+=!G8L>rEyqIcFiM0iwW+d!SsB&tYf#<+$iQ=y z2djCTT4v`U1shYOn2FR2`LpTi>~KKj@E`be7dao%7pY9tY8c!~;Jz0U?>Qkq&tqf# z+=@c}HF!=?kNh`Q0;0xep;<>Qzzi5C9e!a7*LBE$njg7lasGiHxy)nz1z=VS-GR}e zM}E@I4Xf1q^*a3eJdY|-&JC;7`wA9BJ2$j)M`Be2(aeu4hNVWm)U3Vx@yxU4sMKl$ z5gxw;6`oq1gE66wfBj`RRIhPRe)%<6`>YqN^QQvEwR~z_ZskkqpR+oq{lxVC1;yGZ@ zQ3z-v0r8MgOWe<=b~uK@Nkbm^%RBwsg3@d?!TSXC!1Oi^)= z-{L;32dN8!qlKVA97Vi_@@RSbKHK6lp%)CnLJ!HtYIV4+rC3Yv!BW)b^j$gxwqExq zgz1!AK><#J>$VnhQImhLDz49R&Rb0m;Rq6%7hI;r)n1y*Dj6C&>7Y}ap>*;z0i}Y_VUG_xq^64 zsb7Kkvp8!SdU~PMW#RZ*gOJ=<_3OU)pU|E|&nRY5sn*aqRg3t9K%7)-XuJwQJ;zD4 zhMtvx;?Orvsx>sL2-eFH$PA$t6H_5_Lb1m9G6IsM+y_uyGoduj!YS3{_9pb=^vAKDWqAV)VGe#f^_I~7i*bAb&^c# zMOJ9y)T@xV!sQ~hv@aoNQa4z2UP{q!gN5lbHtR!^H+O`ZXT0IhzKXn0Y1$8cI0EUY zd^-s(T?BzsJMBTF1Ou`@SP(``LCjbFcod7cunR(qiZc=E)wg<*#m#`)da=r7b6KJ3 zvv9youwlRg`~(+UN4Q>Rw8HX7AQg<37(^w-`Z+At&lMKye;3carBFCDAVnSPU&W#9 zlugB~xF6$hAg$9oXK<#u^MBxSDy>V?!#JFLrB^QeU5V8!rPUua0%w}{uY@%VzFr2V zAvg_xa|KI0!CsZ_l!VWxw8l7=85JyqHAn8?;$++{3wFiH#k|1`yn4+S42@%-PtU|* z%nJ6!>MuIjwHN$nrL`V504}FmT|!d9i|^X-pEZ65`_H=Xa0L8kt($@iVZouF;X9YX z;RXEgpH+Cc4gXn(3;E$ci%(t022Y?5#08tC;TBb}2~v+24^nF&>5)uED#Vq%Z72I|l|KPu9tJa22IFpg~ z7|lQhG#COG_-P&G6XY--4TkmVZKZXh!Fk!5_`4Bv(>f5>8%4`sRl`;-_JkWq>q?7% zv8+D){gJ4&K2#Au`u4EW`VzFY`u4NZ`Vkw4z9X%)$BDar-|kjgf8rj|x2KghfZq1w z326?bI+6H#ZRHr)_d%47=f3!MR@z|ti>V{|c?jL+=fPImP;o5WS9BjHy7!B~K33Xr zQPh$z5TuQucacG4sv-NEOdBc5`-}VF;?c$R5r=%(9SM)pA&3=~M4ZF4ZnTi| z{wgvSEl*ZA1$0+{3Jfd(2{#0b!SFnk_5xM=6^`5@t0Ml3^erH0k)Jn1(q5wd^3$K6 zZ*HW$On=GGsQl%y)J>a2QD>Q)FaPXX_&J%1%g;c5-WyJvN@?=5aQ@i`fxbc=>yd9q5<9V|l97Ks_2>4xhaG9Bwf;VyU40K4==R1vvYzQ^A z%#8w`G2ok+@H+}^5-{S3TL@MEG2mta6AbvrO#^-_V08n&;v-k=76CgMuw#A$ZWZuJ z1O8FifZq!^%Yc>Q47g3e&kguZaRY7_aJK;`q1QY4{6WAA2Ar8-z#RhSJ?a+18>I}m zQ@}C?99hPIy9BIlz^L*D+$~^t1D>d2z&!$vGvFiD47gXoIR+esD^*TbeiCrC0reFi zX$c1e{KYdYmUW~mKr=8l3`v=^&@GTclJh8H8YQw0@ zeC~Z0Qzj2L3)m{3tsAd5hqf?5a_11(RczYjvCr$hp<}KDXeGnJl?ibgyJN7hY@?@L zJB%Q@|F|PmzXVA8dslUYCz)`y*`M~$iL+XfhKxD6KlUkfxbc^*U+@iZvB2YPrQr8r z{*`vK8wPYXhBP$?;k9BIUT%H6-m=&r(kD3xuVU7gcKg&F%VMKQJ97}mE`<(v%08;E zUj5+`uwN06$zB?c&^`@U@_xk5f5K5-DVRarYtyj)gLZ5kDJch|?{vubQ6KCQ@I-=| z=V0upi9Fc!$2on$bCAn`3Lj!?Ak9w?=tPLrhNrU8X9!+IFOIf!HvJyvCE|A5yu4tzhT#yG@DM9Tj!gCo+A)PZ|7Rf{~jsDsSfE^ZS z6C!h(ERuO)ReGfyWR_u6`gK51oCk)1OAAxtyV?d)uurmZ7X*!B>SeDEI>Xfl~#u~qoM^|=>_>6Xxem| zg3CN&G7q?*n!hQBP-!!%5{!~CZrsJFLHDmg>I-Qz*7ZIrfyuHi4>OZ|oO%o#Vx@gZ zUB@aZKB~z)RWdSKR9Dl{kBQAOuD%#CvRu{h=Nf*&z^s&7ekW6nb2j{Mei4{Q+Jws0nYZ{|h|#=IOtLBF1(+m*OPOaUlOeAPb1~ z|AN20c`=|QNd3n8|K?C$69`$=I(7*WAYyoVpb#zVAqU}=fVWv;LWBUmjS*p8UF~%t!jPst4K*=`BiI7 zAB(~+j5MOK@|-s_u31nn2!pmV{wA;wtkb4dIJWq7_v(eXQyhTd7Q*3 zmLgA15&|}spy>vbBy`Ls0)A#dNk)TB1>9l4_gQl_wW->y9JXCP<8&|HMJP#ESgGdH z6Z4;Ql+w$t6p|wAu)BngUe;wmbPX=fjxX)>DbcmPSiv5^I&C|mv2I?BZy;9fas=19 zM5X6kOnj6=un@W~!aj`<78nBGqI3w|o=me8VUrTy693=}}aLYj!gE|+3W;=u=Ly)DUCJcUb zvM$MHh9LG{6Na?IXd$&Z)I&g@b;@DrF4%7&ylx2Mu0Tr|cHC)9%MC#mh?+2bSr08? zuOZ07R1-$DouZYzY6v`#I691s7_24S2aBV-XGxeD>`_XaeDZ5-tB8^sJjNglaXR=3 zyaO5Qe;PI{*58l=c(*Fn&%q&oM-Jc_UR)~n4gKjMUcUC~X{CqR>4&lpjHGAv=T*k* zU`ET6RgxsUn*93Q4VRHZ9h}jO>cZG<7_#tICLp~=0B?4Nvgp6=BB<3(dfl>NjJMHv zjiAyEFc~GouUgXUH^jXvZrAiM6GpKdV0?rjy}>)F`UFGW99YBmYU;Q1eO=5s?89ey z(wnsVM=wI2cL@;83zYPxukO%e`8FL&^Y-szXPRGnXl=Y?sGv1 zS9l!(U{7mx4ntIE4C_Bjxou(vqxS8+u-T# zW}HG{)O90f1KTej1F&CqP!&L!##Kk@J!az#61|w60fpO*g6s~@prK0QAKXQduiB<} zI)KTX;9D5?D3?Nf^e?@0#{srAmTT+uT>>+`iCMuH$3cSC>+zme zcp}$?vMwAaT^8;<*ZuN-jV&-3+SMPB zS#KI92oi6-7vmRF;rcVtF$6p0#YWCSyauaoXzaQdd#nNCHJrUrV}|*M3pDC1C0U2r42dDIxCLxneK~S}>q1M-mX-^V^9VqY_DgkBpO>@X@^DS1I z5_OV;J5bvjFho^T*1s((3h`&e=_9o0fN za}*Y+!w{@dC2C0ra-#C4M7Z<$avHAzToqJcV?N1|5V~B&{7wXPHw5iF<7XU44tM(! z#}1@dO=W_#KhxkGWeWX_EO!3`7EGwC{wp<1dC~mBJ=>l~ll;xlYCeUWxqnbHBXHR$ z+>rE6u-)-Hrgqk@BN0vb8eqY;q)31ji z$j-AeOyT|)pV7H`J_msfQ+Pn9S-L|l%t2sxzu|$m(lz1R90c~|8y>XirY4-qK^WB( z#WnatrxK$6cFRF4$-aKWL-Nqm4Tua>Tl|x?mnd4CTB; zHw?i?K3YTLPrA5n7h*<6@eZ9-_B)JorIattokO0kPv+&H)`}J<( zZw};%AEvDZq2#zZE747J!F2!cQ`$!r`t2tOcoF-O z%D`wN0rOl9qy*kGi|d2e!T#_Jep}FMV9()Jcq_+MW|*@;?>gfJloL3;PHDywv^-^)Re-o3mC_N_(2<{Sj+-Jk!6a3P$`L6F|PqQVB9L?oK3 z&Zgv|5}kV#Jz(WGnB2-XudEg>=!kb8&C)UQ2)I6rW?9OYp8g zc-4@+4JG`|`c~*7Z?ayhi=k;-np$H zoU2pe=&_f;O5ly`xGuf$g|6@ceualu*x}N23vE($ScbxfwxJPInOl%5Pw21`epr6h zcEbbu-J*cM2sj`+7~t{^L}JnB$oN%g6AewjW$ere|8@d~hCXmXcV~wEfP{~1+GSb0 zS+%V$BOuYWkvR4*Y_c?g<4oAkRJ38Sw8w9JqT7#!vT?B=FfR$8{1$uXGXBMRvC-qv zC{C>#=(GVZ)_*o?;B@=9$l}aVD=+q+S%`P$y+&m5#sm%VV%u=~AdF*Q`nw}j42G9c zJpBI=y#ZQ($l+2_s*J<5fCs2^O<+&yTLVh-4b#L!$i?}#SfA4|14^-n=>*5TunHHv z3CC3&v9f1^0b(=2i?3h`LGcFED;lwAmsUq$%u@*X zfV7hfy>H~l`KRzdA6B##p_Cy=38qjnyrBsHd+oSRqJ~RAO&UpMZfIT&JpiSpx0 zigXP>x%rpAlR;vDeUz`4W|Yps5DRS6(Fb)Z^>Q%81p8^y$GQVPo`WGaI2Y|2s8gA8 z7bA-%;FGT5NE*BddlQQpRUJTDN(N0WhF%p#Lk4N1x5bTbwWm2V0Op~-*z=M~Zck(I zY9ySO4nM6!GSq}EKb3|%9^vGJ`SaLxO(;OcFjNVlyi1VQj89GBn0h!srCR8QP@f6X zS2CzbE?@;IZyO!C7h}@E+S8$Vz=GI7@~LX9Czs5^rKs>UerckOEKKxtL`vY-i4|Wd zigj*Ge?CazT;JP-@Oxd~TZnKr-ckSc`rZrtQsp{m(eh-KRM+~RlwXBmi&S_(&U9qI zzE{abwJlculyH47;U}LpnFY6YDN2BIeQ!ZKfWr*PWW3kX*Y_F(bUT>NjA<-LMR%_6 z^}!`5X|OAD5Y+X(p6R+@?RE+J&3(+|SK%&~&bVnKTwULr_yN)(zmsG1Uv+(N8)nav zSUh8*4dSTldtdy9_L%O*ad!07^}SE)>WCfOh)y=t^}Q-1bv8!11ap1w%225Dnk(A9 zzSp88vUU+R`7<|?nvf~SM7X|}2R;jgvFF~5!?e1cKHzcHm9J#D*Z0~tKp_>%g#)5F(IRh9u)eR>w8fhfHpO#G#&T)UdANoKG2}7DdOtud*>2Sps#sQnHMRFzP|TY zKTww6o1(ApecKfp?9NU>^U~M%Mt0Qmrpq1%C*fY-JNS#Pxgrs!1QbJG-Z-v z^}WXz`>X@7G}N0J%G|iu_pW20+r!`lH#%hN>wCSo`V=_NfbR9Zr431mU1!9)*Y_UG zO)BO=6VtuE_iLgCuX{m#eXmtdEw(u3INAuZ_RdRmxtzC)w$-y#>eaK;puE1m_j6fW zG5Ta@1X!9=enn~GGrCni&opIbl;<^E-;156YiYh0)YtdMEw$8ft*_h!AXZ=Bd*@G7 z3#y$Cd1LD9dvDjncftFh(AhtmTO<1VUc1rS&=f%#YK7eEdk?jReW<{Isz>+w-h*|~ zGV2<^y}lRwsW$5UTyaiO>g#(QdTVny`7VZgeXr^POP#1$=3$71P+d=7-y3>L_pZI! zX($z8yzTq4re@s8&QKaFbShh4-@EUku9a83G4=Jm3*~jKEHN?N>wET56#ga?%e}srhL-nVOr7*TyVfy-B!=|`4#;et)z;x}p z*Y`?b)xHUIn?^Az-N$3%-RpZ-TJkl!nb|q!`rfCl7+&ha=K9``n_2iy7YSs)zW4Yt zhA$hKl~FC*y}sA3y$wzf6HKiibIkRU*yvyiQLmbs=BLs?*C#eV?ylS#^gaoM*FMHxvUXu`e#9 zeK>iLS}55xfW~0Sn!0!;_c27XsWp}J<0{-|Nh`?OB}IPg`sb^~n8!FdF}|ICc@oD4voL8s2K8={d(xBkfmRmy4x zox0^ioM{rm^&AAbQuy5?SdhrPpb%cmYVj%ZRgBba&tTysk&_Ij-Z-cJaJvjts>|W3 z9Mvp3b;lprES5Muym5FIow~DIeVEztZXE9{I(65DNNu6!yAhp29F47w)ZPCng{*&d zS8U}4BXupcY7Bk$yC{mNNpBR<3}314dPx1p1(nBc_$%rRt(N-^KBfnWSgc1>b{q!J zic-t^+F}n-GL^{;sRPBxr2f6e;PR!NUYD#TNl>ASVTk$DjOO>7{mf0nCh@*%{6#%kRNcqkSiFOi{-COH7kWa*`58Zr^t7 zd5EAw1+(WWgSunxof>c7kJo9Jxy9kz)lTEcp!cx~PpxS0o2bFYIlwG?eG;jdgI&$^YOL?u3cB6y%E91iXzB>6|00ga zqNCG!W~f%GrlF}L>5o?}>n#TJ1U)(9X=v&bGz3R21WYubnrWtvqD#1LEn;gisKjdU zDf;|DEw-D9sivW+Pt&nCNQr&M3-atSb-VA@E0z*F&lMZsWKbrO;}@w?Ku^5ad84zN zyVS>h{t7z!Zzj5KHp1xayMy6EGDU@)96LqY<}0Ys)A!^It$acb#_YZ*nCI*g6LpcY zL#*s=N*GVtU*Ybxq|zscj0xDzNS$FH+Nw33m_vpzCfVJ3+DgWf95Q&$o|@!KUZC~( zF}n<>iFIuST1#Kv3YzxMy=h&rIgmQkx23G5%y%rtCY>uW|7!M>I+r%W2220P5oxC% zr~y3nqOWpk9{gIkaWQ_jO+lqRH59q+ER{P@U9R3p{JNXRP7K1Tr*ldHm#E5x_x~X!flr*5uR0j} z{~??BvP~ax4i$=|QphJR4u+zLFX#5{WrcFnj$vqob!{Mb56RVJxDDl_lP{CSG&n#9 zP2EXtMfW|9ORfcJ3l77m;kgxcf$0hb>AlaKpd>mz0=I^X(OyKSnTQ=NPZ%5ph*7}j zE)bBLLrHXuqs7YQMB3w`*#_oNQ{VlV^&Vu&S6zw{pcdGn2PvZ#&_ee)=?0jshu6?^ z_P+b{@LGi#zq2G2U!AQEm7=eA>fx?!4hD~}p+q{^Nq5^3E&~bh#!#p%&915&)-*53 zzOX|N)0P+=^AiKAjhj#t`$Np8X*&Z_V9v%(DmGt3<*9TER6XIM*ic}XR-q&sIuirO zZ3AE%0SCoG$rO81XC(H1C##6X<94Vb9qEgKyD9@JG42aoN|{J3g*xDBzx0j{Zd9j~ z`J`DW%Qrb5%8qd3BPtKhp@5xKOb^a8UC=Q~JUE9EZM%`)URjlc!Gm+Cul?75bR``$ z$xH80LvQF^UkJM>GC1Ef4A0;kTIAc0nWQihiaNQMKI16ELvN_FuPpYPWyGv)Xr942 z)X#SVi)mpD$j)#q6A!(iqrOhv^rG<0P^4*df9jS3qAgx%>mBvZCI+od?sK#Jv8AxB+N077_l1MOD|Q_VsD$6YH$wiqtNeo5y~-Rap^>r z3DV@jITW@tvHTUWnGEU<2QnCv<3qIJY5o4@F>iDpdPCjp7t5iQv+So$bY0uRXl++P zhmzFacB4B*%7b&LgI%hJ&h~~J3?39imwYd@)JmSpo{H1-cu)-a?X0a@nF6tHURW82 z#)D$$5nsyva9hI$FWJz<_NqZKbcUY8NdoEijhP|FQ7>CVwS4(-)W@biZd^SmhSGfJ z#p}$AE)w9O2Hz^-K`}JQUUP!1lStR5Ph7E56oKd!!aE!UFUEHRC-Bsm^ScpM2Mk5# z<{V%-NO)sIWc(IAq|X5p_j zcEyW5-QRCTRO_CuTWtWV4p-*>EMV0W>S@#bh{3|-|IM-@YSerQqey)Y7roWs6Q&`U z;YHN!-X6xjcMfnS)?pEk4#)8;dd3Cuf~DwCluPZ?J0NkP8*cI+SiooOG_B4rFrT!= z(0KNu7%9{kA|mQ_$1GW{x1DB|6jMMh6sOS9IJiNnA05_&+^Dkbgg9s((Xd~8viNuu zm12UbrWASw-6EpVpOvtO#aIn5##>+!O=>-0Thkcp?qW{L>@PH;>HXMF5yFHV1b=f7 zn%x=TQ-t>nfv;HNH2#7F=-&Jy-nWSaUG4&+@ooh_f$#0bt(}5zi9~GUi_p>>uQ0`J zj#t$$ZjMZh_+b|7o4*9|DNmLT-yy%sx#21w8r&&hBLlL~fT*I|>h6Bk^^n|`S#voN zr>*`t3o{UDtIvBeX{&o~Kc=yHUQF8RzD;=B#fi{bFD7mEr{79qNzB;K2GebIf3t>2 z{VIox-bzv3R)2oxXSAna$-6;ms|Pya+$WWDL8lQOTAhKEn!Dj5QT_3@)x!sH9)N}$ z8k>l0ZS~j1&*FD&;d3C#>aw*hIZrv}3U zOAnqJX0Uob9D<=|?*db3SvAZgYUXdE zrOq`{E7LHjQfn!;GQ{kxa^phDVbG=a)q@(^W1tlA%a>92AST&ga*nRJSU_APq!8C~ zM!iRh`V^rE%2_L{30%t=4Q{<sWk zLR*mVgYxUP8?H)1gNFnx`H&OI^l3B{sh(eokHyTMZA=EUwn#(Kjp(<~E4mT2Gnh1@ zBh_oDSA@Cji>;$RiKcXwx ziqORnICm&MHU}B!Ha3MR<0Qu4MW{l2-#z1c-H&|gy1Oo0G=Xg-Hq)u{D@`Oep;hFL)sjlgLM!pIUv zWy9dcYV3yU&#K-tt9P5D$GK+APv2ff1*eE zo@1=cM$;TM$`~k2jfdi+)=e58L))y);Zjnn@HE);RxPy6J_d9P5AEPGR^ge=7yM4j ziNMRQXeB}uS|n7}gij2?hzZmA5)jkMg4w5SCLys}VY&~-B(wFkv*>WAbAYv1Afy&NwDWsfOXEZkhqI!*5_R+w<~OW;1P>FD)P-zGSM12lC9v zKEY<25WFDT_EX>|u)~D7VQ`8T$lS|*WC{+tjF)7Y`bleS+J&BBR0S$I#lX z3exlg#8#2pK7ON)o!{K}SytwO>f8{Iu|o2M#xLOqFcMI1JnUxv{uX9sQY@2LKpjudIohC} zPr0^Om<>WskL|0Dy>}>08@v$roD(nL6{MKcLtcn`&dFJ&G<3}ianCtj8pl>8RzWP$ zT{XDpoGJK*o>M;Jg}CSZv0$B!RW}=io^x($1s$uqfl}nVdYKpIOwc39GX@J&O}xm+ zy!bmdbLcG&mts{VokE>{L6f}{jpey$xzZc);C2-BU+dmMTi=@_;#{=h%qv@4=!jR{ zhyihCltNW;Pcrk`N9!$BO$8rz^PfULj)mmwJF)zgDlG5Cw*83e`*(Q?SyRx!sHKaE z-~f+TsASRm=5M8SIgQB90^!nrh`D|K|1tIz@KGFJ{PXtiB0$Jx4{L%10>z1+rQi}Y)Z+7o?H|hWP|MU5<*_-!$Z{Ez# zy!U2yc4j;#==pihHUL~ugxb>Bd^|Q7#BEH}szo{_k4D6iK1Wb#=M5^eYBd+DSsR5) z;oBHlh`)^-q!1lpqdsVl5|Oirw+c+{)uY)P2hGE?KWbhOnlwp6l@`aJ z%5(h|h>ObBPP0n=N!RtG9ZXq>QjY5xj3q_9xiI(dlsW?p5v4yBs^&1Zoi%etoO` zvfJ9D4>@*ezi{*rx{YJE_A7%eoLGn>?kxNKo)8)=?}VQ2k-uj6(xnB~%&?A#mxymt zA>>eAM;8^ogTFv=j_C z9aZjNL@N1Km}&RE1z*){m?GonLq8fc4l^C~?|XguMKfiva5VT13#z5OzYL0-hJAx_ zH=ME^jn0WTwc4}MD$GqC5PdotJwf13Mbi*Jy#UU}NqDnGRnrjtu#m>lguVi?V;Ull zj~q=S6^I?1hRC6w z-lz2#@sguUHY~fKOKFJx;i(*5^TeTuZ_*I|K~r;doA(Y4Dszd{Vh3T8-_iZtU2v8( zhiRd@+9oX*}2>p3-^y%pTsE58YR(d!v?RiRWO@tPLItCm% zuA_<=D81z2D6?Zw&~;QxO(q(T!mEWu4Bqo8wCHLebas&)S|pG71%;Sv5PgL(>4H8Q z=qDVb3U&ncprMEF%U;trzHZvi&w0!_Os&(?|CiiKXq%4lQ87?3tdy@7{#$M$BswN+ zZVeqOF*a3kP5PFk;^-@mi7j90Hfo?D`@hPk?X%&Sy#0f|9od&YJnS-0`8lQ(NziTR zW;2ba{2WuOwbt$0F@vT}`8lR3Hq^tPoNnlgkbKC2(ik}9?vEv@8?3!!*8AUdK)W;m-uJ;VyEz*8HFiDYj4X5s z!xPZ3=Cp|?4X`>5fZujH=Diu{b^S&b+_t=HsU&Lt1H3zx?*D~>@;wApuS6|qgRj~o zDhK?0>ds&hxbPo@YZ6-CfU@FV6u&fbELwze*mBJ^R@O{*nq%h8|Rfgr(d2dBm({3v^5Y9vY6<{mY3Eo2gmBCh=SdK$c?(p;cyew)^ z-eKi}B-k`UUmrmmZOKVi9b(rYb5cQMc&bAj8swk>`LDoG2m5K@8wOamtynqaas(*L z59?L)fe{Y}KySRjlp#={@}alh7{Ve=L>U96Q_jIT$;TgMCd!~Bz48aX%afb?)i)Dm zgcPJK#OeoDnfe&SI4wlVsBCMX6Q>zOoCMAeJy_X@PAoY$n29n-aw^y7>YPUmVjM?8 zs`6r~&Uf2PLMY@?TA$PhU>^;VM~j6rDOJ{^K61dlXwOj_M|iYgD6{hU22kB;s4^PL zqI|=~v~e1$42QBRXJ*0T3`|3n@lZA;5}ysw>@-vv5PhQ5Tms48q@u=>j84Lo93`=q zipNi<7~y@QGCawyyy&72t{$6-GCs+nbcxaj+365I_&8;Nl2iEv^U+dlelt-80s4_JARQVEKg#Iw7+;FgbMaD+?l}5E8`Ar(C42}vY_YurcmKdMTIk56TMR9G2=R!Y6nP-TErM7g>N)TwExGD0enMU zL!@HLVLPZt(@jV zSaBIJl~+dLp))t#FcW3Ol%(v*rO$(XFo+)cM&D6EQ5CfF>~WUrK#^q3R8c90g)9`4 zhAM-mO3LcVsGUXzRXRC*nZ!|36{Qi@SI80$VT4wHa$oFNEo`c)jKkcDL@Y{!ka1Hr zrScMdEYA+>2O}3$PH5Hb>~tB94PA-1ML z$WW-B(h92+rHr#_5Hc33uY~W?HGP!^!CM78nkcgZ^ms}|G^G21&*X6CiTQOL%Q1f8D;?0rkEfBp)xi)vwJG6W5S~A zSb(GUxq;THo;<1uMa_+2l%Kk!n82YU3T8NRs{Jsh8LkFn(r%wn+ast*ks zZ7MvODXy3xlR@ukPs=)SYdj zPcm{`gSR20WY6Fy7>LvHG>j8-gK@}# z-}Sw^{xma=LzLzjX2ZG!awPgHK-M3&A4~z`@DD@ueJ*k{Kr5b`_7%bybz}yNILVWS zar$7WlRR&+o?{a;Y~0Nj?0-#SM|7=aSfJEdcJ6lE=BhZMm@(mIlwr+5oV)hjt*3zuZ-zVf;J)d zLgbi-(`5(nK8{-_Aa!D2nJOXu8Zgdofi6M$IbEv+y(}j&c=XJfj)y60ue`xnl1^eS&@*p5 zR_jau(bAx~X>)h*Ef^9Gp~KP$z0n%Pgc};=9+?i)(KlEQ&6Fq!1FY|>)0Ia%O zR`1%=(f~$c0Owgf5t{(=CXlox6~IlOoP~rn-Lb})er2Mmsk-R|*3Ns@{_z6D2Wf~w zSwUQ%ZXA^Muju2frj@%gJd@|^Yb{YJ1q~uUe5c+5rs4IYXG6)ZifF*)uD~d7xqHD7 zdN%IGI|Etn4nCTfxoj;kZz|GG?|kFa01Cq}c{aDkT=mVo(0*+yfSWGeLl#>e&qLNf zGttyK-E=D&;X5C10s92U!9Ywxjnd zFh+5@DND@h)Pur1JKFWmUC&@FNhdHV;Q98xqE|;RGp!k3n|O9#M!+VG`(!ii0UQ4B zF9&1gE!;6}^wFHU2ku)JMfu?uY?>nL`G^kyqmdq~4?I8i>!tU?2R@pY`Exe_`)7n< zg)>WcRL1x~uZ0~>$UV?xqrQz%ZjgM>c5o3WbpNoaj zl761)vOL;Xnw}H4UV!Z}XDOc?)Zx!PJSQK#)XNfxaKKki-UP^VI_bSWO;pH7^VT1) zdGMSmja9?4BC4eU@J2(Pv&k42N#~0OASY5T^xh2e`MSF#l(NOKT7t;WQ^veeZJ}CN1=x`hUiOtYNzCSZ{qso3P_jJ zP1hT7HiWZU6_%o*SXb}4avo+u8X`CCSpe+S0s*iP35=5mGR0Dlp-2v*jL&rO%|X-a zR6EzelZ}eOTQy^&p+5+O(!&9Z;Il2V*L{wSe&WaS!95|1k)1t$X3ftLG5?NYim394 zmp?g&2}-rd9IRkhyWwhAT?lj>>TN_1e(Go63E{6UXp1G2>ZJR8cwg(s3J&kvwwrKx zUyUzAm zETy(6jW?)jqhy;XqgK0(FYVNFwa`J-Q)h6PhFZTZ_UTt`V=zuuYr(p?)rPYa5v!hs z&T;CsQ+Sjp7m0ZF3Ep5~6w>z(MeG;q)+&m?5rlvIEd-7rd^;K+_X~9}-dExX!WBJ< zk09(i0nJ{htsoCa5U%Vm_y|JRPYNGFxTt`Qk03mS{&8HW>2_e@uTam_zw5$XsG3jYvl-QG5F2?rp4qln8w&4);tap`M(N z17d~xeRC2IF}iz*<2JB#sk$N_3-ufL#3w?Xg|a^t>YCXYh~Fj^g=xXSMo-v3jz5@sDG}*nJ_|~hi>w(P_tob z^PNz~Zc)U0p(fzdhFThf72hRoVl1go z>)XUQQs>kn@dc?J+t|c-Qtu5XkwR)N7={U?j!00%L{iz|Pa^dc+UR6b>!Wi_A$4A6 zo0y7|rO^SVkvbGDcRHyb&I>Vv)SIJiVkYuK|Naubv$dE-YC#x**`)5n(0dN4ZxC$G zCG~m(Ma(00D(wG!Qd71oVgaf7VM`X0x*x4=5vi|X2NqLQ)h_+T5>l6782A;b%Mf=j zrKk!6+lytSE_jSX#7TXSAL~C+t`0nXpk6tKEe%PXc~Xegq;^G(uOW3k{;VbS`-)he zP3rJQLaZmX@dkYVM(W6yLTn(FFk7&Z)b^MX+C*xYQxTguTHq`owdzaE!Kl2x&QD#IA1R{9lsuSCi621;4Iz6wOd*a$ z{f1@#)Z7Ny`$Jgv>#CTGQ6Iw8I@G}{nEMjky1)9%ESyWKmfyWo_wWP4{LJb!=$l0? zgN2G&)hH~m%BKFCuexA`0{3v~B)f-(Rcvq%?O<98s4W|@duU(C2KV5Hkx^ll z5Mvfm)1x+us;By~d-!DlyN9c2cb}ZNFQ4-+vV=23H@-NdV}Hw$(Tf1$_i z7iyu?g5ASHjOpPXE}-_|9=hcsb`Ra)X5b!D_@%5+3xrAcQ0Aj_53m0~`xNQ}{DFJe zwM4pyfh91-i*sjDe{c`0=AwPV@L^67?jdD5v3vLnodoXTpZ?fQ3tkCM5bmLOH`yYu zw^rCa^oDbSdvLY0v3saq47*bS8G#*1g<2Zw!ae-4OuB~;s&o&B*Au&k+JQE958F;F z>>hH#!rl<-v{TYOl)Xjl9(JKu!9Bdfq$=D)ma_`GhbEUvx`&&@?%@O6Cfq}|ywW{< z36Bl;PzO`N>>hRsb`N&62DpdVUV`02XJiZakUNuf4~6ju?xABazEl-za$^Da5LLZ( zPw5`|Vn0VXr_2hwhgoKfB0`0G=$TQvhYO&=J^T|a-NU{R8{C812(<+F zuymSq4@2PaMv+?lwR8`sVSeErwni%K9)8B)9PS}qgpJ+9xD3)gEQ9-ldpL*Y1^3W% z56*BVb>+ACE({K#r*sdm5oN(WG=-6ad-xeo8t&m1!Y8F#>VpY*mj}a%J^}x*FO&2ShYw5tP#<5c!9Qf`WMlu(^Mmvc@1vxD z*!mRT_kbN^HTZ`raK7*lW4~tNd`=L^4glDAwz8PPOle#-z`iGv)q<<&^`vm_m6s{Ql zp~)-hA8tR9{=xq*gl9;EEroyRf}z-PxH^~-_=m^nT<{O?(nd=J7i_%Q^t@DGcYN&k=nGY$Vhqe=Wu>SR>U1%wma|44NpF8hPjS6?aO5}aEU z`X8z35s+O$P%=poSK*-1wXdPd;d-v4vJjWuAocA+5;x(>F;>4t>R#C3+c;IPhfUl8 zq%Qg&LI=?9L6@I|_!A!X5yCS(hw7OBLBTLGeu!8D5Bw3SQF(3RF{yJ$E8+>MwNn)F zl+@OCglDA2!puG=wF3UU03V#zU+~4~w=YSp2Vt*B-IW9384@w-KsZ!n8XTZKeu&b9 zy;6zE?3E}C(-825=*0H;VagDu+?JFoC^)IhZ^0LeB00b2vCeR17SrptWy<%k7oc>4 zE49auQMNNB5FH&dv#_Vzydmovjs ze^5^N$>kkEja@bo|55*`=-XbzJ8anzRdgC4;{9xQAgNO?5$|tf$s&^-Z8Uz|XoOm; z#-d16iNz{ddXLSUo`DoIE*J+oCmonlcdP_yp_tCJn+d1tplF48TL=>?tz_QNiaJ zi+5ee2Ve{|Q|a|c2+osAnu#~ybK}2M1`daDU}7yZar0Gh&Qcon*N4O1%*5o~AkI<@t1-bG4cH6T<8Gc}kuh`b^6~GqDLwL;M0|Jo?2dJVJWvBWhC! zeEO<3JB(MQu+H%dm1!tu7Jp#F(D}7ur^WJluJMbMpU3M9b}Ri4EFbL}zgT(O32upX z==(pge9CM566M(wMLXv8tN(%J17G96QjV`hk3>VJWB&siga#D9RLM6>KfU$Ee_-)& zbMV7mrnJIF4~D}IG?vcCR2+y;y_@gi0#_q>Sa27*tg^&(a&;a!t<50Gs_GFKOZk*jq<9luE#+Gf$-6XSgQop(-C(J1V0O}jCIO}wfZz? zNHbrNxeDZry0?YMa<5kwz@SQv;tVW*{FoN|wX)`wo^v|`%RA$1-CnQC4ay13&Pb7y zQo-1GdbQlBB*S$`*fs+uchQ%Vd%CnuO8phOw2P@=W@($1O!swZ0z)IcrSrDmPBUza zk{jbZnQ8u1Fg?@t{m{0yDGmGSuqp;j7jzq*IsO|ZSE8;~*E9$Pb3gIh6<1}wW~Zb< z@KL?-JC*bc^xgQk8wfcWsAt88_Qrp!5PXn4t>Myt!}$2#_+3hymHLj{N()~Nn5D@~ zcPoz$>8GC*Oa;?xKxVo}8FfHEBI5J^hRIC7Qx;=VLhd0x@V{Zd1;7UEQvxwP7Y%nt zvwSc#gtnMYi{GylLfj>ZTg}8Hn9GPipp^Pt(TFF^#JF7`9#puWNzR96;@XUOLO&@9 z7^_KQKud3ZAkRrZfcUf03xhF9%x5O%Yyq){lmof-JQK~tmo5+wD{F`A4Xv|}sI3sz zADSOV%<)H*GjH@3H2uF}r7=Q^KdMAwy9U`Fzx{96*IfWRro>?kBVkwn8&(0aNc^u# zO@wdx`915uJ{XF834@&Y6G{T6D*qS?N0zOXsXo?>2l13L^|qct88dPJ�`^${4(R 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

    >y<}I|iua#NyFz!D@CxtOR)WgrneW-_i7@|Wx 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%0A%4T3?M6qKH-(T_QW19VM@NO;maHRA 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 z�Wmn+H_FE42DIPPeE^Ks_&##zroz$`xQBB)m^=LF=yvgDfgWJUSDWZ0Da>xS;X` zQ}904k_k(BNK+0dUMF0ef;!em!hOO+L+pYTQAOl30qYqs30O$(B+-nIg)!(M49CTb zrhOu`nT95wHZ{0Hz>f{M1WMG+!b$;m8j!Q#f~y4l&4AoPU2wI4)=zG^L);Tx@CyNp z7?8WB3w|kJngL}?ROfb$fUOP4BfyQhR>0u~jiwxfCqdrzY*{=14b7&F*gYK zg8{!sQ@dg}3V6|gD`O3~Nx-nfUL}Y>4_%ba0>&CppWv6a-y-0X1{D7dI_6dZ+Z*t_ zFGJe|9A&^eK5)B$^9-2noXPDD0lzR{K_B?7fIk}W_diX{odW)0z!7&0_?>_eSoAt0 zAhhwm0lycpqyZaR`ZHxgA3YhDNR|x?a2X1bE5-{F?@_B)7>>~o!H{i#$ zP0V8g_B3FF2-L0fl~=+qWGv(m}5uTMV z)-J4{sx`!h)6F`hu5+40{ovO)6qJyS`sRUUj0ufq`@#L#AW6th zY4z}x5QCrk!M2!g5^~U$ZEzFF;P-xTXL)2Of_7nF^aiFv`rQxy-5p>~staG7FWv!| zAFe*se=UGaner2~AFa+X3j!Bj}uPxva~8I0qEg7{bm?tS=e zUkN{W?G}m>Mafr5Eqo6}so@9T&yJ!Lp;qOT`jRK5P6n(>VhE95GT=-hV$)P5 zu?s8G%uWKwJB zfgzd19bZ@pb14y%k}w87z<7%CuSe=1&~~irEt`z_#4O9sqQOD7a6pPk8 zAm&NO99>QvH$XobF}X3vC=IXH@IMCTOgYQ%a`fak$jMrY#{S?=ZZ#((yaeWzY*dh! zQ>nqnPht;`AG=n@Q>Y;S5ra1>SQ^h=+5DGK#CQ_Vk8={8IFSD!kOf2qo8oWR(fH#? zkoJuV_T$jkI8(*MM1iu^Hi1%P=nz%5MwhnoS!i_4uY;;=P5#Uo3n|%YDqD*i z4A(zIvuZ9|dlcqnzRRH@6Y_op=WlON;PP-Q!u!q<5c?=KH?+{rp$ znwIUj6b6S73cwc8b;Vv;kg`bV^n9vv2o(*1o6{w9p5hYP7=pNM(-OM8T~SLIWeB|4 z=t}6i+$Ah9gf%`ww_n{PzA*&ue6ED(#>s zAEDRRF5yW-2=`S~pYL5lXG6&2BlKJ1W^#fd$YM}eRR4J{VX+~|Qc@EJREI4qjkVnn zWWLvgfvun|gmBIfR>qo&8nh4dw-CZG+I4e_*9k3Q@L9JrJz)s4K-7dGE4ye3bqzrl zrkXIc<#e6N-i9F4r6vr^IzUU9W(d77&0vpGy4>@dv8^JR)EO+pgA5b#3h-lj2Qn&n z?Ii!*!~wip6&2**)Zl&&U<)ri1^b40X>yta_-p^v;1zykODz0}O&Cb2!FwFQ)>n8B zY%C%m63?-0afNrl9wP#ZasXRd7jUK8e59ez^98N2acT@*i@F|bt2yhRlz26GpJp(cs zw!n7u2pmqU2h)v*H5EONd>v&$PIUKhS`QrY5yF$12+rZOu9fsjk9HnGFKA+>&4M!+ z8ph#HiQU6#Q?dXUcw980A_tJ;chT**k z&)789FeDe=;k2W$(xqV*Wn$>VX;ZJ@(?$$)+G-f01-!#)7wc%oNsoan=)-B<%fUAx zNB_@&-r=;0&!B)sFJ`O*5$=3Eg2QQ(a)46(VHEFhTD70`5a`V`XAp5I-Oi#9r)}S( zX|o?r(}&ZVm(iZjR%N82NcwQvs&IWc?NBC$KAhHjnWeg6%+qydIKA3Coc33qfa<_t zfMpEm9ZvhKJ~?9RGUyH#xh^}BVz6A3nB7fG?{M0Q5*nP~2le5! z=6I(ixn1Uo4e@VxZ6Qa`_R;rsFbi|OcW0y_^ZIbw&m{v6<3>h?NOSA208JUAdu8ad zuLAVpv_kLdR*Lh3`f%FV&y=%^RgXcpUiIO$cc3M>*{O#=raqkZHueK#|LY}xOno@5 z6)Z@JxyZ!y4yVPo#Qd<{#PSZO#neX6JYWFta9W`idQ!jTiF2z`A5MF=yPgj7UvX=| zVR(nrDjtE0c&_X!hQR~F?bG^j+Mx4#bal)~LuKp3XsL(Au_rwS($|O6dUVuN^nYIZ0QKRteAvB^Rw;PZP1yzG z=xUs9l?n{Xu*S@*52poAqw*V@Sl;2Z)DZxB8NfT7HWBV5Wu|-Ci1QAo?Zp8oQR7R! zn2rMT4yP3vq8sEpFS^U%uLWZ2)63Xb5gC__3_aPhfrZ0qSzp!0!XtmU#dSM|Fd9+O zW?DvB!w{vCPWo`#lxw6;vYqfWGn`uS4yR4|(NgCa?Cl5j;k2uG7b{)rWq_f}prNky z;k0gJHTE83e>s>woYrCyZaLttxPdVX0}1i;;k5dV;O_?ZIvoS1b5qSdoK_?OFOfkH zPyjM$Psi{+C4%PSX$^DNnG2 zC47ziTIz*|^jn>#9BG}bp?7#-1~WKrITc)mKEiT;_b5($#|)0!^w~y$S+2W@hM0^m zKqTeQ1Cn%cgO+AAot}+G={5xF-5K}Y_|V9x7;xF7C4fh-;1aHk#}D>`n^ zCAPGLW+QI6ar{*Fbn#GBQN!*i!|T>#owZ7x=z)$uDtwLC9=Td&9c`nP#F9)5wu<6PS}mW} zdE3PdCvUREts-~4#?=p0!lbbli(a~97&857Mw7stNaZl>o1P42xS3&%6?cP97beAP zPD(N~Ny^b_arbCaE9Eer&B$;kQ~tm!F48*pp0*Z7Gff)FO-dNqtlc;YBT2oJQ4s2` zGi>j;!h!rFEyX_C=xdJw@WV#|mJ1x3qQN7Xz$$@_3FO55*8|=B6ad0?#rl93`iQu45ybmW@y|n zx-<)?))}1ZMMvsvhQ z`-pDp=2v85%bExIkK#N283fu7|Pi{?9`~tmjlU>H{k+?i3yCOQ~Zha!ypLY@l=IbSwRa?#5~kO4#W-oKnamI`sl|JQ`AB`9)lO#R0fzGCn|j z2BD99`WPQZp98^ps`zl?GmCw@srYP^ANHN6pD!H1d+xQ4NH<=XE0(1s6=cry2 z%GVob|8mi{gIx98ggUfB$~G zw*_^~N(OW`ZsHpTK7ut(tr(CBbGLO;mZOH_=<)K%>L3rr%7I_<$0yLBxfoYd4S;Qg zsYt9W6@rZ`U3`f@G1lAh<>*vTDDLfEEJtypmeP?}d3qKno+aveFREM1d{`~MiZ!h; zGOPY|GmG-Ga*huL@K)5>qKWZ9cT!^I9A6?3XrQ-OYGh)ta*ppAxc-`Mr0&dc8c9Zn zqk7}tvnpU0MU?Yo!|*BR_@&li%vQo!k&)qMhLv-Cd#faA<-Fg}^xP$kUe>=@Op8vv zlab-hOssn2Ph0Ie=|y9~yKbepNeSb)RV}Ml&S}i>mC8}h@k6cXaa#Yj_86#GR?hL0 zt>3@Y`geFH@O5j`XBwR6fo}d-|Hgk|CCt>gexG3|7wZ`zZaHfZBw~g7W?6Rsa$Za6gTIPO0?_CNd~x2gu4f{zuw|Qy&60 zHlU+_;}6h;#mW)e&xqCFL7G%fi=Ap>I?6fz5LGxyj@TuBkdk9E<- zZjgz=8(Hz!tclHZCWmB9#cf(vit)ifm7O{>Z#|sGN-@5SRX#s%+2#rFYeSQ{*HMb` z7wAQdb{Y0Zyc}tz7+=GR7{lt|h8I^W#rRa~N)1+uHq?%uxmeX`r5N8ou>Lo^>_@r* zs>Bpi6`^lF65eqe^-<9J7l)u6ozvHdss)DBtdu##a**)W`Y8B+6dPpyIL)v{vpq$} zpb6uHRyDl53D9D|jsj~%Ex$v&N36SejT#^c)Q6T+gWExi<-;X~^WyAxc)1ilt=DBl zS5>Yp_j}fqU3v~x<=Q#Ff_O#D#B!-S@j(k^$7C2OPgs6Rct!bD#tV1$!#T2Y&UBTl zoTaK(6?K@khvficJyI@hJJwp#6kYuopA##Wo@cYh#`&=q`UF+Es+}w8Uc11L9j*eb zT5(uJoB_Bl^3qGA;IB%Rd-ADC2tUN(l5a=(q|v|v0H5mI8k7C?OyFFs!^%}3f)C3m zJEl=x{xm8u2=!9)ci1ab&I>o?5ABaYCN!PA-9gx50>qLA})^?S7@b&#v~b1xlK^h^wkat;1W#2yx7Klm}; z0xQ?BMzMf8%Ggy8b5mw-808w}$99SkBGFlN&B+naL<%+mq4E8`xD=5klr;oCd4`vi z?-xhjoBV*?^6S?+s2A1dAPCR4obc+2_4-I0mqemKdg zy~(M`6S|{>?~z|$dg1O#RRQ-3__G07Xh^c6`|AE))wD{!$*gmnh}&0xd;=DU^wkh* z)Wf8&9=O*=V`co9^wmS#@V1K+p*ns{`sz==7R6U}jCD1b?yH9z(Y?YFJ8DvbpH7J>hU9u5&gcQ@f4Avubx6%D#o5t3uSy089v9h>Yzcrp_~`s%5vJ8)GZS8qEeIBlr=>gjbD_=1h}W71d8 zR>tn~b&mIzhq)iGfK6O|et}IY zQ{w@Hq*2Oj$gBGPLA3gx8B;{hsmx%th??j*IkURibmq-OT3HqQqfg~*sHK)IK_76wDJwZ zTIf7zP&yI%!V}=f^2yJ_$8rbJ7Y_5ub?FQLF-7Jy?hE&vUp%KVvHX$joZo(&nmnN| zNcd6tHPs7uYC?m@1pLH+EYzLTq6c9 z`FvOIYtR_nAt>p9-9jGVw}qPhnne@{)@NKSG7$^ap+)qnUxm(f(n+0;>C7HoX!XvDi8hO23FyTP2N9=BZ85OWkw>6leQu=mD*#Vgp00nKR6n9uSgGY*OR~pu{$x z;-tC|{2=;v7`k#SpCd0k7~hJ95)bm{HM#oVz+{+sxB|lMD+ze(WAE;Wg4%P=pts}G zMeh0`;#raVK7ON(-QV2#SytkaDclhUKt`lIq4P`lQTa973zs48jC0L6CX8g4`F5IJrE5%Nv1xL_JPP_`!Mo!891A;HIqjnQd&abblB_F=Sh@9mcIj8H@!R{zZ zNaZp>DCwC))vzndPy;{2Bj>k?cm*lbX%9cdBj?;3k7?*dKg1*F_s0)wqjI4i;*oP9 z*PGg=T#Bhg#r06))ddr@2Fd=2SLQT&3NJDe|2T=w z94f)#QmwA)Y4;1d?6t@QEws8n;?dox=Ghe;f_Tf9=KcSFm+{?0bBVk@(Ll>@ODJc)xm>2oABnf&|I; z-CrNq^`s)*0=vmyI}9=Ru1vxPJhx{tLlCW@=ac*2j|5nSL8n?oDOGi5A{?sPg-YvW zP_MUQUq)sdixP3amK0)wNkN2YMt}xmCKtvs!!UwyS1ivrS!f=XjkMFGrE?+^PF8AH z5;-}S36&WqjFNjHZZ?c>Un!h%R~3pJ;=}0^tZpd9P`n)Y#*VWsotT~W2!NN&FaC2Dd{b6WBGHM!dLNednlGonPUBE*LgR>zrQ^n2T6QQhF4d75{QB$*#G6Or)ux3;hM%4!x`jbhKQB4?q41?1)bF^PoCp}d@hc?kBF+YZLg?`H0CrQVeXup$)hf-WWTZ-Z z=Bqfp#WU6*Y4pM>!YM+D_9U4%Kc!PY}zKZ?T9T!ipvCcjYjF)|AT6wdIpr0Od1X1 zD(z4jZ``OyCh+gu5Zm$faDXpm0`FZyIXfjkf!r>708FH&CsC9xspGY&_6-xL z=uOnmpj=TXO8HD6Tc1fo-c3c!<_6@U;`Uo%44rxx(FYlZUhuL$NE&vzzy4tG4JJr? znh68*fv|?}*sWP>4NGUSD9W7lT+WlImZK&Oe=dYEa{c4T#b1V@qpK+7V%(T-QHbLC zyyAP&eR;tc&6ZUqjW5{)+(yiGa@%Mi3Y_r|wii}&J5M->t#ump|C3uAeKToNY9(ZF z$^TF8Q;?W6Wko0C;lTebH<1!BR+6T6xTWW)Kz=XJ4=Z0H@%z!F>8tPQuQZEze6#~^ z`6bOLQw>dy2Byk>jJN!fX4db7UdC8UgE?D%Nwcf~>R~8{XBa8GJ)QJQp(g>(&IBHu z1aNkbr6}pA2GrZLw_!&my;f+d?iPE!Bt!C1d?NMb*?!J{KWW0BnFuXLqjFwvcM}&Q zwnP%S3V4~*5=K`;ZOrXl6*n$2p?oF+zwJz#cV~pF`kCN#3GQ3&St?<@c@ghUMg5O4 zEUytzy~28{b3ZNXqld6E2%P`-VQsGOHB`>H%i@yeq-d#P^U2i#+BjRD) zi~v8DKh3Q<7Cw70(5$sFc+-Tv#iaHYTU)ZA!iG{(2mLb`NEiX-p?`%35_&>g=wA_m zvcz(dEGwRy>p15|o^WzOfPe$s_W)l^IE#Zy3sA0%f!A4bq)qi60ajD7$qK%1QduHa{pvNe=61 zZvD;kDL*I{Qci1rJG}zAXTU0siS&rI@)->lD&)(M*hrDqatvZFET#HEF_J>o$v1S& z76z=smXK{-e^etiY-|#!z0X@h3pP z&4h|Il+Rkllj(1nP%(${TR+ahj1!1@P_o!V1*{7AY=DYoLd76@)N1%PBv*X^O?Rx5 zLRR7OIOoLcr?$*+TU5-GDC>G}y|^0b2gN=qZ1qmni|o06Pz;o4>rw1Si`Z3uP%M-p zRuz1}E#N)_RwXgfido}#pr}_Fa4J!+lEg-fu}+*oVIpwAF(WEQT5)SRj*(EQOsH6C zvDU<`h+8KUDyGrn)@#rr)ZL)mad7BGY@-rZt0s{AQYKW4qbIBjFlOkzOsH5#C9Pcz zfo{r#ig{GZYFQV#I$=;83g)FCR8k-vQ{(fJNx_yO5JW5wDE?oCu|YmFoy7#SBFY5KF0|RdXov+0dY# z0AGGEgxOT8WF7kywK9syPL?ZSiVJ1@gBlQ9Db4D;36huo|0IjCly03*Kqe3U|0IjG zRMlF23fZuVW-hcZ&*_f2RL#1B6DHy@B9S9JP}LbCh`scb)fq=I<(*(-F9K$9F_@}b z<16VIuAd(ii>ZdSzKGrjn`*$S@_-9;@9ndA`rI(vI zd*8)~GmzY3&@<>2&q98rJYj!H!duI)=e%&|yp;yq2>4b;FtiuBccZrz#u~$5V-aR7 z-?WSOrrB9qE2xzjML=l6+hGdu>vK0WsK~Ih%-yp zL&qq};WFf$y_`hq6&t3KXPw#(4TAnjX(pn^UMb*W?L5qhoJQyWgXGs%Hbq&UHhUO4D)R8TDwk=>kx zw6BwG*t<-A`}`%mjNu8Tvx%KZJ1ZjgJHg?~!NwR2JG`@iExLoxTxhy@OvxYr+5wgFg#o#p+z~qquOE{?Dc=WLk;}cGS?&}#5EEhY z@^3InO1ZClm>W5z5h8zDrmG%&xiP0WkzGP*OialuI$^K+6Vx>&JwQmKW9N~?XIJJS z=_U+1<(7_=MrSHQ{O5b~A!h$fU^>TK)%q@CPBWk$5a$aa=IX1P^?+F7rHcXaLOE2} z7lS@P#BC;`?z@jQM~1)b5!8eGq=}eFd$1{xyyk+XtK+U8Ym3(=$?J~8V3YZ)Kxwxo zph+(B#Q*j2NYoNEE>-lfkk-IMp#PIMd^=kkHZ42?BIm&AgXE1v2kKEc+{4_+jVpt& zc{Ud6B7HUpZm;_SyIILw+AO!6OfC1~Lhi^i$kf&d|; zkjy&%A(%KCm33qSzW$NE)65rt=P;D)=ya^+Wq$7O#z&!FXbsWF%HSP|#G2xZ_2@5v zj%R;GcjCoftRxzRbM?u;9Ky8VOhmN)EpSgffj73an|b1=Hl6y9LU2xc4ElVu{XND~ z5&P{X0od}1FX3&MeFRIU7~9H%&#~;5cta3t-|dZ$NbIhkkb2xMUJ@T3+B0us@7w;W zils{01CeeiyC#mmmbSy0#P^ETY0;x)NBg}4_`(glG1z4qEJ){m|zYduDHg&IZrylc9OwnZ0Sw0DETdjoA+_*>A$6I1HEU6D;+! zve(|U)DdNm!J_b}vYQPGsAKR8zsiE!QTs7i62D+k)>f$#Xy+#_^{cWgA5-e2vbQ1n zDPVmTOzGh0#Ka{=Xb*27Pb`Z`ct|@ypTKGC@DTk$Q zC_5H)eN)*(p}cP?`wLXTZDnUItJGi0-UU^1N7?g1`CHk)e*`~W%AUugQrQJkN!?ZU zOP^WlKV?_L>xFx&V)GHb*j0VE$%>bcN4Aj~PxdExaquG9D^W`m$Sztwpk5;Tj}`$n zk?gsRNWDyUkIn%#iR|;ENlhlZ2quOpWRIz4si|Z?Gn~{kviG5nPA9ts2FDDt=j9Ek znQ%>k0Wgc~QRum^kbUovQnSfE{bE49iuCG{dW|a9?xg0BT@sVP>tt`j(t9r1cVKM3 zLH5aKEH#hpnVA3IBzy8|OT9&Q3Ctz)$=;0Kwt(#0ma z;4g;k(XEtPMt18@l=_(Lu{V|aglwupYB|~6uqE^<*@Z%uT0!;@OzNK@pUX*oj>2LM zvXbn!3zS+#_Gf6})nsq1r_>i@FCR(jOR^7Qwp>H@Idp=xWS`xn)Hay`{%Iqr zugKn-7*Jo6-5HbmH)PMML23ip1zIbrS z+)-)|*^jNW)LycWUANRes@QZyC$*m{HW)TQ{fI2Va5_MCp8NRh1Es}c^$^*Ya4_m8 zvX8g4crZ3_`oiw~9H`jXPlI+I zlp>3Lc)Y?CJ|BG|%>Je`zTU8xv=3kkuXmGxHiR9S)m~HrAu4W040cme#?bCcki8mH zA#RFT#j>}x3qbbfTrB%GJbDG~OPFf2*dyQP*vFvO!|ZS8;JOC8`sb`3T7~$^i|q## z)WcWZaLmhIc8agO$n_0hdGQ^_R-`={x+i46hbbeMz2O@R(+2Oa=eEE2h1J7`-30Y8 z3;E4wC*z=EemfPGPXT*lcLnvZx~K*9kOc~+klj5yT;Y-2t zQbq0QSl$)0+ht+(@ZCHM>fti9X{`O$`*1aEAKT07p=Dis4{mqG)bfPgp%tr#Zdh%W zva@1kRN5xkm}Tr7sEs&#-%wT$-wtQ>a030VtR4F`tB0Yp2#W@xTUDucUrbUJ?L(NqD%nM`oU3dfXo>w1`&dO*4^y!rR>dxYepA)H zy#k-xDfAWF-c)f5B2afY9H#MFP7*~4}GC#pdKdUr7YCL6NN-QB;ObH zaQi6wr?M~NAE<}5*ye0WJJ?vaY ztR9+V3$S`vx!+>-Py{pVDP_;vC+Z>P46%Axi%|vja0{ENP!IVI!0!%J)o~K_aGF>> z+=JSLdMFSp>ftqLY^aB(*a~L#@TFq)5JYc)dPp0nSUvPYvQQ7j@`!pUjenpXdPKsh zw6e#wR!|QW8*~~V>S2gt^+0(oRu6N~CQuItFnpmN7QZIyVZbAz9)1P}_3(G3sE19t z;4)j;tx!u)5AV(r_3%6t-gvSTZi{-@kLefc;qwX>tB37aoI^ciFCJj^Ffl^Z!y>3Z zsE32-UQiDM))T9T#cM295Az0ydbkZM3+mxnOma{U{H-9=!x@-QP!DIqiPghw%mYvl za|5g%>;st6p&yRSuvkAFvlZ(HgxXB`h<+&aGqHY183TVLWEY2l2K}(_Rg3k* zwHw6x;T#4P^uuE4eCUVDs59t?Gii$T!#zw?&<{!Ph<>=ch*&?g_#Gd@0)s6J{ZMW$ zK9fc2M%%#u|y|EPA4ONF}1p46$1{d_h-Rz=fDm%qMjks=QD@ogw=h%)w{j zY`lL!{RT=ij6awTz|JEt+m!kp8ul{GGqghkr7ogiSQ%e}t$_x=Om=E)KwTmGjTbF- zmFy;yE%gW4oq{mW$WFsFdyVXx_~$y}L22E9F2=aMNp^DxyG8ce!Z6Peh*by7p}1L4 zfWegKt#hoE%1vjjM1`;o0bPhe987t^%32x7SwZTe;AFpd2D(tiMSsj|ozYfN#+!9v z)ZjAa$o|B+X zGVw*2TFzB@Jy@)TqxW#$bPcknSh?CFTgMO@DNi{5A;44z_}c@Vb-6~TIcOC6t`jX( z5DSA4+YGLN=?)!R2c%QWjX-C*geKe&A3Man|! zpPsN>(2eN+|H0+UFH+vN{=8~Aw_lWo#qCsm=KS(K7%A^qyO%15+w%Y5=0pcddDnVu zj=t1l%tN?nT)rJ6Ws%h}9n&3W^@E4gcyBA^eQR$E-5%c>T2a&-1PNoYb>3xMFbuiL zNHadLin@#(RlSmOOSv*WwDO>RWp^gdFt~kO#uDpRGo6n{hQY1kGL~97n`_1(!{D}X z86R1nEY;hb3k`#-Kz7vK9wMb$X1#?8RdTe;aQWlM%-oNyCAW0Se;O`dM&t~8T@9aD zd$2nrBJ)@CszGQxdAhk=ZjFQL5Ly*O`lMG4S_a=>lJcdM<1KuDj1p5d!;sBDP2;;vQr1`m9VB;|^msUpZ#79-Yjs|% zZ#9|uaGE5#&bqt#@O!Qm~H%E`dWZn zt+CIN1CH>6OCLcCZL_LjttK(&_`zu#0B*MiW>F6KxgU&f53xI}EyZ-2d;H+d+yHl4 zOGoRDcFO~0NVy#?D^|=YyR0AY=pGbR-K!WL$1W`iE2Na~tW>ybkp5Wx;k1u?gZ90Z zjx~(XdOw_26Shdo4^~5%Z`UGFS(7{(s`(feIVpRrYS^kQ&WdlbA6zmC;67{SS)IUU zKe%~2Dr>(r;gT-$2|qX=+h-{UtU7E?Vqnw1e(>c@01sJtaws*NU;Gxpwuh&7i^e0( z!&WjjKcrBVJkTBc>#;^p`Pmv_>)L6XiIFu6vUb$^4Yr5K7-JZ0X`$E$mqErcD=)T! zgzMEE7s~#C4wQgA>=RUgRXJWYVNj1BgVvJOs8LdMaC{!m1^t!_hF3fHk@}mipekK zvUUF(*vAt%T+$juT~x|dYjR@1xpwFoy4D0T{;)bFV-JYULHLsT6)~?_Z+}9nB#(~o z-Q0+1H|;1MCfBVY*qXx)pg0BKvXFLzpCI$5b?s^N^DMPdS}~GCWm-!&6np%Zb>}K6 z4xt!kxCZEm#fW;xsy0OTgSs9lZ5!gH0cu5Pe_PQ%=ms8WXne8)+@`3j>pMx697c7N0#J#P!p~1Ngg1vmD%56PSL3UM{ zDu1Ko{)X_=Wl`YpJk5oFodul4pVZ)g{K!6vQ-k4k@Q4Kx?vZGX=;7T^Rk+tXH-e*r z>@hc0|1HPFfG?f3lD7o4@;9=(b%XvV&%pNqn|u9gWEk^3voLNYikyK$D=p`+-o5c zxMK2R+tx`n#AH2!a4p2ePWts>1!nAJK~8k{T8JNF^&84onFxGHGG@vn&+Bs|Lp=gs zX5SeCY}$%@$oq6JZGfpwGg*|)QN5K%W|%T*xDO;`^AgnehtBX z@nYsajy)O~=J&jaZZY`0RLs2Q*me^_LF`O8<;0L-mw7RFt>2zPb`lwI8pgdAV#Ot_ zMPpHf=3XS%Y-P`JxE5mHU)XwK#_)$Tj#G)(u{SUWjCr1XM}~JTL@YMB=*vu~z80c& z7@F^(L1lKVN`lr6{F@!B+HV>nC*FxMy?~_uFXPPsJxRh>Z(bqx@>!nA^(udRd$ZO2N!0?IsT8Qs5 z(oiIJfEP0=P!}e>q<1+JLthJ#2p4%TU_zj5PkV(n*FtQEHN@cK3`%w(TVD$?GoJ>l z8_@CU7xM@e8I8lk9J8YltHDV64x>oKjy5s9YayCp8WHd0DUdQz!thO zYxqHZEyQCZ^l0wnB>=JdT8QPS0GSNN_+!e=4^i~q*E;5We@p=j(_^qRCFWWavnrL} zjBy%GRV$+d?l-Z#Ya!PDf`N6>0N%9_<9cYbD58;DKDR3MwGgcSGUiZI@`4wu*C@9m5XcQ(@3LR>$Ow7zDF%)u_I zuZ38A3h2=XQ14oZR(KyFbL?Lp1L^B)AwG)Nb(^QLTNwcLwGdxJO-amh3_7#F2IJ^r zUmdfdiRoPn@jYIeQ4bT#yB4AV-W}0619;a$9Kx5yGSe+I;=F4i2G7=Ne4`iBQDEM+ z5V0GzBhgb{beEy8h1fDv%LpJPe>JAdy<4~zqI6!(c6>huBW&$_#h#{PRA#Lo;gB6npIqj`xFnEkuPvfqbKMms$ugbjq;|Y{Q?Eu$C-$y| zh<$}Q6*F>_cP+&8SUm=)nFj;W*Fto`>I+^iJmi6EA@)~dHo8hI4Z`oBW$Yc)xHZ{9{10 z9pp%P3Vn{>u!aS_>Y!%~%AY~F=pPPB&Aqrwu;zEsKOMA)L34xybvEzq>)|)2;)WPb z`$@x)w9|<{d$DhXpD6|}|IFxO7@U2`5XQ~$oH3d)(J*Q`4F0&rz7^i|Tg_Nv7;<>;njtf@zQ#f<)82z z|7jIiiWytDR44|2MP%O%|M>|^u|R6zfzAO+&G;|;3SJ!vqrYM31dd~#vhRhj&wGgcagmcgHR+bY|wrU6IBLBr4$E)2?+g4fKF%5B5Y6)p@bTf1&L zl>#WEQ_zr3r6~5e?Lf9Rc-Jg4l062h;@DagBTKd%7%MVqH#J~68Vi%u4$C(4R}K2* zqVI1-r%aWT}3q^Uvvgeo=Ygs^jqDDm@{8g!odThb`;_LmxT zp7{&$DDg&<8g!odE2k*=ggZ)0QThqB)@dY496KKs3ZfbRSBjcx=#BcxJ|GeCLDI=^}!Sq3%2}fU~Dj*ubdJ^33;|nH`~q3B1x!D56#a zZs3z5mXyReKN*rdVV%koe1+COMWAgOXJElU><2i{QlZU4tfIKk^gv{1VTvl`>_-LJ zy&CQjmcQ)!C`!DMS@&{Ss$w#C)$pF*AS+S9cacm~aN&F0#`EMa>%7$9HiXAIkNg)` z7b76spLkzF;UB($sHws8Oktgz8obVrtbwur!H=vPqk;n^BA={{k{dHqgZvz}7TbfB zdZY$RK$FCd-UtuO+xlaV1M@R)9sQ5_xfUSmh8U6Z6l#Fq?i_nHT*4+8lwU`?=pPQc z$ehlG8qA7?QR(KYukc;4lJhyxegMnfdvw%XrK%^mL);XZx&j zWYjhcy@RIb=jIsul8;`7A*J-@=LBb4ueT6z3V$> zwBvG{`FTcn9K%8_&}9#FxA|lS|1W%gXU%v7Yf2}2NGG7@=cO=}MMhb}(3#Zp^DS&E z2&1WCXc>BbUa?H4GSo11h3onGh|8F37`nps{QO6XPGzlO=v4IlJpMzS${~+o=I1=q z^+M*l0loS8-T-%gmI`!g07HPcTvO$5l$;FD_Q80J<7~ZQF2Z%#MLdVM{{$l+*L|bn zW0UbGD#%rl8f?k|&LjWDt=|a9cJVA4qs-!}q$)o`!-PHxe;=QUKm31){~&f3{8Q$g z1K9VBqy=~$5{`#$c*uGCJ;aTqV|d1#nsYSPXZXpLX%!Euu7?mF$$y;L2I;aW%mw&c zCXxk)=n9@8FhqG_3OWKq^f;b9fgvN1!?nPB6Oc+&kYmN~>w|-Zm2=Z!{7C56T~#hf zuRtstXbJtgsLF-tl>CH;j!uJnsLD}VB5s%H(ojPgB+;9k8q1^* zi*qJfP08m__)xQ^a1zcX)C_7+nbK-5{7$LoyC8u8sYVU)x+WrGMmO-I zmu-Q&x|x-w5ma-*da$DJd%^)Z$Z@sWa6ty_*hb~+XhRc?Hv(s<1TE#(IXuY=NT3U&2|U1 z8?m+a9Q=CRA0C9Nj`;S)R}o&_3lGU)O{6TPkgNT5e!^wrSwQIE5s-{?ZC+` z!6tfGXa@=@e=uJ2tXHaN4(k?_tM^PCSmgXWmEq)1O32*_5n{R7 zhkc0?iT2Og8?n|5#`Nt8pvZ6)(>FKF7_@798j5YYOD`*D=OB_7S{U6?K_F^)^&DZU zfK`6WNT*LlaG-Ps?tIj;C5{L>$D5?{QL~6EUgsM@OB$kR9S`ITQ=cF{Ss~RQiPIkZ zi5$y4RE?nfcY$M)%29m}sxm-FSZE0}VCVr_G2*(mlBLkMjWljAbju>BAuH|CP?$3|?9N^t zrqO#Gu|}zgFhvO*?$jHPAw+EQ2*Ac`P$(Hx_5BgobHr8yQ5Nc%DdJ+tv%2=dU)hX) z$sch!qF8;Gptfm|iO4*pxRFzQE*yU)BA-mx&7DS%af;*a1EZr4L`%u$5%|;4W&uRNkYG(Qn3k822sI@h!D$oRFMBZPs>+g^>jE(U{uui*xXnF_=R^c z`S1gnZ84RP;-Ur)x(Gke=(?P*=~B2@9t>k@Wy7*!T;NZa#t#ti2DWR)KKr;*0|J4F zu39)h0NaJ>ZA@p5H!<*pi#hQ|aTf}tyMdCX8pYis(DZ>oZu&rv2LicS11~%f$h|JG zzzyUF8oiObLJjF`vE1=SaSsb@&PWKf z3*gU!U>89I6dNK%u^<-g3g0tx=A3^ua2M3U{5I4c#|4Rtk zOs1OSd8lBtwDL2=z>#1Q8QI8|C~Sil5xiJ%XQ$X$@GtivLS!@KlT1a)m(ky#_@-$qpO`e<@2T@-QWH(!b+7 zxr7clo(xW(? zZt64-|88DIvvUyKaNebW21Bm7We&8#y1U7k0XXO`*fKK~VFlZ?F-(?D z*oHogs)X5h`;zT2{VPTXo8VItXU6PIp>M!f1z}U@Q4szk+x7WP{T)-yp-EbVtR=|dBABa3^1mY%S@h+|mZ z?K>WH8f)6aH~W~dIUBtCoHg>t0PBh(W7pEP10hdcI(XTOp0JkU-aMH z=gS*P^rjC3WPLJDl)jppbOeWfG&U2TCQBHUe&sZ9gJ>Dfj5uMz)wG}@QXfjYGq7(b zI4koSFkM4qCRior(j{1$YK>=}u~70fD0x0jui%CyWUdtK@M$+%CDu~6Z?R|1K*1lVEKRR%y3=jScERBO_~x(Xd@Lm$Ot4@O zhtz^GRzq49v_!3KT6^j`H&*ODG^99!>J&%U;zV0Jx1iW%#LKxU)eS0F@H@`3G_6}< zu**BOVB<`DfL`z2nr=u!LGN*psD5+owmFPq+E<=xTg`&eQ_kSqR1v%VtaN;^9vl4! zCXr5vwx6A_3Oljx(H=2(t;^Z%4xgVL2=5N}VL9ydC2sFJS27-=dcnJdV23q;WwbBaBANIb;tgd9={G>W#MZcBI$hX(Se~U=%uST z9nao)%oN54-dKY97K3bBPud|z!8YvlzjMWik~#TH3`V|nZ06)ksMKmi$!iDYXSSde zoTLy;0OJi-zt!8FL|ymAs^0D;bXFQmq^{Bb%yG+l@}P7>JV0E#whUs<keqYJ%39$Xuq9sGT?$FSN>0yB%pcI7aw;c$s)gb)2ZlfU2!<|=Dp@U7p95ky(X^< zXWM+%yf4BbvtIXQin+9C@m&iy-;#36cQ#ZF3ux8sTg+=6%?P4(!-ki_5N%c;dNnMW zHmi>}GP>hr+P26TVf)qFw#ACq!t>KE@7oz}I+Epfc?&y)L;kzn?Os}p$xxI%dPoqT zT&|P%A$VU!g>7h;uUv^QC~QZw$`m%FS?^E6G6k1FU_MNjp2LFgC}uj%r}7-w`B!U} zW%X!@3G#Iq_@Y+xEo ziJg2H^*K7W1jjJ{1)^`yLupaSN`ZXfBjgV*d}&T--l# ze78a%12?G+4`FUbR2kCacPU~(+~p%^c@!_t1STbX0X+T{YjFsstYS$u_<3O|QV8@P zf)C+yKSYGY2g~3XK#9gY(u97(D1c8rv4jYOT3}ib41L@mQiWDw=uZf3#$cZsx(lk_ zXN5*LmCuNWU=W`d2sOsAJuevAj)8h!Y-k0B=6MOBYcLqkOAQsn@H-DNN@B#FHxD0N zqT|5_vt2Q+;tTM*(XlKHgl@w}IPB~&@j-mP8!R!2N7K*@Ok?qpKju||&_&FEf}z|O z*-=1x2V^cZ`w4p%mHW+I8l;ct{ z@gekH!4fa-Vc4Q#&~fO^w>hnH$*8HJ;jnx%&!o-R{G|Xg>=i+OsLWpkY{K*vK?O|9 zC|;fkOmZx)D1t42f>7+*@3{zSW6DCs(wA{jfBPdp0~-)h{O>4eKOd=;e*9jDS8`A& zr@ge1;=kcLX}Ycmif>^M!m5JcmLM2aHW*Vb=2^JCX}tqcqDy5bcjiA;ufm^VeWZq+ z;u=aO|cRSI396F;22HQ=#@HPURQ#j;$VJ2o@enVJ>%*E5WC2Sg7VD- zPce|y;Og`MFg(A=WWm!Y9}E&Z2p8^99II{`@jiTFM;3v&gK>jTz+9d(f$)RvcidbItg}Zw_<-haf@V+yFXzhVj^AuD}=MJRjT|LWFAG_p~{`Zjy8-+s-RPUYsG*ZBxT|~dO-wXH z_u`l{ZkK*;3i^Z43o(BJTXUEddNGDGg4TpBM5cxI35iaD9?u|h4p`KtXJ>-%D={

    @ryvzRGcp@lG@(@yMh4Ti2(3nq@*qjFvk+WR~`V|S;VA*Eo1daxQ%s*!yPns zp_|nAFunj;$?0V>jm_hla$QH4G76ge6%!VM$}2$?`aNDhXM}-nd@_a4|*$AjUQ5qMTp%V*7fO z9NIh_sPX+D*J$4rjp{ZU%qM&RGm0oEgax55qfRr+q3wyt?ZhXsf)-S6QK-7K86$Dh z@G=1l4 zJwo(i1mO8?5aOnK7=wkw$wGj-bPqbBq!|~EdQxs%1D3Z`z|u>^#-1&>C(XJPuW6*A z+Gz^=a4-kaF(T{WYI{_ErOqgA;9t zl*vcMa)bO#k!PI;FzpDI&b=lMTgM!Xc0y^yp`{yfARXqkM(vJ@X-QwDzF@Vx{4hoEx6k4J~AAVAsqQPm)E=zKZuR(}GoKq#{# z_qRKiuzZ_(vLCGav)ETvvsyUlYt;y1z8@^REvhBQ+lW5K3T=Z~51^oJBTTubI;Xh!3+DSLR#SFpF5ZKo*KrVY9-@rO4kAkR=rtUrCz40!dXQCh5ldh= zdb-3L6lGtD4wd~LG_DUkDG3}#buU+yCvk!Pn7ox6^(5lg$-@8_OkVP9I;LmrYov7Y z()3c6bN(=SnbsRQf0(?SYa5Qr$oWI}S8S!HvCv4q%UQF;RXTe+CW$MVT_7XDD#8Gr zSF9EAx6*_!$hAq=9APETr|1lhW7%oMG9|B0#&4PcS>ojlW4wf~kzdQaaA%xW;#wg- z8BTO-w?tnjh{FcKnR5IOE06Vp_^}XzmF;I-OBY(v4{f8gBBF3tEDGGZS0b<96sLk>l;#F}P75 zkBDR^Vbz$tGXon1oO7CD80N^7Bzf1H=XFMMr=KQO@tL-tq5g8bZGN6Yd-gO05uR`O zvg6t0JwKGw!J%BDmubvKnt`UC0Oe2_3)18_m*5z%ly-%Xn{l5X z5vYezZ%wd? zLHSb@)Vs%V2BipM1GW+e148(7X!Z(^pUF+;WToXkPi7y5y68PF4;}4M39+z~}d4jFTp}%>XnB z0i2q0l_qh}03?aVv=X!6(vQQD-F#l|#~yRkDF7=9_bOgJ%z*o8&%xyOE1 zEu}NS?Rwb(M)H^Z5vh1_ZtACXz7@3dRnU@zcAcMg8&+P)Usp*}+H^ndcerFo{^od= zrnlLniL_2LWG$eUeS8VfZ^yo)C4BI|K>NVxo_r|>9jlB_7Z~d3Ks6|UU!HhI0j0`% z04*c|{5lPD7~xPi9N^X#LH+hfcR0S}9;lZ=X;Jcb*U7*4tEhv{bOTU91n|c(IJ*@N zYYjjJ5x}2^+G!Fmh67wd1oc-H7&V2>NrO^B_|w_szmr!en;`mnU#)N^4LS0uck(|u z*hvsJR~JI5NW$y#u_`KauOd*cTmro^;Rls#W+A8u*Mz!YmY0m<=~(Vdx(^nD)kXQ^ zOlZQFP$tpB(<43F7Sk;Qpd~EAFiH<7=)CG z!lanX(N$OlNro017$d@pIhpRlszYGg4NMg1=T@GspxYJLaRU=>ssYi_Rm7id3+%UW z7^IhJOA6idmk!>QFp8@NgpsO2<{A~LQDYsU*>zJ9u-EQ^##5=l9Y3!Rhao+7w3D1h zk6}YoMz`A|5Pa1^aymV;Ux&AC5r~_*qBF~&UJodbcOwuz?*flZ8i7fTq;fF=@e1r8 z$yI1J_7?=fR~!2>1WDO(VRBVkdQlx0<{Cs{pM}ZQ=yMpw#Ao5)qG9Z=F!^e}f7_WP zEh-wuo(gg6MlQCPc#cX>77cq0_JQQ;6x|jcF}I~_Cg=M2T6132$U_YqXLZK+P05EtM1Ssu!c1MKMHGZVB#H1n~1;~QSV*~8*O0H z5BOnuG=H_i?ldqi@vua3LlI17BHMEY#tt6CU`^=CZwmX&z_^UUU`=UIT^$RGRrYeq zW#n7#G$F}HGpgKH`;2-9D|<}R4QXbYPeeK8)5)WX9bm9WIWw}(g2z&BY%M6Ytrp5` zz(h1xJ^{3(Rvi^^KLh;g5I`%sFkb;LGr+G10kozgixhB*0e%$-pbfp;OsApIsQ^S| zXf@`{$!+Nld`c|UC!0}{70q$~w@_!=(SUEYX0~L2_O?MB%1CZc4O?jB!9H5mg^1UI zo-3}EcAiUfhaz^xlH8rP|BTN^xaDsIz^RO=@&g|2z|&dAZ|?CAolhVzgsP z=|e+wysaenq&%1&h3zH7R*Ai+D#2Ab$4pG~vE6zA68EOY^OSh4AvPm+!;w6IK84qQ z>cj-!^jfI{X=O)PL&h2^r-2W1B<>)(8%LLDiJ^)T;f$yRN?SL(Q9Yfy&V)fWGk139(*hJ`S0xf9O7byRQ zgcE`QK45@S?^@6yG>zoj=&@Ng$S)Nl=hHolAjBfN_kO2Z+VrUr!nx@tc?C^+iLBY3 zkU6ba&JkahL{6Wwd6kdW=E}x#u55YZ>vRdp1Sr#a0ypzT*H;)V!>%y7<7z0cGHu%Zy6Hp%?u9OchegkMT4 zb`@qO_>OxIqGj@@7!@~t1~au{&Xfw~t*yc&Jz}N4f+x0&)Bo)jAQ8p=1+2T$8- z(;p>8_Aex!y-VBu1A#2dYRg-I_JDxe+e`BI{`SBCS7R95OR{a(`x#r3O_}zfz|K3F z8rQBIw&d)=0UlNZ6c4j|JNptshG|;i)H6U9*ayP zE*`r#e@sMEprLqqg9To~`^c}=UU_k$-M$NlT zS1RWia1kWlJ>Vh0zP>5;5LgpLn9+JP9s%sp6|mzaw2FQj?>g9Hx~f7;vCwmc zh&dz`ebW9udpY#gEv~bSSX^iUt!<4`ay7wspd)z4ee`))TSOgi<9E0 zhs5`Pc^Z<&I&DiYd}zY7X8w3WoBr1ZT$91H{{DEpCt=@|@vZW_$zXFY|kgdVlO(P;9Aql&Y+Bg!U)X}0 z#2l6w4g!FT_)y+n*z*r{n!3ku@TR*WZo&a>sfu58*LroEcHZE<*>5C%NrMrJPexmI z3fMVN#g#4+zw~Sg^_ket;CV^uKqZo2p5>FKtE0D@4c@Shz~8ZTrSjim@ZS7CQl7h> z!19TQK00CW-kL2EfA^Tyn%~&!UVgpBTO@wf=M$8F6N8tG%Em(-H0}5ro-Tx; z_i(G#{qNORXtRHVI!#VlZ`uX*h^$lpD?TjJgLi+aiERIWj}#X3;Wu#vLXx}ie;6|? z`eQ%iNRdRZeeJ&}LhwaBTn%llggKD#xaEJ$!x1KjYGFQVZ*MwZ$B0eL$mvv$Vu(%H zQxZ)Q_ii)l>E@XF$*{UV9Mu5`Hs#rSPr~5Am6R?RflSTf(;hDL`H7o#*hsD!o`0$2 ze&~M&pHyf|1LeWksf2#$3n#G(76B$0sQ7#Kb7gy?{bG$7I!LcK&*PXiIM@&>8Bzfo1&+5gNpP?1$LFQ@|<=(lB; zbd*7fn10l&zjeiZPUt;pxj{*?ijrx{Ykk}UVY>{9I0|e;q<6bx zlTi{|9sv+(4o^6%MZU`be!)aR>YOXhd(UlB)QO@|BF&K-a9NhK{~eA3n-fFOus$2| zi1u97>UdcPKmBWwW09So4VhM}8GLFKR`@N`&p&T#Y zn$E!50DN`r4+_YM035|J8TR8Zf(gekCC zSROGbe>D}0STXnA4#Gw3g3F?QNQ+2jF+@Sn&3F^m6J2b`H4azSUZ;9JKzlWUyDc)xc3UAKp z&Glx^TjKVmKWzRjJ3 z2LqJ(49(l_0xFM-~MacTIG3zpT;|8_CJr|T#gK7E170y(e5%)P?yJ-)?x95 zLMXFLcJ{69D;Yf%db$vl%M<1wVTeUkbsa*B)eldXiwZE_@w16?@Lh?Bca4E@hu|Ut z^aXbO1ku?bG%4YM&jMrB>(4}k;A-RY2vR-puy0y~OIv{yNvHVBnN5YhOY zT=RY0AXE-P#8A~w74e%vXezuzXcwa~?Bz`R7A3ai)(v=4U^3U*3S zSW|5^!c`Q)EJz|eP*eofAa5VrDU{eyHTaIfO1AuY6KqA=@U;p}4ZXa1$s03MSXL|1 znwu43Teuc0RDomxkPqjd9GgyHMb1fB-9HyziHJ3XJVI%lv zP~(M){mfuR84=h_`g4iOP^^)s5y3{tkVQM-Qc?0&%V1@|X1;Dc%cjF!lx2@_7!Z8? zz^*}GU}nMoGieSZ#5m)uDA+{nDpasF>1~{@7wlGpm9ZfLTZj4_A_sfKU`0U2BKfa& zqnFKts~MdJ{A^%s@O2T5X=D$b`c%mC1Y|@)(?tT~LlSmVTKk^D8XK6lxzDB|r}>oC z*s_*B&NBfIfmG__s4wo>dg_?&d`wZB1*?B@6LgKe2Khux&%Pp$}ip0)68rzJ-CuZby}pbu26avBUQGZrlOZ?di*! zI(Stt40vi9RNH~xTBIC07Y0n<2tY^bc0^S+p)g?aaLCY!>Yh=+oeW^zIkToFl=v(- zbVlt~zzzoNo?!sIQ)zdh@2^t85e9h88+t!o1{}K4gJX1l{4)Sr{rD3&Ag<{IEp?~T z7(ZmHQMw6O)WG2E3c=gEHUF>0iYwbKcyqch24`*K_Y<-D;oAnJxJV(POZ@v zbGw20bDmKLiT0&UNxH7t#xT=tAh#g;5%S|KAl?s0xNS;c{pk|6(7B${9|q=c?*bb{ zA>>nF6)?RvOMW-GA@qd19Lo;_grzo|_Wz}9MtP`+#75B^R18UMIim#N@2*6ou{3Om zqMimyRbXbFs)rjW`b~v>5~WqpXjjX(K`Wc#)0O@pIVrZU$?aj>{eQZPd}s?S2Hlr zREqQjHlNP_q0P9PfpP5#c3|-3qbT+=I);-D((f(@Rx;}5RshQ>6<U zmo9o|02SVw^KQ7kigvfv#q)*;1n;@qtLbLfIPhWwg7@w1HS{N}o3fbyJOaTx>h@Zi zGEWiIs<0fqZ*Q-o!(CO5j0l9}Txt|)k=NR6NKuBI5pweShj*Ep5wVb`@he&#XlC8b!e>8}E zDD@GCdX1s#K^i`3VQ-<=*J``yY!DLPIjv!DrFSnWVxmF#c|1WUp*LwSD-D913Un!J z*Bvw-6C6Q2Z4jD@Aa+sX5t_0E=*+)CYgnZ}{#lA5!b5zeefQ;~YH zk6yZ{HHW>dg(IZ)y+VK7r-*YA2&p;y>F}dkFJjsj<{|a-0L8zra#V{zNZopsCVizm zIz}KQFR#U%&=AB$21KSSBbgB#B^>*vp=CH;6Xr$uNk6q zw9fv52B6*18IPr7pit^*`YHfXslA&IXB)~nT4$f3cGu%bKxIR{ya26Hsb?v@95^>I z)LogV?HKhK|df8Hasr0Tk*}ZeV*=EX~BUcQl8GSoihqeX!AWFeossC zbqR7eM|{+YI28s-`y%zkXFQLxcAqj4wTJr6>7m|bf-|4l=|q(t>UTOdTHD*j2m~ML zv;UwTm9%ce!CvG^HE|VE?iARF1JP0~s`-gWa5mZQ9Jt(9W419w6{~ANgc-vGM=Y5b z$#=KSou2mwf!MUdVE71;GXcn#J45V=fs~ET{MM$ez&S+cHYs~jV8IWlUvz*892Ivv z@ex9Ma$vw0O!&;>>{4zFq?}^P-yX%~$cGE-eQ+BDFk3h#v7Tpsy!qyjih4_uAoA*>3U?f}lLR()?`2+{~M z0%bQl>j|5l50CIM#tmoXl}}yy(AccNcwOk)^kq1fn~AH~(TkA!oIuj6WUlUDFxzt zWO%-9Rm}U1LkpVNR;5(t4Hrmo*VK8LjVPt+4u-KSjXrt`?gv`%JGJPH+{>FA-b#KA z_QDfJ0tey=j?_L0il*5f(K|C%7t)vNbg_%=98$iY5tBH9gb*@k<&Xfnwx6iypI>i6n>}1LJF{(Q{$QqSl3Cixgex*!8%fc}m6mf$;I>0<8pra)UP@S|-1y$ZOYX z+#y!(^9h3EI2c7qX;cdn%*rDRzA+8AHxxIu`2r?Ap2hY5g` z=8s-NUTH>ID61r->SWyU_asudrMY?sm!_j2F`S|B_&$zI_8XNe-lK9QASL*nD7qUH z`86fTubpc;g}e{%aUAR~WDX>D5ECzNULnh`N4#*yNn3a!3&a#MyM4g<~UsHnE z>a)7m!y_0s=I`N_73nUy+g%Ibl&>T)5<=Orue3o{W4B|;NBOh^vzoXBnt^XdxHqw> zW_O55+;-5T3$-+TRl@mP!KNNejbo~`CqRa`!WA3I)C*q$gb;4iBtL^=+quru?^wC5 zMSaAO;HUQQiNw=s>u5`ZhAWTrJzhRdTnjOq(C>}lmKnh|H7f#)g!i&Yt!YUW zXU=QWFoV-HcU%otU8ur1miji3osNg8k}gKtfAAGqTpybC5DzU|iiGULl0I$-^~V7_ zo8IvtBD1U|TF^}7K5hy{C2>OEdk|K00zZ(DKyIR`Q#ebB1+FX`8Nv@2GLyCsWm)Qa z5UvYO2`iVmRILol(#L~HjwI9hlnQHZ+yXlMgJWB?X$HeYT7Dp%6&RFKU!pZ=n>IZN zs@5V8<0>b8jdWyw<0YEiEtQ1 zU2xgUh;{}c1+Iv=z{@u&kFf@!OI=KUV0>8b-p7g=?FB4OVy#hzqlQox# z$-TWao6rN(pt3=MpZ?aE^_VD%hO|PwKF}DSBT392{+N6aJ#J!PeN7#GCi;nd+B|Mr z;3jy$k)dh1pU9JtxLX1r7RR+-sCx9cAvO~)H>qO+sSlyAKF9Sq4sYeCR z1We%KUJl&*rY`yW8=g(XQA^yRz{8kS@jQuUdqk&cE8_FOXK30y;iCsU-VUNEyOW8# z6qtF9ve;LMg#(DOx4nkJhBvQn3&sEp%>*Y=>H`{UID%*QuvJ^xW zgV4$?h^lrAtXc)p)*!TUvpp#lb~=%;ycE9`c##ZrcWNZxYj z0EV8_pJ(@0!CM)CW{m-H+w7J&xgz3D3P*%xO_*V|Ia>RPwFc|Yny`GsKD}8J-5U-= z)&%jPod9FGBznpq{8{7EKXF&=4*4jQ*z3I9%b;j*&MBd|tAlYS+4sYvsGVPy~Obh54A^8#imFpDqH6oC|DT@Z%R$-JchNMPzFw z+*)ea8Qniz1zLT7nu?nAcyRIc%Cd%m2{(QqWr6JtHVrAat_CI(3`M*fEdEBo>Ex$} zBb<4Na|9;td@vKv z@GD=EsTOtmZ;epz-y%Q{g3XWmX}1>YsG_ivjOte+^oUActr6}v5u_%{L#vozM?@XM z5ed=FfugVxlFx{W$6ldCxcF}oT*>c<8uXb8k~+{+ixDJ3@?BBSpc5D7-HVD~CWoq< z7ovt^CNB}@7ZpLo=Z7oO8&R1zYF&7`s0f~LZiFLIPxjIj&K4Dc=K{`@HlNzHM+bIW z;EubU2sV`+j00R9hiGi zryzMA(Xp0!>QZdntmsvbDR!8_a#eQn;joNb8XXHGRvtvB+YQVpP*eUQ(ESmG?JzLW zAg7E(zlDHtTcY`cW#RUrf%y|k?Cbfx_-FFu#BWaj3lmV$v^ZcAqyezkm!&ZDL>bu)@AHum}N#<&2ok*sqYX zD>=-|vxkL%!m_=+t+T@F8kk?e=Eor5+L)tXXv+N!%r79rQhVABi)l?*Y+zoZZV?O1 zXJQ_mr`q0L1Qr4c%Q1EtY$HoPjvJU?z?T-Fh>yke!qzt5q(FZgn7;w@d84>5V-{co zv#teLrQx1dI3Gxl5vjB7=kxV^PX~kW7`fxLV3*tPf2`Pf|Av)3yBU{Q_uFHiR2d#L zu~4WI_It;4(WcQn3T zmCdRT5E@?x$(SpDyS$^cpA5~t@^@!_%=L?pL>xBK!Qru9`MbOu7LV!vaOcY3isumC z%nNsP=wA67{LOMK`29Tq%)L|3BG1PsVaSthiCaCIjE3%zs8{~3#8gluc?>X9LmZTQ z>tA08=Te#e!+n;L+6x)9a9^7rM|>R{!v2e7;=e~Z=D{R2lCj(l9XEUP8g z5>~7D%D}EkFc&{Exf*m{MzFG`HEln}vI^eoLRQ+)J_YVwXV(9hH_Y`MI&PemHs+c3 z?rnC>Vske_8QmVkEG(@ov4m{t&8ze}EL!F1awXV>5r!*_@@jkwND5W^mAs(H`|9%k z1KUelZ93Ts-XySLfr!QT3RI@trPdQwMWW(}9eaH`vr9 ze75|$#|uvw37kt@BE%hrC@oxLt`XvghR88}+j$CmNMM%>!34`a36kn}EuK#&1tDJw zY|f5+-i8KmC#SvC{Jdpx9BSer97%KNsguaw2M?6cE$)5{n8Z-j{?}kmNIUh&EVYc> z;?dm5d>A6_>%7vs*}S0;pb6FDl8K`y&%zN3>KyF`!in6Q(zqZ)G#qENMYiUSO6w74 z*{1W%Omd&VsghO(_|RCf1Bi8HnX< zjrOIO0U$P~mv3Q$aup>SO`=(R#Lc27qNN0{!!wi13-^Q|6#HKsz^~Z=TGUZTMZaZij>)mn%fn6y`DcSp83zXlfZ9F-ET!qd8r zP}$NB2sfL~6r%PQ>RUpkzdRxuf8z|~>mc2XiLeZ&@mb81g`5spZZHi$Gx;?|Ui)zl zOQ*e0AB=<4e6xGnIbsP}>TU^NBNtx^4gOB-ZkuqrI_)dXRjl3ZI&2Q6omYCC-7Ul| z<7?s@K;V_c&intv9gi)jT@qCCGhH=}jsI0|fS#qBfVuwXzmUJ*sMiGETxek^&53)O zv_OD?HjVNq39;i*g;=qcVr<1MH5jfWVVIy|9yb_e(SVbQ4sctw=`D|}ja8F~)#&Fv zx`+Y!r7f2TY)|6oF(^SNXAU`^uCD;@r2=2Vj>w~_O;tPyBDWg}wUiH}zt3uE?@pfkR4Q#X45d_(GU}@Ed$~qsvUI9N@0Trj>;-T>F6Og;6XmJz(u)%(Di= znEqTy9Z!gcr?mNZ}0c7pWcCW!T$Bx z*6;p`tvqtV2=7Pe3gC4Q;70C0dbLLW%A+OpLZ$)e!D<`uOf8KZJJHRr z3*bYQ=>yMyi?6pi`AiRh$ZT*-AJn*s%HG`!>yLw197GCoTu^inJK{xd2(6h2K$4Y z=>+iWwI4RYU3D2m7x1IoE*NJripdRIGIDIkBqF0YaaYJAM=fG>hAm)v4l&|68adM& zInd%5crv1BVNYCpgLrh5VLvkr;~LLOGNS2gctm5Sqy)$~3W${8A9!Z+>$Oc^VYy0C z-N~4#a|i^Y!NkEC2@*>2Ow+_UDQ0jP$ktP_wU&@ko1U0qSv4+Bg(tF%eY6tb&|jr7 zh=$(G#{wg?^#r>g8}TSQ#ZcM~T+|V=f9AVSdfdr(i;VvUmm`KYV(SifpP*+hX0_h4 z6OA7+^@ojQ3k=kt)?{fMk}KcT|A;6Z7nwdE+Hve@JSpCG4kk_pY&AZ z(?!7?W{v4Ke1$KEE>9MLa_YBoY(nee6B)e`tnCrqLON3kh)(oI4HdZ{0x_fxMC(jTT4(~e5Lv65%VXC9h|q;f z;+$$-R@mAI#M1|W=t{BQsT_MF5JyoyARfZ8p^RQM5!Se_m?_Zk2t*rn>>0i3 z`CD;4@Ejm+i$EM`id6bgyVGQ?nGeKc5s0r2f=6G9PsJ7Q%;QxLfkOLqC9-iHWgpTZ z;2emiegiPzYVhw*ouD%LXq2X#Mi>7fI1ivUux|*hqL22;0_1Hl?afohJ($K#TGZov zWBn%Z`~r!c;7G&i+19%9oBc150R3|f{;M8 zpa__s<>2Q~E|aMRS{hAdY&Fz-NYtn_vV9}{gn^ru`@(Nr4Ez*&_Bim5yWwspyYCW+ z)9AK*wP{7)>}Ewev6jee0uM|HJdXX39w-Q5zJPi!(SjZn&iwz5?<#r=J91*AdoG-> z2>rj7_YoSDp~@)6#l$tjsrLUHmbbkG{XR>h6UZ6n`hunQ1^*j%+de~meV6J7wF6sd z*tNyb?yFO^X%}M;(L|h5;Oaw8P71*=@8Bz{GaDgxO7KN~?Hyx!(F;?j`?bIO4z{7I`l@(%X;7IRA-cGWoUQeO=*7 zHLD@_c!?z{VP2EfVmOGQk(k9>p?)FM;Lu~3*5ZEBx68saYgVfzOx}!WR%riCL6G;N zF$6;EG2qzNuu3CrD{C3IHq2J+VXxzaaMp6pA5RI>h?C38Yg_;cUjm~~ zO{y-_NzKPhYr!bc8ZE=!tWEjKYHlF(tDja1)32;%Uu_OJHzb5+`r^&`5%KbGMQ<&) zCtPc2^=RtQ>#eNj)LD6UFti-{3YpGoITZ%#R!E9Q`DwkEgVy@Fivf$ZMDzW$rME;| zS#38b=s0%2pLXq?kfq&+SiDHZc-~Jt_X_gRzQjU}_ko|ba3kV%d+RB=sG6 zZz+xWxhTW0i2r%3w<;dO5EL@SDyH&k0*y=1Lx zuvV+slT0hnD!mnJ`>gdB`>VqZ>xfu(IyEwX5=shIkH7 z>4uPKz4nN_@o~(9q@HC*02<7Jv=7YA)`r&710eE?Jy6*;!-=vJd4xxErhD+8_5uJ8 zmc|F-(h_eo08R}Y_%eX3hepFVAjv;!02~2;n}#9zhey7xPA}dt0OcSR{?W(RYlT1K z0j&B2tC^Lx<@+zRPO3Joiq9v)o|(0iXIxHUeH30;AG?J$e9VZOt*lQtDJ-7;D4$IZX})h}+6XO5>7AZSpQ&rqResu>t7ELJ z-J9;g8v6)(iyeNN-5zP}xucg36$kya$=n0&{c)34f%AUa=aW%&{_`1@no`k&^L(<5 z?SRsM;Zb~)C$v;Q?az zxEhdZUwjFb>VXKr32r5?3>&2Fb6*7DJT#QGKWn~n_#y((0h_>C2X307fPXvyRnsTnViKHn>#k+4K%z5Zo0rPcG(Zsd4xeAiF&)!k3y^+48}6~^N$1XK_j@28b* z3}N41@`K89yPtN`i{SZA64rdO(0Ig88`TK19Bgt{3-%R1O@@I(&EC@1_nDv8>;PnW z4@MFzmn+g`kLDK8@7*ELkyv+5nTe+0D8LyD9zSPs>)VwL(cWL|T9{ggqX4LM0`eUz zovFGS>H$EL)_1(p^Qx=ahE|`X)qZgA0ByCZd#mER!+3V_1y7fqmU%wBWq$3p%rs(X z)|rXis!lL#c|)?&_RbE?(GKep)236Y)XEW&Ez1OV;E2tkC7}ENja?aQZqO^TF(~X}5vLS9r&? zZxPQ27h^v!5E}Ia4Ev#~rIA|b^kIT6Z0h*{Y+>U*55N{SY#iId{(_UEVxdPL<9mSX zK1jF+_+`|sxX_QcL+zoHnDmtjRe>ocK6F)c8}|Tz@h0IO;AJ?`6ADGA;U3^ndI~PW z4b{NTU766hC&(%rivGZ|%7x;}Kw+Vw_`tM$sMR>zst{WF2R;rA{qkqPN(rs%L{`Pn z)?|DJ7%JenR$`sGu}`XA&JGRk#fH5*+i+&~c4oug zQ6HCs){%quq&GPB|f&df$U<3a;~FBw{cnP{m{G*+GQp?*P_6hnJDK!>3b z=#xWM;x$KEm-m%lgoLZ%-3oOt%XYNWJl<-VZpRvNIr<|of4tenCQoay3FP~mG>-*M)I}S29bPBKSJ^yKuxp~kKKg3 zr?a19Us$2Tc(+1No#lLYJHiQ%Uxj>IiMtY6x?_tOv<~lhVuzAK0CLkm>^kr$bde)pae2SGlme}8lQ}?-MW_OTJ&z}PKczLtZ zNWweGuY+E=(?XvjhR87!{L#A$qP0P=z;5&& zLL6p@N1-*BSRll?hR8jbOYAAc`wWq18ZL2^5ce9QcpuE6V_4>ApKg88vbf38aR$hj z@#y^SK-p%WDF@pXH$wW+Ph-#O*=OJT#j?0kQOPB~cxh;%+2^WWtK(BOKkd1n5bw*k z?y{^M$QQNt)AkJo?R}h1?VG4Rw#Ds>*86GI zuLteB8WnV0d)7~5ub$Z#7L3;Pj`(Tp)ieA14KFM0f}hq2(}e7c^|3k;Ig6n?@pQ%> zKeK=M=b3;*tKz43dx#e5vFxIIvFKaKsoW&iQid$^|tMM?wxH0h-O9D=?@XfymY z>7@UEB0o+JkFQZ2rfO}243}%;U6^5TUop-XPiT2G(4{T$#gp!}F^$FQLHgH+ees0Wgfe?5ZJ#fmbiK{!>}}*| z_ETRxq2*JpBRUcM-4{=~-sbd1n}E~zmcGN}PrBZg^c$)(k3>|fFs&7x*r&8kOk=I1 z5T#pgOE;t8z{?ZeDO%4nf4o^;u5sVwF(tYO;Zizl>p^e`HT#CyRPPrCE= zG8bv<~zWXcF&|FP?Pu9jPKlG)XT3ovd57LhD3L8>*bunWp)ZVW11m!fv9B z1MPhAgw~Zlb7>>Ic)e*GrbgM_>G>pb;?*V@6btAXbSg3`I;mrB&Q(4o$d{;O@@sC8 zlMeL4GRAI%X)kCT(2^f-0Hk~HnS5at4x8Z_TOa)?++4g5>a~+(mVG|jP)!eRV|CoG|U?@;R*>RXwHdeNa47^>`~Xxtwh z>SRMLfi4}DgbyNxeu_P@7G4KA?RyMD(r!Yt^C8*KvF#>U4&qsZkcp8ZF2x?h=pZ~k zG>A4x1gZ4G3@G$V?19so${z+H{^k|&YwRp6JA}toD?J@ZF7Z9VuaNY&*xguM2%?EW zC=WsW9y{THA_g0T@>uvh^73cwq5HMD%wohT&Nqbo6^66W-?1MjS{5^;`#qxLbYBtw z#D07<;2`!HgeLGQ8foZq>^g`bJWd;g3Mq&yv88q@k02_8BSM1m7}o`ISj8IU+YXN` zgHVMFf{Io7M0vC`2vxWs0>vg{;UjX4H3&^5wE(Hu#s2v~5sN(pRPo6kWFxBBi}=V* z29}2nu{O>995G{xy$at?Li9_ICc>=+J0hr>xxwRzm&smoT0c|^2dwNn1MHft+X5tN z?+mat(W(7RwO0nd`vtNpGg zBYx6yeeE6)*9N-5z##HY_lSn?G znxyh+1VY?=JrFpIqnd)a9Dxv5VVeUFqL~OH70Pn5;Yuobc{nf$%RND~FbJ{DYF-`< zl>bh7jEF#pq+0^x*DGRC1VVDVHL&lLBDO>zMA9b$H@i;W-Y$fwO_JN~fqQUVSR~ba zh?J-qTt8Ce^1#;p8o-KUC)(_zwdNG8QSIMRa$GUcN!m$vU34M5@6?WQVQonjw>$w8D?(Rb0tJ&MHDB>%FC=H%2kE`u(Tpq>NczNNm#6?_V zf8-*rF$h`6YAV(3-&?}`!jg722%Q*7yQyI>a(PTN2-Yc55&vVg>=(CdrCrVlS6RFY zv1{8&u);_QKJF*-D#Wg1&v6$TultF-3bAwSXxt$pG0*skyb7`F+C8JR3R{@Nduj42 z#I9#|gtGjh1d=3=;BK3!$heb$S1Et>|8qh-c-P&$jQ-z-Yq@~4pvv|Wd3tAev{!$E(`-Dg zZ{;WQI?e8E_g<&#w4sLRtkdi+_A><-p3u^0jv+ehG`p*P1qODyj|ooqBF)-ar`g@? z*=Q{Ed?BhjnD1i`M}H^Qg%1tmCSo48``X`puV#r$exh7<*w0>6Rp-Wu=m)hH)pl+| z>~9a5r^W}Z(&#~J1D45G-n70O+emSC$Kc%$Vr=~x?aJ;HWZ!t)g?1ad8G7s-mI~Frfj%{}f-taQAwVacdH%vN((A^fxNTe!(sm zbRVX@pD6clUKe~825Afn)nFs!6&c0``@r*_s62h6r-ul6z8Vt&l#9sHi6w3 zOr5O76L-ItUB7Gsn-c8UTe;;Jm_JduXKGsTep@@|>kQ1FsKBNN`_0#}>Q)2u=Tu-f z1t+$IYkf%#<<*zDlQUdrtT1M|x!O?hr`Ee17d$}1S=G-d8<(7{N@d~5KdV(R2} ztH%gLxoUP%@MmoOi=F=sKT+ zhChSl9ZYaWfF`u%Qw$Av1&?>sgW}svtS0iIgS|3X(>( zUI88Vs^B&l@a4+37gvA4=G3f_Gv(lM8IC8UXhXP!oTrZLbfOd0U%M zSA+0ZEP>q{d@^1;mgxrOuL=U&5Nvlv`@oF`=C6MOyDzx=OKp$`0F!Rt>Djdt5Y+v_ zkI>OdXZE#+ib!%(uviD>6_30+y! zT*M>63EefNsa{ILqPD~0(cph_l!YUP#KtsZ9pIT8@u+yN3zqOzoATv{iTlT68?kEs z#|RI7iEt})3rutrYCV2)2iD33H+wihmdD^!ycT3caUFgy>O%cgvY_(g>@3x z2m|B!5r`+=M_Qeec*-%~BkGjHx%Rtimo`6OMTCsvxVoEqf<$+&{jOTDuqL)&_ZcFC zvDL@x^Qyf@G}cb`3kK}sTsX0Fh(EKf+I!19?ZN^N7Y6Y6Lsk1OD5o4Mc>r+d!y8rm z#l!q4jjEBK){Jbc>UGC)f=Nu6y$!7~Rk|PX`hU9<`I*Auq8P`dkVAjs(}k)7{@F+t zS75r+ACWLwtUB-xvgC22pfY1KFybDanU91e1RpM|*RL(B)|MWp{ojen5U-I9~i|FPhyB+{j z4x?j{rZ+Ym;LK0B&Vtty{{T8Q6MJC-UHxC6r)NT@*)O<_aHj_ao26fYHn04R+IHUc z(UmgX%{`9AX^;~>le*42s?TU0cs(9p$5?=rY}lohPjlJ8)OYmE5<`TSIuYyrB(CcpLfE+6#9WDzU8)hZ*9h=TPoSY$wFIhWHZNC~99SLaKFs z0rPQM>k*Nwk9VVWbgALa>z?-0KEfbbty`@rn&V?kE5!o4mGWpQ0D81pp%XtAzF6uXQ9MyWQ&LXQcC()5nk{3zLd1&)oi7vESpYMlivf~Ux z(L@fl$0E8~zsj2f4zCsAypU@F^e-_M=Q265?FOJ6Bxi&7&d{sn4x1#TugoD4cSvBa za`?q?V1TP2UItYgddG6DkyoJ#s0IbajR(^3BB9!_k=RI<*3`Ucl<*pUYMZvl>kZ0W z+FRe@H6o|BJNP=~We_k;-i4T%Y>bO-_6B;f+~8&oScz(q8+?La`8I&uAaDDm$Z9(! z$YwVKJq8SM4*P-D|JgJW;uNK+jtZ~2wUhd_3`cFWCmoFpLXNI44wwoN}42~kJN zy$>*#(oeWtL}qsF4KC_P`C**Pg91DVt2u!mF61Wq>n-MTodA!{3~`Yzrj;a$9N$5FWww+itFLmUR47zla| zvEWEqh#G27jIJ69gQ&UH%@{ZtUw8ic5j zD}}=-+>vr;59e9Wc!di`${jFfjOLa+(Ssz24%AID1y&Rz2eHy1q`(ys7q|r{L4?QC z1|ikcxqb$Yl&4`^i)$mj=OM885HHKM0y~ld7S}_%z(l9h@f<04U8ymPKjkU|OF;hK zJ+5V7S!<1%%|s`r=SX?j%Q%?KY+IR_o+IV_eV9Zrai~A0I#Qng5so`DagINxI#P}~ zjSiHF8~icVk#hAH)j!J~KT#bikL~1oLh}>Vk@60F55S!c{bY!qBjw*?F~XMF;VQtX zf}&y1k+KX@IpGkfSRE-3#w?>y8B= zF2=6qa=4lSJ`SEE<-}jKVsF0c1@OAKC{dYPnW32!GbZ>+lu(=|7OQ?gk=* zqQQBNl$TA=1aCH2foWESU4C$N6NNoq1S~AS9087$uVC^o8981kfNB2hMAV3Etqk(oM>^fE1}iGi>Z^{F7nV_$(+$jHiImlma;l!$Qa-R$3#vy^vHZ%HWU58on54ER!bV8GE9%#( zs+N0;ieM&(o+IT~-AepUQ4vIZez+pN5w!uP3a8c=6~W878{tS)Wy}>MLXF);D9B7{ z^Ib>EEkAKGjcsoe!&EnuYtNDLHrOgT33$CKDuyWp*OBs{m7H6IY}$PY!9*eF>Hs>BF)+M|w?R}IuF zi}L(Lb)-DHoMrLVJJi=tR7c87QdPi(9?_Y18UfWq@~r4C@9JD;o56a`5t1@XI8q*m zHL1)y-ZwC#K+lo#wigukhk=O(Ic0EDN6OF4(nM4Dy7`v=LR79WI8q+gMq!-{%uCdd zje9k^2G$@V;FKb;F3VVZ4{LTW7+8dW z!t!$Th4#vleUECb@vsn3V2LsR4`J5-^DbMd?0-fp6+(4Zi6p@uO_ra0^3HhtX za1lYFHOjp88xz6f9xXJ2<{;%uolOLN-@3^Sji5P5c^C`;2{hiLWr(0TNO{>=6Y{f< z;Ua?OAmz;44Q;eX3yq+hdi+-Ayc0~wi#=Ls1m)D@7QU}x#Z^Mxr9B=kLj*5Ck$h@$8ZHXdRn;CeYZa{({nriH?G|+n)WQd-u2aj+Lbt5_Iz_lRYb~bA8bDGEXHb;i{%wKh6ug@VH++&Ajm2vkO~rzU%>i!G?Xh>bE%WoQcLPl$0e9#p zDwFCDPgKbT?Rot);zLGC?$R@`#9q9&b{UA3fCu!l`aawH3oht*eT@P8pAuN}kZQvFJ?#SntU&44!f>c}5>aS1OS_l|jZ>j^uegGy&(NavC*$ z?2L6nna?sV=?)jQEhB~*A@L|n+tB%!yrvuAD>&ylncPKbbD$~y`f!Zla*Xn~D+YqucQxcY;`SHm4=Py~nb zL3-VB2;^`+bx-w}19wyyU-+&xjIpzP$m94d0n{BTN>(&ZDjfAZq|kZLBIOCwJL3L= zy!kdb?t#wWp?c+DPew0j9nVT@~1Q9nL{0IM| zUrGQi;-MTL2d(Ejh_A?0*+Zr3;Ckc}@LNcaX^C*3_fX@P$Ctq>x&wA5(^wDXa07c4DBnl$|#F79z%kFsoV^VC|}nEQ!xI` zZVnj6K74Eoo}-+#vBmENgz}WfkUUDG{1w2sNL^}RqZu=5xC}&LBKBnkuh0NABLO>l zU=@&7$(%GQT z7Q4gqX7r2PiUHk_x?T`q&yS1K|r;ir%_|@06Uk9T{{A zdnt!nnxdaJr7}9yr+~3EW2h;WcRZg}s9OZ`IF3$W!jD#azN*kRT&NO^r*VCekewc2 zPof9Q(47ZHM_u&9+0)m-a=x(bMvZ6N?q-2>=4r&nRIncPAMCRWB$gQ=n%c-{K(B8$ zG8%g_OjpWZ@Pp4#`JIL_=<$rk^d@F5#GIJzF-$zHVMt#yx_(xvQJkNjyYWC~|N9{V zXij-*YBiR@UqZnq7|sM+(!4?@1s4GZCV~c!xlp@<&r$(Qm`QcZv;){{Hn!|A{I#K* zr3_Y-vH3PO>u1E~IhtD^J9vBuure@Hx>YHFiPhj@z2bsWAA^qb-x;;-2CouVrw3R( z9NeTM+G6oJO-#?hr&59U=?HA=@X;a{2D0fU0=TK`A-O(U?;-&)1#u_)XviH*#nG4g z=!^$*WbB$VxB49YlIh`q$Pr>|Th4O&I+=+f zGK2&pm)l;79FvpcXFE2^&-t9?E?Nq8uS5<0BH9YXhsVH5+3|^^rP4G@<;3-m`0*u4< zz06=IS$(H|c0gm@CdlZiRL?pW(E{0f6f>UZCoBNr!BeUJ_xo$bq9`R4;|+_YhF0uv zR?W2t#dbFVHgpMT6+kcci=O!g`Rc^FlyPlD79!?96Ua7-2*)kG1b$~xMeKMM^X4SV*4@L zOSbBkTJ|pXPBI;ZZU-u;%979lB^c%B;^@5`xz2fnLyx5B*fGlA8NV^MgZ;}6IUhoI z(EE6j!zfGFJ@L0ze6l4`r(TI#m9D#fuTthPN|hxu2B*9h2K++#F=DJ6Te;pYJoDfu zJhsXixJQ3l3P*5PWoJ}}=r>-)OlGyl^5!>Stq!4J?QS+GNBGCqv5)XijLv~UL~LDd zwz^nKG!Hsr>)CIq(X(JX$JXcdHo92Vb`5YsP^@=^e@!{lKei#meu~z`YPJi*g4Eb& zY==VZ(EkhsG!lnGkWo{P`Hy|>>;a`#APq!`)Tb5CvVKEaacptJkvKH%kMCvTu;v#u zYK{;}H9QLPo8`fBS#E%i< zvTSN2+EEb#TYmo+Xc;K%nG5?Hq@o7Da8%s0;W=$J*o9?^Yc_D1R;bqJnN*RuK@ayh zr5QK)Gq^|R#K(}hA?%FOEZkGY4Yji!WtnFHHnop1Q1nz(fw+;GP+PFiNXjy9lwFqL zQhISO*rgW{eeo9jy=cD$qAy{|aNJA0sS)=rMAt;~jvH;i<%vFsZYgez&CDmo8aLK1 zMO@VoCB+&y&UQdKM@g~9jTeV#h>Mb9je9FMrafLnVhE*JJQ*S<_$Fk zL!`Nf5$u(Y4Gp%)#hh{;^#)=-@#P^X=kGj_1;IC~jkrm3dgDwfmUqS@|A)7HNPtTA(&Bt_;$HYVQG5%**GFBzQdMZvBvyXw@mn5 zGXx2)P_O?`EKNVO23@E1#?$B;tk?0I$tpaYPr-Uv1ZQ+rcm}I$!>ybcI%ct!mErTw zI${B8HY*ih&?Bt!WBH7(F;Or*te%+cjFS`O}uBf?r-M^M(EAK(rIYuqkA z?<~*pFr0Vx{d7L>Y|s}zoOd?l2|vy|%QeJ@^UjVVEd^xpd_n7Xw1FtAaf%P;oi#$} zh2%uB4a#b8&!;vjD{>FUSjt+qAxv#nR--S%)D~r}nCVwrl~sSKPi<3HO$6|xvJUqO zQ`?o*tEpe@P*wscKPl_ZC_i+qwdoDN+Nmlu>DFKUqO6D0{A!o7_Kx(c-O4(B$*1vI4!_^kuP+32p!+-b} zscLO#hov>~Z7J(MrRogCRRi(Q%T@2_KI-r#E%EJWVK(U`IuLW?pCc|eij-fwgjFp* zxi}EtkqYlus!!HQ&@S;k=wpcN+eO9qB;I1#w--*)AnqLc4pZ^HiJN`j&MLkSaf|5N zRmJzEo$Q7%`_a(MO7%-Dpj3Q+>WSyRxT7q702SfKVf;LhO7rso6+cK0aPBK{A1rb2 z7l!G`_#qNeB{x0952d__4H8wC&j*bkCc*ooHI5{$>tptC+l7c-KIx2rM;I6Q3NJ&P z!uU>9fYa_rDkJ4db+CcXHefpjihzWTp83)7#KcdeFG0_qxdQx8qDp`ei|jn76+f98 z%Bw#+8!z#%QV)3z&t4KU7V%SQw7f=SpH~yF(`dH52D0;Hef$hsA+Ncz&pQfqChe8i zeAye`20Du_%WG8jVl8|s{x$mYcMi9Ribp=bFNKX*=t|{bAjE%2??CIX1A{abC2pPZ zOSbasRZgfp!4!Omv1I&GZqk$uir02Grl9fliEy8G(EuO83a=t^nSk{@FcDZl?j$jc zPlYk)F%0{N7eiYvw3!}FPTDl!N&!Fhz$H+kP83!NxZMLe3J$nhz~4QPYp4T$DWE>+ zq&vVh(E+~_u&@Vm)pWqG1x)oonG!XzT_a!{59Ai$_*^UCa1Z20;ehJ|ob7@8LVSKN z;O8C~UCi^jUcg^G@MjdYBlZUYFL~gq7!TYaVCF+^CdhdnCMg>QjPXFTf?vvhlYrGc zP|j~KJ~s>4-UBa$L}-hEFM8nJ5OAx2^E@!ic`vrx1pLYa3xt3_3izuB{_&URbGv|l zdf z`g6qLVTl@ME})}Jz_e2#7<=)GHol}4cZ~G13)&G(qwFZ*cnlOU9^u}R7H44eoCEoq zdSJ4L4GG$ofw8MP(ty?PSIj=$vn~Ts_yjXN@qQ|WuUiLMC9302769ZOxAB>%@^rJe zs!%9c`APT;qZ#wfmY#~CV0L(k&rDJ6%!wkcLc!B*AU2$C)g^U~9y zM=1DDcYxWc9?s%?`7XdrzlCJNfUE!m^xAKviXsFGhJv|oBFr4L>Q{`;GXty=3NFb7 z(4xJ6l3IjriJlJySK-rad``-7jMPu4Jv1s5tX3CAmWysJCDjH!EX@rCb5B7g-=siy;E~N!k+%=4*+h$j1VC`!6UYT*Y+O3hI4!>mY3VQO7gsjsg0h{ zNDRRgy0IO=SO)AaL~NQWBz9p1npqMu7rNd8f?`=WDr^;Z7oJN zSUMEkIvdfML({P*OFFeiE*Owb+&&8{el8`TQxe9&M;O&9?>dD35pBh|Ueg?g?fmd8 z$^O)(-#``r33VK8OVPCE5i!+lb94oVr0GTAbVYe&2t&T+1+WB zf3?H8oQ{Jy9D+kvIt{-3NRbt~eIAp_WvcK?p$H5m@|CH&0hGc+ho~|&Yhc|Y1{u+{ zzVoXxwRoE|22wK9RHil;7_NVaX4PD#&Wq@m`7X~IeX*jVF6RNyEtN(ORHmN&mb)mi z{4&+PZ;#BLf-oZGDX0hNpd3%|gbmgZ(D>p2aXS7zLg@7wKs>RHos(0h z;SLVs3QLhECkO$b5vMF?Tu_2AJ{t-6lm|*M25c-~4G-MSF}F>dGEGWi+T|#R+w~Db zQM$#EYRXlUUUoru241r4xxIyr_jg?eL|5bNe17t7oYBal*M(v^x&UkU^J#+}48`~} zRGAK^u{%%v{q17*akBPK(=r{G!r%}>KG-5AulQ6Jge(#|y^w+vCOPB^9)XL~A#|SN z5ZZbKIkwG6=<;p_BjH7lz>|%Rgsv+b!UB)5CWO%Kq!YyV9)T;LBcb~>hj79p)D9u^ z2y=pX=n;;F1kp3MLnw02&4=|NgkIk{glZlkJS3y~{Ok}qdxTsegnmn$NKWtwG8i-& z)qkEtSnLsGC}{`-YQUD2ve@boq`xiSDOK); zjhI%ENSX*na3e!Uyb}Bvo`H<=Uq8ja8`yzotD^kuoZ{ch4s79tCu80aA5G4%1Ml`v z@n7Xfw#34p-hk?y;(x#nY<-3Iz{DaPBJmu<7FT!&%rU~D2s^NqRc>ZJOkM{2@c7bM zoYn;Hk6WBp7Vg{={qKv@cCoIR09vFxq35#~r^(xUu6sa+y6G3E{otae^RRadVsTnA ze52aWf={~?TY$4T?ZegpA9x^>VGC?Ujlklx`Y_$NSyPb3HMFDA4o18Nqhb;Q?J`rbo1 zG;eWQIMy@KF%Olh<1S81or<{s1fND_sia{R|AVIBn`xY;8m{r_CNi zw1B%f?NVLCIOQ@B1+zGx zcDRJkX538A5NS^S<)bNMOsx!D3CRGnIIZA&rj%ksL9;k*?B~j!#j4MsldooR+9GHP zE_Uh>>eDPvdl&NoGXM2Ts86#vtu-u2@%g^z(_Nev(+d5=I?tE8I4xKQHFKW_xQo*Y zt~8zcZC9L=m1c3;bKOmMnD?ra12)55oL1ooj)>>XuIw?mVK{Z#EKVDA!L+W9>1oJp zvpDVB>V`2nJ;Uj0%;L1QIJ=5IVv6LdgPO%@ZzUlnn;${l#cBPDnm+cF%Ru;Maaxa# zri;Gsh7ZszPRoPY3n`TX*PM_YFqW>xno=pxpfqdryk>El?+h}(iRa5*oR%^IKrat) z7pG0cagx&0P4dLKi_>;v0hFlmrLIp~fw_y*3J);_@{{Y`VeoE&U;~dy#gkz= zTQ;z;I4$fAV=O%Jr;}W#VhE!#6=`l{l<^p%RMN;SPMdO_)G4+To?(WaEAHa7DZgrU zp26Ospjn)D4c}s=N=*V7xB?pT+AL1%Hr8MtF!r~NnZ;=>-^VQnTou+O6iih%A_%g9Tz{aoWlj45zv< z5VJV#*R3r4ITv|kaa!+H43G6-j*Ok*)t$v@t=sU*w|CQX5Q15p_B7VC`sl~>a6shn zk8&5M?ZjlHk4zdp90u?;c#h#|!E&$P!B&gd_xOW|ZOz6mj=nBCEMh<6l`7r4so0NY zRZEYD;IlOwy2)Yy74M0ez)z-O=@;jsj|R}FJ6IpHYz^9&?b3`&`msXji+C)H$S+wx z1R(@OXi;ju2mZe<40oCa=SX>i9W3r^-yDsAcpal45s2{eXV|RC|hi*3FrsF5nijLiLEwkyN zVwoW6bTV-yrqyHj&VCX}um6Z|dyhx#chuq;#HWjkB8wVzM;hMLPj)scb)pN}=TTud zUVFr9wLaR`D2XK*7;F{Ame8%9F>%|$3_ETz#H}oMyv8>0RYa$;7K2{8>@lSKGmNIb zIg!d{Shrjm%y1&Z8Y}iDoxyh>9&=KnN0Xpzofi9mCbw2L(Bqu0gWYIgZ6h?wtlwJ_>t}|@!*h0R%qqO2P+UPr%0r2De0L%IgOfle*3}9v7 z5AkIC{LclQ_~m;a-rM`8?lT>0zS~ZIK(>H=e8*wVNv~Vc1)a#V85&zqZ;Lba_W2A9 zHbY~FQoTvYP&7yy#SFWa+Gc3%FuFVotJWEu>v~7%Y=*`Tr-9fOBj9Qew9U}i5p*4k ziA5~m`Qd^ZLFo|FteiHa$7Q6kFh)T{h0`w!O{%c#l`Q4 zm85tQB?OG&T`$x-@6L|xt^IMvdmqocsW!rBuOC8PNa!o|FW;}6qBWUGlU|H7kulnvRFd7nL)+`OlQQt={vUF#5DKcZbD5=g)!CFsVg=F zaaNRPMo4S3kIsmV*JZF8T{5eEdKpd?>(~NeG}qbiJw<2}A5ZJx13pOqSOUfk*YYJE zO}c;EdWv00o6!eLr?$n7k}fjI$6hJwqasj>p$V-@o6{g6tFKxahf>$0$U0HUvVr!R)6MidsvE00C}F$ma7Y1{ zXy*&m@n}ei;SX_f6$ap<$v7YJ8iYQw^)W6peE|gPsp7(k*DUt!rsA?tUf6f4$1EU^ zs^qGoZsQ{8{Hvsx=A*Nq*-Q1BQl8#e`F5d13VyW69%PiY>q%V8;b1 z6$_+jk%uxHO^(%T+{?ZLd5n79$cz#!$@Xu5a*BJBHtsg+?ra7I>({vAbhMpmw(4I; z1_EFO8&`tnRWKE+P$LSH$B7YnOOD4ozd+&nL%TLdrqb}K?&oyt{P^Pb1E}J zQe`XWxS=|FoYB8+Tm~|hm2=#y`j4-T{vDnHd{b}u+<^03(1{=G-?*=I{5+$7zj7In zE#M~oObatyI^=>*wU3cB<#oR?cw;sQf9i z#V!d2Svkj5@}&(iVt2S=0~~wAN>Y4`HoRn3!kiEF&Z;-AlW!6}{7YiPA2^A1GE5jP zeMw;^Y9*PGuC!S>$35qJvWrP}!wd|b$cnqJCpI^c9Fjg1r)XIz#`%4fx0}ek^LQF7 z#kkVCTwdI=%^lu%9!>gQTPem}q?gg!rP&{GV`P+KTumJ@hSkAM*RN5EaVh$0O;(B) z)Q;)7Sk)M%7}wvo?st6bN4P$!$P_Ot0^ffkyyF(~qk#Soi=b?s)7KMK8w|-=NppbZ zAmGgnknsBy<7fRi&0~vZt4_zD3FG{_Dn8!$Xfa@0fwiVqKf&J<`W`-``bZqjqU99- zR?uR2aY>=vSogq@u!(!~0P>iR*$~LN5)TfRzcFo0{koh!>vW@d%Iz^j z`I~~!Z3o0e%cGXDamFbexn~_Gexn zD%J58Q{3u!+kWHf$i%Y0oZ`^l=FsE`)luAc$=lbiyR%YNz}*5K_COXIkf@lty0=$V zqmpki>pTbI)YV_#f(0UVHGmv-F{!Kj9<()B=}=7S>VYlz+QorT-B3*G>cNvmu&a)- zt{!IU>Y*n1Y(V4LUE*y=)YR3(V-BM}@r^3!L8+@p+F^|zeeHryB|P>`Dnk0rbr*^D zPiS2|exwP!KlEtaMWm~%Czhd;ltpMo{7zN`WZAE&t0!+@l3fVZG7zM$o}Ri5S0!@x zwqt@_hNiBb`34PNuu-9y)YWs9FuQz%{k`L2PRLSMe;+v45WdYokh*$);%aS6IPMWl z9gwquLHoROiFJe(9^sU?`;#AGm{QuFgkrc0{n`b8uMBQCXWA2m=14@w{|<#Kh7cE=(s z>~5rSE*6lL;|av2T&`~Ee3+AE!uuHrT*~F@-=B{q2u#@I5zO)tAvEAyuY_>cBbenQ zLTDJVz!3Z>O1pIIWZQjOxki~=nm8CxDiP|!)8NPO%FjZ_a{5sh4)Mx$sSEd+B7GXy zg$MQ<_i0QlcO)yvw;zWlPpAvxepKG3y6$#P81R^Y%RP{VI(?cH&u`JAalRq+z37DFYIvS0a26IsIgi0Xp zY4SG5b(c!u)C6Hv7RCmT!42K(H=HKRokv2|P792l6t+&&PLCiMcv%X?vhh><{7Z@{hFwo zH$BkJJk*1m7=Z7^oK_?N-U|uG)YTpzo+~hIb(7kGa*h0Rh=!lPos?CA9qvE7gS%3ZiajMpcgCb>xKxW3Ol+VLxxL$UrR z<>78!jmK9XYiCC!)S7b^wH;d*x#|aqdquAMct;sK?_Bv=R>F}fToDIAMx;EU@{9XX zd3)V;mnLqvbHg|$jPE^$+YNd~jw9{3aF2RiNp=D)ID%So;tiNKvP%A65JEiLYB%B3 z{01gl@?alE%#I?3R5l%il%73M6|?GXxb%Q^qn zlLmS@6ylci$5V%lQMoV_;+AtU$J@rHTpJ2;%enmF_r}-0bP!t3l^Joy*EJ7HkfVnZ zt}U2gG)UGb+%%_Bb$rN3`12GdbEr7GOSU?yr`>O;vezTyjnEpQ9*^!sM&I~;5$bx! z3?3Jv4kz5&-pqI$?|KZ#9LEdK!qO`?Qop-Vv3{&h4Y|GgW-U%|c!#eT+q zjD&wzV}3Co`#b4kA~?YM3KAsV_f9@#@<~NH33h_Neh6Y7T%C*wcrMSP9znE*=}#X1 zJPKfC2JLJSrBuc4iLj_@2Qsabhq|>D^D@%gXiC8ST9SwfUI-$@Fnlx^J-INJc??ew z?uzC9CKJuWu#vWVVVRgnhZ9EaN+2fZGoaGrWTvEE@S6qgJ0ul$yQ>044)Ni%9HSdb z_9$))LfVc!EuD~+_F|=|^eL^`gESsHU+rn>glzORx;kOJ@Cc(U@gA3i>~sd}Tcw*d zjSpSYJK)CfcA7%hu(>^uScy0FbwTS&{F=K!+v3988vD)f>w-3vxYm9P_jN(DN&Los zi$Gt*LK4%W*sS=EV`gjZu+v}r4 zRdr(Za@mZDHktWBjuq-DPoE^#XyFW3KMciqNSavl?HoqM{}75T#uE3$+N*G91&2w; zJS>TZ4j8Bs>kP-ZLa@I*3`dJphHKqu*vf+Cv_j(YDu$bh^?t{QR4{CB^5S`64gA&5 zhwnzR-Kl|xv6-3J@}i^5yM-d7RN}MW#+oUfu^y62FRexlTFv+pm2LsMOHSGumP*}W zeI~ZP2E(1c$pAie7(Uz7#Fs5Pm;nsKLYl<3v5}zxtAvTcn(J)~DoI}(b`*?{PDoA!jkZiiw!-UHTsJB&s# zbaTKoaAp2d8R7L<0YhA{SPx63olTL7UI`XbQJ>w@mDW|*ONqVn9Yp5z$N&z5rb_G+ zOhXc1$pHStRjuzloQFs6X8=cHl0UKE{`2s;-UCgZ=fc<}v48Oz@Odl)cnYhX69+WI zN$PYr1Nas`Pb3c9-Vi=>9MjwmFhTn3P>&%`0`rNCzk59Fre)LUT; zoq7-62YC!L;AMS~IP6M)vtjTpCP;aD9R~UXVGZB5)3DZhEEB~dNOR)I?5B_|N4+pY zVz+a^{`MHgyNW_A#*O(Ai71xGO}^_rBra&9S;AD}_!2$9ZOmLdwv7iO!Rdc6 zz3?TM^Mw7FTBjHPKe=^KHxnnPR73=q{C{$*Lt^5Tm7NfWegC)I1d2ynNu1i@w&|mM zdEGcaE`15a-$xUtfBC@d(k$%qQ4T!impG$zRTMc2m@0*0Jmr@-vq2}+GR9hYm_6l} zI7|DG4@22KT}$EV>BQFxRs;BY25|pmfUoyhij;olfo6L44(zDJ*#)PXYO&i5G9a7c z6R0ou_H*tZG=#r05L%8#=DgYN7A{6?g&=a|b0cRYjIN5@nA^DuZd_zSxeNsU+L<`- z?g&TqGr_JBT(_LHRKj}u626^^`XA%5+(JP13hSND{fw+n9>Yo}aQ;7sjJdwsqjJO@ z7JoEKTreNwP|;6+rDq|;Czl|D7DizHS_nB{S(w4Xr3rJ3iS0F8TQZ=+ zgi>M$^Xm7-kAU(pZ{fc9p3oNNEy7oZSWcqWaa>%-IX3cyl?wv+Y~Y~_*rP3(-Zd1z zO~J9F#&5`g%uq7fl*S(AafYEGhuP$Q9$6BfCNrIh;rfH^CTpfLBa!0`Ls?9qEc(G9 zQyG?of?@+@)%&5Gq&{s41;r@IrjO<{d!A2+f?^?M*Yn$%5y%4%tZbV|Pv}+88n9r& zkO+y56scFB5p!ZGB@`4RDWFfiWqh{uz{+e1S^CC%#^1nD2&Pa@-D$TOfKBtDDz+_@ zOV?Y5{P=_cDMxz*R>d}ka_c6`f&Q2Q6>BJuUd^59?-@`rhw|!Q=b*>&MLjB6?4f+R zJhlx`(F~{@k z#SF6NhJs?CMC<&Rj~213LqV}n3hT<)z%Ae&53E9Bq7~KSw;`$57_c+ZjFQAg3+fXm zkeCQ8a7>SikycEvz%mjlnE@3mEk;k=48L_Vpkf+5rDsEnP5-_VbT0!c22yE# z;xnKHq94r-v5;c*iYJkiDH%{Pk>d1rKhS40pke`)(akaUK%+d=?K6-iLMf~N>4d=F z@+cu=;=}}9cz|ir>zN_-D&06#%%nuUvVpcwJ2>UhOb&<@l&m-IKummv-86>AL@4ET zjw7HH^(aPwSV|Rit)Yl#BM)^2gv19;m`$aM`q*d4l^2<8N4X-pxIp?Jpsk-k5 zNM8E?Nfu)%O<#ydBoF+5lEqr8qQ5+iXy_st6CD!gG}~ONs_$ZjiJTabz#bmS>U18& zUaGD;V=1P56KvvoKrb!^Qw=@7qUquKg@R%+)zs?>n|ZLQ9#}=b=qJ|FmPS2a%0RmA zPi&^zIt~k2Xj=wUjHWvJ*64##G*)l^Tn#`+3LVHjpwObX?=pfuZTs;?(v zZbcYRXJClk)IisLmsC|&SoN7<$I!?S!>OVE>A12PeKRn`+G(WK6*B`c(+kB^dto%z zD`CNkn)}LQxD^hWEVL&2^bRBFkVi9-5j&`<{&S}()PFKC#1LwxhvT>pNpeA0A?Y(k zETQIFEhd|hmVqIrPz&7=s}n^=hYSp{g<9$&YfVhYXJGINDv53NoN!}Lz3VbmSvv6r zz~^+&>&6N9}qzCPUrBah( zhParl0lLqc8Zkot0W{u`dK(??AnKXEND}!C~ zF#FW0q@mgSai934lVF6n1Yso&FAw{W3cK!hG2ysT%ycDhK72a2rDh=B_Gx$(CZmIwtf{JM?ZMM-0r?2)Z>Pd zNZ!~8j5z713?5$_h3Jf%x6p)mKGfsY5%4&EUs-tcJ>{f5AX%P3Rd4`S(#tt9m%ABX zSE(=)oHWK1L2O&2~CQIc^*xO%?iQe zZ#|!W{?E@T{L>D}dCd9!o zPLrlr_}rY2kHFII~23RE#3*E=|s!%SoVKF_~4;tkYYeK~O&_)$?eu*YY`7 zI~TJ(r_zP{kUV=;Go8$>mcZki?a?G?wdc{KWp@(N zGWRtUrsUpk&tn4Z##~_1yvbOtFZ$!Mho#cWe(?9s3q>F_{Ao9xM(F8I0O$9fuWg|* zOmHeeZS*2Z3kUs!465yURLU zW_V`-d;c!BxzK!1@&vn^iChSwAH4P=1b**2RiVvgs-twH$ce6nfU1xq+7b_iqNgY=K57SM{%(4f>u2&t5RA0#a4hc(93 zhC#dHNb#o9F07qTT6**bz~LFd?0Eq$%Q_K}p6!8i>~zWCvu*S02daMNao#W;tEpKy-vjE51i3De1o9VvgtJ#_;@E>8_^nwkRR7&a|k z0z7BK>Vu>oh7L5XaJY*(o|{wxVdLu{ZpEnI8g(2y6LYrX1Xk^xr3E2H3b*FiV|Lwz&vZK>6nwS2$ zzvCZ?eyI&aA1jS-B;spIh_C#=0Xm-bHB*TfyS@_XMXak&`t1O^1-m1nb?<Pk!TQ0xaf3NT#Y#1NL(M{g|M%O3%d#cB?Ob{Z>vGI+?6OhW>f0)h0xoAQ!-vZRt9>FSimle;P*JP~=d?<;s=;b6Z|(UNJBh58 zU67@gZvv@`R%7&Tm8@2Cu#d*thd8HMC->m4d!&n073&(lU||$8>VKwC$lderuby`oLjKU6@#CreS9+e z9u)UZWo7+}_+<8_Px|;|_Bybxa5DQ&^pQB3{oDPTPi8;xh31pl+oH1JWcF8~d2lj& zv+O=TnY}l9KOD(^3ns-O9LYXGtHa7#drPY$${K?~;ZbEZALLWVa4!66jblfxCt*qa zhC$i$N}WJCSJUdGvML=@>Xfp!!24-s9iOb!83>!D)mdfzRY0k8$|4l-@5;K;oz!^< zL-n|ztnL`W{GqI8{vdTxS-aoX>XNd)Ye(ubMt7I7{t!!-8ftY_S*xKFuPJK|(*CEi zmb|IdU&`|1u!-x+`Vu941G$tLVP%y1TUk4xO71Fa zJ}Cbv>yJ-xRHm}#ajR5Tz7$gTl=aHzTHRMxReWA}penQ&(Tk6&@Aj(V;p34lq{frA z93Ku|CTkUPX#!bA%K6kQWc}IFrzVm$w=tWEDooFomo!RkfN* z*0aM&O(Sa$>gaT`TB32xAZuQ3pPGrIDbN6Bk@X^K?rUT{IH1()WSx20r`|w#^-0a9 z3UxZEIb@YUC-5d&8!+^qOV(W&n{SbI>RGMkku?+j|J!7}`lVLykX0Og$$YXlqP8s{ z>kj&Xg;b$_?_ug)vfjloa1mMW!|r~MD%2X$O}$UnJ6B14K-Q(=xF;Uz>dw;#)^9(P z`iQJIcH^2Pvicy$myop#|1Bl!yV^J}hOE)8m0Ctto8?M*R+IHPO885%eyFe1S7faiMe1v^_M^94 zL)Ljzg0*Cw+o04p2oGOz){%Aa2U6dXwK>73z9XwMI`!|#npKn3db0AthWY`~MR*&? zx?dX?Ban3uS+I$$O)wrell8Ph^CRmf4A`y6o_c70WHo}6AMu8oxE)yl8)^qx>(61g z2U!I$oBA_ZJMi^vCsn96WSIJetZjFd+C|or-)Oa)tYbH{+CvqZjp(HIQiX=Y2B=>V zB^XZo$jbE)+dhz53|0@2br}nz4w7}emFC9S(5?$R^RlCgz0whDu9F8)aw0nLYyZLo zu+GDYtU>6KwN)q;n~AI?Fi-tfE~Fxpb!fao7d{_#BD3{v)TbI$*X0k?o$i9z3 zt!K7=oP+BctQudidT1TsD=)V0Q&11zcEd6+YuRbO@*>CgeC5SYXj_ritI$0G>jQKd zIjr^HYjhhtzn;_j>Ni#o>vs~=!z{!%kClXlig~RRSU&lzAG#~3hcAn0sE15YFa@pd zS#eaJ)d_03kcG1Xp&rKnp`jiMmM2xjnvUUJQL9}hRu4bT(@+mrpiN_}cRs{X!`89g ztR7m`!+vn9E4r4atq!eOJ#@opv!oSS1L$RuA>x!>O}Y8%$NDSbfn+Rj>}A|Eg#e!EmmU zwXYTCN33HNSUpU|gji*(FzQVe>&{ASw^P%lkFmfO2p)ZE$ zP!D~fW}qHk#Yb7Fho=jQdPsUG>fz2&)K6ty!hcW?Ycb6U^)RBWV)f7x`3Lpz(OamW z==dQ=M?)G~S?`pdNB|^|5+r80Ta4 zaI_eXIaF36q6_tK^nFne4=hm++m{imho)J4tR7bF)vO*0qlZ1MtXX?RJtUtcRu5~@ zs-PZjV^S6BAR;(WUs0~mL zsRI?Ohh7L4>Y->ZQ4gi?AJjvSNE|AytZ{7=)I)`aod$?{7@}A`P;SlYVGha!>R}(6 zFVw^0*`gi>JR$1gFfgcxeLF_}AFGFn5uzU6hx&th*pKQ3^)O%^v3gj%MzeaDH$c?G9avdV56_{K zgL>e-f=~}m2Xj{+^zkG({q2UPi0{t)$Wefc(Ug(`e75=1oXp( zT%sSgZx{X05#QNbp8Wr@zV(5J6hf2sZ=!dhZiuJ<-bX3p} ziHk%(+3y_f;5v4?! zXJj2(iJ=l%-&7I(FyML752evRK|j0*RSf;m_O|GUbJs*aWWEXW436kap&xom#i3ghkj_c4(1v37>rryhXwD8es~q#H1q?# zOzIF>(~&)gVNP)SBP$c^vZG|(UZmAAD7O@}KeDpHAo~qQ$uzA_KtZEvpG1~J^_)Ux z!7e*Z*1z*foq;MZ=u>CO`W}7oIUF|L-=}^Dr8(LkOb1{W5SJ}V{Q(Vo1?Cybp&>4H zL&7jJz6@If1%8FBlo+47O4eI1YjusRrmt%CCt02RFwe+JMK^n$tXlZ*2K+&3-GnYi zyS+tL3kbVS*4jca&)|qr2h5?^Sx|ufBAe*vT?RH;9Cg09L)7BqCo%)^@Qn-2u9h{o$r z{#&TA$8%%vQGaSAf3Xb~*;9Nbpu^GVUP74Wh>|jLbEq(np{dbA?QIS3NQVtv73T=W=nlaXP3q>DI=Y*pNpa!ENdKGwNVzA`%#>oK@|9L5rT zySa%+V~@e5;xLx#>@5sqkjLP%a2TKHeedVYN(+d@MuQR zxx%Pct99Y(CR%@IU}((!B!8)M)-^esznYs3Mh4$tlKi#K_73(RBgItJW5{Hnq48ZN z$!j!02gzL~JswZvTTPPJ>duSJttK-cPm@5u(O0%X>2aW6Jwh`%Ac3ya<2PZPh5V!A zkEcnX-|B^!l;DHC$yeP?q$I&eI~a~WV1v$r>A43JKr7Y%yVz=o{MNOEyLcv=(0dChzN1KXv+XbabITbAoBj)5C`q#Ur21V6yGltu-LrcU6 zDfuUzg5w&bKGt|V?bF_%{jAe4h7nrt$J1)T7D@g^H-hpC#|pb=jOm!>0d2!ATnc z9?-e6DK(rw{N}^7hpTpr#39T>Ith~>lBkL<=(PQH7^5d2)*~#FJI`legk?h1j_TiG zdx(rN9)m3{Bzyld$T+5RV=71(AB8ZugEKW$Xvg)K^CmJoJsS7!>1e;{n;ng`n;wn3 z_;j=r8h1F_fflIcq&vX+YL+sy&P7=03qi+bf+ld1$T#5RQd1$|I8F6kCdX*6a`OvW_&?Ia?0 zSy!xM;@^icw%f4Y?I=3Gm$pMCAnvvj>FWc;Z+C1DPT z%|Vvxxv%EGPVXD2oy+6g;~o5>A51XFX7%(~#P5O%|Zkagk2dM+qs8{nYOkGuS7GDsv=LL}noTF#Q1K(-B05yg$SPE~1ds}fs zgMAwWpYoL=xAjE%`KZbi`HhnM8^X_&L4w0`wGjRd7H|qbDgOKX$Y&I%_`~bs5d$RL zBhd!l!@D7?aIbexI7j*U#M~6~Tb79hgvh7qmfNukzy9L;fVdBFu3Ck2Q10OfJl zLezyjk5>NoYa!O6)aV`1BIOC|pX_TPReYzVq+~XH&6`b)=cC?Shp1X4`#GPMFU>ibZ z+1EmB?v1$p=K67VL-4tH!MRUijz*gK1J|RI3|=o4oYw-=ZbB%4nF%|cXfk|cUhtm& zy*i?kz<^ya&b1ILFJmkkgCw+YJvnA8pB#s4A@=-@sTXDpe>~$j6@L?R19QNb=gPNb zxYt6&V3Lcz&VZV0A=+d{@$L6e=^d+(p!IzJWd(Y}L#67t*Fu~?W>cVnlP)+1I49_sb@?zIqOk|5yO$5YI;5Y;i|Nkh|9P`%8x5M$91vRs<$F(d`p_e#{gHFH%{w0b%^@G60%uA*#J-`uAK7os2-q zE7beoP(89VVqe|`Yzs<+yVpWw+K)VF`#6ewEyO+4K1tgA!fHHrGPT%wxbB9%!HH7kq*WkH+F*_Sw-BYrshQ39U%Pj`n=I*FrQ$HzMFW zp`g^n%`_jHK*Vlz#RmA@F)ZZLhds0aMvu_Wrl%qD!YJ-r^p;^{ZR8}|7R271{L4q> zp&}*!iZjj00CO$Gz?P;kYled6T8Jk{nAY6M4FF=zwGbDEQ)CCq|eDp zb1g)hiiQ#Q2*bS=VnZZ8#c)x#^cb9HPMzj6ID>EMS{04SFd{t-xgv~r^`Ua6{k@x> z;q*r4T8JAL5Y~50kv`Z#&9xAVPXj&r2ugEWgvWWEyO2rCU0{!aWVs- zxfbF(s44MTmO;DsH()GX>T7&9@_f42Li~)6X4J#;mxLB1BEd_iBH z7fqE~2rzKkwnNOd5WQjLNOk*$u`4!au7$`B15Yr{!NA`(X0C z3o#0ooNmJwW`SmIj(C;Wy%r+oHRe=E&r$BR5HDc#=%eN?48&Xu(FLO~oND1Bk6a6} zw;~^NIoE?ZGIq^&uZ0*ek%fPio`Vp~wGbD^F?=FD91uDD17bFOVhb*(En-P)7^#Y1GlyZSIi)eKU4wNO<*y5; z82hm?Q~<1KcCa7sjbVr0>|j66#f(Xm|3!A-$MDSEpkt%_yL0=As62Z z-(thLIP6LOjRAaLxElT`AleFYq&x+_z&osAL9f~9Sr6rH5DxmMjZzEO?-Gpp9rQ07 zE$pG$!hzb8_tuT@TT^jE42NCKV@TL(#M@r1o8f1R;*@`8bnzG*eaH~Tt?=wY!Y_>yVaz!?WEtDzGFoHgT$u4Bka#-3vebv{o#T8oHppfYLDThhN2~ zBVqLS7$$(@=%=g);p?*D^DN7F&10BI3gcn84mXTd9>d7sE#8*Oa=V$&ma*Ssm<$&N zWl6?oW(nnv$1oW#44tK2Hxo)eq|r`jz=To+bKI6MOIv(v78yw{16grwEs~KbOE$C> z>9m`9U|AXqlhn$bW#&l(hRQ|V-;7F`BEM0xi6_NB1-@f=0e6xe z=zj+M#^MkSaS^#IrNE)tC)<^(-3rx*5-1K6bmgC&@g?^8AauF}XU|Z#pBTW}(&7Vm zK=H^cYop}G%oIOA=lpKIU(vr%Be^Ed^DF<8L#@DDC@SkUcDEGVwDsFuKNdQbdIz{Q zAJ3VrZg2as&?(|gKNdQj$8We*8q6%#U7%U5IL@*>o}gXTf-pp3F`xO|O40&Ot5bus3=P z3ER~_-;P4PW5!vJ!8Op+Kj$1qCJZG_{7rXg^pAB8^_pcA_ZVh|(CD8Q=-Y%*&tpg` zUHx+rD`AAu$72{7M*q~rDgj~4@EAsh(Lb4CvP=X>{6&%RF}d**<>#zO@t0!<`;mX6#39S2 zb10wEi>r{T^aQmO`g8bwsyBZ4FTg+WT?7A>UbGJ@y(8%*JP!%S!(u#Szw-h7M$)%< zhR(=78sksAa%Spce%19WxJUAj-J2p@78T`ZzojEtV1RzXGXw_cHXdw&0Sap$A~4_y zWOpO*!32a7MLw52n;W@>B0PZpNBmd?+_&$2;Cput_s2{7mQfqw_?W~~b z)C()MQfn>z3G0%&AOIh!#*OefDk5S=E%2k4Z9?6gSxE{(MfZeij+kY?`J?}8inrIY zW2QtG3s;R>h_^Xmo#2DRLXJ`H(~&+^Bw@}(tPAggN=3Q5U@%i8O10vX+9TF)F^Mw&BitShGc}#jhyX&cl(3+7L#fY7?4#Fcj7~bouE+P`&PR3?X z!47&@DsAlue?RQN1S4Hz_h(rg&pe}{L~O1z2XA2=L)`r^MIwHD`3<-ibKL{dSQ98y zNyKVz-Gf^Fn+b#}E&-7kiY_zaz&5N*6Rewy1-2oP@`Lu8Yn@U>vgzAcdL}WM2AW8> zf0&BMt-u zr4?zTd(XszOpd>u8Fu_6gJBHGIzfPb9x#gjDIKPC?Iu>3-DGtj zFDFpb0+$p}U6F_|{HRg%K1@4Z=TPx5`|4&Lh_vZHd-NF8Kl@&l7wEGw+Ae9yHL??F zK8dNAcy!L_=;1Yn@hHFjTL1!3{}EvLN*rE7FVc!tuyPM&^1T%GGp1L{0vWvs-2*?s z@AK$v$8^quG0Q~XGY-ZNz}~`K(AZMNl^W>t4RJ7jpwZV4U|SAqFIYR!%Z#bb62|#v zIV@Yk*eBrmfcC9+oW=7vntU5EIiT5D#jHXTd5KHW_lra02T0~Zdx?wBcOgA8p4K4A ze@yhLd-&6%RRjjUFB2zAynbC7g2!;S>UbRsOj67b>0-|HX9BU`7%c7_h`$~1_%hyK zp?vt|MQ0PK8N#j#tO@>f{3L3R_sNuu-|BFwjX&Q&-z2II2mG_;&4cSQ{8?2Kffzu8U?8r+D2ih#In#?$kzX@>qGd=4=o5gL38F%sbHJsXX=hfpK z2A~mf%Q*-qymrAWx1opjYpyK?w2&p}Xw8ehqklJ%dSM7I%)Sg4iQ;kE4fvCawn@$~u<8oc@ z)e-^BptZ=$G5}KWM}2c6q)D_1ZWDk&*iN3n@ms)S2E_yo8oIyLL=Z=ltQWdLEp&;IA1{u`+%B42IK8 zYP}0h=2`BhU&A|A@6W^Xf(qq-0Qcd;hbrbx3}b8X{J?&=)Xa^CB3Ro$61^SeIuEBz zzNh#2RLmAU*2o9+KZiCLw4LbNs7&^rOq;hGw97za&Z3p(?f@$+f33FowEz>nPU9MD zm6kH<1uWm@W=!MoZ{!;^IswiV#@*7!8L=9hdvk3JyV80+k9FL_%{^)o1~8RVF(YSt zuEg^g`NmO8d}ZB@;)U^5FMC~R|17jK4Lc=lgUPm_`oyEvhFVbFFl#6XTHNE zZ+CWR{!wde^6Y$MA2xYN$ke>m6L9HLdXf`C-8>uSd5dchi*=$G z-h2SIQ55Z-8H=)PPN4a3bCfFDBN^+(ZI>dIj^>4&Ak|r`RAYR+L>eTE+xIdhfxK*l z=Ss^?fcG3V_y`69-odlo7jaxKQLi-YR>8*|D>*Cuo&Nn-&+B!zbNw)Skh=a<+h7;%2ciL_meEO3-tTN zD1Y0*F3jIy;@XAT+%C-OquiW`S%9iJn{M~;scczks`9B?uo#GF4t4F;MPOY&q$bdssLxe#2+eTWhdsI3Ha`>Dq3A*~EwWWs9PY ze#foI92(GNsLEEDKF8M;n^$$V9B-Vh82t}v?*U&$^@I)Y+}#vH$<58BngZd55$bVnkT$)H_0fMzorzFgXd zl>%JZ*`bE2F$gNLM=cmBkh-#)dB3tKDE~-nxrqpqn6J}9ph>wlVcM}xs zPM`a5X&mNUF!~eJpbaGSqLKKx!VZJcZ=D0KA3cI25q6mM1kFiC>;q|gS$qj8yhf-J zgf68Kqm6UvLyHAFc;Yyt;BxBt1Lmv(rY_rBm`20O zKUFnUHKi`SvB%Z0%9#!LFjy+Cugjk(EDdjOxXr1`W|#iG@kv|N*_cV#7^_P^4ylH< zMitVuOB0mZhSevmaJXU@(||Yx)rdpWVzVuu*`>fu@MYdt+6gM&smOGN2=J3twzVPO7FJ?n_TjI2?11|ZD6sdKyX3bcpBrSmz>_E3= zEtZ={)U)_x%@!pq#A)46ZR zP(Uy~60XWEzeZX2a8+*kHX19%C0bYMeg1@DymUyKA?_e^# zPtHeShWmL;m-&%L=*+Lm_p6ei~JcmP5#`yME=~fRsM|nLjH`tDu2dAV;v$o>fX-sXToUt zGx0(BGijClnX+B}+<#2|Or>aMn4TtoW;B&QvpUM32L{QX*>mO3oaf}v-1qP&_TD2X zs?pI+`sRQ;rp{dXll7?lsk;$>VtZp7h6-Hx1QjaIfF~rH2_qHU_cJUP_iv$kC}O;P zQFw3wUOb3OLVNr!LJWwzncEa>@$&RD$^RVi_*bCuVJuD*NUXxopB5knU+)2kENc}Q z64n*PE_Z?Y+|vYpMK6Fa8Rzmxg~$vu0tZWgWgwwF->o-ZU@;!&rR7j&YSQa1|pUE0DFDzk^R}jl>0} zzerH0H-@6Zc<(PLA_Z1(FBq7Gp414`L0?RPdgy(9fq&57T7f1nLotqJJz6iT!0sIk zd#C_x9Qfcvj;nYHl+?grEPOF6aV_>X$%h2HS&#~od9&a;%7Z5h=B?!{kf)zX{sq8u z7Hs?rgaWr;;VejdgfsbvU-;=;g^;*^qG0!Wh$r~MlTfT+zd&XyD1~qFZ=hro4#h@L zWJ*v}rUbpJLlVBXx1x$!F~wtEhq}!+fhD?7`O`W4r@|ThDbPd8)>$rF1y+5=k-y{T z_bM& z{#(?&tlto8iNbY_KEvKT5BBPsw zDY@P@I3tK(%vCpK3pV)UmvCbMM(pE`GUA`Ge_IGD;5| zG~S5s!hFO{fV}`#hTf?G;WZ`r1rFv1^m!S7(#mFZ0kQpicqe}NKW3s8Yvrc-fZ?G= zh!rnGIS>%vTBLAOVgt(%Z!pKVVHJp*7AN?N{#eNx#Fn7y9IPL_knNX876^!=4*sMk zSq<^09E<0sN#l+3G-SjiBYqjTbj0nI-q(dz>xU!y+S~*XH)3}5WoN`7_8y`Xw`qQU z19%c@e*9`SIB^>%!4B;KZ2ZP=l;m;4CxS#x@cA$|h<|}~CMoIiU_;q}B#Re!QG$+7 z;8>>p0Q4r2#Eqt1IW)QgrEY-E!-$(wKU>JQhBisXBn&*`CyIoO+xUGlaZ772ikG1g zh%LT}WZ4W37TNp;W3nZ1fhi;Iko0q-tPxI;IQS3%jdpOZadRCB;140<2Z#z^IRK*) z%!=)WCLszA~6CuzMxLzs%f*Kb0TbiWYROd5YgR1`)o_+{5pg-QjcoInx(| z_Z-Yf{m+|4_`PpQU_LRq8dnZo#rsiP&X;HLe#~SgE3c@IQx1>F>59skr4XKLjRvn} zS&JLN75CA%Q2+dOV%8!ou(~NXa!po1)xg({xslub0lM12lQ_SNYm?s?kM_X7E9N?| zRRhj2c6hgp+goFhYxzHkoeM0szWql% zN3WRXKPDs^33@z()K*+|;w@YM@z|t0)Rt}h0;aMi9B-1f2+t6|)|d<%S_!o`V39Os z(IPmz%Hda}*}lRpq3N68<5bcofXBZGqKd`-+#sRV-B^7Pz%LO1K9Q5qehx-r0w|0b ziY)=sS;d4d8%L^h(G|Tk_9L6n^GH{CK;ZaVGi|qyxhAc+*JmUQesF+_xh5U_9@2&! zdr1Z0zQ>`%jD%s!I;yDWyCM*EIh4tSyN*p%;Ab_hCQU*|moVbBa<1gIg`vyHar;yN zZilD?#65M|E6G2)+@97alhzIfYE4c2Fl7GwIuOgL0h6^gata$uNyX96(s zN6devdhd$>G(llVn6xcdoufG)0eEvWl(?@J`fHJ3A=5m`HfqunXtWZh{B+FKa`Q5X zyuTDCXreYY_8>iB+Vyx9M~gfnGN~t)MG~ej!WVE7$M6V1;U*9{<0O`?1n_VkKy4cI zGqjwUfrAJF@M>t(;h-ez6)=TzQKGXfekRGY#xoeAVEomo5cU^281;n85QhfpaUlK1 zamkz0o(i#%1OtiIq1 z*{}Re{sSk7C^73eg6m=nJh7<^FVKpWAtoi(V+uXPamkyX=}=}BMo@`&l*GaU2hdv# zVAnbLG>rDv1uf^^xmdB_mQ962h2a2TpApXxzt-qG7ENhl%Sk1WM~`mBcqy@4Hfm6y zcNuPak6^=P4ZOpkO#XYz3>?PafADwIVECN**9?roTFp)Tu7Kh23wv=U@kcmY*$YYE zrJ)s192r{#GA`lW2&~20DFx>JfY<`VUc~GuP$7ue0_QNhhzd-&%&xQV!LD{pU=a4H zV*`Kx>%)Pk=Qprtr<&`q>=f98m8e32Umj-1e_vw^TqKa*!Nh^5+t6+J1K)grG8A|O z9~cJ$(PglO6-Y}map0*6Ruzf{?!lx3e<6XGYDSOY>G&JIHSNfWsmIK+-ZjK>Va zj?T}V@^BEH1W{QdSYe0QS%|GP@ncxcA$AesFilM5YOGZ5D#SUODD8^#v#VG%MU|yp44B6D0_`#6ZQ}Xj6)+J-xuq|>v>h4XyYR_x5CSvMbuX<9 zYG~rc3b(7~-Jjr*`Npr{`}W`>_}D|bsIr%~cOYn&TmM1EMJPuty|kNug7)3U3O-{V zYd6G8tGNNR@1uIa85Qd}%S)?#7id3LDW#hIr@S=&Zand)IoMZ{_;z?{{MC8ll~sEb z?YNiLb~b2NYky?ed_Q|>%h0tY{`~K2a0A9^C=~FdeGkT3iND62#4;b-tb&(TI|P}3 zzWfOaKR3ipy){bV%C0c{1-q!<|4bP(Nj zqDckks06+SqFn*9X&l<{M2qfzSkXT5(D;_;#Aup=0fqG4Kj{dwsSCDv5@VyflP+|gogfHNPSlLT_9SfSc|FRJZoe*1ji4S}X zVvwHdtvH8yiO(HIoW*Gm3?-a%yu_c|!$P;wLs*66rij*PVtpDn<~}1aiIz<>ZQ^cC zY(PI9g4kr5n2I^lDJDqivD>l+RChY4DP&S~SJ@=$ zmZb)(6s@|4Hn3GMT2*F3oZ?x)f*Hx^(dH39UKp z#mGeR=xz_6G}$ev7{)P@hIt-7p|zxEQ9*=ny@yYl^Hwxrsp8w?;S*YG`V}yt0(kXVK*U+d)uV_ob*qnuq$^12_v^*%p5%aHi&@& z-HHHH=(>5RWk3uk6@;^9N;lq4?MAD$rAty{zf_Mf-V^B?K_0Uokl!O5BBk?xm02PFeTX6$3+B( zj0^LZDelkM!mnbHKG@HfGLNZ+8W%@n6YTHfyzo)HudKhZc^x4GR7epHnT~=O9H>GH zbI9d&5Hd)G6ygy6z$G|Xg%sov{=y|V#11Klxcr4LV44sd<_k&G0iy};Uk2^{%bExy zYRY?qL3{r)1}Vd4T+;$gA$Wvu!~GbX+Cf!^7{QUgx+29eoAL%{(B9x|#!^fwL!3Rq z?zI=-X9LXTcamIE4px*xo&;WMgP`p8S;FVBO+OLbLC441q#c3%-3(Q$?9oK5U#E1AvcYHP?G z`Q#`lQ<}rYXwGWTgTFx2d+t0>c2b&afOK1|q0x*MV`V8gY9O|pX|P5p;?$jpd-M^k zO4F=7L|m`U1%2$kQ%dQl7+@#18I5Pgds_xD*V>tfu^H8V33)g!7t>}s>Jnig9&iRH z9KV30k0^)qlNOjsQduW%#5`683I&p#)PhfFlm1=>9|Fvm&NRpBk6lDu_m%xY$!w%) z&BR4Xa7wS|!PCntk8f=V-v1*e=rT;0sClr8*#PpUE*Y$b7t36lUkXq&@hB3U_VO6m zbBh*Qiv~_Gf-?rZ?K8OPq{Es|OpOK1SVTHA2US=ASMvwV`V}kVgSbTbu^Jwp-y-3G zt=NSV3Dp@OX0Y3C6~*jb8x31RXDvax2Q{WpGoogoT;PUCq8!4}Qt2$R3y0#>0!ejwFNQS1Mf|LE9Bs?Tby z@gh|}y!t=3X|a+&PUG1i|Dn&K7ju<;)@eM?r2hlIWJEKS-cL22dzt^hFFi9_$&V@R zrdM{%M1P*A*__@)EbBc;G1bsa`9oLmDNC_uUk!CzgfP=TIT_frp=6kHpvN|qj%ga@jZskV zZN+-8*l?Xjd1DmR`xUW>C8!TH${V8;h!3wUQK%~#b!(-{I+QRm+DAoCDO51swS*TX zmN+!yrb=V2a1_LdN*{N+ro?oQ0Ejk6Mq?>ibe^UGgPzW#%_ncHQK)tKqePpdcQ;e{ zvOgRJZN3b_eI zsP8Z0BSIO;wbCeWF%{GgZ(|57s4*JlEvAC{apiS24$svnso<*m27_647=Fh8_pnjf=tvHFXibi?$64Wm#TUCr* zG|H>jAD<(8uYK~2DlaoMN~|h{l4C&*orEER*Z+K2L0|YEP+nOH{=VZ5RcH>lP>A8x zli-aK`<0k)yfj|v2>!9z8H4=mrL}tie1GxBEK(3lR&;CwnGa4ye1C6Vu4LBo(%9ix z@ZSwsqL%qxZ>H&4lQT^e)Xh;r)h#}h2c@UUnc_{wk|3 z^jIDkXBA-V)GtVsiF0D2-ftSlws#Od`Ud9;1W`Q0O@N9@WZ+wqSi?rt)d(&&jtq-( z&;i*-&Gq&$tF`a2_itRqlc7O%4>wuLlB8H3k60Htu#W}Ll8k) zTus^IZjDfywjTyfi_u|ByhO$ljgX4L4;WTp#pzIM1>31%Qgx*ED_9A7CZy7RR>N3l zyOGEy|F_75lC%@+QW9yQ%5LJ_NS(!J!Iq-ExI{y+4f4b4VylGTMgfe1gkeN}49bEc zJc$zODhuXntR%~uHo+#-s_&H2A8D)`y3|purBkaWh z(T$gA9pekODt(9(FoK<+vC=n0U~5p1!?^jL<*w3LQIN5S{?c}|vf0$c83yduFkbL= z5cO$jXEpS>5RUNk@-<+0V(1-gNXtJ_u;{98I#iweY64Q4L*?q@`nokd5^xb<=dI6R zV|w{G8PALXF~>{fz0Y71`VhT^5c_(GA7j%m*p#l|P`D89_Y$xE3$e{;8TxM_F82~s zv2_=0P7k6D_pL>ouX%~QHyUh7DJ4|Dbpk~DOr%NvY1?a^9ww*mX%cg|aA)y^gw*uVHfQ&I3 zkZVCgd%A*UO6h%9F~F_fu=_deQ^DKfx)Ex8yc+;j{P;*K5S4I{CD@6A=s!fn*DT_f zCOVErSV0S-gTP{ll<}zQZW;H+bQGxwcBQk>NMM!ohrLq^8h4|!%T$f&qG8^Ym#u+F zd(s;0gK&P(M26{V1HA>&i%{BZ#8cr2r%nm1H(mc(8DPJLdF#8t`cVMsl=v3VEtm_D$P zh!{^h8!J^R0%03b_3wONO>iQ8INmgPosK$c5f{0?<%l7Nuc`@7q8^vjhTMJm!}yk( z;Ck#wrkmhYT73l{2r#T({xH7eCOC}_V3xuQwKOn)7%AUV-|hnQ`PtoBh(5L((Bk>U=PsJXa&2bVeV2X;uF|x zy8NfA#-(bx(!dZdZ4PxIHJoUqVeZ1NBW*6dhzysuW4MO7>(LJEK`MdM_5yoc!`x+P z2lfzk$F8El-q0|2_1uBYqb(&A>?;j(7tI~meCmwiBhm`gc2mlEA?InrjE567Fo9re zX{@XpyX(M^dx+;$kI-@Ka!b409axd$2ou1gR2qI21#lk&yjByyLVB{e0<2(w*Ioj6 zjINYYfSnBRT1o(q(}^YuaFPLD8wp?$y^5m-qQl<|@LERzi{&dK0hFl&Ktx&(Jb|?0 z^WneMq_+uB;jKB}!5v&m+gqr~^Uw&yeH~DKb7``(I4~~)!S_rAm(gE^RV*(=AiCmk zR&Y6upQR8VMIhecTvFXt` zzVy}zt}3vl%w4zAC=75UmgyS7>*5aL6{lJ~Jw0uBG@d`0D0wJ1yNKYYe zMaJp~grxQmHMybEvL^x|X*o=5N!6rpA`tA#Klm99!6Z;Ny>Bu?>Iw>=5I?6z$TS`g z(`^`%+L;C-yYdfyK}lF16JnMoV$L-hOSE6o(z{GsY&Ry_VioZuO~k-eILB$uY}&LR zVo%YF_{v9!k85HBVmI!=Z>SII9lhj=v==B8^&DODLDi2mRR(zth@HF#&l5YLq3<-6 z=hE=3Ce#a*RveOJ8aT?z5D#fh#+pa)61|D>nDhl@f$+y-<^|dVPhoU*nI2orw}d0+ z9Ojmi4dU7-K)gcpbJP^14>Km(j1#aR8N5neFXLR)JTOktjH-pYVYg7rnP9hHDK@LL zP=C`cy;~qA_0SkTLSzpBT8eYq;22-hYI}TZ(gfgaVk_~A z8yxGK^D_=%(LyFLtI>*lWsBD&c2qkEeDJfeM#5tNvKKX?{KIh+aKcmXh}y)LBb?o29AfY zDNO1KoSv_A?@Zs{Q4ZpIIHDDG!NHT@EML=W_;7*B!vZRkGoY-UYRPUL zZFOq28__QCRlwH_)qo;Z)$yf|9CbT_1Fgj>{D!f(uQ#@Viw$c5smUdwpjEu~WW1+L z#GZX|agF6G%O41FuaPAm?6$7o6jicBoige>v)?nS~2ZXCAHNB(#dN32RQs^7{X5b=>lFo*r2 zZ6;la2V&4K7vSa;9CXQz2;4DPb}ck~CYG?M0F<*6Zu=q-E!xrXyYT(k_~fU7@KE`f z<~gXDWmN@Rh+mWBm2bI6R`hrV!G$;&*-B-o8itlhLphM{;&|i@Hk9zYD;~C=DwvX7k`AZX>o3Tw1*>M&sZ*FeNuV377e-Yrq zb2A=NY^FT9d3FFUPlnm48Y4<_1pa^U>gMJHaO}c5P$v!Wv3%Qkc%iOqyW#qCmT(^f zM3sDUvpRYfTB#At5uTgH(e+DizV1fk=4KR51k&euxJ3&mH*>dgZrZWSk{L4Z1{gy8 z1$dTx2c9JXN!C^vD$5EY4IzF_lGnCX?M$AF;6fbi&14Rwws^$Lo14kJQq!)KCS7B74lpO$a-jz4QbBm`vbYH?)(q57m?|{_kikt& zBd!E>YlCaS5pGgVhByL_Z^0LPDf9>CY>Q2%cJ@+xcSYoBv}rho3ql>MsjcY7PUu~Z zZsCtf3*3kiXSMF&t3nTdX6Lv`uef}6(UF$0741NwiK|7^P)1EUl?T%tWl(wp2pqE< zYBr!h>cO=df=x0(wG&|rWH4|$S*2z)KiwYfnp95XRGeEgAgVo;x`(xH1+v|AFx4)v zt>|BT_#D@Rrmg2r<(_;Ydoh`h8$i8rw9cf*T?k&(r#-D`DpDUeo}v;tqE}o98`94Y z3ywh7JctR{9*%zAm6@4J{wV}m1_veaD^!3+jF0ial1yS zNiNTq;?jLZQEIp}QX3b6sellx`F_Hl1D8V@&P2P-u%|?ES-$uu>{fvu)SQag#MkWs z#ko#%Vuo=V#jvgK2G&6F^@~A!G^ZkV^Br4B#!M!j_HsTm5hm;B`}H5i`KOmth^H^#RT8%WaoWO|8w&OC0S@4k_W*wIVmK}g*FzR%+@b3*pgC{1i2 zC(V;b_)4!wTfK-0lIwO66bsvsxLjZ1P3Rf7ghOCrJ}n-%+V|Q}74=76>3m!~`3!YR zLbTuIVQnBss^fO}5>6s+AEpa-+>q(V04{Ei@5v9;WIvUOcD7~9f$F%!zGpG0;&Bo+ za*1};R){mcuTZslz(<2!**2m+AKH$)?weXkiI|&5gbj!>Hy`lX5}wN=!9Jf5SIqqG zB3$!w;eKBuRN>|ooVZkTCl)IO@tsDf!YzmjW@F4(1yQiAV*}^2N?u7yMn7=Iun|=> zLd7D8?sRseiltXL!qb-6r%;kJ@WGXeZT3DNG?fhswu=l zjc^+Y%7_Qoh-WuyonuvVgJhxUwIz1eQqzU44)1ROOJ*yGkr180*xLamxE?$Q;L^?%{ zv(E>`WmtvKGfEn+X{^9hQbk;jRUciBz(Va^W4N%e^fE*8aQgQyxXV^(j56ae4Rhmj`W`-R5_i*D zn4xrg>c6mIc4w~Sc@&kbZ2571Twdc#G!>)H;ZqyQ*+2h_0jU&hPSmg4Ri%d8i^L*dbAeaX3O0nU^0nLh~t6@z^C4hFAZK!O{G&sD585 zMK0ur74^NEzY_Ht8gUU`w3C}ut+^f?D%e7#+?OAN z8<)dyH0q^pDu#{uG3X&}OKRB)4cLRe$ClU(CY{tAI;(W5ThjVJ(H$=FWlge8YEmI= z>O|zQ&V){6VUZwt<*Ie|LWD^*z+e|hHl#fe%cfT|&>HOWm3UqC!TngQ^q2M!+SLY) zGJofm{4*^$hfa5zj-HJQBOFKVkLwV9;cvAxveK0VB7ct+*DHD%sx#|IZ+MB7vCI%R zAbN3apTWxlbj(Zq5%Y`W4}CKaAr8btw_KvVPNo&iCdS51i(a}xVas)K6T?MWQV(SW zwjeroo`SX0Fl|5^mi&#c({l#i@W`EwI;3^ICM#`|{Yrb@BUVwe`uIj!A8fS;PRMb->8^V zySt|GD#)4r`1RZUTg_iC880`p0uxNl?TVC%9bDi@v8Fir>JV?^?F^UWM}vZn}wRUvQ%IsLR? zA2mNcsjyA|3meu?3)j=;$d{B3!!#Eg$Bkb@|^?rik#fql$^zP4zL?eb>~2GQ@(S6IZ55x z6!(%3C79Pb$iB5HZu{_9wG;Iu6pR0z!B|M;TbttEYX6a5uxR2KjxCR{)% zJTVqsp3s`PH0ceUE|G6-N-pSIjG>@tayMYQgxIKNa%)rE*;{=P$NX?P+*95K5zo__ zI-owEhic#26nAA$Gke97_PGFcYg2MBUxDgs|3D?~IrNKm3XRTOO4zJj;*mhCwOjw- zM~I6-+edhnHKk!;Xw~(T_PEV!V2>{F4HOME$mq(qM5M?q5q1c5WE8h~4BDX}?A+cTgmWUL&CBhEzcja3mQskBhJEU~Cf%n{Fq>OkCYZP|K z9kE%fp+$!c7=@)2Bi4{tdYh)a2hNgoGX+l4*p_f=P~`_elBnYEa5bia_|AzG`_73( z74+5?pP^9?3X!ZLRl74 z56F0V!@8A(PnTak+;D$I;2h$7Ax_XluDK3znGjcLB6E5+@>B%t1-35_Ot9SEL0Yfd zk*rq>Lo}UrVeWdjqP8Te#cHS+DuKw7tQ0&$oL{&v524uq;sAcd{uf?* zajCIVHq)2*(c#OYNXlE3jd-Puj>5s}l((t>T*Kg26s4(^94Sh9hqkxj73YV+70;~X zKZB=nC!w&V>=$X+`p!e`E!2ZTr9CbYmA`&jr0Wn(#z2@Or}*z#CM#JFFIm<_JVX2n zpDTFw;uHo`KBXrIKx@97FXbZH?Yv=j@MD6X@~zO|>BQ`?2Is0%E~!+-njP-M=3vTY zMK5G_2yo5#j%J{-fIkwmDc{qQV&BuU8S=Si@;xmn_B}055Z}|1V&Bu^1o1sBDfT@r zP7vSIl49S};so(MEh+XrElv>M(~@G})AEKLV=HQz2$Ni++a~hj|BwA(XK53#Tz~Cv z2)IGrM)T%Ebbpu9g1Dtg@%b2NQie-7p1?fe6-(nq+&l8#SoeKeT z%b_q!NnhHhY?i`Emu(jR=bS{TC9UY-SV&0nEnL9{s-6e)4t_(a#FxkHbzm1;s!b`wp_eM!Tpj9rU_NTBfp47H1AJ=*s za!W_5+%0kqIuWIUxkt zwcEcZp-g2r+=-Bv&Qg0;%fzlKYuio(_%~wZ#oW|hmLDS#28`AKDPRh4XD)Um1+c&c zILy6==PKsSF3k_?vGmTI-afBYQ_P1V0DRywweRI0Fj(X0FS`IR^MYe)zxp^GBD4a? zDX-0&$!B+|{f|Em#&Y=+2OO>eV#{!%Z5s^Cu-BM6@CcNnk@+EPw?3(ZlDn%<5FTPw z2I~p!*ga3`;L*RSlYr|q4UQ}(7^y>Y?^LPY=aQUUk#ah;+rJ9%wF|%%oKk9sZO0Oj zq*}#ibmkU_3ylm2xxR2QO|mY@lk*BU#sZRMr2`bQgZVY8(*&bTy)TEtO;=yc`mHj< z_aHQIt~23z|MM7L2Ogcz?r%q7FUAaXd>$1fFy})s2Ks|3y56{Iw?c%41Q-rRc5W{eZzA9n!vW3iFYgTUIOmz0L!rQaFAA}ax@>o3v@;FM&Q^XHuu#c ztYrV|__ow4^GK(oR{7DBJj97~C}x3tfRKV!qpxbR19Vb?E| zT?-kFh8SsIib7z`rZ&i$v>J2(MOBP48S>*?lcudf#pj@0FR?+T7$dC~ zy?Hkd*D`UtOZ4+^unVF##iOcBW5kyl!M|}wFs`ait4CLls;}#AX#gu@pAo@VdLyAm zHvRUiI=)&C-MX!#o%xJa!s^q5=hf-hPWhnh=156wKr7-EcKZLo{t%1UbErg6Ew?=B zVv)q8av(OMwjET1x!p^gJ`WEq!@9w$C;qC=Cp5#;;iH)ZtR4j(SmB;uZS(Z#GeD;Y)NhED&kNt@exe7(^^r= z0Hy70FL4RR0cmaMC7TcH_N{>s2AfqS6qk9k;bzB6LJiQpnxRc5sRy}r4 z5Ir>}oBCuxes5|ElgZb;6C41T<3ESwKGYn`Q9@hfp`Dt8wDqT**-G#Mrg4>)`sI0J zE&V(kgupMDX)wLsOik2({tqTV|5^sUhSC%7D(G$ZrjrcN8|EF_Bqk2IkdmR0WaTeY3gpZpC{CIl(1n^0t6y9lM_g)8a zB0ZR+mLR7vfQ?}1G-!w_E31q#EnM#ZjmQVzhJ9bB;ePmIf@gs*ulYhUvy7&P-qRxP06|CS~4YwS}U0FFJ3cAjG2On{`=j|U+n zIUCy=R%kvKVwtxFLkn&KFZ0&WBi?yy=uu7w&s+KImh&q%g||^di+J%G?rCM38d{w3 zApi0k;vY6-UoN~EVp(1G4;y-bMq^({1;IaTXg1Xo9s_q4uuh@e9Q>x%W07IMP;MG=<^@!@cyWQ)VTLJ*rZLh_8ag&f36L42GCAz!AbSe_Kb_ZlIeY?Yxx z(MZ`U9#B&3y^h{t>!hL8rQz$+&7kY6!#%>bzO|N)9G8cMjP7{c~ZJc8hJ4b8}tD!AhCL%$ZE)mg= z#r!_Bt!x!F*6+YHCoO#GROpot@WqqdId!*}CPneJ7GJ5olzCp6LVNuj6k%)9dM_V) zUk$x+ZM>rG(KOrpYH0g67@5)MUU}?&HMHaB;;Iq6rg?1dtD&8rVp1RtWDtUF{q3x_ zy|0Getb&;URc4|TD0UG!!3e!`1D=!Fywq0nDND2O)X=`?Bmpg zJ?J%!^2W#>@j^#FEJU^s!V?v3h=uINL^KcqizXqr%*iByOvz3+A0CANDFauJ- zZt_B(|8=JtCGN@tu-)W^zUX;eIgmLQ4sh~^oymnx?!{F-Qryi+dDAL@Q{OIC^&zAI zDy;%I{q9*cQfa0EDy{4nF7)+ZXjvqRVH%*)Du6RjZ&o_Y(*PBP0M3rTO+~R$10)LD z!*uA}T6k!o15A`UX(zE6v4`o<`LeUnWuD7J%p`Uk7rMCNnzGVOS2Rq_j^je#{@7OK zL8<#3+knQ-;X;?wQIlklUfWA!=WwC#(#t4XXD^N2--W(EQBK7--KB}Pw$BAN6QW@E zccC9fex!1EIuFQd!AsyrDmOC96)Svj!+d1n}qaZVE771C$~H`0H>>6~)SMfTM_@ z{!UL&>3LJ5lp?&M8~UfjLM7&`25|kc4>jBCzM+3Jzfq{@DQ>C-rBo7GH;<<)ovY`A za`Y1DtD6_wm2j=EbSc+n)8T=NCxsGcFj@jsMM-XiI(2P6r?rj3f4-)#57Xu?KAqJLNslT%JI9yVaRMgfgdVN7hz9PYoSIc zjRaAI#%)n{ds!otGVEq8mDdWZHPsh&nHA3=4!KBa>r`sl|BoEdwMuZib60|5yrF(&fi2=RR zO42PfyJDVg8Ya?|1;j?T(e0Qq3G7%n40e`bOAHdaBAlMf~D2-m*r@FU!5s3RbpfM{; z-JVf0UWh=jFNjcxhG0-5v3wMPU|$fSbejH|Li`kgU>{bY3bf!VR-}0j8=T=L+3Ns` zeOQGm(itqG@Ymgxoj;6yScNhOD%%Dels}ApScNK4)yRF!UjgKQsG=`-^+2)4Y9 zP&ImHpU?JT)gl~*GQd8pLe=Rjd{glrCvrpt;taNHLN(~24yv<%$VGs?<8rWP(#jvy zKxDm__%QaILN)2v=T(h9;u597vmdGzV&7JwEIJBfOYQibvGzEDbKGf21y+}4zolTw zvs_qSPg$XQ)V-U6HPtX_2UJZGY1uS8SHbSqFwXI?NbA$fKP%W04fFbK5@`+S7QTFz zB<$2MulFW_HKcwuRbOyX!}9fQ6}p2`Tc|c80X>7V3g?zRCR2%Fmw}-i`udo{W@)VS z3Np{KU0{V8Q|T5eQ+fd=33XD--lalKsA(GoxSs)Da|oa*{WMzvRx!Y92mxSS0Zpll zKzA{~YXSi@r#+af2;dw8A`--Y7DFxQvCax*B0_1J9Zh>5M44$xeST0SGnE0VwY65j z8m*{qW5t~9p;ed*zSi_coGP?^9GcS=@y>Lp6K%PM?PsnOQvk5djv_C_&eSDWP3xC2 z(OyQtS7AFLx(jVXZ^uTbS2fZ8S~Ap?va!)DVn5Mh6|oytAh_vcPByPAmR-+;x>NmG ziWoP?CE6d5h5FEGeEmrknBW;+D{5a_j6Gj!uBp;-D{4PlatYKSnkq)LUC)I2Q3wv?-O+lQl&PsL?1jEL#O5)n4^wPQ z@e-k@3fS&kLUSn=jhjhRHBf3=D`KZDp$BQhG(HgbWFB%$dg37{@en=vv|TJs+M$)O z9g>6=(%84j_yHA!RJp>cDlg3D{Pm!TZRRs%L8rpYF)>a%FYi9=>B>6sWeS0W^-^%~ zj>91SneQrak`)J1XU;87p?hS4mq(Kg|%i`P%u|<h16`f;+>`{NM}KRL+O^PPrtDZ%>P@jae@I(cA&*?PG&D)#1M!%kGYmzy9xI?ff-x zzTzEharl3Vt-Th8p9^rjy!q?nH=NZ8^@>ehr>RdM9*26>rtZ~L*+WyjKikx=HMM%I zWGQF5|JT?rmivqr9Jet)Jnn3oo&(LU#kRy=i6GK6LUo9OxE_1FmO?buh~|g{1*h9| zoXhwvc0XnwB4e0F$dwQZ@q6sFGYT2w#DFQx)QKjZm?a?t)m%0{?!d5Z7G<^6S(NBqOT8?hG~ANI;2IcB)P@&ww+g zz`JnIX4fq-pkL&oqVTO?NfuYDEUPj2LhQ&YXMHssRti4uWAA|-<{;AGHXnCj+}2ei zrUn=Lx^Pa+=D6g|nI3W(4KDGGElEZ%Mm(z#$|+^y3HYnZ^%cY7m-OlHFrvT8S8la} z%Y7X&P!WC4yF|yg8@F1)mA+34Dn!&H4!eWkRx7y5XJI{0WR#CUh&R90z6(g7AX-Hr z#1r2$z9XGfEO$pB#GBt*-#Szik+CoWA!&KmH`Y*kysQy29I)q_!RLJ?e^fG#Mj%Af zjlNMU72;Y1LQ=cQxA&|<6h)$Jb2?cfn!f0p{FG{=>*PUHCrRxV-xE03FKO}eqh#34 zF1Nrrz3QMR4knoFM!D*E+*WT6Mb4>CFqmlSPLPqopg9s`lV0X1`IY=!sGLr)>sXYn zB=f|}>Tc^p3>&M8f|R5b^RrckF_nX^Xc^ont8OwFGLtbM7la?vNEM5xn+%pSCr(y~ z8X6%ttlM2}u%fx;mO^yZhzAg>6HA8qy(43iMsQ!^AS#((I*1h-!P7JcQQ7>XiO<&b zO^r}95J_zn^C3sZX^l_~iMR-?X71ji3hkeaaE!%wVF#<5iCFuV94z*jhsbwf2Wyx! z=BXl*=_T@A*uhLQ8v7T*+0jenyRd^b&8|_Z2#@j-`7Z2WEwfE)73Tskk?+C|);7O< zNf9@AiD#OESjUXUTtnh~mx)q5U@N{0JD6ogV`L=6Z@ipq2Z6J$SrEw;;!Q7+ue%P` zGb=o&IB$F0V+6kLI+$(#*hX1Zwm=E8;u%rlx z-+GCBC3CQ;`3p`=$#u=}$Q3dWn3=aIlS;d&;mc65i$| z@@?V4c4qe#>bCI1nrPn^9&B&EhTc!E68}LH?c2hG9n4$hF_kKS)<{)+sn+&w;lYmP z^es@ed>*R01EPmH810=5zMC?_sY-GOL{IbkD>#G7BlCe?qTEN?%Y3MUatJ>|6RX>o zmG(9V%p#*v4meejMhp5hU?IMhDrX61VTFQiEWR3}!!^{aU|WmbS8@~DVIW$ZU^~lc zL^~|N;g4W@^*a`QFLMVwT3@^Y>3?$6@`hoh5IWg}GD{qSpCx-HaSGSj#@!K)bEI^! zseLt7eCAi9Q@A2K*h7wz(=?ar`fTbw0Lu5Y{rtXYSMp3V_C~ExxC07yvw?PPDSJvT@ZkkBlH#QNUH~2WQq=tYixwRa@pNIRuP;zl%4rEG*;H`mAM2q%Gx#F zuwnc)saHG)xp!kxIF`*IKzi zrMa_)d36)mIIHx%Dto4An3&NkZM@Z{yOOp>!@QBoRd5rnr%ly3zpr85NCh^@>NQ*S zRaZ33n^J+@XN~QxU`3a?2Jz}9u*ueg&#Fl4YnWFz-n0+iZ`En3V1qTxtDC^4T9-an zumu|C)lFd2ta+2vuwt8rd36)mbZclgCG86h^Xev5d8V}-otji-KKH7sGPgBoV5DJw z!1}U)@(nWx|5eEw*@_Hy*o>-+K%=T zrKeb670gvjrjK}ua$C?N*3AbMaifVtEZ9xmI&M28aG@Eoz6K%(5 z!N;w-*FgB233d;VO&jq!MR1XIqK*1Qpu`G~0p!B)#a7k*DmQ9*i88QUV$E^9pLg~W z|0soqd#Sbgq|d%pae_kRvj>0Axq_5s#shYG=!R?!bt722f{ z-hw5tC#{#_Rl{;#!@Na7V5_W_w^SP#hmJI#RzP4+S=+x=6|x#&((KzUrK+}qdfNK( zNhPeii;9SHja2{xT}~2Bb5Y(BFL%zYw@$vNlKHe&jFSmN2;y1mo~|mky&A#MIf&=1 z(VbLG-?%Y}i0Zb8=dHIgl?XdY!i`}@6w(oj!z1}(draZe8}j|63HwIj*lBuB3xo&0 zML53g!WUB%Xg0ybr!@<+`Mak|$NAHmPM8Zs83|o53AfT)3}c4BN)w(J&tjAn_$eCW z6k~AaVV{w{as^xl^Pr^+aa`%Gp2lxl2$pzx!wF9bZ!N!GbHlay{lyUIz}gDzsD{a< zW$@OF4_wpR73Oi+RhJlc%rm`x^PjQci-eLNQ$;&=zp&esRTW9bsmd%vbNqZF)=r}zG08^X_WxEMyP2BCl9Xk>bye^-;i1(^Qv zG7<)h>3ttVy`Yj$xr|cKGpSq(@@R0kS#YEcGg2)ENLulg=pK}h^dVhwfPgw{M#&xA z^SmAE+`R)0s3c>wm+@PS$J6h*nhKLWq8S+nRbM>>srODr-516eT}CG@j{s?^b>?fgHns9yMGCP2=W5yfl^Y+$JHu@z(f&k_pTc*?wpk%8O!^uFJN28FX zKYVny>J@HhfSvJ*wjg`H(yz74Y}BSXY^#L}H!9WaOhXeRtxNy7D8nk(~ zv;$OzIJ8`|zqkhFvM6~&1()#V^6M2h+!m;aErfVP6H9#x z<=XASc$}sW2PN^v8m85vyVrG3q$V?_Yy+INE)a@}(A;afCEvBOowF15Pv%cR9u}A3y#ERxg6PT$QnBX{7QnPtpCm_hFys3Gr&%| zw3V48>JISDR1yYh2@G%y#8aDc10Q=-mB{(wV(fBj-^^WZ(9kKW!fweQC9(#e-K^^4 zagE{@+Ll#YZuu@ZB(u6I;!0_azykKa;0*C%T}+$>rEI69eAMEjQf0Q9uzl3GoX}JOY{M z2)Yfxn0AK{Z-o;*=~1wK0;>dtRBBj;hK0p;Y# zgj*==_`*G&zv<%K)ia*q!sB^s^cg3hFP(NFezAe;@qA$cvJp2mLNeU-cz*w8C8PB7 zt_`GkDyQb@zKPh@;?hVBTm&W`e1<2knr~|&rg}`glZkel;d(spuvl^4r#W4Z=Z`c~ zoJ%#Q>+yWh9(ajhvD-AK>+w8iF9s1zJnZFE9?vIziGvqR{K3nqJf6p#Lj%gh*bT0> zuE+DryOkrQbT3hPJRga@5^h(hv6rYko^K5(&i}_2#|P=UONC73@qDebWtyEk#2H_=JwD@~CO~v!gie<|!H385KK(FTWD%3{h;TffS92sR z&m+P0c%JZ^DwsPpLKSX42MmwrzhhZLivKB%P=#9%70lko6{1Zz!p_L%C=;-YU^8ezNX0i!W8FqV!Qk=yVl^dlX*kRgRFYPp zdy=HRr4byJUlknX@w|Bq^7l&(5vt?yyk5ML@s|duq$!W*1+tX7JqR$MZ)< zs|YV@tiV)KMO==R+d#pJVF2kVvC>|KrI#7t@%$DB|DtB&JPh7Mi|`TF3KV9+j>rd# zlnZQ@H9t+6FgFh@B3X;AW~j8%=3F@Y++%H#Q5%%>#g^BN}7_<@*}$Mb4A_TY`8 zUUXB>(j3Ic*0r+=Q8^r8k3;P5D&X<_KJ@#MNFuOAs zJf81gpfYMteq3JTOEeXu#wDs~e)um2q*AasQA08F7IP)N6#98?AA=s! zx*pG)oU#*b(jm=}Uw*kB&o^VOlA|!`W_}zx6C97{f2G*heVG(`*%{1n5wHhhuE+BW zM^zu(5h#0@V^0cPZM4VpiXpUIqZwy+jI0lgpgf*$z#1j1L65kSK;%6KcsyU)SKTeP z(Mwbw&xaSs*Zx-T?#f#!^DDY8bqo*p1(FtMY>SKypbx8=YyIn*iH>|BXty19?z?w z!i$1u^TDc^;qiRvA4+5lmPu9Kc@-4DH3k3z15OWunR3#l7HO#AEX`~Y#&)>bJVm_i_UIiHjkLRoIR+0X#VG#<7 z$n2QAailhm~LV0%`td9 zf4iz$Dm$)WoDRgtdsOgv{#Ox&Fc7RV))nOR(}I1}{OvilJXia_u#zcG&Is4jW;1lV zH4!EC)Ld*NM~9cpg=j_vF;^qB4uW+(o?GRVz7e{*hUcZS9gq}a10`AZ^BufrS@x5O zSrXohJ0Gk3YTxEJaBk-GcEc$DjE}oKUs=Ofjbc!!%5N4TCA<#%FpO}bMF?ALLRFXG z-v%<0HLpG7yy;8B`lif%+A?C7ux8T&_!B7qw(qGldzpvxch_Zk0? zD;r{kc+gj*AsMHT0@~;j?KRD8B9?vFw-8(I!hXO-fL(|ue4AREHv1))=&jPHH@zw_BL7Uz*so!&#^U;c`(4R*oV=A^8P+~!ELtnCO4aXw zlkU{i%}gCCpQKdS^fV5GGaNpCZMzE9D3IA7%kD`QXUDMbk!@_FB#Ym&BrwTZgOHFN zU_Ut^@m4kPoxz*l@f@90T=i-%Ax+zJ1g%l`8RIz^1tE2~kuibS`1zZllwuH>ai1ckEC5r+R^)Xl$})%(4Sgd}WjRjy^|5#sdn}ZQPla1FbCl_h4Qt* zGpA%beDVZAbQx)kp9rP7Gzx9*fVPTO;7x~Sw-C)}$`WY);Oy}*Z#hk5LEyfL^H>=V zEgeaQ$ZM+sQz73LkxBK~X!CmC^x3Fsc~FZTs1s$?p-9rh3x9)#OI<8t%K|WC!N7@X zBY3N(HKS{oaAZ7kpbymiz#IO+<4F6X9Y!F(FS_AQL|d`)ld-VxF);Zc+ct`y^+6Gj z#?Dm6V?Q*(8d@or2ra5F1JmQHhLFLRZd%8vuTxD+jSzRZ<`W8YM<9lrOZ}p>lV?bQf4c)vjdWSWt&Qwt<+uulA&f( zDYKP&pFd$3oI=8tAb0mb936L(&tPp)h$W!YXslaFz>B+_^3{xDlaR>H#n8RdK?KJO zz$tvAeuq7}TrOrBY!kYw0VDA{4Aqry9}!e3kdzn~WkcK1!FmwbZTHU*76D;q&d4oD zMQ8rOs<>YUa@sm`2+Nevg1|B?%i^Z1#^)d4gQ?1WJ0HSXn|@Egk8S1tK5X;_t`9}O z7T7)>g}7d;(Gzgi=5w^-W?)GLvSIZ;P@v9C_MgR1I1298$|=VAI1IcfqS=^M)AP-B9>7i5F8Ju*@4rEmQhMh1Kk$5h;}V0&>;)= zQw9DX(%u8SisB0!pR@NSBtXbzFI*{sP=aU@5+Ib&LzAjV2kE^R=|wt72Su9n-b5*4 zp(tHJP(VPCqJRhr2!e}RcK4hO>9B@+$dVER_S%|vTFyG*p+x&c-L+!v77jOb{(h^yAyYduI*J~58~}ET|278 zp2W`EU6E!lVjuQyC2}d1*qhqpzAL_tlGumXKfLQezVA!V@_iqb_^O;m*j4i0Px9U^ z9OJ9R{*qB8hZZLepvK4z3RPufdnsM2ypp?;ar`lRTdke4veXT)KDlI3BNnGLtx(9j`e}O*nbs7o?xrp-P9E-$> zG(~=Tqj>O=IEhxv&xok_uJ}2HcFNDpQS+L4_sBbJfJ)(-p4FXPbLDsWA zIbK^c-Vw&8r!eH?09(*Tp&fN;*O7G_+$7-7F4#9H3tI&Y-)EP~(serZ_XRBIg4{xF zvD*Ypb3ty2Hu!;ntz3|srVV~5;4l}I?Or;~j|80Og4_e_m>&zc%>}tr*x(KUPq^Th zK`}oO@U{zzzr0TKQvoyWcPb$gkJ=WyTfpaBP`3H#n0o}Q?troR^5Q7`|*1Y>2V0=s@sX;Z4rpbt97W*?Ct~vFQP$B!S3($FXG6Y0T}F5m4)A(T|d#J6L&}@ zLx0eMU~p>$KtE+YPwFto{3sZ#j3e+9v(f!^q|PyTDj3W@8I_Qoy2pD|6pOtZ3_gei z7$DEz_>2>SS-uFWgdB}glxN69t50JvAsGCp0>GRU6_1mV7_1o#HbFm5%tZ<{)Skgk z!QkEBQIr@ec^g|c762R@46e+GqQp|OVwk_MQd;VQ6-WkxsdVoUfKM2(REUge@R11~ z7nY$J@sN4miRKd&`&6Ld63bEH75apsKfth*55Av){+L*vj=i9DqW=gm89`X@;S#IS zj@tN|Ab0wrz^ru9OxX7)u{!l`>9I~Yevv^-nd+D?(7}TG_~Y)u;K8?$o!K-En@mNi zO>;n>C~?cVKXERlKq(31y(bv8=$RczeKj4Ng~2R+&9GG;?ntsbb?DVsC9bEoBP=Nf z{r-fQ8rE?1UE;VN%7$UI7Q@BGXUfD*ZPRe73v;Hd5uVV=t~ z*%&WRr&7Hg5jl=;+w-{J$5RGtz>Ad-+_&f9zl0(Nf3NvjPGTts@&$n`AjbO!uI+g; zU`deY8{>V4LwQahWb3KNc=sYe#PIaMLbR+iHo`Ln3t@XGQ#ebVVwJ|`@btmuAP?CQ z(7qCf%0(Vop5L!wQMpJZ{*fm$rV=@dq&)^Dc0hksq}m=d157gVR^R1SMXIyk1}0Ln z{8Hoveqg*_$fmhSje*e1IFLPW)t>mUO--%?UN20%fM2z&U)l2$%P&&-)n`%JpCgTE zx$_OiZ;V|9tRg{IT~Pe3vRGhM0d*`+P^k`&2&va*0QrPp4i~3L-4UEb{8vaq?(8H4 zd{KgGxS%AVW43chghc1B|pPfYK+cqKQxLpO-TRxpcmvB3Y3NGPPP!e6U+l1CG z;o~4ew_P@2luIyzDyqj3o3P9!WC ze7zL&rhWR3QlkY19R~Lc}ld90-<$ z)==XIIko4~-!|kckD5T;?ZcMtq$ZzX1SwIopK_xL)bwF4Ew!W#*-_iVMJ%b=pG$Pq zmu(zU1#15GP#v|e4cSq>@1wM@6vaDENp-4?BdS0x`eN)U&^tC{N9D;zQtMwZ*c1FH zaH}Es_#=c6AcQu*LvIV=7nh(r^4Suot#&)J=&4o?yoaz_qub!@+Vh`95!>Iygj!lw z)&Hbcr%b5Nq>fF0L6hw6(&S5>&IP#}FdT_@9s!!nX{It&+OeHvZhYx1sY~(|Wf3-p z5UMRe1#~^qPD}VQgmC#CWV+j4kDkomb_uegWI3=V^|&)qmn!-jCl8vyXJsYzY&B1J zsG=bRK3*!R*FR-7p?(N~&yGs!z3!1F^a~;I@l#2C*4q!^tq=mAEtS+as*0Ad?Fm8& zYBm=2(9cs*S5yjJhiyw5@Cml8OV$2}7?#JJZWw|OtXf&)VbET#M;#uGsFA@puj&-z z883k*D95nN;<^Fu+%VPN%PjQ<}}XYxyv2Yu!Jv?UrA25n{)RLxf5NyWFFMK^orWd-x#cm zmwwq=*H7nQY|ApFy?p;iw*Cvo!m6WKD@tG2jdn>eR<9Yl#LCTh=g;M!9l_Ywn2si` z!c5k}z6r)e6RasaT5Fj<94wuxSo_NeO~~=BT@c%A@cg;X5an>P3leu0YN?2-%lG;Kn00batn>1X<9<+jFj?ci+WiN|rU=aS2*NHkR<7 znyxG3s7ufi4q}9ov^giXAj{MFC4?Zod&^H)BN0LtSS;)D`LqP--CIjycZv{_LkQBl z-_MTqC?UKYLXh6Q?Q2*%A-ozwkly`4(jJ|}tS1O1=vGzqfRFZF*Y%)#_xAfQdaR1s zj~Jo7dxz=QRsVy7YppN6dl%i*DMq1lxR1`g!xAFT^pp1OZiFsU2rS)2QYeYT_xDZK zHD5UxyUGgjK+~6W({9C>)g^im_rTAWKDHq2fU&~SV_yR+ju)u%w81M`Z_>9pFDrgE zmGmraMR&3~EJI1>M?a6;yw6hQ4jop)FUYUsPPk9MGZ65ifPbV1m}$@s_%l*g{sqJ)Oyk{O|jFNdb^-hdv*GeW8VH44h1yT1!XP-191@Gof!|1mvt`4 zc|*mCM!UNmYl1SiIm`s9)N~r{-orC`@N>f@=x!k6kNe%AZDnON(|3*ptzTsP@%!P) znvfVmknzWZ$LMGx;l&VwD8WBsu*@ff-XR3haeqF-$WsV2U4otuda96(0JQiWI zOOP5&p`4XaNq;}Ms*^bC5Ku>zaT;&Z!+|er=|2TyGBkSBdZiw@M}F^=UK+jD&;Puf zP3!0Q5Q3=R$IH{;)W%Jz&JzUd{NyAU*X6o#_X=T%{w0dSc>~flW`;0C0UMMVJEMfL zC4?aw*h5#a3q}|xLl~lhy)@-r-2s0OVTcY6qvO4FD$iU>UmF!@ToF`d2I{j8Q^Asq zS{*=IN;#UI6TK>e`u5gJuYnU^Ris680A{4Fn9IsTu1G_%=2|im!sGBBNZPNYM>j!DJDo?DM#7EfMumjO?2d68IuN9 zk4+Qtn!4&;6ydDABY2x3MXp45rAXfoxaKD_FBS%e7U0Fwv7klE z9aOP|50hU@op2u;1nfr6%8|Y`L>GVRpjsDO{=2asP(f_6e2xWQawwJn>&0N~n3c@{ z{^Np7#$q-P7-BCOwSBrB#A5Cdoy3By=+=QYu@k%C+X2$p(n1J)5?}1(j%9VfYUvR4 z8@br2GjTi<4d8IA#MLQzF+K${eeznQGtCXR-qgj;KJuq-x9fsseTQ*z?3@q3M|(Wz z#PM;a(D4seKrPMPR6|F+=0voM!N=~z&M%3B2Ba9q4|X}>vBNu2VjmgzUqyCuGhk&? zoK#~^QGczu`3JCS6}fa>E-)v;$OBYb3p(fa9(3$(qNesMe6k#EVUK_ck%G4i&{ML9L(T+mvch!#N4xu`T9d{^K*#LZ*y3Kae6qB<_SBgR%T zZWTs_=Duo|+8PaM3cIw$wlnT^1Eu2ADPLSh?k~}2ZIOeP=_#n6TTnc)hG$?)J#HH5 zG9(GSFlhirjOQGTl{}bbA&isIm9bZ8$}fiEbt>BDGPE+vSq6-s=|)Y>_}*b43lq?C zV{cLCV)(=?M}Opk6-c#10S6dmpeHEy$Mkg|!Yj!B=h$w>#7v-6c^bt!5;C@)C+)26 z0^OKqbs{dM-B|b(#MsuJgI{Ud8&9Y4k%h5+J&h6#>ny^p>1ikupD!3Y-1B~fR=%e~ z80?lGn~Az_FjPnMdAiFCt5sV*`>~nn4;Z@E3}(4zXBV>hyBo1l)cKHMfe9{X`RvDL zq0M#35?hl&yR&ra4J{Z=1tQ6c*~yJrj`+J9u|E2)um;BlgVGZBQ=^Vr?0QG6k8^Lo z9Ahum*yD7hCU%~4zK^7*A@jm0>^b|q$70+|&k$*L{pG-Ch;*xrz8+Ko?CBqy6NlmG zr<52BKA4Lv|RG%2Tgyc$y=OGMGWeab;I<8Qd}KHeIq71kEvC#avB#SDW-S zRJJgd7(1(I#_Q=BR(jU=Q(~W^k8zqDtzwGQs*UnDP-35_c_opPeNUkH(mJE@)GNQ% zvEMrkq%U9sb!n?r^dl#Ifb0H1-6m4tj(#dRf3{P$!6J0Kh<+-i7?f@e&D$w6>Ntr! zS5W!&+*lRpGrV1oO{Ubr0J^$>b>>2BQJR2ta?x}XTyfTE2eHLH$Le@2Grrb|X&JC` za@ zp_Y;CGQ_BqBXc0i*MKJ9MgQQ2T$dSEt>D}8E0I7$n*6n)$}-q37<_pMD!Vb=#%5w^ zQWF6B(m+F9XTzK~wh46_rLpCV)v>S*Si6aBPK}r2>nGe4KVhtih0Q#I+_a!Nn2};R z5k}BWuqOH5N5oY|EN1QPK=+V=0i14FZX>QGz74VajQb7wq?-KcIXK9MT_0jk8k-t1 zT+V@k?E4J~{APTOX&d}s9K!CKUC1S0mM?pqli>B5{DtHNthrk*IkSZdbX1J2^~ z9HiiRjCz?&&kbStv-Ge}@BJ8j9?b@iWBX9yuGq1^erj)PqU51IG!#?Tgbg2| zk8!5~eNsbN?sbP^#kYpR341p02I&38PSnR_46-HVEgng_fQyb| zv>dg-5Io^iPi_2y%~Vv08B;hJfINauSmddLMkd|5oda4aTO;U%&)1_j3Sn#rfk)5@ zhZ8X&;o74m4gmvO9=9eO8HtILMBd?I)_%8yFCRaLIA3$PRgcyvI^nCESS*$}w}a#G zC_3R-yIN4QnQq&0f=AH_$8TrQ8Y+rbQ$wRV}5=NwP6l)%m)ROdqPb z0`~A+z;I5qZW#x(Gta}&gxtnwNxI#(2x0IrG+_YMdL8?o&>?9EGptr>4MP(K(#@IJ zt;66PCpt>T!_b65)OQ7rLu7EP3tGd_gu!(86>J-0@R%!BgTrZC0WJ2H8`BzwCcH*J zyp011IcDVDpc3=wG2y83&kXFaVlaV0>v8dK{4pD_=`!YBq8v?lGZ00|jAm5bVx z8ZJdV#-z&nl6ar(ryqZ}9Lr#Yt){~%`5dBEFTDN_DRI1$G^tDt9D?E_Xy8uVbyD$>)C21fs`m^aPnzVKVs7Iz)3r&Yn1WVjM)fPLbC|w-@56_(RDxy>V`=|!FgK-ofmjzUE0H1gS6r~?HT5fSV zqSg+Y&M?QM5ug-;vnd|~sM!+`p z_@a~>lUB*en&8CPZpRm+%Uxl(4>++b!;M<1fW(SZ3-~@t)N4*uyOw#4E54#JH4ifT zuM;0dWaAv~^Caig#yLNRa=Ij18L)AVFYNKu)ypeYLl|tF*gCuUd=Nn}{2 zH-3dt8mlN`oF}>rnVV?FI^zrgVZ4`~VQWY>z45J$=Sdsq<1S5SR~X%lhnP%@P5mQ1 z!`4h}dgHGct*`9%6*ho*8zHvaip4e2yA2X^# z$Cuzi<)0x8HqP6yp<(;?F2cb?$U&qI)f)82>Yk zh2@ZLf7Z#7Hj44pjLak19Ncr_YNHsRYWz}-jbc_r*6p56jW&w$y*)dABsC6-)d>>Ux29nQ5p z4L4^5l;eOj4jA>71k~jKc8ZAj7B2(9XvG2S2$82D24LRg@&DqrcGkt0`F>Us)R%b% zmQ$6js>sZF3O3zLoQrBPd*bRf{aDKiGq2(`e7IS3CqC(FF6aQ4Vsk2Hk&$LQtc7PZ zw{9nRdMDQPz|*_cH*l~u>!F2aG3(>GM4Nlz#^N)tO+=#RE90;=(;SD9jNfe25pF!@ zXzZlRZr0h3v;EEWX!6gP#m0Hy>0Pl$I6S>i;w^hFGaTD6a+|M}Wl!%>ZP?R$WJ9=& zm`8kAlQ5Um_o#ek%6LQNH@`isQ~}cn^QeMm)8FA+V?OGRj}Dj}H)0HG7R0EousH)8 zX`VB8Ry5S}W?!TmZ&t^`WrCTZ2)t3u8Zd7~%#N6=B$?BDU?+r0uqj1N%B)l|vvhNO z>dV}Kj+bJ#E`cG7*$m@}l4hN&hAL%NuBTLK^ElR=Qq9I4u+l{5_zs*evdVTiYOPUO6F}G`L;)y{m&T+{_0z584CXD=b$Cwum1N~L&0BtDB1}8 z)mQdmhdHwcW?Ar8Zwq?+R z8S1PuKfZ6MZqKgvw|#!!z{*+zrAu>*gnNlJ|-^V{Y&P?v2f!db1Q0T9GUqr>K{+$ z9qa~}K<3_t+O$sCzxs3~MN8ANI-na9yar;*thontzg z^RY#E2G%>#0cMgp94+?^G9RB->P<4QjP) zWbT3jUQgzTW=d@!v-w7)-XU`o#=RTKq>7~8C9{*^QSXtN+h?dvWcIIPsLjadyEt?S zh3#*stz@=bq}2OlZpIVdM&|C?N_{})yF*ERNam>pq&_0^8XCdJWM16^vx)S!8fpib z-|Qx}lg$0_N!&$d`w<@X37Io7!2guY955HVkzJ&>hs=Loz;O{|K0+1jBXeIfoIOwG za|+#$%-=BiKZxqVi0?BpUxJj+@e3{S5UL;!-H*&quPXHgnYjuX>Ij*K2Yb{}DqFe# zK=mb=pTYirMP{MxhB`*(`Fn;sPGuVmZl_LA*}4P!sIQSFytX(=X10F~bqb}${NOa1 zH(_kPA@f3098;;xx>j2_3M2dtd_r!u#oPbnJ~V|D`0c-8)y!)MBJ)+KWW&r;9u~@6 zi+QHk%!X2gnP6@A83UgC+6O)Ec*do6MM~@P_<#^(3Kqf{7#nr`D`3wVOHJ3=AjwZ zCo-A`Pb!#)ot^N#4Rga~J_sZ$rlMKQFVMH5%}KC5K63?BMppCFPYkGy&Upyt;REb9 z&t`sllwclaBEJE%WHKKFl9~YDCUbXZ1@o{ip8@j_1_P7Z?3@t}1ZKN_Y#!i20rN2C zC#-0jxl5DEXHLV|Gr!p?jLpLr^9`7XTf;G)H5aVJnN8;TV{9IpVlA?;*%7McIkQbO zHV>WRF%B@p|6=n%2AhXWsEs1#@d0ceJ|D#9;XAauqGsGKHV*@463oLYKbwc%Wia41 z|1H4gVN-E754D#O%tP~dHV-|aq{^75p})$S`7om|XP#_|l|l1-88#17?iw%;v1m7y z%mxtJ!~G%qV{1Pdd3o)hn_GqFb|Vji+Ol1x0r{L|B88d za1QNLnK$qU=HcTdVjcz;gFB)!8>9YU9#+po`-I{4+;SH+H638yh!@1>R9v+)w9u93F zHV^e9J!~Gfp1@2@nX%BYmz6p5xR{4hKMLMH`qMP#xsF=IEn5H^RVhIF%NyRh`Hhk_WO!9E+Z&ANHXf>J0Ybhw_T;!(%8a*oP8J#XdY*j!7LX>raa9!()tPVIPXk zHP}9!fJKIVxKh|)`)~-o3ihF^DfVFzDsnHfR06{@GS6%>*gkB>n-bWEKG;_c36#H-&OYq0Z ztOpx+g3LHXhkaI~Ztm?e9_LFg=%0Ss0gHCiCxwq^`h}=k}-{$ovF4 z_$pkm@q+C~P#U8DVdwztI`VQrsh?nBZ((?b=TKLv8z@*ckGhGm1|Ik=GE?KQU_s`* zv4*-$X8lQ6lp(X77sE3$%R|lH#b?~`=N{t0X#ECTjDCBc%tjFQJDDG2iRb|WG3&r^ zsK`thKyUIeqbyscV$;|vQEsdVz!sttdy`)?USZ^_Ahl3%GFSWnTd0cUeTU~dBa8uz zH|)U3F6av&U13VS$>WUKj6|ZNLuP<2-S!oNmqq9GCjVi)$9QqHE)1&o>I-ghYwCG8lXXsv&uSF%kXZ zOEd;L=782310U64??`zK+BtclF%!k)uRGDh|H0+MKav+22Pf*a&%&APS_qZP=YU|_ z;@@2{xj@}D-U*z%i!l@Gu9fvH`Mu9=`t{UbQtT5s79J`&}HZi zzmkvj#>RDecl=$K!Bya6pK7~>2zP_A018!dln2#nbqpVS6o+!(G1mUBQ?BN6+1_Ke8T{=t*u7W0h;!_OVfg`!ZIhnZ^Ty7*{T!5FtGNM zyv^{})HT~Hgu&;!B!6gR!sJn0JZ8HL&WD|6KH(+#BZGEokDi@Rr}0@Y$sZf-SLtou zSDsFjM7JBaK7;zjL!(FxJM{yXM0E{FqC1Q+`?TLt(WlcS(VfO(EK116^rlazeG>s4 zu*ZnR^4yOYztaGRhKA4q%W27bjd+Z^1bj0XJdCxB z>9p#(k+(06moR)Qh^a1}cW9{Q^O)o$e`Ta$sd6+MzCVM(wG#mzH)dSb31r9o+NqDd zct@Xn!Wef`7rA&axDd-{$tR7P7*6tBo$3XHukQhP+Q^m(<801Q&tNbg_DUq5F-l_b zLkcy+0qwrO19SA`v&LXk*Ush;MtB&qcFy>*oX*_TJ^I6}g&i6ym0v_BUo!&G)AFvRmIM0qkc@qMlCK*#Fb5Duj}XR)@4@)l*z~b3 z)kH9SJUD~=MLp0oZWxX1r?HYT88Vimi`Yh=eA6gfL+5`tV?1ud>*RA#e#y6te?P(a z_zZ_jZeFDhD*3iC2`g}N7*j>MTOTs+80|{p5F4aOctQC+V%{~DY{c>?_l{UBQb}$^ zw4HVgcawWYe=N;SV^%qvg|zE_1DW@YyS(G8Il`?$vTt%eX@)W$|K0fWHm1@Dp+U^B z2cUyjA?lw-8eYjr8(r*x@@#!PH9)Nh?Jpzmm-+!8aB1?jZB4s`G9*7V9$_XR(yqBQ zIfJnubyUfbo&s1spN~R#Naq6^F~YE;BrYQ^5ih06n;hQ993#hNq{<+|N zd;=8Mh$}@=;D~IEg#Q8y;H|K!-uisY8(&ksE%`PJ`bUhn8As`as={gKT@W1O4w|BMi0K$ ziDi4n&JE&NzDE1IBX7kxT?h0=kU$HTtm% zvNO>UZGABhzDApF;{6T=LbT3_WDi?;I|6)-j{kurK4yIJbjAfLJcks2aF%X4@+}#T zuTdNpxhP`}r(iP7u3&i+J*4K?|4GlesAxxx*77{e2=oOPm8RqP8hy7Ik~_Mnj;no* z%ukW4i7x7D{0j1IF8CUaEC~S{o=(xeMpdxnNr%!?(7d#-(I_ZFmPU!$;7sDt;OMsa+N9-;L~DNi%a>O@=yyRm3rqk-LYPkHoon)Wps zG(r0s<;|5&8j8fbD&T8W3qyKIFD-^4`d2BYZ<^db>^!j0+p8a0F(5%6{}sC|tV!V*Ysv*)&R z>*L?{z(V^PEyAEjXrZ9|zVd?L!T1Hb>hE!uYIgJdyMhV$9W9ZWv^{DWC%~}yo4B-LwxML`Bn2ZQWuR5Z6IFkCmOy8wMBK|@6LH7Zt}x?>*k2J56K ztZVqbvoP&z6omnvV9zu5vxRA2quqF;p9|wPdI6Yzx{j~WP$2g~_fT&}t#O0fh#g;} zxHp(HJv~Qn+JdjqFw7o3wAO)vXkViac#95CAP0HE*XTr9-aB=}g*h`;yLWtz`b=Qq zkr-g={4ob9XkVl2qZuxq9`=bGO%$J{jdY+DXQjzgh${Tqs%*dThwYP!DE|oc9OLCd zZH$+9J*UbwMz%r6czOR<(t+N1Dd77lf*0D8yD8s|2(CA4HGVH9?!I3lRsy1ZoS@wK z*5fx;)CIk5p_g3r6`n$9^p1r-cF~+2Azh=tT4+puM{=+$pYh627(clTEkhW8MpWaMb)3_T1)S1q8RK`LEPqF2 zfNtZwQ(q_|0YL3KxbEd8d?4B|FM! z71XCw$%n;gpC@w68l6gUhk>f#Z+H2^BC}zPE#t^~E?A64;TicdL_Y4LRd29dG=83Y zr^+=(wg^V99)p^W><+zwb0TiwKBDzTsB?U|3{vA};S%HJ%1QNZ;sEQGuQ3u3dE+Xc zPvWXdq>5*uuZ4aV*JrQe!vB4ILF_&FleiS`@{32)U%2ldft&moBSk$}fw<9>ihK07 zs1Y#K_-S=MuWDZ$;n92{%Mizis2DHDO^jxNKB|p-2=q}u+*ksAG!FNUK%Xm+!?i$O zh(tj+R?_hv*kMxKPbCVW|M%*wiszzVkWW?s$-O$L;<>4!2#oL~x9itM6_3#pv3I>g zS5-U@u`ryPiXIJ_XnD59qT3d&+5_f9&h#x>&HAL0%KJRbO3~`N2IZ4VMPIOfMaVakit0}!#o_?q zR_tR?)cQmc;X7ZM<(o-G>+v#|m%sCsS-zQ6w88pA*e%NCz$cQDuz*;!$@FdT_CV_N z9fGA`K^F$#KNy1rmZD96IHH-4(=maU9RMxZtPfPONO}&je0&!qiF1xQF&m(w&A-Wv z##t>L3kTD!#(tZkuPlC94|1P~Y)za|ZJhlWZ=EmsnQy^Dc8r%#Qcm?whP*iImaj2h zUZ#(cLq}7+oP3OzPehB6bMA^4ERPkEl*uo^YT-M6Dc{z`4Y!gM`8H$9jDqo`8X%0W zLu_<2zC%IzV|*zyGnFI7eDV|q)*%>sqY74D1dCjL|OL?>IR2{EeFvdrLr_8z* zjxT+&q^2%rIcKKK-Z>W4)yGZC`Ve2r+D5M`l2nXK+VZ}$aG$H&syM#W@xh-Mkq6vEKvhWjx z{1h39dRQ$rR*6BY?($Ovhp!R8+*VGwUNS0b#Uc{&a0m8rHDfVKWUd!*z6*z$(xY;KdOUcSb7TjLtXXSv0A zt!p0+uo#S`>R^6}gy9gb7!KhY(e)E#D#klYr0{9^G2Sq_@`yCm`yq?5ZuuG`0g=Dr zZ6-yoc@0rhz27p0N6e|-t9;Aj<5ce*zU7f?jQ4;<s{7`03G z!P;yQY#cBBOa|pOy1j@FWnRL)GK*%*j{7SJcfTl2gOFNW4zlx4l3MZZk_}!Z!T-ZTSZIZ;f0%(iefvb z%FNFIN{!?rmo&cLRC|v~yKW`W)J7LU!_ptQ987DmQ;(*1MXq8IjSQd4jQXMLNHe;3 zGVau1`u7o#SyjQ2zH0bLIKD)1hBC+c_(4g+2hfZ+^e^H7c zH1*QX<=9V~ae8OO%e!G8zGg9_9HQY#2 zXU2C6p2GIFZ3syrV+uC=el!HT9!2$^=K^suZ1dF5$i&Wx?X*(=!^Nu8!M2FE`!K&Y ziiY)w-p}G-=KpMoLhY|H8@~z%hkN~y_4(LY2(RXZ+vmiGVaIO96E(llpFM8t5Ri!h znAT)G{Ta5|@i%+vbqDiJsfMS+7mTU1?Lg5p8NXv6o#bRAXd>OZ2&+1M1hbj(Qu`Um z^x^b!u(W=n3q-7;499_9e*(qne((v%czYYvq-4W`D$->xMjt}o=V@+qpFtLA0apHG z$^bQ41QFu+u@CzY+edw8Grq)1)EnEAdtvM#72A{B44!Li8i4bgZoaOp1)^x4G{dUI zogL5Gb^wdvh85%GYle^UzO+P_;q>lS)Ww-F&ujbzVb5x?Ml3~*^9>^K7llW1%Rev? zdwTHS7@>XzG^$M>GNC{LeH5k>V9qze{P(w9xKa|2D zNVs50$p&>Znm8%GqwSSBtE@9#5r`rGmKLVo4T(!7P(d{Z)`-hY*in*o`ZlA7BpruZf_OAXpiaB)cMLJaN$$aM6Za zKe==ZxO6kD-zeY$F5q(fgiKa^EUy~=Z$nUIv2-#|A!q_M`wHcl^(7wKJ&x6Y2i!S9 zl+Sfe!It2IP!p6b0YPD&%_re$$zmGtPNFKfnMl#N!#3L2X%y@GHjRY1@i>S@aT|9L z^_0C0)=08fe+Ad(2qT(Aqw5)}Wa`ji*!jT~Nu%*^$YdIkg5WZv?_>Xk1mn|`qq6UR zL8+1zy0ye6PYKLE^mS4tE0%Ahp8{2ls)-H}Nk=PSx2&Z@ETz%|n_|-`mCli*RdkrPFoyrBR-Hd zZzt9_R!BsnKG-Imw{r$;y0AigjV?lsZau@vQ?Rd> zLnyoT^gdaIjrLZ6_2hoUMhxr8HL{*um7z{e#4SRjn?k>Lf$v8~nxZ^vC=@mkO{I>V zI;hAfTD=1HNWzRMRJ|a0K8ixSvBJDlscWYpD$-BmAK}m&;YCcLc^{#<=b)Q-x>gw8 z$Su3O{G2^2B^qb+KkmxiNI@Eo?Z8&p=xNjeisr(Q- z4V>6WmHfy|Jng~;6N{*fX|x3kT#-ps5B*mMdZ*DFS*7=l!hj}TkBla3kp|Y8PG@&yF9N0=orB9&>bs(WRb;ssuD-4zX?-lS`(^S0j zw8FeoXj~qo-i|&hh~3o^SH&ej=v3;~TSbnd`&b{Vik3(efl3~TN*+sta@k?NxHpB{ zVPHQMIgeh(3;#Ysrbb(8cvPvxUy_yXrqrm#5Pa36$oFfp2VFX@(daKUmQqO-x7c0T z)2K}gxVR*bg>khw-bSrCq$uXTPzcnDxMK~#ELd=RHMkp zh?l~rE?7a&H2M>-VoR0C)y9^cuhHV+q)L_iGT9FCHEPlmIVx4TfgLMD)z|?ZRoWZg z{|EieK&tv$0XX19g#Q((zrsbj|7^jcftA)It^QKy*^+JDw_^kxOoDaa9t;pHU1F=! zw$}}HMS9)n(Icm8NwZK3R-mIs19P4bwF)jNmMB?aiEVPBmq+n7C!%WQ(01ZRQ{zve z8rZsesA?4iWqUyDv5rt;qC?8o)o6!z!5MN2soM5v7}8$G=aVp$Vv>hukk-**yWvqJ zI(n20>I=Slts?1-=Q5}-`09PMb3Lf9Ruj*oU=@mKtOx#vH5K^Z-@6a_Bz(yCwx9C7 zTggrEHu#VQr1RNGe-thc>q+R{pkAEZv08?zn;bY$rljf^=7CJ z9Uj(yKu48TVb_TY_oi5XO5nIem7(%BxJ4HW59^!*Jt#b^OJ(`fonQTghxHgOe|j#F zKfQRvSa?|Pi}I(>efjfh8iuUlVFOyqpMm}5&!EZjXXtAAGils{u$mOo?r$)9m=$)EAt@F(KcV^9_0;Z=WaiytkT;z#7w<7hYG8A>1M2uT@I zkIJ7iKjBYCRSJ{*QK+O$`+h~uMf{VwTYDLEQd9>M{(nRnkZp`Xvk(&^9>;WotZ2FV z81kJ0AO9k&e1$=Bq`wHRS(i6KvKZL8QeQ%1JVUXiUP0M{q&|zceiSWNA49(F;Nzds zqAf(H7C@qr>;48OGU+xa^UD+@V6MPInm1$lF;Ia1dr)NLuQwh8S$`E+Hn0C&3siuA zHmsM=zZ~`|pZ^U!z&*;}wIVxm`P(kRAH!cBmS?or{~m13=m`IGSeMa0e*)~u=zMfm=p4sg#j`Ak6<#q z{;HdhF($7(jGq}l;f-Ma*D(ZB{zG4ITF>Ob;M(5-(;22^d<2g|dJd#)>lYwGrq=$H zTGAIX{sG@Hs`3;>hL+i6Xjv9>2ZF1nH!R@I@Jxme@Fc6xN0ji)g)_C|KhI^spU9@t zye@I`id^^&H?_S!zAsXfud}gH8A($_=c_26k>N$`kU;-RL;vzdWGKgfD7>p+VfDTT z(;HTO1fE<(SQ`F3v*sFlTIvr-HAhsL&fFSuHXjStLxkj7dY%;DaGO%Oy~rif=>u6Y zUgbsbd*{PdmfkNQQl7F~(2k?uk z?PSm!;hj?eA3OB!#jiNdcz#NQfauyHg%yWI%ul@bA61@w6L9yI# z+zT%o_~h~|0Hjd}e+tET6Y=L+7SD>v<*UNfvD+XOJ(u+wv37Eo+>xu5U6Fh#?(oDa z%SyiB$P7rmsbq>Zn2+y39)#gb^kS}XVvQ!jHZ~>`uys;AR&ydqvWa*GhMm#tInN|Y zKrUQS79qy_6JnqRof^QYymk}p4I+tEq@_1p_Hz`w7J2SWtT=sKLso6LRq}ic#x&6b zMM8XTz8^xYS7m(w33Nkh(N*P<_2giY&3C9wu8I7#iy4)q{H%gqhP5n}pANqcLgh95 zcvv}y5_k`7bX&>75u2bAP_39JR*mCune}EVne&M$_=hpF;X z#Ow9GS=pnCeApj-*|#ghk_>R>YOj2sWZmC3&fQDk7$meyJQC!6-}LBxz*9&p5sft3N=QWryQuF)wVK*L)|eG=BIO4+Y!* z4(5H>wy~!h^pN>USa(J)oM0p&5%T;KFQdr*zcGUF_($R1>;DY?z@za7?|x?%wl~}# zxQ#+{!rZ)yoTOH;POHu)o^Q*ynfyocGRKO=D)G75T8kIeRagiI%pb~HyL ztA%jYsS?C5iu_?T9^((`;kTKVg=wg1_L}pD)6W+Wh>h*ijox=PLW@7!>-|Gg(P5#9&(-Ho5ewYna>f8)__s>sb#8xIx^qI|GyxFSx&%=je1RNZs`i(o-|yk2G}FF%8qE?` zo+ea=LHPV>WH@Ffg& z{4dbHSvuy)U~nD$Z2UE-#4rv18VvqwB4$mhQ$~YPcw6s0?5S9Y^4FrgZFO$rgTYyF z9rV|scMTo0t^-Pip(cLF3r1b~yokT`6QJbQFbjjWkGN7H>Bp6 z=l)y$!~ZDZ<#clCEz#>f!H3q_IBCbVM=T)vsH zEQGNi<8FUbs)_OJLuTv?VO&278O>wLB&7W}mW%wI=&b{qy8pkZWhn1&$Yxin#XGvsGfi|)8R`Me zi+%oUQ6Kb=9d2ch&70DUp7b5w`%zr9j%hI@+rhM6Gl2wQi=#4nqK(-Ke@B%a7+DwPo$SC znf`yy?`mp|g+a-096u&*5msgVzlfahDeCtF>gvO4HXEP*5UEYY|BJYHE~34DNu|76 zfh~2#wdbegwv(c?mAPM0pQ2h(StWUbhH=N2kP+7yv17bv`IcXTW$cSV32}~PX(_ub zbTN^rEWf?ZE(=|4VPLR6R*o0CvReyX!hxEP@m>Tw#v2b2aeSL+8D>}BKqJ<7W_Qf| zyn$1l0s12wqxJer{smF~Xl%(a{G(>`;P0yqn7^xHDV6XekU*oE>&NP)^3%`Ys$%!< zGg6Y)F!IG0jC_bI`FkGZfn-x$J*s?*{0IvCPNn$ViEM!u#sG|nO84v3Sp`}eAGMId zSrqT~3bZn~_ApqCVjm^vXM~K10$IF}nYXx%?DuN$JWHkuxW~?2CW5KMTq>c(F2)`#%l&2goaR#g< z&K)epL-~mxPoT*=Bk=P_)KIkCVag@pP32dHY<9SB4Ju9=o6Tq@jJWg+8*DCMWfzQo z88xkCzan4<7c2qH7tClOjL|M*3vy{kZzeR-Kh}=(#7rN^%5qpzpr(I@8sdU==n^KAjbKwI+O}sofJ1(})jX4)mL| z0#b)MAZln2MxcQKr>^4EJhVfa;|i=KbGX33b&W|aV{A)sJf7MF20dJ8Sn<9Lj>j7T z1A`0R)G~i|u{1gFIWV;O8pxw(?4lzdeB5(j*sU0kWiIkCW?J5e8n{)Ccw1#1&eZ+6_>Fk!@i%Hgf(4x$*dkBT;rD42()c7Z$?2rxQls!Qx{Ue|GL<%e$}Ciy1Z@vKgLX#@Y>%>>qffr|0a4m85{Cq3?wDK z^?xnH5>$zbCP4eYS8=Si5hh-kY9k^u!e3j9;wZ+f_bV6HRo&{~l_`eTYA$(rhNY=H`rz~sJTQD`$fZi1bD%Gny0gu9n)-oDWn&yFb=P(K0t|wvbF9^LYtg|jlvKh=e@CRmdGG0v2f*8rtm-Vr%Dp`6QLXg}X>wQ%}^0-*1{1cwc&G8SH zX;$s0vm`esdf+HWsqr4^S;)=Vw&++F+pgA{YoSYU6*A}3w`Z929pQiXxQx~vM_j&C zyHG>;m(Etus_LQ3cdFLvMOr@ZM+*Ef_BAa(CZAJymWmAXMx?;ie=&y>#Z%!4LS^|n zVc^F?g|&nZ=?Rh;#C$Rx&H5TnP*pk5J867+76`41fp9(PS4~(QLO6*9-M~+q-obW4 zmT)9J!A^(2w-~tbBR1R0#Q(0#lKRq(Sy(qe#SmCn&*XPX9o$TXb?fc>dK_NCWl0AQ zmi0>m7(wwG|tCUI%WU8>eMWc3Hvs64sqOWAs>algkRum#}^vg0((L@wCed z&X=(6=H0AQeCV=*^Y!N$Jl@}qFV*ek*#b^Y@bkBHIj4drbPg2}xc}E=O|AbwsC;r# z;K9e0bff9zP$7oTT?+h>W4{(NIT)Ke7q#@~JN6i4bujiKUV{Yw9&ZmN_XcAVh9kX) z@66LOF9u_L%0S?swRm?glOj(+l+c|u+0#T}J?@29Gr~%Gg5^$=E0IwDE!ap?8$Chg z=ZPgVVJZ4BQJc`=Ptf>LfyQ4A4iKf_4ZkG3*rl;Tuo(tjHgo}Yy9}L_$na1tSX+^C z*=2CEv1NEE4F<@nggB=XbUyg|#DOr%R7>Zhkjv2d5Jot5i|TUMa2Yxu!pK0+UC@kf zE<>lnpT!JBQnw?TG1X=0RD_Y03gYdVdVVLv*ETk}wxeT2TVfbk@8jLXR zx(r<(!pKH%7S;9PFZ5)6@TYhJ0s0Edy&|Km%P4^=wbV@s`C?Dt89G{9)7rT-(dVKg zG%W`$jnn0xRPKU)Ab+@Ap@qoB;?*Nv%7TTR8WC=Y+=5ho zyyn((xl$P++&KDslFq~MC%7Sbc$PN9&s(0#3YRMeo8{txNOLSq$6nGR52UAoaU8G0 z0!8TZYV3c-u!VkQhBY9UyzvsPUHQUIrY~^tn{Z>EbGTv~Lb%1LDPA54x2nsP3^EtV zU;hYNwj5QphXI{j8ZY?T3>+8JKo5PUrDyo+0RZh447~#tY2I;7d(Wkn00E4P15na5 zdbT{i{=g+Y;xGV~ibM1&wCNO_#)0w%V6*@3{RjY<;|gO;Rt}%TL@j8ew!h> z7F|o$#%sxwgiQlcwY9M$MoZZJBw^5E5bDs&Cv=rvdXg}aSN!Tyi61n9@V?K-b!V%w ztRFzai)h`NP=E=%alj_b@j}8&bQ{x783tBmg44ZGdsnd57%6Twr7q;94dQ)-eGZEIy6~<|z zK84YT+F+C*j2VucU_w7CgZIQj*zAhX=37Mcr|ngAR!%q~G=UGP4h*C(`r~YS4{G^O zSHwOpIm<;>_9n;YA#Er{V@-nBKxy{VX_Nb-y9}eR@Pd$+K56IEX?(nOU^p$ltrV}=(v_#v_+;zA zYjhB^6ke#sZs4bu6xLV;Mo^Q1@cLm|LV6mijL)+UjHJ^MINO8^`C95p08ocP(LISaeC zwDGhN4_tJIFWJePvmR~JCQuISlN4HMm*y-(+qBoI30_7Bt+h*YR?ltPM0ziWrcH2Z z&Z4w7m&VV+=dA78+{w~`gnQBD%DQnd_bAV)rqZcQdV>BKT&Xs@?u0On z@?npjDCSsY<+W-UKVXHvfDl7_;f48hY{^RqRQ| z;Cg7kb7+XYIFKB|;1eDKbLsCWol5->Mx!^tm`D9bYexSN#$J9Z^XV8ijL9T^P6$KF zvVh8#){6ljxeQj}Xa!Q1g_MeclgRisgdt^FMEj>{84p7kQkKQEvc3K4tGH7iIu$9) z5-NigVM(P@2t&%Ul(Kcx`Dph9BiVZQyplu1k2b+-_6om#FOIWfx8OoQs%CksTT$~l1d?$p;HmY zRx007r&7aZ=u~7LzKxpa)M}%f%g{1}@ga?zsZ*KiGPDetnSM+w^J&JrEW41X{Y0lC?P3podPldMk|7LfeS7Jz zMViqxgdr_wA01nx+r`ijhP2Q96#cc%$HEYXw50Lge_XK|JVygDaFv+3O4+pou^aY7?0MQa1m7*af7LXhzqktqyN)i-BMMY3h44450K~WSjp%_5{QOpSgiV@5r3jb5pHPf@f z_k8d7pYxxebC{jm^>lT0b*`@Nxd7|5WtOUOh58lMPJ#2omMU>E2Z7Ba`3*gV`IrnA zuLBXk_j>Tnqs#8V?CKybS;pT7Ldpj@w%N+hqkC=w@h7@EUzZ?$b41)=B2I@vGI@yl z9KaTFdx}O(E#w7bIj134yNb5P#_*1w-|OI zGUI!J+!&Rd>}IVp^IMOyS_DLM)l_ndyYMiau&5~$I4UluSpGTc>P7C5&zaBz1g)q_ znd)ZkXUe3IVv_4fySt*=OmkcBW%BhU$d|%6n4Ipe!*(gIU1YK;z5?2mkBBqetl!KW zz@t4ORd~mrN1-2Ij*QPL8py&QkPSCjQK83 zePk2Mlv+^(zv&?$GUN@uViJC{{Mr$Qi%tXLEkgXhDA6cfqpuW1#nu5^qemGV6>+N| z8WlrGn^MGWf+(~I8A`IL0v0r>+mG_fZhS~A;;xoj_0e+NvBx>PHblfFy75L!-PsBC zK>!a~fDFvW8!dJJq46lg9hS&o?5(gjT58RfrnkatQPirkdbP*3S>vJBhFVX4%kuc5D&vr@aFG^vW4JAZqA>> ziaRYTS_=jB#`4FM*I|o_rYNXg@BE>1CEJD4M^ogz{M4SE@b8el{N@(LDMF0`c=MYJ z6)?a8q^&Ao@6&@6Fv|k8wX<(R>a9N2RovSwK$8%_+sCGAt9sf3GzkIhyB{lWQQpTE zph@rsf9l;^8>l_}UklLc#2fsn_x>J)_QySO&HPXq0x%o=srLu$1Cap*MFBzi@Md}H z!{<-Z?q!TcsUQOQ=jH5>P-@5jHcC0q_>Q*EqV!luRYq6U)kA~*G06LhRH{G7^AqXX5T0DgaH zvjPe&KnqC#f53ofI7}@H2x^O<{#@PDHK>~`N{fHfp zI~JgV2;lGCT{MZKMFD{zf;w8KvgRiXLxW~m1>t@C)IXWmE1R<{AXFaoCa8a#e6Fam z#ZW4eppNaUqcY!A3M!CGpvNa2R=KtogNkrwTQG%>i=3sf{l#D`A{Irwftn(^0$XdM ztO^BTE+rH45E&Kg(#~hJ0NeZ*)<~)mJX&;)G9Oo31eI3=@#)KL%6zHCa`dq_8V2Op=dgraawUM`7zNOjIM)K9AV?ld3>-7ix*`Dhfkk z3!)+&fCfbRLl&VD38E5B-Kcu2+$mIu3d0-3sW`oGp5ts9jvl57BkcH&RCt>5wx6(Z7N&96Fj7jC+SF_=Q}Mz%0yvOX;M^ux@P%h3u8o)V$P(c zwKd;ASePg<%B>n5N4G2LNpub~FWgiEqND0`8dgjKYg!Zr>17I(MK>MQ!FvcJjE;m+ z9`Xp7%r$CID>yH32rVof##XFUE$SVNpR0?)z=*9_scc${LxW<0dbI?Ctyrnrw0XM@ zZ{Ls% zoho*ANafR~Z!7jTi*ihj~m-rR0}Ox3gv0QB%?uY1<-*C5H5g^84y*601D{G z%N6i11EPu$050KPq=1@*07O+FfKIdxYZXbNfB_{k#2zB4&a|YLqQ)>vvZBp>@D9|O zE;QtOt(liGKzmz%CA4uiwLD8BuZqy>U4eM#&=cjf(mof^Wa5g7%XaZpPuln^u5jf> z@eu%~Bm-hE>b*jj^?xx@dT9{ZXrAg#n=sn3q*S$ANHliwR3B=6wQJa(!9=t0S7KkP z2UEVp>|tXXqj{KVyl{XaZtZyk!QC zFMlcTFl1JgbKVE(I*?#BMGU?%pcDTr^%OV0zX4K>ziOcjGg}DneD25iGhUc^8p6xtkLErn}C+$GyaE{QU=iCysKR zgae6;dI}0br6Ag!WPSwPO zhhSGvlzA6DK%zobs4X!9`ybU31-M1?#Kbb3tf`*({cl_`mRMehi@y`=GI766qBqBN zs+=(&N8mGW-o%-CZX9Yt;>22g}4V^eMTf6afJ`ZDZm!3EY z$XKG?3S4KJc;OOU@SV6GR`BwPRd`lN3<17k;^rH0Nk^j0btt~XKx`4j6Hj6ktDG2( z!*o@gDyL%9@H6kI-wO$!f_GeFl0=0`Jbo`<;@27$PcN|*to_90e{%B6f8^x9!kUON>DWQ}&$RGe#nL|791+cf>wJg+%vxm_8+*ycT!BB~HgRY#E94fqV_%IiOZ{ zs_a9r*%x@qoz5TLx`!~0mnEugMfIh5L;Rz$Baj# z_Y_1wi(r9+=)HtE%@TQj6cBq0aj7NBsIOA>5#k0*l>SVK=L>PCC5m%=JK8q|=V!j? zc*t?M$~*MvxABfL9dK??|T#0B+3EHu%W|OmtOLRNaq#9r*!(PUj9+h9H8T=H) zV1C37#+g1{2=@oc#NQDbkI$Jfp;XhtP4x>ipGUnf1=Douis^=wd|s4z-FU=|(T_89 z8Q3#Q9F7G_W?4G#DvdcQN__GH$WxB4#)guxy*5hx9UI-5<>?>T^@R99lz43nC0v1? zYpNFDm!rhb3P7w#XJI2rVtx@N?rslhE77g9lkaCc~^IxV^pS0Hm8*=dO_XzJvPoy;t{8Iv6$eq)I(>Bl#~wg$~O36s3E z0YU9CeOXItIS2&^!`A1M=4Entm$-xDE%0VBT&H?v3aee2JyK zyc6Mm%NEeipcf#O(0-24q?^R2vM?KzezM{~n;W4ur>l1=?G&b|K+=V_AQ#JU=|ek4 z;t8!KofptXMB+*J+KLiOUDLnLi^LOJYdSBW-5QA}-Rqe&9&VA+zdjy`C$u({iv^d^ z_D14K*V~T1x)PHK*6fdwctXpk#(Q-lSay)jpLD(L>D5lI>3i!iO$MbrlCHM{{fX)< zeQ*2Xv;unnd8M5f;VIp6NBRaAw~H*ZBJqUQiJr&IM9OGIB%XBHoe3V*Cf=qCVrl=~&80df!Ik3GE#E1vH75hUOQPt#tKWsRl+giI>eZ&AZSFsclP@ zvrQzP3e0Mwvb7sRWtvqcO>#*qb(^QxU%=lRD<+ zT;;QTzT+d8UkiN}{_IOI;`-H^?HGz%cb8%;s+P~Mm?>fJ`6m1z zKH&5wFzqv&ayMFe5oXz=u7uG~Qtn1Oz5}<>Z*S0m_QY2@RXhLYb2aI8Aqym37dInU zyWs7hkAKC|y3tJ7k*kf{TsP!gSP`;}p9*uDB!&Ih=0Hqn-d#CYf_Xb4oH41iqkBdH zHF5BR8ZEDM)VX89eA2tQ0qB6rP;KU>6}n1KLzzVK4h~PD zm#ubjQ%ocziMquA-RP!Yk;JSY-wvf*kI7NB*(V+grA!0&YIA?f&@{#sW6_QVYz1K6 zQk*-JG!~ZtRO|qjmws4D^SQnlpbL#W3@PW=AFTO|X2I#sOtbubh?L7tONBl^v*hXS zLH16p_a)klJNR;PPCWkrU_E#S#s-CR{{?}u?2S|?w@MdciN_&q^D6XD0VvnJ@-s^U znhpCI%azotv}rgt9Y(+-f_CGL7c01!H?@OUAT0a64#ddRPI?<;kFEl<41T3J+a3d3 z-WPLWEP0Er&&HaGd+qxf_5s5%$a2Ffny<&MVI6%BlyL*vA9JGk<5CaI= zWcY~wIaLSaatJmF1an2%WcY;kdx~gK0wG%npV79 zYoP=b`W#TB+EvhR^=9R?@)!jUYPo2(+60pRyd2_ zsVQP)$XgIzAisKr;qd{$f%ra0I{PT|nGzC1FR;7<*Qro=s5{o}IR_N0aYY*Y@ewc<_!7Z1QJNa}XqlVr(8l3;O2##TH>c$Kq z1Bj77V-epP2~!e67)cO2y(Od^JAWVMgDp5*vT8nEAX4MbSU8$$gju3aP!rK zN;DB>u&jxqU=tzuDqNO74&XxnLp*c&wI}BMT$+5;FeuIDtP*b&5|g(eyg+`{3d7@V zfGb*>Z9`(Q(%e7XbNHkqe;>=q=)wuaPvz)AXlfGqzrQFI3;@@tmQuRXCg=R$rA?-e*WTF4wobMVNJx3G}q*UB*5e8i$? zAq&J7a(93W{cU*W@@tM>({28_e@+nbD*jveUaM9)4_G=Sv)?Eq_8LWYtX{ zk^bBYx$Dw#{PC#r`9Z=+vvEJfYe?6;Yig25{22)&w5gJ!(2n#ZDr2lE%|+e!Xk;-= zCscm3zfeGvZ-JO?=&x4zd^v(WT3iYk32$YQI?~m3Ouz5Z28+`)AAzYV)}2m-q1mH1 zK{j0yQ%yVQNdIDX8S77T?_;0oUrU8N50AOna2kx8<2*{DA2VD!vCJ}_cBDDTeQX+~ zVS)|?gb-F_oFDLk7s$mleHv$JNC?4xfD`9O0GUG@N3bmOLx^<3{0JcP>6EH0%e^5) zawM59pjtSl99u|x4x4$8M=vo`^hPkWDN$TL{^YN;uDiHL-nY?`YH3Rtu-{m0SR;zS-VsQ+HsvJdDNHmmae(GyRKr5|&o>=>v=MAO*_cY~>%M&}x*{fyipIQa z22?iG{pBBxxgZ)-h!?nL!c;6VS4Cs8PkU^#dut;d)t-tHdGj$g!@YRC65opwd2$n* z?Y>tIA2mhQqu(sCrCg+%Ju5j!`VO&Ash4o%XJ=JoChB zJGR@sAConnf6;3p(KKyEeCB?Frp*&c`Yz;c5G~lZJocMA=Tv1;enKE~6p-$%$Ci+A zXutqz4?!C27!^x;-yR@SF}quYR&GI@t(+(2f*)~BOMO)q_7n5(dpfc6;{8|H1>?CxbK6bs=r88y#lPpB?){b7p(3Ab^ynZV94HlqTV?b=Z*Wpu5 z<>{h`B3Tn=9#tQ!{lpg*8_k-qeAWBn9!=DrR73;Fnjqfu;y48^8b8${qFG~~z1VT@ zoO~2YZwrw@(c+A6U#z}g0VAWZn{BZI)2s@+eE&=gIRaZ>3am(eIYRbW`uAJq`(CjK z(M${TasI2YAPVzirC^bBfi3Vqd`8t>AIq*toj1vAy%g*+zY01)>2!Nqtf)X?zrb=6 zd(giM_DMb+kLtUQt6^FzZP3U@>yva z*x3^1t^O-QAo-HCp|E5K_QKMzB_w||Z8JJ?iEu}05$xnpb@NQxD9q#~!miRHi1_>n zM0zzXcdFKfW2Hq1a~?$4o3^2^rqF0=DGIVv+5+lwHaf5?-6c1g2p(>c4rAErW^-LY z_Z`8U^G3G?_C`1p9^F)03|k2O$%pYF`_|jyBKm}nFmd#TL6yA_KM?*@euVm0OLn0FUeHp21_3yTW4@JtLiUz8bi zqQYLZu&7oTmR-$jKhP{N>5zqmi3S1+%VT8@zNy$G=B8R}LM#LnSmpF@nrJ@SSXflR zS`R_MlhR*@pONHaw1q_lWLS1R@62nI+foY)6Ac6umaWqp)mD~UO2I-vfpt%>woqZ8 zT3A%T-W5=Lhosm3O|zReGt6#OK!#Vvp}_dq!cU!6qe(> zs@G}CwJr`-6BY2eg(%{E>3y-^Q5yyn>TF@r2Fw>}#lB8oh?C2C=u~K&g>gQR9wV~n zc~9lz2P0NkM93%@rv-bR_tuAsef__%Qfq>$BeCxE#&1v=ezdVzNr4O-yxQOB9!oWd zrnTS7AlSx6-e)}rGboX_RGdlL$>rLg<@W-+T-H*SZ=U_|Ug(=A6ALB0_qhnJ5WD^% zgw$NetGFc`ANI4FV|ih9gZbsxJlqq%mR1HDAF*?KGoK2vta>@@^N;P z3mbWkvB*{BuO4T&IKM18FK~ZN^3mh$f^O*KIVMpzW9-=Aq6V|A1I9adF$#Ih*qH8S zWzT|I<}nx+T<2Q|@pSjsmDa}6^6BN_h_`K1GtBk-ayT352nN@`h9FZfUUx1Qj}xQe zegeE+t#JV1i^FiE!*-NbAKmd@|4%)DW)( zIvR^5ogD)3X~ie-BYU7*_H^Bsi15`~(u2#D)hat~u;Kd)@gtY3f!ntUE<z1)tS|JP z;uo6AM;0OXdn@9P*j)J0N-F<#ukib8&4=dvv(kKC15E9KL=Zg3@_Tk&ELELK*n!v}~ zpsZuDl@LLAykrq7q#%yRDs568Ut5Ion9v<^IAvSG&M!P-s4hmxU;|bVRJP7X%A>wT zsKN!|mc0m`yuzc+};^jVrM>D=C%}?Io@>Nhx79!E)CYL*J-iT;KOieCx zf8>(*lhcwnW0W^_G$x47r7 z)XWSBiNRf#a`Dow?px&*F}nmpu2s6-^>M^m@_a`Lgj~(E%Khp(HHke}0wLEb-R17V zKp{N#mq5tXO!v6=qL~Q7g|bXG0!bw=_q$UZl_S?8bl8-k2dxn)`80xj$fK=0a_jY_{j)O*79^5Ghh+MD6(_|1=S_IFu0z_SJ2Id;V zW35Gqx3#8ninsB&B6e6rb)*{bsPBCj@c7;$cq|DJr+Oa*h>DkmxfRcBO{IbNR|k9w zkMq*VBGem9a@){b6!7S25!!RheNTyxHc_=_l!-D;Cfy{_g78 z%B#0pV=j#n*>g78+WP^=1|;T&D3SdTlWn|ve$=sMXOzeeg~_(wDUERqglp+HQ6hT{ zCfj*eVVDu3k7<2aD(o7V%=gw3!Z>Djl*m4z$+J8f<{E#|woxKGekMD3*I?2nPN9RN zME34X7I;5naV4Jhmqdx|S)c6ab#A0eSP>;YKLRm3dAIX4j|F-(N@Q2TWM}V$ht+|8 zPn5`BoXIZU!`O)z5BeXXM0OiZp6#tmxyD1d>=h9uu)kumtGD7KxJF^rrn*rgJ02&y zdHq(Z<8cQ|G>*r~?%rmMe&TpM+!BrBak7VZ{A8G3E@gu0UZhzY$K&L=-aIrGx}z9X zFZAy3jY5CN9R+Q*jPvBYQ*wa!-A`!SOnf&=WMBH^KyOh!GR~gAT4H1K<+;J$@CE8k zuT>g7Xae13E`MUA*^Sr(tB~yK^F8NHenq=V7W#Y_8F!&gM%)8Ec9UaZ+=(_>jBTo9 zcl{m1*vqk#=lU1l2e~GJU5312S}BB{hH!I8h%;y7tstF<;(8g}=AyWOOK(Gc%Tl?s z2lXR(+a~+V*VXCgkQ(k#4jvBS2lz*Q*OANBDlLM1^H@?e>QS7tfqwTN(O-fYof;*| z_YMd7kK=@u5W7T)d`>Vq*gsfRo937(QNDOM#6PrKiI+!-(xndd`3rUnS&aLcC<=>9 zj?8iUmn_lpDZjY zo4}^|U9kZtTB!a$*MdsK*AXRW_;-5RIkV+XVbMedHq#$?xsFw%EG(K+fnDrR z8LY6y78aFFV3+t;!U!iL-zE!-DunMbO3wD1cTw2;78aFFU~~L$b}8(*g+*l(*j)dr znL4eg3rmRRG%B0G=J{j#Dz|PH7L`q!@_hdm3~JJpCo{}6W$tUx!AQq^ng2mqy;StN zkP(P%Yfmonf5mQu99(-aN?dXPUDH+m{r~F6Jzt3u<_%AI$|IrHnzl;*)(+`XN z@+&X|G10j;$RpB}Pd{AiAG=bCHKIiM^uu-jo#T{kt0+-E{cyeC3pGz}~x@V9)e4RSSLrYV+4^G^SR z+mzYsA*w`@cl%{A(G|&l4pGq*iU);V}W_QV_^@Ptg;hEwWn z^b9>A8Of8RQavHZ-%H}=>d_TQEQ2{kJRx@+c9pu8sY94*{7^$r$hOatGZNt*y&Pqr zo{%5cMB9eE9(@_5swd<*Fvl7y-4G@odO|MEVpqTFOp%1GC**P6>F}sS7|&Q$W#Juq zLOzJ4nMV_fVLGA06!V1KiZ<99!5%Fy1#CSbzr4}(wjOPnc3$za8R5^_v1)D6c9pKk#T+mkc;W) z4(4)x2wBDuegu#?bZ{VZxh8~&12aDY$b6bKgUjKe5F$B}Ocw;6khfPb&Ca9U3=?Vj z0Ve7R`P5IG&Yz%aEebJ#a?}%Y24=zVe_a*;ttaHB)s8b(YFg+CDfOa_#Ri^`5eNPYrONP+GAFIbWEb_@1riw$c;5!gEdOWYXb+kA{? zE7vVe^kYG^vWT!!7)C`sAqR%IaGk+(0eC{5v%qzxb4#8RLgJzWV{M6%dp)*l1hL8@ zq`(zX!JWNcd2F)?sh;ZWSjU|K10dH%`Zz?On^sTAM-r~X^^lG*(R4bYCuEOh8Z&uQ zpbYB?d2L6H*@THEX6Oky5_V|}TMnITV}_oP`OlNHpNSKrG1U`t<_E5cxi}hAJt5P- za7@g#(U|H9+2C2-0DUP+R8Pq9uqtuCLZ3&8>IwNs6^(h!5<^eOzhapEWG@dCV5*>K zIP`?9G!T$>MIlhJdO{AXq}+!v!YC^AgxrJ$Da|exHS~l$lmg?MLMnKwC*(bWarqI; zGxUT!^b9$Cc7fgsiKc0Xo{)XFxegz~px;8?1`&8d4jJkh7FAaSGDiXFUgLm6GX_X| z2+~kb$jZNK#T;M}TDjE|@{eB~Q@LkbgjR0#gk1BvBJQvVt=#Gfc@%@cG?3>kLQ_#s z$a|V8;=7^<5jT)oJs}t8YI>D#4s#WD641VSLLO+WESnUCDI&WXt;FyoVhys0u#&Xv{BgOrND~hmm|Ov@;KHKBIf7CB1AJS%*XjFQJDoBTN!3rWYF3uum%3rwN-_A z#b70}wao9h7T+7>es!?LiVC#)swd5k}qFRv%Ts%ee&avPL`65=A z5^HE_v7*YCWKKz&igP3qVex-OKrRKFpEhQ&ivM(JSdmNhD-n97eSD^8n15p1^*QxkbFtn2b~o=qcm&@$sbMo1Lj##%bL<6 z*vVn&3Hee`iQg+Nf{3rxS@Qd8+U<{P3bETu$#0nRAP;-fPQqM4L~2=D1Usb-Js~@M zWHRm1g*Jw*ZZ_AUC**qEB)~~{w5qfiwh#hO$iLxU#>(*MMMN+alBImn{u4)OdK60swd>twN${RA<@h`t$?8?WOvxDT0DHK!fTDc_B7m zq$a#j3KjyYC*;dpRltK578OuEA-@}`0%qJ5W;ZIJdP2^?1V9pPZDAz@R8PotUuw!D zOTj`w^@L1+O<~tqSX4mugiI~elpnFMsDSDT`2=QhBH+gsRzg7agsgvxV!gY=Jcn2a zsGg8NUZSx278VsyJt2Qu=s68wUZI{A7Hz<6(Ss-CbMVN^L*t@p7RLENdW?W43dQu{*}J`6_g2N)r8$0wMa@oK5|r*0>>2Z($- zEe}O3(UGa@2KV|oRh zf9;>#uGlYNos%jMrOgrG?25o#F2^i?1izY4^PI{7XpEq-kv>cIn+xT==MRMHkkfX> z8pj#%3hCNsu#e^#Iq&8TrB6j)u^{{#bG6jB2nbz_j2UFM8bsQa~;pgX-zZ6^3MWVTNOXs zQYI=QE6}6Kh-H*?9;FWfu{~{@%>?BtN|c8v9POeGiYoVRM9cEm;F-(imF2VG@PFh0 ze#I6BUI%ck@pIPG2&_h%d{7lxd75}+lsYV>GiII@*<8$*)v>2AkNY zKL9;THvudCuSdb)PwG2~P5nzOr2}zKljFJ!^ytx$67K`1aaJroYbY2`G4EOoSCS$a zUopR1jIwCX$&_)qt$I}T!9X-^teQkjqvwTm5d-qGX*;L9yD`Dhdlw@Y&;=)gT*>_! z2dQ}@-=m8{2qJeG1GQ9hYh#UtTdzY(d>Cg@8bC+dF$Em5-0R_Ph2w9pdQPkbS4>9qQ3Hv zEdMk-bFV_J?ZJ_`kcT@xSQP$09Dp7SU|OL+h+i+kYnFL^8hWm=bspMjZs+$vE6*Pq z%*^d_5?}Y0dv^3AgSqFh3Q+57vhhCn6+4NqCJ2627?H#(J+~`wd-`+|s=R!4Ft?C- zyE!L7MlRWJ@Jmk*oIT(&+&Nrlz)Y;hI*)ehteuM&G&MJyegLaF=Ut26RAW69ByVx1 zqv!vgi6f*-ZygfDE}bV^b;fr7)^V0`^!|*vh2PL)^IWUWq<<&54zr?ZQ5t)K*O}gG zl6KZNL}`1@1#SMm8m@CW$6Ftz@dCWgm5-Kn49{1iGt1_}Nt@|}%jm}Z3l9AjZ)L7lr^!MH{(!|?dMcy&e^#jRs?dDP!h zA7JVzX(Dyj-3h03hNEH`y$aPS+hiDawzGULj?r99tfMTS-wGu#%U^|%ToYiP95AMP zX1Wt|8+}q46?Y>p7Vm-IzMJm$bG!g1S70n0#3~xp8MBm{Supl8iA7a?YpY|KM-8 zBfv<_aN{JHA&i;A7_;Boo~BQA+{O<;7V-3$1G<@4$n>KfRUVHU!yA7Y&~GnF*XZvf z8Hv8F2-)-$0gqt;=&Mpd=hMmq5UTG4B*cvinQ}$o6jZ1Jk3^*smT@`ZasfT?2_|Gs zY9We8ZGkKG#`>{Dff9rv8E)D@oZf?$$T_d&i2uJi=fz7Uob&1nRaW3)mcldVyq06y zUF4kCho89)Ur`mF^LnZp6+7pZv(N10hUdI4nV{}9WgmtDI2n7+>neOfLA&ps11j+3j#U8Ij_#k@vCn%+??~e9NUdFH4HZ^#NeD)7c>oCCeV@)5T5gTrJT|> zhcvPE1qMGo=k@z(o;X9$hkyxp^N?-a;GEaUB@p`0qI}p6cmeviHI)7)s8yi>lO>Zt zaL#LUb-mW?^bmlVj-K-xzr?t5P$Z_wAzJcaM9Af0&&}__E&D?L%~d4J=jS-u07F*% zy)N#;3uMnC@oMUC5BMuG#CF*L*#DwebEVcbZ1UNX3`S;pMa1F0r@&6PvyqB z6r`2-zYZZ!gDk>GVmlEsjWgAkGxdr5;%xQhY#o-L$XH*_n1_{$W|!Pq17q<>SGD-_aXw+@K%$-yZ;N zdsYj$Q2s#=VvJ@tDk4cKIo2JK5bcY5xD0 z3-i_`m(o&HyiAs&Ld)5P_vjM(8?%Hq;s1YF7F0DAe88)1nlAa(hh5(a`ow%t$|>UJ7*Ivr!03G z^}t5ENx<>vEUgSVPN#(|h{V_@gZS%LOYu7J+PuDJ>FDfcNCDsELCgnsm% zi<^0$5EajA(-qMN(s+D+#RR#tj(-8vP`Vaw9wx}2wGb27awBL<4sPs~h)yn!L^!j@ zO>)Z3r{B(Zo$(SJn>`s2zoIs2Nk8a<|aA-#gB7lk~t%xKrum z20u1(^kg>;91N57$qheS>uQKQ@CYi!$)~m56rBF{1`fl1>dB2R$B=5ygZl%Aa!BJ} z(XE=0f`J_-fY0gER|c_SGl!Q$$Qk9(7a7bg^9Pp2WydEsxwuvklp6R~Q-tK5h{>!0 z)f%{J4ml?`-PI@vi4W{I0RlB^-z$if-u9&Fo>R{+Gwn+~SV?W?V$;1|tjrPg``lNf zD>SWS6E1-;oM)O=(&CnYanOA}HP0>DeLjy#fw9|ZUpyS@9D~M0v|z!da}A#xp#c*X z_QN>pS(MTJaM3o5sM9-NijASNV^`fs~4vx&Et6uaQs-DiITX%uBs-8tz zeO-fbY2FVQ*3-N$qkL!Hzw(-o*Ncl!?2a8jo-xoI;yce_|J5Jws*6bT~X5KL+>5kFsCAiQ+Dk-u$J};FR9t4f)fO zuS6~9@LdJ-p``NL4?}aYe=Cd|X=d0JM^(Yb4G~{3fEjlsVnFOz))?^0kf*s_`H)Ci#~b*C5EG4Uf?FqL|44PPi#c*yC9ah9v$w2c;Zy_u?uP?%A#9cfEX3g zl`cS(5$HZ2K`Q7ncRGn1(G0F|6IaHW=sQ*J-NE8a;hr)v3v(MvyadCUn>d8A%ulp< z7V1mXJ_i%s#Jqk_#u>d_K7O&`NDbWgjtDE=--Kn4G@Gt~p z@O{{k@yk7n%`zvk2(FS&;)@mHCkGWFOh0yMZR+u*ToOK94KC7pLo|tB&%(%Q%-dsQX-wn;FaY&KD4&+BYd`M zQYS>J(P|UwamF%ks5LkC!qVnOZu*D_bJIj8<0kXVcWSg0;7V@F26*dsBozX0GrxSN z)`*eQoQ&Qak5D3^!T*Ibz&uZa@wqG~&JW153V&+n)b9;q_sw`Gei)O0AM;nh9G4}R z%;&P;*_00k8DjM!?l=rEn>uoER~CV|BME}vABHdaj1;@WN$4)*wr}%b)27($;&nkl z8g=le4mKh2r!EW09g)R5C)4P0Go6f^xnCphoy_{5k&x;>m=!acabG~(Wtrr2E`={& zMt>2Cd$2ga0X*|moT^>L3McN-Bsid5Rvxqmm@9ENCyb0~F`Hb>z%m|W!HN3^(-T-T zZkF6QjT*FXI;S%Cd!W||C+;GPqwCR0usCL%Puy|FSwlt}q8CxgDOnivGiC^f`qlaU z65@W#ZvwOT9VA$Y+6M(6VuR^#zzFR{B?Nd@@vC$wjo>bH)AdquzXX?-pEZYOpCuQBsvIi27~m2C5`2q zBk_H)taj=HkP%}lbLR_JviwT;nai(fJ*PWWTJZ|`bRT1!UuAt-bNooGngw)XJ$6Ol zH2nNH^g~siO&iaYkM}a=)CS;}xaxCcIq^4U5ME+F-u=WYl`%%(b3ebG&&*yZlSuxA z0^%gOdNq8n4G%a(G0fYVJc_X?QI=QJj%G}S z=FWa|{wfc~fE)hUr*hL;}Nx)9gvu72=6~^anUq z%)wd=w~KHRkgQ^*>%sTkKvNaj%AI(R-V$o8;_HR@`M&D4g42AollVXcLexC!iVdg4 z8T2w16rz+`<)AUK+=BQmBug}*xp$K>=C+9v+nk#2B%0Dw7vd6lUhxkLiDK$RbU`$u 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 Ws}7t{Z-T}E0000F6XU=)l3ngT{r6f4Us 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 z%0A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%0AFw2K9fyWJlA!;=clQ&ChO*s9^ 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%0D?SAl-YsQL_?@29yQ?n|CP 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%0A$YYvyr<)gu+ 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%0A8iV$5pC$VwgRyGv2J%kMlT%-r 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 ySN5{F`LG-O0Zo#BjxQEnJC~1ZZgAIFfUo$f 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�d=vweI+z+{y+?YkQjyg?~e5WWm=n^ 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≪0@`C?W?! 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�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 A&j0`b literal 0 HcmV?d00001 diff --git a/mardrone/themes/base/meegotouch/icons/MeegotouchListThemeTemplateHelper.png b/mardrone/themes/base/meegotouch/icons/MeegotouchListThemeTemplateHelper.png new file mode 100644 index 0000000000000000000000000000000000000000..78529f76757ed269d07c9f2c72546f6041860640 GIT binary patch literal 7159 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 literal 0 HcmV?d00001 diff --git a/mardrone/themes/base/meegotouch/icons/icon-m-toolbar-back-dimmed.png b/mardrone/themes/base/meegotouch/icons/icon-m-toolbar-back-dimmed.png new file mode 100644 index 0000000000000000000000000000000000000000..2091b8c57f9a125b29941564f391bb8aa29bf3e8 GIT binary patch literal 571 zcmV-B0>u4^P)F6XU=)mkQ81_hBQ*?B zmRFDgQnEn&`0m38PpIiYW-2+(5Qw>eSW-wp;M@C;A3jmbflO3#95OJZW(YD-*>Mc! z7Um2C?m%3Q)6~*rm^5|j8)`a`g_@3Av}DOgK_Q{j1D1=4aNIFQM#et_;=qA$9MKNM zxv_N1qIs17VK*`0=AvNl`KX-Me?O zI&$BE{Z9tWfyj=mD6inZclRDPM;_d{dnZ-egk-g5Kvfz)KmW1L&d!hO8tM#eY;15W zC@9Df8z09ypdpAHlAk_(vTCSr<5j5{M%|TOB@p zm|s&vAIEMiu}FFaQ|byRcE^AQJ!p002ov JPDHLkV1m!S_^|*0 literal 0 HcmV?d00001 diff --git a/mardrone/themes/base/meegotouch/icons/icon-m-toolbar-back-selected.png b/mardrone/themes/base/meegotouch/icons/icon-m-toolbar-back-selected.png new file mode 100644 index 0000000000000000000000000000000000000000..a080e32dd1d54ae417ba7e5669851342d3a50951 GIT binary patch literal 386 zcmV-|0e$|7P)F6XU=)mkkqsEBVTiK4 z0w<8-0^)CXA3pd#sC)==-2Hp^^1pxoeiTGQ9Xq%j_a6y>_=DDQFfgbc2L$^Ev*XSK zG5@IJ29x6$iFMqb{rl1s6cs0+%l-QG>uOI|xBt93b3Tx0_dg*11S~iIQsh9O<2Znh zOULFom;?X)`}dL5kOAuXbob7kLOp%`8x#fcr%#_k{?iEj{{6dR=KYsk!%*V&~gG9%DU}R*RNHwp590@H> zFu6Ba4(xGDOtO^!U*;1L+%&(F z!@TRFLFWFYZqFXHr!hq_RA;3M1z6cI9AUG#^q|bh=p=i>uh|}Fli1=t`1;%qtx$gX z!sFb*cOH)qUQ#>q?8J8m9s3zkS5Ne@So+mp__}97-x>KSebNvg1sWV;bZB5?$a_^D UBeF>K5YW>Mp00i_>zopr0Fk17XaE2J literal 0 HcmV?d00001 diff --git a/mardrone/themes/base/meegotouch/icons/icon-m-toolbar-back-white.png b/mardrone/themes/base/meegotouch/icons/icon-m-toolbar-back-white.png new file mode 100644 index 0000000000000000000000000000000000000000..60cd75e6e0d1f6e5b9030be2610823cc1b857ed5 GIT binary patch literal 602 zcmV-g0;T!VF$Ky$YvE{xXcubMgLdX$v1c~IyPF->2#d|zfGQ> zce~xZqzG~x=l!m9*z7ja!QU1G+~Sf1Z`*BX8Xy0YZS102HA*fs%Zs7T4Nd}$Mk9N} z>$V|z4LU4V172TfVJQUdcKfIM_3LYJ%y9!p@1gqujxrgNSUJf_(w7W{S41U~d;67x zboy}6B*AiV*$xXtQm@yem1qPy9FETuF-(AE*_0w>=A&dZ7K2XKDJp5TT9rL+y+|4i zXd}LfC0S8Pv)Pr^iRI zx4UZuYJfy?asrmir)8nn>j|w^OPHOWxx?cY)g1YWq;bTEygnZ+os>G&^K(+$&Qv4V omwf$cLUPJcC=?3iAMh-|05;Uh=(45SGXMYp07*qoM6N<$f&q#XP5=M^ literal 0 HcmV?d00001 diff --git a/mardrone/themes/base/meegotouch/icons/icon-m-toolbar-back.png b/mardrone/themes/base/meegotouch/icons/icon-m-toolbar-back.png new file mode 100644 index 0000000000000000000000000000000000000000..621559512babbc98041eff9ec165dffeca8683a6 GIT binary patch literal 554 zcmV+_0@eMAP)F6XU=)mkQ81_hGc^oR zmRE=u5)haG#0>90ez-_Y2QpH_aX@MTl2F3khYuD~%YjT(b{qp1{=hg8hvOK`EzB7P z+<~|pr>UjMFlp-41JraN3pE|LXvvZbfXRTLlxPNXOoOUp+oqhm1ZX(r+8IU7CeE4u6Co|jN*6mxE z1~D=woH}!Q;eZq~=#DJND=@fo=QdVH9yxY&;ea_1=E#p9KOQJ4DmJ)#_bygP?mMu5 z;ea_1*^w3H6$bb2-oxfdgPpr~Ql;TaR%-@SrSbFgJ9Kt-UQpLiXJBJvgJVHKL5A4) zI01&i0H7gxzObO^e_%k+|Cs35|F>`7c@GqqA2gjBh$BCp-?C-v|GRhYf*hwm=z3lt sM*?yFpmf|Q7zLwX6pRAe0)PMm0Cqgav|(5W$^ZZW07*qoM6N<$f;MdB6951J literal 0 HcmV?d00001 diff --git a/mardrone/themes/base/meegotouch/icons/icon-m-toolbar-backspace-dimmed-white.png b/mardrone/themes/base/meegotouch/icons/icon-m-toolbar-backspace-dimmed-white.png new file mode 100644 index 0000000000000000000000000000000000000000..9ac9815af8eb652bca54ee1f75abe393c86a9772 GIT binary patch literal 1025 zcmV+c1pfPpP)^l*_bxWFx( zU}3k`ICI@_=h95`pJ}e;NSRb7S<}!q1GLrVx~PdiuuJ)M;CRtY6gO#33(&lgHiQM6 zZT7s3LmbWl4h&ouJll8g&Uv5rc|W|r&hvs$&1zP&npM?Ar8qkrj!RI;LEi#o0Yz^5DL^*KZ0)dJW$(ou_6Nt|W0y>>e4&0n&7SSHh zNhJZ>Z{BFQKQPcx5?}$i&Hdny!%70qy?-ZzLc>?by9Qk@mqH{Gks!qAZ5}wc+f9JK zst`aipX`3H3Iakf4&0o@g1kI%6h+|~(11@nv{UnSF2qMLAOw?f;LHF=@lWfL)hZ5$ zLejLa656u>JRT1Nm-6v%Z_COC^m@G#sJxZ!IBPZ|4@Ko&b4%96v+*%Q6d;*4N`O+Q zUyo{6uxW2xQ;WTx1bz%_0nl%BOn<}^=pzcpR9;cr_8;gd+VU%vGq-k26 zjwi+MFr39?4uijscO#_xWW)i?g)_e~A}*l7fuI>1pFsl!?Q{GR@2sgiH6&66YLDBoe5xu`%`Hid>F9S{G19 zM@LC#*{4M-IzK;Wy%QQMchoo|_+&(XmP{tIe+B9D`4mFowzjqi=tKkUq`1A?=|rJm zh>4|ySn6^|Fa>z9zfbFjb!W*08`AIh7lqu}*7t=vFars()MW$0 z8adqu$Z><=EXSGL-QCR#83+Vea1Og2O}{dx)?6$Wqjf_=(cq7NkPu5<79az;<@0?p zPEI0%ATq*`dwYAlkRRsf#lc`uiv1jGc4VBG%xnm}abl-2dRVKCf=?>e*NqL{gF3rE ztb!T!^{dwucY1or2ZIlD57SMRN_CjyOGqRV&F$_k>EeQwcee`hIXF0AB@1nBZMK3b zKZfk-y-N;iwH!#LQpthDSuk|`J>OC&<`W8qSb(jqt+t|f5)9ef*GE3m4Ravna(PA5 zt>fck7GQI8b8$ch@?L*Gsnd_-LY{ykm4Jh@6JNmOP-YTV$gXXIGHU!a`MkP{4^r~+ z=+o?~rnIVVgn-Z3p>1U)1vzRMt2)rnqoeZf#dx|~T3X1i?rwBhBB>gnZF%{(-R)W{ v>*5ZO7jkijSxeOZQ>j_aYIZ^PSAYQkOr6MczoVgh00000NkvXXu0mjf0M*!Z literal 0 HcmV?d00001 diff --git a/mardrone/themes/base/meegotouch/icons/icon-m-toolbar-backspace-dimmed.png b/mardrone/themes/base/meegotouch/icons/icon-m-toolbar-backspace-dimmed.png new file mode 100644 index 0000000000000000000000000000000000000000..1168fa53337a4c122fc247a14a3a68900a10fe82 GIT binary patch literal 782 zcmV+p1M&QcP)F6XU=)l3ngT{r6f4Us zZ~`d_AZDeZn;zeN_~1K?!$N}NWPp?*9Rf`ji1)%cOoPmEAi#ypVIjwH<`(8ub9H6KXmTXqPaMvce|E zM5*I|YFU6-k$?jTs=)=AD0Ljv=Q=>P0WQZ8QbV)@p+QY_wB{A$vubK-^23S;bO#_g z4y?w`!Cshb2LcV_15&1>q`AC;g5QglEcpm@Bm=r5(H$2Q63j4f!GgDBIS}eNE94r2 zm<$1w`y(hMbPR_hQ5@IR)AJap{sOrnNV4MyIg%QVLv|qCandrg{1*VPQeWh8ilWGT6((d{!MD9e$9ykg!mc41vhqOFshDfX#Ara>80rquGbQMg9N( zf0+&I*BjPW*P!Rr^Ovt(eS)Tz<^B8jR$Df0=8uh!!=8b000>uDYC9JEdT%j M07*qoM6N<$f<fSd{p@=T_1w!poCk?D?rhykPg~FoAVsB|ThQ-;P8E2(n z{xFQXf5#th=e>QSBnb%#{cp)M=0r5M1k(x(pNCA^Yqz6Q0|H#&q)-CP|br=Wd<{<`z1(s=UYro%*jK|{_!!Q^O zZtMUSoaNCp?TQ%?7E_vy<}S^igKKLro-88@X@@gaWCAqcYSn5+*Y!`@gup?P!Vv+o z!Z|^b!Vv+^1BZhog(CvAKWdCjrUf+i+-;?@Ib*Fb55N!9U}Q24BqkxIxa?*D++c;o zWh*Ybnad0dq*EzzDnZPJ+HQ1%L<{w-gs?--Rj3hjo)ppsP$bCiB9~@?0a7I>K`OUy zh8EJxb_?6E%CcNGy`|r-5*k-%V5RJK`V!uL@jAFYw_1^8D#doHGoLCY^s~`u^e`L_ zA9>IziV_M2gE^Sjk>JQwr@C2?o}PsfKp){3$}k-+h_AzZaEC}nVcLNa_7JcH0qKhW hRD^_tgnslbzyL++%dmEGN@4&2002ovPDHLkV1k_&1?T_( literal 0 HcmV?d00001 diff --git a/mardrone/themes/base/meegotouch/icons/icon-m-toolbar-backspace-white-selected.png b/mardrone/themes/base/meegotouch/icons/icon-m-toolbar-backspace-white-selected.png new file mode 100644 index 0000000000000000000000000000000000000000..6ddf8fcec02aff7fd6b2f3c4be583d051066c871 GIT binary patch literal 520 zcmV+j0{8uiP)95Is-zCkmq@<+vmf!?SDL2vV!g)ldS0Tj5@$`}@)2iy@nhPxGT zbulzRTx)ZdRsEPp6?0<(XmHDznKvN%x8O_8Gly$C@Piin18IRPRd@j^xN~^HO$Zkx z6^;t%1y=(}f};X1nwAm^BngfR`0G`p3N#n6eCAFqV|7CSz8M1#IgpNokgn|Z0X+1D zbY-h6yPK35He^*PsVYHD3U$x2L{3PfQ2$8?3*;=stFBLlGyn=hb{C;G3tY$np#%+r z?Pj=;F}GXJ4J!^VQx!YWx<_ijYc%hH`0}dFs-VoI0a@x^IfUBkAhxefj$j=-9gy+P z!W!TP@rEgyixu%bH95GKh4xGx-eYNk33*QcsU#&OC4K8tfB^uX?m8Cd(}uPH0000< KMNUMnLSTYMwBexu literal 0 HcmV?d00001 diff --git a/mardrone/themes/base/meegotouch/icons/icon-m-toolbar-backspace-white.png b/mardrone/themes/base/meegotouch/icons/icon-m-toolbar-backspace-white.png new file mode 100644 index 0000000000000000000000000000000000000000..482f0f05f6bb29d360a848e8aeaa602d0154e880 GIT binary patch literal 1000 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

    7EQL)`VHE%O>UZ0rp$e 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 WtaRjku@7Uv-4 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%0Abo-1pnx; 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 z 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⩔yy= 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 UXOrj0daQIBku%=pSM^|bJjYL*zuftM?sGZSH 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 z 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�A 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≻=D(He5##Q`0tbcHIZ*eTlbT(4PRT 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