[00:01] <ubuntourist> Still getting "No valid kits found" when starting Ubuntu SDK...
[05:27] <dpm> good morning
[05:52] <rigved> good morning
[06:09] <rigved> i want to take part in the app showdown. i know i am late. but it seems a fun idea!
[06:10] <rigved> i was reading the details of the contest. is the AGPL allowed for code submitted to the contest? it's not directly listed here: http://opensource.org/licenses though.
[06:13] <dpm> rigved, let me have a look, I think it should be fine
[06:13] <dpm> rigved, it should be fine, so go for it: http://opensource.org/licenses/alphabetical :)
[06:19] <rigved> dpm: awesome!
[06:50] <dholbach> good morning
[06:53] <rigved> good morning
[07:52] <dpm> bzoltan, do you have an idea what could be causing bug 1207687?
[07:52] <ubot2`> Launchpad bug 1207687 in Ubuntu Calculator App "First swipe up (and down) doesn't work" [High,Triaged] https://launchpad.net/bugs/1207687
[07:52] <bzoltan> dpm: no idea... timp should know
[07:55] <dpm> ok, thanks, will wait for him to come up
[08:44] <JamesTait> Good morning all, happy Friday and happy Tell A Joke Day! :-D
[09:21] <kalikiana> randomcpp: here maybe
[09:21] <randomcpp> yeah
[09:21] <kalikiana> randomcpp: you definitely want many documents. this is a prerequisite for using Query which filters on the document
[09:22] <kalikiana> so say you have a "name" field you can filter on that
[09:22] <kalikiana> and put it in a ListView for example as well
[09:22] <randomcpp> ok so I'm doing the right way :)
[09:23] <randomcpp> (if you're interested, https://github.com/random-cpp/saucybacon )
[09:24] <kalikiana> randomcpp: there is an inofficial method to delete stuff, though it needs a proper api. you can do database.putDoc("", docId)
[09:24] <kalikiana> if you have a suggestion on a nicer API I'm open to ideas
[09:25] <randomcpp> ok thank you so much :)
[09:25] <kalikiana> do you have an screenies? I like the name :-D
[09:26] <randomcpp> saucybacon?
[09:26] <kalikiana> yeah
[09:27] <randomcpp> http://imgur.com/a/0DheR I need to add more screenshot
[09:28] <kalikiana> neat stuff
[09:29] <kalikiana> some way to adjust the number of people to update the portions before cooking would be nice  - just an idea
[09:30] <randomcpp> kalikiana, yeah I'm working on that feature :)
[09:30] <kalikiana> awesome
[09:30] <kalikiana> it would fix the classic situation of "oops, should've used half as much butter"
[09:31] <randomcpp> kalikiana, db.putDoc("", id) doesn't really delete the Document, if I pass the db as model, ListView still shows an entry, but empty
[09:31] <randomcpp> (screenshot on the way, a sec)
[09:32] <randomcpp> http://i.imgur.com/wvvhVOQ.png
[09:35] <kalikiana> randomcpp: have you defined a delegate? for example delegate: Label { text: contents.title }
[09:35] <randomcpp> yes the delegate is ListItem.Multivalue
[09:36] <randomcpp> it's just like all the contents are erased
[09:36] <randomcpp> but since the docId is still there, the db tells the ListView to show this empty Document
[09:38] <om26er> renato, hi
[09:38] <kalikiana> randomcpp: can you push the code? then I'll just try it locally
[09:39] <randomcpp> a sec :)
[09:39] <nik90|Office> randomcpp: oh just got an idea! Perhaps a screenshot of the food. That would make it more encouraging for a user to prepare a specific dish :)
[09:39] <randomcpp> nik90|Office, that's already on the todo list :p
[09:39] <nik90|Office> randomcpp: awesome
[09:39] <randomcpp> you can insert alredy taken photos
[09:39] <randomcpp> or took a photo on the go
[09:40] <randomcpp> but I need to define this feature better
[09:40] <randomcpp> I'd like to have the possibility to add a photo for each step of the preparation
[09:44] <randomcpp> kalikiana, the code is here https://github.com/random-cpp/saucybacon/
[09:45] <randomcpp> here's where I delete a Document https://github.com/random-cpp/saucybacon/blob/master/ui/RecipePage.qml#L64
[09:47] <dpm> nice work randomcpp :)
[09:47] <randomcpp> thanks dpm :)
[09:48] <randomcpp> I should start to separate the js from the qml code, to make things more modular..
[09:49] <nik90|Office> randomcpp: nice idea. To account for the limited space of the phone, I would suggest using picture thumbnails similar to the memories app being made by mefrio.
[09:49] <nik90|Office> randomcpp: clicking on the thumbnails could reveal a fullscreen view of it.
[09:49] <randomcpp> nik90|Office, yes I saw his implementation, it's really neat
[09:59] <kalikiana> randomcpp: I added a pancake recipe and I see it after saving
[09:59] <kalikiana> I'll add another one
[10:00] <kalikiana> randomcpp: hmm adding a second recipe seems to prefill text from before
[10:00] <randomcpp> kalikiana, yeah I need to clean the form
[10:00] <randomcpp> but if you save again a new recipe is saved
[10:01] <kalikiana> indeed I now have 2 and I can see the instructions
[10:01] <kalikiana> I still see both after closing and re-opening
[10:02] <kalikiana> I wonder why you would not see any in the list - it works here
[10:02] <randomcpp> now try to delete one of those
[10:02] <randomcpp> open a recipe, then call the toolbar and choose Delete
[10:02] <kalikiana> yup it's gone
[10:03] <randomcpp> but there's a white delegate in the listview right?
[10:03] <kalikiana> oooh
[10:03] <kalikiana> now I see what you mean
[10:03] <randomcpp> (don't bother if the single view still shows some infos)
[10:03] <kalikiana> yes, I got an empty entry. I didn't see the arrow at first
[10:03] <kalikiana> that is a bug then in u1db-qt
[10:06] <kalikiana> randomcpp: would you like to file it?
[10:07] <randomcpp> kalikiana, I should go afk right now, if you want me to report, I'll file it later sorry
[10:07] <kalikiana> no worries, I'll just file it myself
[10:07] <randomcpp> ok thanks a lot
[10:07] <kalikiana> I'll mention the URL so you can keep track of the fix going in
[10:08] <randomcpp> on lp my nick is random-cpp you can mention me there
[12:15] <Cantide> hmm.. what is the best way to store /save settings in an app and then load them as variables?
[12:22] <randomcpp> Cantide, if you already use a db for some reason store settings there, or alternatively, since qml support JSON natively
[12:22] <Cantide> i don't use a db
[12:22] <randomcpp> your a JSON with settings, then parse it on startup
[12:22] <Cantide> >.<
[12:22] <Cantide> how, where? documentation?
[12:22] <randomcpp> JSON.stringify and JSON.parse are your friends
[12:22] <Cantide> where will the file be stored?
[12:22] <randomcpp> third option, try to use gsettings
[12:22] <Cantide> they can be locally stored, that's fine with me
[12:23] <randomcpp> where you tell to save your file
[12:36] <Cantide> randomcpp, is this what i'm looking for? https://qt-project.org/doc/qt-5.0/qtquick/qmlmodule-qtquick-localstorage2-qtquick-localstorage-2.html
[12:37] <Cantide> perhaps it would be easier for me to just create an xml file, read from that and write to it when settings are changed >.<
[12:41] <kalikiana> Cantide: or use u1db and don't worry about where it's stored :-D
[12:41] <Cantide> ah..
[12:41] <Cantide> i need to read up on that
[12:41] <Cantide> does it require a user to have an U1 account?
[12:41] <Cantide> got a link about it?
[12:41] <kalikiana> no, you can use it locally just fine - sync with U1 is optional
[12:41] <kalikiana> sec
[12:41] <Cantide> oh, cool :)
[12:42] <kalikiana> http://developer.ubuntu.com/api/devel/ubuntu-13.10/qml/u1db-qt5/overview.html
[12:42] <Cantide> all i need do is store about 10 variables (these are user-specific settings)
[12:42] <Cantide> so a config file, basically
[12:42]  * Cantide clicks
[12:42] <Cantide> thanks
[12:42] <kalikiana> btw a settings api is on the roadmap for the ui toolkit but no promise when it will be ready
[12:43] <Cantide> okay
[12:43] <Cantide> it sure would be useful in a lot of apps
[12:43] <om26er> tmoenicke_, hello
[12:44] <Cantide> looks like u1db is exactly what i need! thanks!
[12:44] <kalikiana> np
[12:53] <randomcpp> kalikiana, is there a method to increase the docId automatically?
[12:54] <tmoenicke_> om26er: hi
[12:55] <om26er> tmoenicke_, hey! the ubuntu-keyboard package have not yet been pushed to ubuntu archives because didrocks is on vacation.
[12:56] <om26er> tmoenicke_, he'll return on monday, all "paper work" have been done. It seems only didrocks is the person that is able to release packages into Ubuntu
[12:56] <om26er> tmoenicke_, when do you want ubuntu-keyboard in the phone image btw?
[12:57] <tmoenicke_> om26er: asap, actually. bill is back on monday, so lets see
[12:58] <tmoenicke_> om26er: i saw some stuff was done last night, thanks a lot
[12:58] <tmoenicke_> mterry: ^
[13:00] <kalikiana> randomcpp: you can leave out the docid to get one autogenerated
[13:08] <randomcpp> kalikiana, I have a default Document { id: recipe; create: false; default: somedefaultJSON }, each time I want to create a new entry in the db I just do: recipe.docId = generatePseudoRandomId(); recipe.contents = someContents; recipe.create = true; now that this entry is created I switch off recipe.create = false, then I generate a new id by doing: recipe.docId = generatePseudoRandomId() and repeat the cicle
[13:09] <randomcpp> it just works, but I don't know if it's a good method or not
[13:10] <Cantide> how do i check if a document already exists?
[13:10] <randomcpp> database.getId(id)
[13:10] <randomcpp> sorry sorry
[13:11] <randomcpp> Cantide, var item = database.getDoc(id)
[13:11] <randomcpp> if (item)
[13:11] <randomcpp> etc
[13:12] <Cantide> ah, thanks :)
[13:12] <kalikiana> randomcpp: what does generatePseudoRandomId() do? maybe we should expose a function to get you a new id
[13:12] <randomcpp>     function getRandomId() {
[13:12] <randomcpp>         var n = Math.random();
[13:12] <randomcpp>         return n.toString();
[13:12] <randomcpp>     }
[13:13] <randomcpp> but I'm looking for some more effective
[13:13] <randomcpp> that's just a filler
[13:13] <kalikiana> yeah, the main problem would be that it can clash, it's not a good way to ensure uniqueness
[13:13] <randomcpp> it's not guaranteed that's unique
[13:13] <randomcpp> I know that very well
[13:15] <kalikiana> maybe we need a function database.generate_doc_id()
[13:15] <kalikiana> even if you could find a better method, that would ensure you get something sane without researching your options
[13:16] <kalikiana> there's a function for it, it's simply not public
[13:16] <randomcpp> I remove that recipe.create =true/false by simply using database.putDoc(contents, randomlyGeneratedID)
[13:16] <kalikiana> you can also use database.putDoc(contents)
[13:17] <kalikiana> that should also get you a new id
[13:17] <randomcpp> let me try
[13:17] <kalikiana> though it only works if you use the function - if you declare it in qml it's hard to tell if you wanted a new id or not so it doesn't allow new ids
[13:17] <randomcpp> yeah just works
[13:18] <randomcpp> an id looks like: D-2cc48379-d3ac-435f-8919-8632d7ef299e
[13:19] <kalikiana> yep, that is a GUID algo, it's quite safe to assume it is unique
[13:20] <kalikiana> if it is useful that could also be generated as a function
[13:21] <Cantide> can't have an if statement in the mainview?
[13:22] <randomcpp> Cantide, what do you mean?
[13:24] <Cantide> randomcpp, Unexpected token `if'
[13:24] <randomcpp> you can put a if statement in a js function
[13:24] <Cantide> where should i be declaring variables? before the mainview?
[13:25] <randomcpp> MainView { PageStack { Page1 { } } function myFunc() { if (1 > 0) return true; }}
[13:26] <randomcpp> you can put js function inside component
[13:26] <randomcpp> components*
[13:26] <randomcpp> or in separated files eg: myhelperfunctions.js
[13:27] <randomcpp> then load them with: import "/path/to/js/myhelperfunctions.js" as HelperFunctions
[13:27] <Cantide> hmm
[13:28] <Cantide> i wanted to check if there was a database, if not, create one and fill it with defaults, load them into variables and then have them available to all my tabs
[13:28] <randomcpp> http://qt-project.org/doc/qt-5.0/qtqml/qtqml-javascript-expressions.html
[13:28] <kalikiana> Cantide: you don't need to manually check the defaults if you store it in "defaults". it does exactly that
[13:29] <Cantide> hmm..
[13:29] <Cantide> but what if it is the first time the app is being run, and there is no database?
[13:29] <Cantide> umm.. oh, if i create a database now, will it be a physical file that ships with the app?
[13:29] <kalikiana> use "create: true" and it will automatically create one
[13:30] <Cantide> and if it's already there, won't it be overwritten, thus losing the users settings?
[13:30] <kalikiana> it will not, that is what "default" is for
[13:30] <kalikiana> *defaults
[13:31] <Cantide> >.<
[13:31] <Cantide> are there any examples of this?
[13:31] <Cantide> sorry... i'm having a hard time grasping how it should be used without seeing code
[13:31] <Cantide> i'm looking at this page http://developer.ubuntu.com/api/devel/ubuntu-13.10/qml/u1db-qt5/tutorial.html
[13:31] <Cantide> but it doesn't cover checking if it's already created
[13:32] <kalikiana> Cantide: http://developer.ubuntu.com/api/devel/ubuntu-13.10/qml/u1db-qt5/tutorial.html#3-1-1-creating-a-document-at-runtime
[13:32] <kalikiana> that uses defaults
[13:32] <xqwzts> Cantide: https://github.com/xqwzts/my-movies/blob/master/mymovies.qml#L51
[13:33] <Cantide> thanks, kalikiana, xqwzts :)
[13:34] <Cantide> oh, it needs to be inside Item { } >.<
[13:36] <Cantide> *sigh* module "U1db" is not installed
[13:36] <Cantide> this is endless xD
[13:36] <Cantide> i will research that on my own though =)
[13:37] <xqwzts> sudo apt-get install qtdeclarative5-u1db1.0
[13:37] <xqwzts> thats what you need for u1db
[13:37] <Cantide> oh, thanks
[13:38] <xqwzts> [it would be helpful if it was documented... hint, hint etc]
[13:38] <Cantide> hehe
[13:38] <Cantide> that worked, thanks :)
[13:38] <xqwzts> np
[13:39] <Cantide> eh, your settings.js is beyond me :D
[13:41] <xqwzts> uhm
[13:41] <xqwzts> its just setters and getters really
[13:44] <xqwzts> question: is there any way to detect basic gestures?
[13:44] <xqwzts> i'd like to catch a horizontal swipe on my page
[13:49] <xqwzts> [atm I'm hacking it together with a flickable, but this isn't very... elegant]
[13:56] <Cantide> how do i define types in the database? "Unable to assign [undefined] to double"
[13:57] <nik90|Office> randomcpp|afk, Cantide: gsettings is *not* allowed by the security team.
[13:57] <Cantide> i see
[13:57] <nik90|Office> Cantide: so your option is to use qmll localstorage or u1db.
[13:57] <Cantide> thanks, nik90|Office - luckily those helping me here guided me towards u1db :)
[13:58] <nik90|Office> All core apps use qmlstorage. But u1db is cool too!
[13:58] <Cantide> do you have a link for qmlstorage?
[13:58] <nik90|Office> its  the same link you pasted above yourself
[13:58] <Cantide> is it easier (requires less code) than u1db?
[13:58] <Cantide> ah
[13:58] <Cantide> ahhhhhhh
[13:58] <Cantide> okay :D
[13:58] <nik90|Office> I havent tried u1db so cant say
[13:58] <Cantide> lol
[13:59] <Cantide> i'm making some wonderful spaghetti with u1db :)
[13:59] <nik90|Office> hehe
[14:00] <Cantide> i still wonder how to specify the type in the database though :/
[14:00] <Cantide> because i need to store doubles >.<
[14:00] <nik90|Office> ah
[14:01] <nik90|Office> xqwzts: I tried cloning your repo and running it yesterday but it complained that AllMovies.qml was missing or something
[14:01] <nik90|Office> xqwzts: did you add it to your repo?
[14:01] <xqwzts> oh
[14:01] <xqwzts> ill take a look
[14:02] <xqwzts> Cantide: I don't think you specify the type, I assume it's dynamically typed
[14:02] <xqwzts> actually I assume it just stores a JSON object
[14:03] <nik90|Office> xqwzts: for qml localstorage, it is based on sqlite database. You need to declare a type.
[14:03] <Cantide> i wonder why, when i try to assign a double by pulling the value from the db that is complains :<
[14:03] <Cantide> that it *
[14:03] <xqwzts> have to afk for a little bit, can take a look when i get back
[14:03] <nik90|Office> xqwzts: btw the design gradient back tab header has been fixed
[14:04] <nik90|Office> xqwzts: time to enable those backgradients back again
[14:04] <nik90|Office> :)
[14:04] <Cantide> haha, nice :) i actually saw that comment in xqwzts's code and wondered about it :)
[14:11] <xqwzts> back, that was quick
[14:11] <xqwzts> nik90|Office: yup jono pointed that out
[14:11] <xqwzts> but has it been released?
[14:12] <nik90|Office> xqwzts: yes it landed as an update to saucy yesterday morning
[14:12] <nik90|Office> pretty sure raring got it as well
[14:12] <xqwzts> im on raring
[14:12] <xqwzts> will check in a bit
[14:13] <kalikiana> Cantide: what's the error message you get with the double?
 how do i define types in the database? "Unable to assign [undefined] to double"
