// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors // // This file is part of Flameshot. // // Flameshot 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. // // Flameshot 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 Flameshot. If not, see . #pragma once #include #include using std::function; class CommandOption { public: CommandOption(const QString& name, const QString& description, const QString& valueName = QString(), const QString& defaultValue = QString()); CommandOption(const QStringList& names, const QString& description, const QString& valueName = QString(), const QString& defaultValue = QString()); void setName(const QString& name); void setNames(const QStringList& names); QStringList names() const; QStringList dashedNames() const; void setValueName(const QString& name); QString valueName() const; void setValue(const QString& value); QString value() const; void addChecker(const function checker, const QString& errMsg); bool checkValue(const QString& value) const; QString description() const; void setDescription(const QString& description); QString errorMsg() const; bool operator==(const CommandOption& option) const; private: QStringList m_names; QString m_description; QString m_valueName; QString m_value; function m_checker; QString m_errorMsg; };