All of lore.kernel.org
 help / color / mirror / Atom feed
* [Printing-architecture] GSOC'09: Common Printing Dialog
@ 2009-03-26 11:02 Per Hermansson
  2009-03-26 16:25 ` Alex Wauck
  2009-03-26 19:15 ` Till Kamppeter
  0 siblings, 2 replies; 7+ messages in thread
From: Per Hermansson @ 2009-03-26 11:02 UTC (permalink / raw)
  To: printing-architecture

Hi,

My name is Per Hermansson and I'm a student from the Royal institute of 
technology in Sweden. I'm interested in developing the common printing 
dialog. Designing a printing dialog with usability in mind seems like an 
important task which if done correct would benefit a lot of people. I 
consider myself to be experienced in C/C++ developing and have developed 
with GTK. Since I've recently switched to KDE I hope to also learn a bit 
about Qt. After some investigation about the idea, I've come up with the 
following questions I hope someone here can answer:

Since designing the interface is a major component would it be possible 
to implement the dialog with both Qt and GTK for one summer? I guess 
this depends on skill level (but e.g. abstracting the dialog model would 
make it easier).

Except for the printing dialog and the cpdapi implementation I guess 
that some kind of abstraction is needed so that the underlying print 
method is decoupled from D-Bus in order to use the api for systems 
without D-Bus?

Also, if two students are chosen for the project what would be a good 
measure for success in modifying other application to use the dialog?

Finally is the cpdapi used (or experimented with) by any applications 
today that you know of?

/Per

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Printing-architecture] GSOC'09: Common Printing Dialog
  2009-03-26 11:02 [Printing-architecture] GSOC'09: Common Printing Dialog Per Hermansson
@ 2009-03-26 16:25 ` Alex Wauck
  2009-03-26 19:15 ` Till Kamppeter
  1 sibling, 0 replies; 7+ messages in thread
From: Alex Wauck @ 2009-03-26 16:25 UTC (permalink / raw)
  To: Per Hermansson; +Cc: printing-architecture

