From 04e86613f67d171cc965fce64a4310c0d25c98e1 Mon Sep 17 00:00:00 2001 From: Mavridis Philippe Date: Mon, 30 Sep 2024 00:04:56 +0300 Subject: [PATCH] WIP: CMake port Signed-off-by: Philippe Mavridis --- CMakeLists.txt | 95 ++++++++++++++ ConfigureChecks.cmake | 38 ++++++ autocorrect/CMakeLists.txt | 14 ++ chalk/ConfigureChecks.cmake | 65 ++++++++++ chalk/core/kis_painter.cpp | 8 +- config.h.cmake | 18 +++ example/CMakeLists.txt | 61 +++++++++ filters/ConfigureChecks.cmake | 8 ++ .../gmagick/kis_image_magick_converter.cpp | 24 ++-- .../magick/kis_image_magick_converter.cpp | 9 +- filters/karbon/ai/ai88handler.cpp | 4 +- filters/karbon/ai/aiparserbase.cpp | 4 +- filters/karbon/ai/aiparserbase.h | 2 +- .../kword/pdf/xpdf/xpdf/BuiltinFontTables.cpp | 4 +- .../pdf/xpdf/xpdf/FontEncodingTables.cpp | 4 +- .../kword/pdf/xpdf/xpdf/NameToUnicodeTable.h | 4 +- interfaces/CMakeLists.txt | 36 ++++++ kchart/CMakeLists.txt | 85 +++++++++++++ kchart/kdchart/CMakeLists.txt | 56 ++++++++ kchart/pics/CMakeLists.txt | 26 ++++ kchart/templates/CMakeLists.txt | 21 +++ kchart/toolbar/CMakeLists.txt | 13 ++ kchart/toolbar/crystalsvg/CMakeLists.txt | 11 ++ kchart/toolbar/locolor/CMakeLists.txt | 11 ++ kexi/3rdparty/kexisql/src/btree.c | 28 ++-- kexi/3rdparty/kexisql3/src/btree.c | 38 +++--- kexi/core/kexipartmanager.cpp | 20 +-- kexi/examples/Simple_Database.kexi | Bin 0 -> 76800 bytes kexi/main/keximainwindowimpl.cpp | 10 +- kexi/migration/importwizard.cpp | 56 ++++---- kexi/plugins/macros/tests/komacrotestgui.cpp | 2 +- kformula/CMakeLists.txt | 64 ++++++++++ kformula/pics/CMakeLists.txt | 11 ++ kounavail/CMakeLists.txt | 41 ++++++ kplato/kptganttview.cpp | 6 +- kplato/kptganttview.h | 4 +- kplato/kptresource.cpp | 8 +- kplato/kptresource.h | 4 +- kplato/kptresourceappointmentsview.h | 2 +- kplato/kpttaskappointmentsview.cpp | 36 +++--- kplato/kpttaskappointmentsview.h | 16 +-- kplato/kpttaskappointmentsview.ui.h | 8 +- kplato/kptview.cpp | 6 +- kplato/kptview.h | 4 +- kpresenter/CMakeLists.txt | 120 ++++++++++++++++++ kword/CMakeLists.txt | 108 ++++++++++++++++ kword/ConfigureChecks.cmake | 18 +++ kword/data/CMakeLists.txt | 11 ++ kword/dtd/CMakeLists.txt | 11 ++ kword/expression/CMakeLists.txt | 11 ++ kword/horizontalline/CMakeLists.txt | 11 ++ kword/mailmerge/CMakeLists.txt | 41 ++++++ kword/mailmerge/kspread/CMakeLists.txt | 38 ++++++ kword/mailmerge/tdeabc/CMakeLists.txt | 37 ++++++ kword/pics/CMakeLists.txt | 8 ++ kword/templates/CMakeLists.txt | 10 ++ kword/templates/CardsAndLabels/CMakeLists.txt | 22 ++++ kword/templates/Envelopes/CMakeLists.txt | 22 ++++ kword/templates/Wordprocessing/CMakeLists.txt | 22 ++++ kword/toolbar/CMakeLists.txt | 8 ++ lib/CMakeLists.txt | 25 ++++ lib/ConfigureChecks.cmake | 15 +++ lib/kformula/CMakeLists.txt | 70 ++++++++++ lib/kformula/dtd/CMakeLists.txt | 11 ++ lib/kformula/entities.cpp | 8 +- lib/kformula/fonts/CMakeLists.txt | 18 +++ lib/kformula/kformulacontainer.cpp | 2 +- lib/kformula/kformuladocument.cpp | 11 +- lib/kformula/pics/CMakeLists.txt | 11 ++ lib/kformula/pics/crystalsvg/CMakeLists.txt | 11 ++ lib/kformula/unicodetable.cpp | 4 +- lib/kofficecore/CMakeLists.txt | 87 +++++++++++++ lib/kofficecore/KoDocument.cpp | 6 +- lib/kofficecore/KoMainWindow.cpp | 6 +- lib/kofficecore/KoSpeaker.cpp | 6 +- lib/kofficeui/CMakeLists.txt | 77 +++++++++++ lib/kofficeui/KoInsertLink.cpp | 10 +- lib/kofficeui/KoSelectAction.cpp | 8 +- lib/kofficeui/KoTemplateChooseDia.cpp | 2 +- lib/kofficeui/koffice.widgets | 16 +-- lib/kofficeui/pics/CMakeLists.txt | 23 ++++ lib/kopainter/CMakeLists.txt | 33 +++++ lib/kopalette/CMakeLists.txt | 33 +++++ lib/koproperty/CMakeLists.txt | 36 ++++++ lib/koproperty/editors/CMakeLists.txt | 33 +++++ lib/kotext/CMakeLists.txt | 57 +++++++++ lib/kotext/KoAutoFormat.cpp | 10 +- lib/kotext/KoAutoFormatDia.cpp | 2 +- lib/kotext/kohyphen/CMakeLists.txt | 41 ++++++ lib/kotext/kohyphen/hyphdicts/CMakeLists.txt | 18 +++ lib/kotext/kohyphen/kohyphentest.cpp | 12 +- lib/kross/CMakeLists.txt | 17 +++ lib/kross/ConfigureChecks.cmake | 119 +++++++++++++++++ lib/kross/api/CMakeLists.txt | 38 ++++++ lib/kross/main/CMakeLists.txt | 39 ++++++ lib/kross/ruby/CMakeLists.txt | 35 +++++ lib/kross/runner/CMakeLists.txt | 27 ++++ lib/kross/test/CMakeLists.txt | 27 ++++ lib/kwmf/CMakeLists.txt | 36 ++++++ lib/store/CMakeLists.txt | 34 +++++ pics/CMakeLists.txt | 11 ++ pics/crystalsvg/CMakeLists.txt | 11 ++ servicetypes/CMakeLists.txt | 18 +++ templates/CMakeLists.txt | 22 ++++ 104 files changed, 2414 insertions(+), 205 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 ConfigureChecks.cmake create mode 100644 autocorrect/CMakeLists.txt create mode 100644 chalk/ConfigureChecks.cmake create mode 100644 config.h.cmake create mode 100644 example/CMakeLists.txt create mode 100644 filters/ConfigureChecks.cmake create mode 100644 interfaces/CMakeLists.txt create mode 100644 kchart/CMakeLists.txt create mode 100644 kchart/kdchart/CMakeLists.txt create mode 100644 kchart/pics/CMakeLists.txt create mode 100644 kchart/templates/CMakeLists.txt create mode 100644 kchart/toolbar/CMakeLists.txt create mode 100644 kchart/toolbar/crystalsvg/CMakeLists.txt create mode 100644 kchart/toolbar/locolor/CMakeLists.txt create mode 100644 kexi/examples/Simple_Database.kexi create mode 100644 kformula/CMakeLists.txt create mode 100644 kformula/pics/CMakeLists.txt create mode 100644 kounavail/CMakeLists.txt create mode 100644 kpresenter/CMakeLists.txt create mode 100644 kword/CMakeLists.txt create mode 100644 kword/ConfigureChecks.cmake create mode 100644 kword/data/CMakeLists.txt create mode 100644 kword/dtd/CMakeLists.txt create mode 100644 kword/expression/CMakeLists.txt create mode 100644 kword/horizontalline/CMakeLists.txt create mode 100644 kword/mailmerge/CMakeLists.txt create mode 100644 kword/mailmerge/kspread/CMakeLists.txt create mode 100644 kword/mailmerge/tdeabc/CMakeLists.txt create mode 100644 kword/pics/CMakeLists.txt create mode 100644 kword/templates/CMakeLists.txt create mode 100644 kword/templates/CardsAndLabels/CMakeLists.txt create mode 100644 kword/templates/Envelopes/CMakeLists.txt create mode 100644 kword/templates/Wordprocessing/CMakeLists.txt create mode 100644 kword/toolbar/CMakeLists.txt create mode 100644 lib/CMakeLists.txt create mode 100644 lib/ConfigureChecks.cmake create mode 100644 lib/kformula/CMakeLists.txt create mode 100644 lib/kformula/dtd/CMakeLists.txt create mode 100644 lib/kformula/fonts/CMakeLists.txt create mode 100644 lib/kformula/pics/CMakeLists.txt create mode 100644 lib/kformula/pics/crystalsvg/CMakeLists.txt create mode 100644 lib/kofficecore/CMakeLists.txt create mode 100644 lib/kofficeui/CMakeLists.txt create mode 100644 lib/kofficeui/pics/CMakeLists.txt create mode 100644 lib/kopainter/CMakeLists.txt create mode 100644 lib/kopalette/CMakeLists.txt create mode 100644 lib/koproperty/CMakeLists.txt create mode 100644 lib/koproperty/editors/CMakeLists.txt create mode 100644 lib/kotext/CMakeLists.txt create mode 100644 lib/kotext/kohyphen/CMakeLists.txt create mode 100644 lib/kotext/kohyphen/hyphdicts/CMakeLists.txt create mode 100644 lib/kross/CMakeLists.txt create mode 100644 lib/kross/ConfigureChecks.cmake create mode 100644 lib/kross/api/CMakeLists.txt create mode 100644 lib/kross/main/CMakeLists.txt create mode 100644 lib/kross/ruby/CMakeLists.txt create mode 100644 lib/kross/runner/CMakeLists.txt create mode 100644 lib/kross/test/CMakeLists.txt create mode 100644 lib/kwmf/CMakeLists.txt create mode 100644 lib/store/CMakeLists.txt create mode 100644 pics/CMakeLists.txt create mode 100644 pics/crystalsvg/CMakeLists.txt create mode 100644 servicetypes/CMakeLists.txt create mode 100644 templates/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 000000000..ba04c261a --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,95 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +project(koffice) + +### Includes ################################################################## +include(FindPkgConfig) +include(CheckFunctionExists) +include(CheckSymbolExists) +include(CheckIncludeFile) +include(CheckLibraryExists) +include(CheckCSourceCompiles) +include(CheckCXXSourceCompiles) + +include(TDEMacros) +include(TDESetupPaths) +include(TDEVersion) + +### Basic project setup ######################################################## +cmake_minimum_required(VERSION ${TDE_CMAKE_MINIMUM_VERSION}) +tde_set_project_version() +tde_setup_paths() + +### Options #################################################################### +option(WITH_ALL_OPTIONS "Enable all optional support" ON) +option(WITH_LIBEXIF "Enable libexif support" ${WITH_ALL_OPTIONS}) +option(WITH_GRAPHICSMAGICK "Enable GraphicsMagick filter" ${WITH_ALL_OPTIONS}) +option(WITH_IMAGEMAGICK "Enable ImageMagick filter" ${WITH_ALL_OPTIONS}) +option(WITH_OPENEXR "Enable OpenEXR support" ${WITH_ALL_OPTIONS}) +option(WITH_KEXI_MYSQL "Enable Kexi MySQL plugin" ${WITH_ALL_OPTIONS}) +option(WITH_KEXI_PGSQL "Enable Kexi PostgreSQL plugin" ${WITH_ALL_OPTIONS}) +option(WITH_KEXI_MACROS "Enable Kexi macro plugin" ${WITH_ALL_OPTIONS}) +option(WITH_KROSS_PYTHON "Enable Kross Python plugin" OFF) +option(WITH_KROSS_RUBY "Enable Kross Ruby plugin" ${WITH_ALL_OPTIONS}) + +### Components ################################################################# +option(BUILD_ALL "Build all" ON) +option(BUILD_DOC "Build documentation" ${BUILD_ALL}) +option(BUILD_TRANSLATIONS "Build translations" ${BUILD_ALL}) +option(BUILD_CHALK "Build Chalk" ${BUILD_ALL}) +option(BUILD_KARBON "Build Karbon" ${BUILD_ALL}) +option(BUILD_KCHART "Build KChart" ${BUILD_ALL}) +option(BUILD_KDGANTT "Build KDGantt" ${BUILD_ALL}) +option(BUILD_KEXI "Build Kexi" ${BUILD_ALL}) +option(BUILD_KFORMULA "Build KFormula" ${BUILD_ALL}) +option(BUILD_KIVIO "Build Kivio" ${BUILD_ALL}) +option(BUILD_KOSHELL "Build KOffice Workspace" ${BUILD_ALL}) +option(BUILD_KPLATO "Build KPlato" ${BUILD_ALL}) +option(BUILD_KPRESENTER "Build KPresenter" ${BUILD_ALL}) +option(BUILD_KSPREAD "Build KSpread" ${BUILD_ALL}) +option(BUILD_KUGAR "Build Kugar" ${BUILD_ALL}) +option(BUILD_KWORD "Build KWord" ${BUILD_ALL}) +option(BUILD_KROSS "Build Kross scripting library" ${BUILD_ALL}) +option(BUILD_EXAMPLE "Build KOffice example part" OFF) +option(BUILD_TESTS "Build KOffice tests" OFF) + +### Configuration ############################################################# +include(ConfigureChecks.cmake) +configure_file(config.h.cmake config.h @ONLY) + +### Subdirectories ############################################################ +add_subdirectory(lib) +add_subdirectory(interfaces) +add_subdirectory(autocorrect) +add_subdirectory(kounavail) +add_subdirectory(pics) +# add_subdirectory(plugins) +add_subdirectory(servicetypes) +add_subdirectory(templates) +# add_subdirectory(tools) +# add_subdirectory(filters) +# +tde_conditional_add_project_docs(BUILD_DOC) +tde_conditional_add_project_translations(BUILD_TRANSLATIONS) +# +# tde_conditional_add_subdirectory(BUILD_CHALK chalk) +tde_conditional_add_subdirectory(BUILD_EXAMPLE example) +# tde_conditional_add_subdirectory(BUILD_KARBON karbon) +tde_conditional_add_subdirectory(BUILD_KCHART kchart) +# tde_conditional_add_subdirectory(BUILD_KDGANTT kdgantt) +tde_conditional_add_subdirectory(BUILD_KFORMULA kformula) +# tde_conditional_add_subdirectory(BUILD_KIVIO kivio) +# tde_conditional_add_subdirectory(BUILD_KOSHELL koshell) +tde_conditional_add_subdirectory(BUILD_KPRESENTER kpresenter) +# tde_conditional_add_subdirectory(BUILD_KSPREAD kspread) +# tde_conditional_add_subdirectory(BUILD_KUGAR kugar) +tde_conditional_add_subdirectory(BUILD_KWORD kword) +# tde_conditional_add_subdirectory(BUILD_KPLATO kplato) +# tde_conditional_add_subdirectory(BUILD_KEXI kexi) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake new file mode 100644 index 000000000..fd4c8d46d --- /dev/null +++ b/ConfigureChecks.cmake @@ -0,0 +1,38 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +### TQt/TDE ################################################################### +find_package(TQt) +find_package(TDE) +tde_setup_architecture_flags() +tde_setup_largefiles() + +### Big Endian ################################################################ +include(TestBigEndian) +test_big_endian(WORDS_BIGENDIAN) + +### System headers ############################################################ +check_include_file("unistd.h" HAVE_UNISTD_H) +check_include_file("sys/param.h" HAVE_SYS_PARAM_H) +check_include_file("floatingpoint.h" HAVE_FLOATINGPOINT_H) +check_include_file("paths.h" HAVE_PATHS_H) + +### KOffice library ########################################################## +if (BUILD_CHALK OR BUILD_KARBON OR BUILD_KIVIO OR BUILD_KPRESENTER) + set(BUILD_KOPAINTER ON) +endif() + +include(lib/ConfigureChecks.cmake) +include(filters/ConfigureChecks.cmake) +include(kword/ConfigureChecks.cmake) + +### KOffice applications ###################################################### +if (BUILD_CHALK) + include(chalk/ConfigureChecks.cmake) +endif() + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/autocorrect/CMakeLists.txt b/autocorrect/CMakeLists.txt new file mode 100644 index 000000000..db4c0d413 --- /dev/null +++ b/autocorrect/CMakeLists.txt @@ -0,0 +1,14 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +### Data ###################################################################### +install( + FILES autocorrect.xml en_US.xml + DESTINATION ${DATA_INSTALL_DIR}/koffice/autocorrect +) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/chalk/ConfigureChecks.cmake b/chalk/ConfigureChecks.cmake new file mode 100644 index 000000000..6a7e6fa1e --- /dev/null +++ b/chalk/ConfigureChecks.cmake @@ -0,0 +1,65 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +check_symbol_exists("powf" "math.h" HAVE_MATH_POWF) + +### XInput #################################################################### +pkg_search_module(XINPUT xi) +if (NOT XINPUT_FOUND) + tde_message_fatal("XInput is required for Chalk, but was not found") +endif() + +### LittleCMS ################################################################# +pkg_search_module(LCMS lcms) +if (NOT LCMS_FOUND) + tde_message_fatal("lcms1 is required for Chalk, but was not found") +endif() + +### OpenGL #################################################################### +check_include_file("GL/gl.h" HAVE_GL_H) +check_include_file("GL/glu.h" HAVE_GLU_H) + +if (NOT HAVE_GL_H OR NOT HAVE_GLU_H) + tde_message_fatal("OpenGL is required for Chalk, but headers are missing") +endif() + +### EXIF ###################################################################### +pkg_search_module(EXIF libexif) +if (NOT EXIF_FOUND) + message(WARNING "libexif is missing, " + "Chalk won't be able to import/export JPEG files") +endif() + +### JPEG ###################################################################### +find_package(JPEG) +if (NOT JPEG_FOUND) + message(WARNING "libjpeg is missing, " + "Chalk won't be able to import/export JPEG files") +endif() + +### PNG ####################################################################### +find_package(PNG) +if (NOT PNG_FOUND) + message(WARNING "libpng is missing, " + "Chalk won't be able to import/export PNG files") +endif() + +### TIFF ###################################################################### +find_package(TIFF) +if (NOT TIFF_FOUND) + message(WARNING "libtiff is missing, " + "Chalk won't be able to import/export TIFF files") +endif() + +### poppler-tqt ############################################################### +pkg_search_module(POPPLER poppler-tqt) +if (NOT POPPLER_FOUND) + message(WARNING "poppler-tqt is missing, " + "Chalk won't be able to import PDF files") +endif() + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/chalk/core/kis_painter.cpp b/chalk/core/kis_painter.cpp index f3f5c9286..bb41fdfc0 100644 --- a/chalk/core/kis_painter.cpp +++ b/chalk/core/kis_painter.cpp @@ -625,10 +625,10 @@ void KisPainter::paintEllipse (const KisPoint &startPoint, KisRect r = KisRect(startPoint, endPoint).normalize(); // See http://www.whizkidtech.redprince.net/bezier/circle/ for explanation. - // kappa = (4/3*(sqrt(2)-1)) - const double kappa = 0.5522847498; - const double lx = (r.width() / 2) * kappa; - const double ly = (r.height() / 2) * kappa; + // tdeAppa = (4/3*(sqrt(2)-1)) + const double tdeAppa = 0.5522847498; + const double lx = (r.width() / 2) * tdeAppa; + const double ly = (r.height() / 2) * tdeAppa; KisPoint center = r.center(); diff --git a/config.h.cmake b/config.h.cmake new file mode 100644 index 000000000..1b9955e2b --- /dev/null +++ b/config.h.cmake @@ -0,0 +1,18 @@ +// Defined if you have fvisibility and fvisibility-inlines-hidden support. +#cmakedefine __TDE_HAVE_GCC_VISIBILITY 1 + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#cmakedefine WORDS_BIGENDIAN @WORDS_BIGENDIAN@ + +#define VERSION "@VERSION@" +#define PREFIX "@CMAKE_INSTALL_PREFIX@" + +// Chalk: powf exists in math.h +#define HAVE_POWF @HAVE_MATH_POWF@ + +// Kross: if your system has Ruby 1.9.x +#cmakedefine HAVE_RUBY_1_9 + +// Kross: if your system has Ruby 3.x +#cmakedefine HAVE_RUBY_3 \ No newline at end of file diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt new file mode 100644 index 000000000..c463bcd4a --- /dev/null +++ b/example/CMakeLists.txt @@ -0,0 +1,61 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_SOURCE_DIR}/lib/kofficeui + ${CMAKE_SOURCE_DIR}/lib/store + ${CMAKE_SOURCE_DIR}/lib/kwmf + ${CMAKE_SOURCE_DIR}/lib/kopalette + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_kpart(libexamplepart SHARED AUTOMOC + SOURCES example_part.cpp example_view.cpp example_factory.cpp + LINK kofficeui-shared + DESTINATION ${PLUGIN_INSTALL_DIR} +) + +### Programs ################################################################## +tde_add_tdeinit_executable(example AUTOMOC + SOURCES main.cpp + LINK kofficeui-shared +) + +### Data ###################################################################### +install( + FILES example.rc example_readonly.rc + DESTINATION ${DATA_INSTALL_DIR}/example +) + +tde_create_translated_desktop( + SOURCE example.desktop + PO_DIR koffice-desktops +) + +tde_create_translated_desktop( + SOURCE examplepart.desktop + DESTINATION ${SERVICES_INSTALL_DIR} + PO_DIR koffice-desktops +) + +tde_create_translated_desktop( + SOURCE x-vnd.kde.example.desktop + DESTINATION ${MIME_INSTALL_DIR}/application + PO_DIR koffice-desktops +) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/filters/ConfigureChecks.cmake b/filters/ConfigureChecks.cmake new file mode 100644 index 000000000..db6263cbd --- /dev/null +++ b/filters/ConfigureChecks.cmake @@ -0,0 +1,8 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/filters/chalk/gmagick/kis_image_magick_converter.cpp b/filters/chalk/gmagick/kis_image_magick_converter.cpp index 01e1ee141..5c9d8dc36 100644 --- a/filters/chalk/gmagick/kis_image_magick_converter.cpp +++ b/filters/chalk/gmagick/kis_image_magick_converter.cpp @@ -121,14 +121,14 @@ namespace { KisProfile * getProfileForProfileInfo(const Image * image) { size_t length; - + const unsigned char * profiledata = GetImageProfile(image, "ICM", &length); if( profiledata == NULL ) return 0; TQByteArray rawdata; rawdata.resize(length); memcpy(rawdata.data(), profiledata, length); - + KisProfile* p = new KisProfile(rawdata); return p; @@ -169,14 +169,14 @@ namespace { void setAnnotationsForImage(const Image * src, KisImageSP image) { size_t length; - + const unsigned char * profiledata = GetImageProfile(src, "IPTC", &length); if( profiledata != NULL ) { TQByteArray rawdata; rawdata.resize(length); memcpy(rawdata.data(), profiledata, length); - + KisAnnotation* annotation = new KisAnnotation(TQString("IPTC"), "", rawdata); TQ_CHECK_PTR(annotation); @@ -189,14 +189,14 @@ namespace { TQByteArray rawdata; rawdata.resize(length); memcpy(rawdata.data(), src->generic_profile[i].info, src->generic_profile[i].length); - + KisAnnotation* annotation = new KisAnnotation(TQString(src->generic_profile[i].name), "", rawdata); TQ_CHECK_PTR(annotation); image -> addAnnotation(annotation); } #endif - + const ImageAttribute* imgAttr = GetImageAttribute(src, NULL); while(imgAttr) { @@ -204,7 +204,7 @@ namespace { int len = strlen(imgAttr -> value) + 1; rawdata.resize(len); memcpy(rawdata.data(), imgAttr -> value, len); - + KisAnnotation* annotation = new KisAnnotation( TQString("chalk_attribute:%1").arg(TQString(imgAttr -> key)), "", rawdata ); TQ_CHECK_PTR(annotation); @@ -310,7 +310,6 @@ namespace { if (!init) { TDEApplication *app = tdeApp; - InitializeMagick(*app -> argv()); atexit(DestroyMagick); init = true; @@ -331,7 +330,6 @@ namespace { MagickBooleanType monitor(const char *text, const ExtendedSignedIntegralType, const ExtendedUnsignedIntegralType, ExceptionInfo *) { TDEApplication *app = tdeApp; - Q_ASSERT(app); if (app -> hasPendingEvents()) @@ -408,7 +406,7 @@ KisImageBuilder_Result KisImageMagickConverter::decode(const KURL& uri, bool isB kdDebug(41008) << "Exceptions happen when loading" << endl; return KisImageBuilder_RESULT_FAILURE; } - + if (images == 0) { DestroyImageInfo(ii); @@ -447,7 +445,7 @@ KisImageBuilder_Result KisImageMagickConverter::decode(const KURL& uri, bool isB } kdDebug(41008) << "image has " << csName << " colorspace\n"; - + KisProfile * profile = getProfileForProfileInfo(image); if (profile) { @@ -472,7 +470,7 @@ KisImageBuilder_Result KisImageMagickConverter::decode(const KURL& uri, bool isB m_img = new KisImage(m_doc->undoAdapter(), image -> columns, image -> rows, cs, "built image"); TQ_CHECK_PTR(m_img); m_img->blockSignals(true); // Don't send out signals while we're building the image - + // XXX I'm assuming seperate layers won't have other profile things like EXIF setAnnotationsForImage(image, m_img); } @@ -562,7 +560,7 @@ KisImageBuilder_Result KisImageMagickConverter::decode(const KURL& uri, bool isB while(! hiter.isDone()) { TQ_UINT16 *ptr = reinterpret_cast(hiter.rawData()); - + *(ptr++) = ScaleQuantumToShort(pp->red); *(ptr++) = ScaleQuantumToShort(pp->green); *(ptr++) = ScaleQuantumToShort(pp->blue); diff --git a/filters/chalk/magick/kis_image_magick_converter.cpp b/filters/chalk/magick/kis_image_magick_converter.cpp index 5ea939e44..0c79e1f5f 100644 --- a/filters/chalk/magick/kis_image_magick_converter.cpp +++ b/filters/chalk/magick/kis_image_magick_converter.cpp @@ -258,7 +258,6 @@ namespace { if (!init) { TDEApplication *app = tdeApp; - InitializeMagick(*app -> argv()); atexit(DestroyMagick); init = true; @@ -279,7 +278,6 @@ namespace { MagickBooleanType monitor(const char *text, const ExtendedSignedIntegralType, const ExtendedUnsignedIntegralType, ExceptionInfo *) { TDEApplication *app = tdeApp; - Q_ASSERT(app); if (app -> hasPendingEvents()) @@ -292,7 +290,6 @@ namespace { unsigned int monitor(const char *text, const ExtendedSignedIntegralType, const ExtendedUnsignedIntegralType, ExceptionInfo *) { TDEApplication *app = tdeApp; - Q_ASSERT(app); if (app -> hasPendingEvents()) @@ -389,7 +386,7 @@ KisImageBuilder_Result KisImageMagickConverter::decode(const KURL& uri, bool isB } kdDebug(41008) << "image has " << csName << " colorspace\n"; - + KisProfile * profile = getProfileForProfileInfo(image); if (profile) { @@ -414,7 +411,7 @@ KisImageBuilder_Result KisImageMagickConverter::decode(const KURL& uri, bool isB m_img = new KisImage(m_doc->undoAdapter(), image -> columns, image -> rows, cs, "built image"); TQ_CHECK_PTR(m_img); m_img->blockSignals(true); // Don't send out signals while we're building the image - + // XXX I'm assuming seperate layers won't have other profile things like EXIF setAnnotationsForImage(image, m_img); } @@ -504,7 +501,7 @@ KisImageBuilder_Result KisImageMagickConverter::decode(const KURL& uri, bool isB while(! hiter.isDone()) { TQ_UINT16 *ptr = reinterpret_cast(hiter.rawData()); - + *(ptr++) = ScaleQuantumToShort(pp->red); *(ptr++) = ScaleQuantumToShort(pp->green); *(ptr++) = ScaleQuantumToShort(pp->blue); diff --git a/filters/karbon/ai/ai88handler.cpp b/filters/karbon/ai/ai88handler.cpp index 87a937ae9..acc2ff679 100644 --- a/filters/karbon/ai/ai88handler.cpp +++ b/filters/karbon/ai/ai88handler.cpp @@ -1,5 +1,5 @@ /* This file is part of the KDE project - Copyright (C) 2002, Dirk Schönberger + Copyright (C) 2002, Dirk Sch�nberger This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public @@ -281,7 +281,7 @@ bool AI88Handler::handleAIOperation (AIOperation op) { _handleTextBlock (TO_Fill); return true; break; - case AIO_TextBlockAppend : + case AIO_TextBloctdeAppend : _handleTextBlock (TO_Append); return true; break; diff --git a/filters/karbon/ai/aiparserbase.cpp b/filters/karbon/ai/aiparserbase.cpp index 24f9920e7..bb28d1cf7 100644 --- a/filters/karbon/ai/aiparserbase.cpp +++ b/filters/karbon/ai/aiparserbase.cpp @@ -87,7 +87,7 @@ static AIOperationMapping aiMappings[] = { { "z", AIO_SetCurrentText }, { "a", AIO_TextBlockFillStroke }, { "e", AIO_TextBlockFill }, - { "I", AIO_TextBlockAppend }, + { "I", AIO_TextBloctdeAppend }, { "o", AIO_TextBlockIgnore }, { "r", AIO_TextBlockStroke }, { "t", AIO_TextOutput }, @@ -1303,7 +1303,7 @@ const void aiotoa (AIOperation &data) case AIO_SetCurrentText : tqDebug ("AIO_SetCurrentText"); break; case AIO_TextBlockFillStroke : tqDebug ("AIO_TextBlockFillStroke"); break; case AIO_TextBlockFill : tqDebug ("AIO_TextBlockFill"); break; - case AIO_TextBlockAppend : tqDebug ("AIO_TextBlockAppend"); break; + case AIO_TextBloctdeAppend : tqDebug ("AIO_TextBloctdeAppend"); break; case AIO_TextBlockIgnore : tqDebug ("AIO_TextBlockIgnore"); break; case AIO_TextBlockStroke : tqDebug ("AIO_TextBlockStroke"); break; case AIO_TextOutput : tqDebug ("AIO_TextOutput"); break; diff --git a/filters/karbon/ai/aiparserbase.h b/filters/karbon/ai/aiparserbase.h index 14c00a14e..6f95e501c 100644 --- a/filters/karbon/ai/aiparserbase.h +++ b/filters/karbon/ai/aiparserbase.h @@ -100,7 +100,7 @@ typedef enum { AIO_SetCurrentText, AIO_TextBlockFillStroke, AIO_TextBlockFill, - AIO_TextBlockAppend, + AIO_TextBloctdeAppend, AIO_TextBlockIgnore, AIO_TextBlockStroke, AIO_TextOutput, diff --git a/filters/kword/pdf/xpdf/xpdf/BuiltinFontTables.cpp b/filters/kword/pdf/xpdf/xpdf/BuiltinFontTables.cpp index 3120d0852..18a771b07 100644 --- a/filters/kword/pdf/xpdf/xpdf/BuiltinFontTables.cpp +++ b/filters/kword/pdf/xpdf/xpdf/BuiltinFontTables.cpp @@ -2157,7 +2157,7 @@ static BuiltinFontWidth symbolWidthsTab[] = { { "Xi", 645, NULL }, { "theta1", 631, NULL }, { "logicalnot", 713, NULL }, - { "Kappa", 722, NULL }, + { "tdeAppa", 722, NULL }, { "similar", 549, NULL }, { "bar", 200, NULL }, { "fraction", 167, NULL }, @@ -2173,7 +2173,7 @@ static BuiltinFontWidth symbolWidthsTab[] = { { "arrowright", 987, NULL }, { "greater", 549, NULL }, { "bracketlefttp", 384, NULL }, - { "kappa", 549, NULL }, + { "tdeAppa", 549, NULL }, { "gradient", 713, NULL }, { "integral", 274, NULL }, { "arrowboth", 1042, NULL }, diff --git a/filters/kword/pdf/xpdf/xpdf/FontEncodingTables.cpp b/filters/kword/pdf/xpdf/xpdf/FontEncodingTables.cpp index 83774bf87..fa498254a 100644 --- a/filters/kword/pdf/xpdf/xpdf/FontEncodingTables.cpp +++ b/filters/kword/pdf/xpdf/xpdf/FontEncodingTables.cpp @@ -1381,7 +1381,7 @@ const char *symbolEncoding[256] = { "Eta", "Iota", "theta1", - "Kappa", + "tdeAppa", "Lambda", "Mu", "Nu", @@ -1413,7 +1413,7 @@ const char *symbolEncoding[256] = { "eta", "iota", "phi1", - "kappa", + "tdeAppa", "lambda", "mu", "nu", diff --git a/filters/kword/pdf/xpdf/xpdf/NameToUnicodeTable.h b/filters/kword/pdf/xpdf/xpdf/NameToUnicodeTable.h index c32289a4f..80053444a 100644 --- a/filters/kword/pdf/xpdf/xpdf/NameToUnicodeTable.h +++ b/filters/kword/pdf/xpdf/xpdf/NameToUnicodeTable.h @@ -162,7 +162,7 @@ static struct { {0x0134, "Jcircumflex"}, {0x004a, "Jsmall"}, {0x004b, "K"}, - {0x039a, "Kappa"}, + {0x039a, "tdeAppa"}, {0x0136, "Kcommaaccent"}, {0x004b, "Ksmall"}, {0x004c, "L"}, @@ -831,7 +831,7 @@ static struct { {0x006a, "j"}, {0x0135, "jcircumflex"}, {0x006b, "k"}, - {0x03ba, "kappa"}, + {0x03ba, "tdeAppa"}, {0x0137, "kcommaaccent"}, {0x0138, "kgreenlandic"}, {0x006c, "l"}, diff --git a/interfaces/CMakeLists.txt b/interfaces/CMakeLists.txt new file mode 100644 index 000000000..eb0370926 --- /dev/null +++ b/interfaces/CMakeLists.txt @@ -0,0 +1,36 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_SOURCE_DIR}/lib/kofficeui + ${CMAKE_SOURCE_DIR}/lib/kstore + ${CMAKE_SOURCE_DIR}/lib/kwmf + ${CMAKE_SOURCE_DIR}/lib/kopalette + ${CMAKE_SOURCE_DIR}/kchart/kdchart + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(kochart SHARED AUTOMOC + SOURCES koChart.cpp + LINK kofficecore-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +### Headers ################################################################### +install(FILES koChart.h DESTINATION ${INCLUDE_INSTALL_DIR}/kross/main) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/kchart/CMakeLists.txt b/kchart/CMakeLists.txt new file mode 100644 index 000000000..80f09bac2 --- /dev/null +++ b/kchart/CMakeLists.txt @@ -0,0 +1,85 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_SOURCE_DIR}/lib/kofficeui + ${CMAKE_SOURCE_DIR}/lib/store + ${CMAKE_SOURCE_DIR}/lib/kwmf + ${CMAKE_SOURCE_DIR}/lib/kopalette + ${CMAKE_SOURCE_DIR}/kchart/kdchart + ${CMAKE_SOURCE_DIR}/interfaces + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(kchartcommon SHARED AUTOMOC + SOURCES + kchart_part.cpp kchart_view.cpp kchart_factory.cpp + kchartColorConfigPage.cpp kchartParameterConfigPage.cpp + kchartParameter3dConfigPage.cpp kchartBackgroundPixmapConfigPage.cpp + kchartSubTypeChartPage.cpp kchartComboConfigPage.cpp + kchartFontConfigPage.cpp kchartDataConfigPage.cpp kchartPieConfigPage.cpp + kchartParameterPieConfigPage.cpp kchartConfigDialog.cpp kchartWizard.cpp + kchartWizardLabelsLegendPage.cpp kchartWizardSelectChartSubTypePage.cpp + kchartWizardSelectChartTypePage.cpp kchartWizardSelectDataPage.cpp + kchartWizardSetupAxesPage.cpp kchartWizardSetupDataPage.cpp + kchartWizardSelectDataFormatPage.cpp + kchartDataEditor.cpp KChartViewIface.skel KChartViewIface.cpp + kchartLegendConfigPage.cpp kchart_params.cpp KChartParamsIface.skel + KChartParamsIface.cpp kchartHeaderFooterConfigPage.cpp + kchartLine3dConfigPage.cpp kchartParameterPolarConfigPage.cpp + kchartPageLayout.cpp kchartPrinterDlg.cpp + csvimportdialog.cpp csvimportdialogui.ui + LINK kofficeui-shared kdchart-shared kochart-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +tde_add_kpart(libkchartpart SHARED AUTOMOC + SOURCES kchart_factory_init.cpp + LINK kchartcommon-shared + DESTINATION ${PLUGIN_INSTALL_DIR} +) + +add_subdirectory(kdchart) + +### Programs ################################################################## +tde_add_tdeinit_executable(kchart AUTOMOC + SOURCES main.cpp + LINK kofficecore-shared +) + +### Data ###################################################################### +install( + FILES kchart.rc kchart_readonly.rc + DESTINATION ${DATA_INSTALL_DIR}/kchart +) + +tde_create_translated_desktop( + SOURCE kchart.desktop + PO_DIR koffice-desktops +) + +tde_create_translated_desktop( + SOURCE kchartpart.desktop + DESTINATION ${SERVICES_INSTALL_DIR} + PO_DIR koffice-desktops +) + +add_subdirectory(toolbar) +add_subdirectory(pics) +add_subdirectory(templates) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/kchart/kdchart/CMakeLists.txt b/kchart/kdchart/CMakeLists.txt new file mode 100644 index 000000000..382210219 --- /dev/null +++ b/kchart/kdchart/CMakeLists.txt @@ -0,0 +1,56 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(kdchart SHARED AUTOMOC + SOURCES + KDChart.cpp + KDChartAreaPainter.cpp KDChartAxesPainter.cpp KDChartAxisParams.cpp + KDChartBarPainter.cpp KDChartBaseSeries.cpp KDChartBWPainter.cpp + KDChartCustomBox.cpp KDChartDataIntern.cpp KDChartHiLoPainter.cpp + KDChartLinesPainter.cpp KDChartPainter.cpp KDChartParams.cpp + KDChartParams_frame.cpp KDChartParams_io.cpp KDChartPiePainter.cpp + KDChartPlaneSeries.cpp KDChartPolarPainter.cpp KDChartPropertySet.cpp + KDChartRingPainter.cpp KDChartSeriesCollection.cpp KDChartTableBase.cpp + KDChartTextPiece.cpp KDChartVectorSeries.cpp KDChartVectorTable.cpp + KDChartWidget.cpp KDDrawText.cpp KDFrame.cpp KDFrameProfileSection.cpp + KDXMLTools.cpp KDChartEnums.cpp KDChartAxisParamsWrapper.cpp + KDChartCustomBoxWrapper.cpp KDChartParamsWrapper.cpp + KDChartTableDataWrapper.cpp + LINK tdecore-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +### Headers ################################################################## +install( + FILES + KDChart.h + KDChartAreaPainter.h KDChartAxesPainter.h + KDChartBarPainter.h KDChartBaseSeries.h KDChartBWPainter.h + KDChartDataIntern.h KDChartDataRegion.h KDChartHiLoPainter.h + KDChartLinesPainter.h KDChartPiePainter.h KDChartPainter.h + KDChartPolarPainter.h KDChartRingPainter.h + KDChartSeriesCollection.h KDChartPlaneSeries.h + KDChartVectorSeries.h KDChartTextPiece.h KDDrawText.h + KDChartNotEnoughSpaceException.h KDChartUnknownTypeException.h + KDChartUnknownTypeException.h KDXMLTools.h + DESTINATION ${INCLUDE_INSTALL_DIR} +) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/kchart/pics/CMakeLists.txt b/kchart/pics/CMakeLists.txt new file mode 100644 index 000000000..da81f7420 --- /dev/null +++ b/kchart/pics/CMakeLists.txt @@ -0,0 +1,26 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +### Data ###################################################################### +install( + FILES + chart_bar_beside.png chart_bar_layer.png chart_bar_percent.png + chart_hilo_close.png chart_hilo_normal.png chart_hilo_openclose.png + chart_area_normal.png chart_area_percent.png chart_area_stacked.png + chart_line_normal.png chart_line_percent.png chart_line_stacked.png + chart_polar_normal.png chart_polar_percent.png chart_polar_stacked.png + chart_legend_top.png chart_legend_topleft.png chart_legend_topright.png + chart_legend_nolegend.png chart_legend_left.png chart_legend_right.png + chart_legend_bottom.png chart_legend_bottomleft.png chart_legend_bottomright.png + chart_legend_toplefttop.png chart_legend_topleftleft.png + chart_legend_bottomleftbottom.png chart_legend_bottomleftleft.png + chart_legend_toprighttop.png chart_legend_toprightright.png + chart_legend_bottomrightbottom.png chart_legend_bottomrightright.png + DESTINATION ${DATA_INSTALL_DIR}/kchart/pics +) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/kchart/templates/CMakeLists.txt b/kchart/templates/CMakeLists.txt new file mode 100644 index 000000000..30212fe11 --- /dev/null +++ b/kchart/templates/CMakeLists.txt @@ -0,0 +1,21 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +### Data ###################################################################### +install( + FILES .directory BarChart.desktop Empty.desktop + DESTINATION ${DATA_INSTALL_DIR}/kchart/templates/chart +) + +install( + FILES BarChart.chrt Empty.chrt + DESTINATION ${DATA_INSTALL_DIR}/kchart/templates/chart/.source +) + +tde_install_icons() + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/kchart/toolbar/CMakeLists.txt b/kchart/toolbar/CMakeLists.txt new file mode 100644 index 000000000..56c48ea2d --- /dev/null +++ b/kchart/toolbar/CMakeLists.txt @@ -0,0 +1,13 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +### Data ###################################################################### +add_subdirectory(crystalsvg) +# add_subdirectory(hicolor) # is empty +add_subdirectory(locolor) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/kchart/toolbar/crystalsvg/CMakeLists.txt b/kchart/toolbar/crystalsvg/CMakeLists.txt new file mode 100644 index 000000000..f3304540b --- /dev/null +++ b/kchart/toolbar/crystalsvg/CMakeLists.txt @@ -0,0 +1,11 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +### Data ###################################################################### +tde_install_icons() + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/kchart/toolbar/locolor/CMakeLists.txt b/kchart/toolbar/locolor/CMakeLists.txt new file mode 100644 index 000000000..f3304540b --- /dev/null +++ b/kchart/toolbar/locolor/CMakeLists.txt @@ -0,0 +1,11 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +### Data ###################################################################### +tde_install_icons() + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/kexi/3rdparty/kexisql/src/btree.c b/kexi/3rdparty/kexisql/src/btree.c index 02e01249f..862f2742a 100644 --- a/kexi/3rdparty/kexisql/src/btree.c +++ b/kexi/3rdparty/kexisql/src/btree.c @@ -3169,7 +3169,7 @@ struct IntegrityCk { /* ** Append a message to the error message string. */ -static void checkAppendMsg(IntegrityCk *pCheck, char *zMsg1, char *zMsg2){ +static void chectdeAppendMsg(IntegrityCk *pCheck, char *zMsg1, char *zMsg2){ if( pCheck->zErrMsg ){ char *zOld = pCheck->zErrMsg; pCheck->zErrMsg = 0; @@ -3193,13 +3193,13 @@ static int checkRef(IntegrityCk *pCheck, int iPage, char *zContext){ if( iPage>pCheck->nPage || iPage<0 ){ char zBuf[100]; sprintf(zBuf, "invalid page number %d", iPage); - checkAppendMsg(pCheck, zContext, zBuf); + chectdeAppendMsg(pCheck, zContext, zBuf); return 1; } if( pCheck->anRef[iPage]==1 ){ char zBuf[100]; sprintf(zBuf, "2nd reference to page %d", iPage); - checkAppendMsg(pCheck, zContext, zBuf); + chectdeAppendMsg(pCheck, zContext, zBuf); return 1; } return (pCheck->anRef[iPage]++)>1; @@ -3222,13 +3222,13 @@ static void checkList( OverflowPage *pOvfl; if( iPage<1 ){ sprintf(zMsg, "%d pages missing from overflow list", N+1); - checkAppendMsg(pCheck, zContext, zMsg); + chectdeAppendMsg(pCheck, zContext, zMsg); break; } if( checkRef(pCheck, iPage, zContext) ) break; if( sqlitepager_get(pCheck->pPager, (Pgno)iPage, (void**)&pOvfl) ){ sprintf(zMsg, "failed to get page %d", iPage); - checkAppendMsg(pCheck, zContext, zMsg); + chectdeAppendMsg(pCheck, zContext, zMsg); break; } if( isFreeList ){ @@ -3307,12 +3307,12 @@ static int checkTreePage( sprintf(zContext, "On tree page %d: ", iPage); if( (rc = sqlitepager_get(pCheck->pPager, (Pgno)iPage, (void**)&pPage))!=0 ){ sprintf(zMsg, "unable to get the page. error code=%d", rc); - checkAppendMsg(pCheck, zContext, zMsg); + chectdeAppendMsg(pCheck, zContext, zMsg); return 0; } if( (rc = initPage(pBt, pPage, (Pgno)iPage, pParent))!=0 ){ sprintf(zMsg, "initPage() returns error code %d", rc); - checkAppendMsg(pCheck, zContext, zMsg); + chectdeAppendMsg(pCheck, zContext, zMsg); sqlitepager_unref(pPage); return 0; } @@ -3349,7 +3349,7 @@ static int checkTreePage( zKey2 = sqliteMallocRaw( nKey2+1 ); getPayload(&cur, 0, nKey2, zKey2); if( zKey1 && keyCompare(zKey1, nKey1, zKey2, nKey2)>=0 ){ - checkAppendMsg(pCheck, zContext, "Key is out of order"); + chectdeAppendMsg(pCheck, zContext, "Key is out of order"); } /* Check sanity of left child page. @@ -3357,7 +3357,7 @@ static int checkTreePage( pgno = SWAB32(pBt, pCell->h.leftChild); d2 = checkTreePage(pCheck, pgno, pPage, zContext, zKey1,nKey1,zKey2,nKey2); if( i>0 && d2!=depth ){ - checkAppendMsg(pCheck, zContext, "Child page depth differs"); + chectdeAppendMsg(pCheck, zContext, "Child page depth differs"); } depth = d2; sqliteFree(zKey1); @@ -3388,11 +3388,11 @@ static int checkTreePage( for(i=0; i1 ){ sprintf(zMsg, "Multiple uses for byte %d of page %d", i, iPage); - checkAppendMsg(pCheck, zMsg, 0); + chectdeAppendMsg(pCheck, zMsg, 0); break; } } @@ -3403,7 +3403,7 @@ static int checkTreePage( if( pParent && pParent->nCell>2 && pPage->nFree>3*SQLITE_USABLE_SIZE/4 ){ sprintf(zMsg, "free space (%d) greater than max (%d)", pPage->nFree, SQLITE_USABLE_SIZE/3); - checkAppendMsg(pCheck, zContext, zMsg); + chectdeAppendMsg(pCheck, zContext, zMsg); } #endif @@ -3460,7 +3460,7 @@ char *fileBtreeIntegrityCheck(Btree *pBt, int *aRoot, int nRoot){ if( sCheck.anRef[i]==0 ){ char zBuf[100]; sprintf(zBuf, "Page %d is never used", i); - checkAppendMsg(&sCheck, zBuf, 0); + chectdeAppendMsg(&sCheck, zBuf, 0); } } @@ -3473,7 +3473,7 @@ char *fileBtreeIntegrityCheck(Btree *pBt, int *aRoot, int nRoot){ "Outstanding page count goes from %d to %d during this analysis", nRef, *sqlitepager_stats(pBt->pPager) ); - checkAppendMsg(&sCheck, zBuf, 0); + chectdeAppendMsg(&sCheck, zBuf, 0); } /* Clean up and report errors. diff --git a/kexi/3rdparty/kexisql3/src/btree.c b/kexi/3rdparty/kexisql3/src/btree.c index 472d63a60..5b82e4287 100644 --- a/kexi/3rdparty/kexisql3/src/btree.c +++ b/kexi/3rdparty/kexisql3/src/btree.c @@ -5297,7 +5297,7 @@ struct IntegrityCk { /* ** Append a message to the error message string. */ -static void checkAppendMsg( +static void chectdeAppendMsg( IntegrityCk *pCheck, char *zMsg1, const char *zFormat, @@ -5333,11 +5333,11 @@ static void checkAppendMsg( static int checkRef(IntegrityCk *pCheck, int iPage, char *zContext){ if( iPage==0 ) return 1; if( iPage>pCheck->nPage || iPage<0 ){ - checkAppendMsg(pCheck, zContext, "invalid page number %d", iPage); + chectdeAppendMsg(pCheck, zContext, "invalid page number %d", iPage); return 1; } if( pCheck->anRef[iPage]==1 ){ - checkAppendMsg(pCheck, zContext, "2nd reference to page %d", iPage); + chectdeAppendMsg(pCheck, zContext, "2nd reference to page %d", iPage); return 1; } return (pCheck->anRef[iPage]++)>1; @@ -5362,12 +5362,12 @@ static void checkPtrmap( rc = ptrmapGet(pCheck->pBt, iChild, &ePtrmapType, &iPtrmapParent); if( rc!=SQLITE_OK ){ - checkAppendMsg(pCheck, zContext, "Failed to read ptrmap key=%d", iChild); + chectdeAppendMsg(pCheck, zContext, "Failed to read ptrmap key=%d", iChild); return; } if( ePtrmapType!=eType || iPtrmapParent!=iParent ){ - checkAppendMsg(pCheck, zContext, + chectdeAppendMsg(pCheck, zContext, "Bad ptr map entry key=%d expected=(%d,%d) got=(%d,%d)", iChild, eType, iParent, ePtrmapType, iPtrmapParent); } @@ -5391,14 +5391,14 @@ static void checkList( while( N-- > 0 ){ unsigned char *pOvfl; if( iPage<1 ){ - checkAppendMsg(pCheck, zContext, + chectdeAppendMsg(pCheck, zContext, "%d of %d pages missing from overflow list starting at %d", N+1, expected, iFirst); break; } if( checkRef(pCheck, iPage, zContext) ) break; if( sqlite3pager_get(pCheck->pPager, (Pgno)iPage, (void**)&pOvfl) ){ - checkAppendMsg(pCheck, zContext, "failed to get page %d", iPage); + chectdeAppendMsg(pCheck, zContext, "failed to get page %d", iPage); break; } if( isFreeList ){ @@ -5409,7 +5409,7 @@ static void checkList( } #endif if( n>pCheck->pBt->usableSize/4-8 ){ - checkAppendMsg(pCheck, zContext, + chectdeAppendMsg(pCheck, zContext, "freelist leaf count too big on page %d", iPage); N--; }else{ @@ -5492,12 +5492,12 @@ static int checkTreePage( if( iPage==0 ) return 0; if( checkRef(pCheck, iPage, zParentContext) ) return 0; if( (rc = getPage(pBt, (Pgno)iPage, &pPage))!=0 ){ - checkAppendMsg(pCheck, zContext, + chectdeAppendMsg(pCheck, zContext, "unable to get the page. error code=%d", rc); return 0; } if( (rc = initPage(pPage, pParent))!=0 ){ - checkAppendMsg(pCheck, zContext, "initPage() returns error code %d", rc); + chectdeAppendMsg(pCheck, zContext, "initPage() returns error code %d", rc); releasePage(pPage); return 0; } @@ -5540,7 +5540,7 @@ static int checkTreePage( #endif d2 = checkTreePage(pCheck,pgno,pPage,zContext,0,0,0,0); if( i>0 && d2!=depth ){ - checkAppendMsg(pCheck, zContext, "Child page depth differs"); + chectdeAppendMsg(pCheck, zContext, "Child page depth differs"); } depth = d2; } @@ -5570,7 +5570,7 @@ static int checkTreePage( int size = cellSizePtr(pPage, &data[pc]); int j; if( (pc+size-1)>=usableSize || pc<0 ){ - checkAppendMsg(pCheck, 0, + chectdeAppendMsg(pCheck, 0, "Corruption detected in cell %d on page %d",i,iPage,0); }else{ for(j=pc+size-1; j>=pc; j--) hit[j]++; @@ -5581,7 +5581,7 @@ static int checkTreePage( int size = get2byte(&data[i+2]); int j; if( (i+size-1)>=usableSize || i<0 ){ - checkAppendMsg(pCheck, 0, + chectdeAppendMsg(pCheck, 0, "Corruption detected in cell %d on page %d",i,iPage,0); }else{ for(j=i+size-1; j>=i; j--) hit[j]++; @@ -5592,13 +5592,13 @@ static int checkTreePage( if( hit[i]==0 ){ cnt++; }else if( hit[i]>1 ){ - checkAppendMsg(pCheck, 0, + chectdeAppendMsg(pCheck, 0, "Multiple uses for byte %d of page %d", i, iPage); break; } } if( cnt!=data[hdr+7] ){ - checkAppendMsg(pCheck, 0, + chectdeAppendMsg(pCheck, 0, "Fragmented space is %d byte reported as %d on page %d", cnt, data[hdr+7], iPage); } @@ -5672,7 +5672,7 @@ char *sqlite3BtreeIntegrityCheck(Btree *pBt, int *aRoot, int nRoot){ for(i=1; i<=sCheck.nPage; i++){ #ifdef SQLITE_OMIT_AUTOVACUUM if( sCheck.anRef[i]==0 ){ - checkAppendMsg(&sCheck, 0, "Page %d is never used", i); + chectdeAppendMsg(&sCheck, 0, "Page %d is never used", i); } #else /* If the database supports auto-vacuum, make sure no tables contain @@ -5680,11 +5680,11 @@ char *sqlite3BtreeIntegrityCheck(Btree *pBt, int *aRoot, int nRoot){ */ if( sCheck.anRef[i]==0 && (PTRMAP_PAGENO(pBt->usableSize, i)!=i || !pBt->autoVacuum) ){ - checkAppendMsg(&sCheck, 0, "Page %d is never used", i); + chectdeAppendMsg(&sCheck, 0, "Page %d is never used", i); } if( sCheck.anRef[i]!=0 && (PTRMAP_PAGENO(pBt->usableSize, i)==i && pBt->autoVacuum) ){ - checkAppendMsg(&sCheck, 0, "Pointer map page %d is referenced", i); + chectdeAppendMsg(&sCheck, 0, "Pointer map page %d is referenced", i); } #endif } @@ -5693,7 +5693,7 @@ char *sqlite3BtreeIntegrityCheck(Btree *pBt, int *aRoot, int nRoot){ */ unlockBtreeIfUnused(pBt); if( nRef != *sqlite3pager_stats(pBt->pPager) ){ - checkAppendMsg(&sCheck, 0, + chectdeAppendMsg(&sCheck, 0, "Outstanding page count goes from %d to %d during this analysis", nRef, *sqlite3pager_stats(pBt->pPager) ); diff --git a/kexi/core/kexipartmanager.cpp b/kexi/core/kexipartmanager.cpp index 31e335ac4..c593f883f 100644 --- a/kexi/core/kexipartmanager.cpp +++ b/kexi/core/kexipartmanager.cpp @@ -55,16 +55,16 @@ Manager::lookup() m_partlist.clear(); m_partsByMime.clear(); m_parts.clear(); - TDETrader::OfferList tlist = TDETrader::self()->query("Kexi/Handler", + TDETrader::OfferList tlist = TDETrader::self()->query("Kexi/Handler", "[X-Kexi-PartVersion] == " + TQString::number(KEXI_PART_VERSION)); - + TDEConfig conf("kexirc", true); conf.setGroup("Parts"); TQStringList sl_order = TQStringList::split( ",", conf.readEntry("Order") );//we'll set parts in defined order const int size = TQMAX( tlist.count(), sl_order.count() ); TQPtrVector ordered( size*2 ); int offset = size; //we will insert not described parts from #offset - + //compute order for(TDETrader::OfferList::ConstIterator it(tlist.constBegin()); it != tlist.constEnd(); ++it) { @@ -85,14 +85,14 @@ Manager::lookup() if (idx!=-1) ordered.insert(idx, ptr); else //add to end - ordered.insert(offset++, ptr); + ordered.insert(offset++, ptr); } //fill final list using computed order for (int i = 0; i< (int)ordered.size(); i++) { KService::Ptr ptr = ordered[i]; if (ptr) { Info *info = new Info(ptr); - info->setProjectPartID(m_nextTempProjectPartID--); // temp. part id are -1, -2, and so on, + info->setProjectPartID(m_nextTempProjectPartID--); // temp. part id are -1, -2, and so on, // to avoid duplicates if (!info->mimeType().isEmpty()) { m_partsByMime.insert(info->mimeType(), info); @@ -122,11 +122,11 @@ Manager::part(Info *i) } Part *p = m_parts[i->projectPartID()]; - + if(!p) { // kdDebug() << "Manager::part().." << endl; int error=0; - p = KParts::ComponentFactory::createInstanceFromService(i->ptr(), this, + p = KParts::ComponentFactory::createInstanceFromService(i->ptr(), this, TQString(i->objectName()+"_part").latin1(), TQStringList(), &error); if(!p) { kdDebug() << "Manager::part(): failed :( (ERROR #" << error << ")" << endl; @@ -164,7 +164,7 @@ Manager::unloadPart(Info *i) m_partlist.removeRef(p);*/ } -void +void Manager::unloadAllParts() { // m_partsByMime.clear(); @@ -175,7 +175,7 @@ Manager::unloadAllParts() } #endif -/*void +/*void Manager::removeClients( KexiMainWindow *win ) { if (!win) @@ -270,7 +270,7 @@ void Manager::insertStaticPart(StaticPart* part) { if (!part) return; - part->info()->setProjectPartID(m_nextTempProjectPartID--); // temp. part id are -1, -2, and so on, + part->info()->setProjectPartID(m_nextTempProjectPartID--); // temp. part id are -1, -2, and so on, m_partlist.append(part->info()); if (!part->info()->mimeType().isEmpty()) m_partsByMime.insert(part->info()->mimeType(), part->info()); diff --git a/kexi/examples/Simple_Database.kexi b/kexi/examples/Simple_Database.kexi new file mode 100644 index 0000000000000000000000000000000000000000..95ff4cb6d4563b6d30f8200b685eb8cd16c0dd50 GIT binary patch literal 76800 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 literal 0 HcmV?d00001 diff --git a/kexi/main/keximainwindowimpl.cpp b/kexi/main/keximainwindowimpl.cpp index 4a7363741..0b4a5ff76 100644 --- a/kexi/main/keximainwindowimpl.cpp +++ b/kexi/main/keximainwindowimpl.cpp @@ -1926,7 +1926,7 @@ void KexiMainWindowImpl::updateAppCaption() view = 0; } - kApp->setCaption( d->appCaption ); + tdeApp->setCaption( d->appCaption ); if (view && view->mdiParent()->state()==KMdiChildFrm::Maximized) { setCaption( view->caption() ); } @@ -3957,13 +3957,21 @@ void KexiMainWindowImpl::slotStartFeedbackAgent() { #ifndef KEXI_NO_FEEDBACK_AGENT #ifdef FEEDBACK_CLASS +<<<<<<< Updated upstream const TDEAboutData* about = tdeApp->aboutData(); +======= + const TDEAboutData* about = TDEApplication::tdeApplication()->aboutData(); +>>>>>>> Stashed changes FEEDBACK_CLASS* wizard = new FEEDBACK_CLASS( about->programName(), about->version(), 0, 0, 0, FEEDBACK_CLASS::AllPages ); if ( wizard->exec() ) { +<<<<<<< Updated upstream tdeApp->invokeMailer( "kexi-reports-dummy@kexi.org", +======= + TDEApplication::tdeApplication()->invokeMailer( "kexi-reports-dummy@kexi.org", +>>>>>>> Stashed changes TQString(), TQString(), about->appName() + TQCString( " [feedback]" ), wizard->feedbackDocument().toString( 2 ).local8Bit() ); diff --git a/kexi/migration/importwizard.cpp b/kexi/migration/importwizard.cpp index 757d1fc87..957efc0a6 100644 --- a/kexi/migration/importwizard.cpp +++ b/kexi/migration/importwizard.cpp @@ -132,8 +132,8 @@ void ImportWizard::parseArguments() m_predefinedMimeType = (*m_args)["mimeType"]; if (m_args->contains("connectionData")) { m_predefinedConnectionData = new KexiDB::ConnectionData(); - KexiDB::fromMap( - KexiUtils::deserializeMap((*m_args)["connectionData"]), *m_predefinedConnectionData + KexiDB::fromMap( + KexiUtils::deserializeMap((*m_args)["connectionData"]), *m_predefinedConnectionData ); } } @@ -146,7 +146,7 @@ void ImportWizard::setupIntro() { m_introPage = new TQWidget(this); TQVBoxLayout *vbox = new TQVBoxLayout(m_introPage, KDialog::marginHint()); - + TQLabel *lblIntro = new TQLabel(m_introPage); lblIntro->setAlignment( TQt::AlignTop | TQt::AlignLeft | TQt::WordBreak ); TQString msg; @@ -179,7 +179,7 @@ void ImportWizard::setupSrcType() { m_srcTypePage = new TQWidget(this); -//! @todo Would be good if KexiDBDriverComboBox worked for migration drivers +//! @todo Would be good if KexiDBDriverComboBox worked for migration drivers TQVBoxLayout *vbox = new TQVBoxLayout(m_srcTypePage, KDialog::marginHint()); TQHBoxLayout *hbox = new TQHBoxLayout(vbox); @@ -206,7 +206,7 @@ void ImportWizard::setupSrcConn() m_srcConnPage = new TQWidget(this); TQVBoxLayout *vbox = new TQVBoxLayout(m_srcConnPage, KDialog::marginHint()); - m_srcConn = new KexiConnSelectorWidget(Kexi::connset(), + m_srcConn = new KexiConnSelectorWidget(Kexi::connset(), ":ProjectMigrationSourceDir", m_srcConnPage, "m_srcConnSelector"); m_srcConn->hideConnectonIcon(); @@ -256,7 +256,7 @@ void ImportWizard::setupDstType() m_dstPrjTypeSelector->option_server->setText(i18n("Database project stored on a server")); TQVBoxLayout *frame_server_vbox = new TQVBoxLayout(m_dstPrjTypeSelector->frame_server, KDialog::spacingHint()); - m_dstServerTypeCombo = new KexiDBDriverComboBox(m_dstPrjTypeSelector->frame_server, drvs, + m_dstServerTypeCombo = new KexiDBDriverComboBox(m_dstPrjTypeSelector->frame_server, drvs, KexiDBDriverComboBox::ShowServerDrivers); frame_server_vbox->addWidget(m_dstServerTypeCombo); hbox->addStretch(1); @@ -272,7 +272,7 @@ void ImportWizard::setupDstType() // void ImportWizard::setupDstTitle() { - m_dstTitlePage = new KexiDBTitlePage(i18n("Destination project's caption:"), + m_dstTitlePage = new KexiDBTitlePage(i18n("Destination project's caption:"), this, "KexiDBTitlePage"); m_dstTitlePage->layout()->setMargin( KDialog::marginHint() ); m_dstTitlePage->updateGeometry(); @@ -287,7 +287,7 @@ void ImportWizard::setupDst() m_dstPage = new TQWidget(this); TQVBoxLayout *vbox = new TQVBoxLayout(m_dstPage, KDialog::marginHint()); - m_dstConn = new KexiConnSelectorWidget(Kexi::connset(), + m_dstConn = new KexiConnSelectorWidget(Kexi::connset(), ":ProjectMigrationDestinationDir", m_dstPage, "m_dstConnSelector"); m_dstConn->hideHelpers(); //me: Can't connect m_dstConn->m_fileDlg here, it doesn't exist yet @@ -377,7 +377,7 @@ void ImportWizard::setupFinish() m_finishLbl->setAlignment( TQt::AlignTop | TQt::AlignLeft | TQt::WordBreak ); vbox->addWidget( m_finishLbl ); - m_openImportedProjectCheckBox = new TQCheckBox(i18n("Open imported project"), + m_openImportedProjectCheckBox = new TQCheckBox(i18n("Open imported project"), m_finishPage, "openImportedProjectCheckBox"); m_openImportedProjectCheckBox->setChecked(true); vbox->addSpacing( KDialog::spacingHint() ); @@ -482,7 +482,7 @@ void ImportWizard::arriveDstTitlePage() if(fileBasedSrcSelected()) { TQString suggestedDBName( TQFileInfo(m_srcConn->selectedFileName()).fileName() ); const TQFileInfo fi( suggestedDBName ); - suggestedDBName = suggestedDBName.left(suggestedDBName.length() + suggestedDBName = suggestedDBName.left(suggestedDBName.length() - (fi.extension().length() ? (fi.extension().length()+1) : 0)); m_dstNewDBNameLineEdit->setText( suggestedDBName ); } else { @@ -547,14 +547,14 @@ void ImportWizard::arriveImportingPage() { //todo //temp. hack for MS Access driver only -//! @todo for other databases we will need KexiMigration::Conenction +//! @todo for other databases we will need KexiMigration::Conenction //! and KexiMigration::Driver classes bool showOptions = false; if (fileBasedSrcSelected()) { Kexi::ObjectStatus result; KexiMigrate* sourceDriver = prepareImport(result); if (sourceDriver) { - showOptions = !result.error() + showOptions = !result.error() && sourceDriver->propertyValue( "source_database_has_nonunicode_encoding" ).toBool(); KexiMigration::Data *data = sourceDriver->data(); sourceDriver->setData( 0 ); @@ -621,7 +621,7 @@ TQString ImportWizard::driverNameForSelectedSource() return m_predefinedConnectionData->driverName; } - return m_srcConn->selectedConnectionData() + return m_srcConn->selectedConnectionData() ? m_srcConn->selectedConnectionData()->driverName : TQString(); } @@ -653,7 +653,7 @@ void ImportWizard::accept() KexiMigrate* ImportWizard::prepareImport(Kexi::ObjectStatus& result) { KexiUtils::WaitCursor wait; - + // Start with a driver manager KexiDB::DriverManager manager; @@ -686,7 +686,7 @@ KexiMigrate* ImportWizard::prepareImport(Kexi::ObjectStatus& result) cdata = m_dstConn->selectedConnectionData(); dbname = m_dstNewDBNameLineEdit->text(); } - else // if (m_dstTypeCombo->currentText().lower() == KexiDB::Driver::defaultFileBasedDriverName()) + else // if (m_dstTypeCombo->currentText().lower() == KexiDB::Driver::defaultFileBasedDriverName()) { //file-based project kdDebug() << "File Destination..." << endl; @@ -701,7 +701,7 @@ KexiMigrate* ImportWizard::prepareImport(Kexi::ObjectStatus& result) /* else { //TODO This needs a better message - //KMessageBox::error(this, + //KMessageBox::error(this, result.setStatus(i18n("No connection data is available. You did not select a destination filename."),""); //return false; } */ @@ -713,7 +713,7 @@ KexiMigrate* ImportWizard::prepareImport(Kexi::ObjectStatus& result) { sourceDriverName = driverNameForSelectedSource(); if (sourceDriverName.isEmpty()) - result.setStatus(i18n("No appropriate migration driver found."), + result.setStatus(i18n("No appropriate migration driver found."), m_migrateManager.possibleProblemsInfoMsg()); } @@ -736,7 +736,7 @@ KexiMigrate* ImportWizard::prepareImport(Kexi::ObjectStatus& result) // Setup progress feedback for the GUI if(sourceDriver->progressSupported()) { m_progressBar->updateGeometry(); - disconnect(sourceDriver, TQ_SIGNAL(progressPercent(int)), + disconnect(sourceDriver, TQ_SIGNAL(progressPercent(int)), this, TQ_SLOT(progressUpdated(int))); connect(sourceDriver, TQ_SIGNAL(progressPercent(int)), this, TQ_SLOT(progressUpdated(int))); @@ -759,7 +759,7 @@ KexiMigrate* ImportWizard::prepareImport(Kexi::ObjectStatus& result) kdDebug() << "Neither radio button is selected (not possible?) presume keep data" << endl; keepData = true; } - + KexiMigration::Data* md = new KexiMigration::Data(); // delete md->destination; md->destination = new KexiProjectData(*cdata, dbname); @@ -769,7 +769,7 @@ KexiMigrate* ImportWizard::prepareImport(Kexi::ObjectStatus& result) md->source = conn_data; md->sourceName = ""; } - else + else { if (m_predefinedConnectionData) md->source = m_predefinedConnectionData; @@ -802,8 +802,8 @@ tristate ImportWizard::import() if (sourceDriver && !result.error()) { if (!m_sourceDBEncoding.isEmpty()) { - sourceDriver->setPropertyValue( "source_database_nonunicode_encoding", - TQVariant(m_sourceDBEncoding.upper().replace(' ',"")) // "CP1250", not "cp 1250" + sourceDriver->setPropertyValue( "source_database_nonunicode_encoding", + TQVariant(m_sourceDBEncoding.upper().replace(' ',"")) // "CP1250", not "cp 1250" ); } @@ -835,10 +835,10 @@ tristate ImportWizard::import() { if (m_args) { // if (fileBasedDstSelected()) { - m_args->insert("destinationDatabaseName", + m_args->insert("destinationDatabaseName", sourceDriver->data()->destination->databaseName()); // } - TQString destinationConnectionShortcut( + TQString destinationConnectionShortcut( Kexi::connset().fileNameForConnectionData( m_dstConn->selectedConnectionData() ) ); if (!destinationConnectionShortcut.isEmpty()) { m_args->insert("destinationConnectionShortcut", destinationConnectionShortcut); @@ -859,14 +859,14 @@ tristate ImportWizard::import() kdDebug() << msg << "\n" << details << endl; setTitle(m_finishPage, i18n("Failure")); - m_finishLbl->setText( + m_finishLbl->setText( i18n("

