From d008592a84f337fcbc62ccdc718fab97474283d9 Mon Sep 17 00:00:00 2001 From: Vesa Pikki Date: Sun, 22 Mar 2009 14:28:52 +0200 Subject: [PATCH] Removed check dialog. Files to be checked are selected by default file open dialog with all checking options enabled. --- gui/checkdialog.cpp | 307 -------------------------------------------- gui/checkdialog.h | 211 ------------------------------ 2 files changed, 518 deletions(-) delete mode 100644 gui/checkdialog.cpp delete mode 100644 gui/checkdialog.h diff --git a/gui/checkdialog.cpp b/gui/checkdialog.cpp deleted file mode 100644 index 6a28732d9..000000000 --- a/gui/checkdialog.cpp +++ /dev/null @@ -1,307 +0,0 @@ -/* - * Cppcheck - A tool for static C/C++ code analysis - * Copyright (C) 2007-2009 Daniel Marjamäki, Reijo Tomperi, Nicolas Le Cam, - * Leandro Penz, Kimmo Varis, Vesa Pikki - * - * 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 -#include -#include "../src/filelister.h" - -CheckDialog::CheckDialog(QSettings &programSettings) : - mSettings(programSettings) -{ - QPushButton *cancel = new QPushButton(tr("Cancel")); - QPushButton *ok = new QPushButton(tr("Ok")); - - //Main layout - QVBoxLayout *layout = new QVBoxLayout(); - - //Layout for ok/cancel buttons - QHBoxLayout *buttonLayout = new QHBoxLayout(); - - - //File selection tree - layout->addWidget(new QLabel(tr("Select files to check"))); - mFileTree = new QTreeView(); - layout->addWidget(mFileTree); - mFileTree->setModel(&mModel); - mFileTree->scrollTo(mModel.index(programSettings.value(tr("Check path"), QDir::currentPath()).toString())); - mFileTree->setSelectionMode(QAbstractItemView::ExtendedSelection); - - //Number of jobs - mJobs = new QLineEdit(programSettings.value(tr("Check threads"), 1).toString()); - layout->addWidget(new QLabel(tr("Number of threads"))); - layout->addWidget(mJobs); - mJobs->setValidator(new QIntValidator(this)); - - - //Show All - mShowAll = AddCheckbox(layout, tr("Show all"), tr("Check show all"), false); - - //Check Coding Style - mCheckCodingStyle = AddCheckbox(layout, tr("Check Coding Style"), tr("Check coding style"), false); - - //Errors only - mErrorsOnly = AddCheckbox(layout, tr("Errors only"), tr("Check errors only"), false); - - //Verbose - mVerbose = AddCheckbox(layout, tr("Verbose"), tr("Check verbose"), false); - - //Force - mForce = AddCheckbox(layout, tr("Force"), tr("Check force"), false); - - //XML - mXml = AddCheckbox(layout, tr("XML"), tr("Check xml"), false); - - //Unused functions - mUnusedFunctions = AddCheckbox(layout, tr("Unused functions"), tr("Check unused functions"), false); - - //Security - mSecurity = AddCheckbox(layout, tr("Security"), tr("Check security"), false); - - //Vcl - //mVcl = AddCheckbox(layout, tr("Vcl"), tr("Check vcl"), false); - - - - - - - buttonLayout->addWidget(ok); - buttonLayout->addWidget(cancel); - layout->addLayout(buttonLayout); - - - connect(ok, SIGNAL(clicked()), - this, SLOT(accept())); - connect(cancel, SIGNAL(clicked()), - this, SLOT(reject())); - - setWindowTitle(tr("Select files to check")); - setLayout(layout); - - LoadSettings(); - -} - -CheckDialog::~CheckDialog() -{ - SaveSettings(); -} - - -QStringList CheckDialog::RemoveUnacceptedFiles(const QStringList &list) -{ - QStringList result; - QString str; - foreach(str, list) - { - if (FileLister::AcceptFile(str.toStdString())) - { - result << str; - } - } - - return result; -} - -QStringList CheckDialog::GetFiles(QModelIndex index) -{ - QFileInfo info(mModel.filePath(index)); - QStringList list; - - if (info.isDir()) - { - QDirIterator it(mModel.filePath(index), QDirIterator::Subdirectories); - - while (it.hasNext()) - { - list << it.next(); - } - } - else - { - list << mModel.filePath(index); - } - - return list; -} - -QStringList CheckDialog::RemoveDuplicates(const QStringList &list) -{ - QHash hash; - QString str; - foreach(str, list) - { - hash[str] = 0; - } - - return QStringList(hash.uniqueKeys()); -} - -QStringList CheckDialog::GetSelectedFiles() -{ - QModelIndexList indexes = mFileTree->selectionModel()->selectedRows(); - QStringList list; - QModelIndex index; - - foreach(index, indexes) - { - if (!mModel.filePath(index).isEmpty()) - { - list << GetFiles(index); - } - } - - QString str; - - return RemoveUnacceptedFiles(RemoveDuplicates(list)); -} - - -Qt::CheckState CheckDialog::BoolToCheckState(bool yes) -{ - if (yes) - { - return Qt::Checked; - } - return Qt::Unchecked; -} - -bool CheckDialog::CheckStateToBool(Qt::CheckState state) -{ - if (state == Qt::Checked) - { - return true; - } - return false; -} - -QCheckBox* CheckDialog::AddCheckbox(QVBoxLayout *layout, - const QString &label, - const QString &settings, - bool value) -{ - QCheckBox *result = new QCheckBox(label); - result->setCheckState(BoolToCheckState(mSettings.value(settings, value).toInt())); - - //layout->addWidget(new QLabel(label)); - layout->addWidget(result); - - return result; -} - -Settings CheckDialog::GetSettings() -{ - Settings result; - result._debug = false; - result._showAll = CheckStateToBool(mShowAll->checkState()); - result._checkCodingStyle = CheckStateToBool(mCheckCodingStyle->checkState()); - result._errorsOnly = CheckStateToBool(mErrorsOnly->checkState()); - result._verbose = CheckStateToBool(mVerbose->checkState()); - result._force = CheckStateToBool(mForce->checkState()); - result._xml = CheckStateToBool(mXml->checkState()); - result._unusedFunctions = CheckStateToBool(mUnusedFunctions->checkState()); - result._security = CheckStateToBool(mSecurity->checkState()); - //result._vcl = CheckStateToBool(mVcl->checkState()); - result._jobs = mJobs->text().toInt(); - return result; -} - -QString CheckDialog::GetDefaultPath() -{ - QStringList list = GetSelectedFiles(); - int len = 9999; - QString file, shortest; - - if (list.size() == 0) - { - return QDir::currentPath(); - } - - foreach(file, list) - { - if (file.size() < len) - { - shortest = file; - len = file.size(); - } - } - - return shortest; -} - -void CheckDialog::LoadSettings() -{ - /* - if (mSettings.value("Check dialog maximized",false).toBool()) - { - showMaximized(); - } - else - {*/ - resize(mSettings.value(tr("Check dialog width"), 800).toInt(), mSettings.value(tr("Check dialog height"), 600).toInt()); - //} - - for (int i = 0;i < mModel.columnCount();i++) - { - //mFileTree.columnWidth(i); - QString temp = QString(tr("Check dialog column %1 width")).arg(i); - mFileTree->setColumnWidth(i, mSettings.value(temp, 800 / mModel.columnCount()).toInt()); - } -} - -void CheckDialog::SaveSettings() -{ - mSettings.setValue(tr("Check dialog width"), size().width()); - mSettings.setValue(tr("Check dialog height"), size().height()); - //mSettings.setValue("Check dialog maximized", isMaximized()); - - for (int i = 0;i < mModel.columnCount();i++) - { - QString temp = QString(tr("Check dialog column %1 width")).arg(i); - mSettings.setValue(temp, mFileTree->columnWidth(i)); - } -} - -void CheckDialog::SaveCheckboxValues() -{ - mSettings.setValue(tr("Check threads"), mJobs->text().toInt()); - SaveCheckboxValue(mShowAll, tr("Check show all")); - SaveCheckboxValue(mCheckCodingStyle, tr("Check coding style")); - SaveCheckboxValue(mErrorsOnly, tr("Check errors only")); - SaveCheckboxValue(mVerbose, tr("Check verbose")); - SaveCheckboxValue(mForce, tr("Check force")); - SaveCheckboxValue(mXml, tr("Check xml")); - SaveCheckboxValue(mUnusedFunctions, tr("Check unused functions")); - SaveCheckboxValue(mSecurity, tr("Check security")); -} - -void CheckDialog::SaveCheckboxValue(QCheckBox *box, const QString &name) -{ - mSettings.setValue(name, CheckStateToBool(box->checkState())); -} diff --git a/gui/checkdialog.h b/gui/checkdialog.h deleted file mode 100644 index 3bf34fa1e..000000000 --- a/gui/checkdialog.h +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Cppcheck - A tool for static C/C++ code analysis - * Copyright (C) 2007-2009 Daniel Marjamäki, Reijo Tomperi, Nicolas Le Cam, - * Leandro Penz, Kimmo Varis, Vesa Pikki - * - * 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 "../src/settings.h" -#include -#include -#include -#include - -/** -* @brief Dialog to select what and how to check -* -*/ -class CheckDialog : public QDialog -{ - Q_OBJECT -public: - CheckDialog(QSettings &programSettings); - virtual ~CheckDialog(); - - /** - * @brief Get cppcheck settings based on user selections - * - * @return cppcheck settings - */ - Settings GetSettings(); - - /** - * @brief Get the root path of current selection - * - * @return default path to use next time - */ - QString GetDefaultPath(); - - /** - * @brief Get a list of selected files and directories - * - * @return list of selected files - */ - QStringList GetSelectedFiles(); - - /** - * @brief Save all checkbox values - * - */ - void SaveCheckboxValues(); -protected: - QStringList RemoveUnacceptedFiles(const QStringList &list); - QStringList RemoveDuplicates(const QStringList &list); - QStringList GetFiles(QModelIndex index); - - /** - * @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 Item model for mFileTree - * - */ - QDirModel mModel; - - /** - * @brief Filetree to select files from - * - */ - QTreeView *mFileTree; - - /** - * @brief How many threads should cppcheck have - * - */ - QLineEdit *mJobs; - - /** - * @brief Cppcheck setting - * - */ - QCheckBox *mShowAll; - - /** - * @brief Cppcheck setting - * - */ - QCheckBox *mCheckCodingStyle; - - /** - * @brief Cppcheck setting - * - */ - QCheckBox *mErrorsOnly; - - /** - * @brief Cppcheck setting - * - */ - QCheckBox *mVerbose; - - /** - * @brief Cppcheck setting - * - */ - QCheckBox *mForce; - - /** - * @brief Cppcheck setting - * - */ - QCheckBox *mXml; - - /** - * @brief Cppcheck setting - * - */ - QCheckBox *mUnusedFunctions; - - /** - * @brief Cppcheck setting - * - */ - QCheckBox *mSecurity; - - /** - * @brief Cppcheck setting - * - */ - QCheckBox *mVcl; - - /** - * @brief Settings - * - */ - QSettings &mSettings; - - -private: -}; - -#endif // CHECKDIALOG_H