// Copyright(c) 2017-2018 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 . #include "commandoption.h" CommandOption::CommandOption(const QString &name, const QString &description, const QString &valueName, const QString &defaultValue) : m_names(name), m_description(description), m_valueName(valueName), m_value(defaultValue) { m_checker = [](QString const&){ return true; }; } CommandOption::CommandOption(const QStringList &names, const QString &description, const QString &valueName, const QString &defaultValue) : m_names(names), m_description(description), m_valueName(valueName), m_value(defaultValue) { m_checker = [](QString const&) -> bool { return true; }; } void CommandOption::setName(const QString &name) { m_names = QStringList() << name; } void CommandOption::setNames(const QStringList &names) { m_names = names; } QStringList CommandOption::names() const { return m_names; } QStringList CommandOption::dashedNames() const { QStringList dashedNames; for (const QString &name: m_names) { // prepend "-" to single character options, and "--" to the others QString dashedName = (name.length() == 1) ? QStringLiteral("-%1").arg(name) : QStringLiteral("--%1").arg(name); dashedNames << dashedName; } return dashedNames; } void CommandOption::setValueName(const QString &name) { m_valueName = name; } QString CommandOption::valueName() const { return m_valueName; } void CommandOption::setValue(const QString &value) { if (m_valueName.isEmpty()) { m_valueName = "value"; } m_value = value; } QString CommandOption::value() const { return m_value; } void CommandOption::addChecker(const function checker, const QString &errMsg) { m_checker = checker; m_errorMsg = errMsg; } bool CommandOption::checkValue(const QString &value) const { return m_checker(value); } QString CommandOption::description() const { return m_description; } void CommandOption::setDescription(const QString &description) { m_description = description; } QString CommandOption::errorMsg() const { return m_errorMsg; } bool CommandOption::operator ==(const CommandOption &option) const { return m_description == option.m_description && m_names == option.m_names && m_valueName == option.m_valueName; }