Import failed.

%1

%2

You can click \"Back\" button and try again.

") .arg(msg).arg(details)); return false; } // delete kexi_conn; return true; -} +} void ImportWizard::reject() { @@ -896,7 +896,7 @@ void ImportWizard::next() if (fileBasedSrcSelected()) dbname = m_srcConn->selectedFileName(); else - dbname = m_srcConn->selectedConnectionData() + dbname = m_srcConn->selectedConnectionData() ? m_srcConn->selectedConnectionData()->serverInfoString() : TQString(); if (!dbname.isEmpty()) dbname = TQString(" \"%1\"").arg(dbname); @@ -920,7 +920,7 @@ void ImportWizard::next() m_lblImportingTxt->setText(i18n("Importing in progress...")); tristate res = import(); if (true == res) { - m_finishLbl->setText( + m_finishLbl->setText( i18n("Database has been imported into Kexi database project \"%1\".") .arg(m_dstNewDBNameLineEdit->text()) ); cancelButton()->setEnabled(false); diff --git a/kexi/plugins/macros/tests/komacrotestgui.cpp b/kexi/plugins/macros/tests/komacrotestgui.cpp index ea4bbb9c7..de0345c1f 100644 --- a/kexi/plugins/macros/tests/komacrotestgui.cpp +++ b/kexi/plugins/macros/tests/komacrotestgui.cpp @@ -42,7 +42,7 @@ int main( int argc, char** argv ) TDECmdLineArgs::init(argc, argv, &about); TDECmdLineArgs::addCmdLineOptions( options ); - //create new kapplication + //create new tdeApplication TDEApplication app; //create new kunitrunnergui KUnitTest::RunnerGUI runner(0); diff --git a/kformula/CMakeLists.txt b/kformula/CMakeLists.txt new file mode 100644 index 000000000..9c456783b --- /dev/null +++ b/kformula/CMakeLists.txt @@ -0,0 +1,64 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_SOURCE_DIR}/lib/kofficeui + ${CMAKE_SOURCE_DIR}/lib/store + ${CMAKE_SOURCE_DIR}/lib/kwmf + ${CMAKE_SOURCE_DIR}/lib/kopalette + ${CMAKE_SOURCE_DIR}/lib/kformula + ${CMAKE_SOURCE_DIR}/lib/kotext + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_kpart(libkformulapart SHARED AUTOMOC + SOURCES + kfconfig.cpp kformula_doc.cpp kformula_view.cpp kformula_factory.cpp + kformulawidget.cpp kformula_view_iface.skel kformula_view_iface.cpp + formulastring.cpp fsparser.cpp + LINK + tdecore-shared tdeui-shared tdefx-shared tdeio-shared tdeparts-shared + kofficeui-shared kotext-shared kformulalib-shared + DESTINATION ${PLUGIN_INSTALL_DIR} +) + +### Programs ################################################################## +tde_add_tdeinit_executable(kformula AUTOMOC + SOURCES main.cpp + LINK kofficecore-shared +) + +### Data ###################################################################### +install( + FILES kformula.rc kformula_readonly.rc tips + DESTINATION ${DATA_INSTALL_DIR}/kformula +) + +tde_create_translated_desktop( + SOURCE kformula.desktop + PO_DIR koffice-desktops +) + +tde_create_translated_desktop( + SOURCE kformulapart.desktop + DESTINATION ${SERVICES_INSTALL_DIR} + PO_DIR koffice-desktops +) + +add_subdirectory(pics) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/kformula/pics/CMakeLists.txt b/kformula/pics/CMakeLists.txt new file mode 100644 index 000000000..f3304540b --- /dev/null +++ b/kformula/pics/CMakeLists.txt @@ -0,0 +1,11 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +### Data ###################################################################### +tde_install_icons() + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/kounavail/CMakeLists.txt b/kounavail/CMakeLists.txt new file mode 100644 index 000000000..5cb21e1ba --- /dev/null +++ b/kounavail/CMakeLists.txt @@ -0,0 +1,41 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_SOURCE_DIR}/lib/kofficeui + ${CMAKE_SOURCE_DIR}/lib/store + ${CMAKE_SOURCE_DIR}/lib/kwmf + ${CMAKE_SOURCE_DIR}/lib/kopalette + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_kpart(libkounavail SHARED AUTOMOC + SOURCES kounavail.cpp + LINK + tdecore-shared tdeui-shared tdefx-shared tdeio-shared tdeparts-shared + kofficecore-shared + DESTINATION ${PLUGIN_INSTALL_DIR} +) + +### Data ###################################################################### +tde_create_translated_desktop( + SOURCE kounavail.desktop + DESTINATION ${SERVICES_INSTALL_DIR} + PO_DIR koffice-desktops +) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/kplato/kptganttview.cpp b/kplato/kptganttview.cpp index 40dfbf75e..fe797fdaa 100644 --- a/kplato/kptganttview.cpp +++ b/kplato/kptganttview.cpp @@ -30,7 +30,7 @@ #include "kpttask.h" #include "kptresource.h" #include "kptdatetime.h" -#include "kpttaskappointmentsview.h" +#include "kpttastdeAppointmentsview.h" #include "kptrelation.h" #include "kptcontext.h" #include "kptschedule.h" @@ -114,8 +114,8 @@ GanttView::GanttView(TQWidget *parent, bool readWrite, const char* name) m_gantt->setScale(KDGanttView::Day); m_gantt->setShowLegendButton(false); m_gantt->setShowHeaderPopupMenu(); - m_taskView = new TaskAppointmentsView(this); - // hide TaskAppointmentsView + m_taskView = new TastdeAppointmentsView(this); + // hide TastdeAppointmentsView TQValueList list = sizes(); list[0] += list[1]; list[1] = 0; diff --git a/kplato/kptganttview.h b/kplato/kptganttview.h index dc34fe869..826ec682b 100644 --- a/kplato/kptganttview.h +++ b/kplato/kptganttview.h @@ -45,7 +45,7 @@ namespace KPlato { class MyKDGanttView; -class TaskAppointmentsView; +class TastdeAppointmentsView; class Node; class Task; @@ -189,7 +189,7 @@ private: int m_defaultFontSize; KDGanttViewItem *m_currentItem; MyKDGanttView *m_gantt; - TaskAppointmentsView *m_taskView; + TastdeAppointmentsView *m_taskView; bool m_showExpected; bool m_showOptimistic; bool m_showPessimistic; diff --git a/kplato/kptresource.cpp b/kplato/kptresource.cpp index 3b3be7a28..ae56980ac 100644 --- a/kplato/kptresource.cpp +++ b/kplato/kptresource.cpp @@ -594,7 +594,7 @@ Duration Resource::effort(const DateTime &start, const Duration &duration, bool return e; } -DateTime Resource::availableAfter(const DateTime &time, const DateTime limit, bool checkAppointments) const { +DateTime Resource::availableAfter(const DateTime &time, const DateTime limit, bool chectdeAppointments) const { DateTime t; if (m_units == 0) { return t; @@ -617,14 +617,14 @@ DateTime Resource::availableAfter(const DateTime &time, const DateTime limit, bo } t = m_availableFrom > time ? m_availableFrom : time; t = cal->firstAvailableAfter(t, lmt); - if (checkAppointments) { + if (chectdeAppointments) { //TODO } //kdDebug()<firstAvailableBefore(t, lmt); - if (checkAppointments) { + if (chectdeAppointments) { //TODO } //kdDebug()<name(), highlight), resource(r) { setFormat(0, 'f', 1); //kdDebug()<name(), highlight), resource(r) { @@ -47,7 +47,7 @@ TaskAppointmentsView::ResourceItem::ResourceItem(Resource *r, TQListViewItem *p, //kdDebug()< it(lst); for (; it.current(); ++it) { Resource *r = it.current()->resource()->resource(); - TaskAppointmentsView::ResourceItem *item = new TaskAppointmentsView::ResourceItem(r, masterListView()); + TastdeAppointmentsView::ResourceItem *item = new TastdeAppointmentsView::ResourceItem(r, masterListView()); item->effortMap = it.current()->plannedPrDay(m_task->startTime().date(), m_task->endTime().date()); } slotUpdate(); } -void TaskAppointmentsView::drawContents(TQPainter* painter) +void TastdeAppointmentsView::drawContents(TQPainter* painter) { this->DoubleListViewBase::drawContents(painter); } -void TaskAppointmentsView::slotUpdate() { +void TastdeAppointmentsView::slotUpdate() { //kdDebug()<(it.current()); + TastdeAppointmentsView::ResourceItem *item = static_cast(it.current()); if (!item) { continue; } @@ -139,11 +139,11 @@ void TaskAppointmentsView::slotUpdate() { } -void TaskAppointmentsView::print(KPrinter &/*printer*/) { +void TastdeAppointmentsView::print(KPrinter &/*printer*/) { kdDebug()< list; @@ -158,7 +158,7 @@ void TaskAppointmentsView::print(KPrinter &/*printer*/) { // return true; // } // -// void TaskAppointmentsView::getContext(Context::TaskAppointmentsView &context) const { +// void TastdeAppointmentsView::getContext(Context::TastdeAppointmentsView &context) const { // //kdDebug()<sizes()[0]; // context.periodviewsize = m_dlv->sizes()[1]; @@ -168,15 +168,15 @@ void TaskAppointmentsView::print(KPrinter &/*printer*/) { // //kdDebug()<clear(); if (m_taskName) m_taskName->clear(); @@ -45,7 +45,7 @@ void TaskAppointmentsView::clear() if (m_cpi) m_cpi->clear(); } -void TaskAppointmentsView::draw(Task *task) +void TastdeAppointmentsView::draw(Task *task) { //kdDebug()<setColumnAlignment(1, AlignHCenter); m_appList->setColumnAlignment(3, AlignRight); @@ -94,7 +94,7 @@ void TaskAppointmentsView::init() } -void TaskAppointmentsView::drawCostEffort() +void TastdeAppointmentsView::drawCostEffort() { if (m_task == 0) return; diff --git a/kplato/kptview.cpp b/kplato/kptview.cpp index 4b74eab26..e0e8d895a 100644 --- a/kplato/kptview.cpp +++ b/kplato/kptview.cpp @@ -194,7 +194,7 @@ View::View(Part* part, TQWidget* parent, const char* /*name*/) // actionViewGanttNotScheduled = new TDEToggleAction(i18n("Not Scheduled"), 0, 0, this, TQ_SLOT(slotViewGanttNotScheduled()), actionCollection(), "view_gantt_showNotScheduled"); - actionViewTaskAppointments = new TDEToggleAction(i18n("Show Allocations"), 0, 0, this, TQ_SLOT(slotViewTaskAppointments()), actionCollection(), "view_task_appointments"); + actionViewTastdeAppointments = new TDEToggleAction(i18n("Show Allocations"), 0, 0, this, TQ_SLOT(slotViewTastdeAppointments()), actionCollection(), "view_task_appointments"); actionViewPert = new TDEAction(i18n("Network"), "pert_chart", 0, this, TQ_SLOT(slotViewPert()), actionCollection(), "view_pert"); @@ -456,9 +456,9 @@ void View::slotViewGanttNoInformation() { slotUpdate(false); } -void View::slotViewTaskAppointments() { +void View::slotViewTastdeAppointments() { //kdDebug()<setShowAppointments(actionViewTaskAppointments->isChecked()); + m_ganttview->setShowAppointments(actionViewTastdeAppointments->isChecked()); m_updateGanttview = true; if (m_tab->visibleWidget() == m_ganttview) slotUpdate(false); diff --git a/kplato/kptview.h b/kplato/kptview.h index f2726c70a..530be6b59 100644 --- a/kplato/kptview.h +++ b/kplato/kptview.h @@ -105,7 +105,7 @@ public slots: void slotViewGanttCriticalTasks(); void slotViewGanttCriticalPath(); void slotViewGanttNoInformation(); - void slotViewTaskAppointments(); + void slotViewTastdeAppointments(); void slotViewPert(); void slotViewResources(); void slotViewResourceAppointments(); @@ -223,7 +223,7 @@ private: TDEToggleAction *actionViewGanttCriticalTasks; TDEToggleAction *actionViewGanttCriticalPath; TDEToggleAction *actionViewGanttNotScheduled; - TDEToggleAction *actionViewTaskAppointments; + TDEToggleAction *actionViewTastdeAppointments; TDEAction *actionViewPert; TDEAction *actionViewResources; TDEToggleAction *actionViewResourceAppointments; diff --git a/kpresenter/CMakeLists.txt b/kpresenter/CMakeLists.txt new file mode 100644 index 000000000..d845c61d8 --- /dev/null +++ b/kpresenter/CMakeLists.txt @@ -0,0 +1,120 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_SOURCE_DIR}/lib/kofficeui + ${CMAKE_SOURCE_DIR}/lib/store + ${CMAKE_SOURCE_DIR}/lib/kotext + ${CMAKE_SOURCE_DIR}/lib/kformula + ${CMAKE_BINARY_DIR}/lib/kofficeui + ${CMAKE_BINARY_DIR}/lib/kotext + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(libkwordprivate SHARED AUTOMOC + SOURCES + KPrPage.cpp KPrFindReplace.cpp KPrBackDia.cpp KPrWebPresentation.cpp + KPrView.cpp KPrMSPresentationSetup.cpp KPrBrush.cpp KPrDocument.cpp + KPrSoundPlayer.cpp KPrPgConfDia.cpp KPrEffectDia.cpp KPrCommand.cpp + KPrUtils.cpp KPrEffectHandler.cpp KPrPageEffects.cpp KPrTransEffectDia.cpp + KPrObject.cpp KPrLineObject.cpp KPrRectObject.cpp KPrEllipseObject.cpp + KPrAutoformObject.cpp KPrTextObject.cpp KPrPixmapObject.cpp + KPrPieObject.cpp KPrPartObject.cpp KPrGroupObject.cpp KPrBackground.cpp + KPrGradient.cpp KPrGradientCollection.cpp KPrGotoPage.cpp KPrFactory.cpp + KPrDocumentIface.skel KPrDocumentIface.cpp + KPrViewIface.skel KPrViewIface.cpp + KPrObjectIface.skel KPrObjectIface.cpp + KPrPageIface.skel KPrPageIface.cpp + KPrSideBar.cpp insertpagedia.ui KPrConfig.cpp KPrVariableCollection.cpp + KPrTextDocument.cpp KPrPointObject.cpp KPrFreehandObject.cpp + KPrPolylineObject.cpp KPrBezierCurveObject.cpp KPrPolygonObject.cpp + KPrNoteBar.cpp KPrTextObjectIface.skel KPrTextObjectIface.cpp + KPrTextViewIface.skel KPrTextViewIface.cpp KPrPresDurationDia.cpp + KPrPieObjectIface.skel KPrPieObjectIface.cpp + KPrPolygonObjectIface.skel KPrPolygonObjectIface.cpp + KPrRectObjectIface.skel KPrRectObjectIface.cpp + KPrPixmapObjectIface.skel KPrPixmapObjectIface.cpp + KPrAutoFormObjectIface.skel KPrAutoFormObjectIface.cpp + KPrObject2DIface.skel KPrObject2DIface.cpp + KPrLineObjectIface.skel KPrLineObjectIface.cpp + KPrQuadricBezierCurveObjectIface.skel KPrQuadricBezierCurveObjectIface.cpp + KPrCubicBezierCurveObjectIface.skel KPrCubicBezierCurveObjectIface.cpp + KPrSVGPathParser.cpp shadowdialog.ui KPrShadowDialogImpl.cpp + KPrTextPreview.cpp KPrRotationDialogImpl.cpp rotationpropertyui.ui + KPrFreehandObjectIface.skel KPrFreehandObjectIface.cpp KPrStyleManager.cpp + KPrBgSpellCheck.cpp KPrMoveHelpLineDia.cpp + KPrPolyLineObjectIface.skel KPrPolyLineObjectIface.cpp + KPrDuplicateObjDia.cpp KPrClosedLineObject.cpp + KPrImportStyleDia.cpp KPrImageEffectDia.cpp imageEffectBase.ui + KPrCustomSlideShowDia.cpp KPrPBPreview.cpp penstyle.ui KPrPenStyleWidget.cpp + KPrRectPreview.cpp rectpropertyui.ui KPrRectProperty.cpp KPrPiePreview.cpp + KPrPolygonPreview.cpp KPrPicturePreview.cpp + brushpropertyui.ui gradientpropertyui.ui KPrBrushProperty.cpp + KPrGeneralProperty.cpp polygonpropertyui.ui KPrPolygonProperty.cpp + piepropertyui.ui KPrPieProperty.cpp picturepropertyui.ui + KPrPictureProperty.cpp marginui.ui KPrMarginWidget.cpp KPrTextProperty.cpp + KPrObjectProperties.cpp KPrPropertyEditor.cpp slidetransitionwidget.ui + KPrSlideTransitionDia.cpp KPrPrinterDlg.cpp KoPointArray.cpp KPrCanvas.cpp + LINK + tdecore-shared tdeui-shared kjs-shared tdefx-shared tdeparts-shared + tdespell2-shared kofficeui-shared kofficetext-shared kopainter-shared + mcop-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +### Part ####################################################################### +tde_add_kpart(libkpresenterpart SHARED AUTOMOC + SOURCES + KPrFactoryInit.cpp + LINK + tdecore-shared tdeui-shared kjs-shared tdefx-shared tdeio-shared + tdeparts-shared + DESTINATION ${PLUGIN_INSTALL_DIR} +) + +### Programs ################################################################## +tde_add_tdeinit_executable(kpresenter AUTOMOC + SOURCES main.cpp + LINK + tdecore-shared tdeui-shared kjs-shared tdefx-shared tdeio-shared + tdeparts-shared kofficecore-shared +) + +### Data ###################################################################### +install( + FILES kpresenter.rc kpresenter_readonly.rc + DESTINATION ${DATA_INSTALL_DIR}/kpresenter +) + +tde_create_translated_desktop( + SOURCE kpresenter.desktop + PO_DIR koffice-desktops +) + +tde_create_translated_desktop( + SOURCE kpresenterpart.desktop + DESTINATION ${SERVICES_INSTALL_DIR} + PO_DIR koffice-desktops +) + +# add_subdirectory(data) +# add_subdirectory(dtd) +# add_subdirectory(horizontalline) +# add_subdirectory(templates) +# add_subdirectory(toolbar) +# add_subdirectory(pics) +# add_subdirectory(mailmerge) \ No newline at end of file diff --git a/kword/CMakeLists.txt b/kword/CMakeLists.txt new file mode 100644 index 000000000..d1ec0bb12 --- /dev/null +++ b/kword/CMakeLists.txt @@ -0,0 +1,108 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_SOURCE_DIR}/lib/kofficeui + ${CMAKE_SOURCE_DIR}/lib/store + ${CMAKE_SOURCE_DIR}/lib/kotext + ${CMAKE_SOURCE_DIR}/lib/kformula + ${CMAKE_BINARY_DIR}/lib/kofficeui + ${CMAKE_BINARY_DIR}/lib/kotext + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(libkwordprivate SHARED AUTOMOC + SOURCES + KWTableFrameSet.cpp KWCanvas.cpp KWFrame.cpp KWFormulaFrameSet.cpp + KWFactory.cpp KWDocument.cpp KWView.cpp KWViewMode.cpp KWTextParag.cpp + KWTextDocument.cpp KWTextFrameSet.cpp KWPartFrameSet.cpp KWTextImage.cpp + KWAnchor.cpp KWConfig.cpp KWVariable.cpp KWFrameDia.cpp KWFootNoteDia.cpp + KWFrameStyle.cpp KWFrameStyleManager.cpp KWTableStyle.cpp + KWTableStyleManager.cpp KWTableTemplate.cpp KWTableTemplateSelector.cpp + KWTableDia.cpp KWInsertDia.cpp KWDeleteDia.cpp KWDocStruct.cpp + KWInsertTOCCommand.cpp KWStyleManager.cpp KWFindReplace.cpp KWCommand.cpp + KWStatisticsDialog.cpp KWordMailMergeDatabaseIface.skel + kwordmailmergedatabaseiface.cpp KWMailMergeDataBase.cpp + KWMailMergeLabelAction.cpp KWEditPersonnalExpression.cpp + KWSplitCellDia.cpp KWInsertPicDia.cpp + KWordDocIface.skel KWordDocIface.cpp + KWordViewIface.skel KWordViewIface.cpp + KWordTextFrameSetIface.skel KWordTextFrameSetIface.cpp + KWordTextFrameSetEditIface.skel KWordTextFrameSetEditIface.cpp + KWordFrameSetIface.skel KWordFrameSetIface.cpp + KWordFormulaFrameSetIface.skel KWordFormulaFrameSetIface.cpp + KWordFormulaFrameSetEditIface.skel KWordFormulaFrameSetEditIface.cpp + KWordPictureFrameSetIface.skel KWordPictureFrameSetIface.cpp + KWordTableFrameSetIface.skel KWordTableFrameSetIface.cpp + KWordPartFrameSetIface.skel KWordPartFrameSetIface.cpp + KWBgSpellCheck.cpp KWResizeTableDia.cpp KWFrameLayout.cpp + KWConfigFootNoteDia.cpp KWCreateBookmarkDia.cpp KWImportStyleDia.cpp + KWordFootNoteFrameSetIface.skel KWordFootNoteFrameSetIface.cpp + KWCreateBookmarkDiaBase.ui KWSelectBookmarkDiaBase.ui + KWSortDia.cpp KWInsertPageDia.cpp KWCollectFramesetsVisitor.cpp + KWOasisLoader.cpp KWOasisSaver.cpp KWFrameList.cpp KWPage.cpp + KWPageManager.cpp KWFrameSet.cpp KWFrameSetEdit.cpp KWPictureFrameSet.cpp + KWFrameViewManager.cpp KWFrameView.cpp KWStartupWidgetBase.ui + KWStartupWidget.cpp KWLoadingInfo.cpp + LINK + tdecore-shared tdeui-shared kjs-shared tdefx-shared tdeparts-shared + tdespell2-shared kformulalib-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +### Part ####################################################################### +tde_add_kpart(libkwordpart SHARED AUTOMOC + SOURCES + KWFactoryInit.cpp + LINK + tdecore-shared tdeui-shared kjs-shared tdefx-shared tdeio-shared + tdeparts-shared libkwordprivate-shared + DESTINATION ${PLUGIN_INSTALL_DIR} +) + +### Programs ################################################################## +tde_add_tdeinit_executable(kword AUTOMOC + SOURCES main.cpp + LINK + tdecore-shared tdeui-shared kjs-shared tdefx-shared tdeio-shared + tdeparts-shared kofficecore-shared +) + +### Data ###################################################################### +install( + FILES kword.rc kword_readonly.rc + DESTINATION ${DATA_INSTALL_DIR}/kword +) + +tde_create_translated_desktop( + SOURCE kword.desktop + PO_DIR koffice-desktops +) + +tde_create_translated_desktop( + SOURCE kwordpart.desktop + DESTINATION ${SERVICES_INSTALL_DIR} + PO_DIR koffice-desktops +) + +add_subdirectory(data) +add_subdirectory(dtd) +add_subdirectory(horizontalline) +add_subdirectory(templates) +add_subdirectory(toolbar) +add_subdirectory(pics) +add_subdirectory(mailmerge) \ No newline at end of file diff --git a/kword/ConfigureChecks.cmake b/kword/ConfigureChecks.cmake new file mode 100644 index 000000000..cf79731ff --- /dev/null +++ b/kword/ConfigureChecks.cmake @@ -0,0 +1,18 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +check_cxx_source_compiles(" +#include +#ifdef TQT_NO_SQL +# error \"No TQt-SQL support\" +#endif +" HAS_TQT_SQL) + +if (NOT HAS_TQT_SQL) + message(WARNING "TQt-SQL support is not installed, the KWord MailMerge dialog " + "will be compiled without SQL source support.") +endif() \ No newline at end of file diff --git a/kword/data/CMakeLists.txt b/kword/data/CMakeLists.txt new file mode 100644 index 000000000..225acb293 --- /dev/null +++ b/kword/data/CMakeLists.txt @@ -0,0 +1,11 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +install( + FILES framestyles.xml tablestyles.xml tabletemplates.xml + DESTINATION ${DATA_INSTALL_DIR}/kword +) \ No newline at end of file diff --git a/kword/dtd/CMakeLists.txt b/kword/dtd/CMakeLists.txt new file mode 100644 index 000000000..837a2c241 --- /dev/null +++ b/kword/dtd/CMakeLists.txt @@ -0,0 +1,11 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +install( + FILES kword.dtd framestyles.dtd tablestyles.dtd tabletemplates.dtd + DESTINATION ${DATA_INSTALL_DIR}/kword/dtd +) \ No newline at end of file diff --git a/kword/expression/CMakeLists.txt b/kword/expression/CMakeLists.txt new file mode 100644 index 000000000..4df3e57ff --- /dev/null +++ b/kword/expression/CMakeLists.txt @@ -0,0 +1,11 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +install( + FILES expression.xml + DESTINATION ${DATA_INSTALL_DIR}/kword/expression +) \ No newline at end of file diff --git a/kword/horizontalline/CMakeLists.txt b/kword/horizontalline/CMakeLists.txt new file mode 100644 index 000000000..4e406c637 --- /dev/null +++ b/kword/horizontalline/CMakeLists.txt @@ -0,0 +1,11 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +install( + FILES line.png + DESTINATION ${DATA_INSTALL_DIR}/kword/horizontalline +) \ No newline at end of file diff --git a/kword/mailmerge/CMakeLists.txt b/kword/mailmerge/CMakeLists.txt new file mode 100644 index 000000000..7361a9cd9 --- /dev/null +++ b/kword/mailmerge/CMakeLists.txt @@ -0,0 +1,41 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_SOURCE_DIR}/lib/kofficeui + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_kpart(kwmailmerge_classic SHARED AUTOMOC + SOURCES + KWClassicSerialDataSource.cpp + LINK + tdecore-shared tdeui-shared kjs-shared tdefx-shared tdeio-shared + tdeparts-shared kotext-shared + DESTINATION ${PLUGIN_INSTALL_DIR} +) + +### Data ###################################################################### +tde_create_translated_desktop( + SOURCE kwserialletter_classic.desktop + DESTINATION ${SERVICES_INSTALL_DIR} + PO_DIR koffice-desktops +) + +add_subdirectory(tdeabc) +add_subdirectory(kspread) +tde_conditional_add_subdirectory(HAS_TQT_SQL sql) \ No newline at end of file diff --git a/kword/mailmerge/kspread/CMakeLists.txt b/kword/mailmerge/kspread/CMakeLists.txt new file mode 100644 index 000000000..637ee0845 --- /dev/null +++ b/kword/mailmerge/kspread/CMakeLists.txt @@ -0,0 +1,38 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_SOURCE_DIR}/lib/kofficeui + ${CMAKE_SOURCE_DIR}/kspread + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_kpart(kwmailmerge_kspread SHARED AUTOMOC + SOURCES + kwmailmerge_kspread.cpp kwmailmerge_kspread_config.cpp + LINK + tdecore-shared tdeui-shared kjs-shared tdefx-shared tdeio-shared + tdeparts-shared + DESTINATION ${PLUGIN_INSTALL_DIR} +) + +### Data ###################################################################### +tde_create_translated_desktop( + SOURCE kwmailmerge_kspread.desktop + DESTINATION ${SERVICES_INSTALL_DIR} + PO_DIR koffice-desktops +) \ No newline at end of file diff --git a/kword/mailmerge/tdeabc/CMakeLists.txt b/kword/mailmerge/tdeabc/CMakeLists.txt new file mode 100644 index 000000000..187e514d2 --- /dev/null +++ b/kword/mailmerge/tdeabc/CMakeLists.txt @@ -0,0 +1,37 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_SOURCE_DIR}/lib/kofficeui + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_kpart(kwmailmerge_tdeabc SHARED AUTOMOC + SOURCES + KWMailMergeTDEABC.cpp KWMailMergeTDEABCConfig.cpp addresspicker.ui + LINK + tdecore-shared tdeui-shared kjs-shared tdefx-shared tdeio-shared + tdeparts-shared tdeabc-shared + DESTINATION ${PLUGIN_INSTALL_DIR} +) + +### Data ###################################################################### +tde_create_translated_desktop( + SOURCE kwmailmerge_tdeabc.desktop + DESTINATION ${SERVICES_INSTALL_DIR} + PO_DIR koffice-desktops +) \ No newline at end of file diff --git a/kword/pics/CMakeLists.txt b/kword/pics/CMakeLists.txt new file mode 100644 index 000000000..4467c87c9 --- /dev/null +++ b/kword/pics/CMakeLists.txt @@ -0,0 +1,8 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +tde_install_icons() \ No newline at end of file diff --git a/kword/templates/CMakeLists.txt b/kword/templates/CMakeLists.txt new file mode 100644 index 000000000..61ba22d22 --- /dev/null +++ b/kword/templates/CMakeLists.txt @@ -0,0 +1,10 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +add_subdirectory(CardsAndLabels) +add_subdirectory(Envelopes) +add_subdirectory(Wordprocessing) \ No newline at end of file diff --git a/kword/templates/CardsAndLabels/CMakeLists.txt b/kword/templates/CardsAndLabels/CMakeLists.txt new file mode 100644 index 000000000..2cc740141 --- /dev/null +++ b/kword/templates/CardsAndLabels/CMakeLists.txt @@ -0,0 +1,22 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +set(TEMPLATE_SUBDIR "CardsAndLabels") +file(GLOB DESKTOP_FILES *.desktop) +file(GLOB KWORD_TEMPLATES *.kwt) + +install( + FILES .directory ${DESKTOP_FILES} + DESTINATION ${DATA_INSTALL_DIR}/kword/templates/${TEMPLATE_SUBDIR} +) + +install( + FILES ${KWORD_TEMPLATES} + DESTINATION ${DATA_INSTALL_DIR}/kword/templates/${TEMPLATE_SUBDIR}/.source +) + +tde_install_icons() \ No newline at end of file diff --git a/kword/templates/Envelopes/CMakeLists.txt b/kword/templates/Envelopes/CMakeLists.txt new file mode 100644 index 000000000..47ae2fc40 --- /dev/null +++ b/kword/templates/Envelopes/CMakeLists.txt @@ -0,0 +1,22 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +set(TEMPLATE_SUBDIR "Envelopes") +file(GLOB DESKTOP_FILES *.desktop) +file(GLOB KWORD_TEMPLATES *.kwt) + +install( + FILES .directory ${DESKTOP_FILES} + DESTINATION ${DATA_INSTALL_DIR}/kword/templates/${TEMPLATE_SUBDIR} +) + +install( + FILES ${KWORD_TEMPLATES} + DESTINATION ${DATA_INSTALL_DIR}/kword/templates/${TEMPLATE_SUBDIR}/.source +) + +tde_install_icons() \ No newline at end of file diff --git a/kword/templates/Wordprocessing/CMakeLists.txt b/kword/templates/Wordprocessing/CMakeLists.txt new file mode 100644 index 000000000..1c1611ecf --- /dev/null +++ b/kword/templates/Wordprocessing/CMakeLists.txt @@ -0,0 +1,22 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +set(TEMPLATE_SUBDIR "Normal") +file(GLOB DESKTOP_FILES *.desktop) +file(GLOB KWORD_TEMPLATES *.kwt) + +install( + FILES .directory ${DESKTOP_FILES} + DESTINATION ${DATA_INSTALL_DIR}/kword/templates/${TEMPLATE_SUBDIR} +) + +install( + FILES ${KWORD_TEMPLATES} + DESTINATION ${DATA_INSTALL_DIR}/kword/templates/${TEMPLATE_SUBDIR}/.source +) + +tde_install_icons() \ No newline at end of file diff --git a/kword/toolbar/CMakeLists.txt b/kword/toolbar/CMakeLists.txt new file mode 100644 index 000000000..4467c87c9 --- /dev/null +++ b/kword/toolbar/CMakeLists.txt @@ -0,0 +1,8 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +tde_install_icons() \ No newline at end of file diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt new file mode 100644 index 000000000..645b05fce --- /dev/null +++ b/lib/CMakeLists.txt @@ -0,0 +1,25 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +add_subdirectory(store) +add_subdirectory(kwmf) +add_subdirectory(kofficecore) +add_subdirectory(kofficeui) +add_subdirectory(koproperty) +tde_conditional_add_subdirectory(BUILD_KROSS kross) + +# All applications except for Kexi need the following components +if (BUILD_CHALK OR BUILD_KARBON OR BUILD_KCHART OR BUILD_KGANTT OR + BUILD_KFORMULA OR BUILD_KIVIO OR BUILD_KOSHELL OR BUILD_KPLATO OR + BUILD_KPRESENTER OR BUILD_KSPREAD OR BUILD_KUGAR OR BUILD_KWORD) + add_subdirectory(kotext) + add_subdirectory(kformula) + add_subdirectory(kopalette) + tde_conditional_add_subdirectory(BUILD_KOPAINTER kopainter) +endif() + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/lib/ConfigureChecks.cmake b/lib/ConfigureChecks.cmake new file mode 100644 index 000000000..5dc7d7566 --- /dev/null +++ b/lib/ConfigureChecks.cmake @@ -0,0 +1,15 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +find_program(HAVE_MAKETDEWIDGETS maketdewidgets) +if (NOT HAVE_MAKETDEWIDGETS) + message(WARNING "maketdewidgets not found, won't generate Designer widgets") +endif() + +if (BUILD_KROSS) + include(lib/kross/ConfigureChecks.cmake) +endif() \ No newline at end of file diff --git a/lib/kformula/CMakeLists.txt b/lib/kformula/CMakeLists.txt new file mode 100644 index 000000000..ee3df6cc4 --- /dev/null +++ b/lib/kformula/CMakeLists.txt @@ -0,0 +1,70 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_SOURCE_DIR}/lib/kofficeui + ${CMAKE_SOURCE_DIR}/lib/store + ${CMAKE_SOURCE_DIR}/lib/kwmf + ${CMAKE_SOURCE_DIR}/lib/kopalette + ${CMAKE_SOURCE_DIR}/lib/kotext + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +# We have to name it kformulalib, not just kformula, since that's the name of +# the tdeinit module for kformula. +tde_add_library(kformulalib SHARED AUTOMOC + SOURCES + basicelement.cpp contextstyle.cpp formulacursor.cpp + formulaelement.cpp indexelement.cpp kformulacontainer.cpp + sequenceelement.cpp textelement.cpp bracketelement.cpp + matrixelement.cpp fractionelement.cpp rootelement.cpp symbolelement.cpp + kformulacommand.cpp kformulamimesource.cpp + MatrixDialog.cpp sequenceparser.cpp elementtype.cpp kformuladocument.cpp + symboltable.cpp kformulainputfilter.cpp kformulaview.cpp + spaceelement.cpp kformulaconfigpage.cpp + symbolaction.cpp fontstyle.cpp creationstrategy.cpp + oasiscreationstrategy.cpp tokenstyleelement.cpp tokenelement.cpp + identifierelement.cpp operatorelement.cpp glyphelement.cpp styleelement.cpp + stringelement.cpp paddedelement.cpp errorelement.cpp phantomelement.cpp + actionelement.cpp encloseelement.cpp entities.cpp operatordictionary.cpp + numberelement.cpp + LINK tdeui-shared kotext-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +### Programs ################################################################## +if (BUILD_TESTS) + tde_add_executable(koformulatest AUTOMOC + SOURCES main.cpp kformulawidget.cpp + LINK kformulalib-shared + ) +endif() + +### Headers ################################################################### +# install( +# FILES +# kformulacontainer.h kformuladocument.h kformulaview.h +# kformuladefs.h kformulaconfigpage.h +# DESTINATION ${INCLUDE_INSTALL_DIR}/KOffice +# ) + +### Data ###################################################################### +add_subdirectory(pics) +add_subdirectory(fonts) +add_subdirectory(dtd) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/lib/kformula/dtd/CMakeLists.txt b/lib/kformula/dtd/CMakeLists.txt new file mode 100644 index 000000000..b8bf11ee4 --- /dev/null +++ b/lib/kformula/dtd/CMakeLists.txt @@ -0,0 +1,11 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +### Data ###################################################################### +install(FILES kformula.dtd DESTINATION ${DATA_INSTALL_DIR}/kformula/dtd) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/lib/kformula/entities.cpp b/lib/kformula/entities.cpp index c6696e1ff..174878e33 100644 --- a/lib/kformula/entities.cpp +++ b/lib/kformula/entities.cpp @@ -1150,8 +1150,8 @@ const entityMap entities[] = { {"jscr", 0x1D4BF} , {"jsercy", 0x00458} , {"jukcy", 0x00454} , - {"kappa", 0x003BA} , - {"kappav", 0x003F0} , + {"tdeAppa", 0x003BA} , + {"tdeAppav", 0x003F0} , {"kcedil", 0x00137} , {"kcy", 0x0043A} , {"kfr", 0x1D528} , @@ -1848,7 +1848,7 @@ const entityMap entities[] = { {"therefore", 0x02234} , {"theta", 0x003B8} , {"thetav", 0x003D1} , - {"thickapprox", 0x02248} , + {"thictdeApprox", 0x02248} , {"thicksim", 0x0223C} , {"thinsp", 0x02009} , {"thkap", 0x02248} , @@ -1942,7 +1942,7 @@ const entityMap entities[] = { {"vDash", 0x022A8} , {"vangrt", 0x0299C} , {"varepsilon", 0x003B5} , - {"varkappa", 0x003F0} , + {"vartdeAppa", 0x003F0} , {"varnothing", 0x02205} , {"varphi", 0x003C6} , {"varpi", 0x003D6} , diff --git a/lib/kformula/fonts/CMakeLists.txt b/lib/kformula/fonts/CMakeLists.txt new file mode 100644 index 000000000..74379d976 --- /dev/null +++ b/lib/kformula/fonts/CMakeLists.txt @@ -0,0 +1,18 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +### Data ###################################################################### +set(FONTDIR "${DATA_INSTALL_DIR}/kformula/fonts") +install( + FILES cmex10.ttf Arev.ttf ArevIt.ttf ArevBd.ttf ArevBI.ttf + DESTINATION ${FONTDIR} +) + +install(CODE "execute_process(COMMAND mkfontscale \$ENV{DESTDIR}${FONTDIR})") +install(CODE "execute_process(COMMAND mkfontdir \$ENV{DESTDIR}${FONTDIR})") + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/lib/kformula/kformulacontainer.cpp b/lib/kformula/kformulacontainer.cpp index a6123154d..5499fe915 100644 --- a/lib/kformula/kformulacontainer.cpp +++ b/lib/kformula/kformulacontainer.cpp @@ -528,7 +528,7 @@ void Container::saveMathML( TQTextStream& stream, bool oasisFormat ) { TQDomDocument doc; if ( !oasisFormat ) { - doc = document()->createMathMLDomDocument(); + doc = document()->createMathMLDomDocument(); } rootElement()->writeMathML( doc, doc, oasisFormat ); stream << doc; diff --git a/lib/kformula/kformuladocument.cpp b/lib/kformula/kformuladocument.cpp index 24d7c6504..6d954d66c 100644 --- a/lib/kformula/kformuladocument.cpp +++ b/lib/kformula/kformuladocument.cpp @@ -125,7 +125,7 @@ int Document::formulaCount() bool Document::loadXML( const TQDomDocument& doc ) { setCreationStrategy( "Ordinary" ); - + //clear(); TQDomElement root = doc.documentElement(); @@ -205,12 +205,12 @@ TQDomDocument Document::createDomDocument() */ TQDomDocument Document::createMathMLDomDocument() { - TQDomDocumentType dt = + TQDomDocumentType dt = TQDomImplementation().createDocumentType( "math", "-//W3C//DTD MathML 2.0//EN", "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"); TQDomDocument doc( dt ); - doc.insertBefore( doc.createProcessingInstruction( "xml", + doc.insertBefore( doc.createProcessingInstruction( "xml", "version=\"1.0\" encoding=\"UTF-8\"" ), doc.documentElement() ); return doc; @@ -1212,10 +1212,10 @@ void DocumentWrapper::setEnabled( bool enabled ) getAddLowerLeftAction()->setEnabled( enabled ); getAddUpperRightAction()->setEnabled( enabled ); getAddLowerRightAction()->setEnabled( enabled ); - + getAddGenericUpperAction()->setEnabled( enabled ); getAddGenericLowerAction()->setEnabled( enabled ); - + if ( enabled ) { getAddGenericUpperAction()-> @@ -1277,6 +1277,7 @@ void DocumentWrapper::setEnabled( bool enabled ) void DocumentWrapper::enableMatrixActions( bool b) { + if (!m_hasActions) return; getAppendColumnAction()->setEnabled( b ); getInsertColumnAction()->setEnabled( b ); getRemoveColumnAction()->setEnabled( b ); diff --git a/lib/kformula/pics/CMakeLists.txt b/lib/kformula/pics/CMakeLists.txt new file mode 100644 index 000000000..bb28270cf --- /dev/null +++ b/lib/kformula/pics/CMakeLists.txt @@ -0,0 +1,11 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +### Data ###################################################################### +add_subdirectory(crystalsvg) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/lib/kformula/pics/crystalsvg/CMakeLists.txt b/lib/kformula/pics/crystalsvg/CMakeLists.txt new file mode 100644 index 000000000..f3304540b --- /dev/null +++ b/lib/kformula/pics/crystalsvg/CMakeLists.txt @@ -0,0 +1,11 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +### Data ###################################################################### +tde_install_icons() + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/lib/kformula/unicodetable.cpp b/lib/kformula/unicodetable.cpp index 23dc8636e..faf5a3628 100644 --- a/lib/kformula/unicodetable.cpp +++ b/lib/kformula/unicodetable.cpp @@ -33,8 +33,8 @@ static UnicodeNameTable greekTable[] = { { 0x03B8, "theta" }, { 0x03D1, "vartheta" }, { 0x03B9, "iota" }, - { 0x03BA, "kappa" }, - { 0x03F0, "varkappa" }, + { 0x03BA, "tdeAppa" }, + { 0x03F0, "vartdeAppa" }, { 0x03BB, "lambda" }, { 0x03BC, "mu" }, { 0x03BD, "nu" }, diff --git a/lib/kofficecore/CMakeLists.txt b/lib/kofficecore/CMakeLists.txt new file mode 100644 index 000000000..c3868bdf8 --- /dev/null +++ b/lib/kofficecore/CMakeLists.txt @@ -0,0 +1,87 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/store + ${CMAKE_SOURCE_DIR}/lib/kwmf + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(kofficecore SHARED AUTOMOC + SOURCES + KoDocument.cpp KoGlobal.cpp KoUnit.cpp KoFilterManager.cpp + KoMainWindow.cpp KoApplication.cpp KoQueryTrader.cpp + KoFilter.cpp KoFilterChain.cpp KoDocumentInfo.cpp + KoPictureKey.cpp KoPictureBase.cpp KoPicture.cpp KoPictureShared.cpp + KoPictureImage.cpp KoPictureClipart.cpp KoPictureCollection.cpp + KoPictureEps.cpp KoPictureWmf.cpp + KoView.cpp KoFrame.cpp KoContainerHandler.cpp KoDocumentChild.cpp + KoDocumentInfoDlg.cpp KoFactory.cpp KoChild.cpp + koDocumentInfoAboutWidget.ui koDocumentInfoAuthorWidget.ui + koDocumentInfoUserMetadataWidget.ui + KoApplicationIface.cpp KoApplicationIface.skel + KoDocumentIface.cpp KoDocumentIface.skel KoViewIface.cpp KoViewIface.skel + KoMainWindowIface.cpp KoMainWindowIface.skel kofficeversion.cpp + KoOasisStyles.cpp KoOasisSettings.cpp KoOasisLoadingContext.cpp + KoStyleStack.cpp KoGenStyles.cpp KoPageLayout.cpp + KoFileDialog.cpp KoXmlNS.cpp KoDom.cpp Koversiondialog.cpp KoOasisStore.cpp + kkbdaccessextensions.cpp koDetailsPaneBase.ui koOpenPaneBase.ui + KoOpenPane.cpp KoTemplates.cpp KoDetailsPane.cpp KoSpeaker.cpp KoRect.cpp + LINK + tdeio-shared tdefx-shared tdeabc-shared tdeprint-shared tdeparts-shared + kstore-shared kwmf-shared kowmf-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +tde_add_kpart(kodocinfopropspage SHARED AUTOMOC + SOURCES KoDocInfoPropsFactory.cpp + LINK tdecore-shared tdeio-shared tdefx-shared kjs-shared kofficecore-shared + DESTINATION ${PLUGIN_INSTALL_DIR} +) + +### Headers ################################################################### +install( + FILES + KoContainerHandler.h + KoFilter.h KoFilterChain.h + KoGlobal.h KoUnit.h KoDocument.h + KoMainWindow.h + KoApplication.h KoQueryTrader.h + KoFilterManager.h + KoDocumentInfo.h + KoView.h KoFrame.h KoDocumentChild.h + KoDocumentInfoDlg.h KoFactory.h KoChild.h + KoApplicationIface.h KoDocumentIface.h KoViewIface.h KoMainWindowIface.h + KoPictureKey.h KoPicture.h KoPictureCollection.h kofficeversion.h + KoOasisStyles.h KoStyleStack.h KoGenStyles.h KoOasisSettings.h + KoPageLayout.h KoXmlNS.h KoDom.h Koversiondialog.h + kkbdaccessextensions.h + koffice_export.h KoOpenPane.h + KoSpeaker.h KoOasisLoadingContext.h + KoPoint.h + + DESTINATION ${INCLUDE_INSTALL_DIR}/KOffice +) + +### Data ###################################################################### +install(FILES koffice_shell.rc DESTINATION ${DATA_INSTALL_DIR}/koffice) +tde_create_translated_desktop( + SOURCE kodocinfopropspage.desktop + DESTINATION ${SERVICES_INSTALL_DIR} + PO_DIR koffice-desktops +) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/lib/kofficecore/KoDocument.cpp b/lib/kofficecore/KoDocument.cpp index 59d160e74..fd26f2e02 100644 --- a/lib/kofficecore/KoDocument.cpp +++ b/lib/kofficecore/KoDocument.cpp @@ -376,9 +376,9 @@ bool KoDocument::exp0rt( const KURL & _url ) bool KoDocument::saveFile() { kdDebug(30003) << "KoDocument::saveFile() doc='" << url().url() <<"'"<< endl; - + // set local again as it can happen that it gets resetted - // so that all saved numbers have a . and not e.g a , as a + // so that all saved numbers have a . and not e.g a , as a // decimal seperator setlocale( LC_NUMERIC, "C" ); @@ -1266,7 +1266,7 @@ TQPixmap KoDocument::generatePreview( const TQSize& size ) TQString KoDocument::autoSaveFile( const TQString & path ) const { // set local again as it can happen that it gets resetted - // so that all saved numbers have a . and not e.g a , as a + // so that all saved numbers have a . and not e.g a , as a // decimal seperator setlocale( LC_NUMERIC, "C" ); diff --git a/lib/kofficecore/KoMainWindow.cpp b/lib/kofficecore/KoMainWindow.cpp index 747a21e4a..65792b648 100644 --- a/lib/kofficecore/KoMainWindow.cpp +++ b/lib/kofficecore/KoMainWindow.cpp @@ -1636,9 +1636,9 @@ void KoMainWindow::slotEmailFile() if (!fileURL.isEmpty()) { tdeApp->invokeMailer(TQString(), TQString(), TQString(), theSubject, - TQString(), //body - TQString(), - urls); // attachments + TQString(), //body + TQString(), + urls); // attachments } } diff --git a/lib/kofficecore/KoSpeaker.cpp b/lib/kofficecore/KoSpeaker.cpp index 3637b90b8..83c0de179 100644 --- a/lib/kofficecore/KoSpeaker.cpp +++ b/lib/kofficecore/KoSpeaker.cpp @@ -1,4 +1,4 @@ -/* +/* * This file is part of the KDE/KOffice project. * Copyright (C) 2005, Gary Cramblitt * @@ -371,10 +371,10 @@ bool KoSpeaker::maybeSayWidget(TQWidget* w, const TQPoint& pos /*=TQPoint()*/) else if (w->inherits("TQComboBox")) text = dynamic_cast(w)->currentText(); - else + else if (w->inherits("TQLineEdit")) text = dynamic_cast(w)->text(); - else + else if (w->inherits("TQTextEdit")) text = dynamic_cast(w)->text(); else diff --git a/lib/kofficeui/CMakeLists.txt b/lib/kofficeui/CMakeLists.txt new file mode 100644 index 000000000..868ed2305 --- /dev/null +++ b/lib/kofficeui/CMakeLists.txt @@ -0,0 +1,77 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/store + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(kofficeui SHARED AUTOMOC + SOURCES + KoPageLayoutDia.cpp KoZoomAction.cpp KoTabBar.cpp + KoPartSelectDia.cpp KoPartSelectAction.cpp + KoRuler.cpp KoTemplateChooseDia.cpp KoTabChooser.cpp + KoKoolBar.cpp KoTemplateCreateDia.cpp KoContextCelp.cpp + kcoloractions.cpp KoPictureFilePreview.cpp KoUnitWidgets.cpp + ttdeaction.cpp tkcoloractions.cpp tkcombobox.cpp ttdetoolbarbutton.cpp + KoCharSelectDia.cpp KoInsertLink.cpp KoEditPath.cpp KoCommandHistory.cpp + KoSelectAction.cpp Kolinewidthaction.cpp Kolinestyleaction.cpp + KoTooluButton.cpp KoBrush.cpp KoImageResource.cpp KoToolBox.cpp + KoZoomHandler.cpp KoGuideLineDia.cpp KoGuides.cpp KoZoomMode.cpp + KoGeneralPropertyUi.ui KoPageLayoutColumns.cpp KoPageLayoutColumnsBase.ui + KoPageLayoutSize.cpp KoPageLayoutHeaderBase.ui KoPageLayoutHeader.cpp + KoPen.cpp + LINK kofficecore-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +### Headers ################################################################### +install( + FILES + KoPageLayoutDia.h KoZoomAction.h KoTabBar.h + KoPartSelectDia.h KoPartSelectAction.h + KoRuler.h KoTemplateChooseDia.h KoTabChooser.h + KoKoolBar.h KoTemplateCreateDia.h KoContextCelp.h + kcoloractions.h KoPictureFilePreview.h KoUnitWidgets.h + ttdeaction.h tkcoloractions.h ttdetoolbarbutton.h tkcombobox.h + KoCharSelectDia.h KoInsertLink.h KoTooluButton.h KoEditPath.h + KoCommandHistory.h KoImageResource.h + KoSelectAction.h Kolinewidthaction.h Kolinestyleaction.h + KoZoomHandler.h KoGuideLineDia.h KoGuides.h + KoPageLayoutHeader.h KoPageLayoutSize.h + KoPageLayoutColumns.h KoBrush.h KoPen.h KoZoomMode.h + DESTINATION ${INCLUDE_INSTALL_DIR}/KOffice +) + +### Widgets ################################################################### +if (HAVE_MAKETDEWIDGETS) + add_custom_command(OUTPUT kofficewidgets.cpp + COMMAND maketdewidgets -o kofficewidgets.cpp ${CMAKE_CURRENT_SOURCE_DIR}/koffice.widgets + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/koffice.widgets + ) + + tde_add_kpart(kofficewidgets AUTOMOC + SOURCES kofficewidgets.cpp + LINK tdeio-shared + DESTINATION ${PLUGIN_INSTALL_DIR}/plugins/designer + ) +endif() + +### Data ###################################################################### +add_subdirectory(pics) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/lib/kofficeui/KoInsertLink.cpp b/lib/kofficeui/KoInsertLink.cpp index 94a2ffb75..a836b8de2 100644 --- a/lib/kofficeui/KoInsertLink.cpp +++ b/lib/kofficeui/KoInsertLink.cpp @@ -242,7 +242,7 @@ internetLinkPage::internetLinkPage( TQWidget *parent , char *name ) lay2->addWidget(m_hrefName); lay2->addStretch( 1 ); - + m_linkName->setFocus(); connect(m_linkName,TQ_SIGNAL(textChanged ( const TQString & )),this,TQ_SLOT(textChanged ( const TQString & ))); @@ -315,7 +315,7 @@ bookmarkLinkPage::bookmarkLinkPage( TQWidget *parent , char *name ) lay2->addWidget(m_hrefName); lay2->addStretch( 1 ); - + m_linkName->setFocus(); connect(m_linkName,TQ_SIGNAL(textChanged ( const TQString & )),this,TQ_SLOT(textChanged ( const TQString & ))); @@ -396,7 +396,7 @@ mailLinkPage::mailLinkPage( TQWidget *parent , char *name ) lay2->addWidget(m_hrefName); lay2->addStretch( 1 ); - + connect(m_linkName,TQ_SIGNAL(textChanged ( const TQString & )),this,TQ_SLOT(textChanged ( const TQString & ))); connect(m_hrefName,TQ_SIGNAL(textChanged ( const TQString & )),this,TQ_SLOT(textChanged ( const TQString & ))); KSeparator* bar1 = new KSeparator( KSeparator::HLine, this); @@ -483,9 +483,9 @@ fileLinkPage::fileLinkPage( TQWidget *parent , char *name ) } else recentFile->insertStringList( lst); - + recentFile->setSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Fixed ); - + connect( recentFile , TQ_SIGNAL(highlighted ( const TQString &)), this, TQ_SLOT( slotSelectRecentFile( const TQString & ))); tmpTQLabel = new TQLabel( this); diff --git a/lib/kofficeui/KoSelectAction.cpp b/lib/kofficeui/KoSelectAction.cpp index d8542ec5c..3cc02db3a 100644 --- a/lib/kofficeui/KoSelectAction.cpp +++ b/lib/kofficeui/KoSelectAction.cpp @@ -40,13 +40,13 @@ class KoSelectAction::KoSelectActionPrivate m_popup = new TDEPopupMenu(0L,"KoLineStyleAction::popup"); m_currentSelection = 0; } - + ~KoSelectActionPrivate() { delete m_popup; m_popup = 0; } - + TDEPopupMenu* m_popup; int m_currentSelection; }; @@ -56,7 +56,7 @@ KoSelectAction::KoSelectAction(const TQString &text, const TQString& icon, { d = new KoSelectActionPrivate; setShowCurrentSelection(true); - + connect(popupMenu(), TQ_SIGNAL(activated(int)), this, TQ_SLOT(execute(int))); } @@ -64,7 +64,7 @@ KoSelectAction::KoSelectAction(const TQString &text, const TQString& icon, const const char* slot, TQObject* parent, const char* name) : TDEAction(text, icon, 0, parent, name) { d = new KoSelectActionPrivate; - + connect(this, TQ_SIGNAL(selectionChanged(int)), receiver, slot); connect(popupMenu(), TQ_SIGNAL(activated(int)), this, TQ_SLOT(execute(int))); } diff --git a/lib/kofficeui/KoTemplateChooseDia.cpp b/lib/kofficeui/KoTemplateChooseDia.cpp index 8ce383a9d..6a89cbe77 100644 --- a/lib/kofficeui/KoTemplateChooseDia.cpp +++ b/lib/kofficeui/KoTemplateChooseDia.cpp @@ -472,7 +472,7 @@ void KoTemplateChooseDia::setupTemplateDialog(TQWidget * widgetbase, TQGridLayou d->m_jwidget->showPage(templateNum); else if ( defaultTemplateGroup != -1) d->m_jwidget->showPage(defaultTemplateGroup); - + // Set the initially selected template, possibly from the last usage of the dialog currentChanged(itemtoselect); diff --git a/lib/kofficeui/koffice.widgets b/lib/kofficeui/koffice.widgets index 9a3f0ba10..336d60562 100644 --- a/lib/kofficeui/koffice.widgets +++ b/lib/kofficeui/koffice.widgets @@ -1,32 +1,26 @@ [Global] PluginName=KOfficeWidgets -[KoBuggyUnitDoubleSpinBox] +[KoUnitDoubleSpinBox] ToolTip=KOffice Spin box for double precision numbers with unit display WhatsThis=KOffice Spin box for double precision numbers with unit display -IncludeFile=koUnitWidgets.h -Group=Input (KOffice) - -[KoUnitDoubleSpinBox2] -ToolTip=KOffice Spin box for double precision numbers with unit display -WhatsThis=KOffice Spin box for double precision numbers with unit display -IncludeFile=koUnitWidgets.h +IncludeFile=KoUnitWidgets.h Group=Input (KOffice) [KoUnitDoubleLineEdit] ToolTip=KOffice Line edit for double precision numbers with unit display WhatsThis=KOffice Line edit for double precision numbers with unit display -IncludeFile=koUnitWidgets.h +IncludeFile=KoUnitWidgets.h Group=Input (KOffice) [KoUnitDoubleComboBox] ToolTip=KOffice Combo box for double precision numbers with unit display WhatsThis=KOffice Combo box for double precision numbers with unit display -IncludeFile=koUnitWidgets.h +IncludeFile=KoUnitWidgets.h Group=Input (KOffice) [KoUnitDoubleSpinComboBox] ToolTip=KOffice Combo box (with spin control) for double precision numbers with unit display WhatsThis=KOffice Combo box (with spin control) for double precision numbers with unit display -IncludeFile=koUnitWidgets.h +IncludeFile=KoUnitWidgets.h Group=Input (KOffice) diff --git a/lib/kofficeui/pics/CMakeLists.txt b/lib/kofficeui/pics/CMakeLists.txt new file mode 100644 index 000000000..1d14be12e --- /dev/null +++ b/lib/kofficeui/pics/CMakeLists.txt @@ -0,0 +1,23 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +install( + FILES + koRulerFirst.png koRulerLeft.png koffice-logo.png + koKoolBarDown.png koKoolBarUp.png + koPortrait.png koLandscape.png + DESTINATION ${DATA_INSTALL_DIR}/koffice/pics +) + +install( + FILES + kounitdoublecombobox.png kounitdoublelineedit.png + kounitdoublespinbox2.png kounitdoublespincombobox.png + DESTINATION ${DATA_INSTALL_DIR}/kofficewidgets/pics +) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/lib/kopainter/CMakeLists.txt b/lib/kopainter/CMakeLists.txt new file mode 100644 index 000000000..0bb476ce7 --- /dev/null +++ b/lib/kopainter/CMakeLists.txt @@ -0,0 +1,33 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_SOURCE_DIR}/lib/kofficeui + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(kopainter SHARED AUTOMOC + SOURCES + svgpathparser.cpp koColor.cpp koFrameButton.cpp koColorSlider.cpp + koColorChooser.cpp koIconChooser.cpp kogradientmanager.cpp + ko_color_wheel.cpp ko_gray_widget.cpp ko_hsv_widget.cpp + ko_rgb_widget.cpp ko_cmyk_widget.cpp + LINK kofficeui-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/lib/kopalette/CMakeLists.txt b/lib/kopalette/CMakeLists.txt new file mode 100644 index 000000000..3ac6edde9 --- /dev/null +++ b/lib/kopalette/CMakeLists.txt @@ -0,0 +1,33 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(kopalette SHARED AUTOMOC + SOURCES + kopalette.cpp kopalettemanager.cpp + kotoolboxpalette.cpp kotabpalette.cpp + LINK kofficecore-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +### Headers ################################################################### +install(FILES kopalettemanager.h DESTINATION ${INCLUDE_INSTALL_DIR}/KOffice) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/lib/koproperty/CMakeLists.txt b/lib/koproperty/CMakeLists.txt new file mode 100644 index 000000000..a22303efa --- /dev/null +++ b/lib/koproperty/CMakeLists.txt @@ -0,0 +1,36 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_SOURCE_DIR}/lib/koproperty/editors + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(koproperty SHARED AUTOMOC + SOURCES + property.cpp customproperty.cpp set.cpp editor.cpp + editoritem.cpp factory.cpp widget.cpp + LINK tdecore-shared tdeui-shared kopropertyeditors-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +add_subdirectory(editors) + +### Data ###################################################################### +tde_install_icons() + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/lib/koproperty/editors/CMakeLists.txt b/lib/koproperty/editors/CMakeLists.txt new file mode 100644 index 000000000..b201dc53f --- /dev/null +++ b/lib/koproperty/editors/CMakeLists.txt @@ -0,0 +1,33 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_SOURCE_DIR}/lib/koproperty/editors + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(kopropertyeditors SHARED AUTOMOC + SOURCES + booledit.cpp coloredit.cpp combobox.cpp cursoredit.cpp dateedit.cpp + datetimeedit.cpp dummywidget.cpp fontedit.cpp linestyledit.cpp + pixmapedit.cpp pointedit.cpp rectedit.cpp sizeedit.cpp sizepolicyedit.cpp + spinbox.cpp stringedit.cpp stringlistedit.cpp symbolcombo.cpp timeedit.cpp + urledit.cpp + LINK tdeui-shared tdeio-shared +) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/lib/kotext/CMakeLists.txt b/lib/kotext/CMakeLists.txt new file mode 100644 index 000000000..afc0688c9 --- /dev/null +++ b/lib/kotext/CMakeLists.txt @@ -0,0 +1,57 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/store + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_SOURCE_DIR}/lib/kofficeui + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(kotext SHARED AUTOMOC + SOURCES + KoComplexText.cpp KoRichText.cpp + KoTextZoomHandler.cpp KoBorder.cpp + KoTextFormat.cpp KoParagCounter.cpp KoStyleCollection.cpp KoTextCommand.cpp + KoTextParag.cpp KoTextDocument.cpp KoTextFormatter.cpp KoParagLayout.cpp + KoTextObject.cpp KoTextView.cpp KoAutoFormat.cpp KoAutoFormatDia.cpp + KoParagDia.cpp KoVariable.cpp KoCustomVariablesDia.cpp + KoChangeCaseDia.cpp KoStyleManager.cpp KoSearchDia.cpp + timedateformatwidget.ui TimeFormatWidget.cpp DateFormatWidget.cpp + kofonttabbase.ui KoFontTab.cpp KoTextBookmark.cpp + kohighlightingtabbase.ui KoHighlightingTab.cpp + kodecorationtabbase.ui KoDecorationTab.cpp + kolayouttabbase.ui KoLayoutTab.cpp kolanguagetabbase.ui KoLanguageTab.cpp + KoFontDiaPreview.cpp KoCompletionDia.cpp KoCompletionBase.ui + KoTextViewIface.skel KoTextViewIface.cpp KoFontDia.cpp KoBgSpellCheck.cpp + KoCommentDia.cpp KoSpell.cpp KoCreateStyleDia.cpp KoTextCustomItem.cpp + KoImportStyleDia.cpp KoTextIterator.cpp KoOasisContext.cpp KoListStyleStack.cpp + KoUserStyle.cpp KoUserStyleCollection.cpp KoParagStyle.cpp KoParagDecorationTab.ui + LINK kofficeui-shared kohyphen-static tdespell2-shared tdeutils-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +add_subdirectory(kohyphen) + +### Headers ################################################################### +# install( +# FILES +# KoTextZoomHandler.h KoTextFormat.h KoParagCounter.h KoStyleCollection.h +# KoTextDocument.h KoBgSpellCheck.h KoCommentDia.h KoCreateStyleDia.h +# DESTINATION ${INCLUDE_INSTALL_DIR}/KOffice +# ) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/lib/kotext/KoAutoFormat.cpp b/lib/kotext/KoAutoFormat.cpp index 3306798d1..46d601208 100644 --- a/lib/kotext/KoAutoFormat.cpp +++ b/lib/kotext/KoAutoFormat.cpp @@ -335,7 +335,7 @@ void KoAutoFormat::readConfig(bool force) if( beginDoubleQuote.isEmpty()) { if( m_typographicDefaultDoubleQuotes.begin.isNull()) - m_typographicDoubleQuotes.begin = TQChar('«'); + m_typographicDoubleQuotes.begin = TQChar('�'); else m_typographicDoubleQuotes.begin = m_typographicDefaultDoubleQuotes.begin; } @@ -345,7 +345,7 @@ void KoAutoFormat::readConfig(bool force) if( endDoubleQuote.isEmpty() ) { if( m_typographicDefaultDoubleQuotes.end.isNull()) - m_typographicDoubleQuotes.end = TQChar('»'); + m_typographicDoubleQuotes.end = TQChar('�'); else m_typographicDoubleQuotes.end = m_typographicDefaultDoubleQuotes.end; } @@ -1654,11 +1654,11 @@ KCommand * KoAutoFormat::doAutoReplaceNumber( KoTextCursor* textEditCursor, KoTe textdoc->setSelectionEnd( KoTextDocument::HighlightSelection, &cursor ); TQString replacement; if( word == TQString("1/2") ) - replacement=TQString("½"); + replacement=TQString("�"); else if (word == TQString("1/4") ) - replacement=TQString("¼"); + replacement=TQString("�"); else if (word == TQString("3/4") ) - replacement=TQString("¾"); + replacement=TQString("�"); TQString cmdName = i18n("Autocorrect for Fraction"); KCommand *cmd =txtObj->replaceSelectionCommand( textEditCursor, replacement, cmdName, diff --git a/lib/kotext/KoAutoFormatDia.cpp b/lib/kotext/KoAutoFormatDia.cpp index 248415023..1383bec54 100644 --- a/lib/kotext/KoAutoFormatDia.cpp +++ b/lib/kotext/KoAutoFormatDia.cpp @@ -286,7 +286,7 @@ void KoAutoFormatDia::setupTab1() cbAutoReplaceNumber=new TQCheckBox( tab1 ); cbAutoReplaceNumber->setText( i18n( "We add the 1/2 char at the %1", "Re&place 1/2... with %1..." ) - .arg( TQString( "½" ) ) ); + .arg( TQString( "�" ) ) ); TQWhatsThis::add( cbAutoReplaceNumber, i18n( "Most standard fraction notations will be converted when available" ) ); diff --git a/lib/kotext/kohyphen/CMakeLists.txt b/lib/kotext/kohyphen/CMakeLists.txt new file mode 100644 index 000000000..a9718a46c --- /dev/null +++ b/lib/kotext/kohyphen/CMakeLists.txt @@ -0,0 +1,41 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_SOURCE_DIR}/lib/kofficeui + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(kohyphen STATIC_PIC AUTOMOC + SOURCES hnjalloc.c hyphen.c kohyphen.cpp + LINK tdecore-shared +) + +### Programs ################################################################## +if (BUILD_TESTS) + tde_add_executable(kohyphentest AUTOMOC + SOURCES kohyphentest.cpp + LINK + tdecore-shared tdeui-shared tdefx-shared tdeio-shared + tdetexteditor kohyphen-static + ) +endif() + +### Data ###################################################################### +add_subdirectory(hyphdicts) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/lib/kotext/kohyphen/hyphdicts/CMakeLists.txt b/lib/kotext/kohyphen/hyphdicts/CMakeLists.txt new file mode 100644 index 000000000..95f8bb963 --- /dev/null +++ b/lib/kotext/kohyphen/hyphdicts/CMakeLists.txt @@ -0,0 +1,18 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +### Data ###################################################################### +install( + FILES + dicts.xml + hyph_cs.dic hyph_en.dic hyph_hu.dic hyph_uk.dic hyph_da.dic hyph_de.dic + hyph_en_CA.dic hyph_es.dic hyph_fr.dic hyph_it.dic hyph_nl.dic hyph_pt_BR.dic + hyph_pt.dic hyph_pt_PT.dic hyph_ru.dic hyph_sk.dic hyph_sv.dic hyph_sl.dic + DESTINATION ${DATA_INSTALL_DIR}/koffice/hyphdicts +) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/lib/kotext/kohyphen/kohyphentest.cpp b/lib/kotext/kohyphen/kohyphentest.cpp index 0f083631e..5a0d3ac0e 100644 --- a/lib/kotext/kohyphen/kohyphentest.cpp +++ b/lib/kotext/kohyphen/kohyphentest.cpp @@ -6,6 +6,7 @@ #include #include +#include #include "kohyphen.h" #include @@ -40,7 +41,8 @@ void check_hyphenation( const TQStringList& tests, const TQStringList& results, int main (int argc, char ** argv) { - TDEApplication app(argc, argv, "KoHyphenator test"); + TDECmdLineArgs::init(argc, argv, "kohyphentest", "KoHyphenator test", 0, 0, true); + TDEApplication app; try { hypher = KoHyphenator::self(); @@ -54,8 +56,12 @@ int main (int argc, char ** argv) TQStringList::ConstIterator it, itres; //testing Czech language, this text is in UTF-8! - TQStringList cs_tests = TQStringList() << "ŽluÅ¥ouÄký" << "kůň" << "úpÄ›l" << - "Äábelské" << "ódy"; + TQStringList cs_tests; + cs_tests << TQString::fromLocal8Bit("ŽluÅ¥ouÄký") + << TQString::fromLocal8Bit("kůň") + << TQString::fromLocal8Bit("úpÄ›l") + << TQString::fromLocal8Bit("Äábelské") + << TQString::fromLocal8Bit("ódy"); for ( it = cs_tests.begin(); it != cs_tests.end() ; ++it ) kdDebug() << (*it) << " hyphenates like this: " << hypher->hyphenate((*it), "cs") << endl; diff --git a/lib/kross/CMakeLists.txt b/lib/kross/CMakeLists.txt new file mode 100644 index 000000000..e083e027c --- /dev/null +++ b/lib/kross/CMakeLists.txt @@ -0,0 +1,17 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +tde_conditional_add_subdirectory(WITH_KROSS_PYTHON python) +tde_conditional_add_subdirectory(WITH_KROSS_RUBY ruby) + +add_subdirectory(api) +add_subdirectory(main) +add_subdirectory(runner) + +if (BUILD_TESTS) + add_subdirectory(test) +endif() \ No newline at end of file diff --git a/lib/kross/ConfigureChecks.cmake b/lib/kross/ConfigureChecks.cmake new file mode 100644 index 000000000..5949ee220 --- /dev/null +++ b/lib/kross/ConfigureChecks.cmake @@ -0,0 +1,119 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +### Python #################################################################### +if (WITH_KROSS_PYTHON) +# find_package(Python3 COMPONENTS Interpreter Development) +# if (NOT Python3_FOUND) +# message(WARNING "Python developement files were not found, Python scripting support for " +# "KOffice will not be built. If you don't need Python scripting, you " +# "can ignore this message.") + message(WARNING "The Python bindings of Kross don't support Python3." + "Python scripting support for KOffice will not be built. If you don't " + "need Python scripting, you can ignore this message.") + set(WITH_KROSS_PYTHON OFF) +# endif() +endif() + + +if (WITH_KROSS_RUBY) + find_program(RUBY ruby) + if (NOT RUBY) + message(WARNING "The Ruby executable was not found. " + "Ruby scripting support for KOffice will not be built. If you don't " + "need Ruby scripting, you can ignore this message.") + set(WITH_KROSS_RUBY OFF) + else() + execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(MAJOR))" + OUTPUT_VARIABLE RUBY_MAJOR OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(MINOR))" + OUTPUT_VARIABLE RUBY_MINOR OUTPUT_STRIP_TRAILING_WHITESPACE) + + execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(archdir))" + OUTPUT_VARIABLE RUBY_ARCHDIR OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(sitearchdir))" + OUTPUT_VARIABLE RUBY_SITEARCHDIR OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(sitedir))" + OUTPUT_VARIABLE RUBY_SITEDIR OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(libdir))" + OUTPUT_VARIABLE RUBY_LIBDIR OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(sitelibdir))" + OUTPUT_VARIABLE RUBY_SITELIBDIR OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubylibdir))" + OUTPUT_VARIABLE RUBY_RUBYLIBDIR OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(LIBRUBYARG_SHARED))" + OUTPUT_VARIABLE RUBY_LIBRUBYARG OUTPUT_STRIP_TRAILING_WHITESPACE) + + ### + if (RUBY_LIBRUBYARG) + set(RUBY_ENABLESHARED ON) + else() + set(RUBY_ENABLESHARED OFF) + endif() + + ### + set(RUBY_SERIES "${RUBY_MAJOR}.${RUBY_MINOR}") + set(RUBY_VERSION_DEFS "") + + if (RUBY_SERIES VERSION_GREATER_EQUAL "1.9") + set(HAVE_RUBY_1_9 1) + set(RUBY_VERSION_DEFS "${RUBY_VERSION_DEFS} -DHAVE_RUBY_1_9") + endif() + + if (RUBY_SERIES VERSION_GREATER_EQUAL "3.0") + set(HAVE_RUBY_3 1) + set(RUBY_VERSION_DEFS "${RUBY_VERSION_DEFS} -DHAVE_RUBY_3") + endif() + + ### + execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.key?(%q(rubyhdrdir))" + OUTPUT_VARIABLE RUBY_HAS_INCLUDEDIR OUTPUT_STRIP_TRAILING_WHITESPACE) + + if (RUBY_HAS_INCLUDEDIR STREQUAL "true") + execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubyhdrdir))" + OUTPUT_VARIABLE RUBY_INCLUDEDIR OUTPUT_STRIP_TRAILING_WHITESPACE) + + execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.key?(%q(rubyarchhdrdir))" + OUTPUT_VARIABLE RUBY_HAS_ARCHINCLUDEDIR OUTPUT_STRIP_TRAILING_WHITESPACE) + + if (RUBY_HAS_ARCHINCLUDEDIR STREQUAL "true") + execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubyarchhdrdir))" + OUTPUT_VARIABLE RUBY_ARCHINCLUDEDIR OUTPUT_STRIP_TRAILING_WHITESPACE) + else() + execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(arch))" + OUTPUT_VARIABLE RUBY_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) + set(RUBY_ARCHINCLUDEDIR "${RUBY_INCLUDEDIR}/${RUBY_ARCH}") + endif() + + set(RUBY_CFLAGS "-I${RUBY_INCLUDEDIR} -I${RUBY_ARCHINCLUDEDIR}") + else() + execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(archdir))" + OUTPUT_VARIABLE RUBY_INCLUDEDIR OUTPUT_STRIP_TRAILING_WHITESPACE) + set(RUBY_CFLAGS "-I${RUBY_INCLUDEDIR}") + message("set RUBY_CFLAGS 2 ${RUBY_CFLAGS}") + endif() + endif() + + ### + if (NOT EXISTS "${RUBY_INCLUDEDIR}/ruby/config.h" AND + NOT EXISTS "${RUBY_ARCHINCLUDEDIR}/ruby/config.h") + message(WARNING "Ruby development files were not found, or Ruby <= 1.8.1 was found, " + "Ruby scripting support for KOffice will not be built. If you don't " + "need Ruby scripting, you can ignore this message.") + set(WITH_KROSS_RUBY OFF) + else() + message(STATUS "Ruby executable: ${RUBY}") + message(STATUS "Ruby archdir: ${RUBY_ARCHDIR}") + message(STATUS "Ruby sitearchdir: ${RUBY_SITEARCHDIR}") + message(STATUS "Ruby sitedir: ${RUBY_SITEDIR}") + message(STATUS "Ruby sitelibdir: ${RUBY_SITELIBDIR}") + message(STATUS "Ruby libdir: ${RUBY_LIBDIR}") + message(STATUS "Ruby includedir: ${RUBY_INCLUDEDIR}") + message(STATUS "Ruby librubyarg: ${RUBY_LIBRUBYARG}") + message(STATUS "Ruby cflags: ${RUBY_CFLAGS}") + endif() +endif() \ No newline at end of file diff --git a/lib/kross/api/CMakeLists.txt b/lib/kross/api/CMakeLists.txt new file mode 100644 index 000000000..077b3bebf --- /dev/null +++ b/lib/kross/api/CMakeLists.txt @@ -0,0 +1,38 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(libkrossapi SHARED AUTOMOC + SOURCES + object.cpp variant.cpp list.cpp dict.cpp exception.cpp callable.cpp + eventaction.cpp eventsignal.cpp eventslot.cpp eventscript.cpp + qtobject.cpp script.cpp interpreter.cpp + LINK + tdecore-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +### Headers ################################################################### +install( + FILES + callable.h class.h dict.h eventaction.h event.h eventscript.h eventsignal.h + eventslot.h exception.h function.h interpreter.h list.h module.h object.h + proxy.h qtobject.h script.h value.h variant.h + DESTINATION ${INCLUDE_INSTALL_DIR}/kross/api +) \ No newline at end of file diff --git a/lib/kross/main/CMakeLists.txt b/lib/kross/main/CMakeLists.txt new file mode 100644 index 000000000..3eee58de6 --- /dev/null +++ b/lib/kross/main/CMakeLists.txt @@ -0,0 +1,39 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kross/ + ${CMAKE_BINARY_DIR}/lib/kross/ + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(libkrossmain SHARED AUTOMOC + SOURCES + krossconfig.cpp mainmodule.cpp scriptcontainer.cpp manager.cpp + scriptaction.cpp scriptguiclient.cpp wdgscriptsmanagerbase.ui + wdgscriptsmanager.cpp + LINK + tdecore-shared tdeio-shared tdeui-shared tdenewstuff-shared + libkrossapi-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +### Headers ################################################################### +install( + FILES + krossconfig.h mainmodule.h manager.h scriptaction.h scriptcontainer.h + scriptguiclient.h wdgscriptsmanager.h + DESTINATION ${INCLUDE_INSTALL_DIR}/KOffice +) \ No newline at end of file diff --git a/lib/kross/ruby/CMakeLists.txt b/lib/kross/ruby/CMakeLists.txt new file mode 100644 index 000000000..4ec25f67d --- /dev/null +++ b/lib/kross/ruby/CMakeLists.txt @@ -0,0 +1,35 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kross + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} + ${RUBY_INCLUDEDIR} + ${RUBY_INCLUDEDIR}/ruby + ${RUBY_ARCHINCLUDEDIR} + ${RUBY_ARCHINCLUDEDIR}/ruby +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +add_compile_options(${RUBY_LIBRUBYARG}) + +### Libraries ################################################################# +tde_add_kpart(krossruby SHARED AUTOMOC + SOURCES + rubyinterpreter.cpp rubyextension.cpp rubyscript.cpp rubymodule.cpp + rubywrapper.c + LINK + tdecore-shared libkrossapi-shared libkrossmain-shared + DESTINATION ${PLUGIN_INSTALL_DIR} +) \ No newline at end of file diff --git a/lib/kross/runner/CMakeLists.txt b/lib/kross/runner/CMakeLists.txt new file mode 100644 index 000000000..7577d32e4 --- /dev/null +++ b/lib/kross/runner/CMakeLists.txt @@ -0,0 +1,27 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Programs ################################################################## +tde_add_executable(krossrunner AUTOMOC + SOURCES main.cpp + LINK + tdecore-shared tdeui-shared tdefx-shared tdeio-shared + tdetexteditor-shared libkrossapi-shared libkrossmain-shared + DESTINATION ${BIN_INSTALL_DIR} +) \ No newline at end of file diff --git a/lib/kross/test/CMakeLists.txt b/lib/kross/test/CMakeLists.txt new file mode 100644 index 000000000..7068c6f54 --- /dev/null +++ b/lib/kross/test/CMakeLists.txt @@ -0,0 +1,27 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Programs ################################################################## +tde_add_executable(krosstest AUTOMOC + SOURCES + testobject.cpp testaction.cpp testplugin.cpp testwindow.cpp main.cpp + LINK + tdecore-shared tdeui-shared tdefx-shared dcop-shared tdetexteditor-shared + libkrossapi-shared libkrossmain-shared +) \ No newline at end of file diff --git a/lib/kwmf/CMakeLists.txt b/lib/kwmf/CMakeLists.txt new file mode 100644 index 000000000..6a4c9a5f3 --- /dev/null +++ b/lib/kwmf/CMakeLists.txt @@ -0,0 +1,36 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(kwmf SHARED AUTOMOC + SOURCES kwmf.cpp qwmf.cpp + LINK tdecore-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +tde_add_library(kowmf SHARED AUTOMOC + SOURCES + kowmfreadprivate.cpp kowmfstack.cpp + kowmfread.cpp kowmfwrite.cpp kowmfpaint.cpp + LINK tdecore-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/lib/store/CMakeLists.txt b/lib/store/CMakeLists.txt new file mode 100644 index 000000000..6d8459081 --- /dev/null +++ b/lib/store/CMakeLists.txt @@ -0,0 +1,34 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kofficecore + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +tde_add_library(kstore SHARED AUTOMOC + SOURCES + KoStore.cpp KoTarStore.cpp KoDirectoryStore.cpp KoZipStore.cpp + KoStoreDrag.cpp KoStoreBase.cpp KoXmlWriter.cpp + LINK tdecore-shared tdeui-shared tdeio-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +install( + FILES KoStore.h KoStoreDevice.h KoXmlWriter.h + DESTINATION ${INCLUDE_INSTALL_DIR}/KOffice +) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/pics/CMakeLists.txt b/pics/CMakeLists.txt new file mode 100644 index 000000000..bb28270cf --- /dev/null +++ b/pics/CMakeLists.txt @@ -0,0 +1,11 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +### Data ###################################################################### +add_subdirectory(crystalsvg) + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/pics/crystalsvg/CMakeLists.txt b/pics/crystalsvg/CMakeLists.txt new file mode 100644 index 000000000..f3304540b --- /dev/null +++ b/pics/crystalsvg/CMakeLists.txt @@ -0,0 +1,11 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +### Data ###################################################################### +tde_install_icons() + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/servicetypes/CMakeLists.txt b/servicetypes/CMakeLists.txt new file mode 100644 index 000000000..05744b2d8 --- /dev/null +++ b/servicetypes/CMakeLists.txt @@ -0,0 +1,18 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +### Data ###################################################################### +foreach(DESKTOP_FILE kofficepart.desktop kofilter.desktop koplugin.desktop + kochart.desktop kofilterwrapper.desktop) + tde_create_translated_desktop( + SOURCE ${DESKTOP_FILE} + DESTINATION ${SERVICES_INSTALL_DIR} + PO_DIR koffice-desktops + ) +endforeach() + +# kate: indent-width 2; replace-tabs true; \ No newline at end of file diff --git a/templates/CMakeLists.txt b/templates/CMakeLists.txt new file mode 100644 index 000000000..5c3b7f4fb --- /dev/null +++ b/templates/CMakeLists.txt @@ -0,0 +1,22 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +set(TEMPLATE_SUBDIR "Normal") +file(GLOB DESKTOP_FILES *.desktop) +file(GLOB KWORD_TEMPLATES *.kwt) + +install( + FILES + Presentation.desktop TextDocument.desktop SpreadSheet.desktop + Illustration.desktop + DESTINATION ${TEMPLATES_INSTALL_DIR} +) + +install( + FILES Presentation.kpt TextDocument.kwt SpreadSheet.kst Illustration.karbon + DESTINATION ${TEMPLATES_INSTALL_DIR}/.source +) \ No newline at end of file