<html dir="ltr"><head></head><body style="text-align:left; direction:ltr;"><div>Thanks Thomas. </div><div><br></div><div>I am trying to read between the lines. So if I miss something, please let me know. </div><div><br></div><div>Here is what I did: </div><div><br></div><div> git clone --single-branch --branch master git://anongit.kde.org/kmymoney.git kmy/master</div><div> git clone --single-branch --branch 5.0 git://anongit.kde.org/kmymoney.git kmy/stable</div><div></div><div><br></div><div>Is that what you meant by master and stable? Why do you all see 5.0 as stable? Is that the base release that all current security and other patches are going towards for the current release, and Master is the new source for the next release? (so you apply the patches to both)</div><div><br></div><div>Regarding Step C... So then, we have to do a(n) (re)installation to make sure all the plugins get pulled correctly.. otherwise, I won't see the changes. This makes sense, although.. I am wondering, are the Reports modules considered a plugin or part of the core of KMyMoney? Also, do you happen to know if Kdevelop runs a re-install behind the scenes when I hit the Debug button? </div><div><br></div><div>thanks again. I know you have mentioned some of this in the past and some of it is just now sinking in. I promise once I get going, I will try to help you all instead of just slowing you guys down. I just finally have some down time from my regular work that I can focus on this. </div><div><br></div><div>JV</div><div><br></div><div><br></div><div>On Fri, 2019-12-27 at 10:53 +0100, Thomas Baumgart wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>Jesus,</div><div><br></div><div>the whole process of generation of the KMyMoney artifacts is divided into these parts:</div><div><br></div><div>a) configuration</div><div>b) compilation / linkage</div><div>c) installation</div><div><br></div><div>Step a) is where cmake comes into play. Its job is to convert the meta information provided in CMakeLists.txt files into lower level Makefiles (depending on the build tool/generator used). This step caches some information which will not be re-evaluated if you re-run cmake. To get a full scan remove build/CMakeCache.txt and re-run cmake. Removing CMakeCache.txt also wipes all the settings you have made using ccmake.</div><div><br></div><div>Step b) is invoked by calling 'make' and compiles and links the artifacts comprising the application, that is the executables (yes, the testcases as well), shared libs and plugins. At the end they are all located in build/bin.</div><div><br></div><div>Step c) moves all the necessary files (executable, shared libs, plugins, icons, templates, etc.) into the location of your KDE install. This is performed by running 'sudo make install/fast'.</div><div><br></div><div>To remove an installed version, I simply use this the following sequence in the build sub-directory:</div><div><br></div><div> sudo -s</div><div> xargs rm < install_manifest.txt</div><div> exit</div><div><br></div><div>Having two sandboxes (one with master and one with 5.0) and can easily switch between the two of them. E.g. from stable to master:</div><div><br></div><div> cd stable/build</div><div> sudo -s</div><div> xargs rm < install_manifest.txt</div><div> exit</div><div> cd ../../master/build</div><div> sudo make install/fast</div><div><br></div><div>This will make sure that all the files are recent. Especially for plugins, step c) is very important. If you omit it, the debugger will use the newly compiled executable and shared objects from the build/bin directory, but not the plugins. It will use the old ones found installed. As Jack pointed out, not having the most recent plugin installed may be the cause to the problem you encounter.</div><div><br></div><div>BTW: KMyMoney tells you on the command line where it picks up the plugins during startup, e.g.</div><div><br></div><div>Located plugin "/usr/lib64/qt5/plugins/kmymoney/konlinetasks_sepa.so" Validity true</div><div>Located plugin "/usr/lib64/qt5/plugins/kmymoney/csvimporter.so" Validity true</div><div>.</div><div>.</div><div>Loading "/usr/lib64/qt5/plugins/kmymoney/budgetview.so"</div><div>Plugins: budgetview loaded</div><div>Loading "/usr/lib64/qt5/plugins/kmymoney/checkprinting.so"</div><div>Plugins: checkprinting loaded</div><div>.</div><div>.</div><div><br></div><div>Hope that helps.</div><div><br></div><div>Thomas</div><div><br></div><div><br></div><div> </div><div>On Freitag, 27. Dezember 2019 01:42:38 CET Jack wrote:</div><div><br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>Hi JV,</div><div><br></div><div>I begin to wonder if the problem is that you are trying to debug a KMM </div><div>plugin. It is easy enough to debug a newly compiled kmymoney file, but </div><div>KDE/QT has its own way of finding plugins. As an experiment, after you </div><div>have run "make" find where the newly compiled plugins are. For this </div><div>example assume you ran make in .../kmm/build and the compiled plugins </div><div>are in the lib dir below that. Try running </div><div>'QT_PLUGIN_PATH=.../kmm/build/lib" kdevelop'.</div><div><br></div><div>Note I'm doing this mostly from memory, so if it doesn't work, someone </div><div>will have to confirm whether some of my details are wrong. I just don't </div><div>know if kdevelop accounts for that</div><div><br></div><div>On 12/26/19 11:46 AM, <a href="mailto:jvapr27@gmail.com">jvapr27@gmail.com</a> wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>Thanks Jack!</div><div><br></div><div>This is what I see in the ccmake:</div><div><br></div><div> CMAKE_BUILD_TYPE Debugfull</div><div> CMAKE_COLOR_MAKEFILE ON</div><div> CMAKE_CXX_COMPILER /usr/bin/c++</div><div> CMAKE_CXX_COMPILER_AR /usr/bin/gcc-ar</div><div> CMAKE_CXX_COMPILER_RANLIB /usr/bin/gcc-ranlib</div><div> CMAKE_CXX_FLAGS</div><div> CMAKE_CXX_FLAGS_DEBUG -g</div><div> CMAKE_CXX_FLAGS_DEBUGFULL</div><div> CMAKE_CXX_FLAGS_MINSIZEREL -Os -DNDEBUG</div><div> CMAKE_CXX_FLAGS_RELEASE -O2 -DNDEBUG</div><div> CMAKE_CXX_FLAGS_RELWITHDEBINFO -O2 -g -DNDEBUG</div><div> CMAKE_DLLTOOL CMAKE_DLLTOOL-NOTFOUND</div><div> CMAKE_EXE_LINKER_FLAGS</div><div> CMAKE_EXE_LINKER_FLAGS_DEBUG</div><div> CMAKE_EXE_LINKER_FLAGS_DEBUGFU</div><div> CMAKE_EXE_LINKER_FLAGS_MINSIZE</div><div> CMAKE_EXE_LINKER_FLAGS_RELEASE</div><div> CMAKE_EXE_LINKER_FLAGS_RELWITH</div><div><br></div><div>I tried the new cmake line to see if that stops any optimization, but </div><div>truly, I don't know where to do that. With what Jack said, I see those </div><div>options in ccmake, but should I change anything? DEBUGFULL has nothing </div><div>as a value. What I don't see is a CMAKE_C_FLAGS, not sure if that is </div><div>missing or just not needed on my system.</div><div><br></div><div><br></div><div>It does seem that now the debuger Step-Over function in kdevelop works </div><div>better. So maybe it worked. I need to test it more.</div><div><br></div><div>Still, I notice weird things, like in this image below. I stepped over </div><div>a boolean variable assignment, which sets it to true, but when I hover </div><div>over it, it says its value is false. The debug cursor is past the </div><div>point where the assignment was made. Why? Is this a kdevelop issue or </div><div>maybe I just do not understand how this tool works yet. I thought the </div><div>hover over would display the current value in the variable.</div><div><br></div><div>Also, notice the qDebug() did not print on the application output. I </div><div>did set up my application launcher in kdevelop, and debug launcher as </div><div>Thomas showed in his screenshots. The only thing different was that I </div><div>had an application target set, where he had an executeable. I updated </div><div>mine to match his.</div><div><br></div><div><br></div><div><br></div><div>If anyone has an more insights, please let me know.</div><div><br></div><div>I appreciate the time and assistance.</div><div><br></div><div>thanks,</div><div><br></div><div>JV</div><div><br></div><div><br></div><div>On Thu, 2019-12-26 at 11:30 -0500, Jack wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>Pending further response from Thomas, I think the debugfull is better </div><div>for your situation. However, the actual control of optimization is </div><div>in flags to the compiler, usually set with CFLAGS or CXXFLAGS. </div><div>Optimization is -Ox where x is the level of optimization applied. </div><div>For example, my cmake line starts with 'CFLAGS="-O0 -ggdb" </div><div>CXXFLAGS=$CFLAGS cmake ....' The -O0 (capital letter o, digit zero) </div><div>says no optimization at all. The -ggdb may not be necessary for you, </div><div>but at some point, helped me by explicitly providing some additional </div><div>debug information used by gdb. I am not sure whether it makes any </div><div>difference if you are debugging with kdevelop.</div><div><br></div><div>Jack</div><div><br></div><div>On 12/26/19 11:12 AM, <a href="mailto:jvapr27@gmail.com">jvapr27@gmail.com</a> wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>Hi Thomas,</div><div><br></div><div>Thanks for the response.</div><div><br></div><div>Where can I check this?</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>Did you build with optimization? Turn them off.</div></blockquote><div><br></div><div>My last cmake command was:</div><div>cmake .. -DCMAKE_INSTALL_PREFIX=/usr </div><div>-DKDE_INSTALL_PLUGINDIR=/usr/lib64/qt5/plugins</div><div><br></div><div>I will try the following:</div><div>cmake .. -DCMAKE_INSTALL_PREFIX=/usr </div><div>-DKDE_INSTALL_PLUGINDIR=/usr/lib64/qt5/plugins</div><div>-DCMAKE_BUILD_TYPE=Debugfull</div><div><br></div><div>In case this is the problem, do you know what this is for then?</div><div><br></div><div>The default value is: 'RelWithDebInfo'</div><div><br></div><div>I read that as Release-with-Debug-and-Info. Is this still optimizing </div><div>for release?</div><div><br></div><div>thanks,</div><div><br></div><div>JV</div><div><br></div><div><br></div><div><br></div><div><br></div><div>On Thu, 2019-12-26 at 11:59 +0100, Thomas Baumgart wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>Jesus,</div><div><br></div><div>On Donnerstag, 26. Dezember 2019 08:54:38 CET <a href="mailto:jvapr27@gmail.com">jvapr27@gmail.com</a> </div><div><mailto:<a href="mailto:jvapr27@gmail.com">jvapr27@gmail.com</a>> wrote:</div><div><br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>Everyone... in case you have run into this before.</div><div><br></div><div>I cannot seem to get Kdevelop to work correctly.</div><div><br></div><div>Problems:</div><div>- I set breakpoints but the breakpoint is set a few lines off.</div><div>- When running in Debug mode, I am watching a variable named</div><div>invertedValue which I hard coded to = true; and still the variable </div><div>does</div><div>not set to true, as if it is not debugging the code I see in the IDE.</div></blockquote><div><br></div><div>Did you build with optimization? Turn them off. Optimization causes </div><div>all kinds of weird looking side effects when debugging.</div><div><br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>- I set qDebug() and qInfo() methods but they did not show anything in</div><div>the output view. Where should this show up? Anything I can </div><div>configure in</div><div>the Kdevelop to get it to work?</div></blockquote><div><br></div><div>Shows up in the Debug view. See attached screenshot: shows an </div><div>active breakpoint in the source code and the output in the Debug view.</div><div><br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>Any help would be greatly appreciated.</div></blockquote><div><br></div><div>Also attached how I configured the launches in KDevelop</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>@Thomas, I am focusing on the Cashflow report.</div><div><br></div><div>thanks,</div><div><br></div><div>JV</div><div><br></div><div>On Sun, 2019-12-22 at 08:51 +0100, Thomas Baumgart wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>Jesus,</div><div><br></div><div>On Samstag, 21. Dezember 2019 18:28:05 CET Jesus Varela wrote:</div><div><br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>Dev team,</div><div><br></div><div>I am trying to become more familiar with the code and am looking</div><div>for the</div><div>code that would control whether transfers are graphed and displayed</div><div>as</div><div>negative numbers in the reports. I want to display absolute values</div><div>on</div><div>charts and tables.</div></blockquote><div><br></div><div>Not sure which report you want to modify, but there is e.g. a method</div><div>called</div><div>PivotTable::coloredAmount(). It is responsible to render the color</div><div>for HTML</div><div>reports. The callee of this method provides the value.</div><div><br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>I figured I would use this personal desire to get acquainted with</div><div>the code.</div><div>Any hints would be appreciated. I found the kreportchartview.cpp</div><div>and in</div><div>there is a variable to figure out if expenses should be negative or</div><div>not,</div><div>but I do not see anything for transfers. If it is there, I will</div><div>keep</div><div>looking. If I am on the wrong file, please let me know if you know</div><div>where I</div><div>should be looking.</div></blockquote><div><br></div><div>KReportChartView::drawPivotChart receives all values in the parameter</div><div>'grid'.</div><div>You may want to look into the construction of the grid to find the</div><div>spot where</div><div>the values of the transfers are inserted.</div><div><br></div><div>The spot you found is not negating the value of each expense, but</div><div>simply</div><div>negates the value contained in the grid if the underlying account for</div><div>the cell</div><div>is an expense account. So I wonder if that would be the spot to</div><div>achieve what</div><div>you are trying.</div><div><br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>Just trying to make sure I am understanding the structure. I</div><div>haven't used</div><div>c++ in a long time.</div><div><br></div><div>Thanks in advance for any assistance.</div></blockquote><div><br></div><div>Hope that helps. The reporting section is not my area of expertise.</div><div><br></div><div><br></div></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></body></html>