• R/O
  • HTTP
  • SSH
  • HTTPS

open-tween: Commit

開発に使用するリポジトリ


Commit MetaInfo

Revision45ccc226a0c18f0c692013a29b81dd8c86513187 (tree)
Time2018-10-28 08:57:51
AuthorKimura Youichi <kim.upsilon@bucy...>
CommiterKimura Youichi

Log Message

投稿失敗時にキャンセルした場合はStatusTextHistoryの一つ前の内容を復元する

APIの制限などリトライでは復旧できないエラーが発生した場合に入力内容を失われるのを防ぐための修正
キャンセル後に Ctrl+↑ で入力履歴を遡った場合と同じ動作になる

Change Summary

Incremental Difference

--- a/OpenTween/Resources/ChangeLog.txt
+++ b/OpenTween/Resources/ChangeLog.txt
@@ -3,6 +3,7 @@
33 ==== Ver 2.1.3-dev(2018/xx/xx)
44 * NEW: 絵文字に関する文字数カウントの新仕様に対応しました
55 - この変更により「👩‍👧‍👦」「👨‍🎨」など複数の文字で構成される絵文字を入力した場合の文字数制限が緩和されます
6+ * NEW: ツイートの投稿に失敗し再試行せずにキャンセルした場合は、発言入力欄に未投稿のテキストを復元します
67 * FIX: ユーザー情報ダイアログでbioに絵文字を含む場合にハッシュタグやメンションのリンク範囲がずれる不具合を修正
78 * FIX: 投稿時取得の設定がオンの場合に、投稿したRTがタイムラインに反映されないことがある不具合を修正
89
--- a/OpenTween/Tween.cs
+++ b/OpenTween/Tween.cs
@@ -2079,6 +2079,36 @@ namespace OpenTween
20792079 return cl;
20802080 }
20812081
2082+ private void StatusTextHistoryBack()
2083+ {
2084+ if (!string.IsNullOrWhiteSpace(this.StatusText.Text))
2085+ this._history[_hisIdx] = new StatusTextHistory(this.StatusText.Text, this.inReplyTo);
2086+
2087+ this._hisIdx -= 1;
2088+ if (this._hisIdx < 0)
2089+ this._hisIdx = 0;
2090+
2091+ var historyItem = this._history[this._hisIdx];
2092+ this.inReplyTo = historyItem.inReplyTo;
2093+ this.StatusText.Text = historyItem.status;
2094+ this.StatusText.SelectionStart = this.StatusText.Text.Length;
2095+ }
2096+
2097+ private void StatusTextHistoryForward()
2098+ {
2099+ if (!string.IsNullOrWhiteSpace(this.StatusText.Text))
2100+ this._history[this._hisIdx] = new StatusTextHistory(this.StatusText.Text, this.inReplyTo);
2101+
2102+ this._hisIdx += 1;
2103+ if (this._hisIdx > this._history.Count - 1)
2104+ this._hisIdx = this._history.Count - 1;
2105+
2106+ var historyItem = this._history[this._hisIdx];
2107+ this.inReplyTo = historyItem.inReplyTo;
2108+ this.StatusText.Text = historyItem.status;
2109+ this.StatusText.SelectionStart = this.StatusText.Text.Length;
2110+ }
2111+
20822112 private async void PostButton_Click(object sender, EventArgs e)
20832113 {
20842114 if (StatusText.Text.Trim().Length == 0)
@@ -2664,6 +2694,9 @@ namespace OpenTween
26642694 }
26652695 else
26662696 {
2697+ this.StatusTextHistoryBack();
2698+ this.StatusText.Focus();
2699+
26672700 // 連投モードのときだけEnterイベントが起きないので強制的に背景色を戻す
26682701 if (SettingManager.Common.FocusLockToStatusText)
26692702 this.StatusText_Enter(this.StatusText, EventArgs.Empty);
@@ -5959,33 +5992,11 @@ namespace OpenTween
59595992
59605993 ShortcutCommand.Create(Keys.Control | Keys.Up)
59615994 .FocusedOn(FocusedControl.StatusText)
5962- .Do(() => {
5963- if (!string.IsNullOrWhiteSpace(StatusText.Text))
5964- _history[_hisIdx] = new StatusTextHistory(StatusText.Text, this.inReplyTo);
5965-
5966- _hisIdx -= 1;
5967- if (_hisIdx < 0) _hisIdx = 0;
5968-
5969- var historyItem = this._history[this._hisIdx];
5970- this.inReplyTo = historyItem.inReplyTo;
5971- StatusText.Text = historyItem.status;
5972- StatusText.SelectionStart = StatusText.Text.Length;
5973- }),
5995+ .Do(() => this.StatusTextHistoryBack()),
59745996
59755997 ShortcutCommand.Create(Keys.Control | Keys.Down)
59765998 .FocusedOn(FocusedControl.StatusText)
5977- .Do(() => {
5978- if (!string.IsNullOrWhiteSpace(StatusText.Text))
5979- _history[_hisIdx] = new StatusTextHistory(StatusText.Text, this.inReplyTo);
5980-
5981- _hisIdx += 1;
5982- if (_hisIdx > _history.Count - 1) _hisIdx = _history.Count - 1;
5983-
5984- var historyItem = this._history[this._hisIdx];
5985- this.inReplyTo = historyItem.inReplyTo;
5986- StatusText.Text = historyItem.status;
5987- StatusText.SelectionStart = StatusText.Text.Length;
5988- }),
5999+ .Do(() => this.StatusTextHistoryForward()),
59896000
59906001 ShortcutCommand.Create(Keys.Control | Keys.PageUp, Keys.Control | Keys.P)
59916002 .FocusedOn(FocusedControl.StatusText)
Show on old repository browser