- Parent style (object) support for css selectors. E.g.: MListItem::BlackItem MLabelStyle::CommonSingleTitle.
- Pressing Ctrl+Q closes all windows.
- Added a small demo application which demonstrates how to use the orientation change support in meegotouch Qt style
- MInputMethodState::toolbar() can be used to query the filename of an already registered IM toolbar. Text edits will use it to reload already registered toolbars, should the meego-im-uisever be restarted after toolbar registration.
- Support for capitalization and italic styling for the font CSS attributes. New syntax goes as follows: "font: family [light|normal|demibold|bold|black] [italic] [mixedcase|uppercase|lowercase|smallcaps|capitalize] size;"
- Automatic orientation changes have been disabled. Now the GUI orientation (landscape vs. portrait) will not follow the accelerometer anymore. While the keyboard is closed it will remain in portrait and while the keyboard is open it will remain in landscape. Naturally, the API to programmatically set and/or lock the GUI to a specific orientation angle still works as usual. In the future there could be a per-device configuration and/or a user setting to specify this behavior, but for the moment it's hardcoded.
- videoGlobalAlpha property in MWindow.
- systemModal property in MDialog split to system and modal properties. System Dialog (in contrast to System Modal Dialog) provides a home button and can be skipped (minimized). Once skipped, it's accessible from the task switcher.
- Application developers can control the behaviour of automatic software input panel (SIP) requests on the MTextEdit level:
- MSceneManager now allows a widget to request cursor visibility directly via the ensureCursorVisible() slot.
- DuiWidget, DuiWidgetController and DuiWidgetView now have event handlers for gestures:
- The DuiApplicationPage's DuiPannableViewport is now accessible through the pannableViewport() method.
- New DuiApplicationPage escapeMode() property. Replaces the old escapeButtonMode() property. Previously, the following code was necessary to implement a regular parentPage -> childPage navigation:
childPage->connect(childPage, SIGNAL(backButtonClicked()), SLOT(dismiss()));
Now only one line is needed:
Manual handling and wiring is still possible, but it's not the default behavior.
- DuiAppletSettingsDialog is now reduced to a single static function: exec(). Do not instantiate DuiAppletSettingsDialog any more; use the static function directly:
- When a scene is off display, all scene window transitions (appearance, disappearance, dismissal) on it will be done immediately by the scene manager (instead of being animated). Check DuiSceneManager::appearSceneWindow() documentation for more information.
- Prestarting functionality extended to support multi-window applications. New enums Dui::LazyShutdownMultiWindow and Dui::TerminateOnCloseMultiWindow to select wanted mode.
- static void DuiApplication::setPrestarted(bool) to manually force release/restore if a custom D-Bus service is used to show a specific window.
- DuiWindow::setCloseOnLazyShutdown(bool) (and bool closeOnLazyShutdown() const) to force close instead of hide during lazy shutdown.
- DuiPannableViewport now allows changing the position indicator to a custom made one.
- MComboBox now have the progress indicator that can be shown for long taking selections.
Removed or Renamed
- DuiRmiClient and DuiRmiServer was removed.
- Removed DuiPopupList's property batchSize and signals: itemModelChanged, selectionModelChanged.
- DuiWindow's visibility signals enteredDisplay() and exitedDisplay() renamed to be displayEntered() and displayExited()
- DuiActionProvider class removed. There was no implementation for the API.
- DuiComboBox's down property removed.
- DuiApplicationPage method renaming:
- pannableAreaInteractive -> isPannable
- setPannableAreaInteractive -> setPannable
- pannableAreaDirection -> panningDirection
- setPannableAreaDirection -> setPanningDirection
- Removed DuiSceneWindow::windowShown, DuiSceneWindow::windowHidden signals, use appeared and disappeared instead (was deprecated since 0.19)
- Removed DuiSceneWindowView::dismissAnimation (was deprecated since 0.18)
- Removed void DuiLocale::installCategoryCatalog(Category category, const QString &name); (was deprecated since 0.18)
- Removed void DuiLocale::removeCategoryCatalog(Category category, const QString &name); (was deprecated since 0.18)
- Removed bool DuiLocale::hasCategoryCatalog(Category category, const QString &name); (was deprecated since 0.18)
- Removed void DuiLocale::loadTrCatalogs(); (was deprecated since 0.19.4-2)
- Removed void DuiLocale::insertTrToQCoreApp(); (was deprecated since 0.19.4-2)
- Removed void DuiLocale::removeTrFromQCoreApp(); (was deprecated since 0.19.4-2)
- Removed support for unneeded gconf keys from DuiLocale. The keys /Dui/i18n/Country, /Dui/i18n/Script, and /Dui/i18n/Variant were never really used in DuiLocale. These don’t make sense as separate keys if they are only parts of a full ICU locale name because it is not possible to combine them arbitrarily to a full locale name.
- escapeButtonMode() property was removed from DuiApplicationPage. Use escapeMode() instead.
- DuiDialog::windowModal() was renamed to DuiDialog::systemModal().
- DuiApplicationPage::pageTitleChanged(DuiApplicationPage *, const QString &title) signal was removed.
- Restored one-argument DuiWindow::setOrientationAngle(Dui::OrientationAngle), the rotation animation is enabled by default and it's disabled if the window is hidden (DuiWindow::isVisible() returns false).
- Dui::OrientationChangeMode was renamed to DuiSceneManager::TransitionMode, Dui::AnimatedOrientationChange was renamed to DuiSceneManager::AnimatedTransition, Dui::ImmediateOrientationChange was renamed to DuiSceneManager::ImmediateTransition.
- DuiSceneManager::showWindow() was renamed to DuiSceneManager::appearSceneWindow(), DuiSceneManager::showWindowNow() was renamed to DuiSceneManager::appearSceneWindowNow(), DuiSceneManager::hideWindow() was renamed to DuiSceneManager::disappearSceneWindow(), DuiSceneManager::hideWindowNow() was renamed to DuiSceneManager::disappearSceneWindowNow(), DuiSceneManager::closeWindow() was renamed to DuiSceneManager::dismissSceneWindow(), DuiSceneManager::closeWindowNow() was renamed to DuiSceneManager::dismissSceneWindowNow()
- DuiWindow::keepCurrentOrientation property was removed
- DuiWindow::isOnDisplay() and DuiWidget::isOnDisplay() are no longer virtual. Those methods shouldn't be overridden.
- DuiApplicationPage, DuiContainer, DuiContainerModel, DuiDialog, DuiDialogModel: centralWidget property type changed to QGraphicsWidget.
- DuiExtensionAreaModel: DataStoreMap type changed to QMap<QGraphicsWidget *, DuiDataStore *>.
- DuiWidget::visibilityChanged(bool visibility) signal removed, use QGraphicsWidget::visibleChanged() instead.
- enum DuiLocale::Calendar was renamed to DuiLocale::CalendarType.
- DuiLocale::calendar() was renamed to DuiLocale::calendarType().
- DuiLocale::setCalendar() was renamed to DuiLocale::setCalendarType().
- DuiAppletVisibilityMessage::visible() was renamed to DuiAppletVisibilityMessage::isVisible()
- All-caps enum DuiAppletMessageType values were renamed to CamelCase:
- DuiAppletMessage::VISIBILITY_MESSAGE was renamed to DuiAppletMessage::VisibilityMessage
- DuiAppletMessage::ORIENTATION_MESSAGE was renamed to DuiAppletMessage::OrientationMessage
- ... Use the supplied libdui/tools/migration-scripts/migrate_duiappletmessagetype script for automatic replacement.
- DuiSceneWindow::appearNow(), DuiSceneWindow::disappearNow(), DuiSceneWindow::dismissNow() - use DuiSceneManager API to forcibly have scene window transitions without animations.
- DuiDialog::DuiDialog(title, centralWidget, standardButtons) was removed. Use DuiDialog::DuiDialog(title, standardButtons) and DuiDialog::setCentralWidget() instead.
- Removed Dui::inputEnabledQuery (was deprecated in 0.16)
- DuiPannableViewport::sizePosChanged() signal was split into three signals: positionChanged(), rangeChanged() and viewportSizeChanged().
- DuiPositionIndicator had several of its methods renamed:
- pannedRange() was renamed to range()
- pannedPos() was renamed to position()
- updateSizePosData() was split into three new methods: setPosition(), setViewportSize() and setRange().
- Removed DuiApplication::releaseMemoryRequested() (was deprecated in 0.19) - will be replaced by Harmattan System Memory Notification API
- Removed DuiDesktopEntry::xMaemoPrestarted() (was deprecated in 0.19) - not relevant anymore. No replacement needed
- Libdui modularization:
- moved src/applicationextension and src/mashup into new library libduiextensions.
- moved src/settingslanguage into new library libduisettings.
- moved part of the views in src/widgets/views to new library libduiviews.
- moved the rest of src/ to new library libduicore.
- You possibly have to update your include pathes.
- You possibly have to update your linking statement in the .pro file. Before: -ldui, now: -lduicore -lduiviews -lduisettings -lduiextensions. Or a subset of these four libs.
- Also make sure that you update duitheme in sync with this update, as it requires some changes in duitheme.
- DuiWidgetController::showAnimation() and hideAnimation() methods were removed.
- Removed DuiWidgetView::contentPosition().
- dismissAnimation() was removed from DuiSceneWindowStyle.
- License changed to LGPL, first public release
- DuiWindow::orientationAngleLocked - this property allows to lock orientation angle changes (use DuiWindow::orientationLocked to lock orientation changes)
- DuiSceneWindow appeared() and disappeared() signals.
- DuiToolBar has one more view for tab actions called as DuiToolbarTabView
- void loadTrCatalogs(), void insertTrToQCoreApp(), void removeTrFromQCoreApp()
- these methods will move into the private class of DuiLocale
- void installCategoryCatalog(Category category, const QString &name);
- was only useful for trid() no replacement needed
- void removeCategoryCatalog(Category category, const QString &name);
- was only useful for trid() no replacement needed
- bool hasCategoryCatalog(Category category, const QString &name);
- was only useful for trid() no replacement needed
- DuiLayout::invalidateLayoutOnly() - this shouldn't be used by anyone.
- DuiAbstractLayoutPolicy::aboutToBeRemovedFromLayout() - this was being used incorrectly instead of removeAt. Use removeAt instead
- DuiWindow::keepCurrentOrientation - replaced by DuiWindow::orientationLocked
- DuiSceneWindow windowShown() and windowHidden() signals. Use the new appeared() and disappeared() signals isnstead.
- DuiApplication::releaseMemoryRequested() - will be replaced by Harmattan System Memory Notification API
- DuiDesktopEntry::xMaemoPrestarted() - not relevant anymore. No replacement needed
- DuiWindow enteredDisplay() and exitedDisplay() signals. Will be renamed to displayEntered() and displayExited() when ABI break is allowed.
- Added "AllComponents" to DuiApplicationPage::Component enum.
- DuiProgressIndicator, Changed runUnknown to unknownDuration in model/controller classes
- DuiTheme, Changed boolean parameter from pixmap directory functions to enum
- DuiTheme, Changed boolean parameter from css loading method to enum
- DuiWindow::keepCurrentOrientation was provided to enable locking the window in current orientation, making it ignore orientation changes.
- On-display visibility for separate windows and widgets. Use isOnDisplay() to check, and enteredDisplay(), exitedDisplay() signals to track the changes of visibility of any window or widget on the display.
- DuiDialog now handles DuiButtonModels instead DuiButtons. DuiDialogModel now contains the list of DuiButtonModels present in the dialog's button box. StandardButtons enum was moved from DuiDialog to Dui namespace.
- Added separate view for checkboxes.
- DuiApplicationWindow::currentPage() method was restored after previous removal.
- Added documentation feature to dui-servicefwgen to allow documentation to be added to Service Framework interfaces.
- Added "Done" to DuiDialog standard buttons.
- Dui-servicefwgen now puts interface method definitions into a Cpp file instead of the H file, with a view to making it easier for app developers to write unit tests.
Removed or Renamed
- Applications theme directory has moved from /usr/share/<app>/ to /usr/share/themes/base/dui/<app>
- DuiGrid removed
- DuiAnimatedIcon removed
- DuiSlideShow removed
- DuiConf removed
- Removed multiline support from simple DuiLabel.
- Old DuiListView removed, now default view is "fast" one.
- Removed DuiComboBox::showPopup(), DuiComboBox::hidePopup()
- Removed signal DuiComboBox::showPopupList(), DuiComboBox::hidePopupList()
- DuiTheme, Removed library registration functions from public API
- DuiTheme, Removed style container registration functions from public API
- progressIndicatorVisibleChanged() signal from DuiApplicationPage. Use modified() signal from DuiApplicationPageModel instead.
- DuiSceneWindow::windowVisible(). Use windowShown() instead.
- DuiApplicationPage fullscreen property. Use autoMarginsForComponentsEnabled instead.
- DuiApplication::appVisible() was removed. Use (entered|exited)Display() and isOnDisplay() from DuiWindow or DuiWidget instead.
- DuiLayout::setAnimator() was renamed to setAnimation()
- DuiLayout::animator() was renamed to animation()
- DuiAbstractLayoutPolicy::size() was removed. Use DuiAbstractLayoutPolicy::count() instead
- DuiLinearLayoutPolicy::insertItem(item, index) was renamed to DuiLinearLayoutPolicy::insertItem(index, item) (to make it consistent with QGraphicsLinearLayout).
- DuiObjectMenu. It's now a private class, not exported by libdui.
- Functions exposing DuiItemState are removed, with the future removal of DuiItemState from the public API. In 0.18 the following functions are removed, replaced with DuiAbstractLayoutPolicy::setItemGeometry() etc instead
- DuiAbstractLayoutPolicy::itemStateAt(int index) const
- DuiAbstractLayoutPolicy::updateLayout(const QList<DuiItemState> &states)
- DuiAbstractLayoutPolicy::updateLayout(const DuiItemState &state)
- DuiDeclarativeSettingsParser, DuiDeclarativeSettingsFactory, DuiDeclarativeSettingsBinary and DuiDeclarativeSettings have been renamed to DuiSettingsLanguageParser, DuiSettingsLanguageWidgetFactory, DuiSettingsLanguageBinary and DuiSettingsLanguageWidget, respectively.
- DuiLayout::findIndexForItem() was renamed to DuiLayout::indexOf
- DuiScene::totalFrameCount() removed
- DuiWidgetAction::setDefaultWidget(DuiWidget* w) renamed to setWidget(DuiWidget* w)
- DuiWidgetAction::defaultWidget() renamed to widget()
- DuiWidgetView::modelChanged() renamed to DuiWidgetView::setupModel()
- DuiWidgetController::modelChanged() renamed to DuiWidgetController::setupModel()
- DuiWidgetView::modelModified() renamed to DuiWidgetView::updateData()
- DuiWidgetView::styleChanged() renamed to DuiWidgetView::applyStyle()
- The following previously deprecated items have now been removed:
- All deprecated functions from DuiList and DuiListModel removed
- DuiApplication::setApplicationWindow, applicationWindow
- DuiTheme, Removed deprecated boxed pixmap functions
- DuiLocale::trid(), DuiLocale::tridcat(), DuiLocale::translateID(), DuiLocale::translateIDCat(), trid() and tridcat(): use qtTrId() instead.
- DuiLocale::DuiLocale(const char *language, const char *country, const char *script, const char *variant, QObject *parent)
- void DuiLocale::setCategoryLocale(Category category, const char *language, const char *country, const char *script, const char *variant)
- DuiBreakIteratorIf, DuiIcuBreakIterator, DuiNullBreakIterator, these are now private.
- DuiApplicationWindow::minimize(). Use showMinimized() instead.
- systemModal property of DuiDialog. Use windowModal instead.
- done() signal of DuiSceneWindow.
- displayMode property of DuiApplicationPage. Use componentDisplayMode() and setComponentsDisplayMode() instead.
- requestPageMove(), restorePageMove() and updateLayout() from DuiApplicationPage.
- closeMode property of DuiNavigationBarModel
- from Dui::InputMethodQueryExtensions enum values ContentTypeQuery, ImPredictionEnabledQuery, ImAutoCapitalizationEnabledQuery, ImMaskedQuery. These are now covered by Qt's ImHints.
- DuiBasicLayoutAnimator has been renamed to DuiBasicLayoutAnimation.
- DuiAbstractLayoutAnimator has been renamed to DuiLayoutAnimation.
- DuiApplication::setAnimator has been removed. Enable/disable animations on a per-layout basis.
- DuiAbstractAddress, DuiAddress, DuiAbstractName and DuiName have been removed.
- DuiLocale::nameFormat and DuiLocale::formatName have been removed.
- DuiSeparator::mode and DuiSeparator::setMode: use orientation and setOrientation.
- DuiInfoBannerView, DuiInfoBanner: BannerState, click(), buttonClick(), DuiInfoBannerModel: state, down
- DuiSceneManager::instance(): use DuiApplication::activeApplicationWindow()->sceneManager()
- DuiSceneManager::orientationValue() and orientationChanging()
- DuiPannableWidget: evaluateTime() and setEvaluateTime()
- DuiLabel: textDirection and setTextDirection: use (set)LayoutDirection
- DuiWidgetController::DuiWidgetController(QGraphicsItem*, DuiWidgetModel*): use the other constructor
- DuiImageModel: borderLeft, borderRight, borderTop, borderBottom
- DuiContainerStyle: titlebarBackground, headerPressedBackgroundImage
- DuiDialogStyle: buttonBoxMargin
- DuiProgressIndicatorStyle: activeElement, inactiveElement, elementBoxedPercent
- DuiTextEditStyle: textBackgroundColor, borderColor, borderStyle, borderWidth, borderRoundness
- DuiStyleCreator: removed deprecated constructor
- DuiStyleSheet::populateStyle() functions
- The naming of DuiAction enums was changed: DuiAction::None, DuiAction::ToolBar_Portrait, DuiAction::ToolBar_Landscape, DuiAction::ToolBar, DuiAction::ApplicationMenu, DuiAction::ObjectMenu and DuiAction::All are deprecated. Please use DuiAction::NoLocation, DuiAction::ToolBarPortraitLocation, DuiAction::ToolBarLandscapeLocation, DuiAction::ToolBarLocation,
- The class DuiProxyWidget got fully removed without deprecation. Usage of proxy widgets had however been discouraged since long for Maemo team developers due to the obvious issues involved with usage of a widget proxy.
- DuiTextEdit got changes suggested in API review:
- QTextCursor * cursor() was replaced with QTextCursor textCursor()
- setMaskedInput() was replaced with setEchoMode() with similar enum values as in QLineEdit
- Im abbreviations in method names were changed to full version "InputMethod", this includes: setImCorrectionEnabled(), imCorrectionEnabled(), setImPredictionEnabled(), imPredictionEnabled, setImAutoCapitalizationEnabled, imAutoCapitalizationEnabled()
- DuiImage was renamed to DuiImageWidget, and the following functions were changed:
- zoomin() and zoomOut were renamed to zoomIn() and zoomOut()
- zoomRatioMode() was renamed to aspectRatioMode
- setZoomRatioMode() was renamed to setAspectRatioMode
- cropSize(), setCropSize(), cropTopLeftPoint and setCropTopLeftPoint were removed. use crop() and setCrop()