diff --git a/res/translations/ru_RU.ts b/res/translations/ru_RU.ts
index 0b1d767..a17db29 100644
--- a/res/translations/ru_RU.ts
+++ b/res/translations/ru_RU.ts
@@ -2178,7 +2178,7 @@ Release note:
Used: %1 Remain: %2 Expire: %3
- Использовано: %1, осталось: %2, истекло: %3
+ Использовано: %1, осталось: %2, истекает: %3
Default
diff --git a/src/ui/group/GroupItem.cpp b/src/ui/group/GroupItem.cpp
index 5ecd892..977253d 100644
--- a/src/ui/group/GroupItem.cpp
+++ b/src/ui/group/GroupItem.cpp
@@ -35,7 +35,7 @@ QString ParseSubInfo(const QString &info) {
}
result = QObject::tr("Used: %1 Remain: %2 Expire: %3")
- .arg(ReadableSize(used), ReadableSize(total - used), DisplayTime(expire, QLocale::ShortFormat));
+ .arg(ReadableSize(used), (total == 0) ? QString::fromUtf8("\u221E") : ReadableSize(total - used), DisplayTime(expire, QLocale::ShortFormat));
return result;
}
diff --git a/src/ui/setting/RouteItem.cpp b/src/ui/setting/RouteItem.cpp
index eecbec3..00e7281 100644
--- a/src/ui/setting/RouteItem.cpp
+++ b/src/ui/setting/RouteItem.cpp
@@ -228,7 +228,9 @@ RouteItem::RouteItem(QWidget *parent, const std::shared_ptrrule_name, &QLineEdit::textChanged, this, [=,this](const QString& text) {
if (currentIndex == -1) return;
chain->Rules[currentIndex]->name = QString(text);
- updateRouteItemsView();
+ auto ruleNameCursorPosition = ui->rule_name->cursorPosition();
+ updateRouteItemsView();
+ ui->rule_name->setCursorPosition(ruleNameCursorPosition);
});
connect(ui->rule_attr_selector, &QComboBox::currentTextChanged, this, [=,this](const QString& text){