Heads up, working on autocompletion and breadcrumbbar!

Mark markg85 at gmail.com
Mon Jan 16 21:41:58 UTC 2012


On Mon, Jan 16, 2012 at 10:19 PM, Marco Martin <notmart at gmail.com> wrote:

> On Monday 16 January 2012, Mark wrote:
> > On Mon, Jan 16, 2012 at 9:40 PM, Marco Martin <notmart at gmail.com> wrote:
> > > On Saturday 14 January 2012, Mark wrote:
> > > > Hi,
> > > >
> > > > This is just a mail to inform people that I'm working on auto
> > > > completion for QML.
> > > > Initially this was meant for my Breadcrumbbar that i'm also making
> for
> > >
> > > QML,
> > >
> > > > but after making the completion logic in C++ i figured that i might
> as
> > >
> > > well
> > >
> > > > make a generic version that can be used to autocomplete about
> anything.
> > > >
> > > > Work log (AutoComplete):
> > > > - C++ side auto completion: done
> > > > - Auto completion QML component (AutoCompleter): todo
> > > > - Ability to use "AutoCompleter" with TextField and a "dropdown"
> (where
> > >
> > > is
> > >
> > > > that QML plasma component?): todo
> > >
> > > comboboxes aren't supported at the moment, no
> > >
> > > good job on the autocompletition tough
> > > that should be provided transparently in textfield i think..
> > >
> > > Thanx, but remember that only the C++ side works at the moment, there
> is
> >
> > nothing for it in QML.. Yet!
> >
> > > still wondering how to do that, if try to stick with the desktop
> > > components implementation that can still change every day or trying
> > > something new altogether
> >
> > I would go for an API like this (just doing it out of my head..):
> >
> > AutoCompleter
> > {
> >   id: autoCompleter
> > }
> >
> > TextField
> > {
> >   completer: autoCompleter
> > }
>
> what is the advantage of declaring autocompleter independent and outside
> the
> textfield?
>
> (apart being close to impossible to make a c++ based component private :/)
>
> I honestly don't know. I don't even know how to get that working. Kinda
discovering that as i go..
I never made such a complex QML part before.

The idea however is to have one component wich holds the data
(AutoCompleter) and another component to use that data (TextField). How
else would you do it?

>
> > > > Work log (BreadcrumbBar):
> > > > - C++ side: 90% done (uses the C++ AutoComplete as described above
> > > > along with KIO)
> > > > - Binding it to QML: todo
> > > > - BreadcrumbBar qml side: 90% done (no auto completion in it yet and
> > >
> > > there
> > >
> > > > is no theme for it)
> > > >
> > > > My goal with the breadcrumbbar is to make it work exactly like the
> bar
> > > > in Dolphin. Only then written in QML and with fancy animations and
> > > > that is working really well at the moment ^_^
> > >
> > > what i am wondering a bit is the exact use case for it.
> > > since plasmoids are usually intended to be really simple uis, this
> seems
> > > quite
> > > complex.
> > >
> > > and i'm not saying that is not useful per se. i'm just wondering what
> was
> > > your
> > > use case.
> > >
> > > do you have a plasmoid that would use that? if so, should maybe be its
> > > private
> > > component for a while untilthere is a good use case to share it with
> > > others and thus put it in an extended components library..
> >
> > You really want to know that do you..
> > Oke, this element is - at the moment - for pure selfish reasons. In the
> > longer term i want to make a very fancy QML only file browser (see it
> like
> > dolphin on steroids that themselves are on steroids ^_-) and for that i
> > need a breadcrumbbar. Please don't tell me "don't do it" or whatever.
> It's
> > just a technological idea i'm having that i'm trying to make piece by
> > piece.
>
> nono, not telling to not do it, au contraire, could be a very interesting
> thing ;)
>
> I will :)


> i'm just trying to see if kde-runtime is the right place for such a
> component,
> since its use case is mostly that application, and a full, real application
> even, as opposed to plasmoids that really really should stay simple (many
> of
> them are already way too much complicated i think)
>

I think this is where we have a different point of view. I'm thinking in
full blown awesome QML applications. There this component fits.
You're thinking in simple clean and lean plasmoids. There this component
doesn't fit.

The question: what is the intended use of "plasmacomponents"? I think for
both thus this one should be in there as well. In the longer term (like you
say below) it certainly should be in. The question is just for the current
~year or so) Perhaps we should have a "plasmastagingcomponents" as well
where components can go in and out all the time and move them to
"plasmacomponents" when they have been proven to be useful. Nice idea?

>
> so, i really think that at the moment that component should be used
> privately
> by the application and eventually made public when will come the time to
> have
> components for full desktop applications (and *will* come)
> that's not to discourage, is just about putting the things in the right
> place,
> because as soon you put an extra component in an import you commit
> maintaining
> it for the years to come, maintaining source compatibility as well (means
> for
> instance that you won't be able to rename anything, to remove a method, to
> change a property, for at least 2 years or so)
>
> > For example, i want to be able to make this a real app:
> >
> http://fc01.deviantart.net/fs70/f/2011/269/d/7/explorer_mockup_by_ap_graphi
> > k-d2nmjj4.png though
> > that has some usability issues ;)
>
> has usability issues of course, is drawn really well tough ;) would be nice
> seeing experiments like that
>
> > But there is a usecase for it! Just look at kickoff-qml. That app is
> using
> > a breadcrumbbar and now we already have 2 apps with breadcrumbs and 2
> > different breadcrumbbar types: dolphin and kickoff-qml. Who knows how
> many
>
> plasma widgets and qwidgets are designed and meant to be different.
> that's another reason why components for applications and plasmoids
> shouldn't
> mix.
>
> also, in kickof the breadcrumb bar should be much simpler than your use
> case i
> think (no kio support for instance)
>

Ohh, but i can do something about that last part.
I think I can fairly easy make a "useKio" flag. If it's set to true it's
the breadcrumbbar i intended, if set to false then the user must supply the
data. Nice idea?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20120116/8d94d922/attachment.html>


More information about the Plasma-devel mailing list