libkdepim cleanup
Open, Needs TriagePublic

Description

We currently have two "dumping ground" repositories: libkdepim and pimcommon, with each of them containing random code that is used by multiple PIM applications. Historically, libkdepim seems to be the older one, but pimcommon seems to contain more things these days, so I think it makes more sense to clean up and eventually kill libkdepim, and keep just pimcommon repo.

We had a wikipage with some analysis of the contents of the repo, but I can no longer find it and it's likely obsolete, so here's an updated list that doesn't get lost that easily :)

libkdepim is split into two libraries - libkdepim (Akonadi-free stuff) and libkdepimakonadi (Akonadi-based stuff). Below is a list of things in both, description and potential action what I think we could do with it:

libkdepim

  • addressline
    • Contains some "utils" code and two classes for "recent addresses" feature.
    • Used exclusively by the libkdepimakonadi/addressline (the rest of the addressline implementation).
    • Move to libkdepimakonadi/addressline to have a single "addressline" library.
  • ldap
    • Contains LDAP KCM and related widgets and tools.
    • Move the AddHostWidgets and other well-reusable pieces to KLDAP.
    • Move the KCM to kdepim-runtime (since it's a runtime thing).
  • misc/broadcaststatus
    • Singleton for setting status messages from anywhere in an application and handling it in a single place.
    • Widely used.
    • Move it to pimcommon.
  • misc/emailvalidator
    • A QValidator for email addresses.
    • Depends on KEmailValidator from KCodecs.
    • Move to ??? (pimcommon/misc?) Can't think of a good Framework to move it to.
  • misc/kcursorsaver
    • RAII class for setting and restoring mouse cursor.
    • Use here and there.
    • Move to KGuiAddons.
  • misc/lineeditcatchreturnkey
    • When attached to a QLineEdit, emits returnPressed() when Enter/Return key is pressed.
    • Seems to be for behavior compatibility with KLineEdit.
    • What does HIG say about this non-standard behavior of QLineEdit? Should we just kill this?
  • misc/maillistdrag
    • Handling drag&drop of a list of MIME messages onto the app icon in Kontact :-O
    • It appears that there's no PIM application that could generate mimedata of x-kmail-drag/message-list mimetype.
    • Could likely be removed completely.
  • misc/uistatesaver
    • Saves and restores state for QSplitter, QTabWidget, QTreeView and QComboBox
    • Could be in KWidgetsAddons? Depends on KConfig, though.
  • multiplyingline
    • Generic widget for adding/removing lines of a widget.
    • Could be in KWidgetsAddons
  • prefs
    • Looks like legacy pre-KConfig stuff.
    • Still in use in KOrganizer.
    • Port away from it and kill it.
  • progresswidget
    • Generic status bar widget for tracking progress of multiple operations.
    • KDevelop has its own fork of this.
    • Move to KWidgetsAddons
  • widgets/customlogwidget
    • A PIM logging widget, widely used.
    • Move to pimcommon.
  • widgets/kcheckcombobox
    • QComboBox with checkable items.
    • Move to KWidgetsAddons.
  • widgets/kdatepickerpopup
    • QMenu with "Today", "Tomorrow", etc. items.
    • Only used in calendaring apps move to CalendarSupport.
  • widgets/kweekdaycheckcombo
    • KCheckCombobox prepopulated with weekdays.
    • Only used in IncidenceEditor, move it there.
  • widgets/kwidgetlister
    • Manages a list of widgets with "More", "Fewer" and "Clear" buttons.
    • AkonadiContacts has its own copy of this.
    • Used here and there.
    • Is there some relation/duplication between this and the MultiplyingLine widget?
  • widgets/overlaywidget
    • Generic dialog/window overlay widget, used only in single place.
    • Can be removed.
  • widgets/pimmessagebox
    • QMessageBox with four buttons.
    • Used in only three places, I think the code can be duplicated there.
    • Kill.
  • widgets/progressindicatorlabel
    • KBusyIndicatorWidget with a QLabel
    • Improve the KBusyIndicatorWidget, remove this.

libkdepimakonadi

  • addressline
    • Complex widget with for entering contacts/email addresses with auto-completion from Akonadi and LDAP.
    • Move to pimcommon.
  • job
    • Various jobs to add/search/edit contacts in Akonadi.
    • Move to akonadi-contacts.
  • progresswidget
    • Akonadi integration for the generic progresswidget from libkdepim.
    • Move to pimcommon (or Akonadi, if the generic progresswidget widget gets moved to Frameworks.
dvratil created this task.May 14 2020, 6:18 PM
dvratil updated the task description. (Show Details)

"widgets/customlogwidget" moved to pimcommon

mlaurent updated the task description. (Show Details)Jun 11 2020, 3:13 PM
mlaurent updated the task description. (Show Details)
mlaurent updated the task description. (Show Details)Jun 11 2020, 5:49 PM
mlaurent updated the task description. (Show Details)Jun 12 2020, 5:41 AM
mlaurent updated the task description. (Show Details)Jun 12 2020, 6:08 PM
mlaurent updated the task description. (Show Details)Jun 13 2020, 11:59 AM
mlaurent updated the task description. (Show Details)Jun 14 2020, 9:12 AM
mlaurent updated the task description. (Show Details)Jun 14 2020, 9:25 AM
mlaurent updated the task description. (Show Details)Jun 14 2020, 10:02 AM
mlaurent updated the task description. (Show Details)Jun 15 2020, 5:03 AM
mlaurent updated the task description. (Show Details)Jun 15 2020, 5:23 AM
mlaurent updated the task description. (Show Details)Jun 15 2020, 11:23 AM
mlaurent updated the task description. (Show Details)Jun 16 2020, 6:00 AM
mlaurent moved this task from Backlog to In Progress on the KDE PIM board.Jun 16 2020, 10:54 AM
mlaurent updated the task description. (Show Details)Jul 23 2020, 5:36 AM