[14:14] <xqwzts> Cantide: I just added this to my defaults and it didn't error out ["testdouble": 2.5]
[14:14] <Cantide> i have no problem setting it
[14:14] <Cantide> but when i create something like this:
[14:14] <xqwzts> Cantide: [undefined] is probably youre problem there
[14:14] <xqwzts> -e
[14:15] <Cantide> property double x: get_value_from_db
[14:15] <Cantide> then it fails
[14:15] <Cantide> ah, you think i'm failing to get the value from the db at all?
[14:15] <kalikiana> maybe you are trying to set it too early?
[14:16] <Cantide> i set the variable after creating the db with defaults..
[14:16] <kalikiana> if you try to take a value that is not (yet) there you would get undefined
[14:17] <kalikiana> Cantide: maybe paste a snippet with your code?
[14:17] <Cantide> hold on..
[14:17] <Cantide> i'm going to pastebin right now :p
[14:17] <kalikiana> cool
[14:18] <Cantide> http://pastebin.com/qA0rvYR8
[14:18] <Cantide> just trying it with the colours as a test :) might even be useful settings xD
[14:19] <Cantide> i wonder if the variable names aren't conflicting
[14:19] <Cantide> hmm
[14:20] <xqwzts> instead of assigning directly to your property, why not put it on a Component.onCompleted block
[14:21] <Cantide> ah, i saw that in your code
[14:21] <Cantide> unfortunately i have to run now... rugby + pizza
[14:22] <xqwzts> I'm not sure if that matters mind you
[14:22] <xqwzts> and you can try to debug the getContents by printing out Object.keys(settingsdoc.contents)
[14:22] <xqwzts> see if it has values in it
[14:23] <Cantide> oh, thanks
[14:24] <Cantide> i will be back in a few hours :)
[14:43] <xqwzts> nik90|Office: I pushed the missing allmovies fix.... forgot that git doesn't commit empty dirs
[15:09] <xqwzts> nik90|Office: have you got any experience with flickables?
[15:54] <iBelieve> xqwzts, I can try to help you with flickables if you want
[15:56] <xqwzts> iBelieve: I'm not sure if this is the proper behavior or a bug or just my code missing something
[15:57] <xqwzts> after flicking, clicking anywhere on the page will return the flickable to its original position
[15:57] <xqwzts> so it seems something is calling returnToBounds()
[15:58] <iBelieve> xqwzts, well, that's not what I get, so it might be a bug or something in your code
[15:58] <xqwzts> which looking at it is the same behavior as the ToolBar [clicking on the page closes the toolbar]
[15:58] <xqwzts> oh
[15:58] <xqwzts> well that's good to know
[15:58] <xqwzts> must be solvable then!
[15:58] <xqwzts> Are you changing your flickable's position on flick?
[15:58] <iBelieve> xqwzts, can you post the code for your flickable?
[15:59] <xqwzts> 1 sec ill push to github
[15:59] <iBelieve> xqwzts, no, I'm not messing with the position at all. All I do is create the flickable, and it handles the rest
[16:01] <xqwzts> ah, but I'm trying to recreate a "swipe" action
[16:01] <xqwzts> by flicking my page out
[16:01] <xqwzts> and deciding if I've crossed a threshold, at which point I change the content
[16:02] <xqwzts> iBelieve: https://github.com/xqwzts/my-movies/blob/master/mymovies/MovieDetailsPage.qml#L46
[16:02] <xqwzts> that's the relevant code
[16:02] <iBelieve> xqwzts, sounds something like what the calculator app does to create a new calculation. I'll take a look at your code
[16:03] <xqwzts> thanks, that'd be helpful
[16:03] <xqwzts> i'll take a look at the calculator code to see what's happening there
[16:07] <xqwzts> hmm
[16:07] <xqwzts> in the calc app they call positionViewAtBeginning() after ending the drag themselves
[16:09] <iBelieve> xqwzts, I just branched your code to see what you're trying to do and what actually happens. How do I test the problem?
[16:09] <xqwzts> go to Collection -> Inception
[16:09] <xqwzts> flick the text sideways
[16:10] <xqwzts> [uhm it should have created inception in the default data of the db]
[16:10] <xqwzts> if you flick about halfway, it should continue the flick for you and the text will slide out of view
[16:11] <xqwzts> the problem is now if you just click anywhere on the page, it slides back by itself
[16:11] <iBelieve> xqwzts, what I get is when I release, it slides back
[16:11] <iBelieve> xqwzts, what exactly are you trying to get? I think there might be an easier way
[16:11] <xqwzts> ah you need to flick and release in a quick motion
[16:11] <xqwzts> i might change it to onmove instead of onflick to make it easier
[16:12] <xqwzts> think of it like flicking in angry birds, you're throwing the page out the side :)
[16:13] <xqwzts> actually i think ill definitely do that, have a small threshold for onflick and a large one for onmove, that way they both work
[16:23] <iBelieve> xqwzts, I was able to reproduce your problem
[16:24] <xqwzts> iBelieve: great news! I'm not hallucinating it :P
[16:41] <xqwzts> is it possible to right our own c++ helpers? i keep getting "failed to add to project"
[16:41] <xqwzts> write*
[16:42] <iBelieve> xqwzts, I think the problem is that contentX isn't supposed to be changed to a value outside of the Flickable's view, so it keeps moving the content back into view
[16:42] <iBelieve> xqwzts, but I have no idea what the solution might be
[16:42] <xqwzts> yup iBelieve: something is calling returnToBounds()
[16:42] <xqwzts> iBelieve: thanks for taking the time to look into it
[16:43] <iBelieve> xqwzts, you might be able to try tinkering with leftMargin instead of contentX, but I don't know
[16:43] <xqwzts> good idea, i'll give that a shot
[17:17] <randomcpp|afk> kalikiana, can I ask you a question about u1db.index and query?
[17:59] <mihir> Hi all :)
[17:59] <randomcpp> hi mihir
[18:33] <xqwzts> uhm
[18:36] <xqwzts> is querying working on u1db?
[18:42] <randomcpp> xqwzts, the samples works, but I can't get them working with my db
[18:42] <randomcpp> >.<
[18:42] <xqwzts> I didn't see examples for the queries?
[18:42] <randomcpp> I was pinging kalikiana for this reason
[18:43] <randomcpp> you have to install a package
[18:43] <randomcpp> libu1db-qt5-examples
[18:44] <xqwzts> ah
[18:44] <xqwzts> thanks!
[18:44] <randomcpp> np
[18:44] <randomcpp> then look in /usr/share/u1db-qt or something like that
[18:45] <randomcpp> if you get them working ping me if I'm online
[18:50] <iBelieve> nik90, ping
[18:51] <nik90> iBelieve: pong
[18:52] <iBelieve> nik90, I've been working on the convergent layout and also a new design for viewing categorized. If you have time, could you take a look at it and see what you think?
[18:53] <nik90> iBelieve: yeah sure
[18:53] <nik90> iBelieve: master branch?
[18:53] <iBelieve> nik90, No, adaptive-layouts
[18:54] <iBelieve> nik90, thanks!
[18:55] <nik90> iBelieve: do you know how to clone a subbranch?
[18:55] <nik90> I cloned your main branch by git clone main-branch-link
[18:55] <nik90> but for the sub-subbranch it doesnt show its link
[18:55] <nik90> in which case I will have to manully download the zip to try it out
[18:56] <iBelieve> nik90, Try git fetch then git checkout adaptive-layouts
[18:56] <iBelieve> nik90, do that from the existing clone
[18:56] <nik90> nope, it sayds no such file known to git
[18:57] <nik90> nvr mind I will download the zip
[18:57] <randomcpp> git checkout master/adaptive-layouts
[18:57] <randomcpp> IIRC
[18:57] <randomcpp> nik90, ^
[18:58] <nik90> randomcpp: doesnt work because I havent uploaded my ssh keys to github. So I am cloning via https link
[18:58] <randomcpp> ok..
[18:58] <nik90> but github doesnt provide https link of the sub-branch. weird
[18:58] <nik90> no worries
[18:59] <iBelieve> nik90, I don't remember how to do it, I've done it before, with a clone made using https too
[18:59] <randomcpp> I didin't know that, I always used ssh
[18:59] <iBelieve> nik90, now I want to find out :)
[18:59] <randomcpp> maybe a clone with --mirror
[18:59] <iBelieve> randomcpp, I've always used https since that's the default
[18:59] <randomcpp> should download other branches too
[19:00] <randomcpp> I use ssh so I don't have to type my password every time
[19:01] <nik90> yeah I used it to do it before. But after reinstalling ubuntu, I havent yet uploaded my keys since i hardly use github these days.
[19:01] <nik90> I guess that's changing now :)
[19:05] <nik90> iBelieve: its coming along nicely. Few bugs that I noticed
[19:06] <nik90> iBelieve: bug #1: In the homepage where it shows categories (in sidebar) and its corresponding tasks in the side. When I click on a category it should stay in the same page and display the tasks of that category. Instead now it is taking me into a pagestack for that category.
[19:06] <ubot2`> Launchpad bug 1 in Ubuntu Malaysia LoCo Team "Microsoft has a majority market share" [Critical,In progress] https://launchpad.net/bugs/1
[19:06] <nik90> woops didnt mean that bug 1
[19:06] <nik90> lol
[19:06] <randomcpp> guys see you tomorrow :)
[19:07] <nik90> iBelieve: also when I press New in the homepage, it shows the create new category dialog instead of new task page.
[19:07] <nik90> randomcpp: see you :)
[19:07] <randomcpp> bye :)
[19:07] <nik90> bye
[19:07] <iBelieve> nik90, that's because the home page is supposed to be an overview of all categories and upcoming tasks, so the new button creates a new category
[19:09] <iBelieve> nik90, as for the clicking on category and going to new page stack, I did that because the home page is supposed to an overview, and clicking a category would take the user to a view that would focus solely on the current category/project at hand.
[19:09] <nik90> iBelieve: ah. That's slightly confusing since in the tablet view, when you have categories  in the sidebar, it looks more like a filter where when you press a category, the task list view updates to show tasks in that category.
[19:10] <iBelieve> nik90, I could swap them so the upcoming tasks becomes the sidebar and the categories list becomes the main view
[19:10] <iBelieve> nik90, or I could get rid of the sidebar background and make them both the same witdth
[19:11] <nik90> iBelieve: the question is if the homepage is supposed to be an overview, why is it important to show the user the available categories?
[19:12] <iBelieve> nik90, it isn't that important, but I had the extra space and it didn't make sense to give the tasks list the full width
[19:13] <nik90> okay
[19:13] <nik90> let me grab a screenshot 1 min
[19:15] <nik90> iBelieve: http://imgur.com/MQPNZwT
[19:16] <nik90> iBelieve: this was what I thought of looking at your initial tablet view.
[19:16] <nik90> by separating categories and lists into 2 columns (of same width) would still give a wrong idea and may look weird
[19:19] <iBelieve> nik90, hmm, that's a nice looking view, but it leaves out a place for upcoming tasks, and also would require the task view page to be full width
[19:20] <iBelieve> nik90, well, I could put upcoming tasks in a filter on the left, like the screenshot has. That might be nice.
[19:24] <nik90> let me think a bit. Your designs has advantage has well such as the individual category page where you can click different tasks in the sidebar to view them.
[19:24] <nik90> as well*
[19:25] <mefrio> this kind of things should be in the UI toolkit itself :P https://github.com/Mefrio/Memories/issues/1
[19:26] <nik90> mefrio: +1
[19:27] <mefrio> nik90, and the SDK should do that too :D https://github.com/Mefrio/Memories/issues/4
[19:27] <iBelieve> nik90, thanks for the feedback! I need to go now, if you want to leave any more comments, you can either add them to the Adaptive Layouts bug or wait until I'm on again later today.
[19:35] <mefrio> nik90, do you know where the UI toolkit code is hosted?
[19:35] <nik90> mefrio: https://launchpad.net/ubuntu-ui-toolkit
[19:36] <mefrio> nik90, thank you! :)
[19:36] <nik90> np
[20:28] <mefrio> nik90, do you mean that I should just set the automaticOrientation property to true here: https://github.com/Mefrio/Memories/issues/5?
[20:29] <nik90> mefrio: checking now 1 sec
[20:29] <nik90> mefrio: no
[20:30] <nik90> mefrio: the automaticOrientation property tells you if the device is in portrait or landscape mode alone
[20:30] <nik90> mefrio: if you look through the SDK API, they have dynamic layouting where you can define rules to morph your interface for different screen sizes
[20:30] <nik90> that's what you need to do
[20:31] <mefrio> nik90, so you mean I should use Layout element, right?
[20:32] <nik90> mefrio: yes
[20:32] <Cantide> how do you detect the screen size? based on the width / height of the elements?
[20:32] <mefrio> Cantide, by getting height and width properties from your MainView element
[20:33] <nik90> Cantide: what mefrio said
[20:33] <mefrio> nik90, doesn't is work so just by using units.gu(x)?
[20:33] <Cantide> cool, thanks for the tip :)
[20:34] <nik90> mefrio: yes. But there you are setting a static size. By using layouts, you can define rules to tell your UI to use the space available cleverly
[20:35] <nik90> mefrio: so if your width increases more than say units.gu(60), you can assume a tablet interface. Then you can make another qml element visible when that happens
[20:35] <nik90> the units.gu(60) is just a guess. You will have to play with the numbers to find out the sweet spot
[20:36] <mefrio> nik90, oh now I understand. I am already using something like that for the photo Grid and using dynamic Layouts would allow me to do the same with other widgets too according to the screen size :) thank you! :D
[20:37] <nik90> mefrio: yup. The ubuntu tasks app is doing this since few hours ago. In case you have any doubts, that would be a good source to look at.
[20:37] <nik90> thats what i was discussing with iBelieve sometime back
[20:37] <mefrio> ok let me see tasks app so :)
[20:38] <nik90> its in a separate sub-branch called adaptive-layouts
[20:39] <mefrio> ok thanks
[20:42] <mefrio> nik90, I can't see any graphical usage of that Layout thing...what should I do to notice that?
[20:43] <nik90> mefrio: try reducing the width of the app similar to a phone, and you will see the change
[20:44] <nik90> mefrio: in the tablet interface you will see a sidebar showing the categories which is hidden in the phone interface.
[20:44] <nik90> there are some more small tweaks like that within the app
[20:45] <mefrio> nik90, well no sidebar is displayed here
[20:46] <mefrio> maybe it's still not implemented
[20:46] <nik90> no I just tested it
[20:46] <nik90> did you grab the correct branch?
[20:46] <mefrio> nik90, yes
[20:47] <mefrio> https://github.com/iBeliever/tasks-app/tree/adaptive-layout
[20:47] <mefrio> the one here ^
[20:47] <nik90> so when you first opened the app, what did you see?
[20:47] <mefrio> an empty task list
[20:48] <mefrio> with a TextField at the bottom
[20:48] <nik90> mefrio: let me grab a screenshot. 1 sec
[20:48] <nik90> mefrio: http://imgur.com/Ei7Bqf3
[20:49] <nik90> https://github.com/iBeliever/tasks-app/archive/adaptive-layout.zip
[20:49] <mefrio> let me run your zip
[20:50] <mefrio> nik90, oh now I see! :)
[20:50] <mefrio> maybe I cloned it wrong
[20:51] <mefrio> I am not good with GitHub
[20:51] <mefrio> thanks anyway :D
[20:51] <mefrio> now it looks very interesting! I will certainly implement something like that
[20:52] <nik90> mefrio: yeah I am struggling with github as well.
[20:52] <nik90> that's why I love launchpad. :)
[20:52] <mefrio> Launchpad is so much easier :D
[20:52] <nik90> mefrio: but you get the idea
[20:52] <mefrio> nik90, yes now I have an idea of what I have to do! :D
[20:52] <nik90> dynamic layout will set your app apart from others.
[20:52] <nik90> mefrio: I have a couple more ideas. Will create bug reports for them today
[20:53] <mefrio> nik90, report everything you want! I have to make it rocks! :D