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:
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");
+}