TODOs
This is a collection of multiple smaller and bigger issues collected during internal discussions and with external contributors in the past. Tracked in phubricater, transferring now everything to gitlab.
- switch to the scientific format for axis labels for small numbers similar to what is already done for big numbers
- check https://cgit.kde.org/okular.git/commit/?id=7a50ce0edfc9be8bd23441e52a4f3a0c60f7e60f in okular for relevance in LabPlot
- CLI options for quick importing and plotting of data (similar to "xmgrace nxy file_name.dat" in xmgrace and similar to equivalent options in KST)
- allow to enter formulas for things like min/max values for plot ranges, scaling factor in axes and so on. Useful for example if you work with bytes and want to switch in the plot to kB, MB and so on
- finalize reading from web-services, initial code available in the last commits in the gsoc2018_json branch c452e7e6 and b555393c (Alexander)
- for MQTT-connection add some kind of "info dialog" showing the information available in the SYS topics (https://github.com/mqtt/mqtt.github.io/wiki/SYS-Topics)
- think about importing multiple sets (from netcdf, hdf5, root) into a single sheet/matrix and how to import multidimensional data
- replaceValues in Matrix (fill with const or function values) is not undoable
- Matrix: memset, memcopy for matrix operations
- profile std::vector vs. QVector in performance critical areas
- mask matrix cells
- Doppelklick im Spaltenheader bzw. F2 -> Spalte umbenennen
- change axis orientation for xy-plots - https://bugs.kde.org/show_bug.cgi?id=411122
- MagicPlot und Fytik bieten dem Benutzer die Möglichkeit an, den Fit-Bereich mit der Maus auszuwählen. Also so ähnlich wie unsere "select x-range and zoom in" Funktion im Plot. Das könnten wir auch schnell implementieren, der Kode für die Bereichselektion ist wie gesagt schon vorhanden. Ich habe jetzt bloß keine gute Idee wo wir das unterbringen könnten. Zusätzlicher Button irgendwo im ohnehin schon überladenen DockWidget?
- allow to delete data picker points, either in the data spreadsheet or directly in the plot (select and deleted)
- check whether the ideas in https://www.qcustomplot.com/index.php/support/forum/1895 (drawLines(), etc.) can be applied in our code.
- use KUrlComboBox in ** "Import Project"-Dialog ** "SQL Database Connections"-Dialog for the selection of the file databases ** in the dock widgets for worksheet, legend, etc. for the background image file
- Implement the logic for progress bar done in https://cgit.kde.org/labplot.git/commit/?id=cfc90ea0371ef890df2fbebec2a7f3bf9acb1a09 in all other filters and for the database import
- formula parser: ** wenn man variablen verwendet, welche den Namen einer Funktion enthalten, werden die Variablen nicht als solche erkannt, sondern als Funktion und somit gibt es Probleme. z.B. "theta" ist die Funktion d.h man darf nicht "atheta", "theta2", ... nicht verwenden. ** wenn in der Gleichung variablen drin sind, welche aber nicht verwendet werden, wird die Gleichung als gültig erkannt. Wäre es hier möglich, die Gleichung für ngültig zu erklären? Unten ist nochmals das andere Problem mit dem Parser.
- warning in the clang build: src/gsl_parser.c:1504:6: warning: code will never be executed [-Wunreachable-code] - goto yyerrorlab;
- We should make QtSvg optional in cmake. SVG is only used in the worksheet export. For people trying to compile LabPlot locally we should reduce the amount of dependencies so they can start more faster.
- when importing date time data with two characters for the year 'yy', allow which century to use (efbfbd5c).
- WorkbookView::tabMoved()
- move the "add new*" actions from the main toolbar to the toolbar in the project explorer. These actions belong semantically to the project explorer and this will also give us more space for context sensitive actions in the main toolbar.
- plot the axis labels on top of the axis line, s.a. the discussion in https://bugs.kde.org/show_bug.cgi?id=426440. We'd need to add a new GraphicsItem for the labels and to set the Z-order to a higher value, similar to how we do this with AxisGrid in Axis.cpp
- use KSharedConfig instead of KConfig?
- use Q_ENUM instead of deprecated Q_ENUMS (requires Qt >= 5.5)
- use brace initializing for default config settings (see coding style and uninitialized members in Converity scan)
- use macros for repetitive code (like in switch statements) (see NetCDFFilter.cc)
Edited by Alexander Semke