diff --git a/cmake/modules/FindLibKasten.cmake b/cmake/modules/FindLibKasten.cmake
index 087eedc..9fafd87 100644
--- a/cmake/modules/FindLibKasten.cmake
+++ b/cmake/modules/FindLibKasten.cmake
@@ -1,4 +1,4 @@
-# - Find Kasten libraries, v0 or v1
+# - Find Kasten libraries, v0, v1 or v2
#
# This module defines
# LIBKASTEN_FOUND - whether the libkasten libraries were found
@@ -12,44 +12,45 @@ if( LIBKASTEN_INCLUDE_DIR AND LIBKASTEN_LIBRARIES AND LIBKASTEN_VERSION )
set( Kasten_FIND_QUIETLY TRUE )
endif( LIBKASTEN_INCLUDE_DIR AND LIBKASTEN_LIBRARIES AND LIBKASTEN_VERSION )
-if( LIBKASTEN_FIND_VERSION EQUAL 1 )
- find_library( KASTEN1_CORE_LIB
+if( LIBKASTEN_FIND_VERSION EQUAL 1 OR LIBKASTEN_FIND_VERSION EQUAL 2)
+ set( KV ${LIBKASTEN_FIND_VERSION} )
+ find_library( KASTEN1OR2_CORE_LIB
NAMES
- kasten1core
+ kasten${KV}core
HINTS
${LIB_INSTALL_DIR}
${KDE4_LIB_DIR}
)
- find_library( KASTEN1_GUI_LIB
+ find_library( KASTEN1OR2_GUI_LIB
NAMES
- kasten1gui
+ kasten${KV}gui
HINTS
${LIB_INSTALL_DIR}
${KDE4_LIB_DIR}
)
- find_library( KASTEN1_CONTROLLERS_LIB
+ find_library( KASTEN1OR2_CONTROLLERS_LIB
NAMES
- kasten1controllers
+ kasten${KV}controllers
HINTS
${LIB_INSTALL_DIR}
${KDE4_LIB_DIR}
)
- find_path( KASTEN1_NORMAL_INCLUDE_DIR
+ find_path( KASTEN1OR2_NORMAL_INCLUDE_DIR
NAMES
abstractmodel.h
PATH_SUFFIXES
- kasten1
+ kasten${KV}
HINTS
${INCLUDE_INSTALL_DIR}
${KDE4_INCLUDE_DIR}
)
- find_path( KASTEN1_CAMELCASE_INCLUDE_DIR
+ find_path( KASTEN1OR2_CAMELCASE_INCLUDE_DIR
NAMES
- Kasten1/AbstractModel
+ Kasten${KV}/AbstractModel
PATH_SUFFIXES
KDE
HINTS
@@ -58,25 +59,25 @@ if( LIBKASTEN_FIND_VERSION EQUAL 1 )
)
- if( KASTEN1_NORMAL_INCLUDE_DIR AND KASTEN1_CAMELCASE_INCLUDE_DIR AND
- KASTEN1_CORE_LIB AND KASTEN1_GUI_LIB AND KASTEN1_CONTROLLERS_LIB )
+ if( KASTEN1OR2_NORMAL_INCLUDE_DIR AND KASTEN1OR2_CAMELCASE_INCLUDE_DIR AND
+ KASTEN1OR2_CORE_LIB AND KASTEN1OR2_GUI_LIB AND KASTEN1OR2_CONTROLLERS_LIB )
set( LIBKASTEN_FOUND TRUE )
- endif( KASTEN1_NORMAL_INCLUDE_DIR AND KASTEN1_CAMELCASE_INCLUDE_DIR AND
- KASTEN1_CORE_LIB AND KASTEN1_GUI_LIB AND KASTEN1_CONTROLLERS_LIB )
+ endif( KASTEN1OR2_NORMAL_INCLUDE_DIR AND KASTEN1OR2_CAMELCASE_INCLUDE_DIR AND
+ KASTEN1OR2_CORE_LIB AND KASTEN1OR2_GUI_LIB AND KASTEN1OR2_CONTROLLERS_LIB )
if( LIBKASTEN_FOUND )
- set( LIBKASTEN_VERSION 1 )
+ set( LIBKASTEN_VERSION ${KV} )
set( LIBKASTEN_INCLUDE_DIRS
- ${KASTEN1_NORMAL_INCLUDE_DIR}
- ${KASTEN1_CAMELCASE_INCLUDE_DIR}
+ ${KASTEN1OR2_NORMAL_INCLUDE_DIR}
+ ${KASTEN1OR2_CAMELCASE_INCLUDE_DIR}
)
set( LIBKASTEN_LIBRARIES
- ${KASTEN1_CORE_LIB}
- ${KASTEN1_GUI_LIB}
- ${KASTEN1_CONTROLLERS_LIB}
+ ${KASTEN1OR2_CORE_LIB}
+ ${KASTEN1OR2_GUI_LIB}
+ ${KASTEN1OR2_CONTROLLERS_LIB}
)
endif( LIBKASTEN_FOUND )
-endif( LIBKASTEN_FIND_VERSION EQUAL 1 )
+endif( LIBKASTEN_FIND_VERSION EQUAL 1 OR LIBKASTEN_FIND_VERSION EQUAL 2 )
if( LIBKASTEN_FIND_VERSION EQUAL 0 )
find_library( LIBKASTENCORE0_LIBRARY
diff --git a/cmake/modules/FindLibOktetaKasten.cmake b/cmake/modules/FindLibOktetaKasten.cmake
index 973f0f1..0985914 100644
--- a/cmake/modules/FindLibOktetaKasten.cmake
+++ b/cmake/modules/FindLibOktetaKasten.cmake
@@ -1,4 +1,4 @@
-# - Find Okteta Kasten libraries, v0 or v1
+# - Find Okteta Kasten libraries, v0, v1 or v2
#
# This module defines
# LIBOKTETAKASTEN_FOUND - whether the Okteta Kasten libraries were found
@@ -7,66 +7,128 @@
# LIBOKTETAKASTEN_INCLUDE_DIRS - the include paths of the Okteta Kasten libraries
-if( LIBOKTETAKASTEN_INCLUDE_DIRS AND LIBOKTETAKASTEN_LIBRARIES AND LIBOKTETAKASTEN_VERSION )
+if( LIBOKTETAKASTEN_INCLUDE_DIRS AND LIBOKTETAKASTEN_LIBRARIES AND LIBOKTETAKASTEN_VERSION AND
+ LIBOKTETAKASTEN_NEEDS_KASTEN_VERSION AND LIBOKTETAKASTEN_NEEDS_OKTETA_VERSION )
# Already in cache, be silent
set( OktetaKasten_FIND_QUIETLY TRUE )
-endif( LIBOKTETAKASTEN_INCLUDE_DIRS AND LIBOKTETAKASTEN_LIBRARIES AND LIBOKTETAKASTEN_VERSION )
+endif( LIBOKTETAKASTEN_INCLUDE_DIRS AND LIBOKTETAKASTEN_LIBRARIES AND LIBOKTETAKASTEN_VERSION AND
+ LIBOKTETAKASTEN_NEEDS_KASTEN_VERSION AND LIBOKTETAKASTEN_NEEDS_OKTETA_VERSION )
-# First search version 1
-find_library( LIBOKTETA1KASTEN1CORE_LIBRARY
+# First search version 2
+find_library( LIBOKTETA1KASTEN2CORE_LIBRARY
NAMES
- kasten1okteta1core
+ kasten2okteta1core
HINTS
${LIB_INSTALL_DIR}
${KDE4_LIB_DIR}
)
-find_library( LIBOKTETA1KASTEN1GUI_LIBRARY
+find_library( LIBOKTETA1KASTEN2GUI_LIBRARY
NAMES
- kasten1okteta1gui
+ kasten2okteta1gui
HINTS
${LIB_INSTALL_DIR}
${KDE4_LIB_DIR}
)
-find_library( LIBOKTETA1KASTEN1CONTROLLERS_LIBRARY
+find_library( LIBOKTETA1KASTEN2CONTROLLERS_LIBRARY
NAMES
- kasten1okteta1controllers
+ kasten2okteta1controllers
HINTS
${LIB_INSTALL_DIR}
${KDE4_LIB_DIR}
)
-find_path( LIBOKTETAKASTEN_INCLUDE_DIR
+find_path( LIBOKTETA1KASTEN2_INCLUDE_DIR
NAMES
bytearraydocument.h
PATH_SUFFIXES
- kasten1/okteta1
+ kasten2/okteta1
HINTS
${INCLUDE_INSTALL_DIR}
${KDE4_INCLUDE_DIR}
)
-if( LIBOKTETAKASTEN_INCLUDE_DIR AND
- LIBOKTETA1KASTEN1CORE_LIBRARY AND LIBOKTETA1KASTEN1GUI_LIBRARY AND LIBOKTETA1KASTEN1CONTROLLERS_LIBRARY )
+if( LIBOKTETA1KASTEN2_INCLUDE_DIR AND
+ LIBOKTETA1KASTEN2CORE_LIBRARY AND LIBOKTETA1KASTEN2GUI_LIBRARY AND LIBOKTETA1KASTEN2CONTROLLERS_LIBRARY )
set( LIBOKTETAKASTEN_FOUND TRUE )
-endif( LIBOKTETAKASTEN_INCLUDE_DIR AND
- LIBOKTETA1KASTEN1CORE_LIBRARY AND LIBOKTETA1KASTEN1GUI_LIBRARY AND LIBOKTETA1KASTEN1CONTROLLERS_LIBRARY )
+endif( LIBOKTETA1KASTEN2_INCLUDE_DIR AND
+ LIBOKTETA1KASTEN2CORE_LIBRARY AND LIBOKTETA1KASTEN2GUI_LIBRARY AND LIBOKTETA1KASTEN2CONTROLLERS_LIBRARY )
if( LIBOKTETAKASTEN_FOUND )
- set( LIBOKTETAKASTEN_VERSION 1 )
+ set( LIBOKTETAKASTEN_VERSION 2 )
+ set( LIBOKTETAKASTEN_NEEDS_KASTEN_VERSION 2 )
+ set( LIBOKTETAKASTEN_NEEDS_OKTETA_VERSION 1 )
set( LIBOKTETAKASTEN_LIBRARIES
- ${LIBOKTETA1KASTEN1CORE_LIBRARY}
- ${LIBOKTETA1KASTEN1GUI_LIBRARY}
- ${LIBOKTETA1KASTEN1CONTROLLERS_LIBRARY}
+ ${LIBOKTETA1KASTEN2CORE_LIBRARY}
+ ${LIBOKTETA1KASTEN2GUI_LIBRARY}
+ ${LIBOKTETA1KASTEN2CONTROLLERS_LIBRARY}
)
set( LIBOKTETAKASTEN_INCLUDE_DIRS
- ${LIBOKTETAKASTEN_INCLUDE_DIR}
+ ${LIBOKTETA1KASTEN2_INCLUDE_DIR}
)
endif( LIBOKTETAKASTEN_FOUND )
+# Then search version 1
+if( NOT LIBOKTETAKASTEN_FOUND )
+ find_library( LIBOKTETA1KASTEN1CORE_LIBRARY
+ NAMES
+ kasten1okteta1core
+ HINTS
+ ${LIB_INSTALL_DIR}
+ ${KDE4_LIB_DIR}
+ )
+
+ find_library( LIBOKTETA1KASTEN1GUI_LIBRARY
+ NAMES
+ kasten1okteta1gui
+ HINTS
+ ${LIB_INSTALL_DIR}
+ ${KDE4_LIB_DIR}
+ )
+
+ find_library( LIBOKTETA1KASTEN1CONTROLLERS_LIBRARY
+ NAMES
+ kasten1okteta1controllers
+ HINTS
+ ${LIB_INSTALL_DIR}
+ ${KDE4_LIB_DIR}
+ )
+
+
+ find_path( LIBOKTETA1KASTEN1_INCLUDE_DIR
+ NAMES
+ bytearraydocument.h
+ PATH_SUFFIXES
+ kasten1/okteta1
+ HINTS
+ ${INCLUDE_INSTALL_DIR}
+ ${KDE4_INCLUDE_DIR}
+ )
+
+ if( LIBOKTETA1KASTEN1_INCLUDE_DIR AND
+ LIBOKTETA1KASTEN1CORE_LIBRARY AND LIBOKTETA1KASTEN1GUI_LIBRARY AND LIBOKTETA1KASTEN1CONTROLLERS_LIBRARY )
+ set( LIBOKTETAKASTEN_FOUND TRUE )
+ endif( LIBOKTETA1KASTEN1_INCLUDE_DIR AND
+ LIBOKTETA1KASTEN1CORE_LIBRARY AND LIBOKTETA1KASTEN1GUI_LIBRARY AND LIBOKTETA1KASTEN1CONTROLLERS_LIBRARY )
+
+ if( LIBOKTETAKASTEN_FOUND )
+ set( LIBOKTETAKASTEN_VERSION 1 )
+ set( LIBOKTETAKASTEN_NEEDS_KASTEN_VERSION 1 )
+ set( LIBOKTETAKASTEN_NEEDS_OKTETA_VERSION 1 )
+ set( LIBOKTETAKASTEN_LIBRARIES
+ ${LIBOKTETA1KASTEN1CORE_LIBRARY}
+ ${LIBOKTETA1KASTEN1GUI_LIBRARY}
+ ${LIBOKTETA1KASTEN1CONTROLLERS_LIBRARY}
+ )
+ set( LIBOKTETAKASTEN_INCLUDE_DIRS
+ ${LIBOKTETA1KASTEN1_INCLUDE_DIR}
+ )
+ endif( LIBOKTETAKASTEN_FOUND )
+endif( NOT LIBOKTETAKASTEN_FOUND )
+
# Then search version 0
if( NOT LIBOKTETAKASTEN_FOUND )
find_library( LIBOKTETAKASTENCORE0_LIBRARY
@@ -112,6 +174,8 @@ if( NOT LIBOKTETAKASTEN_FOUND )
if( LIBOKTETAKASTEN_FOUND )
set( LIBOKTETAKASTEN_VERSION 0 )
+ set( LIBOKTETAKASTEN_NEEDS_KASTEN_VERSION 0 )
+ set( LIBOKTETAKASTEN_NEEDS_OKTETA_VERSION 0 )
set( LIBOKTETAKASTEN_INCLUDE_DIRS
${LIBOKTETAKASTEN0_INCLUDE_DIR}
)
@@ -138,4 +202,6 @@ mark_as_advanced(
LIBOKTETAKASTEN_INCLUDE_DIRS
LIBOKTETAKASTEN_LIBRARIES
LIBOKTETAKASTEN_VERSION
+ LIBOKTETAKASTEN_NEEDS_KASTEN_VERSION
+ LIBOKTETAKASTEN_NEEDS_OKTETA_VERSION
)
diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt
index 1545d8c..aa0a0e6 100644
--- a/utils/CMakeLists.txt
+++ b/utils/CMakeLists.txt
@@ -6,8 +6,8 @@ macro_log_feature( LIBOKTETAKASTEN_FOUND
)
if( LIBOKTETAKASTEN_FOUND )
-set( LIBOKTETA_FIND_VERSION ${LIBOKTETAKASTEN_VERSION} )
-set( LIBKASTEN_FIND_VERSION ${LIBOKTETAKASTEN_VERSION} )
+set( LIBOKTETA_FIND_VERSION ${LIBOKTETAKASTEN_NEEDS_OKTETA_VERSION} )
+set( LIBKASTEN_FIND_VERSION ${LIBOKTETAKASTEN_NEEDS_KASTEN_VERSION} )
macro_optional_find_package( LibOkteta )
macro_optional_find_package( LibKasten )
@@ -16,7 +16,7 @@ macro_log_feature( LIBOKTETA_FOUND
"" "Required for building Okteta KDevelop plugin."
)
macro_log_feature( LIBKASTEN_FOUND
- "libkasten v${LIBKASTEN_FIND_VERSION}" "Kasten libraries" "kdesk/okteta/libs" FALSE
+ "libkasten v${LIBKASTEN_FIND_VERSION}" "Kasten libraries" "kdesk/okteta/libs/kasten" FALSE
"" "Required for building Okteta KDevelop plugin."
)
endif( LIBOKTETAKASTEN_FOUND )
diff --git a/utils/okteta/kastentoolviewwidget.cpp b/utils/okteta/kastentoolviewwidget.cpp
index b10974e..6ec4f69 100644
--- a/utils/okteta/kastentoolviewwidget.cpp
+++ b/utils/okteta/kastentoolviewwidget.cpp
@@ -27,7 +27,10 @@
// Okteta Kasten
#include <bytearrayview.h>
// Kasten
-#if KASTEN_VERSION == 1
+#if KASTEN_VERSION == 2
+#include <Kasten2/AbstractToolView>
+#include <Kasten2/AbstractTool>
+#elif KASTEN_VERSION == 1
#include <Kasten1/AbstractToolView>
#include <Kasten1/AbstractTool>
#else
diff --git a/utils/okteta/kdevokteta.rc b/utils/okteta/kdevokteta.rc
index e5314cf..b9ac33c 100644
--- a/utils/okteta/kdevokteta.rc
+++ b/utils/okteta/kdevokteta.rc
@@ -1,5 +1,5 @@
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<gui name="okteta" version="1">
+<gui name="okteta" version="2">
<MenuBar>
<Menu name="file">
<Action name="file_save" group="save_merge" /> <!-- TODO: why isn't this offered by the host? -->
@@ -35,34 +35,45 @@
<Separator group="edit_find_merge" />
<Action name="goto_offset" group="edit_find_merge" />
</Menu>
- <Menu name="view"><text>View</text>
- <Action name="view_zoom_in" group="view_operations" />
- <Action name="view_zoom_out" group="view_operations" />
- <Separator group="view_operations" />
- <Action name="view_showsnonprinting" group="view_operations" />
- <Action name="view_lineoffset" group="view_operations" />
- <Action name="togglecolumns" group="view_operations" />
- <Separator group="view_operations" />
- <Action name="view_valuecoding" group="view_operations" />
- <Action name="view_charencoding" group="view_operations" />
- <Separator group="view_operations" />
- <Action name="view_bytesperline" group="view_operations" />
- <Action name="view_bytespergroup" group="view_operations" />
- <Action name="resizestyle" group="view_operations" />
- <Action name="viewmode" group="view_operations" />
+
+ <Menu name="editor">
+
+ <Menu name="view"><text>View</text>
+ <Action name="view_zoom_in" group="view_operations" />
+ <Action name="view_zoom_out" group="view_operations" />
+ <Separator group="view_operations" />
+ <Action name="view_showsnonprinting" group="view_operations" />
+ <Action name="view_lineoffset" group="view_operations" />
+ <Action name="togglecolumns" group="view_operations" />
+ <Separator group="view_operations" />
+ <Action name="view_valuecoding" group="view_operations" />
+ <Action name="view_charencoding" group="view_operations" />
+ <Separator group="view_operations" />
+ <Action name="view_bytesperline" group="view_operations" />
+ <Action name="view_bytespergroup" group="view_operations" />
+ <Action name="resizestyle" group="view_operations" />
+ <Action name="viewmode" group="view_operations" />
+ <Separator/>
+ <Action name="view_profile" />
+ </Menu>
+ <Menu name="bookmarks"><text>Bookmarks</text>
+ <Action name="bookmark_add" />
+ <Action name="bookmark_edit" />
+ <Separator/>
+ <Action name="bookmark_replace" />
+ <Action name="bookmark_remove" />
+ <Action name="bookmark_remove_all" />
+ <Separator/>
+ <Action name="bookmark_previous" />
+ <Action name="bookmark_next" />
+ <Separator/>
+ <ActionList name="bookmark_list" />
+ </Menu>
+
</Menu>
- <Menu name="bookmarks"><text>Bookmarks</text>
- <Action name="bookmark_add" />
- <Action name="bookmark_edit" />
- <Separator/>
- <Action name="bookmark_replace" />
- <Action name="bookmark_remove" />
- <Action name="bookmark_remove_all" />
- <Separator/>
- <Action name="bookmark_previous" />
- <Action name="bookmark_next" />
- <Separator/>
- <ActionList name="bookmark_list" />
+
+ <Menu name="settings">
+ <Action name="settings_viewprofiles_manage" group="configure_merge" />
</Menu>
</MenuBar>
diff --git a/utils/okteta/oktetadocument.cpp b/utils/okteta/oktetadocument.cpp
index abb047d..6af5c11 100644
--- a/utils/okteta/oktetadocument.cpp
+++ b/utils/okteta/oktetadocument.cpp
@@ -23,9 +23,15 @@
#include "oktetadocument.h"
// plugin
+#include "oktetaplugin.h"
#include "oktetaview.h"
// Okteta
-#if KASTEN_VERSION == 1
+#if KASTEN_VERSION == 2
+#include <kasten2/okteta1/bytearrayviewprofilemanager.h>
+#include <kasten2/okteta1/bytearrayviewprofilesynchronizer.h>
+#include <kasten2/okteta1/bytearrayrawfilesynchronizerfactory.h>
+#include <kasten2/okteta1/bytearraydocument.h>
+#elif KASTEN_VERSION == 1
#include <kasten1/okteta1/bytearrayrawfilesynchronizerfactory.h>
#include <kasten1/okteta1/bytearraydocument.h>
#else
@@ -33,7 +39,13 @@
#include <kasten/bytearraydocument.h>
#endif
// Kasten
-#if KASTEN_VERSION == 1
+#if KASTEN_VERSION == 2
+#include <Kasten2/JobManager>
+#include <Kasten2/AbstractLoadJob>
+#include <Kasten2/AbstractSyncToRemoteJob>
+#include <Kasten2/AbstractSyncFromRemoteJob>
+#include <Kasten2/AbstractModelSynchronizer>
+#elif KASTEN_VERSION == 1
#include <Kasten1/JobManager>
#include <Kasten1/AbstractLoadJob>
#include <Kasten1/AbstractSyncToRemoteJob>
@@ -86,7 +98,11 @@ KTextEditor::Cursor OktetaDocument::cursorPosition() const { return KTextEditor:
IDocument::DocumentState OktetaDocument::state() const
{
return mByteArrayDocument ?
+#if KASTEN_VERSION == 2
+ ( mByteArrayDocument->synchronizer()->localSyncState() == Kasten::LocalHasChanges ?
+#else
( mByteArrayDocument->localSyncState() == Kasten::LocalHasChanges ?
+#endif
IDocument::Modified :
IDocument::Clean ) :
IDocument::Clean;
@@ -105,7 +121,7 @@ bool OktetaDocument::save( IDocument::DocumentSaveMode mode )
Kasten::AbstractSyncToRemoteJob* syncJob = synchronizer->startSyncToRemote();
const bool syncSucceeded =
-#if KASTEN_VERSION == 1
+#if KASTEN_VERSION == 1 || KASTEN_VERSION == 2
Kasten::JobManager::executeJob( syncJob );
#else
Kasten::JobManager::executeJob( syncJob, qApp->activeWindow() );
@@ -127,7 +143,7 @@ void OktetaDocument::reload()
Kasten::AbstractSyncFromRemoteJob* syncJob = synchronizer->startSyncFromRemote();
const bool syncSucceeded =
-#if KASTEN_VERSION == 1
+#if KASTEN_VERSION == 1 || KASTEN_VERSION == 2
Kasten::JobManager::executeJob( syncJob );
#else
Kasten::JobManager::executeJob( syncJob, qApp->activeWindow() );
@@ -227,7 +243,10 @@ Sublime::View* OktetaDocument::newView( Sublime::Document* document )
Kasten::AbstractModelSynchronizer* synchronizer = synchronizerFactory->createSynchronizer();
Kasten::AbstractLoadJob* loadJob = synchronizer->startLoad( url() );
-#if KASTEN_VERSION == 1
+#if KASTEN_VERSION == 2
+ connect( loadJob, SIGNAL(documentLoaded(Kasten2::AbstractDocument*)),
+ SLOT(onByteArrayDocumentLoaded(Kasten2::AbstractDocument*)) );
+#elif KASTEN_VERSION == 1
connect( loadJob, SIGNAL(documentLoaded(Kasten1::AbstractDocument*)),
SLOT(onByteArrayDocumentLoaded(Kasten1::AbstractDocument*)) );
#else
@@ -235,7 +254,7 @@ Sublime::View* OktetaDocument::newView( Sublime::Document* document )
SLOT(onByteArrayDocumentLoaded(Kasten::AbstractDocument*)) );
#endif
const bool syncSucceeded =
-#if KASTEN_VERSION == 1
+#if KASTEN_VERSION == 1 || KASTEN_VERSION == 2
Kasten::JobManager::executeJob( loadJob );
#else
Kasten::JobManager::executeJob( loadJob, qApp->activeWindow() );
@@ -244,7 +263,15 @@ Sublime::View* OktetaDocument::newView( Sublime::Document* document )
delete synchronizerFactory;
}
+#if KASTEN_VERSION == 2
+ Kasten::ByteArrayViewProfileManager* const viewProfileManager = mPlugin->viewProfileManager();
+ Kasten::ByteArrayViewProfileSynchronizer* viewProfileSynchronizer =
+ new Kasten::ByteArrayViewProfileSynchronizer( viewProfileManager );
+ viewProfileSynchronizer->setViewProfileId( viewProfileManager->defaultViewProfileId() );
+ return new OktetaView( this, viewProfileSynchronizer );
+#else
return new OktetaView( this );
+#endif
}
bool OktetaDocument::closeDocument(bool silent)
@@ -257,7 +284,9 @@ void OktetaDocument::onByteArrayDocumentLoaded( Kasten::AbstractDocument* docume
if( document )
{
mByteArrayDocument = static_cast<Kasten::ByteArrayDocument*>( document );
-#if KASTEN_VERSION == 1
+#if KASTEN_VERSION == 2
+ connect( mByteArrayDocument, SIGNAL(localSyncStateChanged(Kasten2::LocalSyncState)),
+#elif KASTEN_VERSION == 1
connect( mByteArrayDocument, SIGNAL(localSyncStateChanged(Kasten1::LocalSyncState)),
#else
connect( mByteArrayDocument, SIGNAL(localSyncStateChanged(Kasten::LocalSyncState)),
diff --git a/utils/okteta/oktetadocument.h b/utils/okteta/oktetadocument.h
index 56eba46..c03573a 100644
--- a/utils/okteta/oktetadocument.h
+++ b/utils/okteta/oktetadocument.h
@@ -85,7 +85,9 @@ class OktetaDocument : public Sublime::UrlDocument, public IDocument
protected Q_SLOTS:
void onByteArrayDocumentChanged();
// Moc is too primitive to know about namespace aliase
-#if KASTEN_VERSION == 1
+#if KASTEN_VERSION == 2
+ void onByteArrayDocumentLoaded( Kasten2::AbstractDocument* document );
+#elif KASTEN_VERSION == 1
void onByteArrayDocumentLoaded( Kasten1::AbstractDocument* document );
#else
void onByteArrayDocumentLoaded( Kasten::AbstractDocument* document );
diff --git a/utils/okteta/oktetaglobal.h b/utils/okteta/oktetaglobal.h
index 0113bbb..857ba55 100644
--- a/utils/okteta/oktetaglobal.h
+++ b/utils/okteta/oktetaglobal.h
@@ -24,7 +24,11 @@
#define OKTETAGLOBAL_H
// Adaptions for the different version of Kasten and Okteta
-#if KASTEN_VERSION == 1
+#if KASTEN_VERSION == 2
+namespace Kasten2 {}
+namespace Kasten = Kasten2;
+#define KASTEN_NAMESPACE Kasten2
+#elif KASTEN_VERSION == 1
namespace Kasten1 {}
namespace Kasten = Kasten1;
#define KASTEN_NAMESPACE Kasten1
diff --git a/utils/okteta/oktetaplugin.cpp b/utils/okteta/oktetaplugin.cpp
index c8a7fd4..5691959 100644
--- a/utils/okteta/oktetaplugin.cpp
+++ b/utils/okteta/oktetaplugin.cpp
@@ -45,6 +45,10 @@
#include <bookmarkstoolfactory.h>
#include <structurestoolviewfactory.h>
#include <structurestoolfactory.h>
+// Okteta Kasten
+#if KASTEN_VERSION == 2
+#include <bytearrayviewprofilemanager.h>
+#endif
// KDev
#include <project/projectmodel.h>
#include <interfaces/icore.h>
@@ -77,15 +81,20 @@ void addTool( IUiController* uiController,
OktetaPlugin::OktetaPlugin( QObject* parent, const QVariantList& args )
- : IPlugin( OktetaPluginFactory::componentData(), parent ),
- mDocumentFactory( new OktetaDocumentFactory(this) )
+ : IPlugin( OktetaPluginFactory::componentData(), parent )
+ , mDocumentFactory( new OktetaDocumentFactory(this) )
+#if KASTEN_VERSION == 2
+ , mViewProfileManager( new Kasten::ByteArrayViewProfileManager() )
+#endif
{
Q_UNUSED(args)
+#if KASTEN_VERSION == 0 || KASTEN_VERSION == 1
KLocale* globalLocale = KGlobal::locale();
globalLocale->insertCatalog( QString::fromLatin1("liboktetacore") );
globalLocale->insertCatalog( QString::fromLatin1("libkasten") );
globalLocale->insertCatalog( QString::fromLatin1("liboktetakasten") );
+#endif
IUiController* uiController = core()->uiController();
addTool( uiController, new Kasten::ChecksumToolViewFactory(), new Kasten::ChecksumToolFactory() );
diff --git a/utils/okteta/oktetaplugin.h b/utils/okteta/oktetaplugin.h
index 3eec9f7..d848aae 100644
--- a/utils/okteta/oktetaplugin.h
+++ b/utils/okteta/oktetaplugin.h
@@ -23,6 +23,8 @@
#ifndef OKTETAPLUGIN_H
#define OKTETAPLUGIN_H
+// Plugin
+#include "oktetaglobal.h"
// KDev
#include <interfaces/iplugin.h>
// Qt
@@ -30,6 +32,10 @@
class KUrl;
+namespace KASTEN_NAMESPACE
+{
+class ByteArrayViewProfileManager;
+}
namespace KDevelop
{
@@ -48,11 +54,19 @@ class OktetaPlugin: public IPlugin
public: // KDevelop::IPlugin API
virtual ContextMenuExtension contextMenuExtension( Context* context );
+#if KASTEN_VERSION == 2
+ public:
+ Kasten::ByteArrayViewProfileManager* viewProfileManager() const { return mViewProfileManager; }
+#endif
+
private Q_SLOTS:
void onOpenTriggered();
protected:
OktetaDocumentFactory* mDocumentFactory;
+#if KASTEN_VERSION == 2
+ Kasten::ByteArrayViewProfileManager* const mViewProfileManager;
+#endif
QList<KUrl> mContextUrls;
};
diff --git a/utils/okteta/oktetatoolviewfactory.cpp b/utils/okteta/oktetatoolviewfactory.cpp
index ed0cf13..fffa24e 100644
--- a/utils/okteta/oktetatoolviewfactory.cpp
+++ b/utils/okteta/oktetatoolviewfactory.cpp
@@ -25,7 +25,11 @@
// plugin
#include "kastentoolviewwidget.h"
// Kasten
-#if KASTEN_VERSION == 1
+#if KASTEN_VERSION == 2
+#include <Kasten2/AbstractToolViewFactory>
+#include <Kasten2/AbstractToolFactory>
+#include <Kasten2/AbstractToolView>
+#elif KASTEN_VERSION == 1
#include <Kasten1/AbstractToolViewFactory>
#include <Kasten1/AbstractToolFactory>
#include <Kasten1/AbstractToolView>
diff --git a/utils/okteta/oktetaview.cpp b/utils/okteta/oktetaview.cpp
index 249aaaa..d4142f3 100644
--- a/utils/okteta/oktetaview.cpp
+++ b/utils/okteta/oktetaview.cpp
@@ -33,9 +33,15 @@
namespace KDevelop
{
+#if KASTEN_VERSION == 2
+OktetaView::OktetaView( OktetaDocument* document, Kasten::ByteArrayViewProfileSynchronizer* viewProfileSynchronizer )
+ : Sublime::View( document, View::TakeOwnership ),
+ mByteArrayView( new Kasten::ByteArrayView( document->byteArrayDocument(), viewProfileSynchronizer ) )
+#else
OktetaView::OktetaView( OktetaDocument* document )
: Sublime::View( document, View::TakeOwnership ),
mByteArrayView( new Kasten::ByteArrayView( document->byteArrayDocument() ) )
+#endif
{
}
diff --git a/utils/okteta/oktetaview.h b/utils/okteta/oktetaview.h
index 29a6b39..6d2e655 100644
--- a/utils/okteta/oktetaview.h
+++ b/utils/okteta/oktetaview.h
@@ -29,6 +29,7 @@
#include <sublime/view.h>
namespace KASTEN_NAMESPACE {
+class ByteArrayViewProfileSynchronizer;
class ByteArrayView;
}
@@ -43,8 +44,11 @@ class OktetaView : public Sublime::View
Q_OBJECT
public:
+#if KASTEN_VERSION == 2
+ OktetaView( OktetaDocument* document, Kasten::ByteArrayViewProfileSynchronizer* viewProfileSynchronizer );
+#else
explicit OktetaView( OktetaDocument* document );
-
+#endif
virtual ~OktetaView();
public:
diff --git a/utils/okteta/oktetawidget.cpp b/utils/okteta/oktetawidget.cpp
index 0fac371..cd020b7 100644
--- a/utils/okteta/oktetawidget.cpp
+++ b/utils/okteta/oktetawidget.cpp
@@ -39,6 +39,10 @@
#include <viewconfigcontroller.h>
#include <viewmodecontroller.h>
#include <viewstatuscontroller.h>
+#if KASTEN_VERSION == 2
+#include <viewprofilecontroller.h>
+#include <viewprofilesmanagecontroller.h>
+#endif
// Kasten
#include <readonlycontroller.h>
// #include <document/readonly/readonlybarcontroller.h>
@@ -54,6 +58,7 @@
// KDevelop
#include <sublime/view.h>
// KDE
+#include <KLocale>
#include <KAction>
#include <KStandardAction>
#include <KActionCollection>
@@ -73,7 +78,7 @@ OktetaWidget::OktetaWidget( QWidget* parent, Kasten::ByteArrayView* byteArrayVie
setComponentData( plugin->componentData() );
setXMLFile( "kdevokteta.rc" );
- setupActions();
+ setupActions(plugin);
QVBoxLayout* layout = new QVBoxLayout( this );
layout->setMargin( 0 );
@@ -82,7 +87,7 @@ OktetaWidget::OktetaWidget( QWidget* parent, Kasten::ByteArrayView* byteArrayVie
setFocusProxy( widget );
}
-void OktetaWidget::setupActions()
+void OktetaWidget::setupActions(OktetaPlugin* plugin)
{
mControllers.append( new Kasten::VersionController(this) );
mControllers.append( new Kasten::ReadOnlyController(this) );
@@ -103,6 +108,15 @@ void OktetaWidget::setupActions()
mControllers.append( new Kasten::PrintController( this ) );
mControllers.append( new Kasten::ViewConfigController(this) );
mControllers.append( new Kasten::ViewModeController(this) );
+#if KASTEN_VERSION == 2
+ Kasten::ByteArrayViewProfileManager* viewProfileManager = plugin->viewProfileManager();
+ mControllers.append( new Kasten::ViewProfileController(viewProfileManager, mByteArrayView->widget(), this) );
+ mControllers.append( new Kasten::ViewProfilesManageController(this, viewProfileManager, mByteArrayView->widget()) );
+ // update the text of the viewprofiles_manage action, to make clear this is just for byte arrays
+ QAction* viewprofilesManageAction = actionCollection()->action(QLatin1String("settings_viewprofiles_manage"));
+ viewprofilesManageAction->setText( i18nc("@action:inmenu",
+ "Manage Byte Array View Profiles...") );
+#endif
// Kasten::StatusBar* bottomBar = static_cast<Kasten::StatusBar*>( statusBar() );
// mControllers.append( new ViewStatusController(bottomBar) );
@@ -111,7 +125,6 @@ void OktetaWidget::setupActions()
foreach( Kasten::AbstractXmlGuiController* controller, mControllers )
controller->setTargetModel( mByteArrayView );
-
#if 0
QDesignerFormWindowManagerInterface* manager = mDocument->form()->core()->formWindowManager();
KActionCollection* ac = actionCollection();
diff --git a/utils/okteta/oktetawidget.h b/utils/okteta/oktetawidget.h
index dfc9907..e62e58e 100644
--- a/utils/okteta/oktetawidget.h
+++ b/utils/okteta/oktetawidget.h
@@ -55,10 +55,10 @@ class OktetaWidget : public QWidget, public KXMLGUIClient
void editSignals();
void editTabOrder();
#endif
- protected:
- void setupActions();
+ private:
+ void setupActions(OktetaPlugin* plugin);
- protected:
+ private:
Kasten::ByteArrayView* mByteArrayView;
// TODO: move this to the plugin, per mainwindow
QList<Kasten::AbstractXmlGuiController*> mControllers;