diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -129,6 +129,8 @@ option(ENABLE_FORECASTVIEW "Enable forecast view" ON) add_feature_info("Forecast view" ENABLE_FORECASTVIEW "It adds possibility to calculate forecasts.") +option(ENABLE_REPORTSVIEW "Enable reports view" ON) +add_feature_info("Reports view" ENABLE_REPORTSVIEW "It adds possibility to display chart and table reports.") cmake_dependent_option(ENABLE_SQLSTORAGE "Enable SQL storage support." ON "Qt5Sql_FOUND" OFF) diff --git a/kmymoney/CMakeLists.txt b/kmymoney/CMakeLists.txt --- a/kmymoney/CMakeLists.txt +++ b/kmymoney/CMakeLists.txt @@ -29,6 +29,8 @@ ${CMAKE_CURRENT_BINARY_DIR}/models/ ${CMAKE_CURRENT_SOURCE_DIR}/icons/ ${CMAKE_CURRENT_BINARY_DIR}/icons/ + ${CMAKE_CURRENT_SOURCE_DIR}/menus/ + ${CMAKE_CURRENT_BINARY_DIR}/menus/ ${CMAKE_CURRENT_BINARY_DIR}/payeeidentifier/ibanandbic/widgets/ # TODO: this line should be moved to the target it belongs ${CMAKE_CURRENT_BINARY_DIR}/payeeidentifier/ibanandbic/ ${CMAKE_CURRENT_BINARY_DIR}/payeeidentifier/nationalaccount/ @@ -50,6 +52,7 @@ add_subdirectory( misc ) add_subdirectory( payeeidentifier ) add_subdirectory( icons ) +add_subdirectory( menus ) if(BUILD_TESTING) add_subdirectory( tests ) endif() @@ -126,6 +129,7 @@ converter models kmm_settings + kmm_menus kmm_widgets kmm_mymoney kgpgfile diff --git a/kmymoney/dialogs/CMakeLists.txt b/kmymoney/dialogs/CMakeLists.txt --- a/kmymoney/dialogs/CMakeLists.txt +++ b/kmymoney/dialogs/CMakeLists.txt @@ -36,7 +36,6 @@ editpersonaldatadlg.cpp kpayeereassigndlg.cpp ktagreassigndlg.cpp - kreportconfigurationfilterdlg.cpp kselecttransactionsdlg.cpp ksplittransactiondlg.cpp ktemplateexportdlg.cpp @@ -73,7 +72,6 @@ ktemplateexportdlg.ui kupdatestockpricedlg.ui konlinetransferform.ui - kreportconfigurationfilterdlg.ui ) ki18n_wrap_ui(libdialogs_a_SOURCES ${dialogs_UI} ) diff --git a/kmymoney/dialogs/settings/CMakeLists.txt b/kmymoney/dialogs/settings/CMakeLists.txt --- a/kmymoney/dialogs/settings/CMakeLists.txt +++ b/kmymoney/dialogs/settings/CMakeLists.txt @@ -9,7 +9,6 @@ ksettingsonlinequotes.cpp ksettingsregister.cpp ksettingsschedules.cpp - ksettingsreports.cpp ksettingskmymoney.cpp ksettingsplugins.cpp ) @@ -24,7 +23,6 @@ ksettingsonlinequotes.ui ksettingsregister.ui ksettingsschedules.ui - ksettingsreports.ui ) ki18n_wrap_ui(libsettings_a_SOURCES ${libsettings_a_UI} ) diff --git a/kmymoney/dialogs/settings/ksettingskmymoney.h b/kmymoney/dialogs/settings/ksettingskmymoney.h --- a/kmymoney/dialogs/settings/ksettingskmymoney.h +++ b/kmymoney/dialogs/settings/ksettingskmymoney.h @@ -1,7 +1,7 @@ /* * This file is part of KMyMoney, A Personal Finance Manager by KDE * Copyright (C) 2016 Christian Dávid - * (C) 2017 by Łukasz Wojniłowicz + * (C) 2017, 2018 by Łukasz Wojniłowicz * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License diff --git a/kmymoney/dialogs/settings/ksettingskmymoney.cpp b/kmymoney/dialogs/settings/ksettingskmymoney.cpp --- a/kmymoney/dialogs/settings/ksettingskmymoney.cpp +++ b/kmymoney/dialogs/settings/ksettingskmymoney.cpp @@ -1,7 +1,7 @@ /* * This file is part of KMyMoney, A Personal Finance Manager by KDE * Copyright (C) 2016 Christian Dávid - * (C) 2017 by Łukasz Wojniłowicz + * (C) 2017, 2018 by Łukasz Wojniłowicz * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -32,7 +32,6 @@ #include "ksettingsschedules.h" #include "ksettingsonlinequotes.h" #include "ksettingshome.h" -#include "ksettingsreports.h" #include "ksettingsplugins.h" #include "icons.h" @@ -52,15 +51,13 @@ const auto fontsPage = new KSettingsFonts(); const auto iconsPage = new KSettingsIcons(); const auto onlineQuotesPage = new KSettingsOnlineQuotes(); - const auto reportsPage = new KSettingsReports(); const auto pluginsPage = new KSettingsPlugins(); addPage(generalPage, i18nc("General settings", "General"), Icons::get(Icon::SystemRun).name()); addPage(homePage, i18n("Home"), Icons::get(Icon::ViewHome).name()); addPage(registerPage, i18nc("Ledger view settings", "Ledger"), Icons::get(Icon::ViewFinancialList).name()); addPage(schedulesPage, i18n("Scheduled\u2028transactions"), Icons::get(Icon::ViewSchedules).name()); addPage(onlineQuotesPage, i18n("Online Quotes"), Icons::get(Icon::PreferencesNetwork).name()); - addPage(reportsPage, i18nc("Report settings", "Reports"), Icons::get(Icon::ViewReports).name()); addPage(encryptionPage, i18n("Encryption"), Icons::get(Icon::Kgpg).name()); addPage(colorsPage, i18n("Colors"), Icons::get(Icon::PreferencesColor).name()); addPage(fontsPage, i18n("Fonts"), Icons::get(Icon::PreferencesFont).name()); diff --git a/kmymoney/kmymoney.h b/kmymoney/kmymoney.h --- a/kmymoney/kmymoney.h +++ b/kmymoney/kmymoney.h @@ -2,7 +2,7 @@ kmymoney.h ------------------- copyright : (C) 2000-2001 by Michael Edwardes - (C) 2017 by Łukasz Wojniłowicz + (C) 2017, 2018 by Łukasz Wojniłowicz ***************************************************************************/ diff --git a/kmymoney/kmymoney.cpp b/kmymoney/kmymoney.cpp --- a/kmymoney/kmymoney.cpp +++ b/kmymoney/kmymoney.cpp @@ -3,7 +3,7 @@ ------------------- copyright : (C) 2000 by Michael Edwardes (C) 2007 by Thomas Baumgart - (C) 2017 by Łukasz Wojniłowicz + (C) 2017, 2018 by Łukasz Wojniłowicz ****************************************************************************/ @@ -201,9 +201,6 @@ #define RECOVER_KEY_EXPIRATION_WARNING 30 #endif -QHash pActions; -QHash pMenus; - enum backupStateE { BACKUP_IDLE = 0, BACKUP_MOUNTING, diff --git a/kmymoney/menus/CMakeLists.txt b/kmymoney/menus/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/kmymoney/menus/CMakeLists.txt @@ -0,0 +1,14 @@ +set (menus_SOURCES + menuenums.cpp +) + +add_library(kmm_menus SHARED ${menus_SOURCES}) +generate_export_header(kmm_menus) +target_link_libraries(kmm_menus PRIVATE Qt5::Widgets Qt5::Core) + +set_target_properties(kmm_menus PROPERTIES + VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} +) + +install(TARGETS kmm_menus + ${INSTALL_TARGETS_DEFAULT_ARGS} ) diff --git a/kmymoney/menuenums.h b/kmymoney/menus/menuenums.h rename from kmymoney/menuenums.h rename to kmymoney/menus/menuenums.h --- a/kmymoney/menuenums.h +++ b/kmymoney/menus/menuenums.h @@ -1,7 +1,7 @@ /*************************************************************************** menuenums.h ------------------- - copyright : (C) 2017 by Łukasz Wojniłowicz + copyright : (C) 2017, 2018 by Łukasz Wojniłowicz ***************************************************************************/ @@ -17,7 +17,10 @@ #ifndef MENUENUMS_H #define MENUENUMS_H +#include "kmm_menus_export.h" #include +#include + class QAction; class QMenu; @@ -144,7 +147,7 @@ inline uint qHash(const Menu key, uint seed) { return ::qHash(static_cast(key), seed); } } -extern QHash pActions; -extern QHash pMenus; +KMM_MENUS_EXPORT extern QHash pActions; +KMM_MENUS_EXPORT extern QHash pMenus; #endif diff --git a/kmymoney/plugins/forecast/forecastview.h b/kmymoney/menus/menuenums.cpp rename from kmymoney/plugins/forecast/forecastview.h rename to kmymoney/menus/menuenums.cpp --- a/kmymoney/plugins/forecast/forecastview.h +++ b/kmymoney/menus/menuenums.cpp @@ -1,9 +1,9 @@ /*************************************************************************** - forecastview.h + menuenums.cpp ------------------- - copyright : (C) 2018 by Łukasz Wojniłowicz - email : lukasz.wojnilowicz@gmail.com - ***************************************************************************/ + copyright : (C) 2017, 2018 by Łukasz Wojniłowicz + +***************************************************************************/ /*************************************************************************** * * @@ -14,34 +14,20 @@ * * ***************************************************************************/ -#ifndef FORECASTVIEW_H -#define FORECASTVIEW_H - -// ---------------------------------------------------------------------------- -// KDE Includes +#include "menuenums.h" // ---------------------------------------------------------------------------- // QT Includes -// Project Includes - -#include "kmymoneyplugin.h" - -class KForecastView; +#include -class ForecastView : public KMyMoneyPlugin::Plugin -{ - Q_OBJECT +// ---------------------------------------------------------------------------- +// KDE Includes -public: - explicit ForecastView(QObject *parent, const QVariantList &args); - ~ForecastView() override; +// ---------------------------------------------------------------------------- +// Project Includes - void plug() override; - void unplug() override; +QHash pActions; +QHash pMenus; -private: - KForecastView* m_view; -}; -#endif diff --git a/kmymoney/plugins/CMakeLists.txt b/kmymoney/plugins/CMakeLists.txt --- a/kmymoney/plugins/CMakeLists.txt +++ b/kmymoney/plugins/CMakeLists.txt @@ -8,10 +8,7 @@ add_subdirectory( icalendar ) add_subdirectory( reconciliationreport ) add_subdirectory( checkprinting ) - -if(ENABLE_FORECASTVIEW) - add_subdirectory(forecast) -endif() +add_subdirectory( views ) if(ENABLE_SQLSTORAGE) add_subdirectory(sql) diff --git a/kmymoney/plugins/views/CMakeLists.txt b/kmymoney/plugins/views/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/kmymoney/plugins/views/CMakeLists.txt @@ -0,0 +1,7 @@ +if(ENABLE_FORECASTVIEW) + add_subdirectory(forecast) +endif() + +if(ENABLE_REPORTSVIEW) + add_subdirectory(reports) +endif() diff --git a/kmymoney/plugins/forecast/.krazy b/kmymoney/plugins/views/forecast/.krazy rename from kmymoney/plugins/forecast/.krazy rename to kmymoney/plugins/views/forecast/.krazy diff --git a/kmymoney/plugins/forecast/CMakeLists.txt b/kmymoney/plugins/views/forecast/CMakeLists.txt rename from kmymoney/plugins/forecast/CMakeLists.txt rename to kmymoney/plugins/views/forecast/CMakeLists.txt diff --git a/kmymoney/plugins/forecast/fixedcolumntreeview.h b/kmymoney/plugins/views/forecast/fixedcolumntreeview.h rename from kmymoney/plugins/forecast/fixedcolumntreeview.h rename to kmymoney/plugins/views/forecast/fixedcolumntreeview.h diff --git a/kmymoney/plugins/forecast/fixedcolumntreeview.cpp b/kmymoney/plugins/views/forecast/fixedcolumntreeview.cpp rename from kmymoney/plugins/forecast/fixedcolumntreeview.cpp rename to kmymoney/plugins/views/forecast/fixedcolumntreeview.cpp diff --git a/kmymoney/plugins/forecast/forecastview.h b/kmymoney/plugins/views/forecast/forecastview.h copy from kmymoney/plugins/forecast/forecastview.h copy to kmymoney/plugins/views/forecast/forecastview.h diff --git a/kmymoney/plugins/forecast/forecastview.cpp b/kmymoney/plugins/views/forecast/forecastview.cpp rename from kmymoney/plugins/forecast/forecastview.cpp rename to kmymoney/plugins/views/forecast/forecastview.cpp diff --git a/kmymoney/plugins/forecast/forecastview.json.in b/kmymoney/plugins/views/forecast/forecastview.json.in rename from kmymoney/plugins/forecast/forecastview.json.in rename to kmymoney/plugins/views/forecast/forecastview.json.in diff --git a/kmymoney/plugins/forecast/forecastviewsettings.kcfg b/kmymoney/plugins/views/forecast/forecastviewsettings.kcfg rename from kmymoney/plugins/forecast/forecastviewsettings.kcfg rename to kmymoney/plugins/views/forecast/forecastviewsettings.kcfg diff --git a/kmymoney/plugins/forecast/forecastviewsettings.kcfgc b/kmymoney/plugins/views/forecast/forecastviewsettings.kcfgc rename from kmymoney/plugins/forecast/forecastviewsettings.kcfgc rename to kmymoney/plugins/views/forecast/forecastviewsettings.kcfgc diff --git a/kmymoney/plugins/forecast/forecastviewsettings.ui b/kmymoney/plugins/views/forecast/forecastviewsettings.ui rename from kmymoney/plugins/forecast/forecastviewsettings.ui rename to kmymoney/plugins/views/forecast/forecastviewsettings.ui diff --git a/kmymoney/plugins/forecast/kcm_forecastview.h b/kmymoney/plugins/views/forecast/kcm_forecastview.h rename from kmymoney/plugins/forecast/kcm_forecastview.h rename to kmymoney/plugins/views/forecast/kcm_forecastview.h diff --git a/kmymoney/plugins/forecast/kcm_forecastview.cpp b/kmymoney/plugins/views/forecast/kcm_forecastview.cpp rename from kmymoney/plugins/forecast/kcm_forecastview.cpp rename to kmymoney/plugins/views/forecast/kcm_forecastview.cpp diff --git a/kmymoney/plugins/forecast/kcm_forecastview.desktop b/kmymoney/plugins/views/forecast/kcm_forecastview.desktop rename from kmymoney/plugins/forecast/kcm_forecastview.desktop rename to kmymoney/plugins/views/forecast/kcm_forecastview.desktop diff --git a/kmymoney/plugins/forecast/kforecastview.h b/kmymoney/plugins/views/forecast/kforecastview.h rename from kmymoney/plugins/forecast/kforecastview.h rename to kmymoney/plugins/views/forecast/kforecastview.h diff --git a/kmymoney/plugins/forecast/kforecastview.cpp b/kmymoney/plugins/views/forecast/kforecastview.cpp rename from kmymoney/plugins/forecast/kforecastview.cpp rename to kmymoney/plugins/views/forecast/kforecastview.cpp diff --git a/kmymoney/plugins/forecast/kforecastview.ui b/kmymoney/plugins/views/forecast/kforecastview.ui rename from kmymoney/plugins/forecast/kforecastview.ui rename to kmymoney/plugins/views/forecast/kforecastview.ui diff --git a/kmymoney/plugins/forecast/kforecastview_p.h b/kmymoney/plugins/views/forecast/kforecastview_p.h rename from kmymoney/plugins/forecast/kforecastview_p.h rename to kmymoney/plugins/views/forecast/kforecastview_p.h diff --git a/kmymoney/plugins/forecast/ksettingsforecast.h b/kmymoney/plugins/views/forecast/ksettingsforecast.h rename from kmymoney/plugins/forecast/ksettingsforecast.h rename to kmymoney/plugins/views/forecast/ksettingsforecast.h diff --git a/kmymoney/plugins/forecast/ksettingsforecast.cpp b/kmymoney/plugins/views/forecast/ksettingsforecast.cpp rename from kmymoney/plugins/forecast/ksettingsforecast.cpp rename to kmymoney/plugins/views/forecast/ksettingsforecast.cpp diff --git a/kmymoney/plugins/views/reports/CMakeLists.txt b/kmymoney/plugins/views/reports/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/kmymoney/plugins/views/reports/CMakeLists.txt @@ -0,0 +1,89 @@ +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/reportsview.json.in ${CMAKE_CURRENT_BINARY_DIR}/reportsview.json @ONLY) + +set(reportsview_SOURCES + reportsview.cpp + kreportsview.cpp + tocitem.cpp + tocitemgroup.cpp + tocitemreport.cpp + kreportconfigurationfilterdlg.cpp + reporttabimpl.cpp + reportcontrolimpl.cpp + ../../../views/kmymoneywebpage.cpp + ) + +ki18n_wrap_ui(reportsview_SOURCES + kreportconfigurationfilterdlg.ui + reportcontrol.ui + reporttabgeneral.ui + reporttabrowcolquery.ui + reporttabrowcolpivot.ui + reporttabrange.ui + reporttabchart.ui + reporttabcapitalgain.ui + reporttabperformance.ui + ) +# kconfig_add_kcfg_files(reportsview_SOURCES reportsviewsettings.kcfgc) + +kcoreaddons_add_plugin(reportsview + SOURCES ${reportsview_SOURCES} + JSON "${CMAKE_CURRENT_BINARY_DIR}/reportsview.json" + INSTALL_NAMESPACE "kmymoney") + +#kcoreaddons_add_plugin sets LIBRARY_OUTPUT_DIRECTORY to ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${INSTALL_NAMESPACE} +set_target_properties(reportsview + PROPERTIES + LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") + +target_link_libraries(reportsview + PUBLIC + kmm_plugin + KF5::TextWidgets + KF5::KIOCore + KF5::KIOFileWidgets + KF5::KIOWidgets + KF5::KIONTLM + reports + viewbase + kmm_menus +) + +if(ENABLE_WEBENGINE) + target_link_libraries(reportsview PRIVATE Qt5::WebEngineWidgets) +else(ENABLE_WEBENGINE) + target_link_libraries(reportsview PRIVATE KF5::WebKit) +endif(ENABLE_WEBENGINE) + +# the KCM module + +set(kcm_reportsview_PART_SRCS + kcm_reportsview.cpp + ) + +kconfig_add_kcfg_files(kcm_reportsview_PART_SRCS reportsviewsettings.kcfgc) + +ki18n_wrap_ui(kcm_reportsview_PART_SRCS reportsviewsettings.ui) + +kcoreaddons_add_plugin(kcm_reportsview + SOURCES ${kcm_reportsview_PART_SRCS} + JSON "${CMAKE_CURRENT_BINARY_DIR}/kcm_reportsview.json" + INSTALL_NAMESPACE "kmymoney") + +kcoreaddons_desktop_to_json(kcm_reportsview kcm_reportsview.desktop) + +#kcoreaddons_add_plugin sets LIBRARY_OUTPUT_DIRECTORY to ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${INSTALL_NAMESPACE} +set_target_properties(kcm_reportsview + PROPERTIES + LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") + +target_link_libraries(kcm_reportsview + KF5::I18n + KF5::ConfigWidgets + KF5::Completion + KF5::KIOWidgets + KF5::CoreAddons + kmm_settings + ) + +install(FILES kcm_reportsview.desktop + DESTINATION "${SERVICES_INSTALL_DIR}") diff --git a/kmymoney/plugins/forecast/kcm_forecastview.h b/kmymoney/plugins/views/reports/kcm_reportsview.h rename from kmymoney/plugins/forecast/kcm_forecastview.h rename to kmymoney/plugins/views/reports/kcm_reportsview.h --- a/kmymoney/plugins/forecast/kcm_forecastview.h +++ b/kmymoney/plugins/views/reports/kcm_reportsview.h @@ -17,25 +17,37 @@ * You should have received a copy of the GNU General Public License * * along with this program. If not, see * ***************************************************************************/ -#ifndef KCM_FORECASTVIEW_H -#define KCM_FORECASTVIEW_H +#ifndef KCM_REPORTSVIEW_H +#define KCM_REPORTSVIEW_H #include #include -#include "ui_forecastviewsettings.h" +#include -class ForecastViewSettingsWidget : public QWidget, public Ui::ForecastViewSettings +class ReportsViewSettingsWidgetPrivate; +class ReportsViewSettingsWidget : public QWidget { Q_OBJECT + Q_DISABLE_COPY(ReportsViewSettingsWidget) + public: - explicit ForecastViewSettingsWidget(QWidget* parent = nullptr); + explicit ReportsViewSettingsWidget(QWidget* parent = nullptr); + ~ReportsViewSettingsWidget(); + +private: + ReportsViewSettingsWidgetPrivate * const d_ptr; + Q_DECLARE_PRIVATE(ReportsViewSettingsWidget) + +private Q_SLOTS: + void slotCssUrlSelected(const QUrl&); + void slotEditingFinished(); }; -class KCMForecastView : public KCModule +class KCMReportsView : public KCModule { public: - explicit KCMForecastView(QWidget* parent, const QVariantList& args); - ~KCMForecastView(); + explicit KCMReportsView(QWidget* parent, const QVariantList& args); + ~KCMReportsView(); }; #endif diff --git a/kmymoney/dialogs/settings/ksettingsreports.cpp b/kmymoney/plugins/views/reports/kcm_reportsview.cpp rename from kmymoney/dialogs/settings/ksettingsreports.cpp rename to kmymoney/plugins/views/reports/kcm_reportsview.cpp --- a/kmymoney/dialogs/settings/ksettingsreports.cpp +++ b/kmymoney/plugins/views/reports/kcm_reportsview.cpp @@ -1,21 +1,25 @@ /*************************************************************************** - ksettingsreports.cpp - -------------------- - copyright : (C) 2010 by Bernd Gonsior - email : bernd.gonsior@googlemail.com - (C) 2017 by Łukasz Wojniłowicz - ***************************************************************************/ - -/*************************************************************************** + * Copyright 2018 Łukasz Wojniłowicz lukasz.wojnilowicz@gmail.com * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License as * + * published by the Free Software Foundation; either version 2 of * + * the License or (at your option) version 3 or any later version * + * accepted by the membership of KDE e.V. (or its successor approved * + * by the membership of KDE e.V.), which shall act as a proxy * + * defined in Section 14 of version 3 of the license. * * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see * ***************************************************************************/ -#include "ksettingsreports.h" +#include "kcm_reportsview.h" +#include // ---------------------------------------------------------------------------- // QT Includes @@ -26,29 +30,30 @@ // ---------------------------------------------------------------------------- // KDE Includes +#include +#include #include #include #include // ---------------------------------------------------------------------------- // Project Includes -#include "ui_ksettingsreports.h" - +#include "ui_reportsviewsettings.h" #include "kmymoneysettings.h" -class KSettingsReportsPrivate +class ReportsViewSettingsWidgetPrivate { - Q_DISABLE_COPY(KSettingsReportsPrivate) + Q_DISABLE_COPY(ReportsViewSettingsWidgetPrivate) public: - KSettingsReportsPrivate() : - ui(new Ui::KSettingsReports), + ReportsViewSettingsWidgetPrivate() : + ui(new Ui::ReportsViewSettings), m_fileKLineEdit(nullptr) { } - ~KSettingsReportsPrivate() + ~ReportsViewSettingsWidgetPrivate() { delete ui; } @@ -65,8 +70,8 @@ * * @param[in] css css file name * - * @see KSettingsReports#slotCssUrlSelected - * @see KSettingsReports#slotEditingFinished + * @see ReportsViewSettingsWidget#slotCssUrlSelected + * @see ReportsViewSettingsWidget#slotEditingFinished */ void checkCssFile(QString& css) { @@ -113,7 +118,7 @@ KMessageBox::sorry(0, out); } - Ui::KSettingsReports *ui; + Ui::ReportsViewSettings *ui; /** * Old value of css file to avoid warnings * when a signal is emitted @@ -128,31 +133,31 @@ KLineEdit* m_fileKLineEdit; }; -KSettingsReports::KSettingsReports(QWidget* parent) : +ReportsViewSettingsWidget::ReportsViewSettingsWidget(QWidget* parent) : QWidget(parent), - d_ptr(new KSettingsReportsPrivate) + d_ptr(new ReportsViewSettingsWidgetPrivate) { - Q_D(KSettingsReports); + Q_D(ReportsViewSettingsWidget); d->ui->setupUi(this); // keep initial (default) css file in mind d->m_cssFileOld = KMyMoneySettings::cssFileDefault(); - // set default css file in ksettingsreports dialog + // set default css file in ReportsViewSettingsWidget dialog d->ui->kcfg_CssFileDefault->setUrl(QUrl::fromLocalFile(KMyMoneySettings::cssFileDefault())); d->m_fileKLineEdit = d->ui->kcfg_CssFileDefault->lineEdit(); connect(d->ui->kcfg_CssFileDefault, &KUrlRequester::urlSelected, - this, &KSettingsReports::slotCssUrlSelected); + this, &ReportsViewSettingsWidget::slotCssUrlSelected); connect(d->m_fileKLineEdit, &QLineEdit::editingFinished, - this, &KSettingsReports::slotEditingFinished); + this, &ReportsViewSettingsWidget::slotEditingFinished); } -KSettingsReports::~KSettingsReports() +ReportsViewSettingsWidget::~ReportsViewSettingsWidget() { - Q_D(KSettingsReports); + Q_D(ReportsViewSettingsWidget); delete d; } @@ -164,11 +169,11 @@ * * @param[in] cssUrl url of css file * - * @see KSettingsReports#Private#checkCssFile + * @see ReportsViewSettingsWidget#Private#checkCssFile */ -void KSettingsReports::slotCssUrlSelected(const QUrl &cssUrl) +void ReportsViewSettingsWidget::slotCssUrlSelected(const QUrl &cssUrl) { - Q_D(KSettingsReports); + Q_D(ReportsViewSettingsWidget); auto css = cssUrl.toLocalFile(); d->checkCssFile(css); } @@ -180,11 +185,32 @@ * on focus out only, * not when a file is selected with the file chooser. * - * @see KSettingsReports#Private#checkCssFile + * @see ReportsViewSettingsWidget#Private#checkCssFile */ -void KSettingsReports::slotEditingFinished() +void ReportsViewSettingsWidget::slotEditingFinished() { - Q_D(KSettingsReports); + Q_D(ReportsViewSettingsWidget); auto txt = d->m_fileKLineEdit->text(); d->checkCssFile(txt); } + +KCMReportsView::KCMReportsView(QWidget *parent, const QVariantList& args) + : KCModule(parent, args) +{ + ReportsViewSettingsWidget* w = new ReportsViewSettingsWidget(this); + // addConfig(ReportsViewSettings::self(), w); + addConfig(KMyMoneySettings::self(), w); + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + layout->addWidget(w); + setButtons(NoAdditionalButton); + load(); +} + +KCMReportsView::~KCMReportsView() +{ +} + +K_PLUGIN_FACTORY_WITH_JSON(KCMReportsViewFactory, "kcm_reportsview.json", registerPlugin();) + +#include "kcm_reportsview.moc" diff --git a/kmymoney/plugins/views/reports/kcm_reportsview.desktop b/kmymoney/plugins/views/reports/kcm_reportsview.desktop new file mode 100644 --- /dev/null +++ b/kmymoney/plugins/views/reports/kcm_reportsview.desktop @@ -0,0 +1,14 @@ +[Desktop Entry] +Name=Reports view configuration +Icon=report +Type=Service +ServiceTypes=KCModule +Exec=kcmshell5 reportsview +Categories=Qt;KDE;kmymoney; +Keywords=reportsview;kmymoney; +Keywords[x-test]=xxreportsviewxx;xxkmymoneyxx; +X-KDE-Library=kmymoney/kcm_reportsview +X-KDE-ParentApp=reportsview +X-KDE-ParentComponents=reportsview +Comment=Configuration for reports view plugin +Comment[x-test]=xxConfiguration for reports view pluginxx diff --git a/kmymoney/dialogs/kreportconfigurationfilterdlg.h b/kmymoney/plugins/views/reports/kreportconfigurationfilterdlg.h rename from kmymoney/dialogs/kreportconfigurationfilterdlg.h rename to kmymoney/plugins/views/reports/kreportconfigurationfilterdlg.h diff --git a/kmymoney/dialogs/kreportconfigurationfilterdlg.cpp b/kmymoney/plugins/views/reports/kreportconfigurationfilterdlg.cpp rename from kmymoney/dialogs/kreportconfigurationfilterdlg.cpp rename to kmymoney/plugins/views/reports/kreportconfigurationfilterdlg.cpp diff --git a/kmymoney/dialogs/kreportconfigurationfilterdlg.ui b/kmymoney/plugins/views/reports/kreportconfigurationfilterdlg.ui rename from kmymoney/dialogs/kreportconfigurationfilterdlg.ui rename to kmymoney/plugins/views/reports/kreportconfigurationfilterdlg.ui diff --git a/kmymoney/views/kreportsview.h b/kmymoney/plugins/views/reports/kreportsview.h rename from kmymoney/views/kreportsview.h rename to kmymoney/plugins/views/reports/kreportsview.h diff --git a/kmymoney/views/kreportsview.cpp b/kmymoney/plugins/views/reports/kreportsview.cpp rename from kmymoney/views/kreportsview.cpp rename to kmymoney/plugins/views/reports/kreportsview.cpp --- a/kmymoney/views/kreportsview.cpp +++ b/kmymoney/plugins/views/reports/kreportsview.cpp @@ -78,7 +78,7 @@ #include "kreportchartview.h" #include "pivottable.h" #include "reporttable.h" -#include "../widgets/reportcontrolimpl.h" +#include "reportcontrolimpl.h" #include "mymoneyenums.h" #include "menuenums.h" diff --git a/kmymoney/views/kreportsview_p.h b/kmymoney/plugins/views/reports/kreportsview_p.h rename from kmymoney/views/kreportsview_p.h rename to kmymoney/plugins/views/reports/kreportsview_p.h --- a/kmymoney/views/kreportsview_p.h +++ b/kmymoney/plugins/views/reports/kreportsview_p.h @@ -58,7 +58,6 @@ // KDE Includes #include -#include #include #include @@ -83,7 +82,7 @@ #include "kreportchartview.h" #include "pivottable.h" #include "reporttable.h" -#include "../widgets/reportcontrolimpl.h" +#include "reportcontrolimpl.h" #include "mymoneyenums.h" using namespace reports; diff --git a/kmymoney/dialogs/settings/ksettingsreports.h b/kmymoney/plugins/views/reports/ksettingsreports.h rename from kmymoney/dialogs/settings/ksettingsreports.h rename to kmymoney/plugins/views/reports/ksettingsreports.h diff --git a/kmymoney/dialogs/settings/ksettingsreports.h b/kmymoney/plugins/views/reports/ksettingsreports.cpp rename from kmymoney/dialogs/settings/ksettingsreports.h rename to kmymoney/plugins/views/reports/ksettingsreports.cpp --- a/kmymoney/dialogs/settings/ksettingsreports.h +++ b/kmymoney/plugins/views/reports/ksettingsreports.cpp @@ -1,6 +1,6 @@ /*************************************************************************** - ksettingsreports.h - ------------------- + ksettingsreports.cpp + -------------------- copyright : (C) 2010 by Bernd Gonsior email : bernd.gonsior@googlemail.com (C) 2017 by Łukasz Wojniłowicz @@ -15,36 +15,56 @@ * * ***************************************************************************/ -#ifndef KSETTINGSREPORTS_H -#define KSETTINGSREPORTS_H +#include "ksettingsreports.h" // ---------------------------------------------------------------------------- // QT Includes -#include +#include +#include // ---------------------------------------------------------------------------- // KDE Includes +#include +#include +#include + // ---------------------------------------------------------------------------- // Project Includes -class KSettingsReportsPrivate; -class KSettingsReports : public QWidget +#include "ui_ksettingsreports.h" + +#include "kmymoneysettings.h" + + + +KSettingsReports::KSettingsReports(QWidget* parent) : + QWidget(parent), + d_ptr(new KSettingsReportsPrivate) +{ + Q_D(KSettingsReports); + d->ui->setupUi(this); + + // keep initial (default) css file in mind + d->m_cssFileOld = KMyMoneySettings::cssFileDefault(); + + // set default css file in ksettingsreports dialog + d->ui->kcfg_CssFileDefault->setUrl(QUrl::fromLocalFile(KMyMoneySettings::cssFileDefault())); + + d->m_fileKLineEdit = d->ui->kcfg_CssFileDefault->lineEdit(); + + connect(d->ui->kcfg_CssFileDefault, &KUrlRequester::urlSelected, + this, &KSettingsReports::slotCssUrlSelected); + + connect(d->m_fileKLineEdit, &QLineEdit::editingFinished, + this, &KSettingsReports::slotEditingFinished); +} + +KSettingsReports::~KSettingsReports() { - Q_OBJECT - Q_DISABLE_COPY(KSettingsReports) - -public: - explicit KSettingsReports(QWidget* parent = nullptr); - ~KSettingsReports(); - -protected Q_SLOTS: - void slotCssUrlSelected(const QUrl&); - void slotEditingFinished(); - -private: - KSettingsReportsPrivate * const d_ptr; - Q_DECLARE_PRIVATE(KSettingsReports) -}; -#endif + Q_D(KSettingsReports); + delete d; +} + + diff --git a/kmymoney/widgets/reportcontrol.ui b/kmymoney/plugins/views/reports/reportcontrol.ui rename from kmymoney/widgets/reportcontrol.ui rename to kmymoney/plugins/views/reports/reportcontrol.ui diff --git a/kmymoney/widgets/reportcontrolimpl.h b/kmymoney/plugins/views/reports/reportcontrolimpl.h rename from kmymoney/widgets/reportcontrolimpl.h rename to kmymoney/plugins/views/reports/reportcontrolimpl.h diff --git a/kmymoney/widgets/reportcontrolimpl.cpp b/kmymoney/plugins/views/reports/reportcontrolimpl.cpp rename from kmymoney/widgets/reportcontrolimpl.cpp rename to kmymoney/plugins/views/reports/reportcontrolimpl.cpp diff --git a/kmymoney/plugins/forecast/forecastview.h b/kmymoney/plugins/views/reports/reportsview.h rename from kmymoney/plugins/forecast/forecastview.h rename to kmymoney/plugins/views/reports/reportsview.h --- a/kmymoney/plugins/forecast/forecastview.h +++ b/kmymoney/plugins/views/reports/reportsview.h @@ -1,5 +1,5 @@ /*************************************************************************** - forecastview.h + reportsview.h ------------------- copyright : (C) 2018 by Łukasz Wojniłowicz email : lukasz.wojnilowicz@gmail.com @@ -14,8 +14,8 @@ * * ***************************************************************************/ -#ifndef FORECASTVIEW_H -#define FORECASTVIEW_H +#ifndef REPORTSVIEW_H +#define REPORTSVIEW_H // ---------------------------------------------------------------------------- // KDE Includes @@ -27,21 +27,21 @@ #include "kmymoneyplugin.h" -class KForecastView; +class KReportsView; -class ForecastView : public KMyMoneyPlugin::Plugin +class ReportsView : public KMyMoneyPlugin::Plugin { Q_OBJECT public: - explicit ForecastView(QObject *parent, const QVariantList &args); - ~ForecastView() override; + explicit ReportsView(QObject *parent, const QVariantList &args); + ~ReportsView() final; - void plug() override; - void unplug() override; + void plug() final; + void unplug() final; private: - KForecastView* m_view; + KReportsView* m_view; }; #endif diff --git a/kmymoney/plugins/forecast/forecastview.cpp b/kmymoney/plugins/views/reports/reportsview.cpp rename from kmymoney/plugins/forecast/forecastview.cpp rename to kmymoney/plugins/views/reports/reportsview.cpp --- a/kmymoney/plugins/forecast/forecastview.cpp +++ b/kmymoney/plugins/views/reports/reportsview.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - forecastview.cpp + reportsview.cpp ------------------- copyright : (C) 2018 by Łukasz Wojniłowicz @@ -15,7 +15,7 @@ * * ***************************************************************************/ -#include "forecastview.h" +#include "reportsview.h" // ---------------------------------------------------------------------------- // QT Includes @@ -30,34 +30,34 @@ // Project Includes #include "viewinterface.h" -#include "kforecastview.h" +#include "kreportsview.h" -ForecastView::ForecastView(QObject *parent, const QVariantList &args) : - KMyMoneyPlugin::Plugin(parent, "forecastview"/*must be the same as X-KDE-PluginInfo-Name*/), +ReportsView::ReportsView(QObject *parent, const QVariantList &args) : + KMyMoneyPlugin::Plugin(parent, "reportsview"/*must be the same as X-KDE-PluginInfo-Name*/), m_view(nullptr) { Q_UNUSED(args) - setComponentName("forecastview", i18n("Forecast view")); + setComponentName("reportsview", i18n("Reports view")); // For information, announce that we have been loaded. - qDebug("Plugins: forecastview loaded"); + qDebug("Plugins: reportsview loaded"); } -ForecastView::~ForecastView() +ReportsView::~ReportsView() { - qDebug("Plugins: forecastview unloaded"); + qDebug("Plugins: reportsview unloaded"); } -void ForecastView::plug() +void ReportsView::plug() { - m_view = new KForecastView; - viewInterface()->addView(m_view, i18n("Forecast"), View::Forecast); + m_view = new KReportsView; + viewInterface()->addView(m_view, i18n("Reports"), View::Reports); } -void ForecastView::unplug() +void ReportsView::unplug() { - viewInterface()->removeView(View::Forecast); + viewInterface()->removeView(View::Reports); } -K_PLUGIN_FACTORY_WITH_JSON(ForecastViewFactory, "forecastview.json", registerPlugin();) +K_PLUGIN_FACTORY_WITH_JSON(ReportsViewFactory, "reportsview.json", registerPlugin();) -#include "forecastview.moc" +#include "reportsview.moc" diff --git a/kmymoney/plugins/forecast/forecastview.json.in b/kmymoney/plugins/views/reports/reportsview.json.in rename from kmymoney/plugins/forecast/forecastview.json.in rename to kmymoney/plugins/views/reports/reportsview.json.in --- a/kmymoney/plugins/forecast/forecastview.json.in +++ b/kmymoney/plugins/views/reports/reportsview.json.in @@ -6,12 +6,12 @@ "Name": "Alvaro Soliverez,Łukasz Wojniłowicz" } ], - "Description": "Adds forecast view to KMyMoney", + "Description": "Adds reports view to KMyMoney", "EnabledByDefault": true, - "Icon": "forecast", - "Id": "forecastview", + "Icon": "report", + "Id": "reportsview", "License": "GPL", - "Name": "Forecast view", + "Name": "Reports view", "ServiceTypes": [ "KMyMoney/Plugin" ], diff --git a/kmymoney/plugins/views/reports/reportsviewsettings.kcfg b/kmymoney/plugins/views/reports/reportsviewsettings.kcfg new file mode 100644 --- /dev/null +++ b/kmymoney/plugins/views/reports/reportsviewsettings.kcfg @@ -0,0 +1,8 @@ + + + + + diff --git a/kmymoney/plugins/forecast/forecastviewsettings.kcfgc b/kmymoney/plugins/views/reports/reportsviewsettings.kcfgc rename from kmymoney/plugins/forecast/forecastviewsettings.kcfgc rename to kmymoney/plugins/views/reports/reportsviewsettings.kcfgc --- a/kmymoney/plugins/forecast/forecastviewsettings.kcfgc +++ b/kmymoney/plugins/views/reports/reportsviewsettings.kcfgc @@ -1,6 +1,6 @@ # Code generation options for kconfig_compiler -File=forecastviewsettings.kcfg -ClassName=ForecastViewSettings +File=reportsviewsettings.kcfg +ClassName=ReportsViewSettings Singleton=true Mutators=true # will create the necessary code for setting those variables diff --git a/kmymoney/dialogs/settings/ksettingsreports.ui b/kmymoney/plugins/views/reports/reportsviewsettings.ui rename from kmymoney/dialogs/settings/ksettingsreports.ui rename to kmymoney/plugins/views/reports/reportsviewsettings.ui --- a/kmymoney/dialogs/settings/ksettingsreports.ui +++ b/kmymoney/plugins/views/reports/reportsviewsettings.ui @@ -1,7 +1,7 @@ - KSettingsReports - + ReportsViewSettings + 0 diff --git a/kmymoney/widgets/reporttabcapitalgain.ui b/kmymoney/plugins/views/reports/reporttabcapitalgain.ui rename from kmymoney/widgets/reporttabcapitalgain.ui rename to kmymoney/plugins/views/reports/reporttabcapitalgain.ui diff --git a/kmymoney/widgets/reporttabchart.ui b/kmymoney/plugins/views/reports/reporttabchart.ui rename from kmymoney/widgets/reporttabchart.ui rename to kmymoney/plugins/views/reports/reporttabchart.ui diff --git a/kmymoney/widgets/reporttabgeneral.ui b/kmymoney/plugins/views/reports/reporttabgeneral.ui rename from kmymoney/widgets/reporttabgeneral.ui rename to kmymoney/plugins/views/reports/reporttabgeneral.ui diff --git a/kmymoney/widgets/reporttabimpl.h b/kmymoney/plugins/views/reports/reporttabimpl.h rename from kmymoney/widgets/reporttabimpl.h rename to kmymoney/plugins/views/reports/reporttabimpl.h diff --git a/kmymoney/widgets/reporttabimpl.cpp b/kmymoney/plugins/views/reports/reporttabimpl.cpp rename from kmymoney/widgets/reporttabimpl.cpp rename to kmymoney/plugins/views/reports/reporttabimpl.cpp diff --git a/kmymoney/widgets/reporttabperformance.ui b/kmymoney/plugins/views/reports/reporttabperformance.ui rename from kmymoney/widgets/reporttabperformance.ui rename to kmymoney/plugins/views/reports/reporttabperformance.ui diff --git a/kmymoney/widgets/reporttabrange.ui b/kmymoney/plugins/views/reports/reporttabrange.ui rename from kmymoney/widgets/reporttabrange.ui rename to kmymoney/plugins/views/reports/reporttabrange.ui diff --git a/kmymoney/widgets/reporttabrowcolpivot.ui b/kmymoney/plugins/views/reports/reporttabrowcolpivot.ui rename from kmymoney/widgets/reporttabrowcolpivot.ui rename to kmymoney/plugins/views/reports/reporttabrowcolpivot.ui diff --git a/kmymoney/widgets/reporttabrowcolquery.ui b/kmymoney/plugins/views/reports/reporttabrowcolquery.ui rename from kmymoney/widgets/reporttabrowcolquery.ui rename to kmymoney/plugins/views/reports/reporttabrowcolquery.ui diff --git a/kmymoney/views/tocitem.h b/kmymoney/plugins/views/reports/tocitem.h rename from kmymoney/views/tocitem.h rename to kmymoney/plugins/views/reports/tocitem.h diff --git a/kmymoney/views/tocitem.cpp b/kmymoney/plugins/views/reports/tocitem.cpp rename from kmymoney/views/tocitem.cpp rename to kmymoney/plugins/views/reports/tocitem.cpp diff --git a/kmymoney/views/tocitemgroup.h b/kmymoney/plugins/views/reports/tocitemgroup.h rename from kmymoney/views/tocitemgroup.h rename to kmymoney/plugins/views/reports/tocitemgroup.h diff --git a/kmymoney/views/tocitemgroup.cpp b/kmymoney/plugins/views/reports/tocitemgroup.cpp rename from kmymoney/views/tocitemgroup.cpp rename to kmymoney/plugins/views/reports/tocitemgroup.cpp diff --git a/kmymoney/views/tocitemreport.h b/kmymoney/plugins/views/reports/tocitemreport.h rename from kmymoney/views/tocitemreport.h rename to kmymoney/plugins/views/reports/tocitemreport.h diff --git a/kmymoney/views/tocitemreport.cpp b/kmymoney/plugins/views/reports/tocitemreport.cpp rename from kmymoney/views/tocitemreport.cpp rename to kmymoney/plugins/views/reports/tocitemreport.cpp diff --git a/kmymoney/views/CMakeLists.txt b/kmymoney/views/CMakeLists.txt --- a/kmymoney/views/CMakeLists.txt +++ b/kmymoney/views/CMakeLists.txt @@ -20,11 +20,7 @@ kmymoneyaccountsviewbase.cpp kmymoneyview.cpp kpayeesview.cpp - kreportsview.cpp kscheduledview.cpp - tocitem.cpp - tocitemgroup.cpp - tocitemreport.cpp kscheduletreeitem.cpp ktagsview.cpp konlinejoboutbox.cpp diff --git a/kmymoney/views/kmymoneyview.cpp b/kmymoney/views/kmymoneyview.cpp --- a/kmymoney/views/kmymoneyview.cpp +++ b/kmymoney/views/kmymoneyview.cpp @@ -79,7 +79,6 @@ #include "kscheduledview.h" #include "kgloballedgerview.h" #include "kinvestmentview.h" -#include "kreportsview.h" #include "kbudgetview.h" #include "konlinejoboutbox.h" #include "kmymoney.h" @@ -154,7 +153,6 @@ viewBases[View::Payees] = new KPayeesView; viewBases[View::Ledgers] = new KGlobalLedgerView; viewBases[View::Investments] = new KInvestmentView; - viewBases[View::Reports] = new KReportsView; viewBases[View::Budget] = new KBudgetView; viewBases[View::OnlineJobOutbox] = new KOnlineJobOutbox; #ifdef ENABLE_UNFINISHEDFEATURES @@ -179,7 +177,6 @@ {View::Payees, i18n("Payees"), Icon::ViewPayees}, {View::Ledgers, i18n("Ledgers"), Icon::ViewLedgers}, {View::Investments, i18n("Investments"), Icon::ViewInvestment}, - {View::Reports, i18n("Reports"), Icon::ViewReports}, {View::Budget, i18n("Budgets"), Icon::ViewBudgets}, {View::OnlineJobOutbox, i18n("Outbox"), Icon::ViewOutbox}, #ifdef ENABLE_UNFINISHEDFEATURES @@ -461,6 +458,9 @@ if (viewFrames.contains((View)i)) { viewFrames[idView] = m_model->insertPage(viewFrames[(View)i],view, name); viewBases[idView] = view; + connect(viewBases[idView], &KMyMoneyViewBase::selectByObject, this, &KMyMoneyView::slotSelectByObject); + connect(viewBases[idView], &KMyMoneyViewBase::selectByVariant, this, &KMyMoneyView::slotSelectByVariant); + connect(viewBases[idView], &KMyMoneyViewBase::customActionRequested, this, &KMyMoneyView::slotCustomActionRequested); isViewInserted = true; break; } @@ -471,6 +471,9 @@ auto icon = Icon::ViewForecast; switch (idView) { + case View::Reports: + icon = Icon::ViewReports; + break; case View::Forecast: icon = Icon::ViewForecast; break; @@ -485,9 +488,17 @@ void KMyMoneyView::removeView(View idView) { + if (!viewBases.contains(idView)) + return; + + disconnect(viewBases[idView], &KMyMoneyViewBase::selectByObject, this, &KMyMoneyView::slotSelectByObject); + disconnect(viewBases[idView], &KMyMoneyViewBase::selectByVariant, this, &KMyMoneyView::slotSelectByVariant); + disconnect(viewBases[idView], &KMyMoneyViewBase::customActionRequested, this, &KMyMoneyView::slotCustomActionRequested); + m_model->removePage(viewFrames[idView]); viewFrames.remove(idView); viewBases.remove(idView); + } bool KMyMoneyView::showPageHeader() const @@ -534,11 +545,9 @@ bool KMyMoneyView::canPrint() { - bool rc = ( - viewFrames[View::Reports] == currentPage() - || viewFrames[View::Home] == currentPage() - ); - return rc; + return ((viewFrames.contains(View::Reports) && viewFrames[View::Reports] == currentPage()) || + (viewFrames.contains(View::Home) && viewFrames[View::Home] == currentPage()) + ); } void KMyMoneyView::enableViewsIfFileOpen(bool fileOpen) @@ -682,9 +691,9 @@ void KMyMoneyView::slotPrintView() { - if (viewFrames[View::Reports] == currentPage()) + if (viewFrames.contains(View::Reports) && viewFrames[View::Reports] == currentPage()) viewBases[View::Reports]->executeCustomAction(eView::Action::Print); - else if (viewFrames[View::Home] == currentPage()) + else if (viewFrames.contains(View::Home) && viewFrames[View::Home] == currentPage()) viewBases[View::Home]->executeCustomAction(eView::Action::Print); } diff --git a/kmymoney/widgets/CMakeLists.txt b/kmymoney/widgets/CMakeLists.txt --- a/kmymoney/widgets/CMakeLists.txt +++ b/kmymoney/widgets/CMakeLists.txt @@ -12,7 +12,7 @@ scheduledtransaction.h selectedtransaction.h selectedtransactions.h stdtransactiondownloaded.h stdtransactionmatched.h transactioneditorcontainer.h transactionform.h transaction.h investtransaction.h stdtransaction.h - transactionsortoption.h reporttabimpl.h reportcontrolimpl.h + transactionsortoption.h kmymoneyvalidationfeedback.h onlinejobmessagesview.h kmymoneydateedit.h @@ -195,16 +195,10 @@ kmymoneybriefschedule.cpp registersearchline.cpp transactioneditorcontainer.cpp - reporttabimpl.cpp - reportcontrolimpl.cpp ) set(libwidgets_a_UI - kmymoneybriefschedule.ui reportcontrol.ui - reporttabgeneral.ui - reporttabrowcolquery.ui reporttabrowcolpivot.ui - reporttabrange.ui reporttabchart.ui - reporttabcapitalgain.ui reporttabperformance.ui + kmymoneybriefschedule.ui ) # using uic on the above UI files DEPENDS on libkmymoney.so. If uic