<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[2214] 2013/b0unc3/trunk: current latest source </title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://gsoc.trac.wordpress.org/changeset/2214">2214</a></dd>
<dt>Author</dt> <dd>b0unc3</dd>
<dt>Date</dt> <dd>2013-08-12 17:42:36 +0000 (Mon, 12 Aug 2013)</dd>
</dl>
<h3>Log Message</h3>
<pre>current latest source </pre>
<h3>Added Paths</h3>
<ul>
<li><a href="#2013b0unc3trunkMakefile">2013/b0unc3/trunk/Makefile</a></li>
<li><a href="#2013b0unc3trunkREADMEmd">2013/b0unc3/trunk/README.md</a></li>
<li>2013/b0unc3/trunk/assets/</li>
<li><a href="#2013b0unc3trunkassetsassetsindex">2013/b0unc3/trunk/assets/.assets.index</a></li>
<li><a href="#2013b0unc3trunkassetsblqml">2013/b0unc3/trunk/assets/bl.qml</a></li>
<li><a href="#2013b0unc3trunkassetsblogslistqml">2013/b0unc3/trunk/assets/blogslist.qml</a></li>
<li><a href="#2013b0unc3trunkassetsmainqml">2013/b0unc3/trunk/assets/main.qml</a></li>
<li><a href="#2013b0unc3trunkassetswplogopng">2013/b0unc3/trunk/assets/wplogo.png</a></li>
<li><a href="#2013b0unc3trunkbardescriptorxml">2013/b0unc3/trunk/bar-descriptor.xml</a></li>
<li><a href="#2013b0unc3trunkconfigpri">2013/b0unc3/trunk/config.pri</a></li>
<li><a href="#2013b0unc3trunkiconpng">2013/b0unc3/trunk/icon.png</a></li>
<li><a href="#2013b0unc3trunkprecompiledh">2013/b0unc3/trunk/precompiled.h</a></li>
<li>2013/b0unc3/trunk/src/</li>
<li><a href="#2013b0unc3trunksrcWPUtilscpp">2013/b0unc3/trunk/src/WPUtils.cpp</a></li>
<li><a href="#2013b0unc3trunksrcWPUtilsh">2013/b0unc3/trunk/src/WPUtils.h</a></li>
<li><a href="#2013b0unc3trunksrcapplicationuicpp">2013/b0unc3/trunk/src/applicationui.cpp</a></li>
<li><a href="#2013b0unc3trunksrcapplicationuihpp">2013/b0unc3/trunk/src/applicationui.hpp</a></li>
<li><a href="#2013b0unc3trunksrcmaincpp">2013/b0unc3/trunk/src/main.cpp</a></li>
<li>2013/b0unc3/trunk/translations/</li>
<li><a href="#2013b0unc3trunktranslationsMakefile">2013/b0unc3/trunk/translations/Makefile</a></li>
<li><a href="#2013b0unc3trunktranslationswp_bb10pro">2013/b0unc3/trunk/translations/wp_bb10.pro</a></li>
<li><a href="#2013b0unc3trunktranslationswp_bb10ts">2013/b0unc3/trunk/translations/wp_bb10.ts</a></li>
<li><a href="#2013b0unc3trunkwp_bb10bar">2013/b0unc3/trunk/wp_bb10.bar</a></li>
<li><a href="#2013b0unc3trunkwp_bb10pro">2013/b0unc3/trunk/wp_bb10.pro</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="2013b0unc3trunkMakefile"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/Makefile (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/Makefile (rev 0)
+++ 2013/b0unc3/trunk/Makefile 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+QMAKE_TARGET = wp_bb10
+PROJECT_DIR := $(dir $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)))
+I18N_DIR := $(PROJECT_DIR)/translations
+
+include mk/cs-base.mk
+
</ins></span></pre></div>
<a id="2013b0unc3trunkREADMEmd"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/README.md (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/README.md (rev 0)
+++ 2013/b0unc3/trunk/README.md 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+WordPress for BlackBerry 10
+===========================
+
+WordPress native app for the BlackBerry 10 devices.
+
+
+Tools to Build&Run the project
+==============================
+
+Download the latest BlackBerry 10 Cascades SDK from here
+http://developer.blackberry.com/cascades/download/
+
+Set up your enviroment, following this link:
+http://developer.blackberry.com/cascades/documentation/getting_started/setting_up.html
+
+
+Running the project
+===================
+Running the project:
+
+1. Launch BlackBerry 10 Native SDK, and from the File menu, select Import.
+2. Expand General, and select Existing Projects into Workspace. Click Next.
+3. Browse to the location where are the project sources, and then click OK.
+4. The project should display in the Projects section.
+ Click Finish to import the project into your workspace.
+5. In the Project Explorer pane, Right-click the project and select Build Project.
+6. In the Project Explorer pane, Right-click the project and select Run As > BlackBerry C/C++ Application.
+7. The application will now install and launch on your device. If it doesent you might have to set up your environment.
+
</ins></span></pre></div>
<a id="2013b0unc3trunkassetsassetsindex"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/.assets.index (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/.assets.index (rev 0)
+++ 2013/b0unc3/trunk/assets/.assets.index 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+1
+5
+bl.qml
+blogslist.qml
+main.qml
+wplogo.png
+test.xml
</ins></span></pre></div>
<a id="2013b0unc3trunkassetsblqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/bl.qml (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/bl.qml (rev 0)
+++ 2013/b0unc3/trunk/assets/bl.qml 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1,94 @@
</span><ins>+import bb.cascades 1.0
+import bb.data 1.0
+
+Page {
+ id: blp
+ function inspect(obj, maxLevels, level) {
+ var str = '', type, msg;
+
+ // Start Input Validations
+ // Don't touch, we start iterating at level zero
+ if (level == null) level = 0;
+
+ // At least you want to show the first level
+ if (maxLevels == null) maxLevels = 1;
+ //if (maxLevels < 1) return '<font color="red">Error: Levels number must be > 0</font>';
+
+ // We start with a non null object
+ //f (obj == null) return '<font color="red">Error: Object <b>NULL</b></font>';
+ // End Input Validations
+
+ // Each Iteration must be indented
+ str += '';
+
+ // Start iterations for all objects in obj
+ for ( prop in obj ) {
+ try {
+ // Show "property" and "type property"
+ type = typeof (obj[prop]);
+ str += '(' + type + ') ' + prop + ((obj[prop] == null) ? (': null') : ('')) + '\n';
+
+ // We keep iterating if this property is an Object, non null
+ // and we are inside the required number of levels
+ if ((type == 'object') && (obj[prop] != null) && (level + 1 < maxLevels)) str += inspect(obj[prop], maxLevels, level + 1);
+ } catch (err) {
+ // Is there some properties in obj we can't access? Print it red.
+ if (typeof (err) == 'string') msg = err;
+ else if (err.message) msg = err.message;
+ else if (err.description) msg = err.description;
+ else msg = 'Unknown';
+
+ str += '(Error) ' + prop + ': ' + msg + '\n';
+ }
+ }
+
+ // Close indent
+ str += '\n';
+
+ console.log("str = " + str);
+ }
+ content: ListView {
+ id: myListView
+ dataModel: dataModel
+ listItemComponents: [
+ ListItemComponent {
+ type: "item"
+ StandardListItem {
+ title: ListItemData.name + " , " + ListItem.value['string']
+ }
+ }
+ ]
+ //...
+ }
+ attachedObjects: [
+ GroupDataModel {
+ id: dataModel
+ },
+ DataSource {
+ id: dataSource
+ source: "asset:///test.xml"
+ query: "/methodResponse/params/param/value/array/data/value/struct/member"
+ onDataLoaded: {
+ console.log("data = " + data);
+ console.log("data mia = " + data[1].value['string']);
+ // blp.inspect(data,4,1);
+ for (var key in data) {
+ var obj = data[key];
+ console.log("obj = " + data[key]);
+ for (var prop in obj) {
+ // important check that this is objects own property
+ // not from prototype prop inherited
+ if (obj.hasOwnProperty(prop)) {
+ console.log(prop + " = " + obj[prop]);
+ }
+ }
+ }
+
+ dataModel.insertList(data);
+ }
+ }
+ ]
+ onCreationCompleted: {
+ dataSource.load();
+ }
+}
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="2013b0unc3trunkassetsblogslistqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/blogslist.qml (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/blogslist.qml (rev 0)
+++ 2013/b0unc3/trunk/assets/blogslist.qml 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1,80 @@
</span><ins>+import bb.cascades 1.0
+import bb.data 1.0
+
+Page {
+ id: blp
+ property string mystr;
+ property alias bl_xml: blp.mystr;
+ property GroupDataModel dm: { };
+ /* unused */
+
+ onMystrChanged: {
+ console.log("my str = " + mystr);
+ listView.setDataModel(wpu.setModel(mystr));
+ }
+
+ content: Container {
+ layout: DockLayout {}
+
+ ListView {
+ id: listView
+ listItemComponents: [
+
+ ListItemComponent {
+ type: "item"
+ Container {
+ layout: StackLayout {
+ orientation: LayoutOrientation.LeftToRight
+ }
+ CheckBox {
+ verticalAlignment: VerticalAlignment.Center
+ horizontalAlignment: HorizontalAlignment.Center
+ checked: false //ListItemData.checked
+ }
+ Container {
+ layout: StackLayout {
+ orientation: LayoutOrientation.TopToBottom
+ }
+ topPadding: 25
+ leftMargin: 10
+
+
+ Label {
+ text: ListItemData.blogName;//["url"].value
+ textFormat: TextFormat.Html
+
+ textStyle {
+ base: SystemDefaults.TextStyles.TitleText
+ fontWeight: FontWeight.Bold
+ }
+ }
+ Label {
+ text: ListItemData.url
+
+ textStyle {
+ base: SystemDefaults.TextStyles.SubtitleText
+ fontWeight: FontWeight.Normal
+ }
+ }
+ }
+ } // end of Container
+ } // end of second ListItemComponent
+ ] // end of listItemComponents list
+ } // end of ListView
+
+ Button {
+ bottomMargin: 50
+ verticalAlignment: VerticalAlignment.Bottom
+ horizontalAlignment: HorizontalAlignment.Center
+ text: "Done"
+ }
+ } // end of Container
+
+
+
+ onCreationCompleted: {
+ console.log("here");
+
+ //dataSource.load();
+ }
+}
</ins></span></pre></div>
<a id="2013b0unc3trunkassetsmainqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/main.qml (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/main.qml (rev 0)
+++ 2013/b0unc3/trunk/assets/main.qml 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1,132 @@
</span><ins>+// Default empty project template
+import bb.cascades 1.0
+import bb.system 1.0
+
+NavigationPane {
+ id: navpane
+ backButtonsVisible: false
+
+
+
+ attachedObjects: [
+ ComponentDefinition {
+ id: pageDefinition
+ source: "blogslist.qml"
+ },
+ SystemToast {
+ id: myQmlToast
+ body: "Unable to register account\nPlease try again."
+ button.label: "Ok"
+ button.enabled: true
+ }
+
+ ]
+
+
+ Page {
+ id: mainPage
+
+ function onDataReady(val)
+ {
+ var a = wpu.getRes();
+
+ if ( a["ERROR"] )
+ {
+ myQmlToast.show();
+ usr.text = '';
+ pwd.text = '';
+ blgd.text = '';
+ wpu.resetRes();
+ } else {
+ var newPage = pageDefinition.createObject();
+ newPage.bl_xml = val;
+ navpane.push(newPage);//, { bl_xml: val });
+ }
+
+ }
+
+ Container {
+ layout: StackLayout { }
+
+ Container {
+ verticalAlignment: VerticalAlignment.Top
+ horizontalAlignment: HorizontalAlignment.Center
+ layout: DockLayout {}
+
+ //header - logo
+ ImageView {
+
+ imageSource: "asset:///wplogo.png"
+ }
+ }
+ Container {
+ verticalAlignment: VerticalAlignment.Center
+ horizontalAlignment: HorizontalAlignment.Center
+ layout: StackLayout { }
+
+ topPadding: 50
+ leftPadding: 50
+ rightPadding: 50
+ bottomPadding: 50
+
+ Label {
+ // horizontalAlignment: HorizontalAlignment.Left
+ text: "Username"
+ }
+
+ TextField {
+ id: usr
+ // horizontalAlignment: HorizontalAlignment.Right
+ clearButtonVisible: true
+ hintText: "username"
+ }
+
+
+ Label {
+ topMargin: 50
+ text: "Password"
+ }
+
+ TextField {
+ id: pwd
+ inputMode: TextFieldInputMode.Password
+
+ hintText: "YouRpAsSwOrD"
+
+ }
+
+ Label {
+ topMargin: 50
+ text: "Blog Address"
+ }
+
+ TextField {
+ id: blgd
+
+ hintText: "leave empty if unsure"
+
+ }
+ }
+ Container {
+ verticalAlignment: VerticalAlignment.Bottom
+ horizontalAlignment: HorizontalAlignment.Center
+ layout: StackLayout { }
+
+ topPadding: 50
+ //bottomPadding: 25//50
+ Button {
+ text: "Sign In"
+
+ onClicked: {
+ if ( usr.text && pwd.text )
+ {
+ wpu.getBlogs(usr.text,pwd.text,blgd.text);
+ wpu.dataReady.connect(mainPage.onDataReady);
+ } else { ; /*TODO*/ }
+ }
+
+ }
+ }
+ }
+ }
+}
</ins></span></pre></div>
<a id="2013b0unc3trunkassetswplogopng"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/assets/wplogo.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/assets/wplogo.png
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/assets/wplogo.png 2013-08-12 17:36:40 UTC (rev 2213)
</del><ins>+++ 2013/b0unc3/trunk/assets/wplogo.png 2013-08-12 17:42:36 UTC (rev 2214)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/assets/wplogo.png
</span><span class="cx">___________________________________________________________________
</span><a id="svnmimetype"></a>
<div class="addfile"><h4>Added: svn:mime-type</h4></div>
<ins>+application/octet-stream
</ins><span class="cx">\ No newline at end of property
</span><a id="2013b0unc3trunkbardescriptorxml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/bar-descriptor.xml (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/bar-descriptor.xml (rev 0)
+++ 2013/b0unc3/trunk/bar-descriptor.xml 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1,106 @@
</span><ins>+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!--
+
+ Copyright (c) 2011, 2012, 2013 Research In Motion Limited.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<qnx xmlns="http://www.qnx.com/schemas/application/1.0">
+
+<!-- BlackBerry Tablet OS application descriptor file.
+
+ Specifies parameters for identifying, installing, and launching native applications on BlackBerry Tablet OS.
+
+-->
+
+ <!-- A universally unique application identifier. Must be unique across all BlackBerry Tablet OS applications.
+ Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. -->
+ <id>com.example.wp_bb10</id>
+
+ <!-- The name that is displayed in the BlackBerry Tablet OS application installer.
+ May have multiple values for each language. See samples or xsd schema file. Optional. -->
+ <name>wp_bb10</name>
+
+ <!-- A string value of the format <0-999>.<0-999>.<0-999> that represents application version which can be used to check for application upgrade.
+ Values can also be 1-part or 2-part. It is not necessary to have a 3-part value.
+ An updated version of application must have a versionNumber value higher than the previous version. Required. -->
+ <versionNumber>1.0.0</versionNumber>
+
+ <!-- Fourth digit segment of the package version. First three segments are taken from the
+ <versionNumber> element. Must be an integer from 0 to 2^16-1 -->
+ <buildId>1</buildId>
+
+ <!-- A string value (such as "v1", "2.5", or "Alpha 1") that represents the version of the application, as it should be shown to users. Optional. -->
+ <!-- <versionLabel></versionLabel> -->
+
+ <!-- Description, displayed in the BlackBerry Tablet OS application installer.
+ May have multiple values for each language. See samples or xsd schema file. Optional. -->
+ <description>The wp_bb10 application</description>
+
+ <!-- Copyright information. Optional. -->
+ <!-- <copyright></copyright> -->
+
+ <!-- Name of author which is used for signing. Must match the developer name of your development certificate. -->
+ <author>Example Inc.</author>
+
+ <!-- Unique author ID assigned by signing authority. Required if using debug tokens. -->
+ <!-- <authorId>ABC1234YjsnUk235h</authorId> -->
+
+ <initialWindow>
+ <autoOrients>true</autoOrients>
+ <systemChrome>none</systemChrome>
+ <transparent>false</transparent>
+ </initialWindow>
+
+ <!-- The category where the application appears. Either core.games or core.media. -->
+ <category>core.games</category>
+ <configuration name="Device-Debug">
+ <platformArchitecture>armle-v7</platformArchitecture>
+ <asset path="arm/o.le-v7-g/wp_bb10" entry="true" type="Qnx/Elf">wp_bb10</asset>
+ </configuration>
+ <configuration name="Device-Release">
+ <entryPointType>Qnx/Cascades</entryPointType>
+ <platformArchitecture>armle-v7</platformArchitecture>
+ <asset path="arm/o.le-v7/wp_bb10.so" entry="true" type="Qnx/Elf">wp_bb10.so</asset>
+ </configuration>
+ <configuration name="Device-Profile">
+ <platformArchitecture>armle-v7</platformArchitecture>
+ <asset path="arm-p/o.le-v7-g/wp_bb10" entry="true" type="Qnx/Elf">wp_bb10</asset>
+ </configuration>
+ <configuration name="Simulator-Debug">
+ <platformArchitecture>x86</platformArchitecture>
+ <asset path="x86/o-g/wp_bb10" entry="true" type="Qnx/Elf">wp_bb10</asset>
+ </configuration>
+
+ <!-- The icon for the application -->
+ <icon>
+ <image>icon.png</image>
+ </icon>
+
+ <asset path="icon.png">icon.png</asset>
+ <asset path="assets">assets</asset>
+
+ <!-- Locale support -->
+ <asset path="translations" dest="qm">
+ <include name="*.qm"/>
+ </asset>
+
+ <asset path="assets/wplogo.png">assets/wplogo.png</asset>
+
+
+ <!-- Request permission to execute native code. Required for native applications. -->
+ <permission system="true">run_native</permission>
+ <env var="LD_LIBRARY_PATH" value="app/native/lib:/usr/lib/qt4/lib"/>
+
+</qnx>
</ins></span></pre></div>
<a id="2013b0unc3trunkconfigpri"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/config.pri (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/config.pri (rev 0)
+++ 2013/b0unc3/trunk/config.pri 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1,58 @@
</span><ins>+# Auto-generated by IDE. Any changes made by user will be lost!
+BASEDIR = $$quote($$_PRO_FILE_PWD_)
+
+device {
+ CONFIG(debug, debug|release) {
+ SOURCES += $$quote($$BASEDIR/src/WPUtils.cpp) \
+ $$quote($$BASEDIR/src/applicationui.cpp) \
+ $$quote($$BASEDIR/src/main.cpp)
+
+ HEADERS += $$quote($$BASEDIR/src/WPUtils.h) \
+ $$quote($$BASEDIR/src/applicationui.hpp)
+ }
+
+ CONFIG(release, debug|release) {
+ SOURCES += $$quote($$BASEDIR/src/WPUtils.cpp) \
+ $$quote($$BASEDIR/src/applicationui.cpp) \
+ $$quote($$BASEDIR/src/main.cpp)
+
+ HEADERS += $$quote($$BASEDIR/src/WPUtils.h) \
+ $$quote($$BASEDIR/src/applicationui.hpp)
+ }
+}
+
+simulator {
+ CONFIG(debug, debug|release) {
+ SOURCES += $$quote($$BASEDIR/src/WPUtils.cpp) \
+ $$quote($$BASEDIR/src/applicationui.cpp) \
+ $$quote($$BASEDIR/src/main.cpp)
+
+ HEADERS += $$quote($$BASEDIR/src/WPUtils.h) \
+ $$quote($$BASEDIR/src/applicationui.hpp)
+ }
+}
+
+INCLUDEPATH += $$quote($$BASEDIR/src)
+
+CONFIG += precompile_header
+
+PRECOMPILED_HEADER = $$quote($$BASEDIR/precompiled.h)
+
+lupdate_inclusion {
+ SOURCES += $$quote($$BASEDIR/../src/*.c) \
+ $$quote($$BASEDIR/../src/*.c++) \
+ $$quote($$BASEDIR/../src/*.cc) \
+ $$quote($$BASEDIR/../src/*.cpp) \
+ $$quote($$BASEDIR/../src/*.cxx) \
+ $$quote($$BASEDIR/../assets/*.qml) \
+ $$quote($$BASEDIR/../assets/*.js) \
+ $$quote($$BASEDIR/../assets/*.qs)
+
+ HEADERS += $$quote($$BASEDIR/../src/*.h) \
+ $$quote($$BASEDIR/../src/*.h++) \
+ $$quote($$BASEDIR/../src/*.hh) \
+ $$quote($$BASEDIR/../src/*.hpp) \
+ $$quote($$BASEDIR/../src/*.hxx)
+}
+
+TRANSLATIONS = $$quote($${TARGET}.ts)
</ins></span></pre></div>
<a id="2013b0unc3trunkiconpng"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/icon.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/icon.png
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/icon.png 2013-08-12 17:36:40 UTC (rev 2213)
</del><ins>+++ 2013/b0unc3/trunk/icon.png 2013-08-12 17:42:36 UTC (rev 2214)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/icon.png
</span><span class="cx">___________________________________________________________________
</span><a id="svnmimetype"></a>
<div class="addfile"><h4>Added: svn:mime-type</h4></div>
<ins>+application/octet-stream
</ins><span class="cx">\ No newline at end of property
</span><a id="2013b0unc3trunkprecompiledh"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/precompiled.h (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/precompiled.h (rev 0)
+++ 2013/b0unc3/trunk/precompiled.h 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1,2 @@
</span><ins>+// This file is used to store precompiled headers.
+// It is intentionally left blank. It is up to you to decide which headers should be included here.
</ins></span></pre></div>
<a id="2013b0unc3trunksrcWPUtilscpp"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/src/WPUtils.cpp (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/src/WPUtils.cpp (rev 0)
+++ 2013/b0unc3/trunk/src/WPUtils.cpp 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1,354 @@
</span><ins>+/*
+ * WPUtils.cpp
+ *
+ * Created on: 04/ago/2013
+ * Author: b0unc3
+ */
+
+#include "WPUtils.h"
+
+
+
+using namespace bb::data;
+using namespace bb::cascades;
+
+WPUtils::~WPUtils() {
+ // TODO Auto-generated destructor stub
+}
+
+void WPUtils::getBlogs(QString u, QString p, QString blog_address)
+{
+
+ /* alternative ? */
+ QDomDocument doc;
+ QDomProcessingInstruction init = doc.createProcessingInstruction("xml version=\"1.0\"", "encoding=\"UTF-8\"");
+ QDomElement mc = doc.createElement("methodCall");
+ QDomElement mn = doc.createElement("methodName");
+ QDomText mnt = doc.createTextNode("wp.getUsersBlogs");
+ QDomElement ps = doc.createElement("params");
+ QDomElement p1 = doc.createElement("param");
+ QDomText p1t = doc.createTextNode("username");
+ QDomElement v1 = doc.createElement("value");
+ QDomText v1t = doc.createTextNode(u);
+ QDomElement p2 = doc.createElement("param");
+ QDomText p2t = doc.createTextNode("password");
+ QDomElement v2 = doc.createElement("value");
+ QDomText v2t = doc.createTextNode(p);
+
+ doc.appendChild(init);
+ doc.appendChild(mc);
+ mc.appendChild(mn);
+ mn.appendChild(mnt);
+ mc.appendChild(ps);
+ ps.appendChild(p1);
+ p1.appendChild(p1t);
+ p1.appendChild(v1);
+ v1.appendChild(v1t);
+ ps.appendChild(p2);
+ p2.appendChild(p2t);
+ p2.appendChild(v2);
+ v2.appendChild(v2t);
+
+ QString xml = doc.toString();
+ qDebug() << "builded xml : " << xml;
+
+ QNetworkAccessManager *manager = new QNetworkAccessManager();
+
+ QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
+
+ QUrl url;
+
+ _xml = xml.toUtf8();
+
+ QString tmp_url = searchEndPoint(blog_address);
+ if ( tmp_url.isEmpty() )
+ {
+ qDebug() << "unable to found endpoint";
+ res.insert("ERROR","ERROR");
+ } else {
+
+ url.setUrl(tmp_url);
+ QNetworkRequest request(url);
+ int cmd = 0;
+ request.setAttribute(QNetworkRequest::Attribute(QNetworkRequest::User + 1), QVariant((int) cmd)); /* not sure */
+ request.setRawHeader("User-Agent", "wp-bb10/0.0.1");
+ request.setHeader(QNetworkRequest::ContentTypeHeader, "text/xml");
+
+
+ manager->post(request,_xml);
+ }
+
+}
+
+void WPUtils::replyFinished(QNetworkReply *rep)
+{
+
+ QByteArray ret = rep->readAll();
+ qDebug() << "reading " << ret; //rep->readAll();
+
+ QString _current_name = "";
+
+ QXmlStreamReader xml(ret);
+
+ while(!xml.atEnd() && !xml.hasError()) {
+ QXmlStreamReader::TokenType token = xml.readNext();
+ if(token == QXmlStreamReader::StartElement) {
+ if ( xml.name() == "fault" ) {
+ qDebug() << "errorifying";
+ res.insert("ERROR", "ERROR");
+ xml.raiseError("ERROR");
+ }
+ if(xml.name() == "name") {
+ xml.readNext();
+ if(xml.tokenType() == QXmlStreamReader::Characters) {
+ qDebug() << "set current name t o " << _current_name;
+ _current_name = xml.text().toString();
+ }
+ //continue;
+ } else if ( xml.name() == "value" && !_current_name.isEmpty() ) {
+ token = xml.readNext();
+ token = xml.readNext();
+ if ( xml.tokenType() == QXmlStreamReader::Characters )
+ {
+ qDebug() << "save name = " << _current_name << " text = " << xml.text().toString();
+ res.insert(_current_name, xml.text().toString());
+ _current_name = "";
+ }
+ }
+ }
+ }
+
+
+ qDebug() << "map = " << res << "tot = " << res.count();
+
+
+ emit dataReady(ret);
+}
+
+bb::cascades::GroupDataModel* WPUtils::setModel(QByteArray a)
+{
+ qDebug() << "workgin on " << a;
+
+ bb::cascades::GroupDataModel *model = new GroupDataModel(QStringList() << "name" );/* TO BE CHECKED */
+
+ /*
+ * keep it in mind
+
+ XmlDataAccess xda;
+ QVariant list = xda.loadFromBuffer(a, "/methodResponse/params/param/value/array/data/value/struct/member");///param/value/array/data/value/struct/member");
+ if (xda.hasError()) {
+ qDebug() << "error = " << xda.error().errorMessage().toAscii();
+ } else {
+ qDebug() << "list len = " << list.toMap();
+ }
+ */
+ model->setGrouping(ItemGrouping::None);
+ qDebug() << "INSERT = " << res;
+ model->insert(res);
+
+ return model;
+}
+
+QString WPUtils::sanitize(QString burl)
+{
+ /*
+ * check for the presence of http / https
+ * check for the trailing /
+ */
+ if ( !burl.isEmpty() ) {
+ if ( !burl.toLower().startsWith("http://") && !burl.toLower().startsWith("https://") )
+ {
+ burl = "http://" + burl;
+ }
+ if ( !burl.endsWith("/") )
+ burl.append("/");
+
+
+ return burl;
+ }
+
+ return burl;
+
+}
+
+QString WPUtils::searchEndPoint(QString url) // WP_FindEndPoint(QString url)
+{
+ _url = sanitize(url);
+/*
+ * not here , but somewhere esle TBD
+ QUrl t(_url);
+ if ( !t.isValid() )
+ {
+ return "";
+ }*/
+
+ if ( _url.isEmpty() )
+ {
+ _url = "https://wordpress.com/xmlrpc.php";
+ if ( validate(_url) )
+ return _endpoint;
+ else return "";
+
+
+ } else {
+ if ( _url.indexOf("xmlrpc.php") != - 1 )
+ {
+ if ( validate(_url) )
+ return _endpoint;
+ }
+ else if ( _url.indexOf("/wp-admin/") != -1 )
+ {
+ /*
+ input contains /wp-admin/
+ remove it, and adding xmlrpc.php (WRN : check if there is also xmlrpc.php FIXME )
+ then validate
+ */
+ _url.replace("/wp-admin/","/").append("xmlrpc.php");
+ if ( validate(_url) )
+ return _endpoint;
+ }
+ else if ( validate(_url.append("xmlrpc.php")) )
+ {
+ return _endpoint;
+ } else {
+ /*
+ unable to locate xmlrpc.php
+ try to search on the HTML. href of pingback link
+ */
+ qDebug() << "fetch on = " << _url;
+
+
+ QNetworkAccessManager *a = new QNetworkAccessManager();
+ QUrl url(_url);//.append("/"));
+ QNetworkRequest request(_url);
+
+ QNetworkReply *reply = a->get(request);
+ //QEvent_loop _loop;
+ QObject::connect(a, SIGNAL(finished(QNetworkReply*)), this, SLOT(checkForPingback(QNetworkReply*)) );
+
+ _loop.exec();
+
+ return _endpoint;
+ /*if ( _endpoint.isEmpty() )
+ return
+ */
+
+
+ }
+ }
+
+ if ( _endpoint.isEmpty() )
+ {
+ _url = "https://wordpress.com/xmlrpc.php";
+ if ( validate(_url) )
+ return _endpoint;
+ else return "";
+
+
+ }
+
+ return "";
+
+
+
+}
+
+bool WPUtils::validate(QString e)
+{
+ qDebug() << "going on validate = " << e;
+ QUrl u(e);
+ QNetworkAccessManager *a = new QNetworkAccessManager();
+
+ QNetworkRequest request(u);
+ int cmd = 0;
+ request.setAttribute(QNetworkRequest::Attribute(QNetworkRequest::User + 1), QVariant((int) cmd));
+ request.setRawHeader("User-Agent", "wp-bb10/0.0.1");
+ request.setHeader(QNetworkRequest::ContentTypeHeader, "text/xml");
+
+ QNetworkReply *reply;
+
+ reply = a->post(request, _xml);
+
+
+ QObject::connect(a, SIGNAL(finished(QNetworkReply*)), this, SLOT(repFinished(QNetworkReply*)) );
+ _loop.exec();
+
+ qDebug() << "********* FINISHED";
+ qDebug() << "_endpoint = " << _endpoint;
+
+ if ( _endpoint.isEmpty() )
+ return false;
+ else return true;
+}
+
+void WPUtils::repFinished(QNetworkReply *r)
+{
+ QByteArray t = r->readAll();
+ qDebug() << "we got reply = " << t;
+ QXmlStreamReader xr(t);//r->readAll());
+
+ _endpoint = "";
+ while(!xr.atEnd() && !xr.hasError())
+ {
+
+ QXmlStreamReader::TokenType token = xr.readNext();
+ if(token == QXmlStreamReader::StartElement)
+ {
+ if ( xr.name() == "methodResponse") //all the correct call, contain a <methodResponse> ; right? */
+ {
+ qDebug() << "xml correct";
+ _endpoint = _url;
+ }
+
+
+ }
+ }
+ xr.clear();
+ _loop.quit();
+}
+void WPUtils::checkForPingback(QNetworkReply *r)
+{
+ qDebug() << "check fo pingback";
+ QRegExp trx("link rel=\"pingback\" href=\"([^\"]*)\"");//(.*)<\/a>)
+ QString str = r->readAll();//"Offsets: 12 14 99 231 7";
+ qDebug() << "on " << str;
+
+ int pos = trx.indexIn(str);
+ if ( pos != -1 )
+ {
+ qDebug() << " index in = " << QString::number(pos);
+ QStringList list = trx.capturedTexts();
+ qDebug() << list;
+ qDebug() << "our item " << list[1];
+ if ( validate(list[1]) )
+ qDebug() << "got it " << _endpoint;// return _endpoint;
+ else{
+ /*
+ check on pingback href failed
+ check on EditURI href
+ */
+ QRegExp erx("link rel=\"EditURI\" type=\"application/rsd\+[^*]*\" title=\"RSD\" href=\"([^\"]*)\"");//(.*)<\/a>)
+ int pos = erx.indexIn(str);
+ if ( pos != -1 )
+ {
+ qDebug() << " index in = " << QString::number(pos);
+ QStringList list = erx.capturedTexts();
+ qDebug() << list;
+ qDebug() << "our item " << list[1];
+ if (list[1].indexOf('xmlrpc') != -1 ) //double check we got the right url
+ {
+ /*
+ download the xml and parse it
+ check for apiLink url
+ */
+ /****TODO****/
+ }
+ if ( validate(list[1]) )
+ qDebug() << "got on 2 = " << _endpoint;
+ else {
+ qDebug() << "nothing found";
+ }
+ }
+ }
+ }
+}
</ins></span></pre></div>
<a id="2013b0unc3trunksrcWPUtilsh"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/src/WPUtils.h (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/src/WPUtils.h (rev 0)
+++ 2013/b0unc3/trunk/src/WPUtils.h 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1,79 @@
</span><ins>+/*
+ * WPUtils.h
+ *
+ * Created on: 04/ago/2013
+ * Author: b0unc3
+ */
+
+#ifndef WPUTILS_H_
+#define WPUTILS_H_
+
+#include <QObject>
+#include <QMetaType>
+#include <QMap>
+
+#include <qnetworkaccessmanager.h>
+#include <qnetworkreply.h>
+#include <qnetworkrequest.h>
+
+#include <QUrl>
+#include <QDomDocument>
+#include <QDomElement>
+#include <QDomText>
+
+#include <QtXml/QXmlStreamReader>
+
+#include <QByteArray>
+#include <QVariant>
+
+#include <QStringList>
+
+#include <QRegExp>
+
+#include <QXmlStreamReader>
+
+
+#include <QDebug>
+
+#include <QMetaType>
+#include <QtScript>
+
+#include <bb/data/XmlDataAccess>
+#include <bb/cascades/ListView>
+#include <bb/cascades/DataModel>
+#include <bb/cascades/GroupDataModel>
+
+class WPUtils: public QObject {
+ Q_OBJECT
+
+public:
+ QMap<QString,QVariant> res;
+ WPUtils(QObject *parent = 0) { }
+ virtual ~WPUtils();
+
+
+ Q_INVOKABLE void getBlogs(QString, QString, QString);
+ Q_INVOKABLE bb::cascades::GroupDataModel * setModel(QByteArray);
+ QString searchEndPoint(QString);
+ Q_INVOKABLE QMap<QString, QVariant> getRes() { return res; }
+ Q_INVOKABLE void resetRes() { res.clear(); }
+
+private:
+ QString _endpoint;
+ QString _url;
+ QEventLoop _loop;
+ QByteArray _xml;
+
+ QString sanitize(QString);
+ bool validate(QString);
+signals:
+ void dataReady(QByteArray); //QVariant);//QString);
+
+private slots:
+ void replyFinished(QNetworkReply*);
+ void repFinished(QNetworkReply*);
+ void checkForPingback(QNetworkReply*);
+
+};
+
+#endif /* WPUTILS_H_ */
</ins></span></pre></div>
<a id="2013b0unc3trunksrcapplicationuicpp"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/src/applicationui.cpp (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/src/applicationui.cpp (rev 0)
+++ 2013/b0unc3/trunk/src/applicationui.cpp 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+// Default empty project template
+#include "applicationui.hpp"
+
+#include "WPUtils.h"
+
+#include <bb/cascades/Application>
+#include <bb/cascades/QmlDocument>
+#include <bb/cascades/AbstractPane>
+
+
+
+using namespace bb::cascades;
+
+ApplicationUI::ApplicationUI(bb::cascades::Application *app)
+: QObject(app)
+{
+ // create scene document from main.qml asset
+ // set parent to created document to ensure it exists for the whole application lifetime
+ QmlDocument *qml = QmlDocument::create("asset:///main.qml").parent(this);
+
+ WPUtils *wpu = new WPUtils();
+ qml->setContextProperty("wpu", wpu);
+
+ // create root object for the UI
+ AbstractPane *root = qml->createRootObject<AbstractPane>();
+ // set created root object as a scene
+ app->setScene(root);
+}
+
</ins></span></pre></div>
<a id="2013b0unc3trunksrcapplicationuihpp"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/src/applicationui.hpp (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/src/applicationui.hpp (rev 0)
+++ 2013/b0unc3/trunk/src/applicationui.hpp 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1,23 @@
</span><ins>+// Default empty project template
+#ifndef ApplicationUI_HPP_
+#define ApplicationUI_HPP_
+
+#include <QObject>
+
+namespace bb { namespace cascades { class Application; }}
+
+/*!
+ * @brief Application pane object
+ *
+ *Use this object to create and init app UI, to create context objects, to register the new meta types etc.
+ */
+class ApplicationUI : public QObject
+{
+ Q_OBJECT
+public:
+ ApplicationUI(bb::cascades::Application *app);
+ virtual ~ApplicationUI() {}
+};
+
+
+#endif /* ApplicationUI_HPP_ */
</ins></span></pre></div>
<a id="2013b0unc3trunksrcmaincpp"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/src/main.cpp (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/src/main.cpp (rev 0)
+++ 2013/b0unc3/trunk/src/main.cpp 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1,32 @@
</span><ins>+// Default empty project template
+#include <bb/cascades/Application>
+
+#include <QLocale>
+#include <QTranslator>
+#include "applicationui.hpp"
+
+// include JS Debugger / CS Profiler enabler
+// this feature is enabled by default in the debug build only
+#include <Qt/qdeclarativedebug.h>
+
+using namespace bb::cascades;
+
+Q_DECL_EXPORT int main(int argc, char **argv)
+{
+ // this is where the server is started etc
+ Application app(argc, argv);
+
+ // localization support
+ QTranslator translator;
+ QString locale_string = QLocale().name();
+ QString filename = QString( "wp_bb10_%1" ).arg( locale_string );
+ if (translator.load(filename, "app/native/qm")) {
+ app.installTranslator( &translator );
+ }
+
+ new ApplicationUI(&app);
+
+ // we complete the transaction started in the app constructor and start the client event loop here
+ return Application::exec();
+ // when loop is exited the Application deletes the scene which deletes all its children (per qt rules for children)
+}
</ins></span></pre></div>
<a id="2013b0unc3trunktranslationsMakefile"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/translations/Makefile (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/translations/Makefile (rev 0)
+++ 2013/b0unc3/trunk/translations/Makefile 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+QMAKE_TARGET = wp_bb10
+LUPDATE = $(QNX_HOST)/usr/bin/lupdate
+LRELEASE = $(QNX_HOST)/usr/bin/lrelease
+
+update: $(QMAKE_TARGET).pro FORCE
+ $(LUPDATE) $(QMAKE_TARGET).pro
+
+release: $(QMAKE_TARGET).pro $(QMAKE_TARGET).ts
+ $(LRELEASE) $(QMAKE_TARGET).pro
+
+FORCE:
+
</ins></span></pre></div>
<a id="2013b0unc3trunktranslationswp_bb10pro"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/translations/wp_bb10.pro (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/translations/wp_bb10.pro (rev 0)
+++ 2013/b0unc3/trunk/translations/wp_bb10.pro 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+include (../wp_bb10.pro)
</ins></span></pre></div>
<a id="2013b0unc3trunktranslationswp_bb10ts"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/translations/wp_bb10.ts (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/translations/wp_bb10.ts (rev 0)
+++ 2013/b0unc3/trunk/translations/wp_bb10.ts 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+</TS>
</ins></span></pre></div>
<a id="2013b0unc3trunkwp_bb10bar"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/wp_bb10.bar</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/wp_bb10.bar
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/wp_bb10.bar 2013-08-12 17:36:40 UTC (rev 2213)
</del><ins>+++ 2013/b0unc3/trunk/wp_bb10.bar 2013-08-12 17:42:36 UTC (rev 2214)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/wp_bb10.bar
</span><span class="cx">___________________________________________________________________
</span><a id="svnmimetype"></a>
<div class="addfile"><h4>Added: svn:mime-type</h4></div>
<ins>+application/octet-stream
</ins><span class="cx">\ No newline at end of property
</span><a id="2013b0unc3trunkwp_bb10pro"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/wp_bb10.pro (0 => 2214)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/wp_bb10.pro (rev 0)
+++ 2013/b0unc3/trunk/wp_bb10.pro 2013-08-12 17:42:36 UTC (rev 2214)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+APP_NAME = wp_bb10
+
+CONFIG += qt warn_on cascades10
+
+QT += xml network script
+
+LIBS += -lbbdata
+
+include(config.pri)
+
+device {
+ CONFIG(debug, debug|release) {
+ # Device-Debug custom configuration
+ }
+
+ CONFIG(release, debug|release) {
+ # Device-Release custom configuration
+ }
+}
+
+simulator {
+ CONFIG(debug, debug|release) {
+ # Simulator-Debug custom configuration
+ }
+}
</ins></span></pre>
</div>
</div>
</body>
</html>