forked from mia/Aegisub
Make the CPS warning thresholds and color customizable
This commit is contained in:
parent
7bc35cecb7
commit
1bd3572054
|
@ -159,6 +159,7 @@ void BaseGrid::OnShowColMenu(wxCommandEvent &event) {
|
||||||
int item = event.GetId() - MENU_SHOW_COL;
|
int item = event.GetId() - MENU_SHOW_COL;
|
||||||
bool new_value = !columns_visible[item];
|
bool new_value = !columns_visible[item];
|
||||||
|
|
||||||
|
columns_visible.resize(columns.size(), true);
|
||||||
columns_visible[item] = new_value;
|
columns_visible[item] = new_value;
|
||||||
OPT_SET("Subtitle/Grid/Column")->SetListBool(columns_visible);
|
OPT_SET("Subtitle/Grid/Column")->SetListBool(columns_visible);
|
||||||
columns[item]->SetVisible(new_value);
|
columns[item]->SetVisible(new_value);
|
||||||
|
|
|
@ -250,6 +250,9 @@ wxColor blend(wxColor fg, wxColor bg, double alpha) {
|
||||||
class GridColumnCPS final : public GridColumn {
|
class GridColumnCPS final : public GridColumn {
|
||||||
const agi::OptionValue *ignore_whitespace = OPT_GET("Subtitle/Character Counter/Ignore Whitespace");
|
const agi::OptionValue *ignore_whitespace = OPT_GET("Subtitle/Character Counter/Ignore Whitespace");
|
||||||
const agi::OptionValue *ignore_punctuation = OPT_GET("Subtitle/Character Counter/Ignore Punctuation");
|
const agi::OptionValue *ignore_punctuation = OPT_GET("Subtitle/Character Counter/Ignore Punctuation");
|
||||||
|
const agi::OptionValue *cps_warn = OPT_GET("Subtitle/Character Counter/CPS Warning Threshold");
|
||||||
|
const agi::OptionValue *cps_error = OPT_GET("Subtitle/Character Counter/CPS Error Threshold");
|
||||||
|
const agi::OptionValue *bg_color = OPT_GET("Colour/Subtitle Grid/CPS Error");
|
||||||
|
|
||||||
public:
|
public:
|
||||||
COLUMN_HEADER(_("CPS"))
|
COLUMN_HEADER(_("CPS"))
|
||||||
|
@ -289,12 +292,11 @@ public:
|
||||||
wxSize ext = dc.GetTextExtent(str);
|
wxSize ext = dc.GetTextExtent(str);
|
||||||
auto tc = dc.GetTextForeground();
|
auto tc = dc.GetTextForeground();
|
||||||
|
|
||||||
int cps_min = 15;
|
int cps_min = cps_warn->GetInt();
|
||||||
int cps_max = 30;
|
int cps_max = std::max<int>(cps_min, cps_error->GetInt());
|
||||||
if (cps > cps_min) {
|
if (cps > cps_min) {
|
||||||
double alpha = std::min((double)(cps - cps_min + 1) / (cps_max - cps_min + 1), 1.0);
|
double alpha = std::min((double)(cps - cps_min + 1) / (cps_max - cps_min + 1), 1.0);
|
||||||
auto bg = dc.GetBrush().GetColour();
|
dc.SetBrush(wxBrush(blend(to_wx(bg_color->GetColor()), dc.GetBrush().GetColour(), alpha)));
|
||||||
dc.SetBrush(wxBrush(blend(wxColor(255, 0, 0), bg, alpha)));
|
|
||||||
dc.SetPen(*wxTRANSPARENT_PEN);
|
dc.SetPen(*wxTRANSPARENT_PEN);
|
||||||
dc.DrawRectangle(x, y + 1, width, ext.GetHeight() + 3);
|
dc.DrawRectangle(x, y + 1, width, ext.GetHeight() + 3);
|
||||||
dc.SetTextForeground(blend(*wxBLACK, tc, alpha));
|
dc.SetTextForeground(blend(*wxBLACK, tc, alpha));
|
||||||
|
|
|
@ -216,6 +216,7 @@
|
||||||
"Selection" : "rgb(206, 255, 231)"
|
"Selection" : "rgb(206, 255, 231)"
|
||||||
},
|
},
|
||||||
"Collision" : "rgb(255,0,0)",
|
"Collision" : "rgb(255,0,0)",
|
||||||
|
"CPS Error" : "rgb(255,0,0)",
|
||||||
"Header" : "rgb(165, 207, 231)",
|
"Header" : "rgb(165, 207, 231)",
|
||||||
"Left Column" : "rgb(196, 236, 201)",
|
"Left Column" : "rgb(196, 236, 201)",
|
||||||
"Lines" : "rgb(190,190,190)",
|
"Lines" : "rgb(190,190,190)",
|
||||||
|
@ -352,7 +353,9 @@
|
||||||
"Subtitle" : {
|
"Subtitle" : {
|
||||||
"Character Counter" : {
|
"Character Counter" : {
|
||||||
"Ignore Whitespace" : true,
|
"Ignore Whitespace" : true,
|
||||||
"Ignore Punctuation" : true
|
"Ignore Punctuation" : true,
|
||||||
|
"CPS Warning Threshold" : 15,
|
||||||
|
"CPS Error Threshold" : 30
|
||||||
},
|
},
|
||||||
"Character Limit" : 40,
|
"Character Limit" : 40,
|
||||||
"Default Resolution" : {
|
"Default Resolution" : {
|
||||||
|
@ -366,15 +369,6 @@
|
||||||
},
|
},
|
||||||
"Grid" : {
|
"Grid" : {
|
||||||
"Column" : [
|
"Column" : [
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true}
|
{"bool" : true}
|
||||||
],
|
],
|
||||||
"Focus Allow" : true,
|
"Focus Allow" : true,
|
||||||
|
|
|
@ -216,6 +216,7 @@
|
||||||
"Selection" : "rgb(206, 255, 231)"
|
"Selection" : "rgb(206, 255, 231)"
|
||||||
},
|
},
|
||||||
"Collision" : "rgb(255,0,0)",
|
"Collision" : "rgb(255,0,0)",
|
||||||
|
"CPS Error" : "rgb(255,0,0)",
|
||||||
"Header" : "rgb(165, 207, 231)",
|
"Header" : "rgb(165, 207, 231)",
|
||||||
"Left Column" : "rgb(196, 236, 201)",
|
"Left Column" : "rgb(196, 236, 201)",
|
||||||
"Lines" : "rgb(190,190,190)",
|
"Lines" : "rgb(190,190,190)",
|
||||||
|
@ -352,7 +353,9 @@
|
||||||
"Subtitle" : {
|
"Subtitle" : {
|
||||||
"Character Counter" : {
|
"Character Counter" : {
|
||||||
"Ignore Whitespace" : true,
|
"Ignore Whitespace" : true,
|
||||||
"Ignore Punctuation" : true
|
"Ignore Punctuation" : true,
|
||||||
|
"CPS Warning Threshold" : 15,
|
||||||
|
"CPS Error Threshold" : 30
|
||||||
},
|
},
|
||||||
"Character Limit" : 40,
|
"Character Limit" : 40,
|
||||||
"Default Resolution" : {
|
"Default Resolution" : {
|
||||||
|
@ -366,15 +369,6 @@
|
||||||
},
|
},
|
||||||
"Grid" : {
|
"Grid" : {
|
||||||
"Column" : [
|
"Column" : [
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true},
|
|
||||||
{"bool" : true}
|
{"bool" : true}
|
||||||
],
|
],
|
||||||
"Focus Allow" : true,
|
"Focus Allow" : true,
|
||||||
|
|
|
@ -194,6 +194,8 @@ Interface::Interface(wxTreebook *book, Preferences *parent): OptionPage(book, pa
|
||||||
|
|
||||||
wxFlexGridSizer *character_count = PageSizer(_("Character Counter"));
|
wxFlexGridSizer *character_count = PageSizer(_("Character Counter"));
|
||||||
OptionAdd(character_count, _("Maximum characters per line"), "Subtitle/Character Limit", 0, 1000);
|
OptionAdd(character_count, _("Maximum characters per line"), "Subtitle/Character Limit", 0, 1000);
|
||||||
|
OptionAdd(character_count, _("Characters Per Second Warning Threshold"), "Subtitle/Character Counter/CPS Warning Threshold", 0, 1000);
|
||||||
|
OptionAdd(character_count, _("Characters Per Second Error Threshold"), "Subtitle/Character Counter/CPS Error Threshold", 0, 1000);
|
||||||
OptionAdd(character_count, _("Ignore whitespace"), "Subtitle/Character Counter/Ignore Whitespace");
|
OptionAdd(character_count, _("Ignore whitespace"), "Subtitle/Character Counter/Ignore Whitespace");
|
||||||
OptionAdd(character_count, _("Ignore punctuation"), "Subtitle/Character Counter/Ignore Punctuation");
|
OptionAdd(character_count, _("Ignore punctuation"), "Subtitle/Character Counter/Ignore Punctuation");
|
||||||
|
|
||||||
|
@ -255,6 +257,7 @@ Interface_Colours::Interface_Colours(wxTreebook *book, Preferences *parent): Opt
|
||||||
OptionAdd(grid, _("Left Column"), "Colour/Subtitle Grid/Left Column");
|
OptionAdd(grid, _("Left Column"), "Colour/Subtitle Grid/Left Column");
|
||||||
OptionAdd(grid, _("Active Line Border"), "Colour/Subtitle Grid/Active Border");
|
OptionAdd(grid, _("Active Line Border"), "Colour/Subtitle Grid/Active Border");
|
||||||
OptionAdd(grid, _("Lines"), "Colour/Subtitle Grid/Lines");
|
OptionAdd(grid, _("Lines"), "Colour/Subtitle Grid/Lines");
|
||||||
|
OptionAdd(grid, _("CPS Error"), "Colour/Subtitle Grid/CPS Error");
|
||||||
|
|
||||||
sizer = main_sizer;
|
sizer = main_sizer;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue