1
0
mirror of https://invent.kde.org/system/dolphin synced 2024-07-02 16:31:23 +00:00

Move the KVersionControlPlugin2 interface from konqlib to Dolphin and remove the deprecated KVersionControlPlugin interface from konqlib

REVIEW: 122687
This commit is contained in:
Emmanuel Pescosta 2015-02-25 12:12:55 +01:00
parent f6b4f56216
commit 25751088c3
58 changed files with 469 additions and 194 deletions

View File

@ -3,18 +3,25 @@ cmake_minimum_required(VERSION 2.8.12)
project(Dolphin)
# ECM setup
find_package(ECM 1.2.0 CONFIG REQUIRED)
find_package(ECM 1.6.0 CONFIG REQUIRED)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
set(DOLPHIN_VERSION "4.97.0")
include(ECMSetupVersion)
include(ECMGenerateHeaders)
include(GenerateExportHeader)
include(FeatureSummary)
include(KDEInstallDirs)
include(KDECMakeSettings)
include(KDEFrameworkCompilerSettings)
ecm_setup_version(${DOLPHIN_VERSION} VARIABLE_PREFIX DOLPHINVCS
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_version.h"
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfigVersion.cmake"
SOVERSION 5
)
ecm_setup_version(${DOLPHIN_VERSION} VARIABLE_PREFIX DOLPHINPRIVATE
SOVERSION 5
)
@ -24,12 +31,6 @@ find_package(KF5 COMPONENTS Activities)
find_package(Phonon4Qt5 CONFIG REQUIRED)
if ("${CMAKE_SOURCE_DIR}" STREQUAL "${Dolphin_SOURCE_DIR}")
find_package(KF5Konq CONFIG REQUIRED)
else()
include_directories(${LibKonq_SOURCE_DIR}/src)
endif()
find_package(KF5Baloo 4.97)
set_package_properties(KF5Baloo PROPERTIES DESCRIPTION "Baloo Core libraries"
URL "http://www.kde.org"
@ -58,6 +59,33 @@ endif()
add_subdirectory(src)
add_subdirectory(docs)
# CMake files
set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/Dolphin")
ecm_configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/DolphinVcsConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
)
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfigVersion.cmake"
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
COMPONENT Devel
)
install(EXPORT DolphinVcsTargets
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
FILE DolphinVcsTargets.cmake
)
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_version.h"
DESTINATION "${KDE_INSTALL_INCLUDEDIR}/Dolphin"
COMPONENT Devel
)
# TODO Remove the if/endif lines if Dolphin is split.
if ("${CMAKE_SOURCE_DIR}" STREQUAL "${Dolphin_SOURCE_DIR}")
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)

View File

@ -0,0 +1,6 @@
@PACKAGE_INIT@
find_dependency(Qt5Widgets)
find_dependency(KF5KIO)
include("${CMAKE_CURRENT_LIST_DIR}/DolphinVcsTargets.cmake")

View File

