On 01/17/2011 09:29 PM, micu wrote:
> Dear Rui,
> dear other qjackctl devels,
> As a FOSS/GNU+Linux pro-audio enthusiast I am---of course ;)---familiar
> with qjackctl. For some time now, I've been thinking a graph view for
> connecting client ports might be a nice thing to have in qjackctl --- in
> addition to its table view.
> For I wanted to dig deeper into Qt anyway, I started writing a small
> prototype of this graph view. And since they say "Release early, release
> often!", you now find attached the current version of this prototype to
> this email. Furthermore, here
> you find a screen shot of the prototype, which should give you a better
> idea about what I mean by my "graph view" thing.
> The prototype isn't a qjackctl patch so far, but a standalone test
> application, because first I wanted to talk to you
> a) whether you like the idea at all,
> b) on how to integrate the graph view into the GUI,
> c) and into the source code
> (I fear, a little bit of code reorganization---e.g. in
> qjackctlConnect---is necessary if the graph view should be
> inserted in a proper way.),
> before I start hacking it into qjackctl.
> This pretty fresh prototype already includes at least the following
> known bugs:
> * There is no way of disconnecting ports so far :).
> * Client port connectors aren't aligned with their
> corresponding labels. See:
> * The code in qjackctlGraphConnectionWidget::reLayoutConnectionsLines()
> isn't exactly perfectly beautiful.
> * Furthermore, reLayoutConnectionsLines() could be considered a
> performance-critical member function, and the calculations used in
> this method may be a little bit too heavy just for drawing some lines.
> Using combined lines in the QPainterPath instead of only one single
> cubic spline could result in a better solution of this and the
> previous issue.
> * Clients can be moved out of the plane. Probably a scrollable area
> would be the best solution for that.
> * Clients may be moved on top of each other --- a bug or a feature? :D
> * Not a bug, but an idea: In the long term, it could be an option to use
> graphviz for providing automatic client and connection line
> positioning, see <http://mupuf.org/blog/article/34/>.
> Please let me know what you think: about the idea of a graph view, about
> the prototype, about its code, how to proceed, and so on ;).
> Kind regards,
> micu / Michael Voigt
> PS: I developed the code in a local GIT repository. If you are
> interested in the code history and my sometimes silly :) commit
> messages, please let me know it.
excellent! compiled the prototype and it looks good. didn't look at the
code yet. first impression often lie ;)
so, answering your early questions:
a) i like the idea.
b) integration should be easy when everything ready (trivial and obviously:)
c) it shall go as an alternative to current connections widget, it won't
replace the tried and true one at least completely.
i guess next steps would be to make it an actual stand-alone jack
client, just for working out the prototype. making it all scrollable is
a must and should be tamed early. then it immediately follows a need for
zooming and a thumbnail worldview
oh, there's a plenty of possibilities in there ...
thanks for sharing it and welcome!
rncbc aka Rui Nuno Capela