----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/128511/ -----------------------------------------------------------
(Updated Aug. 6, 2016, 1:18 p.m.) Status ------ This change has been marked as submitted. Review request for KMymoney. Changes ------- Submitted with commit 52d62baea894ffe9bae10dd4f416cf6bd0278356 by ?ukasz Wojni?owicz to branch master. Repository: kmymoney Description ------- First diff: Purpose of displayLine in tableWidget shouldn't differ whether it's investment or banking statement, so take of responsibilities of parsing data into columns and creating memo field from displayLine and put them into separate functions. In csvdialog.cpp and investprocessing.cpp, I introduced createMemoField (it simplifies memo concatenating and allows to remove some redundant boolean variables), which in both places looks the same. I think it will be easy to move it into csvwizard.cpp after trying to move e.g. readFile there, so that will be next target. Second diff: csvdialog.cpp and investprocessing.cpp have methods duplicated, complicated and not structured for easy maintenance and development. Due to this methods and variables were simplified, unified, deduplicated and put in main file i.e. csvwizard.cpp New/rewritten methods: "readfile" - loads file into buffer and gets its boundaries "displayLines" - for displaying lines from buffer in table "getMaxColumnCount" - for detecting field delimiter "validateDateFormat" - for validating date "createMemoField" - for creating memo out of copied columns "startLineChanged" - moved to csvwizard.cpp "endLineChanged" - moved to csvwizard.cpp "dateFormatSelected" - moved to csvwizard.cpp "readSettings" - for reading settings and setting variables only Sorry for this patch for being so big, but changing something in CSV importer code was kind of domino effect. The code is so unstructured that it makes no sense making it step by step, so I was editing obviously wrong code on the spot. I decided to publish it now because all began to work on new codepath. I think the next step could be rewriting parsers for investment and banking lines which look very obfuscated to me. Diffs ----- kmymoney/plugins/csvimport/completionwizardpage.ui ddc064b kmymoney/plugins/csvimport/csvdialog.h 69cca6e kmymoney/plugins/csvimport/csvdialog.cpp fa70b04 kmymoney/plugins/csvimport/csvutil.h e27199b kmymoney/plugins/csvimport/csvutil.cpp 9c0929d kmymoney/plugins/csvimport/csvwizard.h 28eea62 kmymoney/plugins/csvimport/csvwizard.cpp 7aee196 kmymoney/plugins/csvimport/investmentdlg.cpp b68da8e kmymoney/plugins/csvimport/investprocessing.h 38f622c kmymoney/plugins/csvimport/investprocessing.cpp 328a79b kmymoney/plugins/csvimport/lines-datewizardpage.ui d844da5 Diff: https://git.reviewboard.kde.org/r/128511/diff/ Testing ------- Banking and investment statement CSV imports; with and without setup. Thanks, Łukasz Wojniłowicz