mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-07-07 20:06:36 +02:00
Expression support
- Added Context::getColumns to return a vector of column names. This is to help a shift toward using the Column objects to assist in the parsing/validation of data entry/modifications. - Added Column::modifiable to delegate an attributes readable/writeable state. This means the columns will be in charge of their own mutability, which will simplify and generalize Command::modify_task.
This commit is contained in:
parent
ee9199b4e0
commit
1164ea5cf1
6 changed files with 49 additions and 27 deletions
|
@ -411,6 +411,17 @@ void Context::shadow ()
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
const std::vector <std::string> Context::getColumns () const
|
||||||
|
{
|
||||||
|
std::vector <std::string> output;
|
||||||
|
std::map <std::string, Column*>::const_iterator i;
|
||||||
|
for (i = columns.begin (); i != columns.end (); ++i)
|
||||||
|
output.push_back (i->first);
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
void Context::assumeLocations ()
|
void Context::assumeLocations ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -58,6 +58,8 @@ public:
|
||||||
int getWidth (); // determine terminal width
|
int getWidth (); // determine terminal width
|
||||||
int getHeight (); // determine terminal height
|
int getHeight (); // determine terminal height
|
||||||
|
|
||||||
|
const std::vector <std::string> getColumns () const;
|
||||||
|
|
||||||
bool color (); // TTY or <other>?
|
bool color (); // TTY or <other>?
|
||||||
bool verbose (const std::string&); // Verbosity control
|
bool verbose (const std::string&); // Verbosity control
|
||||||
|
|
||||||
|
|
|
@ -38,10 +38,11 @@ extern Context context;
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
ColumnID::ColumnID ()
|
ColumnID::ColumnID ()
|
||||||
{
|
{
|
||||||
_name = "id";
|
_name = "id";
|
||||||
_type = "number";
|
_type = "number";
|
||||||
_style = "number";
|
_style = "number";
|
||||||
_label = STRING_COLUMN_LABEL_ID;
|
_label = STRING_COLUMN_LABEL_ID;
|
||||||
|
_modifiable = false;
|
||||||
|
|
||||||
_styles.push_back ("number");
|
_styles.push_back ("number");
|
||||||
|
|
||||||
|
|
|
@ -38,10 +38,11 @@ extern Context context;
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
ColumnUUID::ColumnUUID ()
|
ColumnUUID::ColumnUUID ()
|
||||||
{
|
{
|
||||||
_name = "uuid";
|
_name = "uuid";
|
||||||
_type = "string";
|
_type = "string";
|
||||||
_style = "long";
|
_style = "long";
|
||||||
_label = STRING_COLUMN_LABEL_UUID;
|
_label = STRING_COLUMN_LABEL_UUID;
|
||||||
|
_modifiable = false;
|
||||||
|
|
||||||
_styles.push_back ("long");
|
_styles.push_back ("long");
|
||||||
_styles.push_back ("short");
|
_styles.push_back ("short");
|
||||||
|
|
|
@ -132,17 +132,19 @@ Column::Column ()
|
||||||
, _style ("default")
|
, _style ("default")
|
||||||
, _label ("")
|
, _label ("")
|
||||||
, _report ("")
|
, _report ("")
|
||||||
|
, _modifiable (true)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
Column::Column (const Column& other)
|
Column::Column (const Column& other)
|
||||||
{
|
{
|
||||||
_name = other._name;
|
_name = other._name;
|
||||||
_type = other._type;
|
_type = other._type;
|
||||||
_style = other._style;
|
_style = other._style;
|
||||||
_label = other._label;
|
_label = other._label;
|
||||||
_label = other._report;
|
_label = other._report;
|
||||||
|
_modifiable = other._modifiable;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -150,11 +152,12 @@ Column& Column::operator= (const Column& other)
|
||||||
{
|
{
|
||||||
if (this != &other)
|
if (this != &other)
|
||||||
{
|
{
|
||||||
_name = other._name;
|
_name = other._name;
|
||||||
_type = other._type;
|
_type = other._type;
|
||||||
_style = other._style;
|
_style = other._style;
|
||||||
_label = other._label;
|
_label = other._label;
|
||||||
_report = other._report;
|
_report = other._report;
|
||||||
|
_modifiable = other._modifiable;
|
||||||
}
|
}
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
|
@ -163,10 +166,12 @@ Column& Column::operator= (const Column& other)
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
bool Column::operator== (const Column& other) const
|
bool Column::operator== (const Column& other) const
|
||||||
{
|
{
|
||||||
return _name == other._name &&
|
return _name == other._name &&
|
||||||
_type == other._type &&
|
_type == other._type &&
|
||||||
_style == other._style &&
|
_style == other._style &&
|
||||||
_label == other._label;
|
_label == other._label &&
|
||||||
|
_report == other._report &&
|
||||||
|
_modifiable == other._modifiable;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -45,11 +45,12 @@ public:
|
||||||
bool operator== (const Column&) const; // TODO Is this necessary?
|
bool operator== (const Column&) const; // TODO Is this necessary?
|
||||||
~Column ();
|
~Column ();
|
||||||
|
|
||||||
std::string style () const { return _style; }
|
std::string style () const { return _style; }
|
||||||
std::string label () const { return _label; }
|
std::string label () const { return _label; }
|
||||||
std::string type () const { return _type; }
|
std::string type () const { return _type; }
|
||||||
std::vector <std::string> styles () const { return _styles; }
|
bool modifiable () const { return _modifiable; }
|
||||||
std::vector <std::string> examples () const { return _examples; }
|
std::vector <std::string> styles () const { return _styles; }
|
||||||
|
std::vector <std::string> examples () const { return _examples; }
|
||||||
|
|
||||||
virtual void setStyle (const std::string& value) { _style = value; }
|
virtual void setStyle (const std::string& value) { _style = value; }
|
||||||
virtual void setLabel (const std::string& value) { _label = value; }
|
virtual void setLabel (const std::string& value) { _label = value; }
|
||||||
|
@ -68,6 +69,7 @@ protected:
|
||||||
std::string _style;
|
std::string _style;
|
||||||
std::string _label;
|
std::string _label;
|
||||||
std::string _report;
|
std::string _report;
|
||||||
|
bool _modifiable;
|
||||||
std::vector <std::string> _styles;
|
std::vector <std::string> _styles;
|
||||||
std::vector <std::string> _examples;
|
std::vector <std::string> _examples;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue