diff --git a/ChangeLog b/ChangeLog index 870438d9e..d6aa75d7d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ 2.5.1 () - - The default configuration is now 256-color only. +- The 'columns' report now shows whether a column is modifiable or read only. ------ current release --------------------------- diff --git a/src/Task.cpp b/src/Task.cpp index 868d14038..55f7c099d 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -2002,7 +2002,7 @@ void Task::modify (modType type, bool text_required /* = false */) ! column->modifiable ()) throw format (STRING_INVALID_MOD, name, value); - // String type attributes only get DOM resolution, no eval. + // DOM resolution. If it evals, store that, otherwise raw. Variant evaluatedValue; if (name != "project" || Lexer::isDOM (value)) { @@ -2170,7 +2170,7 @@ void Task::modify (modType type, bool text_required /* = false */) ++modCount; } - // String type columns are not eval'd. Welll, not much. + // String type columns are not eval'd. Well, not much. else if (column->type () == "string") { std::string strValue = (std::string) evaluatedValue; diff --git a/src/commands/CmdColumns.cpp b/src/commands/CmdColumns.cpp index cd4d43f6b..f4c979d47 100644 --- a/src/commands/CmdColumns.cpp +++ b/src/commands/CmdColumns.cpp @@ -73,6 +73,7 @@ int CmdColumns::execute (std::string& output) formats.width (context.getWidth ()); formats.add (Column::factory ("string", STRING_COLUMN_LABEL_COLUMN)); formats.add (Column::factory ("string", STRING_COLUMN_LABEL_TYPE)); + formats.add (Column::factory ("string", STRING_COLUMN_LABEL_MODIFY)); formats.add (Column::factory ("string", STRING_COLUMN_LABEL_STYLES)); formats.add (Column::factory ("string", STRING_COLUMN_LABEL_EXAMPLES)); @@ -99,8 +100,9 @@ int CmdColumns::execute (std::string& output) int row = formats.addRow (); formats.set (row, 0, i == 0 ? name : ""); formats.set (row, 1, i == 0 ? context.columns[name]->type () : ""); - formats.set (row, 2, styles[i] + (i == 0 ? "*" : "")); - formats.set (row, 3, i < examples.size () ? examples[i] : ""); + formats.set (row, 2, i == 0 ? (context.columns[name]->modifiable () ? STRING_COLUMN_LABEL_MODIFY : STRING_COLUMN_LABEL_NOMODIFY) : ""); + formats.set (row, 3, styles[i] + (i == 0 ? "*" : "")); + formats.set (row, 4, i < examples.size () ? examples[i] : ""); } } } @@ -108,11 +110,12 @@ int CmdColumns::execute (std::string& output) int row = formats.addRow (); formats.set (row, 0, ""); formats.set (row, 1, ""); - formats.set (row, 2, "default*"); + formats.set (row, 2, "Modifiable"); + formats.set (row, 3, "default*"); row = formats.addRow (); formats.set (row, 0, ""); - formats.set (row, 2, "indicator"); + formats.set (row, 3, "indicator"); output = optionalBlankLine () + formats.render () diff --git a/src/l10n/deu-DEU.h b/src/l10n/deu-DEU.h index 3c582f14b..247db4648 100644 --- a/src/l10n/deu-DEU.h +++ b/src/l10n/deu-DEU.h @@ -224,6 +224,8 @@ #define STRING_COLUMN_LABEL_SCHED "Geplant" #define STRING_COLUMN_LABEL_UDA "Name" #define STRING_COLUMN_LABEL_TYPE "Typ" +#define STRING_COLUMN_LABEL_MODIFY "Modifiable" +#define STRING_COLUMN_LABEL_NOMODIFY "Read Only" #define STRING_COLUMN_LABEL_LABEL "Beschreibung" #define STRING_COLUMN_LABEL_DEFAULT "Standard" #define STRING_COLUMN_LABEL_VALUES "Erlaubte Werte" diff --git a/src/l10n/eng-USA.h b/src/l10n/eng-USA.h index 54aaae84b..21b256fc7 100644 --- a/src/l10n/eng-USA.h +++ b/src/l10n/eng-USA.h @@ -224,6 +224,8 @@ #define STRING_COLUMN_LABEL_SCHED "Scheduled" #define STRING_COLUMN_LABEL_UDA "Name" #define STRING_COLUMN_LABEL_TYPE "Type" +#define STRING_COLUMN_LABEL_MODIFY "Modifiable" +#define STRING_COLUMN_LABEL_NOMODIFY "Read Only" #define STRING_COLUMN_LABEL_LABEL "Label" #define STRING_COLUMN_LABEL_DEFAULT "Default" #define STRING_COLUMN_LABEL_VALUES "Allowed Values" diff --git a/src/l10n/epo-RUS.h b/src/l10n/epo-RUS.h index 9f95801a2..89fae46de 100644 --- a/src/l10n/epo-RUS.h +++ b/src/l10n/epo-RUS.h @@ -224,6 +224,8 @@ #define STRING_COLUMN_LABEL_SCHED "Fiksa" #define STRING_COLUMN_LABEL_UDA "Nomo" #define STRING_COLUMN_LABEL_TYPE "Tipo" +#define STRING_COLUMN_LABEL_MODIFY "Modifiable" +#define STRING_COLUMN_LABEL_NOMODIFY "Read Only" #define STRING_COLUMN_LABEL_LABEL "Rubriko" #define STRING_COLUMN_LABEL_DEFAULT "Defaŭlto" #define STRING_COLUMN_LABEL_VALUES "Valoroj permesataj" diff --git a/src/l10n/esp-ESP.h b/src/l10n/esp-ESP.h index 6a8542e69..302106a72 100644 --- a/src/l10n/esp-ESP.h +++ b/src/l10n/esp-ESP.h @@ -225,6 +225,8 @@ #define STRING_COLUMN_LABEL_SCHED "Programada" #define STRING_COLUMN_LABEL_UDA "Nombre" #define STRING_COLUMN_LABEL_TYPE "Tipo" +#define STRING_COLUMN_LABEL_MODIFY "Modifiable" +#define STRING_COLUMN_LABEL_NOMODIFY "Read Only" #define STRING_COLUMN_LABEL_LABEL "Etiqueta" #define STRING_COLUMN_LABEL_DEFAULT "Defecto" #define STRING_COLUMN_LABEL_VALUES "Valores permitidos" diff --git a/src/l10n/fra-FRA.h b/src/l10n/fra-FRA.h index 3b0746272..8bd024e85 100644 --- a/src/l10n/fra-FRA.h +++ b/src/l10n/fra-FRA.h @@ -224,6 +224,8 @@ #define STRING_COLUMN_LABEL_SCHED "Planifiée" #define STRING_COLUMN_LABEL_UDA "Nom" #define STRING_COLUMN_LABEL_TYPE "Type" +#define STRING_COLUMN_LABEL_MODIFY "Modifiable" +#define STRING_COLUMN_LABEL_NOMODIFY "Read Only" #define STRING_COLUMN_LABEL_LABEL "Étiq" #define STRING_COLUMN_LABEL_DEFAULT "Défaut" #define STRING_COLUMN_LABEL_VALUES "Valeurs autorisées" diff --git a/src/l10n/ita-ITA.h b/src/l10n/ita-ITA.h index a662ef547..645d074aa 100644 --- a/src/l10n/ita-ITA.h +++ b/src/l10n/ita-ITA.h @@ -224,6 +224,8 @@ #define STRING_COLUMN_LABEL_SCHED "Fissato" #define STRING_COLUMN_LABEL_UDA "Nome" #define STRING_COLUMN_LABEL_TYPE "Tipo" +#define STRING_COLUMN_LABEL_MODIFY "Modifiable" +#define STRING_COLUMN_LABEL_NOMODIFY "Read Only" #define STRING_COLUMN_LABEL_LABEL "Etichetta" #define STRING_COLUMN_LABEL_DEFAULT "Predefinito" #define STRING_COLUMN_LABEL_VALUES "Valori consentiti" diff --git a/src/l10n/jpn-JPN.h b/src/l10n/jpn-JPN.h index 0b6a90b89..8db51f148 100644 --- a/src/l10n/jpn-JPN.h +++ b/src/l10n/jpn-JPN.h @@ -224,6 +224,8 @@ #define STRING_COLUMN_LABEL_SCHED "Scheduled" #define STRING_COLUMN_LABEL_UDA "Name" #define STRING_COLUMN_LABEL_TYPE "Type" +#define STRING_COLUMN_LABEL_MODIFY "Modifiable" +#define STRING_COLUMN_LABEL_NOMODIFY "Read Only" #define STRING_COLUMN_LABEL_LABEL "Label" #define STRING_COLUMN_LABEL_DEFAULT "Default" #define STRING_COLUMN_LABEL_VALUES "Allowed Values" diff --git a/src/l10n/pol-POL.h b/src/l10n/pol-POL.h index 033981c34..96e08661b 100644 --- a/src/l10n/pol-POL.h +++ b/src/l10n/pol-POL.h @@ -224,6 +224,8 @@ #define STRING_COLUMN_LABEL_SCHED "Zaplanowane" #define STRING_COLUMN_LABEL_UDA "Nazwa" #define STRING_COLUMN_LABEL_TYPE "Typ" +#define STRING_COLUMN_LABEL_MODIFY "Modifiable" +#define STRING_COLUMN_LABEL_NOMODIFY "Read Only" #define STRING_COLUMN_LABEL_LABEL "Etykieta" #define STRING_COLUMN_LABEL_DEFAULT "Domyślne" #define STRING_COLUMN_LABEL_VALUES "Dozwolone Wartości" diff --git a/src/l10n/por-PRT.h b/src/l10n/por-PRT.h index 13c7f0765..8b85739f2 100644 --- a/src/l10n/por-PRT.h +++ b/src/l10n/por-PRT.h @@ -225,6 +225,8 @@ #define STRING_COLUMN_LABEL_SCHED "Agendado" #define STRING_COLUMN_LABEL_UDA "Nome" #define STRING_COLUMN_LABEL_TYPE "Tipo" +#define STRING_COLUMN_LABEL_MODIFY "Modifiable" +#define STRING_COLUMN_LABEL_NOMODIFY "Read Only" #define STRING_COLUMN_LABEL_LABEL "Rótulo" #define STRING_COLUMN_LABEL_DEFAULT "Por omissão" #define STRING_COLUMN_LABEL_VALUES "Valores Permitidos"