Print manager

Hi all,

If you follow my last post you are probably wondering what KPackageKit has to do with print manager!? Well basically nothing, actually what happened is that while I wait for debconf developers to finish the DBus support, I decided I should work on other things that are not good in KDE 4 to me.

If you don’t use Debian the printer-applet made in python probably works, but here don’t,Β  I never saw it in action, it simply crashes both System Settings and the printer-applet. If the bug is on the deb package or in the application itself I don’t know but when I let it running during the weekend (and doing nothing) it ate 1,5 GB of memory.

This is one of the components that I use a lot and that must work well and be simple, for a simple exercise I looked at cups API and found it was dam simple to create a simple printer queue, If you know me you know I’m no fan of python (Aptcc is an example of me trying to get rid of it), so improve printer-applet would never be an option, also just to monitor the jobs it eats 19mb which also makes your startup slower, in Jonathan’s blog you can see I’m not the only one thinking this way.

Enough said, in 2 weeks of work I have a print queue that can hold, resume and cancel jobs, pause/resume printer, drag and drop a job from one queue to another and filter the kinds of jobs you’d like to see in the queue. While KDE 4.4 is not packaged on Debian (hopefully next week I’ll have it πŸ˜€ ) I did not work on the systray stuff since I’m waiting for the new class that KDE 4.4 has, but thankfully Jonathan (from that post) is already working on it, besides the queue I created a kded module that when loaded adds ~2mb to the kded4 process and keep an eye on your jobs, when it see on it will show the printer icon on systray.

Now I’ll finish some small bits (like getting more status from the printer), and I’ll start the System Setting module.

Hope you like it, and if you see Nuno Pinheiro around ask him for a Resume Job icon πŸ˜›

When a wicked man dies, his hope perishes; all he expected from his power comes to nothing. Prov. 11:7 (NIV).

UPDATE 02-18: A new mockup:

Print manager

