/* * Cppcheck - A tool for static C/C++ code analysis * Copyright (C) 2007-2009 Daniel Marjamäki and Cppcheck team. * * 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 3 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 #include #include #include #include #include #include "applicationlist.h" #include #include /** * @brief Settings dialog * */ class SettingsDialog : public QDialog { Q_OBJECT public: SettingsDialog(QSettings &programSettings, ApplicationList &list, QWidget *parent = 0); virtual ~SettingsDialog(); /** * @brief Save all values to QSettings * */ void SaveCheckboxValues(); /** * @brief Get checkbox value for mShowFullPath * * @return should full path of errors be shown in the tree */ bool ShowFullPath(); /** * @brief Get checkbox value for mSaveFullPath * * @return should full path of files be saved when creating a report */ bool SaveFullPath(); /** * @brief Get checkbox value for mNoErrorsMessage * * @return Should "no errors message" be hidden */ bool ShowNoErrorsMessage(); /** * @brief Get checkbox value for mSaveAllErrors * * @return should all errors be saved to report */ bool SaveAllErrors(); protected slots: /** * @brief Slot for clicking OK. * */ void Ok(); /** * @brief Slot for adding a new application to the list * */ void AddApplication(); /** * @brief Slot for deleting an application from the list * */ void DeleteApplication(); /** * @brief Slot for modifying an application in the list * */ void ModifyApplication(); /** * @brief Slot for making the selected application as the default (first) * */ void DefaultApplication(); protected: /** * @brief Clear all applications from the list and re insert them from mTempApplications * */ void PopulateListWidget(); /** * @brief Load saved values * Loads dialog size and column widths. * */ void SaveSettings(); /** * @brief Save settings * Save dialog size and column widths. * */ void LoadSettings(); /** * @brief Save a single checkboxes value * * @param box checkbox to save * @param name name for QSettings to store the value */ void SaveCheckboxValue(QCheckBox *box, const QString &name); /** * @brief Add a new checkbox to layout * * @param layout layout to add to * @param label label for the checkbox * @param settings QSettings name for default value * @return newly created QCheckBox */ QCheckBox* AddCheckbox(QVBoxLayout *layout, const QString &label, const QString &settings, bool value); /** * @brief Convert bool to Qt::CheckState * * @param yes value to convert * @return value converted to Qt::CheckState */ Qt::CheckState BoolToCheckState(bool yes); /** * @brief Converts Qt::CheckState to bool * * @param state Qt::CheckState to convert * @return converted value */ bool CheckStateToBool(Qt::CheckState state); /** * @brief How many threads should cppcheck have * */ QLineEdit *mJobs; /** * @brief Cppcheck setting * */ QCheckBox *mForce; /** * @brief Save all errors * */ QCheckBox *mSaveAllErrors; /** * @brief Save full path of the file in error reports * */ QCheckBox *mSaveFullPath; /** * @brief Show full path of file in results view * */ QCheckBox *mShowFullPath; /** * @brief Show a message dialog when no errors are found (false) * */ QCheckBox *mShowNoErrorsMessage; /** * @brief List of all applications that can be started when right clicking * an error */ QListWidget *mListWidget; /** * @brief Settings * */ QSettings &mSettings; /** * @brief List of applications user has specified * */ ApplicationList &mApplications; /** * @brief Temporary list of applications * This will be copied to actual list of applications (mApplications) * when user clicks ok. */ ApplicationList mTempApplications; private: }; #endif // SETTINGSDIALOG_H