diff --git a/.arcconfig b/.arcconfig new file mode 100644 --- /dev/null +++ b/.arcconfig @@ -0,0 +1,3 @@ +{ + "phabricator.uri" : "https://phabricator.kde.org/" +} diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,25 +1,46 @@ project( klook ) -cmake_minimum_required( VERSION 2.6 ) +cmake_minimum_required( VERSION 3.5.1 FATAL_ERROR ) +set (QT_MIN_VERSION "5.9.0") +set (KF5_MIN_VERSION "5.35.0") # TODO: find an appropriate version -find_package( KDE4 REQUIRED ) -include( KDE4Defaults ) -find_package(KDeclarative) +find_package(ECM ${KF5_MIN_VERSION} REQUIRED CONFIG) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) -find_package( Qt4 REQUIRED QtCore QtGui QtDeclarative ) -include( ${QT_USE_FILE} ) -qt4_automoc( ${qtproject_SRCS} ) -add_definitions( ${QT_DEFINITIONS}) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") # Yeah, everything is deprecated, we know + +include(FeatureSummary) +include(ECMAddAppIcon) +include(ECMInstallIcons) +include(KDEInstallDirs) +include(KDECompilerSettings NO_POLICY_SCOPE) +include(KDECMakeSettings) + +kde_enable_exceptions() # We actually use/handle exceptions + +find_package( Qt5 ${QT_MIN_VERSION} NO_MODULE REQUIRED Core Gui Quick Qml) + +find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS + KDELibs4Support + KIO + Parts + Declarative + Plasma +) + +find_package(Phonon4Qt5 REQUIRED) + + +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) -include_directories( ${KDE4_INCLUDES} ${QT_QDECLARATIVE_INCLUDE_DIR} ${KDECLARATIVE_INCLUDE_DIRS} ) add_subdirectory( icons ) set(EXIV2_MIN_VERSION "0.19") find_package(Exiv2) -macro_log_feature(EXIV2_FOUND "Exiv2" "Provides image metadata support" "http://www.exiv2.org" TRUE ${EXIV2_MIN_VERSION} "") -set( RESOURCES src/resources.qrc ) -QT4_ADD_RESOURCES( QRC_SOURCES ${RESOURCES} ) +set( QRC_RESOURCES src/resources.qrc ) file( GLOB qml_files "${CMAKE_CURRENT_SOURCE_DIR}/src/qml/*.qml" ) @@ -42,21 +63,24 @@ src/rotatedimage.cpp ${qml_files} ) -set_source_files_properties(src/rotatedimage.cpp PROPERTIES COMPILE_FLAGS ${KDE4_ENABLE_EXCEPTIONS}) +#set_source_files_properties(src/rotatedimage.cpp PROPERTIES COMPILE_FLAGS ${KDE4_ENABLE_EXCEPTIONS}) + +file(GLOB ICON_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi*-apps-klook.png" ) +ecm_add_app_icon(klook_SRCS ICONS ${ICON_SRCS}) + +add_executable( klook ${klook_SRCS} ${QRC_SOURCES} ) -kde4_add_app_icon( klook_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi*-apps-klook.png" ) -kde4_add_executable( klook ${klook_SRCS} ${QRC_SOURCES} ) +target_include_directories(klook SYSTEM PUBLIC ${PHONON_INCLUDE_DIR}) -target_link_libraries( klook ${KDE4_KIO_LIBS} - ${EXIV2_LIBRARIES} - ${KDE4_PHONON_LIBS} - ${KDE4_PLASMA_LIBS} - ${KDE4_KFILE_LIBS} - kparts - ${KDECLARATIVE_LIBRARIES} - ${QT_LIBRARIES} - ${QT_QDECLARATIVE_LIBRARIES} - ) +target_link_libraries(klook KF5::KIOCore KF5::KIOFileWidgets KF5::KIOWidgets KF5::KIONTLM + ${EXIV2_LIBRARIES} + KF5::Plasma + ${PHONON_LIBRARY} + KF5::Parts + KF5::Declarative + KF5::KDELibs4Support + Qt5::Core Qt5::Gui Qt5::Qml Qt5::Quick + ) install( TARGETS klook ${INSTALL_TARGETS_DEFAULT_ARGS} ) @@ -66,10 +90,11 @@ install( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/qml/images/ DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}/images ) +#FIX AT SOME OTHER POINT IN TIME #Translations -if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/locale) - find_package( Msgfmt REQUIRED ) - find_package( Gettext REQUIRED ) - add_subdirectory( locale ) -endif() +#if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/locale) + #find_package( Msgfmt REQUIRED ) + #find_package( Gettext REQUIRED ) + #add_subdirectory( locale ) +#endif() diff --git a/dolphin-patches/kdebase-4.9.0-dolphin-klook.patch b/dolphin-patches/dolphin.patch rename from dolphin-patches/kdebase-4.9.0-dolphin-klook.patch rename to dolphin-patches/dolphin.patch --- a/dolphin-patches/kdebase-4.9.0-dolphin-klook.patch +++ b/dolphin-patches/dolphin.patch @@ -1,92 +1,92 @@ -diff --git a/dolphin/src/CMakeLists.txt b/dolphin/src/CMakeLists.txt -index 1a121f8..61ba0b6 100644 ---- a/dolphin/src/CMakeLists.txt -+++ b/dolphin/src/CMakeLists.txt -@@ -27,6 +27,7 @@ set(dolphinprivate_LIB_SRCS +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 263b3ff0c..def9b031d 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -62,6 +62,7 @@ set(dolphinprivate_LIB_SRCS kitemviews/kitemlistgroupheader.cpp kitemviews/kitemlistheader.cpp kitemviews/kitemlistselectionmanager.cpp + kitemviews/kitemlistklooktoggle.cpp kitemviews/kitemliststyleoption.cpp kitemviews/kitemlistview.cpp - kitemviews/kitemlistwidget.cpp -diff --git a/dolphin/src/dolphinmainwindow.cpp b/dolphin/src/dolphinmainwindow.cpp -index d83c9de..9921d9f 100644 ---- a/dolphin/src/dolphinmainwindow.cpp -+++ b/dolphin/src/dolphinmainwindow.cpp -@@ -85,6 +85,8 @@ - #include - #include - #include + kitemviews/kitemlistviewaccessible.cpp +diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp +index d112007bc..14760fccb 100644 +--- a/src/dolphinmainwindow.cpp ++++ b/src/dolphinmainwindow.cpp +@@ -76,6 +76,7 @@ + #include + #include + #include +#include -+#include - - namespace { - // Used for GeneralSettings::version() to determine whether -@@ -118,7 +120,8 @@ DolphinMainWindow::DolphinMainWindow() : - m_settingsDialog(), - m_controlButton(0), - m_updateToolBarTimer(0), -- m_lastHandleUrlStatJob(0) -+ m_lastHandleUrlStatJob(0), + #include + #include + #include +@@ -101,7 +102,8 @@ DolphinMainWindow::DolphinMainWindow() : + m_lastHandleUrlStatJob(nullptr), + m_terminalPanel(nullptr), + m_placesPanel(nullptr), +- m_tearDownFromPlacesRequested(false) ++ m_tearDownFromPlacesRequested(false), + m_isFocusOnTerminal(false) { - // Workaround for a X11-issue in combination with KModifierInfo - // (see DolphinContextMenu::initializeModifierKeyInfo() for -@@ -236,6 +239,8 @@ DolphinMainWindow::DolphinMainWindow() : - if (!showMenu) { + Q_INIT_RESOURCE(dolphin); + +@@ -175,6 +177,8 @@ DolphinMainWindow::DolphinMainWindow() : createControlButton(); } -+ -+ connect (qApp, SIGNAL(focusChanged(QWidget*,QWidget*)), this, SLOT(focusChanged(QWidget*,QWidget*))); - } - DolphinMainWindow::~DolphinMainWindow() -@@ -400,6 +405,15 @@ void DolphinMainWindow::slotSelectionChanged(const KFileItemList& selection) ++ connect(qApp, &QApplication::focusChanged, this, &DolphinMainWindow::focusChanged); ++ + // enable middle-click on back/forward/up to open in a new tab + auto *middleClickEventFilter = new MiddleClickActionEventFilter(this); + connect(middleClickEventFilter, &MiddleClickActionEventFilter::actionMiddleClicked, this, &DolphinMainWindow::slotToolBarActionMiddleClicked); +@@ -279,6 +283,15 @@ void DolphinMainWindow::slotSelectionChanged(const KFileItemList& selection) compareFilesAction->setEnabled(false); } -+ + //KLook + QAction* openInKLook = actionCollection()->action("open_in_KLook"); + if ((selectedUrlsCount > 0) && (!m_isFocusOnTerminal)){ + openInKLook->setEnabled(true); + } else { + openInKLook->setEnabled(false); + } ++ + emit selectionChanged(selection); } -@@ -1651,6 +1665,14 @@ void DolphinMainWindow::setupActions() +@@ -1251,6 +1264,15 @@ void DolphinMainWindow::setupActions() openInNewWindow->setText(i18nc("@action:inmenu", "Open in New Window")); - openInNewWindow->setIcon(KIcon("window-new")); - connect(openInNewWindow, SIGNAL(triggered()), this, SLOT(openInNewWindow())); + openInNewWindow->setIcon(QIcon::fromTheme(QStringLiteral("window-new"))); + connect(openInNewWindow, &QAction::triggered, this, &DolphinMainWindow::openInNewWindow); ++ + + // KLook -+ KAction* openInKLook = actionCollection()->addAction("open_in_KLook"); ++ QAction* openInKLook = actionCollection()->addAction("open_in_KLook"); + openInKLook->setText(i18nc("@action:inmenu", "Preview")); + openInKLook->setShortcut(Qt::Key_Space); -+ openInKLook->setIcon(KIcon("klook")); ++ openInKLook->setIcon(QIcon("klook")); + openInKLook->setEnabled(false); -+ connect(openInKLook, SIGNAL(triggered()), this, SLOT(previewItem())); ++ connect(openInKLook, &QAction::triggered, this, &DolphinMainWindow::previewItem); } void DolphinMainWindow::setupDockWidgets() -@@ -1986,6 +2008,9 @@ void DolphinMainWindow::connectViewSignals(DolphinViewContainer* container) - this, SLOT(goBack())); - connect(view, SIGNAL(goForwardRequested()), - this, SLOT(goForward())); -+ connect(view, SIGNAL(klookTrigger()), -+ this, SLOT(previewItem())); -+ - - const KUrlNavigator* navigator = container->urlNavigator(); - connect(navigator, SIGNAL(urlChanged(KUrl)), -@@ -2130,4 +2155,51 @@ void DolphinMainWindow::UndoUiInterface::jobError(KIO::Job* job) +@@ -1542,6 +1564,8 @@ void DolphinMainWindow::connectViewSignals(DolphinViewContainer* container) + this, static_cast(&DolphinMainWindow::goBack)); + connect(view, &DolphinView::goForwardRequested, + this, static_cast(&DolphinMainWindow::goForward)); ++ connect(view, &DolphinView::klookTrigger, ++ this, &DolphinMainWindow::previewItem); + connect(view, &DolphinView::urlActivated, + this, &DolphinMainWindow::handleUrl); + +@@ -1626,3 +1650,51 @@ void DolphinMainWindow::UndoUiInterface::jobError(KIO::Job* job) } } ++ +void DolphinMainWindow::previewItem() +{ + KFileItemList list; @@ -134,65 +134,73 @@ + } +#endif +} - #include "dolphinmainwindow.moc" -diff --git a/dolphin/src/dolphinmainwindow.h b/dolphin/src/dolphinmainwindow.h -index ab79fb0..f61f173 100644 ---- a/dolphin/src/dolphinmainwindow.h -+++ b/dolphin/src/dolphinmainwindow.h -@@ -36,6 +36,7 @@ +diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h +index 637f41f21..26948ba49 100644 +--- a/src/dolphinmainwindow.h ++++ b/src/dolphinmainwindow.h +@@ -34,6 +34,7 @@ typedef KIO::FileUndoManager::CommandType CommandType; +class DolphinDockWidget; class DolphinViewActionHandler; - class DolphinApplication; class DolphinSettingsDialog; -@@ -51,6 +52,7 @@ class KUrl; - class QSplitter; - class QToolButton; - class QVBoxLayout; + class DolphinViewContainer; +@@ -47,6 +48,8 @@ class QToolButton; + class QIcon; + class PlacesPanel; + class TerminalPanel; +class Panel; ++class QWidget; /** * @short Main window for Dolphin. -@@ -102,6 +104,8 @@ public: +@@ -90,6 +93,9 @@ public: */ KNewFileMenu* newFileMenu() const; ++ // KLook needs this + void focusChanged(QWidget *old, QWidget *now); + + void setTabsToHomeIfMountPathOpen(const QString& mountPath); + public slots: - /** - * Pastes the clipboard data into the currently selected folder -@@ -367,6 +371,12 @@ private slots: +@@ -334,6 +340,11 @@ private slots: + */ void openInNewTab(); - /** -+ * Opens the selected files in KLook. ++ /** ++ * Opens the selected files in KLook + */ -+ + void previewItem(); + -+ /** + /** * Opens the selected folder in a new window. */ - void openInNewWindow(); -@@ -588,6 +598,7 @@ private: - QTimer* m_updateToolBarTimer; - - KIO::Job* m_lastHandleUrlStatJob; +@@ -522,6 +533,7 @@ private: + TerminalPanel* m_terminalPanel; + PlacesPanel* m_placesPanel; + bool m_tearDownFromPlacesRequested; + bool m_isFocusOnTerminal; }; inline DolphinViewContainer* DolphinMainWindow::activeViewContainer() const -diff --git a/dolphin/src/kitemviews/kfileitemlistwidget.cpp b/dolphin/src/kitemviews/kfileitemlistwidget.cpp -index 3a77241..b816fb8 100644 ---- a/dolphin/src/kitemviews/kfileitemlistwidget.cpp -+++ b/dolphin/src/kitemviews/kfileitemlistwidget.cpp -@@ -70,6 +70,44 @@ QString KFileItemListWidgetInformant::roleText(const QByteArray& role, - return text; +diff --git a/src/kitemviews/kfileitemlistwidget.cpp b/src/kitemviews/kfileitemlistwidget.cpp +index 4298101de..c522d701d 100644 +--- a/src/kitemviews/kfileitemlistwidget.cpp ++++ b/src/kitemviews/kfileitemlistwidget.cpp +@@ -23,6 +23,7 @@ + + #include + #include ++#include + + #include + +@@ -97,6 +98,44 @@ QFont KFileItemListWidgetInformant::customizedFontForLinks(const QFont& baseFont } + +QRectF KFileItemListWidget::klookToggleRect() const +{ + const_cast(this)->triggerCacheRefreshing(); @@ -234,23 +242,23 @@ KFileItemListWidget::KFileItemListWidget(KItemListWidgetInformant* informant, QGraphicsItem* parent) : KStandardItemListWidget(informant, parent) { -diff --git a/dolphin/src/kitemviews/kfileitemlistwidget.h b/dolphin/src/kitemviews/kfileitemlistwidget.h -index 24c6778..aea5636 100644 ---- a/dolphin/src/kitemviews/kfileitemlistwidget.h -+++ b/dolphin/src/kitemviews/kfileitemlistwidget.h -@@ -43,6 +43,7 @@ public: - virtual ~KFileItemListWidget(); +diff --git a/src/kitemviews/kfileitemlistwidget.h b/src/kitemviews/kfileitemlistwidget.h +index 7ce415dbe..22970c5e2 100644 +--- a/src/kitemviews/kfileitemlistwidget.h ++++ b/src/kitemviews/kfileitemlistwidget.h +@@ -45,6 +45,7 @@ public: + ~KFileItemListWidget() override; static KItemListWidgetInformant* createInformant(); -+ virtual QRectF klookToggleRect() const; ++ virtual QRectF klookToggleRect() const override; protected: - virtual bool isRoleRightAligned(const QByteArray& role) const; -diff --git a/dolphin/src/kitemviews/kitemlistcontroller.cpp b/dolphin/src/kitemviews/kitemlistcontroller.cpp -index 88f5d9f..c3c1d3d 100644 ---- a/dolphin/src/kitemviews/kitemlistcontroller.cpp -+++ b/dolphin/src/kitemviews/kitemlistcontroller.cpp -@@ -510,6 +510,13 @@ bool KItemListController::mousePressEvent(QGraphicsSceneMouseEvent* event, const + bool isRoleRightAligned(const QByteArray& role) const override; +diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp +index bde2bb26c..1dcf60eee 100644 +--- a/src/kitemviews/kitemlistcontroller.cpp ++++ b/src/kitemviews/kitemlistcontroller.cpp +@@ -570,6 +570,13 @@ bool KItemListController::mousePressEvent(QGraphicsSceneMouseEvent* event, const m_selectionManager->beginAnchoredSelection(m_pressedIndex); return true; } @@ -264,25 +272,25 @@ const bool shiftPressed = event->modifiers() & Qt::ShiftModifier; const bool controlPressed = event->modifiers() & Qt::ControlModifier; -diff --git a/dolphin/src/kitemviews/kitemlistcontroller.h b/dolphin/src/kitemviews/kitemlistcontroller.h -index a881526..0d4be2f 100644 ---- a/dolphin/src/kitemviews/kitemlistcontroller.h -+++ b/dolphin/src/kitemviews/kitemlistcontroller.h -@@ -216,6 +216,8 @@ signals: - void modelChanged(KItemModelBase* current, KItemModelBase* previous); - void viewChanged(KItemListView* current, KItemListView* previous); +diff --git a/src/kitemviews/kitemlistcontroller.h b/src/kitemviews/kitemlistcontroller.h +index 2f84a6c2c..a4e1eb875 100644 +--- a/src/kitemviews/kitemlistcontroller.h ++++ b/src/kitemviews/kitemlistcontroller.h +@@ -241,6 +241,8 @@ signals: + + void selectedItemTextPressed(int index); + void klookTrigger(); + private slots: void slotViewScrollOffsetChanged(qreal current, qreal previous); -diff --git a/dolphin/src/kitemviews/kitemlistklooktoggle.cpp b/dolphin/src/kitemviews/kitemlistklooktoggle.cpp +diff --git a/src/kitemviews/kitemlistklooktoggle.cpp b/src/kitemviews/kitemlistklooktoggle.cpp new file mode 100644 -index 0000000..ea5200e +index 000000000..a6e4edd6a --- /dev/null -+++ b/dolphin/src/kitemviews/kitemlistklooktoggle.cpp -@@ -0,0 +1,106 @@ ++++ b/src/kitemviews/kitemlistklooktoggle.cpp +@@ -0,0 +1,102 @@ +/*************************************************************************** + * Copyright (C) 2011 by Peter Penz * + * * @@ -308,8 +316,6 @@ +#include +#include + -+#include -+ +KItemListKlookToggle::KItemListKlookToggle(QGraphicsItem* parent) : + QGraphicsWidget(parent, 0), + m_hovered(false) @@ -387,14 +393,12 @@ + KIconLoader::global()->iconEffect()->apply(m_pixmap, KIconLoader::Desktop, KIconLoader::ActiveState); + } +} -+ -+#include "kitemlistklooktoggle_p.moc" -diff --git a/dolphin/src/kitemviews/kitemlistklooktoggle_p.h b/dolphin/src/kitemviews/kitemlistklooktoggle_p.h +diff --git a/src/kitemviews/kitemlistklooktoggle_p.h b/src/kitemviews/kitemlistklooktoggle_p.h new file mode 100644 -index 0000000..bf5923e +index 000000000..45eb639af --- /dev/null -+++ b/dolphin/src/kitemviews/kitemlistklooktoggle_p.h -@@ -0,0 +1,61 @@ ++++ b/src/kitemviews/kitemlistklooktoggle_p.h +@@ -0,0 +1,62 @@ +/*************************************************************************** + * Copyright (C) 2011 by Peter Penz * + * * @@ -417,17 +421,18 @@ +#ifndef KITEMLISTKLOOKTOGGLE_H +#define KITEMLISTKLOOKTOGGLE_H + -+#include ++#include + ++#include +#include +#include + +class QPropertyAnimation; + +/** + * @brief Allows to launch klook by clicking on icon overlay + */ -+class LIBDOLPHINPRIVATE_EXPORT KItemListKlookToggle : public QGraphicsWidget ++class DOLPHIN_EXPORT KItemListKlookToggle : public QGraphicsWidget +{ + Q_OBJECT + @@ -456,19 +461,19 @@ +#endif + + -diff --git a/dolphin/src/kitemviews/kitemlistview.cpp b/dolphin/src/kitemviews/kitemlistview.cpp -index 72b3fd8..1519923 100644 ---- a/dolphin/src/kitemviews/kitemlistview.cpp -+++ b/dolphin/src/kitemviews/kitemlistview.cpp -@@ -55,6 +55,7 @@ namespace { +diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp +index f0647fb3e..170d1332f 100644 +--- a/src/kitemviews/kitemlistview.cpp ++++ b/src/kitemviews/kitemlistview.cpp +@@ -69,6 +69,7 @@ QAccessibleInterface* accessibleInterfaceFactory(const QString& key, QObject* ob KItemListView::KItemListView(QGraphicsWidget* parent) : QGraphicsWidget(parent), m_enabledSelectionToggles(false), + m_enabledKlookToggles(false), m_grouped(false), m_supportsItemExpanding(false), m_editingRole(false), -@@ -269,6 +270,25 @@ bool KItemListView::enabledSelectionToggles() const +@@ -292,6 +293,25 @@ bool KItemListView::enabledSelectionToggles() const return m_enabledSelectionToggles; } @@ -494,7 +499,7 @@ KItemListController* KItemListView::controller() const { return m_controller; -@@ -411,6 +431,25 @@ bool KItemListView::isAboveExpansionToggle(int index, const QPointF& pos) const +@@ -457,6 +477,25 @@ bool KItemListView::isAboveText(int index, const QPointF &pos) const return false; } @@ -520,19 +525,19 @@ int KItemListView::firstVisibleIndex() const { return m_layouter->firstVisibleIndex(); -@@ -1880,6 +1919,7 @@ void KItemListView::updateWidgetProperties(KItemListWidget* widget, int index) +@@ -2013,6 +2052,7 @@ void KItemListView::updateWidgetProperties(KItemListWidget* widget, int index) widget->setSelected(selectionManager->isSelected(index)); widget->setHovered(false); widget->setEnabledSelectionToggle(enabledSelectionToggles()); + widget->setEnabledKlookToggle(enabledKlookToggles()); widget->setIndex(index); widget->setData(m_model->data(index)); widget->setSiblingsInformation(QBitArray()); -diff --git a/dolphin/src/kitemviews/kitemlistview.h b/dolphin/src/kitemviews/kitemlistview.h -index 5723b9a..b8c956e 100644 ---- a/dolphin/src/kitemviews/kitemlistview.h -+++ b/dolphin/src/kitemviews/kitemlistview.h -@@ -110,6 +110,9 @@ public: +diff --git a/src/kitemviews/kitemlistview.h b/src/kitemviews/kitemlistview.h +index 8320883f1..ec68c2a13 100644 +--- a/src/kitemviews/kitemlistview.h ++++ b/src/kitemviews/kitemlistview.h +@@ -111,6 +111,9 @@ public: void setEnabledSelectionToggles(bool enabled); bool enabledSelectionToggles() const; @@ -543,75 +548,77 @@ * @return Controller of the item-list. The controller gets * initialized by KItemListController::setView() and will @@ -173,6 +176,7 @@ public: - bool isAboveSelectionToggle(int index, const QPointF& pos) const; - bool isAboveExpansionToggle(int index, const QPointF& pos) const; + */ + qreal verticalPageStep() const; + bool isAboveKlookToggle(int index, const QPointF& pos) const; /** - * @return Index of the first item that is at least partly visible. - * -1 is returned if the model contains no items. -@@ -683,6 +687,7 @@ private: + * @return Index of the item that is below the point \a pos. + * The position is relative to the upper right of +@@ -707,6 +711,7 @@ private: private: bool m_enabledSelectionToggles; + bool m_enabledKlookToggles; bool m_grouped; bool m_supportsItemExpanding; bool m_editingRole; -diff --git a/dolphin/src/kitemviews/kitemlistwidget.cpp b/dolphin/src/kitemviews/kitemlistwidget.cpp -index 6a7111a..d4f70e1 100644 ---- a/dolphin/src/kitemviews/kitemlistwidget.cpp -+++ b/dolphin/src/kitemviews/kitemlistwidget.cpp -@@ -22,6 +22,7 @@ +diff --git a/src/kitemviews/kitemlistwidget.cpp b/src/kitemviews/kitemlistwidget.cpp +index 28b374620..89a54f3a5 100644 +--- a/src/kitemviews/kitemlistwidget.cpp ++++ b/src/kitemviews/kitemlistwidget.cpp +@@ -24,6 +24,7 @@ - #include "kitemlistwidget.h" - -+#include "kitemlistklooktoggle_p.h" #include "kitemlistview.h" - #include "kitemmodelbase.h" + #include "private/kitemlistselectiontoggle.h" ++#include "kitemlistklooktoggle_p.h" -@@ -52,6 +53,7 @@ KItemListWidget::KItemListWidget(KItemListWidgetInformant* informant, QGraphicsI + #include + #include +@@ -47,6 +48,7 @@ KItemListWidget::KItemListWidget(KItemListWidgetInformant* informant, QGraphicsI m_hovered(false), m_alternateBackground(false), m_enabledSelectionToggle(false), + m_enabledKlookToggle(false), m_data(), m_visibleRoles(), m_columnWidths(), -@@ -61,7 +63,8 @@ KItemListWidget::KItemListWidget(KItemListWidgetInformant* informant, QGraphicsI - m_hoverCache(0), - m_hoverAnimation(0), - m_selectionToggle(0), +@@ -56,7 +58,8 @@ KItemListWidget::KItemListWidget(KItemListWidgetInformant* informant, QGraphicsI + m_hoverCache(nullptr), + m_hoverAnimation(nullptr), + m_selectionToggle(nullptr), - m_editedRole() + m_editedRole(), -+ m_klookToggle(0) ++ m_klookToggle(nullptr) { } -@@ -76,6 +79,9 @@ void KItemListWidget::setIndex(int index) +@@ -71,6 +74,9 @@ void KItemListWidget::setIndex(int index) delete m_selectionToggle; - m_selectionToggle = 0; + m_selectionToggle = nullptr; + delete m_klookToggle; -+ m_klookToggle = 0; ++ m_klookToggle = nullptr; + if (m_hoverAnimation) { m_hoverAnimation->stop(); m_hoverOpacity = 0; -@@ -263,6 +269,9 @@ void KItemListWidget::setHovered(bool hovered) +@@ -261,6 +267,10 @@ void KItemListWidget::setHovered(bool hovered) if (m_enabledSelectionToggle && !(QApplication::mouseButtons() & Qt::LeftButton)) { initializeSelectionToggle(); } + if (m_enabledKlookToggle && !(QApplication::mouseButtons() & Qt::LeftButton)) { + initializeKlookToggle(); + } ++ } else { m_hoverAnimation->setStartValue(hoverOpacity()); m_hoverAnimation->setEndValue(0.0); -@@ -306,6 +315,19 @@ bool KItemListWidget::enabledSelectionToggle() const +@@ -311,6 +321,20 @@ bool KItemListWidget::enabledSelectionToggle() const return m_enabledSelectionToggle; } ++ +void KItemListWidget::setEnabledKlookToggle(bool enable) +{ + if (m_enabledKlookToggle != enable) { @@ -628,29 +635,29 @@ void KItemListWidget::setSiblingsInformation(const QBitArray& siblings) { const QBitArray previous = m_siblingsInfo; -@@ -355,6 +377,12 @@ QRectF KItemListWidget::selectionToggleRect() const +@@ -360,6 +384,12 @@ QRectF KItemListWidget::selectionToggleRect() const return QRectF(); } ++ +QRectF KItemListWidget::klookToggleRect() const +{ + return QRectF(); +} -+ + QRectF KItemListWidget::expansionToggleRect() const { return QRectF(); -@@ -463,6 +491,8 @@ void KItemListWidget::slotHoverAnimationFinished() - if (!m_hovered) { - delete m_selectionToggle; - m_selectionToggle = 0; -+ delete m_klookToggle; -+ m_klookToggle = 0; +@@ -475,6 +505,8 @@ void KItemListWidget::slotHoverAnimationFinished() + if (!m_hovered && m_selectionToggle) { + m_selectionToggle->deleteLater(); + m_selectionToggle = nullptr; ++ m_klookToggle->deleteLater(); ++ m_klookToggle = nullptr; } } -@@ -481,12 +511,29 @@ void KItemListWidget::initializeSelectionToggle() +@@ -493,6 +525,20 @@ void KItemListWidget::initializeSelectionToggle() m_selectionToggle->setChecked(isSelected()); } @@ -671,28 +678,30 @@ void KItemListWidget::setHoverOpacity(qreal opacity) { m_hoverOpacity = opacity; - if (m_selectionToggle) { +@@ -500,6 +546,10 @@ void KItemListWidget::setHoverOpacity(qreal opacity) m_selectionToggle->setOpacity(opacity); } + + if (m_klookToggle) { + m_klookToggle->setOpacity(opacity); + } - ++ if (m_hoverOpacity <= 0.0) { delete m_hoverCache; -diff --git a/dolphin/src/kitemviews/kitemlistwidget.h b/dolphin/src/kitemviews/kitemlistwidget.h -index 55181fa..7fd593c 100644 ---- a/dolphin/src/kitemviews/kitemlistwidget.h -+++ b/dolphin/src/kitemviews/kitemlistwidget.h -@@ -33,6 +33,7 @@ + m_hoverCache = nullptr; +diff --git a/src/kitemviews/kitemlistwidget.h b/src/kitemviews/kitemlistwidget.h +index 433048aa0..42f796335 100644 +--- a/src/kitemviews/kitemlistwidget.h ++++ b/src/kitemviews/kitemlistwidget.h +@@ -32,6 +32,7 @@ class KItemListSelectionToggle; class KItemListView; +class KItemListKlookToggle; class QPropertyAnimation; /** -@@ -114,6 +115,9 @@ public: +@@ -115,6 +116,9 @@ public: void setEnabledSelectionToggle(bool enabled); bool enabledSelectionToggle() const; @@ -702,9 +711,9 @@ /** * Sets the sibling information for the item and all of its parents. * The sibling information of the upper most parent is represented by -@@ -181,6 +185,12 @@ public: +@@ -187,6 +191,12 @@ public: */ - virtual QPixmap createDragPixmap(const QStyleOptionGraphicsItem* option, QWidget* widget = 0); + virtual QPixmap createDragPixmap(const QStyleOptionGraphicsItem* option, QWidget* widget = nullptr); + /** + * @return Rectangle for the klook-toggle that is used for item preview. @@ -715,191 +724,189 @@ signals: void roleEditingCanceled(int index, const QByteArray& role, const QVariant& value); void roleEditingFinished(int index, const QByteArray& role, const QVariant& value); -@@ -211,6 +221,7 @@ private slots: +@@ -217,6 +227,7 @@ private slots: private: void initializeSelectionToggle(); + void initializeKlookToggle(); void setHoverOpacity(qreal opacity); void clearHoverCache(); void drawItemStyleOption(QPainter* painter, QWidget* widget, QStyle::State styleState); -@@ -225,6 +236,7 @@ private: +@@ -231,6 +242,7 @@ private: bool m_hovered; bool m_alternateBackground; bool m_enabledSelectionToggle; + bool m_enabledKlookToggle; QHash m_data; QList m_visibleRoles; QHash m_columnWidths; -@@ -238,6 +250,8 @@ private: +@@ -244,6 +256,8 @@ private: KItemListSelectionToggle* m_selectionToggle; QByteArray m_editedRole; + + KItemListKlookToggle* m_klookToggle; }; inline const KItemListWidgetInformant* KItemListWidget::informant() const -diff --git a/dolphin/src/kitemviews/kstandarditemlistwidget.h b/dolphin/src/kitemviews/kstandarditemlistwidget.h -index 787722d..3bc9228 100644 ---- a/dolphin/src/kitemviews/kstandarditemlistwidget.h -+++ b/dolphin/src/kitemviews/kstandarditemlistwidget.h -@@ -157,6 +157,7 @@ protected: - virtual void resizeEvent(QGraphicsSceneResizeEvent* event); - virtual void showEvent(QShowEvent* event); - virtual void hideEvent(QHideEvent* event); +diff --git a/src/kitemviews/kstandarditemlistwidget.h b/src/kitemviews/kstandarditemlistwidget.h +index 220c0ebc3..29b77ba16 100644 +--- a/src/kitemviews/kstandarditemlistwidget.h ++++ b/src/kitemviews/kstandarditemlistwidget.h +@@ -184,6 +184,9 @@ protected: + void hideEvent(QHideEvent* event) override; + bool event(QEvent *event) override; + ++ // TODO: KLook needs this(?) + void triggerCacheRefreshing(); ++ + public slots: + void finishRoleEditing(); - private slots: - void slotCutItemsChanged(); -@@ -164,7 +165,6 @@ private slots: - void slotRoleEditingFinished(int index, const QByteArray& role, const QVariant& value); +@@ -193,7 +196,6 @@ private slots: + void slotRoleEditingFinished(const QByteArray& role, const QVariant& value); private: - void triggerCacheRefreshing(); void updateExpansionArea(); void updatePixmapCache(); -diff --git a/dolphin/src/settings/dolphin_generalsettings.kcfg b/dolphin/src/settings/dolphin_generalsettings.kcfg -index 9f261dc..67d9c30 100644 ---- a/dolphin/src/settings/dolphin_generalsettings.kcfg -+++ b/dolphin/src/settings/dolphin_generalsettings.kcfg -@@ -56,6 +56,10 @@ - - true +diff --git a/src/settings/dolphin_generalsettings.kcfg b/src/settings/dolphin_generalsettings.kcfg +index 5878abcbe..8cb4732bd 100644 +--- a/src/settings/dolphin_generalsettings.kcfg ++++ b/src/settings/dolphin_generalsettings.kcfg +@@ -70,6 +70,10 @@ + + false + + + false + false -diff --git a/dolphin/src/settings/general/behaviorsettingspage.cpp b/dolphin/src/settings/general/behaviorsettingspage.cpp -index 1ade93c..0f3ed6f 100644 ---- a/dolphin/src/settings/general/behaviorsettingspage.cpp -+++ b/dolphin/src/settings/general/behaviorsettingspage.cpp -@@ -42,7 +42,8 @@ BehaviorSettingsPage::BehaviorSettingsPage(const KUrl& url, QWidget* parent) : - m_globalViewProps(0), - m_showToolTips(0), - m_showSelectionToggle(0), -- m_naturalSorting(0) -+ m_naturalSorting(0), -+ m_showKlookToggle(0) - { - QVBoxLayout* topLayout = new QVBoxLayout(this); - -@@ -67,8 +68,13 @@ BehaviorSettingsPage::BehaviorSettingsPage(const KUrl& url, QWidget* parent) : - m_naturalSorting = new QCheckBox(i18nc("option:check", "Natural sorting of items"), this); +diff --git a/src/settings/general/behaviorsettingspage.cpp b/src/settings/general/behaviorsettingspage.cpp +index ba8d0549c..1792f4123 100644 +--- a/src/settings/general/behaviorsettingspage.cpp ++++ b/src/settings/general/behaviorsettingspage.cpp +@@ -37,6 +37,7 @@ BehaviorSettingsPage::BehaviorSettingsPage(const QUrl& url, QWidget* parent) : + m_showToolTips(nullptr), + m_showSelectionToggle(nullptr), + m_naturalSorting(nullptr), ++ m_showKlookToggle(nullptr), + m_caseSensitiveSorting(nullptr), + m_caseInsensitiveSorting(nullptr), + m_renameInline(nullptr), +@@ -81,9 +82,12 @@ BehaviorSettingsPage::BehaviorSettingsPage(const QUrl& url, QWidget* parent) : + m_useTabForSplitViewSwitch = new QCheckBox(i18nc("option:check", "Use tab for switching between right and left split view"), this); topLayout->addWidget(viewPropsBox); -+ -+ // 'Show klook toggle' -+ m_showKlookToggle = new QCheckBox(i18nc("@option:check", "Show preview marker"), this); -+ ++ // 'Show KLook toggle' ++ m_showKlookToggle = new QCheckBox(i18nc("@option:check", "Show preview marker"), this); + topLayout->addWidget(sortingPropsBox); topLayout->addWidget(m_showToolTips); topLayout->addWidget(m_showSelectionToggle); + topLayout->addWidget(m_showKlookToggle); - topLayout->addWidget(m_naturalSorting); + topLayout->addWidget(m_renameInline); + topLayout->addWidget(m_useTabForSplitViewSwitch); topLayout->addStretch(); - -@@ -78,6 +84,7 @@ BehaviorSettingsPage::BehaviorSettingsPage(const KUrl& url, QWidget* parent) : - connect(m_globalViewProps, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(m_showToolTips, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(m_showSelectionToggle, SIGNAL(toggled(bool)), this, SIGNAL(changed())); -+ connect(m_showKlookToggle, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(m_naturalSorting, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - } - -@@ -106,6 +113,7 @@ void BehaviorSettingsPage::applySettings() - globalProps.setDirProperties(props); - } - +@@ -94,6 +98,7 @@ BehaviorSettingsPage::BehaviorSettingsPage(const QUrl& url, QWidget* parent) : + connect(m_globalViewProps, &QRadioButton::toggled, this, &BehaviorSettingsPage::changed); + connect(m_showToolTips, &QCheckBox::toggled, this, &BehaviorSettingsPage::changed); + connect(m_showSelectionToggle, &QCheckBox::toggled, this, &BehaviorSettingsPage::changed); ++ connect(m_showKlookToggle, &QCheckBox::toggled, this, &BehaviorSettingsPage::changed); + connect(m_naturalSorting, &QRadioButton::toggled, this, &BehaviorSettingsPage::changed); + connect(m_caseInsensitiveSorting, &QRadioButton::toggled, this, &BehaviorSettingsPage::changed); + connect(m_caseSensitiveSorting, &QRadioButton::toggled, this, &BehaviorSettingsPage::changed); +@@ -111,6 +116,7 @@ void BehaviorSettingsPage::applySettings() + ViewProperties props(m_url); // read current view properties + + const bool useGlobalViewProps = m_globalViewProps->isChecked(); + settings->setShowKlookToggle(m_showKlookToggle->isChecked()); - const bool naturalSorting = m_naturalSorting->isChecked(); - if (KGlobalSettings::naturalSorting() != naturalSorting) { - KConfigGroup group(KGlobal::config(), "KDE"); -@@ -130,6 +138,7 @@ void BehaviorSettingsPage::loadSettings() + settings->setGlobalViewProps(useGlobalViewProps); + settings->setShowToolTips(m_showToolTips->isChecked()); + settings->setShowSelectionToggle(m_showSelectionToggle->isChecked()); +@@ -145,6 +151,7 @@ void BehaviorSettingsPage::loadSettings() m_showToolTips->setChecked(GeneralSettings::showToolTips()); m_showSelectionToggle->setChecked(GeneralSettings::showSelectionToggle()); + m_showKlookToggle->setChecked(GeneralSettings::showKlookToggle()); - m_naturalSorting->setChecked(KGlobalSettings::naturalSorting()); - } - -diff --git a/dolphin/src/settings/general/behaviorsettingspage.h b/dolphin/src/settings/general/behaviorsettingspage.h -index 3989862..8e810fe 100644 ---- a/dolphin/src/settings/general/behaviorsettingspage.h -+++ b/dolphin/src/settings/general/behaviorsettingspage.h -@@ -58,6 +58,7 @@ private: - QLabel* m_configureToolTips; + m_renameInline->setChecked(GeneralSettings::renameInline()); + m_useTabForSplitViewSwitch->setChecked(GeneralSettings::useTabForSwitchingSplitView()); + +diff --git a/src/settings/general/behaviorsettingspage.h b/src/settings/general/behaviorsettingspage.h +index 779fae377..336e1e759 100644 +--- a/src/settings/general/behaviorsettingspage.h ++++ b/src/settings/general/behaviorsettingspage.h +@@ -62,6 +62,7 @@ private: QCheckBox* m_showSelectionToggle; - QCheckBox* m_naturalSorting; -+ QCheckBox* m_showKlookToggle; - }; - #endif -diff --git a/dolphin/src/views/dolphinitemlistview.cpp b/dolphin/src/views/dolphinitemlistview.cpp -index 039b5f2..81694dc 100644 ---- a/dolphin/src/views/dolphinitemlistview.cpp -+++ b/dolphin/src/views/dolphinitemlistview.cpp -@@ -41,6 +41,7 @@ DolphinItemListView::DolphinItemListView(QGraphicsWidget* parent) : + QRadioButton* m_naturalSorting; ++ QCheckBox* m_showKlookToggle; + QRadioButton* m_caseSensitiveSorting; + QRadioButton* m_caseInsensitiveSorting; + +diff --git a/src/views/dolphinitemlistview.cpp b/src/views/dolphinitemlistview.cpp +index 0655b3308..e2f1ea21b 100644 +--- a/src/views/dolphinitemlistview.cpp ++++ b/src/views/dolphinitemlistview.cpp +@@ -36,6 +36,7 @@ DolphinItemListView::DolphinItemListView(QGraphicsWidget* parent) : KFileItemListView(parent), m_zoomLevel(0) { + setEnabledKlookToggles(GeneralSettings::showKlookToggle()); updateFont(); updateGridSize(); } -@@ -89,6 +90,7 @@ void DolphinItemListView::readSettings() +@@ -84,6 +85,7 @@ void DolphinItemListView::readSettings() beginTransaction(); setEnabledSelectionToggles(GeneralSettings::showSelectionToggle()); + setEnabledKlookToggles(GeneralSettings::showKlookToggle()); + setSupportsItemExpanding(itemLayoutSupportsItemExpanding(itemLayout())); - const bool expandableFolders = (itemLayout() == KFileItemListView::DetailsLayout) && - DetailsModeSettings::expandableFolders(); -diff --git a/dolphin/src/views/dolphinview.cpp b/dolphin/src/views/dolphinview.cpp -index 8050415..86dff91 100644 ---- a/dolphin/src/views/dolphinview.cpp -+++ b/dolphin/src/views/dolphinview.cpp -@@ -148,6 +148,7 @@ DolphinView::DolphinView(const KUrl& url, QWidget* parent) : - connect(controller, SIGNAL(itemUnhovered(int)), this, SLOT(slotItemUnhovered(int))); - connect(controller, SIGNAL(itemDropEvent(int,QGraphicsSceneDragDropEvent*)), this, SLOT(slotItemDropEvent(int,QGraphicsSceneDragDropEvent*))); - connect(controller, SIGNAL(modelChanged(KItemModelBase*,KItemModelBase*)), this, SLOT(slotModelChanged(KItemModelBase*,KItemModelBase*))); -+ connect(controller, SIGNAL(klookTrigger()), this, SIGNAL(klookTrigger())); - - connect(m_model, SIGNAL(directoryLoadingStarted()), this, SLOT(slotDirectoryLoadingStarted())); - connect(m_model, SIGNAL(directoryLoadingCompleted()), this, SLOT(slotDirectoryLoadingCompleted())); -@@ -1528,4 +1529,14 @@ KUrl DolphinView::viewPropertiesUrl() const - return url; + updateFont(); +diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp +index acd66eb57..a52c2e5b5 100644 +--- a/src/views/dolphinview.cpp ++++ b/src/views/dolphinview.cpp +@@ -144,6 +144,7 @@ DolphinView::DolphinView(const QUrl& url, QWidget* parent) : + connect(controller, &KItemListController::itemDropEvent, this, &DolphinView::slotItemDropEvent); + connect(controller, &KItemListController::escapePressed, this, &DolphinView::stopLoading); + connect(controller, &KItemListController::modelChanged, this, &DolphinView::slotModelChanged); ++ connect(controller, &KItemListController::klookTrigger, this, &DolphinView::klookTrigger); + connect(controller, &KItemListController::selectedItemTextPressed, this, &DolphinView::slotSelectedItemTextPressed); + + connect(m_model, &KFileItemModel::directoryLoadingStarted, this, &DolphinView::slotDirectoryLoadingStarted); +@@ -1808,3 +1809,13 @@ void DolphinView::forceUrlsSelection(const QUrl& current, const QList& sel + markUrlAsCurrent(current); + markUrlsAsSelected(selected); } - ++ ++ +KFileItemList DolphinView::sortedItems() const +{ + KFileItemList list; + for (int i = 0; i < m_model->count(); i++) { + list.append(m_model->fileItem(i)); + } + return list; +} -+ -+ - #include "dolphinview.moc" -diff --git a/dolphin/src/views/dolphinview.h b/dolphin/src/views/dolphinview.h -index 10f63c5..a53ee8a 100644 ---- a/dolphin/src/views/dolphinview.h -+++ b/dolphin/src/views/dolphinview.h -@@ -295,6 +295,8 @@ public: +diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h +index ea1b9c007..2c566c0eb 100644 +--- a/src/views/dolphinview.h ++++ b/src/views/dolphinview.h +@@ -296,6 +296,8 @@ public: */ void setViewPropertiesContext(const QString& context); QString viewPropertiesContext() const; + + KFileItemList sortedItems() const; - public slots: /** -@@ -506,6 +508,8 @@ signals: + * Checks if the given \a item can be opened as folder (e.g. archives). +@@ -527,6 +529,8 @@ signals: */ void writeStateChanged(bool isFolderWritable); diff --git a/icons/CMakeLists.txt b/icons/CMakeLists.txt --- a/icons/CMakeLists.txt +++ b/icons/CMakeLists.txt @@ -1,2 +1,3 @@ -kde4_install_icons( ${ICON_INSTALL_DIR} ) -kde4_update_iconcache() +# FIXME +# akde4_install_icons( ${ICON_INSTALL_DIR} ) +# kde4_update_iconcache() diff --git a/src/audio.h b/src/audio.h --- a/src/audio.h +++ b/src/audio.h @@ -24,15 +24,15 @@ #define AUDIO_H #include -#include -#include -#include +#include +#include +#include #include class QHBoxLayout; -class Audio : public QDeclarativeItem +class Audio : public QQuickItem { Q_OBJECT Q_PROPERTY(QString source READ source WRITE setSource NOTIFY sourceChanged) @@ -51,7 +51,7 @@ Q_PROPERTY(QString genre READ genre NOTIFY genreChanged) public: - Audio(QDeclarativeItem* parent = 0); + Audio(QQuickItem* parent = 0); ~Audio(); public slots: diff --git a/src/audio.cpp b/src/audio.cpp --- a/src/audio.cpp +++ b/src/audio.cpp @@ -26,12 +26,12 @@ #include #include -#include -#include -#include +#include +#include +#include -Audio::Audio(QDeclarativeItem* parent) - : QDeclarativeItem(parent) +Audio::Audio(QQuickItem* parent) + : QQuickItem(parent) , m_isPreview(false) , m_isReady(false) { diff --git a/src/declarativeviewer.h b/src/declarativeviewer.h --- a/src/declarativeviewer.h +++ b/src/declarativeviewer.h @@ -22,13 +22,14 @@ #ifndef DECLARATIVEVIEWER_H #define DECLARATIVEVIEWER_H -#include +#include class QRect; class PreviewGenerator; class File; class FileModel; class QPoint; +class QWindow; enum WidgetRegion { @@ -54,11 +55,11 @@ } ArrowPosition; -class DeclarativeViewer : public QDeclarativeView +class DeclarativeViewer : public QQuickView { Q_OBJECT public: - explicit DeclarativeViewer(QWidget *parent = 0); + explicit DeclarativeViewer(QWindow *parent = 0); virtual ~DeclarativeViewer(); void init(QStringList urls, bool embedded = false, const QRect& rc = QRect(0, 0, 0, 0), int indexToShow = 0); @@ -80,9 +81,6 @@ Q_INVOKABLE void updateCurrentFile(int index); -protected: - void resizeEvent(QResizeEvent *event); - signals: void sizeChanged(); @@ -123,6 +121,8 @@ WidgetRegion calculateWindowRegion(const QPoint& mousePos); void setEmbedded(bool); + bool isFullScreen(){return windowState() == Qt::WindowFullScreen;} + void initModel(QStringList urls); void setViewMode(ViewMode mode); void registerTypes(); diff --git a/src/declarativeviewer.cpp b/src/declarativeviewer.cpp --- a/src/declarativeviewer.cpp +++ b/src/declarativeviewer.cpp @@ -37,18 +37,16 @@ #include #include #include -#include -#include #include -#include -#include +#include +#include #include #include +#include -#include +#include #include #include -#include static int header_height = 27; static int border_width = 2; @@ -59,8 +57,8 @@ static int min_width = 600; static int min_height = 427; -DeclarativeViewer::DeclarativeViewer(QWidget* parent) - : QDeclarativeView(parent) +DeclarativeViewer::DeclarativeViewer(QWindow* parent) + : QQuickView(parent) , m_lastMousePosition(0, 0) , m_isSingleMode(true) , m_moving(false) @@ -70,35 +68,30 @@ , m_currentFile(0) , m_region(FRAME_REGION) { - KDeclarative kdeclarative; + KDeclarative::KDeclarative kdeclarative; kdeclarative.setDeclarativeEngine(engine()); kdeclarative.initialize(); kdeclarative.setupBindings(); - setOptimizationFlags(QGraphicsView::DontSavePainterState); - setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate); - - setMouseTracking(true); - engine()->addImageProvider("preview", new PreviewProvider); engine()->addImageProvider("mime", new MimeProvider); engine()->addImageProvider("exif", new ExifImageProvider); - setResizeMode(QDeclarativeView::SizeRootObjectToView); + setResizeMode(QQuickView::SizeRootObjectToView); - setMinimumSize(min_width, min_height); + //setMinimumSize(min_width, min_height); TODO: fixme m_fileModel = new FileModel(this); m_fileModel->setRoleNames(ListItem::roleNames()); PreviewGenerator::instance()->setModel(m_fileModel); registerTypes(); - setWindowFlags(Qt::WindowStaysOnTopHint | Qt::CustomizeWindowHint | Qt::FramelessWindowHint); + //setWindowFlags(Qt::WindowStaysOnTopHint | Qt::CustomizeWindowHint | Qt::FramelessWindowHint); FIXME - setAttribute(Qt::WA_TranslucentBackground); - setStyleSheet("background:transparent;"); + //setAttribute(Qt::WA_TranslucentBackground); FIXME + //setStyleSheet("background:transparent;"); FIXME connect(qApp, SIGNAL(focusChanged(QWidget*, QWidget*)), SLOT(focusChanged(QWidget*, QWidget*))); connect(engine(), SIGNAL(quit()), qApp, SLOT(quit())); @@ -137,38 +130,28 @@ emit setStartWindow(); } -void DeclarativeViewer::resizeEvent(QResizeEvent *event) -{ - if (KWindowSystem::compositingActive()) { - //QRegion mask(QRect(QPoint(), size())); - //Plasma::WindowEffects::enableBlurBehind(winId(), true, mask); - //Plasma::WindowEffects::overrideShadow(winId(), true); - } - - QDeclarativeView::resizeEvent(event); -} - void DeclarativeViewer::registerTypes() { qmlRegisterType