- CLI: Save the libraries that should be loaded to a list and load them
after the std.cfg has been loaded.
- GUI: Load std.cfg (and windows.cfg / posix.cfg when applicable) before
setting other options and loading the other libraries.
In the project-file-dialog the std.cfg is searched first. If some
other library fails to load is is retried with first loading std.cfg.
- boost.cfg: Enable containers that depend on std containers.
The function “QListWidget::takeItem” is documented in the way
that a null pointer can be returned. This result was not checked
by the function “ProjectFileDialog::removeSuppression” so far.
Thus add a corresponding check so that an inappropriate pointer access
should not happen any more here.
Link: https://sourceforge.net/p/cppcheck/discussion/development/thread/d1d0b65245/#a1bf
Link: https://trac.cppcheck.net/ticket/8814
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
[gui/projectfiledialog.h:283]: (performance) Function parameter 'shortText' should be passed by const reference.
[gui/projectfiledialog.cpp:675]: (performance) Function parameter 'shortText' should be passed by const reference.
also run dmake
* Allow selecting bcb6 projects in "Analyze" -> "Files..."
This change also splits the filters for files which can be analyzed into multiple entries and includes a helper class to construct filter strings.
* move FilterStringBuilder to its own class and document it
* add new files to .pro
* add missing include for Q_DECLARE_TR_FUNCTIONS macro
* re-run astyle
* allow to import bcb6 project when creating a new cppcheck project
exchange class FilterStringBuilder with a toFilterString() helper method
* add missing include
Platform::loadPlatformFile needs the path to the binary not only the
path to the directory where the binary is in. Otherwise the last
directory could get stripped away and the platform files maybe will not
be found.
The checked state of the addon checkboxes is already set in the
updateAddonCheckBox function directly above the removed code. I do not
see any reason to set it again and only for three of the four
checkboxes.
For quite a while, cppcheck-gui hasn't shown any of the standard
library packages on my Gentoo system. It turns out that cppcheck-gui
doesn't use CFGDIR, but it does use a DATADIR variable stored in
QSettings. Problem is, DATADIR isn't set unless you manually specify
--data-dir, which isn't very intuitive.
This commit adds CFGDIR to the default list of cfg paths if the
CFGDIR macro is defined during the build.
When adding a new include path check if the path is relative path to
the project file's path. If path is relative then remove the begin of
the path making it a relative path in project file.
Ticket: #3019 (GUI: Add project include paths as relative paths)
Since include dir order is important (Cppcheck uses the first file
it finds) user must be able to edit the order of include paths.
This commit adds "Up" and "Down" buttons to the Project-dialog's
inlude paths-tab. User can use those two buttons to re-order the
include directories.
Ticket: #3037 (GUI: Allow reordering include paths in project dialog)
Use project file's location as base path when adding new paths
(checked, included or ignored) to the project. In most cases user
wants to add paths in the same project so this reduces browsing
paths considerably when adding them.
Show native path separators in project file-dialog. Convert paths
to internal separators when reading from project file and when
reading from the dialog. Convert to native separators when adding
to the dialog (for the user).
Add similar GUI than include paths has. Currently there is only
possibly select directories directly from the GUI. But filename
can be added to the path by editing it.
Handling paths in line edit control is quite hard. List control is
much more pleasant to use for it. Convert Project file path
handling to similar list control usage than include paths earlier.
Editing include directories in edit control is not nice. Instead
add new tab and list control for the include directories. They
are now added, edited and removed like global include directories
in settings dialog.
This commit separates logic more from the GUI. The dialog class is
only responsible from showing the dialog and handling data in it.
Other related classes do the project file reading/saving/etc.
Add new "New project file" item to File-menu and rename existing
"Project File" item to "Open Project File". Selecting new file
opens empty project file dialog. When the dialog is then closed
the user is asked to select a filename for the new project file.