[packages/kde4-kdevelop] fix build with okteta/kasten v[0..2], release 2 for rebuild with kde4-kdesdk-4.9.0.

pluto pluto at pld-linux.org
Sat Aug 25 20:45:29 CEST 2012


commit 69cc44336d745e9f06a25ec02894f7afcd6dc1da
Author: Paweł Sikora <pawel.sikora at agmk.net>
Date:   Sat Aug 25 20:44:39 2012 +0200

    fix build with okteta/kasten v[0..2], release 2 for rebuild with kde4-kdesdk-4.9.0.

 kde4-kdevelop.spec |   4 +-
 okteta.patch       | 776 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 779 insertions(+), 1 deletion(-)
---
diff --git a/kde4-kdevelop.spec b/kde4-kdevelop.spec
index d723547..c73cc52 100644
--- a/kde4-kdevelop.spec
+++ b/kde4-kdevelop.spec
@@ -14,11 +14,12 @@ Summary(pt_BR.UTF-8):	Ambiente Integrado de Desenvolvimento para o KDE
 Summary(zh_CN.UTF-8):	KDE C/C++集成开发环境
 Name:		kde4-kdevelop
 Version:	4.3.1
-Release:	1
+Release:	2
 License:	GPL
 Group:		X11/Development/Tools
 Source0:	ftp://ftp.kde.org/pub/kde/%{_state}/kdevelop/%{version}/src/%{orgname}-%{version}.tar.bz2
 # Source0-md5:	6126e49562dcfb8e78a0f1b052a1ce19
+Patch0:		okteta.patch
 URL:		http://www.kdevelop.org/
 BuildRequires:	QtHelp-devel >= %{qtver}
 BuildRequires:	QtNetwork-devel >= %{qtver}
@@ -112,6 +113,7 @@ pisaniu własnych programów wykorzystujących kdevelop.
 
 %prep
 %setup -q -n %{orgname}-%{version}
+%patch0 -p1
 
 %build
 install -d build
diff --git a/okteta.patch b/okteta.patch
new file mode 100644
index 0000000..34673d9
--- /dev/null
+++ b/okteta.patch
@@ -0,0 +1,776 @@
+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;


More information about the pld-cvs-commit mailing list