mirror of
https://github.com/kotatogram/kotatogram-desktop
synced 2025-09-01 15:15:13 +00:00
Added option to open chat on click
This commit is contained in:
@@ -2580,5 +2580,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||||||
|
|
||||||
"ktg_settings_forward" = "Forward";
|
"ktg_settings_forward" = "Forward";
|
||||||
"ktg_settings_forward_retain_selection" = "Retain selection after forward";
|
"ktg_settings_forward_retain_selection" = "Retain selection after forward";
|
||||||
|
"ktg_settings_forward_chat_on_click" = "Open chat on click";
|
||||||
|
"ktg_settings_forward_chat_on_click_description" = "You can hold Ctrl to select multiple chats regardless of this option.";
|
||||||
|
|
||||||
// Keys finished
|
// Keys finished
|
||||||
|
@@ -170,6 +170,8 @@
|
|||||||
"ktg_forward_go_to_chat": "Go to chat",
|
"ktg_forward_go_to_chat": "Go to chat",
|
||||||
"ktg_settings_forward": "Forward",
|
"ktg_settings_forward": "Forward",
|
||||||
"ktg_settings_forward_retain_selection": "Retain selection after forward",
|
"ktg_settings_forward_retain_selection": "Retain selection after forward",
|
||||||
|
"ktg_settings_forward_chat_on_click": "Open chat on click",
|
||||||
|
"ktg_settings_forward_chat_on_click_description": "You can hold Ctrl to select multiple chats regardless of this option.",
|
||||||
|
|
||||||
// This string should always be last for better work with Git.
|
// This string should always be last for better work with Git.
|
||||||
"dummy_last_string": ""
|
"dummy_last_string": ""
|
||||||
|
@@ -178,6 +178,8 @@
|
|||||||
"ktg_forward_go_to_chat": "Go to chat",
|
"ktg_forward_go_to_chat": "Go to chat",
|
||||||
"ktg_settings_forward": "Forward",
|
"ktg_settings_forward": "Forward",
|
||||||
"ktg_settings_forward_retain_selection": "Retain selection after forward",
|
"ktg_settings_forward_retain_selection": "Retain selection after forward",
|
||||||
|
"ktg_settings_forward_chat_on_click": "Open chat on click",
|
||||||
|
"ktg_settings_forward_chat_on_click_description": "You can hold Ctrl to select multiple chats regardless of this option.",
|
||||||
|
|
||||||
// This string should always be last for better work with Git.
|
// This string should always be last for better work with Git.
|
||||||
"dummy_last_string": ""
|
"dummy_last_string": ""
|
||||||
|
@@ -177,6 +177,8 @@
|
|||||||
"ktg_forward_go_to_chat": "Перейти в чат",
|
"ktg_forward_go_to_chat": "Перейти в чат",
|
||||||
"ktg_settings_forward": "Пересылка",
|
"ktg_settings_forward": "Пересылка",
|
||||||
"ktg_settings_forward_retain_selection": "Сохранять выделение после пересылки",
|
"ktg_settings_forward_retain_selection": "Сохранять выделение после пересылки",
|
||||||
|
"ktg_settings_forward_chat_on_click": "Открывать чат по клику",
|
||||||
|
"ktg_settings_forward_chat_on_click_description": "Удерживайте Ctrl для выбора нескольких чатов вне зависимости от этой настройки.",
|
||||||
|
|
||||||
// This string should always be last for better work with Git.
|
// This string should always be last for better work with Git.
|
||||||
"dummy_last_string": ""
|
"dummy_last_string": ""
|
||||||
|
@@ -170,6 +170,8 @@
|
|||||||
"ktg_forward_go_to_chat": "Go to chat",
|
"ktg_forward_go_to_chat": "Go to chat",
|
||||||
"ktg_settings_forward": "Forward",
|
"ktg_settings_forward": "Forward",
|
||||||
"ktg_settings_forward_retain_selection": "Retain selection after forward",
|
"ktg_settings_forward_retain_selection": "Retain selection after forward",
|
||||||
|
"ktg_settings_forward_chat_on_click": "Open chat on click",
|
||||||
|
"ktg_settings_forward_chat_on_click_description": "You can hold Ctrl to select multiple chats regardless of this option.",
|
||||||
|
|
||||||
// This string should always be last for better work with Git.
|
// This string should always be last for better work with Git.
|
||||||
"dummy_last_string": ""
|
"dummy_last_string": ""
|
||||||
|
@@ -177,6 +177,8 @@
|
|||||||
"ktg_forward_go_to_chat": "Go to chat",
|
"ktg_forward_go_to_chat": "Go to chat",
|
||||||
"ktg_settings_forward": "Forward",
|
"ktg_settings_forward": "Forward",
|
||||||
"ktg_settings_forward_retain_selection": "Retain selection after forward",
|
"ktg_settings_forward_retain_selection": "Retain selection after forward",
|
||||||
|
"ktg_settings_forward_chat_on_click": "Open chat on click",
|
||||||
|
"ktg_settings_forward_chat_on_click_description": "You can hold Ctrl to select multiple chats regardless of this option.",
|
||||||
|
|
||||||
// This string should always be last for better work with Git.
|
// This string should always be last for better work with Git.
|
||||||
"dummy_last_string": ""
|
"dummy_last_string": ""
|
||||||
|
@@ -51,6 +51,7 @@ public:
|
|||||||
void setPeerSelectedChangedCallback(
|
void setPeerSelectedChangedCallback(
|
||||||
Fn<void(PeerData *peer, bool selected)> callback);
|
Fn<void(PeerData *peer, bool selected)> callback);
|
||||||
void setSubmitRequest(Fn<void()> callback);
|
void setSubmitRequest(Fn<void()> callback);
|
||||||
|
void setGoToChatRequest(Fn<void()> callback);
|
||||||
void peerUnselected(not_null<PeerData*> peer);
|
void peerUnselected(not_null<PeerData*> peer);
|
||||||
|
|
||||||
std::vector<not_null<PeerData*>> selected() const;
|
std::vector<not_null<PeerData*>> selected() const;
|
||||||
@@ -143,6 +144,7 @@ private:
|
|||||||
|
|
||||||
Fn<void(PeerData *peer, bool selected)> _peerSelectedChangedCallback;
|
Fn<void(PeerData *peer, bool selected)> _peerSelectedChangedCallback;
|
||||||
Fn<void()> _submitRequest;
|
Fn<void()> _submitRequest;
|
||||||
|
Fn<void()> _goToChatRequest;
|
||||||
|
|
||||||
bool _searching = false;
|
bool _searching = false;
|
||||||
QString _lastQuery;
|
QString _lastQuery;
|
||||||
@@ -276,6 +278,13 @@ void ShareBox::prepare() {
|
|||||||
submit({});
|
submit({});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (_goToChatCallback) {
|
||||||
|
_inner->setGoToChatRequest([=] {
|
||||||
|
const auto singleChat = _inner->selected().at(0);
|
||||||
|
goToChat(singleChat);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
Ui::Emoji::SuggestionsController::Init(
|
Ui::Emoji::SuggestionsController::Init(
|
||||||
getDelegate()->outerContainer(),
|
getDelegate()->outerContainer(),
|
||||||
_comment->entity(),
|
_comment->entity(),
|
||||||
@@ -931,11 +940,14 @@ void ShareBox::Inner::mousePressEvent(QMouseEvent *e) {
|
|||||||
updateUpon(e->pos());
|
updateUpon(e->pos());
|
||||||
changeCheckState(getChatAtIndex(_upon));
|
changeCheckState(getChatAtIndex(_upon));
|
||||||
if (!_hadSelection
|
if (!_hadSelection
|
||||||
&& _submitRequest
|
|
||||||
&& !(e->modifiers() & Qt::ControlModifier)
|
&& !(e->modifiers() & Qt::ControlModifier)
|
||||||
&& _selected.size() == 1
|
&& _selected.size() == 1) {
|
||||||
&& _selected.front()->isSelf()) {
|
if (_submitRequest && _selected.front()->isSelf()) {
|
||||||
_submitRequest();
|
_submitRequest();
|
||||||
|
} else if (_goToChatRequest && cForwardChatOnClick()) {
|
||||||
|
_goToChatRequest();
|
||||||
|
}
|
||||||
|
_hadSelection = true;
|
||||||
} else if (!_hadSelection) {
|
} else if (!_hadSelection) {
|
||||||
_hadSelection = true;
|
_hadSelection = true;
|
||||||
}
|
}
|
||||||
@@ -990,6 +1002,10 @@ void ShareBox::Inner::setSubmitRequest(Fn<void()> callback) {
|
|||||||
_submitRequest = std::move(callback);
|
_submitRequest = std::move(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ShareBox::Inner::setGoToChatRequest(Fn<void()> callback) {
|
||||||
|
_goToChatRequest = std::move(callback);
|
||||||
|
}
|
||||||
|
|
||||||
void ShareBox::Inner::changePeerCheckState(
|
void ShareBox::Inner::changePeerCheckState(
|
||||||
not_null<Chat*> chat,
|
not_null<Chat*> chat,
|
||||||
bool checked,
|
bool checked,
|
||||||
|
@@ -213,6 +213,7 @@ QByteArray GenerateSettingsJson(bool areDefault = false) {
|
|||||||
settings.insert(qsl("hover_emoji_panel"), HoverEmojiPanel());
|
settings.insert(qsl("hover_emoji_panel"), HoverEmojiPanel());
|
||||||
settings.insert(qsl("monospace_large_bubbles"), MonospaceLargeBubbles());
|
settings.insert(qsl("monospace_large_bubbles"), MonospaceLargeBubbles());
|
||||||
settings.insert(qsl("forward_retain_selection"), cForwardRetainSelection());
|
settings.insert(qsl("forward_retain_selection"), cForwardRetainSelection());
|
||||||
|
settings.insert(qsl("forward_on_click"), cForwardChatOnClick());
|
||||||
|
|
||||||
settingsFonts.insert(qsl("use_system_font"), cUseSystemFont());
|
settingsFonts.insert(qsl("use_system_font"), cUseSystemFont());
|
||||||
settingsFonts.insert(qsl("use_original_metrics"), cUseOriginalMetrics());
|
settingsFonts.insert(qsl("use_original_metrics"), cUseOriginalMetrics());
|
||||||
@@ -521,6 +522,10 @@ bool Manager::readCustomFile() {
|
|||||||
ReadBoolOption(settings, "forward_retain_selection", [&](auto v) {
|
ReadBoolOption(settings, "forward_retain_selection", [&](auto v) {
|
||||||
cSetForwardRetainSelection(v);
|
cSetForwardRetainSelection(v);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ReadBoolOption(settings, "forward_on_click", [&](auto v) {
|
||||||
|
cSetForwardChatOnClick(v);
|
||||||
|
});
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -188,3 +188,4 @@ rpl::producer<bool> HoverEmojiPanelChanges() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool gForwardRetainSelection = false;
|
bool gForwardRetainSelection = false;
|
||||||
|
bool gForwardChatOnClick = false;
|
||||||
|
@@ -123,3 +123,4 @@ void SetHoverEmojiPanel(bool enabled);
|
|||||||
[[nodiscard]] rpl::producer<bool> HoverEmojiPanelChanges();
|
[[nodiscard]] rpl::producer<bool> HoverEmojiPanelChanges();
|
||||||
|
|
||||||
DeclareSetting(bool, ForwardRetainSelection);
|
DeclareSetting(bool, ForwardRetainSelection);
|
||||||
|
DeclareSetting(bool, ForwardChatOnClick);
|
||||||
|
@@ -378,12 +378,13 @@ void SetupKotatoForward(not_null<Ui::VerticalLayout*> container) {
|
|||||||
AddSubsectionTitle(container, tr::ktg_settings_forward());
|
AddSubsectionTitle(container, tr::ktg_settings_forward());
|
||||||
|
|
||||||
SettingsMenuCSwitch(ktg_settings_forward_retain_selection, ForwardRetainSelection);
|
SettingsMenuCSwitch(ktg_settings_forward_retain_selection, ForwardRetainSelection);
|
||||||
|
SettingsMenuCSwitch(ktg_settings_forward_chat_on_click, ForwardChatOnClick);
|
||||||
|
|
||||||
AddSkip(container);
|
AddSkip(container);
|
||||||
|
AddDividerText(container, tr::ktg_settings_forward_chat_on_click_description());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupKotatoNetwork(not_null<Ui::VerticalLayout*> container) {
|
void SetupKotatoNetwork(not_null<Ui::VerticalLayout*> container) {
|
||||||
AddDivider(container);
|
|
||||||
AddSkip(container);
|
AddSkip(container);
|
||||||
AddSubsectionTitle(container, tr::ktg_settings_network());
|
AddSubsectionTitle(container, tr::ktg_settings_network());
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user