[-- Attachment #1: Type: text/plain, Size: 1935 bytes --]

Per,

My name is Alex Wauck, and I started the implementation of the KDE dialog
last summer.  I intend to continue to work on the project this summer.  So,
if accepted, you would likely be working with me.  If you would like to
learn Qt, this project certainly provides an opportunity for that.  The
current code for the KDE dialog needs some refactoring, and the UI needs
some refinement.  The refactoring may be too complex for someone learning
Qt, but UI refinement should be well within reach.  Also, Lars started a GTK
dialog last summer, and since you have experience with GTK, that would be a
good project for you to work on.


Except for the printing dialog and the cpdapi implementation I guess
> that some kind of abstraction is needed so that the underlying print
> method is decoupled from D-Bus in order to use the api for systems
> without D-Bus?
>

I think the solution for Qt/KDE will subclass QPrintDialog/KPrintDialog with
some way of automatically choosing the right one so that applications don't
need to know whether they are using the Common Print Dialog or a
toolkit-native dialog.  I would imagine a similar arrangement could be made
for GTK/GNOME.

Also, if two students are chosen for the project what would be a good
> measure for success in modifying other application to use the dialog?


My current goal is to have the dialog working in at least one KDE
application (probably Okular) by the end of July.  Since you have experience
with GTK, perhaps you should pick a fairly simple application (Evince?) and
plan to modify it to use the new dialog.

Finally is the cpdapi used (or experimented with) by any applications
> today that you know of?
>

Not that I know of.  I had wanted to get my dialog in KDE 4.2, but that
proved to be way too ambitious.  We have a stupidly simple test application,
but that's it.  Getting the dialog implemented in some actual applications
is a goal for this summer.

Alex

[-- Attachment #2: Type: text/html, Size: 2522 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Printing-architecture] GSOC'09: Common Printing Dialog
  2009-03-26 11:02 [Printing-architecture] GSOC'09: Common Printing Dialog Per Hermansson
  2009-03-26 16:25 ` Alex Wauck
@ 2009-03-26 19:15 ` Till Kamppeter
  2009-03-26 20:45   ` Per Hermansson
  1 sibling, 1 reply; 7+ messages in thread
From: Till Kamppeter @ 2009-03-26 19:15 UTC (permalink / raw)
  To: Per Hermansson; +Cc: printing-architecture

Per Hermansson wrote:
> My name is Per Hermansson and I'm a student from the Royal institute of 
> technology in Sweden. I'm interested in developing the common printing 
> dialog. Designing a printing dialog with usability in mind seems like an 
> important task which if done correct would benefit a lot of people. I 
> consider myself to be experienced in C/C++ developing and have developed 
> with GTK. Since I've recently switched to KDE I hope to also learn a bit 
> about Qt. After some investigation about the idea, I've come up with the 
> following questions I hope someone here can answer:
>

Great, this is a good start for our projects on the Common Printing Dialog.

Note that you will not design the dialog but you will implement it. 
OpenUsability has designed it and in the next days (at the latest 
presented on the OpenPrinting Summit 2009 on April 8-10) a revision of 
the design will be presented. Your task will be one of the following two 
(probably you like the first more):

1. Finish the started implementation work on the GTK and Qt incarnations 
of OpenUsability's Common Printing Dialog, especially implementing the 
embedded preview and taking care of feature-completeness (CUPS page 
management options, Custom options, multi-language PPDs, ...).

2. Modifying/patching common desktop applications to use OpenUsability's 
dialog with live preview via the D-Bus CPDAPI. Priority depends on 
popularity of the apps, starting with OpenOffice.org.

> Since designing the interface is a major component would it be possible 
> to implement the dialog with both Qt and GTK for one summer? I guess 
> this depends on skill level (but e.g. abstracting the dialog model would 
> make it easier).
>

I think there will be enough time, as the design is already complete and 
most of the dialogs already implemented.

> Except for the printing dialog and the cpdapi implementation I guess 
> that some kind of abstraction is needed so that the underlying print 
> method is decoupled from D-Bus in order to use the api for systems 
> without D-Bus?
>

We mostly have the current desktop Linux distros in mind, and they all 
have a D-Bus. We have nothing against alternative coupling methods but 
they do not have the highest priority.


> Also, if two students are chosen for the project what would be a good 
> measure for success in modifying other application to use the dialog?
> 

Dialogs completed and at least OpenOffice.org, Firefox, Thunderbird, 
Evince, and the GIMP being patched (but I have no idea how long patching 
onme app takes). We also need to patch some common KDE apps (for example 
the Konqueror web browser (or however it got renamed in KDE 4).

> Finally is the cpdapi used (or experimented with) by any applications 
> today that you know of?

Not in released software, but Lars Uebernickel (CCed) is implementing 
the CPDAPI in GTK and Qt currently, so that if someone runs GNOME and 
starts a KDE app that he gets the GNOME dialog and vice versa (a first 
stage based only on patching the libs and not using the OpenUsability 
dialog yet).

    Till

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Printing-architecture] GSOC'09: Common Printing Dialog
  2009-03-26 19:15 ` Till Kamppeter
@ 2009-03-26 20:45   ` Per Hermansson
  2009-03-26 23:48     ` Till Kamppeter
  0 siblings, 1 reply; 7+ messages in thread
From: Per Hermansson @ 2009-03-26 20:45 UTC (permalink / raw)
  To: printing-architecture

Till Kamppeter wrote:
> Per Hermansson wrote:
>> My name is Per Hermansson and I'm a student from the Royal institute 
>> of technology in Sweden. I'm interested in developing the common 
>> printing dialog. Designing a printing dialog with usability in mind 
>> seems like an important task which if done correct would benefit a 
>> lot of people. I consider myself to be experienced in C/C++ 
>> developing and have developed with GTK. Since I've recently switched 
>> to KDE I hope to also learn a bit about Qt. After some investigation 
>> about the idea, I've come up with the following questions I hope 
>> someone here can answer:
>>
>
> Great, this is a good start for our projects on the Common Printing 
> Dialog.
>
> Note that you will not design the dialog but you will implement it. 
> OpenUsability has designed it and in the next days (at the latest 
> presented on the OpenPrinting Summit 2009 on April 8-10) a revision of 
> the design will be presented. Your task will be one of the following 
> two (probably you like the first more):
>
> 1. Finish the started implementation work on the GTK and Qt 
> incarnations of OpenUsability's Common Printing Dialog, especially 
> implementing the embedded preview and taking care of 
> feature-completeness (CUPS page management options, Custom options, 
> multi-language PPDs, ...).
>
> 2. Modifying/patching common desktop applications to use 
> OpenUsability's dialog with live preview via the D-Bus CPDAPI. 
> Priority depends on popularity of the apps, starting with OpenOffice.org.
>
Hi Alex and Till

I have seen the interface specification that was linked from the idea 
page. So the final version will be released soon, this sounds like 
excellent news.
I like both tasks but the first one will probably be easier to implement 
since modifying patching other applications is difficult estimate how 
much time it takes. Although it would be and probably not to difficult 
to try as Alex said with an application like Evince.

>> Since designing the interface is a major component would it be 
>> possible to implement the dialog with both Qt and GTK for one summer? 
>> I guess this depends on skill level (but e.g. abstracting the dialog 
>> model would make it easier).
>>
>
> I think there will be enough time, as the design is already complete 
> and most of the dialogs already implemented.
>

I'm not sure if either GTK or Qt implementation needs the most work? If 
Alex is focusing on the KDE dialog it would seem logical to start with 
the GTK implementation. But working with Qt would be fun too, I'm a 
quick learner and will probably have some extra time until the summer 
starts to get into deep with Qt.
I've downloaded and tested the cpdapi code from the Bazar branch and it 
looked very nice but I guess both toolkit versions have to be modified 
to follow the OpenUsability design?

Also as I understand it both tasks (implementing the OpenUsablility 
design and porting desktop applications) can be done independently of 
each other?

>> Except for the printing dialog and the cpdapi implementation I guess 
>> that some kind of abstraction is needed so that the underlying print 
>> method is decoupled from D-Bus in order to use the api for systems 
>> without D-Bus?
>>
>
> We mostly have the current desktop Linux distros in mind, and they all 
> have a D-Bus. We have nothing against alternative coupling methods but 
> they do not have the highest priority.
>
>
>> Also, if two students are chosen for the project what would be a good 
>> measure for success in modifying other application to use the dialog?
>>
>
> Dialogs completed and at least OpenOffice.org, Firefox, Thunderbird, 
> Evince, and the GIMP being patched (but I have no idea how long 
> patching onme app takes). We also need to patch some common KDE apps 
> (for example the Konqueror web browser (or however it got renamed in 
> KDE 4).
>
>> Finally is the cpdapi used (or experimented with) by any applications 
>> today that you know of?
>
> Not in released software, but Lars Uebernickel (CCed) is implementing 
> the CPDAPI in GTK and Qt currently, so that if someone runs GNOME and 
> starts a KDE app that he gets the GNOME dialog and vice versa (a first 
> stage based only on patching the libs and not using the OpenUsability 
> dialog yet).
>
>    Till
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Printing-architecture] GSOC'09: Common Printing Dialog
  2009-03-26 20:45   ` Per Hermansson
@ 2009-03-26 23:48     ` Till Kamppeter
  2009-03-27  0:28       ` Alex Wauck
  0 siblings, 1 reply; 7+ messages in thread
From: Till Kamppeter @ 2009-03-26 23:48 UTC (permalink / raw)
  To: Per Hermansson; +Cc: printing-architecture

Per Hermansson wrote:
> I have seen the interface specification that was linked from the idea 
> page. So the final version will be released soon, this sounds like 
> excellent news.

OK, if you have questions about that, ask Peter Sikking (peter at 
mmiworks dot net), leader of the development of this UI. You can also 
call into the OpenPrinting Summit 2009 at Thursday, April 9 in the 
afternoon PST and participate in the discussion about the newest state 
of the dialog (or attend personally if you are near San Francisco then).

https://www.linuxfoundation.org/en/OpenPrinting/OpenPrinting_Summit_San_Francisco_2009

> I like both tasks but the first one will probably be easier to implement 
> since modifying patching other applications is difficult estimate how 
> much time it takes. Although it would be and probably not to difficult 
> to try as Alex said with an application like Evince.
>

OK.

> I'm not sure if either GTK or Qt implementation needs the most work? If 
> Alex is focusing on the KDE dialog it would seem logical to start with 
> the GTK implementation. But working with Qt would be fun too, I'm a 
> quick learner and will probably have some extra time until the summer 
> starts to get into deep with Qt.
> I've downloaded and tested the cpdapi code from the Bazar branch and it 
> looked very nice but I guess both toolkit versions have to be modified 
> to follow the OpenUsability design?
>

Yes, they are both incomplete and your task is to complete them.

> Also as I understand it both tasks (implementing the OpenUsablility 
> design and porting desktop applications) can be done independently of 
> each other?
> 

Yes, my original idea was to have one student finishing the two dialogs 
and another patching the applications (see ideas list), but it is no 
problem for example if one student does the GTK dialog and patches the 
GTK apps and the second does the KDE dialog and patches the KDE apps. 
And if we get only applications for the dialog stuff and nothing for 
JTAPI, drivers and whatever we offered, we can even put a third student 
onto the dialog. We also can move around work tasks during the GSoC 
(this we did last year as it turned out that Lars got the CPDAPI quickly 
together, so he did also the GTK version of the dialog which the other 
student on the CPD was supposed to do, but the the Qt dialog turned out 
to be more work than expected).

    Till

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Printing-architecture] GSOC'09: Common Printing Dialog
  2009-03-26 23:48     ` Till Kamppeter
@ 2009-03-27  0:28       ` Alex Wauck
  2009-03-28 13:11         ` Per Hermansson
  0 siblings, 1 reply; 7+ messages in thread
From: Alex Wauck @ 2009-03-27  0:28 UTC (permalink / raw)
  To: Till Kamppeter; +Cc: printing-architecture

[-- Attachment #1: Type: text/plain, Size: 1837 bytes --]

>
> Yes, my original idea was to have one student finishing the two dialogs
> and another patching the applications (see ideas list), but it is no
> problem for example if one student does the GTK dialog and patches the
> GTK apps and the second does the KDE dialog and patches the KDE apps.
> And if we get only applications for the dialog stuff and nothing for
> JTAPI, drivers and whatever we offered, we can even put a third student
> onto the dialog. We also can move around work tasks during the GSoC
> (this we did last year as it turned out that Lars got the CPDAPI quickly
> together, so he did also the GTK version of the dialog which the other
> student on the CPD was supposed to do, but the the Qt dialog turned out
> to be more work than expected).


Interesting.  I don't recall being expected to do the GTK dialog.  At any
rate, it should be easier to do other implementations now that we have an
existing implementation.  I would say the hardest part is the interface to
CUPS.  Since CUPS has a semi-object-oriented C API, producing an idiomatic
Qt interface for it is decidedly non-trivial.  Someone familiar with GLib
may find it easier to think in that way, and hence have an easier time with
it.

The next hardest part is making the custom widgets (like the option grid)
and making them look good.  I'm not much of an artist, so I tried to reuse
existing widgets as much as possible, but that didn't look the way Peter
wanted it too.  I still haven't produced a widget that looks right.  The
spec says that the widget toolkit's native grid widget should be used, but
Qt's grid widget is not designed for such use and would look really weird.

Lastly, I ran into a very strange QGraphicsView layout issue that seemed to
occur on every computer except for mine.  Hopefully, there won't be any of
that this year.

Alex

[-- Attachment #2: Type: text/html, Size: 2105 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Printing-architecture] GSOC'09: Common Printing Dialog
  2009-03-27  0:28       ` Alex Wauck
@ 2009-03-28 13:11         ` Per Hermansson
  0 siblings, 0 replies; 7+ messages in thread
From: Per Hermansson @ 2009-03-28 13:11 UTC (permalink / raw)
  To: printing-architecture

Alex Wauck skrev:
>> Yes, my original idea was to have one student finishing the two dialogs
>> and another patching the applications (see ideas list), but it is no
>> problem for example if one student does the GTK dialog and patches the
>> GTK apps and the second does the KDE dialog and patches the KDE apps.
>> And if we get only applications for the dialog stuff and nothing for
>> JTAPI, drivers and whatever we offered, we can even put a third student
>> onto the dialog. We also can move around work tasks during the GSoC
>> (this we did last year as it turned out that Lars got the CPDAPI quickly
>> together, so he did also the GTK version of the dialog which the other
>> student on the CPD was supposed to do, but the the Qt dialog turned out
>> to be more work than expected).
>>     
>
>
> Interesting.  I don't recall being expected to do the GTK dialog.  At any
> rate, it should be easier to do other implementations now that we have an
> existing implementation.  I would say the hardest part is the interface to
> CUPS.  Since CUPS has a semi-object-oriented C API, producing an idiomatic
> Qt interface for it is decidedly non-trivial.  Someone familiar with GLib
> may find it easier to think in that way, and hence have an easier time with
> it.
>
> The next hardest part is making the custom widgets (like the option grid)
> and making them look good.  I'm not much of an artist, so I tried to reuse
> existing widgets as much as possible, but that didn't look the way Peter
> wanted it too.  I still haven't produced a widget that looks right.  The
> spec says that the widget toolkit's native grid widget should be used, but
> Qt's grid widget is not designed for such use and would look really weird.
>
> Lastly, I ran into a very strange QGraphicsView layout issue that seemed to
> occur on every computer except for mine.  Hopefully, there won't be any of
> that this year.
>
> Alex
>
>   
Thanks both of you for your valuable help.
I've done some more research (reading mailing lists archive and links 
provided on the website) and I'm starting to understand what is needed know.
Till (or anyone else), could you review my project idea and see if some 
of it makes sense and that the amount of work is within what is expected.

*Idea*

The project goal for me would be to finalize the OpenUsability design in 
at least one toolkit. My first choice would be to improve and refactor 
the current design written in Gtk. This involves being continue the 
effort to be compliance with the dialog specification and implementing 
support for missing features described in the specification like custom 
options and multi-language PPDs. With good background research and 
preparation I expect this to take at most to the midterm evaluation.

During and after the first phase has been in acceptable compliance with 
the specification I expect that the project can take two ways. Either 
help in the development of finalizing the dialog written in Qt using 
experience and pitfalls gained from the previous implementation. If it's 
at that time estimated that too little time remains to complete the 
dialog (or that the work is already done) the second choice is to begin 
porting a current desktop application to use the new common printing 
dialog API. I've made some brief code inspections and except for Evince 
that was mentioned earlier KDE text editor Kate seems to be valid choices.

*Timeline*

 - Before start of coding:
First objective will be to study the OpenUsability design, probably as a 
few design questions if anything seems unclear. Also study some advanced 
topics in Qt, GTK and CUPS that will be required to implement the 
specification. Eventually look into a few applications that could be 
easily ported to use the common printing dialog, as mentioned above.

 - May 23: (Students begin coding for their GSoC projects)
Between here and the mid-term evaluation refactoring and improvement of 
the existing design is top priority. This will probably be done using 
incremental development since I expect that the features can be broken 
done into individual tasks. Initial work will be done on the GTK dialog 
but I expect that some solutions to some ideas can be shared and also 
implemented in the Qt dialog if missing.

 - July 6: (Mid-term evaluations)
Depending on how quickly the previous phase ended, work finalizing the 
Qt dialog will be given the highest priority. If it's estimated that too 
little time is available, work to implement the dialog in a simple 
desktop application will be prioritized instead.

 - August 10:  (Suggested 'pencils down' date)
At this stage I expect that a larger part of the GTK and Qt will be in 
compliance with the specification all (most?) of the major features 
being implemented and documented. If the finalization of the dialogs 
proceeded according to the timeline above then at least one desktop 
application will be modified to use the new dialog API.

Per

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2009-03-28 13:11 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-26 11:02 [Printing-architecture] GSOC'09: Common Printing Dialog Per Hermansson
2009-03-26 16:25 ` Alex Wauck
2009-03-26 19:15 ` Till Kamppeter
2009-03-26 20:45   ` Per Hermansson
2009-03-26 23:48     ` Till Kamppeter
2009-03-27  0:28       ` Alex Wauck
2009-03-28 13:11         ` Per Hermansson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.