45 thoughts on “Print manager

  1. Znurre says:

    Awesome, the UI looks great imo.
    You’re not the only one who dislikes python (or any interpreted language for that matter) applications.

    1. dantti says:

      Why strange layout? What would be normal?
      That’s just a job queue, you don’t need much options (as cups also doesn’t provide much), ok/cancel buttons…

      1. J Janz says:

        I guess the weird part is the freaking huge status icon! … Well … Just a guess … πŸ˜‰

        BTW, I supose that button should be “Resume Printing” (or something shorter you could come up with) instead of “Resume Printer”, should’n it?

  2. J Janz says:

    Oh, I missed it: if there’s a Resume button, what does the Resume Printer button do? You can suspend the whole printer (that is, its jobs) and resume it (them)?

    1. dantti says:

      Resume button resumes a job;
      Resume Printer which can also be Pause Printer,
      If you go to localhost:631 you will se you can Pause a printer, which will be able to receive jobs but won’t start printing till you Resume Printer,
      there is a Reject Jobs on cups page that makes all jobs to be rejected.
      So the buttons are more about Cups options…
      Hope this clarifies.

    1. dantti says:

      Right so you think every thing related to printer should be grouped and everything related to jobs also grouped.
      well actually I don’t agree much I think what need to be grouped is what’s more used,
      when you click on a job the first 3 buttons leave the disable state, so It’s pretty instantaneous for you to understand
      that its about jobs, the Resume printer does speaks for it’s own, and the right two buttons have very low usage that’s why they are on the right.
      If you can describe how you would like it more, we can give it a try.

      1. Parker says:

        How about just moving the two “green” buttons above the separator? I’m not sure.

        I do agree with Eckhart that mixing job and printer buttons makes things a bit unclear. Does “Configure” configure the currently selected job or the printer?

      2. dantti says:

        Which green buttons?
        The configure configures the printer, there’s nothing to configure on a job when it’s sent (afaik :P)

      3. pheder says:

        This is something not everyone knows about, isn’t it? It’s about how a printer works internally, not very obvious.

  3. That interface is BEAUTIFUL, but I think you can improve it in a simple way: integrate the pause/resume into the status icon, or put it beside the icon. Having two icons of pause/resume is a bit redundant.

  4. Stephen says:

    Sorry but this UI looks cluttered and messy.

    I’m not one to be a complaining user because its clear that you have put a lot of effort into this behind the scenes – however the UI really screams poor design to me.

    I haven’t looked at a KDE print / job manager in a while, but I think they need to be seperate.

    I think Eckhart is onto something here, you don’t organise things based on frequency of use in a UI – even if the layout isn’t complex. You need to put them into their seperate groupings so people can find the options more easily.

    The big printer icon is also a bit of an eyesore πŸ™‚

    Collapsing the applet down a bit too wouldn’t hurt.

    1. dantti says:

      Well I think some love it and some hate it πŸ˜› that was not what I was expecting but I’d like some good ideas from the ones who complain.
      The so called huge icon is actually using a possibly wasted space, i have a tool bar and text to be displayed
      if the icon is smaller than it will have lots of empty space.
      The pause overlay might be a bit redundant but there no chance you don’t know why the printer is not printing…
      Also integrating things is not good for an user, he has to find out that passing the mouse over the huge icon can pause the printer,
      that’s much easier when you can read “pause printer”.
      I really think if you use for just a while you will like it…

    1. Uniq says:

      I’d prefer this clean UI approach.

      Thanks Daniel and Eckhart for your work. Improving the printing in KDE is really necessary and I am sure it is acclaimed by many users.

    2. dantti says:

      your UI wastes too much space imo, but I’m trying to improve the ui, the sad part is that some love and
      others hate which is hard to choose what is better. 😦

  5. Astreek says:

    Thank you form making a C++ printer manager!
    I don’t hate python, but using 20MB only for monitoring something that I may use once a week is not a good idea.

    Can we have some nice deb packages?

    When will this be part of KDE? 4.4.1; 4.5?

    The interface is now not so important, the important is that it is written in C++. The interface can easily be rearranged. Eckhart mock-up is also a good option.

    1. dantti says:

      not sure about .deb packages since I hope it to ender in some kde module which means it will be packaged by Debian packagers,
      about it in Kde I really hope for it to be in KDE 4.5, it’s too late for 4.4 (also what works is just the queue…)

      1. tittiatcoke says:

        Is that tree complete ? It compiles fine, but after installation it is complaining that it can’t find kcm_print. The readme is saying something about kcmprint, but this whole directory is not there.

        Would love to have a go at this one


  6. Cyrus says:

    This is great stuff! Just one question left, by looking at the mookups. How are you integrating 5 printers?

    It’s hard to decide which mockup is better, but in the end I prefer

    because it looks better and space doesn’t matt so much for me.

    But maybe there are even better solution for this. How about asking for something like that in this kde Forum : (Interface & Design)

    Mybe there are some usebility experts. Hope to see this great stuff in KDE SC 4.5 and Opensuse 11.3.

  7. nullo says:

    Nice stuff. How about adding colors or icons (a bit more visual feedback) to the printing states? I.e. “On hold” in orange, “Failed” in red, etc.. or some meaningful icon?

  8. John says:

    Good to see some work on this, I’d love to see it added to KDE but there’s a couple of areas you’ll need to cover off first.
    1) KDE officially supports printing via lpr as well as CUPS, so you’ll need to be able to fall back to listing jobs in the lpr queues if the user doesn’t have CUPS (rare but not unheard of)
    2) You’ll need to at least match the feature set of the current applet, but if possible it would be great to add back in the missing features from KDE3, see bug for more details.

    1. dantti says:

      for 1) it will support only cups, which is already a hard job, also I don’t know how to make prints without cups
      for 2) I’ll take a look BUT this printer-manager is a complete new stuff so I don’t/won’t care about KDE3 features.

      1. John says:

        Well, I think you do actually care, you’ve already added back in missing features like sortable columns and moving between queues πŸ™‚ The KDE3 KJobViewer was the result of years of development and user feedback on what was needed in a printer applet, it would be useful to learn what it did well.

        As for lpr, that’s your choice, but it wouldn’t need to be full support, just reading the queues and allowing users to cancel jobs would be enough, but it is a very small minority who still use it.

      2. dantti says:

        Well what I meant was that I do not look at the old cups stuff that was on kde3, I just added what I thought to be useful, and what cups supports πŸ˜€
        But If actually added stuff that was needed nice them, and if lpr is just about this I think patching the code won’t be too hard It’s just that I don’t have a setup to test that/ nor time to work on it πŸ˜›
        If it’s just about parsing cmd line stuff I can try to add support for that but I’d need the commands to use…

  9. Felix says:


    i realy like it and no matter which version you choose it is an improvement. Could you align the time right, this looks strange right now …

    regards and thanks

  10. Eckhart says:

    I’d like to see your second mock-up combined with my job list (only the list view, and not necessarily the spacing, but the highlighting of the current job and the icons with the paused jobs). πŸ™‚

  11. Fri13 says:

    FINALLY someone is doing great job for the printers owners. It is hard to imagine that even on KDE SC 4.4 we are lacking a _printing_ GUI.

    I needed to configure a few printers on last week and I must say the current GUI is so terrible that I liked to use the CUPS trough browser what has got as well some love by Apple!

    And on last week I have helped again different people who has computer skills in level zero. They do not even know where to find what buttons on keyboard, what is left and right button in mouse etc. And I needed to give support for Windows 7. And one thing what I noticed right away, is that every function what is possible to be clicked. It must look like a button. It can not be a colored/underlined or anykind text or icon. It needs to be like button like we have the Oxygen OK/Cancel buttons.

    That one looks just marwelous because it has space and buttons. But I do not like at all about the configuration button being on right side. It makes harder to link it to printer itself. Same thing is with the big icon that the two buttons under it does not seem to fit there with the text of printer.

    I would love to see that so the buttons on top right corners are like buttons, not just icons+text. And the joblist buttons I think I would place under the list. So they would not be under the printer icon/text. Even that they have the grouping box between printer icon and the funciotns itself, it makes unclear what they do.

    Has there be a any discussion in kde-usability mailinglist about this?

    1. Eckhart says:

      Okay, next version. taking some of your comments into account:

      This one takes a bit more vertical space, should still work fine on a 640×480 screen.

      1. dantti says:

        Hehe I was thinking on something like that on Brazil’s carnaval πŸ˜›
        The only thing I thinking on doing differently is the
        cancel, hold, resume and show jobs, my idea is to put them inside the view at the botton like you have put, but as plain buttons not raised (will look ugly inside).
        When I have something I’ll post here πŸ˜€

      2. dantti says:

        Ok it looks like what you proposed, the list needs some love though but I’ll leave this for later since creating a delegate is not so easy.
        hope you like it now,

      3. Fri13 says:

        “my idea is to put them inside the view at the botton like you have put, but as plain buttons not raised (will look ugly inside).”

        The resume/hold buttons could be in every job line as well. And the remove as last button on right.

        But buttons should stay as much looking like buttons. If they are just text or even just a small icon with them, avarage user does not know they can click it. It is not clear for them. (What makes them to be included inside the list more harder).

        When the functions looks like the button, it is clear that you can click it. Normal user can be afraid to click anything because they are not familiar what every click does.

      4. Fri13 says:

        Oh, and how about in that new mockup to move the “show completed jobs” to top just right side of same line as “active, accepting jobs” and then placing a bottom right corner a button “Close” to indicate user can close the window. Now you can not hide the window anywhere else than from top right corner.

        Or change the “Show completed jobs” as a button what stays pressed and when you click again, it comes back to normal button?

      5. dantti says:

        There will (for sure) be ppl complaining about wanting to see ALL jobs, completed jobs and active jobs, that’s why that last button is a toolButton that shows a menu with these three options.
        That’s why it can’t be a check box, also i think putting it on top right might confuse users too.
        About the close I think it only makes sense when you have more options, this will just duplicate the (X) functionality.

      6. Fri13 says:

        >About the close I think it only makes sense when you have more options, this will just duplicate the (X) functionality.

        The X in windowmanager is not duplicate for [Close] button. Normal people does have lots of problems to understand what the X does. They are unsure does it store the edits, does it undo all or what it does.

        In this case when we can not have [OK] and [Cancel] buttons, there should be [Close] button.

        Some configurations does not even have buttons in windowdecorations.

  12. Fri13 says:

    What KDE HIG says about the dropdown list box what you have updated to the bottom right corner?

    Usually those are for special selections but not for changing the view somewhere else. Like filtering the view what it is now doing.

    Shound’t the Active/Paused/Canceled/Completed jobs view be swtiched by the buttons what stays down when selected? Work like the Preview button in the Dolphin toolbar, when pressed it is activated.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s