reapack

Package manager for REAPER
Log | Files | Refs | Submodules | README | LICENSE

commit 08b71b5051285bed74a1470845e5ec426400302f
parent 1284548cea233fb218718300f4d2410c9ba896c0
Author: cfillion <cfillion@users.noreply.github.com>
Date:   Wed, 10 Aug 2016 21:39:19 -0400

show package descriptions in progress and report dialogs

Diffstat:
Msrc/about.cpp | 5+----
Msrc/browser.cpp | 8++------
Msrc/package.cpp | 11++++++++++-
Msrc/package.hpp | 4++++
Mtest/package.cpp | 31+++++++++++++++++++++++++------
5 files changed, 42 insertions(+), 17 deletions(-)

diff --git a/src/about.cpp b/src/about.cpp @@ -355,10 +355,7 @@ void AboutPackage::onCommand(const int id, const int event) const string &AboutPackage::what() const { - if(!m_package->description().empty()) - return m_package->description(); - else - return m_package->name(); + return m_package->displayName(); } ListView *AboutPackage::createMenu() diff --git a/src/browser.cpp b/src/browser.cpp @@ -711,12 +711,8 @@ string Browser::getValue(const Column col, const Entry &entry) const case NameColumn: { const auto config = m_reapack->config()->browser(); - if(pkg) { - if(!config->showDescs || pkg->description().empty()) - return pkg->name(); - else - return pkg->description(); - } + if(pkg) + return pkg->displayName(config->showDescs); else return regEntry.package; } diff --git a/src/package.cpp b/src/package.cpp @@ -60,6 +60,15 @@ string Package::displayType(const Type type) } } +const string &Package::displayName(const string &name, + const string &desc, const bool enableDesc) +{ + if(!enableDesc || desc.empty()) + return name; + else + return desc; +} + Package::Package(const Type type, const string &name, const Category *cat) : m_category(cat), m_type(type), m_name(name) { @@ -77,7 +86,7 @@ Package::~Package() string Package::fullName() const { - return m_category ? m_category->fullName() + "/" + m_name : m_name; + return m_category ? m_category->fullName() + "/" + displayName() : displayName(); } bool Package::addVersion(const Version *ver) diff --git a/src/package.hpp b/src/package.hpp @@ -40,6 +40,8 @@ public: static Type getType(const char *); static std::string displayType(Type); + static const std::string &displayName(const std::string &name, + const std::string &desc, bool enableDesc = true); Package(const Type, const std::string &name, const Category * = nullptr); ~Package(); @@ -51,6 +53,8 @@ public: std::string fullName() const; void setDescription(const std::string &d) { m_desc = d; } const std::string &description() const { return m_desc; } + const std::string &displayName(bool enableDescs = true) const + { return displayName(m_name, m_desc, enableDescs); } Metadata *metadata() { return &m_metadata; } const Metadata *metadata() const { return &m_metadata; } diff --git a/test/package.cpp b/test/package.cpp @@ -236,23 +236,30 @@ TEST_CASE("find matching version", M) { TEST_CASE("full name", M) { SECTION("no category") { - Package pack(Package::ScriptType, "file.name"); + const Package pack(Package::ScriptType, "file.name"); REQUIRE(pack.fullName() == "file.name"); } SECTION("with category") { - Category cat("Category Name"); - Package pack(Package::ScriptType, "file.name", &cat); + const Category cat("Category Name"); + const Package pack(Package::ScriptType, "file.name", &cat); REQUIRE(pack.fullName() == "Category Name/file.name"); } SECTION("with index") { - Index ri("Remote Name"); - Category cat("Category Name", &ri); - Package pack(Package::ScriptType, "file.name", &cat); + const Index ri("Remote Name"); + const Category cat("Category Name", &ri); + const Package pack(Package::ScriptType, "file.name", &cat); REQUIRE(pack.fullName() == "Remote Name/Category Name/file.name"); } + + SECTION("with description") { + const Category cat("Category Name"); + Package pack(Package::ScriptType, "file.name", &cat); + pack.setDescription("Hello World"); + REQUIRE(pack.fullName() == "Category Name/Hello World"); + } } TEST_CASE("package description", M) { @@ -262,3 +269,15 @@ TEST_CASE("package description", M) { pack.setDescription("hello world"); REQUIRE(pack.description() == "hello world"); } + +TEST_CASE("package display name", M) { + Package pack(Package::ScriptType, "test.lua"); + REQUIRE(pack.displayName() == "test.lua"); + REQUIRE(pack.displayName(false) == "test.lua"); + REQUIRE(pack.displayName(true) == "test.lua"); + + pack.setDescription("hello world"); + REQUIRE(pack.displayName() == "hello world"); + REQUIRE(pack.displayName(false) == "test.lua"); + REQUIRE(pack.displayName(true) == "hello world"); +}