<!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>[2352] 2013/b0unc3/trunk: latest sources </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/2352">2352</a></dd>
<dt>Author</dt> <dd>b0unc3</dd>
<dt>Date</dt> <dd>2013-09-21 17:34:44 +0000 (Sat, 21 Sep 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>latest sources </pre>

<h3>Added Paths</h3>
<ul>
<li><a href="#2013b0unc3trunkMakefile">2013/b0unc3/trunk/Makefile</a></li>
<li>2013/b0unc3/trunk/assets/</li>
<li><a href="#2013b0unc3trunkassetsassetsindex">2013/b0unc3/trunk/assets/.assets.index</a></li>
<li><a href="#2013b0unc3trunkassetsBlogsSelectionDialogqml">2013/b0unc3/trunk/assets/BlogsSelectionDialog.qml</a></li>
<li><a href="#2013b0unc3trunkassetsCustomDialogCategoriesqml">2013/b0unc3/trunk/assets/CustomDialogCategories.qml</a></li>
<li><a href="#2013b0unc3trunkassetsCustomIndicatorqml">2013/b0unc3/trunk/assets/CustomIndicator.qml</a></li>
<li><a href="#2013b0unc3trunkassetsLoginqml">2013/b0unc3/trunk/assets/Login.qml</a></li>
<li><a href="#2013b0unc3trunkassetsReplyDialogqml">2013/b0unc3/trunk/assets/ReplyDialog.qml</a></li>
<li><a href="#2013b0unc3trunkassetsblogslistqml">2013/b0unc3/trunk/assets/blogslist.qml</a></li>
<li><a href="#2013b0unc3trunkassetscommentslistqml">2013/b0unc3/trunk/assets/commentslist.qml</a></li>
<li><a href="#2013b0unc3trunkassetseditcommentqml">2013/b0unc3/trunk/assets/editcomment.qml</a></li>
<li><a href="#2013b0unc3trunkassetseditpostqml">2013/b0unc3/trunk/assets/editpost.qml</a></li>
<li>2013/b0unc3/trunk/assets/images/</li>
<li><a href="#2013b0unc3trunkassetsimagesaddpng">2013/b0unc3/trunk/assets/images/add.png</a></li>
<li><a href="#2013b0unc3trunkassetsimagesaddimagepng">2013/b0unc3/trunk/assets/images/addimage.png</a></li>
<li><a href="#2013b0unc3trunkassetsimagesapprovepng">2013/b0unc3/trunk/assets/images/approve.png</a></li>
<li><a href="#2013b0unc3trunkassetsimagescommentspng">2013/b0unc3/trunk/assets/images/comments.png</a></li>
<li><a href="#2013b0unc3trunkassetsimageseditpng">2013/b0unc3/trunk/assets/images/edit.png</a></li>
<li><a href="#2013b0unc3trunkassetsimagesloadinggif">2013/b0unc3/trunk/assets/images/loading.gif</a></li>
<li><a href="#2013b0unc3trunkassetsimagesoverlaypng">2013/b0unc3/trunk/assets/images/overlay.png</a></li>
<li><a href="#2013b0unc3trunkassetsimagespagespng">2013/b0unc3/trunk/assets/images/pages.png</a></li>
<li><a href="#2013b0unc3trunkassetsimagespostspng">2013/b0unc3/trunk/assets/images/posts.png</a></li>
<li><a href="#2013b0unc3trunkassetsimagesrefreshpng">2013/b0unc3/trunk/assets/images/refresh.png</a></li>
<li><a href="#2013b0unc3trunkassetsimagesreplypng">2013/b0unc3/trunk/assets/images/reply.png</a></li>
<li><a href="#2013b0unc3trunkassetsimagessavepng">2013/b0unc3/trunk/assets/images/save.png</a></li>
<li><a href="#2013b0unc3trunkassetsimagesspampng">2013/b0unc3/trunk/assets/images/spam.png</a></li>
<li><a href="#2013b0unc3trunkassetsimagesunapprovepng">2013/b0unc3/trunk/assets/images/unapprove.png</a></li>
<li><a href="#2013b0unc3trunkassetsimageswplogopng">2013/b0unc3/trunk/assets/images/wplogo.png</a></li>
<li><a href="#2013b0unc3trunkassetsmainqml">2013/b0unc3/trunk/assets/main.qml</a></li>
<li><a href="#2013b0unc3trunkassetsmakePostqml">2013/b0unc3/trunk/assets/makePost.qml</a></li>
<li><a href="#2013b0unc3trunkassetspageslistqml">2013/b0unc3/trunk/assets/pageslist.qml</a></li>
<li><a href="#2013b0unc3trunkassetspostslistqml">2013/b0unc3/trunk/assets/postslist.qml</a></li>
<li><a href="#2013b0unc3trunkassetsshowPostqml">2013/b0unc3/trunk/assets/showPost.qml</a></li>
<li><a href="#2013b0unc3trunkassetsviewcommentqml">2013/b0unc3/trunk/assets/viewcomment.qml</a></li>
<li><a href="#2013b0unc3trunkassetswpbb10db">2013/b0unc3/trunk/assets/wpbb10.db</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_bb10pro">2013/b0unc3/trunk/wp_bb10.pro</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#2013b0unc3trunkMakefile">2013/b0unc3/trunk/Makefile</a></li>
<li>2013/b0unc3/trunk/assets/</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="#2013b0unc3trunktestxml">2013/b0unc3/trunk/test.xml</a></li>
<li>2013/b0unc3/trunk/translations/</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="delfile"><h4>Deleted: 2013/b0unc3/trunk/Makefile (2351 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/Makefile       2013-09-21 12:32:47 UTC (rev 2351)
+++ 2013/b0unc3/trunk/Makefile  2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -1,6 +0,0 @@
</span><del>-QMAKE_TARGET  = wp_bb10
-PROJECT_DIR      := $(dir $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)))
-I18N_DIR         := $(PROJECT_DIR)/translations
-
-include mk/cs-base.mk
-
</del></span></pre></div>
<a id="2013b0unc3trunkMakefile"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/Makefile (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/Makefile                               (rev 0)
+++ 2013/b0unc3/trunk/Makefile  2013-09-21 17:34:44 UTC (rev 2352)
</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="2013b0unc3trunkassetsassetsindex"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/.assets.index (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/.assets.index                           (rev 0)
+++ 2013/b0unc3/trunk/assets/.assets.index      2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,37 @@
</span><ins>+1
+35
+.CustomDialogCategories.qml.swp
+pageslist.qml
+blogslist.qml
+ReplyDialog.qml
+editpost.qml
+BlogsSelectionDialog.qml
+viewcomment.qml
+.pageslist.qml.swp
+CustomDialogCategories.qml
+CustomIndicator.qml
+editcomment.qml
+commentslist.qml
+showPost.qml
+makePost.qml
+images/wplogo.png
+images/add.png
+images/overlay.png
+images/comments.png
+images/reply.png
+images/spam.png
+images/refresh.png
+images/approve.png
+images/pages.png
+images/unapprove.png
+images/save.png
+images/loading.gif
+images/edit.png
+images/addimage.png
+images/posts.png
+postslist.qml
+main.qml
+Login.qml
+wpbb10.db
+wplogo.png
+posts.png
</ins></span></pre></div>
<a id="2013b0unc3trunkassetsBlogsSelectionDialogqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/BlogsSelectionDialog.qml (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/BlogsSelectionDialog.qml                                (rev 0)
+++ 2013/b0unc3/trunk/assets/BlogsSelectionDialog.qml   2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,62 @@
</span><ins>+/*
+ * BlogsSelectionDialog.qml
+ *
+ *      Author: Daniele (b0unc3) Maio
+ */
+
+import bb.cascades 1.0
+
+Dialog {
+    id: bsd
+    
+    function getRegisteredBlogs()
+    {
+        var val = wpu.getBI();
+        for (var event in val) {
+            var dataCopy = val[event]
+
+           var option = optionControlDefinition.createObject();
+            option.value = event;
+            option.text = val[event];
+            bdd.add(option);
+        }
+    }
+    
+    attachedObjects: [
+        ComponentDefinition {
+            id: optionControlDefinition
+            Option {
+            }
+        }
+    ]
+
+    Container {
+        horizontalAlignment: HorizontalAlignment.Center
+        verticalAlignment: VerticalAlignment.Center
+
+        background: Color.create(0.0, 0.0, 0.0, 0.5)
+
+        layout: StackLayout {
+        }
+
+        DropDown {
+            id: bdd
+        }
+
+        Divider {
+
+        }
+        Button {
+            horizontalAlignment: HorizontalAlignment.Center
+            text: qsTr("Done")
+            onClicked: {
+                bsdo.close();
+            }
+        }
+    }
+
+       onOpened: {
+               getRegisteredBlogs();
+    }
+}
+
</ins></span></pre></div>
<a id="2013b0unc3trunkassetsCustomDialogCategoriesqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/CustomDialogCategories.qml (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/CustomDialogCategories.qml                              (rev 0)
+++ 2013/b0unc3/trunk/assets/CustomDialogCategories.qml 2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,68 @@
</span><ins>+import bb.cascades 1.0
+
+Dialog {
+    id: cdcp
+    
+    property variant cats;
+    
+    function onDataReady(val)
+    {
+       cats = wpu.getRes();
+       /* not work? */
+        for (var event in cats) {
+            var dataCopy = cats[event]
+            
+              for (var key in dataCopy) {
+               //console.log("dataCopy[key] = " + dataCopy[key]);
+              }
+           // console.log("event = " + event);
+            if ( event == "name" ) {
+              //  console.log("add name " + cats[event]);
+                var option = optionControlDefinition.createObject();
+                option.text = cats[event]
+                dropDown.add(option)
+            }
+        }
+        
+       cdcind.stop();
+    }
+
+    attachedObjects: [
+        ComponentDefinition {
+            id: optionControlDefinition
+            Option {
+            }
+        }
+    ]
+
+    Container {
+        horizontalAlignment: HorizontalAlignment.Center
+        verticalAlignment: VerticalAlignment.Center
+        
+        background: Color.create(0.0, 0.0, 0.0, 0.5)
+        
+        layout: StackLayout {}
+        
+        DropDown {
+            Option {
+                text: cats.name //<--?
+            }
+        }
+        
+        Divider {
+        
+        }
+        Button {
+            horizontalAlignment: HorizontalAlignment.Center
+            text: qsTr("Done");
+            onClicked: {
+                customdialogcat.close();
+            }
+        }
+    }
+    
+    onCreationCompleted: {
+        wpu.getCategories();
+        wpu.dataReady.connect(cdcp.onDataReady);
+    }
+}
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="2013b0unc3trunkassetsCustomIndicatorqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/CustomIndicator.qml (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/CustomIndicator.qml                             (rev 0)
+++ 2013/b0unc3/trunk/assets/CustomIndicator.qml        2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,66 @@
</span><ins>+/*
+ * CustomIndicator.qml
+ *
+ *      Author: Daniele (b0unc3) Maio
+ */
+
+import bb.cascades 1.0
+
+Dialog {
+    id: bi
+    property alias body: theBody.text
+
+    Container {
+        horizontalAlignment: HorizontalAlignment.Center
+        verticalAlignment: VerticalAlignment.Center
+        layout: DockLayout {
+        }
+
+        ImageView {
+            imageSource: "asset:///images/overlay.png"
+        }
+
+        Container {
+
+            horizontalAlignment: HorizontalAlignment.Center
+            verticalAlignment: VerticalAlignment.Center
+
+            preferredHeight: 363
+            preferredWidth: 557
+
+            background: Color.create(0.0, 0.0, 0.0, 0.8)
+
+            ActivityIndicator {
+                id: theIndicator
+                horizontalAlignment: HorizontalAlignment.Center
+                verticalAlignment: VerticalAlignment.Center
+                preferredHeight: 150
+                preferredWidth: 150
+            }
+
+            Divider {
+                preferredWidth: 25
+            }
+
+            Label {
+                id: theBody
+                horizontalAlignment: HorizontalAlignment.Center
+                verticalAlignment: VerticalAlignment.Center
+                multiline: true
+
+                textStyle {
+                    base: SystemDefaults.TextStyles.BodyText
+                    color: Color.White
+                    fontWeight: FontWeight.Bold
+                }
+            }
+        }
+    }
+    onOpened: {
+        theIndicator.running = true;
+    }
+    onClosed: {
+        theIndicator.running = false;
+    }
+}
+
</ins></span></pre></div>
<a id="2013b0unc3trunkassetsLoginqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/Login.qml (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/Login.qml                               (rev 0)
+++ 2013/b0unc3/trunk/assets/Login.qml  2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,154 @@
</span><ins>+/*
+ * Login.qml
+ *
+ *      Author: Daniele (b0unc3) Maio
+ */
+
+import bb.cascades 1.0
+import bb.system 1.0
+
+Page {
+    id: lp
+    
+    actionBarVisibility: ChromeVisibility.Hidden
+    
+    attachedObjects: [
+        ComponentDefinition {
+            id: pageDefinition
+            source: "blogslist.qml"
+        },
+        SystemToast {
+            id: myQmlToast
+            body: "Unable to register account\nPlease try again."
+            button.label: "Ok"
+            button.enabled: true
+        }
+    
+    ]
+    
+    function onDataReady() {
+        var a = wpu.getRes();
+        
+        if (a["ERROR"]) {
+            myQmlToast.show();
+            usr.text = '';
+            pwd.text = '';
+            blgd.text = '';
+            si.enabled = true
+            si.imageSource = '';
+            //         wpu.resetRes();
+        } else {
+            wpu.setUsername(usr.text);
+            wpu.setPassword(pwd.text);
+            
+            var newPage = pageDefinition.createObject();
+            newPage.bl_xml = "val";
+            
+            si.imageSource = '';
+            si.enabled = true
+            usr.text = '';
+            pwd.text = '';
+            blgd.text = '';
+
+            navigationPane.push(newPage);
+        }
+    
+    }
+    
+    Container {
+        layout: DockLayout {  }
+        
+        
+        Container {
+            layout: StackLayout {
+            }
+            
+            Container {
+                verticalAlignment: VerticalAlignment.Top
+                horizontalAlignment: HorizontalAlignment.Center
+                layout: StackLayout {
+                }
+                
+                //header - logo
+                ImageView {
+                    
+                    imageSource: "asset:///images/wplogo.png"
+                }
+            }
+            Container {
+                verticalAlignment: VerticalAlignment.Center
+                horizontalAlignment: HorizontalAlignment.Center
+                layout: StackLayout {
+                }
+                
+                topPadding: 50
+                leftPadding: 50
+                rightPadding: 50
+                bottomPadding: 50
+                
+                Label {
+                    text: "Username"
+                }
+                
+                TextField {
+                    id: usr
+                    clearButtonVisible: true
+                    hintText: "username"
+                    
+                    input.flags: TextInputFlag.AutoCapitalizationOff
+                }
+                
+                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"
+                    input.flags: TextInputFlag.AutoCapitalizationOff
+
+                }
+            }
+            Container {
+                verticalAlignment: VerticalAlignment.Bottom
+                horizontalAlignment: HorizontalAlignment.Center
+                layout: StackLayout {
+                }
+                
+                topPadding: 50
+                //bottomPadding: 25//50
+                Button {
+                    id: si
+                    text: "Sign In"
+                    
+                    onClicked: {
+                        if (usr.text && pwd.text) {
+                            si.imageSource = "asset:///images/loading.gif";
+                            si.enabled = false;
+                            wpu.getBlogs(usr.text, pwd.text, blgd.text);
+                            wpu.dataReady_getUsersBlogs.connect(lp.onDataReady);
+                        } else {; /*** TODO ***/
+                        }
+                    }
+                
+                }
+            }
+        }
+    }
+}
+
+
</ins></span></pre></div>
<a id="2013b0unc3trunkassetsReplyDialogqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/ReplyDialog.qml (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/ReplyDialog.qml                         (rev 0)
+++ 2013/b0unc3/trunk/assets/ReplyDialog.qml    2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,93 @@
</span><ins>+/*
+ * ReplyDialog.qml
+ *
+ *      Author: Daniele (b0unc3) Maio
+ */
+
+import bb.cascades 1.0
+
+Dialog {
+    id: rd
+    property string parent_id;
+    property string post_id;
+    
+    function rd_onDataReady()
+    {
+        var rd_a = wpu.getRes();
+
+        if (rd_a["ERROR"]) {
+            //myQmlToast.show(); <- TBD
+            console.log("ERRORE");
+            // wpu.resetRes();
+        } else if (rd_a["newcommentid"]) {
+            close();
+        }
+    }
+    
+    
+    Container {
+        horizontalAlignment: HorizontalAlignment.Center
+        verticalAlignment: VerticalAlignment.Center
+        layout: StackLayout { }
+        
+        background: Color.create(0.0, 0.0, 0.0, 0.8)
+
+        Container {
+            layout: DockLayout {
+                
+            }
+            
+            Label {
+                horizontalAlignment: HorizontalAlignment.Left
+                text: "Leave a reply"
+            }
+            
+            
+            Button {
+                horizontalAlignment: HorizontalAlignment.Right
+                text: "Cancel reply"
+                
+                onClicked: {
+                    close();
+                }
+            
+            }
+        }
+        Container {
+            layout: StackLayout { }
+            
+            TextArea {
+                id: rep_content
+                horizontalAlignment: HorizontalAlignment.Fill
+                preferredHeight: 250;
+                hintText: "Enter your comment here";
+            }
+        }
+        
+        Button {
+            id: pc
+            horizontalAlignment: HorizontalAlignment.Right
+            verticalAlignment: VerticalAlignment.Bottom
+            text: "Post Comment"
+            
+            
+            onClicked: {
+                if ( rep_content.text && post_id && parent_id )
+                {
+                    pc.imageSource = "asset:///images/loading.gif";
+                    pc.enabled = false;
+                    wpu.newComment(post_id, rep_content.text, parent_id);
+                    wpu.dataReady_newComment.connect(rd.rd_onDataReady);
+                }
+                
+            }
+        }
+    }
+    
+    onOpened: {
+        pc.imageSource = '';
+        pc.enabled = true;
+        rep_content.text = '';
+    }
+}
+
</ins></span></pre></div>
<a id="2013b0unc3trunkassetsblogslistqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/blogslist.qml (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/blogslist.qml                           (rev 0)
+++ 2013/b0unc3/trunk/assets/blogslist.qml      2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,112 @@
</span><ins>+/*
+ * blogslist.qml
+ *
+ *      Author: Daniele (b0unc3) Maio
+ */
+
+import bb.cascades 1.0
+import bb.data 1.0
+import bb.system 1.0
+
+Page {
+    id: blp
+    
+    property string blogid: ""
+    property string blogurl: ""
+    
+    property string mystr;
+    property alias bl_xml: blp.mystr
+    
+    actions: [
+        MultiSelectActionItem {
+            id: msa
+            multiSelectHandler: listView.multiSelectHandler
+            title: "select blog(s)"
+        }
+    ]
+    
+    attachedObjects: [
+        SystemToast {
+            id: myQmlToast
+            body: "Unable to register account\nPlease try again."
+            button.label: "Ok"
+            button.enabled: true
+        }
+    
+    ]
+    
+    function moveOn()
+    {
+            navigationPane.pop();
+    }
+    
+    onMystrChanged: {
+        listView.setDataModel(wpu.setModel(mystr));
+    }
+    
+    content: Container {
+        layout: DockLayout {}
+        
+        ListView {
+            id: listView
+            multiSelectAction: MultiSelectActionItem { }
+            
+
+            multiSelectHandler {
+                status: qsTr("None selected");
+                actions: [
+                    ActionItem {
+                        title: "add selected"
+                        imageSource: "asset:///images/add.png"
+                        
+                        onTriggered: {
+                            if (enabled) {
+                                var selectionList = listView.selectionList();
+                                for (var i = 0; i < selectionList.length; i ++) {
+                                    var selectedItem = listView.dataModel.data(selectionList[i]);
+                                    wpu.setBlogsInfo(selectedItem.blogid, selectedItem.xmlrpc);
+                                    moveOn();
+                                }
+
+                            }
+                        }
+                    }
+                ]
+            }
+
+            onSelectionChanged: {
+                if (selectionList().length > 1) {
+                    multiSelectHandler.status = selectionList().length + " blogs selected";
+                } else if (selectionList().length == 1) {
+                    multiSelectHandler.status = "1 blog selected";
+                } else {
+                    multiSelectHandler.status = "None selected";
+                }
+            }
+
+            listItemComponents: [
+                ListItemComponent {
+                    type: "item"
+                    StandardListItem {
+                        id: bitem
+                        imageSpaceReserved: false
+                        textFormat: TextFormat.Html
+                        title: ListItemData.blogName
+                        description: ListItemData.url
+                        
+                        
+                    
+                    } // end of second ListItemComponent
+                } // end standardlistitem
+            ] // end of listItemComponents list
+           
+
+            onTriggered: {
+                var selectedItem = listView.dataModel.data(indexPath);
+                blogid = selectedItem.blogid;
+                blogurl = selectedItem.xmlrpc;
+            }
+        } // end of ListView
+    } // end of Container
+}
+
</ins></span></pre></div>
<a id="2013b0unc3trunkassetscommentslistqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/commentslist.qml (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/commentslist.qml                                (rev 0)
+++ 2013/b0unc3/trunk/assets/commentslist.qml   2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,312 @@
</span><ins>+/*
+ * commentslist.qml
+ *
+ *      Author: Daniele (b0unc3) Maio
+ */
+
+import bb.cascades 1.0
+import bb.system 1.0
+
+Page {
+    id: comment_cp
+    
+    property variant comment_cp_savemodel;
+    
+    function comment_restoreItems()
+    {
+        if ( comment_cp_savemodel )
+        {
+            comment_clListView.setDataModel(null);
+            comment_clListView.setDataModel(comment_cp_savemodel);
+        } else comment_init();
+    }
+    function comment_init()
+    {
+        if ( !comment_clind.running )
+               comment_clind.start();
+               
+        if ( comment_clListView.dataModel )
+               comment_clListView.setDataModel(null);
+               
+        wpu.getComments();
+        wpu.dataReady_getComments.connect(comment_cp.comment_onDataReady);
+    }
+    
+    function comment_onDataReady() {
+        var comment_a = wpu.getRes();
+        
+        if (comment_a["ERROR"]) {
+            //myQmlToast.show(); <- TBD
+            console.log("ERRORE");
+            // wpu.resetRes();
+        } else if (comment_a["delpost"]) {
+            if (comment_a["delpost"] == 1) {
+                comment_cp.comment_init();
+                comment_delprog.close();
+                comment_deldialog.cancel();
+                
+                
+            } else console.log("delete fail");
+
+        } else {
+           comment_clListView.setDataModel(wpu.setModel("comment_mystr"));
+            comment_clind.stop();
+        }
+    
+    }
+    
+    titleBar: TitleBar {
+        title: "Comments"
+    }
+
+    actions: [
+        ActionItem {
+            title: "Refresh"
+            imageSource: "asset:///images/refresh.png"
+
+            ActionBar.placement: ActionBarPlacement.InOverflow
+            onTriggered: {
+                comment_cp.comment_init();
+            }
+        }
+    ]
+    
+    attachedObjects: [
+        ComponentDefinition {
+            id: comment_vc
+            source: "viewcomment.qml"
+        },
+        ComponentDefinition {
+            id: comment_ec
+            source: "editcomment.qml"
+        },
+        ReplyDialog {
+            id: comment_crd
+            
+            onClosed: {
+                comment_init();
+            }
+        },
+        CustomIndicator {
+            id:comment_delprog
+            
+        },
+        SystemDialog {
+            property string cid
+            id: comment_delDialog
+            title: qsTr("DELETE COMMENT")
+            body: qsTr("Are you sure to delete this comment?");
+            confirmButton.label: qsTr("Yes")
+            confirmButton.enabled: true
+            cancelButton.label: qsTr("Cancel")
+            cancelButton.enabled: true
+            onFinished: {
+                var x = result;
+                if (x == SystemUiResult.ConfirmButtonSelection) {
+                    comment_delprog.body = "Deleting comment\nPlease wait...";
+                    comment_delprog.open();
+                    wpu.deleteComment(cid);
+                    wpu.dataReady_delComment.connect(comment_cp.comment_onDataReady);
+                } else if (x == SystemUiResult.CancelButtonSelection) {
+                    console.log("cancel");
+                }
+            }
+        }
+    ]
+    
+
+    content: Container {
+        layout: DockLayout {
+        }
+        
+        ActivityIndicator {
+            id: comment_clind
+            horizontalAlignment: HorizontalAlignment.Center
+            verticalAlignment: VerticalAlignment.Center
+            
+            preferredHeight: 500
+            preferredWidth: 500
+            
+            running: true
+        }
+
+        Container {
+            layout: StackLayout {
+            }
+
+            ListView {
+                id: comment_clListView
+
+                property variant commentsbyid: {'ciao': 'test'}
+
+                               function goEdit(id)
+                               {
+                                   comment_cp_savemodel = comment_clListView.dataModel;
+                    var p = comment_ec.createObject();
+                    p.ec_comment_id = id;
+                    navcommentspane.push(p);
+                }
+                               function rep(id, pid)
+                               {
+                                   comment_crd.post_id = pid
+                                   comment_crd.parent_id = id;
+                                   comment_crd.open();
+                               }
+                function delComment(id) {
+                    comment_delDialog.cid = id;
+                    comment_delDialog.show();
+                }
+
+                function modIt(id, action) {
+                    comment_clind.start();
+                    comment_clListView.resetDataModel();
+                    wpu.editComment(id, action, "", "", "", "");
+                    wpu.dataReady_editComment.connect(comment_clListView.comment_onDataReady);
+                }
+
+                function comment_onDataReady(val)
+                {
+                    var comment_ca = wpu.getRes();
+
+                    if (comment_ca["ERROR"]) {
+                        //myQmlToast.show();
+                        console.log("ERRORE");
+                        // wpu.resetRes();
+                    } else if (comment_ca["delpost"]) {
+                        if (comment_ca["delpost"] == 1) {
+                            wpu.getComments();
+                            wpu.dataReady_getComments.connect(comment_cp.comment_onDataReady);
+                        } else console.log("mod fail");
+
+                    }
+                }
+                
+                onDataModelChanged: {
+                    if ( comment_clListView.dataModel ) //<-- needs to debug!
+                    {
+                       for (var i=0;i<comment_clListView.dataModel.size();i++)
+                       {
+                               var cid = comment_clListView.dataModel.data([ i ]).comment_id
+                            var aut = comment_clListView.dataModel.data([ i ]).author
+                            var temp = comment_clListView.commentsbyid;
+                            temp[""+cid] = aut;
+                            comment_clListView.commentsbyid = temp;
+                        }
+                    }
+                }
+
+                listItemComponents: [
+                    ListItemComponent {
+                        type: "item"
+                        id: comment_listItemContainer
+
+                        StandardListItem {
+                            id: comment_csli
+                            
+                            function getDescription(p,d)
+                            {   
+                                console.log("in p = " +p);
+                                if ( p != "0" )
+                                {   
+                                       if (comment_csli.ListItem.view.commentsbyid["" + p]) 
+                                               return d + "<i> in reply to </i>" + comment_csli.ListItem.view.commentsbyid["" + p];
+                                       else return d;
+                                } else return d;
+                                
+                            }
+                            function getStatus(s)
+                            {
+                                if ( s == "approve" )
+                                       return "<html><p style='color: green;'><b>" + s + "</b></p></html>";
+                                else if ( s == "hold" )
+                                       return "<html><p style='color: orange;'><b>" + s + "</b></p></html>";
+                                else return s;
+
+                            }
+                            
+                            textFormat: TextFormat.Html
+                            title: ListItemData.content
+                            description: getDescription(ListItemData.parent, ListItemData.author)
+                            status: getStatus(ListItemData.status) // + "\n" + ListItemData.date //_created_gmt
+                            imageSpaceReserved: false
+                            
+                            property bool current_status: (ListItemData.status == "hold")
+
+                            contextActions: [
+                                ActionSet {
+                                    //title: ListItemData.title
+                                    ActionItem {
+                                        title: "Approve";
+                                        imageSource: "asset:///images/approve.png"
+                                        enabled: current_status
+                                        
+                                        onTriggered: {
+                                            
+                                            comment_csli.ListItem.view.modIt(ListItemData.comment_id, "approve");
+
+                                        }
+                                    }
+                                    ActionItem {
+                                        title: "Unapprove"
+                                        enabled: !current_status //ListItemData.status == "approve"
+                                        imageSource: "asset:///images/unapprove.png"
+
+                                        onTriggered: {
+                                            comment_csli.ListItem.view.modIt(ListItemData.comment_id, "hold");
+                                        }
+                                    }
+                                    ActionItem {
+                                        title: "Reply"
+                                        imageSource: "asset:///images/reply.png"
+                                        
+                                        onTriggered: {
+                                            comment_csli.ListItem.view.rep(ListItemData.comment_id, ListItemData.post_id);
+                                        }
+                                    }
+                                    ActionItem {
+                                        title: "Edit"
+                                        imageSource: "asset:///images/edit.png"
+                                        onTriggered: {
+                                            comment_csli.ListItem.view.goEdit(ListItemData.comment_id);
+
+                                        }
+                                    }
+                                    ActionItem {
+                                        title: "Spam"
+                                        imageSource: "asset:///images/spam.png"
+                                        
+                                        onTriggered: {
+                                            comment_csli.ListItem.view.modIt(ListItemData.comment_id, "spam");
+                                        }
+                                    }
+                                    DeleteActionItem {
+                                        title: "Trash"
+                                        
+                                        onTriggered: {
+                                            comment_csli.ListItem.view.delComment(ListItemData.comment_id);
+                                        }
+
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                ]
+                onTriggered: {
+                    comment_cp_savemodel = comment_clListView.dataModel;
+                    var selectedItem = comment_clListView.dataModel.data(indexPath);
+                    var vc_p = comment_vc.createObject();
+                    vc_p.vc_cid = selectedItem.comment_id
+                    navcommentspane.push(vc_p);
+                }
+                
+            } // end of clListView
+        }
+    }
+    
+    onCreationCompleted: {
+        if ( !comment_clListView.dataModel )
+               comment_cp.comment_init();
+    }
+}
+
</ins></span></pre></div>
<a id="2013b0unc3trunkassetseditcommentqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/editcomment.qml (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/editcomment.qml                         (rev 0)
+++ 2013/b0unc3/trunk/assets/editcomment.qml    2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,149 @@
</span><ins>+import bb.cascades 1.0
+
+Page {
+    id: ecp
+    
+    actionBarVisibility: ChromeVisibility.Visible
+    
+    property string ec_comment_id;
+    property variant ec_cinfos;
+    
+    onEc_comment_idChanged: {
+        wpu.getComment(ec_comment_id);
+        wpu.dataReady_getComment.connect(ecp.ec_onDataReady);
+    }
+    
+    function ec_onDataReady()
+    {
+        var ec_a = wpu.getRes();
+        
+        if ( ec_a['delpost'] )
+        {
+            ec_ci.close();
+            navcommentspane.pop();
+            navcommentspane.firstPage.comment_init();
+            
+        } else {
+            ec_cinfos = ec_a;
+            edind.stop();
+        }
+    }
+    
+    actions: [
+        ActionItem {
+            title: "Edit"
+            imageSource: "asset:///images/save.png"
+            ActionBar.placement: ActionBarPlacement.OnBar
+            
+            
+            onTriggered: {
+                //crude sanity check
+                if ( auth.text != "" && authmail.text !="" && authurl.text != "" && ccontent.text !="" && cstate.selectedValue != "" )
+                {
+                    ec_ci.body = "Making changes\nPlease wait...";
+                    ec_ci.open();
+                    wpu.editComment(ec_comment_id, cstate.selectedValue, ccontent.text, auth.text, authmail.text, authurl.text);
+                    wpu.dataReady_editComment.connect(ecp.ec_onDataReady);
+                }
+            }
+        }
+    ]
+    
+    attachedObjects: [
+        CustomIndicator {
+            id: ec_ci
+        }
+    ]
+
+    titleBar: TitleBar {
+        title: qsTr("Edit Comment")
+    }
+    
+    content: Container {
+        layout: DockLayout { }
+        
+        
+        
+        Container {
+            layout: StackLayout {
+                orientation: LayoutOrientation.TopToBottom
+            }
+            
+            topMargin: 25
+            bottomMargin: 25
+            rightMargin: 25
+            leftMargin: 25
+            topPadding: 25
+            bottomPadding: 25
+            rightPadding: 25
+            leftPadding: 25
+            
+            Label {
+                text: qsTr("Author");
+            }
+            TextField {
+                id: auth
+                text: (ec_cinfos) ? ec_cinfos.author : ""
+            }
+            Label {
+                text: qsTr("Author e-mail")
+            }
+            TextField {
+                id: authmail
+                text: (ec_cinfos) ? ec_cinfos.author_email : ""
+            }
+            Label {
+                text: qsTr("Author url")
+            }
+            TextField {
+                id: authurl
+                text: (ec_cinfos) ? ec_cinfos.author_url : ""
+            }
+            Label {
+                text: qsTr("content")
+            }
+            TextArea {
+                id: ccontent
+                preferredHeight: 200
+                text: (ec_cinfos) ? ec_cinfos.content : ""
+            }
+            Divider {
+            
+            }
+            DropDown {
+                id: cstate
+                title: qsTr("State")
+                
+                Option {
+                    value: "approve"
+                    text: qsTr("Approved")
+                    selected: (ec_cinfos) ? (value == ec_cinfos.status) : false
+                }
+                Option {
+                    value: "hold"
+                    text: qsTr("Waiting for approve")
+                    selected: (ec_cinfos) ? (value == ec_cinfos.status) : false
+                }
+                Option {
+                    value: "spam"
+                    text: qsTr("Spam")
+                    selected: (ec_cinfos) ? (value == ec_cinfos.status) : false
+                }
+            }
+            Divider {
+            
+            }
+        }
+        ActivityIndicator {
+            id: edind
+            horizontalAlignment: HorizontalAlignment.Center
+            verticalAlignment: VerticalAlignment.Bottom
+
+            preferredHeight: 500
+            preferredWidth: 500
+
+            running: true
+        }
+    }
+}
+
</ins></span></pre></div>
<a id="2013b0unc3trunkassetseditpostqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/editpost.qml (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/editpost.qml                            (rev 0)
+++ 2013/b0unc3/trunk/assets/editpost.qml       2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,168 @@
</span><ins>+import bb.cascades 1.0
+
+Page {
+    id: ep
+    
+    property string post_id;
+    property variant pinfos
+
+    property bool post_showpage: false
+    
+    onPost_idChanged: {
+        wpu.getPost(post_id);
+        wpu.dataReady_getPost.connect(ep.ep_onDataReady);
+    }
+    
+    function ep_onDataReady() {
+        var ep_a = wpu.getRes();
+        if (ep_a['delpost'] )
+        {
+               ci_ep.close();
+            if ( !post_showpage )
+            {
+                navpostpane.pop();
+                navpostpane.firstPage.post_loadData();
+            } else {
+                navpagepane.pop();
+                navpagepane.firstPage.post_loadData();
+            }
+        } else {
+            pinfos = ep_a;
+            epind.stop();
+        }
+    }
+    
+    attachedObjects: [
+        CustomIndicator {
+            id: ci_ep
+        }
+    ]
+    
+    actions: [
+        ActionItem {
+            title: "Edit"
+            imageSource: "asset:///images/save.png"
+            ActionBar.placement: ActionBarPlacement.OnBar
+            
+            onTriggered: {
+                if ( ptitle.text != "" && pcontent.text != "" && pstate.selectedValue != "" && pformat.selectedValue != "" )
+                {
+                                    ci_ep.body = "Editing post\nPlease wait...";
+                                    ci_ep.open();
+                                    wpu.editPost(ep.post_id,ptitle.text,pcontent.text,pstate.selectedValue, pformat.selectedValue);
+                                    wpu.dataReady_editPost.connect(ep.ep_onDataReady);
+                }
+            }
+        }
+    ]
+
+    titleBar: TitleBar {
+        title: (!post_showpage) ? qsTr("Edit Post") : qsTr("Edit Page")
+        
+    }
+
+    content: Container {
+        layout: DockLayout { }
+        
+        ActivityIndicator {
+            id: epind
+            horizontalAlignment: HorizontalAlignment.Center
+            verticalAlignment: VerticalAlignment.Bottom
+            
+            preferredHeight: 500
+            preferredWidth: 500
+            
+            running: true
+        }
+        
+        Container {
+            layout: StackLayout {
+                orientation: LayoutOrientation.TopToBottom
+            }
+            
+            topMargin: 15
+            topPadding: 15
+            bottomMargin: 15
+            bottomPadding: 15
+            rightMargin: 15
+            rightPadding: 15
+            leftMargin: 15
+            leftPadding: 15
+            
+            TextField {
+                id: ptitle
+                text: pinfos.post_title
+            }
+            TextArea {
+                id: pcontent
+                preferredHeight: 300
+                text: (pinfos) ? pinfos.post_content : ""
+            }
+            /*
+             * ***FIXME****
+             * to be implemented
+             TextField {
+             id: ptags
+             text: pinfos.name
+             }
+             */
+            Divider {
+                preferredHeight: 50
+            }
+            
+            DropDown {
+                id: pstate
+                title: qsTr("Status")
+                Option {
+                    text: qsTr("Public")
+                    value: "public"
+                    selected: (pinfos) ? (value == pinfos.post_status ) : false
+                }
+                Option {
+                    text: qsTr("Private")
+                    value: "private"
+                    selected: (pinfos) ? (value == pinfos.post_status ) : false
+                }
+            }
+            
+            
+            DropDown {
+                id: pformat
+                title: "Type"
+                visible: !post_showpage
+                selectedIndex: -1
+                Option {
+                    text: qsTr("Standard")
+                    value: "post"
+                    selected: (pinfos) ? (value == pinfos.post_type ) : false
+                }
+                Option {
+                    text: qsTr("Aside")
+                    value: "aside"
+                    selected: (pinfos) ? (value == pinfos.post_type ) : false
+                }
+                Option {
+                    text: qsTr("Image")
+                    value: "image"
+                    selected: (pinfos) ? (value == pinfos.post_type ) : false
+                }
+                Option {
+                    text: qsTr("Video")
+                    value: "video"
+                    selected: (pinfos) ? (value == pinfos.post_type ) : false
+                }
+                Option {
+                    text: qsTr("Quote")
+                    value: "quote"
+                    selected: (pinfos) ? (value == pinfos.post_type ) : false
+                }
+                Option {
+                    text: qsTr("Link")
+                    value: "link"
+                    selected: (pinfos) ? (value == pinfos.post_type ) : false
+                }
+            }
+        }
+    }
+}
+
</ins></span></pre></div>
<a id="2013b0unc3trunkassetsimagesaddpng"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/assets/images/add.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/assets/images/add.png
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/assets/images/add.png     2013-09-21 12:32:47 UTC (rev 2351)
</del><ins>+++ 2013/b0unc3/trunk/assets/images/add.png      2013-09-21 17:34:44 UTC (rev 2352)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/assets/images/add.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="2013b0unc3trunkassetsimagesaddimagepng"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/assets/images/addimage.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/assets/images/addimage.png
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/assets/images/addimage.png        2013-09-21 12:32:47 UTC (rev 2351)
</del><ins>+++ 2013/b0unc3/trunk/assets/images/addimage.png 2013-09-21 17:34:44 UTC (rev 2352)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/assets/images/addimage.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="2013b0unc3trunkassetsimagesapprovepng"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/assets/images/approve.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/assets/images/approve.png
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/assets/images/approve.png 2013-09-21 12:32:47 UTC (rev 2351)
</del><ins>+++ 2013/b0unc3/trunk/assets/images/approve.png  2013-09-21 17:34:44 UTC (rev 2352)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/assets/images/approve.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="2013b0unc3trunkassetsimagescommentspng"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/assets/images/comments.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/assets/images/comments.png
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/assets/images/comments.png        2013-09-21 12:32:47 UTC (rev 2351)
</del><ins>+++ 2013/b0unc3/trunk/assets/images/comments.png 2013-09-21 17:34:44 UTC (rev 2352)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/assets/images/comments.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="2013b0unc3trunkassetsimageseditpng"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/assets/images/edit.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/assets/images/edit.png
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/assets/images/edit.png    2013-09-21 12:32:47 UTC (rev 2351)
</del><ins>+++ 2013/b0unc3/trunk/assets/images/edit.png     2013-09-21 17:34:44 UTC (rev 2352)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/assets/images/edit.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="2013b0unc3trunkassetsimagesloadinggif"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/assets/images/loading.gif</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/assets/images/loading.gif
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/assets/images/loading.gif 2013-09-21 12:32:47 UTC (rev 2351)
</del><ins>+++ 2013/b0unc3/trunk/assets/images/loading.gif  2013-09-21 17:34:44 UTC (rev 2352)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/assets/images/loading.gif
</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="2013b0unc3trunkassetsimagesoverlaypng"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/assets/images/overlay.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/assets/images/overlay.png
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/assets/images/overlay.png 2013-09-21 12:32:47 UTC (rev 2351)
</del><ins>+++ 2013/b0unc3/trunk/assets/images/overlay.png  2013-09-21 17:34:44 UTC (rev 2352)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/assets/images/overlay.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="2013b0unc3trunkassetsimagespagespng"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/assets/images/pages.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/assets/images/pages.png
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/assets/images/pages.png   2013-09-21 12:32:47 UTC (rev 2351)
</del><ins>+++ 2013/b0unc3/trunk/assets/images/pages.png    2013-09-21 17:34:44 UTC (rev 2352)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/assets/images/pages.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="2013b0unc3trunkassetsimagespostspng"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/assets/images/posts.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/assets/images/posts.png
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/assets/images/posts.png   2013-09-21 12:32:47 UTC (rev 2351)
</del><ins>+++ 2013/b0unc3/trunk/assets/images/posts.png    2013-09-21 17:34:44 UTC (rev 2352)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/assets/images/posts.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="2013b0unc3trunkassetsimagesrefreshpng"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/assets/images/refresh.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/assets/images/refresh.png
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/assets/images/refresh.png 2013-09-21 12:32:47 UTC (rev 2351)
</del><ins>+++ 2013/b0unc3/trunk/assets/images/refresh.png  2013-09-21 17:34:44 UTC (rev 2352)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/assets/images/refresh.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="2013b0unc3trunkassetsimagesreplypng"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/assets/images/reply.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/assets/images/reply.png
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/assets/images/reply.png   2013-09-21 12:32:47 UTC (rev 2351)
</del><ins>+++ 2013/b0unc3/trunk/assets/images/reply.png    2013-09-21 17:34:44 UTC (rev 2352)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/assets/images/reply.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="2013b0unc3trunkassetsimagessavepng"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/assets/images/save.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/assets/images/save.png
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/assets/images/save.png    2013-09-21 12:32:47 UTC (rev 2351)
</del><ins>+++ 2013/b0unc3/trunk/assets/images/save.png     2013-09-21 17:34:44 UTC (rev 2352)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/assets/images/save.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="2013b0unc3trunkassetsimagesspampng"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/assets/images/spam.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/assets/images/spam.png
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/assets/images/spam.png    2013-09-21 12:32:47 UTC (rev 2351)
</del><ins>+++ 2013/b0unc3/trunk/assets/images/spam.png     2013-09-21 17:34:44 UTC (rev 2352)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/assets/images/spam.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="2013b0unc3trunkassetsimagesunapprovepng"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/assets/images/unapprove.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/assets/images/unapprove.png
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/assets/images/unapprove.png       2013-09-21 12:32:47 UTC (rev 2351)
</del><ins>+++ 2013/b0unc3/trunk/assets/images/unapprove.png        2013-09-21 17:34:44 UTC (rev 2352)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/assets/images/unapprove.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="2013b0unc3trunkassetsimageswplogopng"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/assets/images/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/images/wplogo.png
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/assets/images/wplogo.png  2013-09-21 12:32:47 UTC (rev 2351)
</del><ins>+++ 2013/b0unc3/trunk/assets/images/wplogo.png   2013-09-21 17:34:44 UTC (rev 2352)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/assets/images/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="2013b0unc3trunkassetsmainqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/main.qml (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/main.qml                                (rev 0)
+++ 2013/b0unc3/trunk/assets/main.qml   2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,225 @@
</span><ins>+/*
+ * main.qml
+ *
+ *      Author: Daniele (b0unc3) Maio
+ */
+
+import bb.cascades 1.0
+import bb.system 1.0
+
+TabbedPane {
+    id: tabbedPane
+    showTabsOnActionBar: false
+    peekEnabled: false
+
+    Menu.definition: MenuDefinition {
+        actions: [
+            ActionItem {
+                title: qsTr("Change blog");
+                enabled: wpu.blogsInfo(); 
+                
+                onTriggered: {
+                    bsdo.open();
+                }
+            }
+        ]
+    
+    }
+    attachedObjects: [
+        BlogsSelectionDialog {
+            id: bsdo
+        },
+        ComponentDefinition {
+            id: postsList
+            source: "postslist.qml"
+        },
+        ComponentDefinition {
+            id: loginPage
+            source: "Login.qml"
+        },
+        ComponentDefinition {
+            id: blogsList
+            source: "blogslist.qml"
+        },
+        ComponentDefinition {
+            id: commentsList
+            source: "commentslist.qml"
+        },
+        ComponentDefinition {
+            id: pagesList
+            source: "pageslist.qml"
+        }
+    ]
+    
+    onCreationCompleted: {
+        if (  wpu.info_registered() )
+        {
+               tabbedPane.activeTab = postsTab;
+
+               tabbedPane.remove(loginregisterTab);
+               tabbedPane.showTabsOnActionBar = false;
+               tabbedPane.peekEnabled = true;
+
+               var newPage = postsList.createObject();
+               navpostpane.push(newPage);
+               newPage.post_loadData();
+        } else console.log("no info registered");
+    }
+    Tab {
+        id: loginregisterTab
+        NavigationPane {
+            id: navigationPane
+            peekEnabled: false
+            backButtonsVisible: false
+            
+            onCreationCompleted: {
+                var page = loginPage.createObject();
+                navigationPane.push(page);
+            }
+            
+            onPopTransitionEnded: {
+                if ( firstPage ) 
+                       firstPage.destroy();
+                
+                if ( page )
+                       page.destroy();
+                //plp.loadData();
+
+                
+                
+                tabbedPane.activeTab = postsTab;
+                
+                tabbedPane.remove(loginregisterTab);
+                tabbedPane.showTabsOnActionBar = false;
+                tabbedPane.peekEnabled = true;
+
+                var newPage = postsList.createObject();
+                navpostpane.push(newPage);
+                newPage.post_loadData();
+
+            }
+        }
+    }
+    Tab {
+        id: postsTab
+        title: qsTr("Posts")
+        imageSource: "asset:///images/posts.png"
+
+        NavigationPane {
+            id: navpostpane
+
+            onPopTransitionEnded: {
+                if ( page )
+                       page.destroy();
+                       
+                if (navpostpane.firstPage) {
+                    console.log("first page is here ");
+                    navpostpane.firstPage.post_restoreItems()
+                } else {
+                    var p = postsList.createObject();
+                    navpostpane.push(p);
+                    p.post_loadData();
+
+                }
+            }
+
+        }
+
+        onTriggered: {
+            if (navpostpane.count() == 0) {
+                var newPage = postsList.createObject();
+                navpostpane.push(newPage);
+                newPage.post_loadData();
+            } else { 
+                if ( navpostpane.firstPage )
+                {
+                       navpostpane.firstPage.post_loadData();
+                } else {
+                       var p = postsList.createObject();
+                       navpostpane.push(p);
+                       p.post_loadData();
+                }
+            }
+            
+        }
+    }
+    
+    Tab {
+        id: commentsTab
+        title: qsTr("Comments")
+        imageSource: "asset:///images/comments.png"
+        
+        NavigationPane {
+            id: navcommentspane
+            
+            onPopTransitionEnded: {
+                if ( page )
+                       page.destroy();
+                       
+                if (navcommentspane.firstPage )
+                {
+                    navcommentspane.firstPage.comment_restoreItems()
+                } else {
+                    var p = commentsList.createObject();
+                    navcommentspane.push(p);
+                }
+            }
+            
+        }
+
+        onTriggered: {
+            if ( navcommentspane.count() == 0 )
+            {
+               var newPage = commentsList.createObject();
+               navcommentspane.push(newPage);
+            } else {
+                navcommentspane.firstPage.comment_init();
+            }
+        }
+        
+    }
+    Tab {
+        id: pagesTab
+        title: qsTr("Pages")
+        imageSource: "asset:///images/pages.png"
+
+        NavigationPane {
+            id: navpagepane
+
+            onPopTransitionEnded: {
+                if (page) page.destroy();
+
+                if (navpagepane.firstPage) {
+                    navpagepane.firstPage.post_restoreItems()
+                } else {
+                    var p = postsList.createObject();
+                    p.post_showpage = true;
+                    navpagepane.push(p);
+                    p.post_loadData();
+                }
+            }
+
+        }
+
+        onTriggered: {
+            if (navpagepane.count() == 0) {
+                var newPage = postsList.createObject();
+                newPage.post_showpage = true;
+                navpagepane.push(newPage);
+                newPage.post_loadData();
+            } else { //}if ( navpostpane.firstPage ){
+                if (navpagepane.firstPage) {
+                    navpagepane.firstPage.post_loadData();
+                } else {
+                    var p = postsList.createObject();
+                    p.post_showpage = true;
+                    navpagepane.push(p);
+                    //p.restoreItems()
+                    p.post_loadData();
+                }
+            }
+
+        }
+    }
+}
+
</ins></span></pre></div>
<a id="2013b0unc3trunkassetsmakePostqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/makePost.qml (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/makePost.qml                            (rev 0)
+++ 2013/b0unc3/trunk/assets/makePost.qml       2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,182 @@
</span><ins>+/*
+ * makePost.qml
+ *
+ *      Author: Daniele (b0unc3) Maio
+ */
+
+import bb.cascades 1.0
+import bb.system 1.0
+import bb.cascades.pickers 1.0
+
+Page {
+    id: mp_mpp
+
+    property bool post_showpage: false
+
+    attachedObjects: [
+        CustomIndicator {
+            id: mp_ci
+        },
+        SystemProgressToast {
+            id: mp_spt
+            progress: -1
+            body: qsTr("Creating the new post, please wait");
+            state: SystemUiProgressState.Active
+        },
+        FilePicker {
+            id: mp_filePicker
+            type: FileType.Picture
+            title: qsTr("Select Picture")
+            mode: FilePickerMode.Picker
+            onFileSelected: {
+               wpu.uploadFile(selectedFiles[0]);
+                wpu.dataReady.connect(mp_mpp.mp_onDataReady);
+                mp_ci.body = "Uploading picture\nplease wait...";
+                mp_ci.open();
+            }
+        }
+    ]
+    
+    actions: [
+        ActionItem {
+            title: "Save"
+            imageSource: "asset:///images/save.png"
+            ActionBar.placement: ActionBarPlacement.OnBar
+            
+            onTriggered: {
+                mp_ci.body = "Creating the new post\nplaease wait...";
+                mp_ci.open();
+                wpu.makePost(post_showpage, posttitle.text, postcontent.text.trim(), ((posttype.selectedValue) ? posttype.selectedValue : "" ) , poststatus.selectedValue);
+                wpu.dataReady_newPost.connect(mp_mpp.mp_onDataReady);
+            }
+        },
+        ActionItem {
+            title: qsTr("Add Image");
+            imageSource: "asset:///images/addimage.png"
+            ActionBar.placement: ActionBarPlacement.OnBar
+            
+            onTriggered: {
+                mp_filePicker.open();
+            }
+        }
+        
+    ]
+    
+    function mp_onDataReady()
+    {
+        var mp_a = wpu.getRes();
+        
+        if (mp_a['newpostid'] )
+        {
+            mp_ci.close();
+            if ( !post_showpage )
+            {
+               navpostpane.pop();
+               navpostpane.firstPage.post_loadData();
+            } else {
+                navpagepane.pop();
+                navpagepane.firstPage.post_loadData();
+            }
+        } else if (mp_a['file'] )
+        {
+            postcontent.editor.insertPlainText("<img src=\"" + mp_a['url'] + "\" alt=\"desc\" />"); // width=\"480\" height=\"800\" class=\"aligncenter\" />");
+            mp_ci.close();
+        } else console.log("wrg : smtg wrong"); /* TODO */
+    }
+
+
+    titleBar: TitleBar {
+        title: (!post_showpage) ? qsTr("New Post") : qsTr("New Page")
+    }
+
+    content: Container {
+        layout: StackLayout { }
+
+        TextField {
+            horizontalAlignment: HorizontalAlignment.Fill
+            id: posttitle
+
+            hintText: qsTr("Post Title");
+        }
+        
+        TextArea {
+            id: postcontent
+            editable: true
+            hintText: qsTr("Post Content");
+            
+            minHeight: 150
+            preferredHeight: 400
+        }
+        Divider {
+            
+        
+        }
+        /*
+        TextField {
+            horizontalAlignment: HorizontalAlignment.Fill
+            id: posttags
+            hintText: qsTr("Post tags (Separate tags with commas)");
+        }
+        
+        
+        
+         * ***FIXME***
+         * not yet fully implemented
+        Button {
+            text: qsTr("Categories")
+            
+            onClicked: {
+                customdialogcat.open();
+            }
+        }
+*/
+        
+        DropDown {
+            id: poststatus
+            title: qsTr("Status");
+            Option {
+                text: qsTr("Public");
+                value: "public"
+                selected: true
+            }
+            Option {
+                text: qsTr("Private");
+                value: "private"
+            }
+        }
+        
+        DropDown {
+            id: posttype
+            title: qsTr("Format");
+            visible: !post_showpage
+            
+            Option {
+                text: qsTr("Standard");
+                value: "post"
+                selected: true
+            }
+            Option {
+                text: qsTr("Aside");
+                value: "aside"
+            }
+            Option {
+                text: qsTr("Image");
+                value: "image"
+            }
+            Option {
+                text: qsTr("Video");
+                value: "video"
+            }
+            Option {
+                text: qsTr("Quote");
+                value: "quote"
+            }
+            Option {
+                text: qsTr("Link");
+                value: "link"
+            }
+        }
+
+    }
+}
+
</ins></span></pre></div>
<a id="2013b0unc3trunkassetspageslistqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/pageslist.qml (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/pageslist.qml                           (rev 0)
+++ 2013/b0unc3/trunk/assets/pageslist.qml      2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,169 @@
</span><ins>+/*
+ * pageslist.qml
+ *
+ *      Author: Daniele (b0unc3) Maio
+ */
+
+import bb.cascades 1.0
+import bb.system 1.0
+
+Page {
+    id: plp
+
+    function init()
+    {
+       if ( !pslind.running )
+               pslind.start();
+               
+       if ( pListView.dataModel )
+               pListView.setDataModel(null);
+       
+        wpu.getPosts(true);
+        wpu.dataReady_getPosts.connect(plp.onDataReady);
+    }
+
+    function onDataReady() {
+        var a = wpu.getRes();
+
+        if (a["ERROR"]) {
+           // myQmlToast.show();
+            console.log("ERRORE");
+            // wpu.resetRes();
+        } else if ( a['delpost'] ) {
+            if (a["delpost"] == 1) {
+                deldialog.cancel();
+                pslind.stop();
+            } else console.log("fail to delete the page!");
+        } else {
+           pListView.setDataModel(wpu.setModel("mystr"));
+            pslind.stop();
+        }
+
+    }
+
+    titleBar: TitleBar {
+        title: "Pages"
+    }
+
+    actions: [
+        ActionItem {
+            title: "New"
+            imageSource: "asset:///images/add.png"
+            ActionBar.placement: ActionBarPlacement.InOverflow
+
+        },
+        ActionItem {
+            title: "Refresh"
+            imageSource: "asset:///images/refresh.png"
+
+            ActionBar.placement: ActionBarPlacement.InOverflow
+            
+            onTriggered: {
+                plp.init();
+            }
+        }
+    ]
+    
+    attachedObjects: [
+        SystemDialog {
+            property string paid
+            id: delDialog
+            title: qsTr("DELETE PAGE")
+            body: qsTr("Are you sure to delete this page?")
+            confirmButton.label: qsTr("Yes")
+            confirmButton.enabled: true
+            cancelButton.label: qsTr("Cancel")
+            cancelButton.enabled: true
+            onFinished: {
+                var x = result;
+                if (x == SystemUiResult.ConfirmButtonSelection) {
+                    delprog.body = "Deleting comment\nPlease wait...";
+                    delprog.open();
+                    pslind.start();
+                    wpu.deletePost(paid);
+                    wpu.dataReady_delPost.connect(cp.onDataReady);
+                } else if (x == SystemUiResult.CancelButtonSelection) {
+                    console.log("cancel");
+                }
+            }
+        }
+    ]
+
+    content: Container {
+        layout: DockLayout {
+        }
+
+        ActivityIndicator {
+            id: pslind
+            horizontalAlignment: HorizontalAlignment.Center
+            verticalAlignment: VerticalAlignment.Center
+
+            preferredHeight: 500
+            preferredWidth: 500
+
+            running: true
+        }
+
+        Container {
+            layout: StackLayout {
+            }
+
+            ListView {
+                id: pListView
+                
+                function deletePage(id)
+                {
+                    delDialog.paid = id
+                    delDialog.show();
+                }
+
+                listItemComponents: [
+                    ListItemComponent {
+                        type: "item"
+                        id: listItemContainer
+
+                        StandardListItem {
+                            id: psli
+                            
+                            textFormat: TextFormat.Html
+                            title: ListItemData.post_title
+                            description: ListItemData.post_date
+                            status: ListItemData.post_status
+                            imageSpaceReserved: false
+
+                            contextActions: [
+                                ActionSet {
+                                    title: ListItemData.title
+                                    ActionItem {
+                                        title: "Edit"
+                                        imageSource: "asset:///images/edit.png";
+                                        onTriggered: {
+
+                                        }
+                                    }
+                                    DeleteActionItem {
+                                        title: "Delete"
+                                        
+                                        onTriggered: {
+                                            psli.ListItem.view.deletePage(psli.ListItem.page_id);
+                                        }
+
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                ]
+                onTriggered: {
+                    var selectedItem = pListView.dataModel.data(indexPath);
+                }
+            } // end of pListView
+        }
+    }
+
+    onCreationCompleted: {
+        if (! pListView.dataModel) 
+               plp.init();
+
+    }
+}
</ins></span></pre></div>
<a id="2013b0unc3trunkassetspostslistqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/postslist.qml (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/postslist.qml                           (rev 0)
+++ 2013/b0unc3/trunk/assets/postslist.qml      2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,226 @@
</span><ins>+/*
+ * postslist.qml
+ *
+ *      Author: Daniele (b0unc3) Maio
+ */
+
+import bb.cascades 1.0
+import bb.system 1.0
+
+Page {
+    id: post_plp
+
+    property bool post_showpage: false
+    property variant post_savemodel;
+
+    function post_restoreItems()
+    {
+        if ( post_savemodel )
+        {
+               post_plListView.setDataModel(null);
+               post_plListView.setDataModel(post_savemodel);
+        } else {
+            post_plp.post_loadData();
+        }
+    }
+
+    function post_loadData() {
+        if (post_plListView.dataModel) //plListView.dataModel.clear();
+               post_plListView.setDataModel(null);
+
+        post_plind.start();
+        wpu.getPosts(post_showpage);
+        wpu.dataReady_getPosts.connect(post_plp.post_onDataReady);
+    }
+
+    function post_onDataReady(val) {
+        var post_pa = wpu.getRes();
+
+        if (post_pa["ERROR"]) {
+            //myQmlToast.show();
+            console.log("ERRORE");
+            // wpu.resetRes();
+        } else if (post_pa["delpost"]) {
+            if (post_pa["delpost"] == 1) {
+                post_delDialog.cancel();
+                post_ci_pl.close();
+                post_plp.post_loadData();
+            } else console.log("delete fail");
+
+        } else {
+            post_plListView.setDataModel(wpu.setModel("post_mystr"));
+            post_plind.stop();
+        }
+
+    }
+
+    titleBar: TitleBar {
+        title: (!post_plp.post_showpage ) ? "Posts" : "Pages"
+    }
+
+    attachedObjects: [
+        ComponentDefinition {
+            id: post_showPost
+            source: "showPost.qml"
+        },
+        ComponentDefinition {
+            id: post_makePost
+            source: "makePost.qml"
+        },
+        ComponentDefinition {
+            id: post_editPost
+            source: "editpost.qml"
+        },
+        CustomIndicator {
+            id: post_ci_pl
+        },
+        SystemProgressToast { //<--to be removed?
+            id: post_delprog
+            progress: -1
+            body: qsTr("Deleting post, please wait")
+            state: SystemUiProgressState.Active
+        },
+        SystemDialog {
+            property string ptitle
+            property string pid
+            id: post_delDialog
+            title: qsTr("DELETE POST")
+            body: qsTr("Are you sure to delete post \"" + ptitle + "\" ?");
+            //id = " + pid)
+            
+            confirmButton.label: qsTr("Yes")
+            confirmButton.enabled: true
+            cancelButton.label: qsTr("Cancel")
+            cancelButton.enabled: true
+            onFinished: {
+                var x = result;
+                console.log(post_delDialog.error);
+                if (x == SystemUiResult.ConfirmButtonSelection) {
+                    post_ci_pl.body = "Deleting post \"" + ptitle + "\" \nPlease wait...";
+                    post_ci_pl.open();
+                    wpu.deletePost(pid);
+                    wpu.dataReady_delPost.connect(post_plp.post_onDataReady);
+                } else if (x == SystemUiResult.CancelButtonSelection) {
+                    console.log("cancel");
+                }
+            }
+        }
+    ]
+
+    actions: [
+        ActionItem {
+            title: "New"
+            imageSource: "asset:///images/add.png"
+            ActionBar.placement: ActionBarPlacement.InOverflow
+
+            onTriggered: {
+                post_savemodel = post_plListView.dataModel;
+                var newPage = post_makePost.createObject();
+                newPage.post_showpage = post_plp.post_showpage
+                if (post_plp.post_showpage) 
+                       navpagepane.push(newPage);
+                else navpostpane.push(newPage);
+            }
+        },
+        ActionItem {
+            title: "Refresh"
+            imageSource: "asset:///images/refresh.png"
+
+            ActionBar.placement: ActionBarPlacement.InOverflow
+
+            onTriggered: {
+                post_plp.post_loadData();
+            }
+        }
+    ]
+
+    content: Container {
+        layout: DockLayout {
+        }
+
+        ActivityIndicator {
+            id: post_plind
+            horizontalAlignment: HorizontalAlignment.Center
+            verticalAlignment: VerticalAlignment.Center
+
+            preferredHeight: 500
+            preferredWidth: 500
+
+            running: true
+        }
+
+        Container {
+            layout: StackLayout {
+            }
+
+            ListView {
+                id: post_plListView
+
+                listItemComponents: [
+                    ListItemComponent {
+                        type: "item"
+                        id: post_listItemContainer
+
+                        StandardListItem {
+                            id: post_sli
+                            property variant internalWpu
+                            textFormat: TextFormat.Html
+                            title: ListItemData.post_title
+                            description: ListItemData.date //post_date
+                            status: ListItemData.post_status
+                            imageSpaceReserved: false
+
+                            contextActions: [
+                                ActionSet {
+                                    title: ListItemData.post_title
+                                    ActionItem {
+                                        title: "Edit"
+                                        imageSource: "asset:///images/edit.png"
+                                        onTriggered: {
+                                            post_sli.ListItem.view.post_goEdit(ListItemData.post_id);
+                                        }
+                                    }
+                                    DeleteActionItem {
+                                        title: "Delete"
+                                        onTriggered: {
+                                            post_sli.ListItem.view.post_goToDel(ListItemData.post_id, ListItemData.post_title)
+                                        }
+
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                ]
+                function post_goToDel(id, title) {
+                    post_delDialog.pid = id;
+                    post_delDialog.ptitle = title;
+                    post_delDialog.show();
+                }
+                function post_goEdit(id) {
+                    post_savemodel = post_plListView.dataModel;
+                    var p = post_editPost.createObject();
+                    p.post_id = id;
+                    p.post_showpage = post_plp.post_showpage;
+                    if (post_plp.post_showpage) 
+                       navpagepane.push(p)
+                    else navpostpane.push(p);
+                }
+                onTriggered: {
+                    post_savemodel = post_plListView.dataModel;
+                    var selectedItem = post_plListView.dataModel.data(indexPath);
+                    var newPage = post_showPost.createObject();
+                    newPage.post_show_page = post_plp.post_showpage;
+                    newPage.sp_apostid = selectedItem.post_id;
+                    if ( post_plp.post_showpage )
+                       navpagepane.push(newPage)
+                    else navpostpane.push(newPage);
+                }
+            } // end of plListView
+
+        }
+
+    }
+    
+}
+
</ins></span></pre></div>
<a id="2013b0unc3trunkassetsshowPostqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/showPost.qml (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/showPost.qml                            (rev 0)
+++ 2013/b0unc3/trunk/assets/showPost.qml       2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,156 @@
</span><ins>+/*
+ * showPost.qml
+ *
+ *      Author: Daniele (b0unc3) Maio
+ */
+
+import bb.cascades 1.0
+
+Page {
+    
+    id: sp
+    
+    property string sp_postid
+    property alias sp_apostid: sp.sp_postid
+    property variant sp_myObj
+    
+    property bool post_show_page: false
+    property bool show_img: false
+    
+    onSp_postidChanged: {
+        wpu.getPost(sp.sp_postid);
+        wpu.dataReady_getPost.connect(sp.sp_onDataReady);
+    }
+    
+    function sp_onDataReady() {
+        //aspe`
+        sp_myObj = wpu.getRes();
+        if ( sp_myObj.post_content.indexOf("img") != -1 )
+               show_img = true;
+               
+        
+        spind.stop();
+        
+        cnt.text = getLabelText();
+        webView.html = getWebViewText();
+    }
+    
+    function getLabelText()
+    {
+        var res = "";
+        if ( sp_myObj )
+        {
+            if ( !show_img )
+               return "<html>" + sp_myObj.post_content + "</html>"
+        }
+        
+        return res
+    }
+    
+    function getWebViewText() {
+        var res = "";
+        if (sp_myObj) {
+            if ( show_img )
+               return "<html><span style='font-size:60pt'>" + sp_myObj.post_content + "</span></html>"
+        }
+               
+        return res
+    }
+        
+    actionBarVisibility: ChromeVisibility.Visible
+    
+    
+    
+    titleBar: TitleBar {
+        title: (sp_myObj) ? sp_myObj.post_title : ""
+    }
+    content: Container {
+        layout: DockLayout { }
+        
+        ActivityIndicator {
+            id: spind
+            horizontalAlignment: HorizontalAlignment.Center
+            verticalAlignment: VerticalAlignment.Center
+            
+            preferredHeight: 500
+            preferredWidth: 500
+            
+            running: true
+        }
+        
+        Container {
+            layout: StackLayout { }
+
+            topMargin: 15
+            bottomMargin: 15
+            leftMargin: 15
+            rightMargin: 15
+            topPadding: 15
+            bottomPadding: 15
+            rightPadding: 15
+            leftPadding: 15
+
+            ScrollView {
+                id: scrollView
+
+                topMargin: 30
+                bottomMargin: 30
+                leftMargin: 30
+                rightMargin: 30
+                /*
+                scrollViewProperties {
+                    scrollMode: ScrollMode.Both
+                    pinchToZoomEnabled: true
+                    maxContentScale: 5
+                    minContentScale: 1
+                }
+                
+                layoutProperties: StackLayoutProperties {
+                    spaceQuota: 1.0
+                }*/
+                
+                Label {
+                    topMargin: 30
+                    bottomMargin: 30
+                    leftMargin: 30
+                    rightMargin: 30
+                    id: cnt
+                    multiline: true
+                    textFormat: TextFormat.Html
+                    textStyle.base: SystemDefaults.TextStyles.BodyText
+                    text: getLabelText(); 
+                    visible: !show_img
+                }
+            }
+            ScrollView {
+                id: scrollView_wv
+
+                topMargin: 30
+                bottomMargin: 30
+                leftMargin: 30
+                rightMargin: 30
+                /*
+                 * scrollViewProperties {
+                 * scrollMode: ScrollMode.Both
+                 * pinchToZoomEnabled: true
+                 * maxContentScale: 5
+                 * minContentScale: 1
+                 * }
+                 * 
+                 * layoutProperties: StackLayoutProperties {
+                 * spaceQuota: 1.0
+                 * }*/
+                WebView {
+                    id: webView
+                    html: getWebViewText()
+                        //((show_img) ? ((post_show_page) ? sp_myObj.description : ((sp_myObj) ? "<html>" + sp_myObj.post_content + "</html>" : "")) : "")
+                    //(show_img) ? ((sp_myObj) ? "<html>" + sp_myObj.post_content + "</html>" : "") : "";
+                    visible: show_img
+                    
+                }
+            }
+                
+        }
+    }
+}
+
</ins></span></pre></div>
<a id="2013b0unc3trunkassetsviewcommentqml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/assets/viewcomment.qml (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/assets/viewcomment.qml                         (rev 0)
+++ 2013/b0unc3/trunk/assets/viewcomment.qml    2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,101 @@
</span><ins>+/*
+ * viewcomment.qml
+ *
+ *      Author: Daniele (b0unc3) Maio
+ */
+
+import bb.cascades 1.0
+
+Page {
+    id: vcp
+    
+    property string vc_cid;
+    property variant vc_infos;
+    
+    onVc_cidChanged: {
+        wpu.getComment(vcp.vc_cid);
+        wpu.dataReady_getComment.connect(vcp.vc_onDataReady);
+    }
+    
+    function vc_onDataReady()
+    {
+            var vc_a = wpu.getRes();
+            vc_infos = vc_a;
+            vcind.stop();
+    }
+    
+    content: Container {
+        horizontalAlignment: HorizontalAlignment.Center
+        verticalAlignment: VerticalAlignment.Top
+        layout: DockLayout { }
+        ActivityIndicator {
+            id: vcind
+            horizontalAlignment: HorizontalAlignment.Center
+            verticalAlignment: VerticalAlignment.Center
+            
+            preferredHeight: 500
+            preferredWidth: 500
+            
+            running: true
+        }
+        Container {
+            layout: StackLayout {
+                orientation: LayoutOrientation.TopToBottom
+            }
+            
+            topPadding: 25
+            bottomPadding: 25
+            rightPadding: 25
+            leftPadding: 25
+            
+            Label {
+                id: auth
+                text: ( vc_infos ) ? vc_infos.author : ""
+                
+                textStyle.base: SystemDefaults.TextStyles.BodyText
+            }
+            Label {
+                id: authmail
+                text: (vc_infos ) ?  "<html><a href=\""+vc_infos.author_email+"\">" + vc_infos.author_email + "</a></html>" : ""
+                
+                textFormat: TextFormat.Html
+                textStyle.base: SystemDefaults.TextStyles.SubtitleText
+            }
+            Label {
+                id: authurl
+                text: (vc_infos ) ?  "<html><a href=\"" + vc_infos.author_url + "\">" + vc_infos.author_url + "</a></html>" : ""
+                
+                textFormat: TextFormat.Html
+                textStyle.base: SystemDefaults.TextStyles.SubtitleText
+            }
+            Label {
+                id: dc
+                text: ( vc_infos ) ? vc_infos.date  : ""
+                
+                textStyle.base: SystemDefaults.TextStyles.SmallText
+            }
+            Label {
+                id: pt
+                text: ( vc_infos ) ? vc_infos.post_title : ""
+                
+                textFormat: TextFormat.Html
+                textStyle.base: SystemDefaults.TextStyles.TitleText
+            }
+            Divider {
+                horizontalAlignment: HorizontalAlignment.Fill
+                preferredHeight: 50
+            }
+            Label {
+                id: cont
+                text: ( vc_infos ) ? vc_infos.content : ""
+                multiline: true
+                
+                textFormat: TextFormat.Html
+                textStyle.base: SystemDefaults.TextStyles.BodyText
+            }
+        }
+    }
+
+
+}
+
</ins></span></pre></div>
<a id="2013b0unc3trunkassetswpbb10db"></a>
<div class="binary"><h4>Added: 2013/b0unc3/trunk/assets/wpbb10.db</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: 2013/b0unc3/trunk/assets/wpbb10.db
</span><span class="cx">===================================================================
</span><del>--- 2013/b0unc3/trunk/assets/wpbb10.db  2013-09-21 12:32:47 UTC (rev 2351)
</del><ins>+++ 2013/b0unc3/trunk/assets/wpbb10.db   2013-09-21 17:34:44 UTC (rev 2352)
</ins><span class="cx">Property changes on: 2013/b0unc3/trunk/assets/wpbb10.db
</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="delfile"><h4>Deleted: 2013/b0unc3/trunk/bar-descriptor.xml (2351 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/bar-descriptor.xml     2013-09-21 12:32:47 UTC (rev 2351)
+++ 2013/b0unc3/trunk/bar-descriptor.xml        2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -1,111 +0,0 @@
</span><del>-<?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/images/wplogo.png">assets/wplogo.png</asset>
-    <!-- <asset path="assets/images/rotate.png">assets/refresh.png</asset> -->
-    <asset path="assets/images/posts.png">assets/posts.png</asset>
-    
-    <!-- Request permission to execute native code.  Required for native applications. -->
-    <permission system="true">run_native</permission>
-    <permission>access_shared</permission>
-    <permission>access_internet</permission>
-    <permission>use_camera</permission>
-    <env var="LD_LIBRARY_PATH" value="app/native/lib:/usr/lib/qt4/lib"/>
-
-</qnx>
</del></span></pre></div>
<a id="2013b0unc3trunkbardescriptorxml"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/bar-descriptor.xml (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/bar-descriptor.xml                             (rev 0)
+++ 2013/b0unc3/trunk/bar-descriptor.xml        2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,113 @@
</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>WordPress</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>WordPress</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 WordPress mobile app for BlackBerry 10 devices.</description>
+
+    <!-- Copyright information. Optional. -->
+    <!-- <copyright></copyright> -->
+
+    <!--  Name of author which is used for signing. Must match the developer name of your development certificate. -->
+    <author>Daniele (b0unc3) Maio</author>
+    <authorId>gYAAgDgPZJ7fUOQgacNxC0t_Vyw</authorId>
+    
+    <!--  Unique author ID assigned by signing authority. Required if using debug tokens. -->
+    <!-- <authorId>ABC1234YjsnUk235h</authorId> -->
+   
+    <initialWindow>
+        <aspectRatio>portrait</aspectRatio>
+        <autoOrients>false</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/images/wplogo.png">assets/wplogo.png</asset>
+    <!-- <asset path="assets/images/rotate.png">assets/refresh.png</asset> -->
+    <asset path="assets/images/posts.png">assets/posts.png</asset>
+    
+    <!-- Request permission to execute native code.  Required for native applications. -->
+    <permission system="true">run_native</permission>
+    <permission>access_shared</permission>
+    <permission>access_internet</permission>
+    <permission>use_camera</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="delfile"><h4>Deleted: 2013/b0unc3/trunk/config.pri (2351 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/config.pri     2013-09-21 12:32:47 UTC (rev 2351)
+++ 2013/b0unc3/trunk/config.pri        2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -1,58 +0,0 @@
</span><del>-# 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)
</del></span></pre></div>
<a id="2013b0unc3trunkconfigpri"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/config.pri (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/config.pri                             (rev 0)
+++ 2013/b0unc3/trunk/config.pri        2013-09-21 17:34:44 UTC (rev 2352)
</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>Deleted: 2013/b0unc3/trunk/icon.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></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-09-21 12:32:47 UTC (rev 2351)
</del><ins>+++ 2013/b0unc3/trunk/icon.png   2013-09-21 17:34:44 UTC (rev 2352)
</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="delfile"><h4>Deleted: 2013/b0unc3/trunk/precompiled.h (2351 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/precompiled.h  2013-09-21 12:32:47 UTC (rev 2351)
+++ 2013/b0unc3/trunk/precompiled.h     2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -1,2 +0,0 @@
</span><del>-// 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. 
</del></span></pre></div>
<a id="2013b0unc3trunkprecompiledh"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/precompiled.h (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/precompiled.h                          (rev 0)
+++ 2013/b0unc3/trunk/precompiled.h     2013-09-21 17:34:44 UTC (rev 2352)
</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 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/src/WPUtils.cpp                                (rev 0)
+++ 2013/b0unc3/trunk/src/WPUtils.cpp   2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,1280 @@
</span><ins>+/*
+ * WPUtils.cpp
+ *
+ *      Author: Daniele (b0unc3) Maio
+ */
+
+#include "WPUtils.h"
+
+
+const QString WPUtils::dbName = "wpbb10.db";
+
+WPUtils::WPUtils(QObject *parent)
+{
+       _position = 0; // <<== WTF?
+       _info_registered = true;
+       _db = QSqlDatabase::addDatabase("QSQLITE");
+       _db.setDatabaseName(QDir::currentPath() + "/app/native/assets/"+ dbName);
+       if (!_db.open())
+       {
+                       _info_registered = false;
+                       /* FIXIT */
+       }
+       if (!info_registered())
+               _info_registered = false;
+       else {
+               getRegisteredData();
+       }
+}
+WPUtils::~WPUtils() {
+       // TODO Auto-generated destructor stub
+       _db.close();
+}
+
+void WPUtils::getRegisteredData()
+{
+       QSqlQuery q(_db);
+       q.exec("SELECT * FROM userinfo");
+       /*
+        * table structure:
+        * id,username,password,blogid,xmlrp
+        *
+        * blogid - xmlrpc  <= multiple item separated by comma
+        * TODO = create another table and link with foreign key
+        */
+       //for sure there is only - 1 - record
+       q.next();
+       _username = q.value(2).toString();
+       _password = q.value(3).toString();
+       QString bi = q.value(0).toString();
+       QString xr = q.value(4).toString();
+
+       QStringList bis = bi.split(",");
+       QStringList xrs = xr.split(",");
+       _blogid = bis.at(0);
+       _endpoint = xrs.at(0);
+
+
+}
+
+bool WPUtils::info_registered()
+{
+       SqlDataAccess sda(QDir::currentPath() + "/app/native/assets/wpbb10.db");
+       QVariant list = sda.execute("SELECT * FROM userinfo");
+       return (list.toList().size() > 0);
+}
+
+int WPUtils::getPosition()
+{
+       return _position;
+}
+
+QMap<QString, QVariant> WPUtils::getBI()
+{
+       return _blogs;
+}
+
+void WPUtils::getBlogsInfo()
+{
+
+       // uhm
+
+}
+
+bool WPUtils::blogsInfo()
+{
+       return _blogs.isEmpty();
+}
+
+void WPUtils::setBlogsInfo(QString bid, QString burl)
+{
+
+       _blogs.insertMulti(bid, burl);
+
+       QString totbid = _blogid + " , " + bid;
+       QString totburl= _endpoint + " , " + burl;
+
+       _blogid = bid; //_blogs.values("blogid")[_position];
+       _endpoint = burl;//_blogs.values("burl")[_position];
+
+       /* register infos */
+       QSqlQuery query(_db);
+
+       if ( !info_registered() )
+       {
+               query.prepare("INSERT INTO userinfo (blogid,username,password,xmlrpc) VALUES (:blogid, :username, :password, :xmlrpc)");
+               query.bindValue(":blogid", _blogid);
+               query.bindValue(":username", _username);
+               query.bindValue(":password", _password);
+               query.bindValue(":xmlrpc", _endpoint);
+               query.exec();
+       } else {
+               query.prepare("UPDATE table userinfo set blogid=:blogid and xmlrpc=:xmlrpc");
+               query.bindValue(":blogid", totbid);
+               query.bindValue(":xmlrpc", totburl);
+               query.exec();
+       }
+}
+
+
+
+// << -- XML/RPC stuff -- >>
+
+
+void WPUtils::uploadFile(QString furl)
+{
+
+       QString workingDir = QDir::currentPath();
+
+       QString fn = furl;
+       QStringList l = fn.split('/');
+       QString nome = l[l.count()-1];
+
+       QString f = workingDir + "/shared/camera/" + nome;
+
+       QFile* file = new QFile(f);
+
+       if ( file->exists() )
+               qDebug() << "file founded.";
+       else qDebug() << "file not found.";
+
+       if ( file->isReadable() )
+               qDebug() << "readable";
+       else qDebug() << "unreadable";
+
+       file->open(QIODevice::ReadOnly);
+
+       _xml.clear();
+       QXmlStreamWriter sw(&_xml);
+
+       sw.setAutoFormatting(true);
+       sw.writeStartDocument();
+
+       sw.writeStartElement("methodCall");
+       sw.writeTextElement("methodName", "wp.uploadFile");
+       sw.writeStartElement("params");
+       sw.writeStartElement("param");
+       sw.writeCharacters("blog_id");
+       sw.writeTextElement("value", _blogid);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("username");
+       sw.writeTextElement("value", _username);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("password");
+       sw.writeTextElement("value", _password);
+       sw.writeEndElement();
+       sw.writeStartElement("struct");
+       sw.writeStartElement("member");
+       sw.writeTextElement("name", "name");
+       sw.writeTextElement("value", nome);
+       sw.writeEndElement();
+       sw.writeStartElement("member");
+       sw.writeTextElement("name", "type");
+       QImageReader reader(f);
+
+       sw.writeTextElement("value", "image/"+reader.format());
+       sw.writeEndElement();
+       sw.writeStartElement("member");
+       sw.writeTextElement("name", "bits");
+       sw.writeStartElement("value");
+       sw.writeStartElement("base64");
+       sw.writeCharacters(file->readAll().toBase64());
+       sw.writeEndElement();
+       sw.writeEndElement();
+       sw.writeEndElement();
+       sw.writeStartElement("member");
+       sw.writeTextElement("name", "overwrite");
+       sw.writeTextElement("value", "true");
+       sw.writeEndElement();
+       sw.writeEndElement();
+       sw.writeEndElement();
+       sw.writeEndDocument();
+
+       QNetworkAccessManager *manager = new QNetworkAccessManager();
+
+       QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
+
+       QUrl url;
+
+       url.setUrl(_endpoint);
+       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::getComment(QString comment_id)
+{
+       _xml.clear();
+       QXmlStreamWriter sw(&_xml);
+
+       sw.setAutoFormatting(true);
+       sw.writeStartDocument();
+
+       sw.writeStartElement("methodCall");
+       sw.writeTextElement("methodName", "wp.getComment");
+       sw.writeStartElement("params");
+       sw.writeStartElement("param");
+       sw.writeCharacters("blog_id");
+       sw.writeTextElement("value", _blogid);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("username");
+       sw.writeTextElement("value", _username);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("password");
+       sw.writeTextElement("value", _password);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("comment_id");
+       sw.writeTextElement("value", comment_id);
+       sw.writeEndElement();
+       sw.writeEndElement();
+       sw.writeEndDocument();
+
+       QNetworkAccessManager *manager = new QNetworkAccessManager();
+
+       manager->setObjectName("getComment");
+
+       QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
+
+       QUrl url;
+
+       url.setUrl(_endpoint);
+       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::newComment(QString post_id, QString content, QString comment_parent)
+{
+       _xml.clear();
+       QXmlStreamWriter sw(&_xml);
+
+       sw.setAutoFormatting(true);
+       sw.writeStartDocument();
+
+       sw.writeStartElement("methodCall");
+       sw.writeTextElement("methodName", "wp.newComment");
+       sw.writeStartElement("params");
+       sw.writeStartElement("param");
+       sw.writeCharacters("blog_id");
+       sw.writeTextElement("value", _blogid);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("username");
+       sw.writeTextElement("value", _username);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("password");
+       sw.writeTextElement("value", _password);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("post_id");
+       sw.writeTextElement("value", post_id);
+       sw.writeEndElement();
+       sw.writeStartElement("struct");
+       sw.writeStartElement("member");
+       sw.writeTextElement("name", "content");
+       sw.writeTextElement("value", content);
+       sw.writeEndElement();
+       if ( !comment_parent.isEmpty())
+       {
+               sw.writeStartElement("member");
+               sw.writeTextElement("name", "comment_parent");
+               sw.writeTextElement("value", comment_parent);
+               sw.writeEndElement();
+       }
+
+
+
+       sw.writeEndElement();
+       sw.writeEndElement();
+       sw.writeEndDocument();
+
+       QNetworkAccessManager *manager = new QNetworkAccessManager();
+
+       manager->setObjectName("newComment");
+
+       QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
+
+       QUrl url;
+
+       url.setUrl(_endpoint);
+       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::editComment(QString comment_id, QString status, QString content, QString author, QString authormail, QString authorurl)
+{
+       _xml.clear();
+       QXmlStreamWriter sw(&_xml);
+
+       sw.setAutoFormatting(true);
+       sw.writeStartDocument();
+
+       sw.writeStartElement("methodCall");
+       sw.writeTextElement("methodName", "wp.editComment");
+       sw.writeStartElement("params");
+       sw.writeStartElement("param");
+       sw.writeCharacters("blog_id");
+       sw.writeTextElement("value", _blogid);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("username");
+       sw.writeTextElement("value", _username);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("password");
+       sw.writeTextElement("value", _password);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("comment_id");
+       sw.writeTextElement("value", comment_id);
+       sw.writeEndElement();
+       sw.writeStartElement("struct");
+       sw.writeStartElement("member");
+       sw.writeTextElement("name", "status");
+       sw.writeTextElement("value", status);
+       sw.writeEndElement();
+       if ( !content.isEmpty())
+       {
+               sw.writeStartElement("member");
+               sw.writeTextElement("name", "content");
+               sw.writeTextElement("value", content);
+               sw.writeEndElement();
+       }
+       if ( !author.isEmpty())
+       {
+               sw.writeStartElement("member");
+               sw.writeTextElement("name", "author");
+               sw.writeTextElement("value", author);
+               sw.writeEndElement();
+       }
+       if ( !authormail.isEmpty())
+       {
+               sw.writeStartElement("member");
+               sw.writeTextElement("name", "author_email");
+               sw.writeTextElement("value", authormail);
+               sw.writeEndElement();
+       }
+       if ( !authorurl.isEmpty())
+       {
+               sw.writeStartElement("member");
+               sw.writeTextElement("name", "author_url");
+               sw.writeTextElement("value", authorurl);
+               sw.writeEndElement();
+       }
+
+       sw.writeEndElement();
+       sw.writeEndElement();
+       sw.writeEndDocument();
+
+       QNetworkAccessManager *manager = new QNetworkAccessManager();
+
+       manager->setObjectName("editComment");
+
+       QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
+
+       QUrl url;
+
+       url.setUrl(_endpoint);
+       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::editPost(QString pid, QString title, QString content, QString status, QString format)
+{
+       _xml.clear();
+       QXmlStreamWriter sw(&_xml);
+
+       sw.setAutoFormatting(true);
+       sw.writeStartDocument();
+
+       sw.writeStartElement("methodCall");
+       sw.writeTextElement("methodName", "wp.editPost");
+       sw.writeStartElement("params");
+       sw.writeStartElement("param");
+       sw.writeCharacters("blog_id");
+       sw.writeTextElement("value", _blogid);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("username");
+       sw.writeTextElement("value", _username);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("password");
+       sw.writeTextElement("value", _password);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("post_id");
+       sw.writeTextElement("value", pid);
+       sw.writeEndElement();
+       sw.writeStartElement("struct");
+       if ( !content.isEmpty())
+       {
+               sw.writeStartElement("member");
+               sw.writeTextElement("name", "post_content");
+               sw.writeTextElement("value", content);
+               sw.writeEndElement();
+       }
+       if ( !title.isEmpty())
+       {
+               sw.writeStartElement("member");
+               sw.writeTextElement("name", "post_title");
+               sw.writeTextElement("value", title);
+               sw.writeEndElement();
+       }
+       if ( !status.isEmpty())
+       {
+               sw.writeStartElement("member");
+               sw.writeTextElement("name", "post_status");
+               sw.writeTextElement("value", status);
+               sw.writeEndElement();
+       }
+       if ( !format.isEmpty())
+       {
+               sw.writeStartElement("member");
+               sw.writeTextElement("name", "post_format");
+               sw.writeTextElement("value", format);
+               sw.writeEndElement();
+       }
+
+       sw.writeEndElement();
+       sw.writeEndElement();
+       sw.writeEndDocument();
+
+       QNetworkAccessManager *manager = new QNetworkAccessManager();
+
+       manager->setObjectName("editPost");
+
+       QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
+
+       QUrl url;
+
+       url.setUrl(_endpoint);
+       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::deletePost(QString post_id)
+{
+       _xml.clear();
+       QXmlStreamWriter sw(&_xml);
+
+       sw.setAutoFormatting(true);
+       sw.writeStartDocument();
+
+       sw.writeStartElement("methodCall");
+       sw.writeTextElement("methodName", "wp.deletePost");
+       sw.writeStartElement("params");
+       sw.writeStartElement("param");
+       sw.writeCharacters("blog_id");
+       sw.writeTextElement("value", _blogid);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("username");
+       sw.writeTextElement("value", _username);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("password");
+       sw.writeTextElement("value", _password);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("post_id");
+       sw.writeTextElement("value", post_id);
+       sw.writeEndElement();
+       sw.writeEndElement();
+       sw.writeEndDocument();
+
+       QNetworkAccessManager *manager = new QNetworkAccessManager();
+
+       manager->setObjectName("delPost");
+
+       QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
+
+       QUrl url;
+
+       url.setUrl(_endpoint);
+       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::deleteComment(QString comment_id)
+{
+       _xml.clear();
+       QXmlStreamWriter sw(&_xml);
+
+       sw.setAutoFormatting(true);
+       sw.writeStartDocument();
+
+       sw.writeStartElement("methodCall");
+       sw.writeTextElement("methodName", "wp.deleteComment");
+       sw.writeStartElement("params");
+       sw.writeStartElement("param");
+       sw.writeCharacters("blog_id");
+       sw.writeTextElement("value", _blogid);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("username");
+       sw.writeTextElement("value", _username);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("password");
+       sw.writeTextElement("value", _password);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("comment_id");
+       sw.writeTextElement("value", comment_id);
+       sw.writeEndElement();
+       sw.writeEndElement();
+       sw.writeEndDocument();
+
+       QNetworkAccessManager *manager = new QNetworkAccessManager();
+
+       manager->setObjectName("delComment");
+
+       QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
+
+       QUrl url;
+
+       url.setUrl(_endpoint);
+       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::makePost(bool pages, QString title, QVariant cnt, QVariant type, QVariant status)
+{
+       _xml.clear();
+       QString pd = cnt.toString();
+       //pd.replace("&","&amp;");//&#38;");
+       /*
+       pd.replace("<","&lt;");//&#60;");
+       pd.replace(">","&gt;");//#62;");
+       pd.replace("\"","&quot;");//#34;");
+        */
+       QXmlStreamWriter sw(&_xml);
+       sw.setAutoFormatting(true);
+       sw.writeStartDocument();
+
+       sw.writeStartElement("methodCall");
+       sw.writeTextElement("methodName", "wp.newPost");
+       sw.writeStartElement("params");
+       sw.writeStartElement("param");
+       sw.writeCharacters("blog_id");
+       sw.writeTextElement("value", _blogid);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("username");
+       sw.writeTextElement("value", _username);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("password");
+       sw.writeTextElement("value", _password);
+       sw.writeEndElement();
+       sw.writeStartElement("struct");
+       sw.writeStartElement("member");
+       sw.writeTextElement("name", "post_type");
+       sw.writeTextElement("value", (pages) ? "page" : type.toString());
+       sw.writeEndElement();
+       sw.writeStartElement("member");
+       sw.writeTextElement("name", "post_status");
+       sw.writeTextElement("value", status.toString());
+       sw.writeEndElement();
+       sw.writeStartElement("member");
+       sw.writeTextElement("name", "post_title");
+       sw.writeTextElement("value", title);
+       sw.writeEndElement();
+
+       sw.writeStartElement("member");
+       sw.writeTextElement("name", "post_content");
+       sw.writeTextElement("value", pd.toAscii());//.toUtf8());
+       sw.writeEndElement();
+       sw.writeEndElement();
+       sw.writeEndDocument();
+
+       QNetworkAccessManager *manager = new QNetworkAccessManager();
+
+       manager->setObjectName("newPost");
+
+       QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
+
+       QUrl url;
+
+       url.setUrl(_endpoint);
+       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::getBlogs(QString u, QString p, QString blog_address)
+{
+       _xml.clear();
+       /* 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();
+
+       QNetworkAccessManager *manager = new QNetworkAccessManager();
+
+       manager->setObjectName("getUsersBlogs");
+
+       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::getCategories()
+{
+       _xml.clear();
+       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.getTerms");
+       QDomElement ps = doc.createElement("params");
+       QDomElement p1 = doc.createElement("param");
+       QDomText p1t = doc.createTextNode("blogid");
+       QDomElement v1 = doc.createElement("value");
+       QDomText v1t = doc.createTextNode(_blogid);
+       QDomElement p2 = doc.createElement("param");
+       QDomText p2t = doc.createTextNode("username");
+       QDomElement v2 = doc.createElement("value");
+       QDomText v2t = doc.createTextNode(_username);
+       QDomElement p3 = doc.createElement("param");
+       QDomText p3t = doc.createTextNode("password");
+       QDomElement v3 = doc.createElement("value");
+       QDomText v3t = doc.createTextNode(_password);
+       QDomElement p4 = doc.createElement("param");
+       QDomText p4t = doc.createTextNode("taxonomy");
+       QDomElement v4 = doc.createElement("value");
+       QDomText v4t = doc.createTextNode("category");
+
+       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);
+
+       ps.appendChild(p3);
+       p3.appendChild(p3t);
+       p3.appendChild(v3);
+       v3.appendChild(v3t);
+
+       ps.appendChild(p4);
+       p4.appendChild(p4t);
+       p4.appendChild(v4);
+       v4.appendChild(v4t);
+
+
+
+       _xml = doc.toString().toUtf8();
+
+       QNetworkAccessManager *manager = new QNetworkAccessManager();
+
+       QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
+
+       QUrl url;
+
+       url.setUrl(_endpoint);
+       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::getPost(QString pid)
+{
+
+       _xml.clear();
+       /* 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.getPost");
+       QDomElement ps = doc.createElement("params");
+       QDomElement p1 = doc.createElement("param");
+       QDomText p1t = doc.createTextNode("blogid");
+       QDomElement v1 = doc.createElement("value");
+       QDomText v1t = doc.createTextNode(_blogid);
+       QDomElement p2 = doc.createElement("param");
+       QDomText p2t = doc.createTextNode("username");
+       QDomElement v2 = doc.createElement("value");
+       QDomText v2t = doc.createTextNode(_username);
+       QDomElement p3 = doc.createElement("param");
+       QDomText p3t = doc.createTextNode("password");
+       QDomElement v3 = doc.createElement("value");
+       QDomText v3t = doc.createTextNode(_password);
+       QDomElement p4 = doc.createElement("param");
+       QDomText p4t = doc.createTextNode("post_id");
+       QDomElement v4 = doc.createElement("value");
+       QDomText v4t = doc.createTextNode(pid);
+
+       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);
+
+       ps.appendChild(p3);
+       p3.appendChild(p3t);
+       p3.appendChild(v3);
+       v3.appendChild(v3t);
+
+       ps.appendChild(p4);
+       p4.appendChild(p4t);
+       p4.appendChild(v4);
+       v4.appendChild(v4t);
+
+
+
+       _xml = doc.toString().toUtf8();
+
+       QNetworkAccessManager *manager = new QNetworkAccessManager();
+
+       manager->setObjectName("getPost");
+
+       QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
+
+       QUrl url;
+
+       url.setUrl(_endpoint);
+       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::getPages()
+{
+       //useless
+}
+
+void WPUtils::getComments()
+{
+       _xml.clear();
+       QXmlStreamWriter sw(&_xml);
+
+       sw.setAutoFormatting(true);
+       sw.writeStartDocument();
+
+       sw.writeStartElement("methodCall");
+       sw.writeTextElement("methodName", "wp.getComments");
+       sw.writeStartElement("params");
+       sw.writeStartElement("param");
+       sw.writeCharacters("blog_id");
+       sw.writeTextElement("value", _blogid);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("username");
+       sw.writeTextElement("value", _username);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("password");
+       sw.writeTextElement("value", _password);
+       sw.writeEndElement();
+       sw.writeEndElement();
+       sw.writeEndDocument();
+
+       QNetworkAccessManager *manager = new QNetworkAccessManager();
+
+       manager->setObjectName("getComments");
+
+       QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
+
+       QUrl url;
+
+       url.setUrl(_endpoint);
+       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::getPosts(bool pages)
+{
+       _xml.clear();
+       QXmlStreamWriter sw(&_xml);
+
+       sw.setAutoFormatting(true);
+       sw.writeStartDocument();
+
+       sw.writeStartElement("methodCall");
+       sw.writeTextElement("methodName", "wp.getPosts");
+       sw.writeStartElement("params");
+       sw.writeStartElement("param");
+       sw.writeCharacters("blog_id");
+       sw.writeTextElement("value", _blogid);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("username");
+       sw.writeTextElement("value", _username);
+       sw.writeEndElement();
+       sw.writeStartElement("param");
+       sw.writeCharacters("password");
+       sw.writeTextElement("value", _password);
+       sw.writeEndElement();
+       if ( pages )
+       {
+               sw.writeStartElement("struct");
+               sw.writeStartElement("member");
+               sw.writeTextElement("name", "post_type");
+               sw.writeTextElement("value", "page");
+               sw.writeEndElement();
+               sw.writeEndElement();
+       }
+       sw.writeEndElement();
+       sw.writeEndDocument();
+
+       QNetworkAccessManager *manager = new QNetworkAccessManager();
+
+       manager->setObjectName("getPosts");
+
+       QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
+
+       QUrl url;
+
+       url.setUrl(_endpoint);
+       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)
+{
+       QVariantMap _res_bck;
+       model = new GroupDataModel(QStringList() << "sortDate" ); //"date" << "date_created_gmt" << "post_date");
+
+       model->setSortedAscending(false);
+
+       model->setGrouping(ItemGrouping::None);
+
+       if ( model && !model->isEmpty() )
+               model->clear();
+
+       if ( !res.isEmpty() )
+               res.clear();
+
+
+       QByteArray ret = rep->readAll();
+       if ( !ret.isEmpty() )
+               qDebug() << "reading " << ret; //rep->readAll();
+       else qDebug() << "ret empty -> error handling /*TODO*/";
+
+       QString _current_name = "";
+
+       QXmlStreamReader xml(ret);
+
+       int _struct_counter = 0;
+
+       while(!xml.atEnd() && !xml.hasError()) {
+               QXmlStreamReader::TokenType token = xml.readNext();
+               if ( token == QXmlStreamReader::StartElement )
+               {
+                       if ( xml.name().toString() == "fault")
+                       {
+                               res["ERROR"] = "fault";
+                       } else if ( xml.name().toString() == "struct" )
+                       {
+                               _struct_counter++;
+                       } else if ( xml.name().toString() == "name" )
+                       {
+                               token = xml.readNext();
+                               _current_name = xml.text().toString();
+                       } else if ( xml.name().toString() == "value" && !_current_name.isEmpty() )
+                       {
+                               token = xml.readNext();
+                               if ( xml.name().toString() == "string" || xml.name().toString() == "boolean" || xml.name().toString() == "dateTime.iso8601" )
+                               {
+                                       token = xml.readNext();
+                                       if ( _current_name == "post_date" || _current_name == "date_created_gmt" )
+                                       {
+                                               /* is this insane?! */
+                                               QString theDate = xml.text().toString(); //"20130503T14:48:55";
+                                               QDateTime date = QDateTime::fromString(theDate, "yyyyMMddTHH:mm:ss");
+                                               res["sortDate"] = date;
+                                               res["date"] = date.toString(Qt::SystemLocaleShortDate);
+                                       }
+                                       else res[_current_name] = xml.text().toString();
+
+                                       _current_name = "";
+                               } else _current_name = "";
+                       } else if ( xml.name().toString() == "string" )
+                       {
+                               /* newpost workaround */
+                               token = xml.readNext();
+                               res["newpostid"] = xml.text().toString();
+                               model->insert(res);
+                               _res_bck.unite(res);
+                               res.clear();
+                       } else if ( xml.name().toString() == "boolean")
+                       {
+                               /* deletepost workaround */
+                               token = xml.readNext();
+                               res["delpost"] = xml.text().toString();
+                               model->insert(res);
+                               _res_bck.unite(res);
+                               res.clear();
+                       } else if ( xml.name().toString() == "int" )
+                       {
+                               /* newpost workaround */
+                               token = xml.readNext();
+                               res["newcommentid"] = xml.text().toString();
+                               model->insert(res);
+                               _res_bck.unite(res);
+                               res.clear();
+                       }
+
+
+               } else if ( token == QXmlStreamReader::EndElement )
+               {
+                       if ( xml.name().toString() == "struct" )
+                       {
+                               _struct_counter--;
+
+                               if ( _struct_counter == 0 )
+                               {
+                                       if ( !res.isEmpty() )
+                                       {
+                                               model->insert(res);
+                                               _res_bck.unite(res);
+                                               res.clear();
+                                       } else qDebug() << "*+*+*+*+*+*+*+* ouch! res is empty!! =====DO SMTG======";
+
+                               }
+                       }
+               }
+       }
+
+       res = _res_bck;
+
+       if(QObject* pObject = sender()) {
+               QString name = pObject->objectName();
+               //datagetPosts
+               //getPosts
+               if ( !name.isEmpty() )
+               {
+                       QString methodName = "dataReady_" + name;
+                       const char *x = methodName.toStdString().c_str();
+                       QMetaObject::invokeMethod(this, x, Qt::DirectConnection);//, Qt::DirectConnection);
+               } else emit dataReady(ret);
+
+       } else emit dataReady(ret);
+}
+
+/* no need to pass a qbytearray, model filled in the replyFinished */
+bb::cascades::GroupDataModel * WPUtils::setModel(QByteArray a)
+{
+       /***FIXME***/
+       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
+                        */
+                       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)
+{
+       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();
+
+       if ( _endpoint.isEmpty() )
+               return false;
+       else return true;
+}
+
+void WPUtils::repFinished(QNetworkReply *r)
+{
+       QByteArray t = r->readAll();
+       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? */
+                       {
+                               _endpoint = _url;
+                       }
+
+
+               }
+       }
+       xr.clear();
+       _loop.quit();
+}
+void WPUtils::checkForPingback(QNetworkReply *r)
+{
+       QRegExp trx("link rel=\"pingback\" href=\"([^\"]*)\"");//(.*)<\/a>)
+       QString str = r->readAll();//"Offsets: 12 14 99 231 7";
+
+       int pos = trx.indexIn(str);
+       if ( pos != -1 )
+       {
+               QStringList list = trx.capturedTexts();
+               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 )
+                       {
+                               QStringList list = erx.capturedTexts();
+                               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 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/src/WPUtils.h                          (rev 0)
+++ 2013/b0unc3/trunk/src/WPUtils.h     2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,151 @@
</span><ins>+/*
+ * WPUtils.h
+ *
+ *      Author: Daniele (b0unc3) Maio
+ */
+
+#ifndef WPUTILS_H_
+#define WPUTILS_H_
+
+#include <QObject>
+#include <QMetaType>
+#include <QMap>
+
+#include <qnetworkaccessmanager.h>
+#include <qnetworkreply.h>
+#include <qnetworkrequest.h>
+
+#include <QUrl>
+/* TO BE ROMEVED, USE QXml* */
+#include <QDomDocument>
+#include <QDomElement>
+#include <QDomText>
+
+#include <QtXml/QXmlStreamReader>
+#include <QXmlStreamWriter>
+
+#include <QByteArray>
+#include <QVariant>
+
+#include <QStringList>
+
+#include <QRegExp>
+
+#include <QXmlStreamReader>
+
+#include <Qt/qimagereader.h>
+
+#include <QDebug>
+
+#include <QMetaType>
+#include <QtScript>
+
+#include <QtSql/QtSql>
+
+#include <bb/cascades/GroupDataModel>
+#include <bb/data/SqlDataAccess.hpp>
+
+using namespace bb::data;
+using namespace bb::cascades;                  //?
+
+
+class WPUtils: public QObject {
+       Q_OBJECT
+
+public:
+       QVariantMap res;
+       bb::cascades::GroupDataModel *model;
+
+
+       WPUtils(QObject *parent = 0);
+       virtual ~WPUtils();
+
+       Q_INVOKABLE void getBlogs(QString, QString, QString);
+       Q_INVOKABLE void getPosts(bool);
+       Q_INVOKABLE void setBlogsInfo(QString,QString);
+       Q_INVOKABLE void getComments();
+       Q_INVOKABLE void getPages();
+       Q_INVOKABLE void getPost(QString);
+       Q_INVOKABLE void getCategories();
+       Q_INVOKABLE void makePost(bool, QString, QVariant, QVariant, QVariant);
+       Q_INVOKABLE void deletePost(QString);
+       Q_INVOKABLE void uploadFile(QString);
+       Q_INVOKABLE void editComment(QString, QString, QString, QString, QString, QString);
+       Q_INVOKABLE void deleteComment(QString);
+       Q_INVOKABLE void newComment(QString, QString, QString);
+       Q_INVOKABLE void getComment(QString);
+       Q_INVOKABLE void editPost(QString, QString, QString, QString, QString);
+
+       Q_INVOKABLE bb::cascades::GroupDataModel *setModel(QByteArray); /* should be getModel, since the model is setted in another func */
+       QString searchEndPoint(QString);
+
+       /* maybe temporary */
+       Q_INVOKABLE QMap<QString, QVariant> getRes() { return res; }
+       Q_INVOKABLE void resetRes() { res.clear(); }
+       Q_INVOKABLE void setUsername(QString u) { qDebug() << "&&&&&& ==== USERNAME SETTED TO => " << u; _username = u; }
+       Q_INVOKABLE void setPassword(QString p) { _password = p; }
+
+       Q_INVOKABLE void setPosition(int p) { _position = p; }
+       Q_INVOKABLE bool blogsInfo();
+       Q_INVOKABLE void getBlogsInfo();
+       Q_INVOKABLE bool info_registered();
+       Q_INVOKABLE QMap<QString, QVariant> getBI();
+
+private:
+       int _position;
+       bool _info_registered;
+       static const QString dbName;
+       QMap<QString, QVariant> _blogs;
+       //QHash<QString, QString> _blogs;
+       QString _endpoint;
+       QString _url;
+       QEventLoop _loop;
+       QByteArray _xml;
+       QString _username;
+       QString _password;
+       QString _blogid;
+       QString _emit;
+       QSqlDatabase _db;
+
+
+       int getPosition();
+       QString sanitize(QString);
+       bool validate(QString);
+       void getRegisteredData();
+
+       signals:
+       void dataReady(QByteArray); //QVariant);//QString);
+
+       void dataReady_getUsersBlogs();
+       void dataReady_getBlogs(QByteArray);
+
+       void dataReady_getPosts();
+       void dataReady_getPost();
+       void dataReady_viewPost();
+       void dataReady_editPost();
+       void dataReady_delPost();
+       void dataReady_newPost();
+
+       void dataReady_getComments();
+       void dataReady_getComment();
+       void dataReady_newComment();
+       void dataReady_viewComment();
+       void dataReady_editComment();
+       void dataReady_delComment();
+
+       void dataReady_getPages();
+       void dataReady_viewPage();
+       void dataReady_editPage();
+       void dataReady_delPage();
+       void dataReady_newPage();
+
+       void blogsReady(QHash<QString, 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 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/src/applicationui.cpp                          (rev 0)
+++ 2013/b0unc3/trunk/src/applicationui.cpp     2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,28 @@
</span><ins>+#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 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/src/applicationui.hpp                          (rev 0)
+++ 2013/b0unc3/trunk/src/applicationui.hpp     2013-09-21 17:34:44 UTC (rev 2352)
</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 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/src/main.cpp                           (rev 0)
+++ 2013/b0unc3/trunk/src/main.cpp      2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,38 @@
</span><ins>+/*
+ * main.cpp
+ *
+ *      Author: Daniele (b0unc3) Maio
+ */
+
+// 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="2013b0unc3trunktestxml"></a>
<div class="delfile"><h4>Deleted: 2013/b0unc3/trunk/test.xml (2351 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/test.xml       2013-09-21 12:32:47 UTC (rev 2351)
+++ 2013/b0unc3/trunk/test.xml  2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -1,18 +0,0 @@
</span><del>-<?xml version="1.0" encoding="UTF-8"?>
-<methodResponse>
-  <params>
-    <param>
-      <value>
-      <array><data>
-  <value><struct>
-  <member><name>isAdmin</name><value><boolean>1</boolean></value></member>
-  <member><name>url</name><value><string>https://bouncelab.wordpress.com/</string></value></member>
-  <member><name>blogid</name><value><string>51280592</string></value></member>
-  <member><name>blogName</name><value><string>b0unc3&amp;#039;s Blog</string></value></member>
-  <member><name>xmlrpc</name><value><string>https://bouncelab.wordpress.com/xmlrpc.php</string></value></member>
-</struct></value>
-</data></array>
-      </value>
-    </param>
-  </params>
-</methodResponse>
</del></span></pre></div>
<a id="2013b0unc3trunktranslationsMakefile"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/translations/Makefile (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/translations/Makefile                          (rev 0)
+++ 2013/b0unc3/trunk/translations/Makefile     2013-09-21 17:34:44 UTC (rev 2352)
</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 => 2352)</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-09-21 17:34:44 UTC (rev 2352)
</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 => 2352)</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-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -0,0 +1,258 @@
</span><ins>+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+    <name>BlogsSelectionDialog</name>
+    <message>
+        <source>Done</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CustomDialogCategories</name>
+    <message>
+        <source>Done</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>blogslist</name>
+    <message>
+        <source>None selected</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>commentslist</name>
+    <message>
+        <source>DELETE COMMENT</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Are you sure to delete this comment?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Yes</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>editcomment</name>
+    <message>
+        <source>Author</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Author e-mail</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Author url</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>content</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>State</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Approved</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Waiting for approve</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Spam</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit Comment</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>editpost</name>
+    <message>
+        <source>Status</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Public</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Private</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Standard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Aside</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Quote</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Link</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit Post</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit Page</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>main</name>
+    <message>
+        <source>Change blog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Posts</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Comments</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Pages</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>makePost</name>
+    <message>
+        <source>Creating the new post, please wait</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Select Picture</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add Image</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>New Post</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Post Title</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Post Content</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Status</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Public</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Private</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Format</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Standard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Aside</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Quote</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Link</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>New Page</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>pageslist</name>
+    <message>
+        <source>DELETE PAGE</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Are you sure to delete this page?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Yes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>postslist</name>
+    <message>
+        <source>Deleting post, please wait</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>DELETE POST</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Yes</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+</TS>
</ins></span></pre></div>
<a id="2013b0unc3trunkwp_bb10bar"></a>
<div class="binary"><h4>Deleted: 2013/b0unc3/trunk/wp_bb10.bar</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="2013b0unc3trunkwp_bb10pro"></a>
<div class="delfile"><h4>Deleted: 2013/b0unc3/trunk/wp_bb10.pro (2351 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/wp_bb10.pro    2013-09-21 12:32:47 UTC (rev 2351)
+++ 2013/b0unc3/trunk/wp_bb10.pro       2013-09-21 17:34:44 UTC (rev 2352)
</span><span class="lines">@@ -1,25 +0,0 @@
</span><del>-APP_NAME = wp_bb10
-
-CONFIG += qt warn_on cascades10
-
-QT += xml network script
-
-LIBS += -lbbdata -lbbcascadespickers
-
-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
-    }
-}
</del></span></pre></div>
<a id="2013b0unc3trunkwp_bb10pro"></a>
<div class="addfile"><h4>Added: 2013/b0unc3/trunk/wp_bb10.pro (0 => 2352)</h4>
<pre class="diff"><span>
<span class="info">--- 2013/b0unc3/trunk/wp_bb10.pro                            (rev 0)
+++ 2013/b0unc3/trunk/wp_bb10.pro       2013-09-21 17:34:44 UTC (rev 2352)
</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 -lbbcascadespickers
+
+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>