Calligra/Meetings/Begin 2011 meeting/Ideas

From KDE Community Wiki

Tell here about things you want to discuss, so that we can prepare an agenda.

Please add yourself as an 'owner' of an idea and prepare something if applicable to make optimal use of our time. Indicates what you want to be developed in a general session (on Saturday), or in a BoF (on Sunday)

General Session

Plugins

(Cyrille)

There are several issues or lacking aspect in Calligra's plugins.

  • First of all right now loading an applications tends to drag a lot of other applications stuff, for instance "the spread sheet shape" which is loaded by many application also load kspread. A solution would be to load shape-on-demand, this trigger a problem with shapes that share the same tag in an ODF file and need some way to know which shape to use (solution could be two c++ plugin, one with a factory one with the shape/tool, or if we can define which shape to use using a text description (like it is done by mimetype definitions) or a small js)
  • UI for enabling/disabling plugin, shapes should probably allways be available for loading a document, but might be hidden in the UI

Release Cycle

(Cyrille)

Keep a 6 month schedule ? go for a three features release cycle per year + 1 long-term-support ? allways summer in trunk ? IE define a new workflow.

Scripting

(piggz)

  • Id like to see each application provide a scripting API, that is callable from all other applications
    • E.g At the click of a button on a form in Kexi, i'd like to use the Tables API to parse, or write out to a spreadsheet, or the Words API to write out a document
    • Or, in tables, run a script that gathers data from various sources, including a kexi database
      • This would probably be possible by sharing the KexiAdapter Kross class?
  • Perhaps..each application could provide a plugin, that exports a single Kross::Object containing the app API/objects??
  • All ideas open for discussion!

Going more Qt-only way

(jstaniek)

i.e. going the smart way, take advantage of our core strengths

  • Intended audience: all devs
  • I propose to go with Qt-only libs a bit more, to make our offerings more independent each-other and drive potential contributions of new kind (Qt-only devs, non-KDE devs...).
  • Filters are good candidates for this group, and especially the lower-level libraries like mso Smart Art, Diagrams.
  • KoReports are nearly Qt-only already (as a fork of OpenRPT it has never used kdelibs in fact). The same for KoProperty lib.
  • I am investing into Qt-only Predicate a lot too ([1]), as you know it'll be dependency of Kexi, hopefully 2.4.
  • Moreover I also believe that every app has some nontrivial bit of code that can be provided on the outside with a simple API, say, using the

Facade pattern. For such APIs, KDE dependencies are not needed.

  • At a conceptual level the idea may evolve into slightly different model of composing our building blocks: develop core functionality as Qt-only (but with cmake) and then extend for KDE, to get the integration level and look&feel we all want. A bit like it is in WebKit/QtWebKit tandem.

Abstraction and custom UIs topics

(jstaniek)

  • Intended audience: library devs and Words, Tables, Stage devs
  • I'll present possible extensions (recognized as low-hanging fruits) for the koabstraction
  • Next steps for the abstraction can be discussed, ans also hopefully with 3rd-party users of the Calligra frameworks
  • Think about examples, demo(s) providing reference code for 3rd-parties

App UI and web page design topics (look, feel, un-clutter, end-user-orientation, power-user-orientation-as-an-option)

  • Decide if it's better to have common knowledge within the Calligra Team about the product design (apps UX and web page UX), and agree on some most fundamental values
    • e.g. see [2]:
      • For web pages and announcements and UI messages: "Don't talk to users in geek language"
      • For web pages and UI messages: "Don't write long texts"
      • For most of the UI: "Forget documentation, users do not read it" (does not apply to power-user features like scripting of course)
      • For UI: "Don't overwhelm users with a multitude of elements" (our dockers is the best example)
      • For UI: "Focus a screen on one task" (again, our dockers is the best example)

Calligra has still something to do regarding messages for end users. Proposal to improve quality of communication:

  • always define the target audience of an announcement, changelog or other news
    • if both specialists and users are the audience, split the content to two separate parts
    • if it's hard to split with simple copy/paste, consider rewriting/recomposing and next time write the text with the above note in mind
  • to identify parts not for end users, ask your wife/girfriend/grandma to read some of the text

ODF compatibility

(yue)

  • What should be the strategy when there is a nice idea but the implementation have to break odf spec (For example the blur-shadow patch I made: to save blur information in drop-shadow you have to add undefined tags which other apps like libreOffice cannot recognize.)

BoF

  • plans for plugins could be discussed in more details by a smaller group of people (Cyrille)