@ -12,6 +12,42 @@ endif()
configure_file(config-X11.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-X11.h)
##########################################
set(dolphinvcs_LIB_SRCS
views/versioncontrol/kversioncontrolplugin.cpp
)
add_library(dolphinvcs ${dolphinvcs_LIB_SRCS})
generate_export_header(dolphinvcs BASE_NAME dolphin)
target_link_libraries(
dolphinvcs PUBLIC
Qt5::Widgets
KF5::KIOCore
)
set_target_properties(dolphinvcs PROPERTIES
VERSION ${DOLPHINVCS_VERSION_STRING}
SOVERSION ${DOLPHINVCS_SOVERSION}
EXPORT_NAME DolphinVcs
)
ecm_generate_headers(dolphinvcs_LIB_HEADERS
HEADER_NAMES
KVersionControlPlugin
RELATIVE "views/versioncontrol"
REQUIRED_HEADERS dolphinvcs_LIB_HEADERS
)
install(TARGETS dolphinvcs EXPORT DolphinVcsTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
install(FILES views/versioncontrol/fileviewversioncontrolplugin.desktop DESTINATION ${KDE_INSTALL_KSERVICETYPES5DIR})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dolphin_export.h DESTINATION ${KDE_INSTALL_INCLUDEDIR} COMPONENT Devel)
install(FILES ${dolphinvcs_LIB_HEADERS} DESTINATION "${KDE_INSTALL_INCLUDEDIR}/Dolphin" COMPONENT Devel)
########### next target ###############
set(dolphinprivate_LIB_SRCS
@ -93,13 +129,10 @@ kconfig_add_kcfg_files(dolphinprivate_LIB_SRCS GENERATE_MOC
add_library(dolphinprivate ${dolphinprivate_LIB_SRCS})
generate_export_header(dolphinprivate BASE_NAME libdolphinprivate
EXPORT_FILE_NAME libdolphin_export.h)
target_link_libraries(
dolphinprivate PUBLIC
dolphinvcs
KF5::KDELibs4Support
KF5::Konq
KF5::NewStuff
)
@ -122,7 +155,7 @@ set_target_properties(dolphinprivate PROPERTIES
SOVERSION ${DOLPHINPRIVATE_SOVERSION}
)
install(TARGETS dolphinprivate ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
install(TARGETS dolphinprivate ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
##########################################
@ -136,7 +169,6 @@ add_library(dolphinpart MODULE ${dolphinpart_SRCS})
target_link_libraries(dolphinpart
dolphinprivate
KF5::Konq
KF5::KDELibs4Support
)
@ -144,7 +176,6 @@ install(TARGETS dolphinpart DESTINATION ${PLUGIN_INSTALL_DIR})
install(FILES dolphinpart.rc DESTINATION ${CMAKE_INSTALL_KXMLGUI5DIR}/dolphinpart)
install(FILES dolphinpart.desktop DESTINATION ${SERVICES_INSTALL_DIR})
install(FILES views/versioncontrol/fileviewversioncontrolplugin.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR})
##########################################
@ -230,7 +261,6 @@ kf5_add_kdeinit_executable(dolphin ${dolphin_SRCS})
target_include_directories(kdeinit_dolphin PRIVATE ${PHONON_INCLUDES})
target_link_libraries(kdeinit_dolphin
KF5::Konq
dolphinprivate
KF5::NewStuff
KF5::Parts
@ -251,8 +281,8 @@ if (KF5Activities_FOUND)
)
endif()
install(TARGETS kdeinit_dolphin ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
install(TARGETS dolphin ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
install(TARGETS kdeinit_dolphin ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
install(TARGETS dolphin ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
##########################################

View File

@ -23,7 +23,7 @@
#include <KNewFileMenu>
#include "libdolphin_export.h"
#include "dolphin_export.h"
class KJob;
@ -35,7 +35,7 @@ class KJob;
* All errors are shown in the status bar of Dolphin
* instead as modal error dialog with an OK button.
*/
class LIBDOLPHINPRIVATE_EXPORT DolphinNewFileMenu : public KNewFileMenu
class DOLPHIN_EXPORT DolphinNewFileMenu : public KNewFileMenu
{
Q_OBJECT

View File

@ -20,7 +20,7 @@
#ifndef DOLPHINREMOVEACTION_H
#define DOLPHINREMOVEACTION_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QAction>
#include <QPointer>
@ -34,7 +34,7 @@
* This class expects the presence of both the "move_to_trash" and "delete"
* actions in @ref collection.
*/
class LIBDOLPHINPRIVATE_EXPORT DolphinRemoveAction : public QAction
class DOLPHIN_EXPORT DolphinRemoveAction : public QAction
{
Q_OBJECT
public:

View File

@ -20,7 +20,7 @@
#ifndef KFILEITEMLISTVIEW_H
#define KFILEITEMLISTVIEW_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <kitemviews/kstandarditemlistview.h>
@ -36,7 +36,7 @@ class QTimer;
* KItemListView::setWidgetCreator() and KItemListView::setGroupHeaderCreator()
* to apply customized generators.
*/
class LIBDOLPHINPRIVATE_EXPORT KFileItemListView : public KStandardItemListView
class DOLPHIN_EXPORT KFileItemListView : public KStandardItemListView
{
Q_OBJECT

View File

@ -20,11 +20,11 @@
#ifndef KFILEITEMLISTWIDGET_H
#define KFILEITEMLISTWIDGET_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <kitemviews/kstandarditemlistwidget.h>
class LIBDOLPHINPRIVATE_EXPORT KFileItemListWidgetInformant : public KStandardItemListWidgetInformant
class DOLPHIN_EXPORT KFileItemListWidgetInformant : public KStandardItemListWidgetInformant
{
public:
KFileItemListWidgetInformant();
@ -37,7 +37,7 @@ protected:
virtual QFont customizedFontForLinks(const QFont& baseFont) const Q_DECL_OVERRIDE;
};
class LIBDOLPHINPRIVATE_EXPORT KFileItemListWidget : public KStandardItemListWidget
class DOLPHIN_EXPORT KFileItemListWidget : public KStandardItemListWidget
{
Q_OBJECT

View File

@ -20,7 +20,7 @@
#ifndef KFILEITEMMODEL_H
#define KFILEITEMMODEL_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <KFileItem>
#include <QUrl>
#include <kitemviews/kitemmodelbase.h>
@ -43,7 +43,7 @@ class QTimer;
* Recursive expansion of sub-directories is supported by
* KFileItemModel::setExpanded().
*/
class LIBDOLPHINPRIVATE_EXPORT KFileItemModel : public KItemModelBase
class DOLPHIN_EXPORT KFileItemModel : public KItemModelBase
{
Q_OBJECT

View File

@ -23,6 +23,7 @@
#include <KConfig>
#include <KConfigGroup>
#include <KSharedConfig>
#include <KFileItem>
#include <KIconLoader>
#include <KJobWidgets>

View File

@ -25,7 +25,7 @@
#include <KFileItem>
#include <kitemviews/kitemmodelbase.h>
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QObject>
#include <QSet>
@ -87,7 +87,7 @@ namespace KIO {
* 3. Finally, the entire process is repeated for any items that might have
* changed in the mean time.
*/
class LIBDOLPHINPRIVATE_EXPORT KFileItemModelRolesUpdater : public QObject
class DOLPHIN_EXPORT KFileItemModelRolesUpdater : public QObject
{
Q_OBJECT

View File

@ -23,7 +23,7 @@
#ifndef KITEMLISTCONTAINER_H
#define KITEMLISTCONTAINER_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QAbstractScrollArea>
@ -39,7 +39,7 @@ class KItemModelBase;
*
* @see KItemListController
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListContainer : public QAbstractScrollArea
class DOLPHIN_EXPORT KItemListContainer : public QAbstractScrollArea
{
Q_OBJECT

View File

@ -23,7 +23,7 @@
#ifndef KITEMLISTCONTROLLER_H
#define KITEMLISTCONTROLLER_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include "kitemset.h"
@ -56,7 +56,7 @@ class QTransform;
* @see KItemModelBase
* @see KItemListSelectionManager
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListController : public QObject
class DOLPHIN_EXPORT KItemListController : public QObject
{
Q_OBJECT
Q_ENUMS(SelectionBehavior)

View File

@ -20,7 +20,7 @@
#ifndef KITEMLISTGROUPHEADER_H
#define KITEMLISTGROUPHEADER_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <kitemviews/kitemliststyleoption.h>
@ -37,7 +37,7 @@ class KItemListView;
* the method paint() and draw the role within the given roleBounds() with
* the color roleColor().
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListGroupHeader : public QGraphicsWidget
class DOLPHIN_EXPORT KItemListGroupHeader : public QGraphicsWidget
{
Q_OBJECT

View File

@ -20,7 +20,7 @@
#ifndef KITEMLISTHEADER_H
#define KITEMLISTHEADER_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QHash>
#include <QObject>
@ -33,7 +33,7 @@ class KItemListView;
* Each column of the header represents a visible role
* accessible by KItemListView::visibleRoles().
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListHeader : public QObject
class DOLPHIN_EXPORT KItemListHeader : public QObject
{
Q_OBJECT

View File

@ -23,7 +23,7 @@
#ifndef KITEMLISTSELECTIONMANAGER_H
#define KITEMLISTSELECTIONMANAGER_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <kitemviews/kitemmodelbase.h>
#include <kitemviews/kitemset.h>
@ -35,7 +35,7 @@ class KItemModelBase;
/**
* @brief Allows to select and deselect items of a KItemListView.
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListSelectionManager : public QObject
class DOLPHIN_EXPORT KItemListSelectionManager : public QObject
{
Q_OBJECT

View File

@ -20,14 +20,14 @@
#ifndef KITEMLISTSTYLEOPTION_H
#define KITEMLISTSTYLEOPTION_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QFont>
#include <QFontMetrics>
#include <QPalette>
#include <QRect>
class LIBDOLPHINPRIVATE_EXPORT KItemListStyleOption
class DOLPHIN_EXPORT KItemListStyleOption
{
public:
KItemListStyleOption();

View File

@ -23,7 +23,7 @@
#ifndef KITEMLISTVIEW_H
#define KITEMLISTVIEW_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <kitemviews/kstandarditemlistgroupheader.h>
#include <kitemviews/kitemliststyleoption.h>
@ -59,7 +59,7 @@ class QTimer;
* @see KItemListWidget
* @see KItemModelBase
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListView : public QGraphicsWidget
class DOLPHIN_EXPORT KItemListView : public QGraphicsWidget
{
Q_OBJECT
@ -769,7 +769,7 @@ private:
* KItemListWidgetCreatorBase and KItemListGroupHeaderCreatorBase.
* @internal
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListCreatorBase
class DOLPHIN_EXPORT KItemListCreatorBase
{
public:
virtual ~KItemListCreatorBase();
@ -793,7 +793,7 @@ private:
* expensive instantiations and deletions of KItemListWidgets by recycling existing widget
* instances.
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListWidgetCreatorBase : public KItemListCreatorBase
class DOLPHIN_EXPORT KItemListWidgetCreatorBase : public KItemListCreatorBase
{
public:
virtual ~KItemListWidgetCreatorBase();
@ -875,7 +875,7 @@ qreal KItemListWidgetCreator<T>::preferredRoleColumnWidth(const QByteArray& role
* The intention of the group-header creator is to prevent repetitive and expensive instantiations and
* deletions of KItemListGroupHeaders by recycling existing header instances.
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListGroupHeaderCreatorBase : public KItemListCreatorBase
class DOLPHIN_EXPORT KItemListGroupHeaderCreatorBase : public KItemListCreatorBase
{
public:
virtual ~KItemListGroupHeaderCreatorBase();

View File

@ -22,7 +22,7 @@
#ifndef QT_NO_ACCESSIBILITY
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QtCore/qpointer.h>
#include <qaccessible.h>
@ -32,7 +32,7 @@
class KItemListView;
class KItemListContainer;
class LIBDOLPHINPRIVATE_EXPORT KItemListViewAccessible: public QAccessibleObject, public QAccessibleTableInterface
class DOLPHIN_EXPORT KItemListViewAccessible: public QAccessibleObject, public QAccessibleTableInterface
{
public:
explicit KItemListViewAccessible(KItemListView* view);
@ -89,7 +89,7 @@ private:
mutable QVector<QAccessibleInterface*> m_cells;
};
class LIBDOLPHINPRIVATE_EXPORT KItemListAccessibleCell: public QAccessibleInterface, public QAccessibleTableCellInterface
class DOLPHIN_EXPORT KItemListAccessibleCell: public QAccessibleInterface, public QAccessibleTableCellInterface
{
public:
KItemListAccessibleCell(KItemListView* view, int m_index);
@ -128,7 +128,7 @@ private:
int m_index;
};
class LIBDOLPHINPRIVATE_EXPORT KItemListContainerAccessible : public QAccessibleWidget
class DOLPHIN_EXPORT KItemListContainerAccessible : public QAccessibleWidget
{
public:
explicit KItemListContainerAccessible(KItemListContainer* container);

View File

@ -23,7 +23,7 @@
#ifndef KITEMLISTWIDGET_H
#define KITEMLISTWIDGET_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <kitemviews/kitemliststyleoption.h>
@ -43,7 +43,7 @@ class QPropertyAnimation;
* size for the invisible items must be accessible. KItemListWidgetInformant
* provides this information.
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListWidgetInformant
class DOLPHIN_EXPORT KItemListWidgetInformant
{
public:
KItemListWidgetInformant();
@ -63,7 +63,7 @@ public:
* All properties are set by KItemListView, for each property there is a corresponding
* virtual protected method that allows to react on property changes.
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListWidget : public QGraphicsWidget
class DOLPHIN_EXPORT KItemListWidget : public QGraphicsWidget
{
Q_OBJECT

View File

@ -23,7 +23,7 @@
#ifndef KITEMMODELBASE_H
#define KITEMMODELBASE_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <kitemviews/kitemrange.h>
#include <kitemviews/kitemset.h>
@ -49,7 +49,7 @@ class QMimeData;
* Also optionally it is possible to provide a tree of items by implementing the methods
* setExpanded(), isExpanded(), isExpandable() and expandedParentsCount().
*/
class LIBDOLPHINPRIVATE_EXPORT KItemModelBase : public QObject
class DOLPHIN_EXPORT KItemModelBase : public QObject
{
Q_OBJECT

View File

@ -20,7 +20,7 @@
#ifndef KSTANDARDITEM_H
#define KSTANDARDITEM_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QByteArray>
#include <QHash>
@ -36,7 +36,7 @@ class KStandardItemModel;
* used roles. It is possible to assign values for custom
* roles by using setDataValue().
*/
class LIBDOLPHINPRIVATE_EXPORT KStandardItem
class DOLPHIN_EXPORT KStandardItem
{
public:

View File

@ -20,14 +20,14 @@
#ifndef KSTANDARDITEMLISTGROUPHEADER_H
#define KSTANDARDITEMLISTGROUPHEADER_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <kitemviews/kitemlistgroupheader.h>
#include <QPixmap>
#include <QStaticText>
class LIBDOLPHINPRIVATE_EXPORT KStandardItemListGroupHeader : public KItemListGroupHeader
class DOLPHIN_EXPORT KStandardItemListGroupHeader : public KItemListGroupHeader
{
Q_OBJECT

View File

@ -20,7 +20,7 @@
#ifndef KSTANDARDITEMLISTVIEW_H
#define KSTANDARDITEMLISTVIEW_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <kitemviews/kitemlistview.h>
@ -40,7 +40,7 @@
* KItemListContainer* container = new KItemListContainer(controller, parentWidget);
* </code>
*/
class LIBDOLPHINPRIVATE_EXPORT KStandardItemListView : public KItemListView
class DOLPHIN_EXPORT KStandardItemListView : public KItemListView
{
Q_OBJECT

View File

@ -20,7 +20,7 @@
#ifndef KSTANDARDITEMLISTWIDGET_H
#define KSTANDARDITEMLISTWIDGET_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <kitemviews/kitemlistwidget.h>
@ -32,7 +32,7 @@ class KItemListRoleEditor;
class KItemListStyleOption;
class KItemListView;
class LIBDOLPHINPRIVATE_EXPORT KStandardItemListWidgetInformant : public KItemListWidgetInformant
class DOLPHIN_EXPORT KStandardItemListWidgetInformant : public KItemListWidgetInformant
{
public:
KStandardItemListWidgetInformant();
@ -83,7 +83,7 @@ protected:
/**
* @brief Itemlist widget implementation for KStandardItemView and KStandardItemModel.
*/
class LIBDOLPHINPRIVATE_EXPORT KStandardItemListWidget : public KItemListWidget
class DOLPHIN_EXPORT KStandardItemListWidget : public KItemListWidget
{
Q_OBJECT

View File

@ -20,7 +20,7 @@
#ifndef KSTANDARDITEMMODEL_H
#define KSTANDARDITEMMODEL_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <kitemviews/kitemmodelbase.h>
#include <QHash>
#include <QList>
@ -35,7 +35,7 @@ class KStandardItem;
*
* @see KStandardItem
*/
class LIBDOLPHINPRIVATE_EXPORT KStandardItemModel : public KItemModelBase
class DOLPHIN_EXPORT KStandardItemModel : public KItemModelBase
{
Q_OBJECT

View File

@ -21,7 +21,7 @@
#ifndef KBALOO_ROLESPROVIDER_H
#define KBALOO_ROLESPROVIDER_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QHash>
#include <QSet>
@ -36,7 +36,7 @@ namespace Baloo {
* Is a helper class for KFileItemModelRolesUpdater to retrieve roles that
* are only accessible with Baloo.
*/
class LIBDOLPHINPRIVATE_EXPORT KBalooRolesProvider
class DOLPHIN_EXPORT KBalooRolesProvider
{
public:
static KBalooRolesProvider& instance();

View File

@ -25,13 +25,13 @@
#include <QSet>
#include <QObject>
#include "libdolphin_export.h"
#include "dolphin_export.h"
/**
* @brief Wrapper for QClipboard to provide fast access for checking
* whether a KFileItem has been clipped.
*/
class LIBDOLPHINPRIVATE_EXPORT KFileItemClipboard : public QObject
class DOLPHIN_EXPORT KFileItemClipboard : public QObject
{
Q_OBJECT

View File

@ -20,7 +20,7 @@
#ifndef KFILEITEMMODELDIRLISTER_H
#define KFILEITEMMODELDIRLISTER_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <KDirLister>
#include <QUrl>
@ -29,7 +29,7 @@
* error occurred instead of showing an error dialog.
* KDirLister::autoErrorHandlingEnabled() is set to false.
*/
class LIBDOLPHINPRIVATE_EXPORT KFileItemModelDirLister : public KDirLister
class DOLPHIN_EXPORT KFileItemModelDirLister : public KDirLister
{
Q_OBJECT

View File

@ -21,7 +21,7 @@
#ifndef KFILEITEMMODELFILTER_H
#define KFILEITEMMODELFILTER_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QStringList>
class KFileItem;
@ -35,7 +35,7 @@ class QRegExp;
* property of the KFileItem, but this might get extended in
* future.
*/
class LIBDOLPHINPRIVATE_EXPORT KFileItemModelFilter
class DOLPHIN_EXPORT KFileItemModelFilter
{
public:

View File

@ -20,7 +20,7 @@
#ifndef KITEMLISTHEADERWIDGET_H
#define KITEMLISTHEADERWIDGET_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QGraphicsWidget>
#include <QHash>
#include <QList>
@ -33,7 +33,7 @@ class KItemModelBase;
* The widget is an internal API, the user of KItemListView may only access the
* class KItemListHeader.
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListHeaderWidget : public QGraphicsWidget
class DOLPHIN_EXPORT KItemListHeaderWidget : public QGraphicsWidget
{
Q_OBJECT

View File

@ -23,7 +23,7 @@
#ifndef KITEMLISTKEYBOARDSEARCHMANAGER_H
#define KITEMLISTKEYBOARDSEARCHMANAGER_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QObject>
#include <QString>
@ -35,7 +35,7 @@
* @see KItemListController
* @see KItemModelBase
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListKeyboardSearchManager : public QObject
class DOLPHIN_EXPORT KItemListKeyboardSearchManager : public QObject
{
Q_OBJECT

View File

@ -20,7 +20,7 @@
#ifndef KITEMLISTROLEEDITOR_H
#define KITEMLISTROLEEDITOR_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <KTextEdit>
@ -33,7 +33,7 @@
*
* The size automatically gets increased if the text does not fit.
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListRoleEditor : public KTextEdit
class DOLPHIN_EXPORT KItemListRoleEditor : public KTextEdit
{
Q_OBJECT

View File

@ -20,14 +20,14 @@
#ifndef KITEMLISTRUBBERBAND_H
#define KITEMLISTRUBBERBAND_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QObject>
#include <QPointF>
/**
* @brief Manages the rubberband when selecting items.
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListRubberBand : public QObject
class DOLPHIN_EXPORT KItemListRubberBand : public QObject
{
Q_OBJECT

View File

@ -20,7 +20,7 @@
#ifndef KITEMLISTSELECTIONTOGGLE_H
#define KITEMLISTSELECTIONTOGGLE_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QGraphicsWidget>
#include <QPixmap>
@ -29,7 +29,7 @@
/**
* @brief Allows to toggle between the selected and unselected state of an item.
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListSelectionToggle : public QGraphicsWidget
class DOLPHIN_EXPORT KItemListSelectionToggle : public QGraphicsWidget
{
Q_OBJECT

View File

@ -20,7 +20,7 @@
#ifndef KITEMLISTSIZEHINTRESOLVER_H
#define KITEMLISTSIZEHINTRESOLVER_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <kitemviews/kitemmodelbase.h>
#include <QSizeF>
@ -31,7 +31,7 @@ class KItemListView;
/**
* @brief Calculates and caches the sizehints of items in KItemListView.
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListSizeHintResolver
class DOLPHIN_EXPORT KItemListSizeHintResolver
{
public:
KItemListSizeHintResolver(const KItemListView* itemListView);

View File

@ -20,7 +20,7 @@
#ifndef KITEMLISTSMOOTHSCROLLER_H
#define KITEMLISTSMOOTHSCROLLER_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QAbstractAnimation>
#include <QObject>
@ -33,7 +33,7 @@ class QWheelEvent;
* @brief Helper class for KItemListContainer to have a smooth
* scrolling when adjusting the scrollbars.
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListSmoothScroller : public QObject
class DOLPHIN_EXPORT KItemListSmoothScroller : public QObject
{
Q_OBJECT

View File

@ -20,7 +20,7 @@
#ifndef KITEMLISTVIEWANIMATION_H
#define KITEMLISTVIEWANIMATION_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QHash>
#include <QObject>
@ -36,7 +36,7 @@ class QPropertyAnimation;
* Supports item animations for moving, creating, deleting and resizing
* an item. Several applications can be applied to one item in parallel.
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListViewAnimation : public QObject
class DOLPHIN_EXPORT KItemListViewAnimation : public QObject
{
Q_OBJECT

View File

@ -20,7 +20,7 @@
#ifndef KITEMLISTVIEWLAYOUTER_H
#define KITEMLISTVIEWLAYOUTER_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QObject>
#include <QRectF>
@ -45,7 +45,7 @@ class KItemListSizeHintResolver;
* changing properties of the layouter is not expensive, only the
* first read of a property can get expensive.
*/
class LIBDOLPHINPRIVATE_EXPORT KItemListViewLayouter : public QObject
class DOLPHIN_EXPORT KItemListViewLayouter : public QObject
{
Q_OBJECT

View File

@ -20,12 +20,12 @@
#ifndef KPIXMAPMODIFIER_H
#define KPIXMAPMODIFIER_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
class QPixmap;
class QSize;
class LIBDOLPHINPRIVATE_EXPORT KPixmapModifier
class DOLPHIN_EXPORT KPixmapModifier
{
public:
static void scale(QPixmap& pixmap, const QSize& scaledSize);

View File

@ -21,7 +21,7 @@
#ifndef VIEWPROPERTIESDIALOG_H
#define VIEWPROPERTIESDIALOG_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QDialog>
@ -39,7 +39,7 @@ class DolphinView;
* and previews should be shown. The properties can be assigned to the current folder,
* or recursively to all sub folders.
*/
class LIBDOLPHINPRIVATE_EXPORT ViewPropertiesDialog : public QDialog
class DOLPHIN_EXPORT ViewPropertiesDialog : public QDialog
{
Q_OBJECT

View File

@ -4,7 +4,7 @@ find_package(Qt5Test CONFIG REQUIRED)
include(ECMMarkAsTest)
# needed on windows to correctly use the files from dolphinprivate
add_definitions(-DLIBDOLPHINPRIVATE_EXPORT=)
add_definitions(-DDOLPHIN_EXPORT=)
# KItemSetTest
set(kitemsettest_SRCS

View File

@ -21,7 +21,6 @@
#include <QIcon>
#include <KIconLoader>
#include <kversioncontrolplugin2.h>
#include <QColor>
#include "dolphindebug.h"
@ -43,7 +42,7 @@ void DolphinFileItemListWidget::refreshCache()
if (values.contains("version")) {
// The item is under version control. Apply the text color corresponding
// to its version state.
const KVersionControlPlugin2::ItemVersion version = static_cast<KVersionControlPlugin2::ItemVersion>(values.value("version").toInt());
const KVersionControlPlugin::ItemVersion version = static_cast<KVersionControlPlugin::ItemVersion>(values.value("version").toInt());
const QColor textColor = styleOption().palette.text().color();
QColor tintColor = textColor;
@ -51,16 +50,16 @@ void DolphinFileItemListWidget::refreshCache()
// as tint colors and are mixed with the current set text color. The tint colors
// have been optimized for the base colors of the corresponding Oxygen emblems.
switch (version) {
case KVersionControlPlugin2::UpdateRequiredVersion: tintColor = Qt::yellow; break;
case KVersionControlPlugin2::LocallyModifiedUnstagedVersion: tintColor = Qt::green; break;
case KVersionControlPlugin2::LocallyModifiedVersion: tintColor = Qt::green; break;
case KVersionControlPlugin2::AddedVersion: tintColor = Qt::green; break;
case KVersionControlPlugin2::RemovedVersion: tintColor = Qt::darkRed; break;
case KVersionControlPlugin2::ConflictingVersion: tintColor = Qt::red; break;
case KVersionControlPlugin2::IgnoredVersion: tintColor = Qt::white; break;
case KVersionControlPlugin2::MissingVersion: tintColor = Qt::red; break;
case KVersionControlPlugin2::NormalVersion:
case KVersionControlPlugin2::UnversionedVersion:
case KVersionControlPlugin::UpdateRequiredVersion: tintColor = Qt::yellow; break;
case KVersionControlPlugin::LocallyModifiedUnstagedVersion: tintColor = Qt::green; break;
case KVersionControlPlugin::LocallyModifiedVersion: tintColor = Qt::green; break;
case KVersionControlPlugin::AddedVersion: tintColor = Qt::green; break;
case KVersionControlPlugin::RemovedVersion: tintColor = Qt::darkRed; break;
case KVersionControlPlugin::ConflictingVersion: tintColor = Qt::red; break;
case KVersionControlPlugin::IgnoredVersion: tintColor = Qt::white; break;
case KVersionControlPlugin::MissingVersion: tintColor = Qt::red; break;
case KVersionControlPlugin::NormalVersion:
case KVersionControlPlugin::UnversionedVersion:
default:
break;
}
@ -78,7 +77,7 @@ void DolphinFileItemListWidget::refreshCache()
setTextColor(color);
}
QPixmap DolphinFileItemListWidget::overlayForState(KVersionControlPlugin2::ItemVersion version, int size)
QPixmap DolphinFileItemListWidget::overlayForState(KVersionControlPlugin::ItemVersion version, int size)
{
int overlayHeight = KIconLoader::SizeSmall;
if (size >= KIconLoader::SizeEnormous) {
@ -115,8 +114,8 @@ QPixmap DolphinFileItemListWidget::overlayForState(KVersionControlPlugin2::ItemV
iconName = "vcs-conflicting";
break;
case KVersionControlPlugin::UnversionedVersion:
case KVersionControlPlugin2::IgnoredVersion:
case KVersionControlPlugin2::MissingVersion:
case KVersionControlPlugin::IgnoredVersion:
case KVersionControlPlugin::MissingVersion:
break;
default:
Q_ASSERT(false);

View File

@ -20,10 +20,10 @@
#ifndef DOLPHINFILEITEMLISTWIDGET_H
#define DOLPHINFILEITEMLISTWIDGET_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <kitemviews/kfileitemlistwidget.h>
#include <kversioncontrolplugin2.h>
#include "versioncontrol/kversioncontrolplugin.h"
/**
* @brief Extends KFileItemListWidget to handle the "version" role.
@ -31,7 +31,7 @@
* The "version" role is set if version-control-plugins have been enabled.
* @see KVersionControlPlugin
*/
class LIBDOLPHINPRIVATE_EXPORT DolphinFileItemListWidget : public KFileItemListWidget
class DOLPHIN_EXPORT DolphinFileItemListWidget : public KFileItemListWidget
{
Q_OBJECT
@ -43,7 +43,7 @@ protected:
virtual void refreshCache() Q_DECL_OVERRIDE;
private:
static QPixmap overlayForState(KVersionControlPlugin2::ItemVersion version, int size);
static QPixmap overlayForState(KVersionControlPlugin::ItemVersion version, int size);
};

View File

@ -23,7 +23,7 @@
#include <kitemviews/kfileitemlistview.h>
#include <settings/viewmodes/viewmodesettings.h>
#include "libdolphin_export.h"
#include "dolphin_export.h"
class KFileItemListView;
@ -34,7 +34,7 @@ class KFileItemListView;
* the view-properties into the corresponding KItemListView
* properties.
*/
class LIBDOLPHINPRIVATE_EXPORT DolphinItemListView : public KFileItemListView
class DOLPHIN_EXPORT DolphinItemListView : public KFileItemListView
{
Q_OBJECT

View File

@ -22,7 +22,7 @@
#include <QObject>
#include "libdolphin_export.h"
#include "dolphin_export.h"
class DolphinNewFileMenu;
@ -33,7 +33,7 @@ class DolphinNewFileMenu;
* As soon as a DolphinNewFileMenu instance created a new item,
* the observer will emit the signal itemCreated().
*/
class LIBDOLPHINPRIVATE_EXPORT DolphinNewFileMenuObserver : public QObject
class DOLPHIN_EXPORT DolphinNewFileMenuObserver : public QObject
{
Q_OBJECT

View File

@ -23,7 +23,7 @@
#include <QStringList>
#include <QAction>
#include <QUrl>
#include "libdolphin_export.h"
#include "dolphin_export.h"
class KActionMenu;
@ -35,7 +35,7 @@ class DolphinViewActionHandler;
* When browsing remote url, its possible to change encoding from Tools Menu.
*/
class LIBDOLPHINPRIVATE_EXPORT DolphinRemoteEncoding: public QObject
class DOLPHIN_EXPORT DolphinRemoteEncoding: public QObject
{
Q_OBJECT
public:

View File

@ -23,7 +23,7 @@
#include <config-baloo.h>
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <kparts/part.h>
#include <KFileItem>
@ -57,7 +57,7 @@ class QRegExp;
* - show previews
* - enable grouping
*/
class LIBDOLPHINPRIVATE_EXPORT DolphinView : public QWidget
class DOLPHIN_EXPORT DolphinView : public QWidget
{
Q_OBJECT

View File

@ -22,7 +22,7 @@
#ifndef DOLPHINVIEWACTIONHANDLER_H
#define DOLPHINVIEWACTIONHANDLER_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include "views/dolphinview.h"
#include <QObject>
@ -46,7 +46,7 @@ class KActionCollection;
* @see DolphinMainWindow
* @see DolphinPart
*/
class LIBDOLPHINPRIVATE_EXPORT DolphinViewActionHandler : public QObject
class DOLPHIN_EXPORT DolphinViewActionHandler : public QObject
{
Q_OBJECT

View File

@ -21,7 +21,7 @@
#ifndef DRAGANDDROPHELPER_H
#define DRAGANDDROPHELPER_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
class QUrl;
@ -29,7 +29,7 @@ class QDropEvent;
class QWidget;
namespace KIO { class DropJob; }
class LIBDOLPHINPRIVATE_EXPORT DragAndDropHelper
class DOLPHIN_EXPORT DragAndDropHelper
{
public:
/**

View File

@ -20,7 +20,7 @@
#ifndef RENAMEDIALOG_H
#define RENAMEDIALOG_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <QDialog>
#include <KFileItem>
@ -33,7 +33,7 @@ class QPushButton;
/**
* @brief Dialog for renaming a variable number of files.
*/
class LIBDOLPHINPRIVATE_EXPORT RenameDialog : public QDialog
class DOLPHIN_EXPORT RenameDialog : public QDialog
{
Q_OBJECT

View File

@ -0,0 +1,29 @@
/*****************************************************************************
* Copyright (C) 2011 by Vishesh Yadav <vishesh3y@gmail.com> *
* Copyright (C) 2011 by Peter Penz <peter.penz19@gmail.com> *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License version 2 as published by the Free Software Foundation. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public License *
* along with this library; see the file COPYING.LIB. If not, write to *
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, *
* Boston, MA 02110-1301, USA. *
*****************************************************************************/
#include "kversioncontrolplugin.h"
KVersionControlPlugin::KVersionControlPlugin(QObject* parent) :
QObject(parent)
{
}
KVersionControlPlugin::~KVersionControlPlugin()
{
}

View File

@ -0,0 +1,223 @@
/*****************************************************************************
* Copyright (C) 2011 by Vishesh Yadav <vishesh3y@gmail.com> *
* Copyright (C) 2011 by Peter Penz <peter.penz19@gmail.com> *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License version 2 as published by the Free Software Foundation. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public License *
* along with this library; see the file COPYING.LIB. If not, write to *
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, *
* Boston, MA 02110-1301, USA. *
*****************************************************************************/
#ifndef KVERSIONCONTROLPLUGIN_H
#define KVERSIONCONTROLPLUGIN_H
#include <dolphin_export.h>
#include <QObject>
#include <KFileItem>
#include <QAction>
/**
* @brief Base class for version control plugins.
*
* Enables the file manager to show the version state
* of a versioned file. To write a custom plugin, the following
* steps are required (in the example below it is assumed that a plugin for
* Subversion will be written):
*
* - Create a fileviewsvnplugin.desktop file with the following content:
* <code>
* [Desktop Entry]
* Type=Service
* Name=Subversion
* X-KDE-ServiceTypes=FileViewVersionControlPlugin
* MimeType=text/plain;
* X-KDE-Library=fileviewsvnplugin
* </code>
*
* - Create a class FileViewSvnPlugin derived from KVersionControlPlugin and
* implement all abstract interfaces (fileviewsvnplugin.h, fileviewsvnplugin.cpp).
*
* - Take care that the constructor has the following signature:
* <code>
* FileViewSvnPlugin(QObject* parent, const QList<QVariant>& args);
* </code>
*
* - Add the following lines at the top of fileviewsvnplugin.cpp:
* <code>
* #include <KPluginFactory>
* #include <KPluginLoader>
* K_PLUGIN_FACTORY(FileViewSvnPluginFactory, registerPlugin<FileViewSvnPlugin>();)
* K_EXPORT_PLUGIN(FileViewSvnPluginFactory("fileviewsvnplugin"))
* </code>
*
* - Add the following lines to your CMakeLists.txt file:
* <code>
* kde4_add_plugin(fileviewsvnplugin fileviewsvnplugin.cpp)
* target_link_libraries(fileviewsvnplugin konq)
* install(FILES fileviewsvnplugin.desktop DESTINATION ${SERVICES_INSTALL_DIR})
* </code>
*
* General implementation notes:
*
* - The implementations of beginRetrieval(), endRetrieval() and versionState()
* can contain blocking operations, as Dolphin will execute
* those methods in a separate thread. It is assured that
* all other methods are invoked in a serialized way, so that it is not necessary for
* the plugin to use any mutex.
*
* - Dolphin keeps only one instance of the plugin, which is instantiated shortly after
* starting Dolphin. Take care that the constructor does no expensive and time
* consuming operations.
*
* @since 4.8
*/
class DOLPHIN_EXPORT KVersionControlPlugin : public QObject
{
Q_OBJECT
public:
enum ItemVersion
{
/** The file is not under version control. */
UnversionedVersion,
/**
* The file is under version control and represents
* the latest version.
*/
NormalVersion,
/**
* The file is under version control and a newer
* version exists on the main branch.
*/
UpdateRequiredVersion,
/**
* The file is under version control and has been
* modified locally. All modifications will be part
* of the next commit.
*/
LocallyModifiedVersion,
/**
* The file has not been under version control but
* has been marked to get added with the next commit.
*/
AddedVersion,
/**
* The file is under version control but has been marked
* for getting removed with the next commit.
*/
RemovedVersion,
/**
* The file is under version control and has been locally
* modified. A modification has also been done on the main
* branch.
*/
ConflictingVersion,
/**
* The file is under version control and has local
* modifications, which will not be part of the next
* commit (or are "unstaged" in git jargon).
* @since 4.6
*/
LocallyModifiedUnstagedVersion,
/**
* The file is not under version control and is listed
* in the ignore list of the version control system.
* @since 4.8
*/
IgnoredVersion,
/**
* The file is is tracked by the version control system, but
* is missing in the directory (e.g. by deleted without using
* a version control command).
* @since 4.8
*/
MissingVersion
};
KVersionControlPlugin(QObject* parent = 0);
virtual ~KVersionControlPlugin();
/**
* Returns the name of the file which stores
* the version controls information.
* (e. g. .svn, .cvs, .git).
*/
virtual QString fileName() const = 0;
/**
* Is invoked whenever the version control
* information will get retrieved for the directory
* \p directory. It is assured that the directory
* contains a trailing slash.
*/
virtual bool beginRetrieval(const QString& directory) = 0;
/**
* Is invoked after the version control information has been
* received. It is assured that
* KVersionControlPluginV2::beginInfoRetrieval() has been
* invoked before.
*/
virtual void endRetrieval() = 0;
/**
* @return The version for the item \p item.
* It is assured that KVersionControlPlugin::beginInfoRetrieval() has been
* invoked before and that the file is part of the directory specified
* in beginInfoRetrieval().
*/
virtual ItemVersion itemVersion(const KFileItem& item) const = 0;
/**
* @return List of actions that are available for the items \p items.
* It is recommended to keep the number of returned actions small
* in case if an item is an unversioned directory that is not
* inside the hierarchy tree of the version control system. This
* prevents having a cluttered context menu for directories
* outside the version control system.
*/
virtual QList<QAction*> actions(const KFileItemList& items) const = 0;
Q_SIGNALS:
/**
* Should be emitted when the version state of items might have been changed
* after the last retrieval (e. g. by executing a context menu action
* of the version control plugin). The file manager will be triggered to
* update the version states of the directory \p directory by invoking
* KVersionControlPlugin::beginRetrieval(),
* KVersionControlPlugin::itemVersion() and
* KVersionControlPlugin::endRetrieval().
*/
void itemVersionsChanged();
/**
* Is emitted if an information message with the content \a msg
* should be shown.
*/
void infoMessage(const QString& msg);
/**
* Is emitted if an error message with the content \a msg
* should be shown.
*/
void errorMessage(const QString& msg);
/**
* Is emitted if an "operation completed" message with the content \a msg
* should be shown.
*/
void operationCompletedMessage(const QString& msg);
};
#endif // KVERSIONCONTROLPLUGIN_H

View File

@ -19,9 +19,7 @@
#include "updateitemstatesthread.h"
#include <kversioncontrolplugin2.h>
#include <QVector>
#include <QMutexLocker>
UpdateItemStatesThread::UpdateItemStatesThread(KVersionControlPlugin* plugin,
@ -53,20 +51,10 @@ void UpdateItemStatesThread::run()
if (m_plugin->beginRetrieval(it.key())) {
QVector<VersionControlObserver::ItemState>& items = it.value();
const int count = items.count();
KVersionControlPlugin2* pluginV2 = qobject_cast<KVersionControlPlugin2*>(m_plugin);
if (pluginV2) {
for (int i = 0; i < count; ++i) {
const KFileItem& item = items.at(i).first;
const KVersionControlPlugin2::ItemVersion version = pluginV2->itemVersion(item);
items[i].second = version;
}
} else {
for (int i = 0; i < count; ++i) {
const KFileItem& item = items.at(i).first;
const KVersionControlPlugin::VersionState state = m_plugin->versionState(item);
items[i].second = static_cast<KVersionControlPlugin2::ItemVersion>(state);
}
for (int i = 0; i < count; ++i) {
const KFileItem& item = items.at(i).first;
const KVersionControlPlugin::ItemVersion version = m_plugin->itemVersion(item);
items[i].second = version;
}
}

View File

@ -20,20 +20,18 @@
#ifndef UPDATEITEMSTATESTHREAD_H
#define UPDATEITEMSTATESTHREAD_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <views/versioncontrol/versioncontrolobserver.h>
#include <QMutex>
#include <QThread>
class KVersionControlPlugin;
/**
* The performance of updating the version state of items depends
* on the used plugin. To prevent that Dolphin gets blocked by a
* slow plugin, the updating is delegated to a thread.
*/
class LIBDOLPHINPRIVATE_EXPORT UpdateItemStatesThread : public QThread
class DOLPHIN_EXPORT UpdateItemStatesThread : public QThread
{
Q_OBJECT

View File

@ -26,7 +26,6 @@
#include "dolphindebug.h"
#include <KServiceTypeTrader>
#include <kitemviews/kfileitemmodel.h>
#include <kversioncontrolplugin2.h>
#include "updateitemstatesthread.h"
@ -89,8 +88,6 @@ KFileItemModel* VersionControlObserver::model() const
QList<QAction*> VersionControlObserver::actions(const KFileItemList& items) const
{
QList<QAction*> actions;
bool hasNullItems = false;
foreach (const KFileItem& item, items) {
if (item.isNull()) {
@ -101,30 +98,10 @@ QList<QAction*> VersionControlObserver::actions(const KFileItemList& items) cons
}
if (!m_model || hasNullItems) {
return actions;
return {};
}
KVersionControlPlugin2* pluginV2 = qobject_cast<KVersionControlPlugin2*>(m_plugin);
if (pluginV2) {
// Use version 2 of the KVersionControlPlugin which allows providing actions
// also for non-versioned directories.
actions = pluginV2->actions(items);
} else if (isVersioned()) {
// Support deprecated interfaces from KVersionControlPlugin version 1.
// Context menu actions where only available for versioned directories.
QString directory;
if (items.count() == 1) {
const KFileItem rootItem = m_model->rootItem();
if (!rootItem.isNull() && items.first().url() == rootItem.url()) {
directory = rootItem.url().path();
}
}
actions = directory.isEmpty() ? m_plugin->contextMenuActions(items)
: m_plugin->contextMenuActions(directory);
}
return actions;
return m_plugin->actions(items);
}
void VersionControlObserver::delayedDirectoryVerification()
@ -156,14 +133,8 @@ void VersionControlObserver::verifyDirectory()
m_plugin = searchPlugin(rootItem.url());
if (m_plugin) {
KVersionControlPlugin2* pluginV2 = qobject_cast<KVersionControlPlugin2*>(m_plugin);
if (pluginV2) {
connect(pluginV2, &KVersionControlPlugin2::itemVersionsChanged,
this, &VersionControlObserver::silentDirectoryVerification);
} else {
connect(m_plugin, &KVersionControlPlugin::versionStatesChanged,
this, &VersionControlObserver::silentDirectoryVerification);
}
connect(m_plugin, &KVersionControlPlugin::itemVersionsChanged,
this, &VersionControlObserver::silentDirectoryVerification);
connect(m_plugin, &KVersionControlPlugin::infoMessage,
this, &VersionControlObserver::infoMessage);
connect(m_plugin, &KVersionControlPlugin::errorMessage,
@ -205,7 +176,7 @@ void VersionControlObserver::slotThreadFinished()
foreach (const ItemState& item, items) {
const KFileItem& fileItem = item.first;
const KVersionControlPlugin2::ItemVersion version = item.second;
const KVersionControlPlugin::ItemVersion version = item.second;
QHash<QByteArray, QVariant> values;
values.insert("version", QVariant(version));
m_model->setData(m_model->index(fileItem), values);
@ -268,7 +239,7 @@ int VersionControlObserver::createItemStatesList(QMap<QString, QVector<ItemState
if (expansionLevel == currentExpansionLevel) {
ItemState itemState;
itemState.first = m_model->fileItem(index);
itemState.second = KVersionControlPlugin2::UnversionedVersion;
itemState.second = KVersionControlPlugin::UnversionedVersion;
items.append(itemState);
} else if (expansionLevel > currentExpansionLevel) {

View File

@ -20,11 +20,13 @@
#ifndef VERSIONCONTROLOBSERVER_H
#define VERSIONCONTROLOBSERVER_H
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include "kversioncontrolplugin.h"
#include <KFileItem>
#include <QUrl>
#include <kversioncontrolplugin2.h>
#include <QList>
#include <QObject>
#include <QString>
@ -43,7 +45,7 @@ class UpdateItemStatesThread;
*
* @see VersionControlPlugin
*/
class LIBDOLPHINPRIVATE_EXPORT VersionControlObserver : public QObject
class DOLPHIN_EXPORT VersionControlObserver : public QObject
{
Q_OBJECT
@ -100,7 +102,7 @@ private slots:
void slotThreadFinished();
private:
typedef QPair<KFileItem, KVersionControlPlugin2::ItemVersion> ItemState;
typedef QPair<KFileItem, KVersionControlPlugin::ItemVersion> ItemState;
void updateItemStates();

View File

@ -22,7 +22,7 @@
#include <QUrl>
#include <QObject>
#include "libdolphin_export.h"
#include "dolphin_export.h"
#include <views/dolphinview.h>
/**
@ -33,7 +33,7 @@
* connect to signals of the ViewModeController to react on changes. The view
* implementations get only read-access to the ViewModeController.
*/
class LIBDOLPHINPRIVATE_EXPORT ViewModeController : public QObject
class DOLPHIN_EXPORT ViewModeController : public QObject
{
Q_OBJECT

View File

@ -23,7 +23,7 @@
#include <views/dolphinview.h>
#include <QUrl>
#include "libdolphin_export.h"
#include "dolphin_export.h"
class ViewPropertySettings;
/**
@ -47,7 +47,7 @@ class ViewPropertySettings;
* (see GeneralSettings::globalViewMode()), the values from the global .directory file
* are used for initialization.
*/
class LIBDOLPHINPRIVATE_EXPORT ViewProperties
class DOLPHIN_EXPORT ViewProperties
{
public:
explicit ViewProperties(const QUrl& url);