やること: チケット
https://dev.mikutter.hachune.net/
https://dev.mikutter.hachune.net/favicon.ico?1619448608
2019-09-21T01:09:16Z
やること
Redmine
mikutter - 機能 #1393 (新規): FormDSLにコマンド選択ウィジェットを追加
https://dev.mikutter.hachune.net/issues/1393
2019-09-21T01:09:16Z
toshi_a 初音
toshi.alternative@gmail.com
<p>FormDSLで、コマンドを一つ選択するウィジェットを提供する。<br />単にコマンドを列挙するのではなく、以下の機能が必要になるので、しんどそう。</p>
<ul>
<li>ツリー表示</li>
<li>インクリメンタルサーチ</li>
</ul>
<p>抽出タブのデータソース選択もツリービューで選択させるようになっているので、もしかしたら同じウィジェットとして実装できるかもしれない?</p>
mikutter - 機能 #1394 (新規): listviewからCRUD操作をされた時、独自のルーチンやフックを実行可能な専用データソースオブジェクトを提供する
https://dev.mikutter.hachune.net/issues/1394
2019-09-21T01:09:16Z
toshi_a 初音
toshi.alternative@gmail.com
<ul>
<li>Worldや抽出タブで、CRUD操作が発生した時に、特定のイベントを発生させるなどのフック処理が必要になる。
<ul>
<li>また、あるイベントが発生したらデータソースに引数で渡されたオブジェクトを追加するといった制御も必要になる。</li>
</ul>
</li>
<li>Worldや抽出タブなど、UserConfigにはHashの配列として保存しているが、データソースとしてはModelとして扱いたい場合がある。
<ul>
<li>この場合、当然作成・編集・並び替えが行われたら、Hashに変換して保存する必要がある。</li>
</ul></li>
</ul>
<p>といった要件を満たすため、設定値の読み書きを行うデータソースを <code>parent_dslobj#[]</code> ではなく、別のデータソースプロキシオブジェクトを挿入可能にする。</p>
<p>少々煩雑になるが、プロキシオブジェクト側にフックは全て実装することになるため、listviewの実装を肥大化させないために<br />この実装にしたい。</p>
<p>加えて、このデータソースプロキシオブジェクトは値の追加・削除・更新を通知し、リアルタイムにlistviewを更新する機能をもたせたい。</p>
mikutter - 機能 #1390 (新規): listview: UserConfigに保存しているものを変換して一覧する機能
https://dev.mikutter.hachune.net/issues/1390
2019-09-21T01:09:15Z
toshi_a 初音
toshi.alternative@gmail.com
<p>Worldや抽出タブなど、UserConfigにはHashの配列として保存しているが、データソースとしてはModelとして扱いたい場合がある。<br />この場合、当然作成・編集・並び替えが行われたら、Hashに変換して保存する必要がある。</p>
mikutter - 機能 #1388 (新規): listview: 編集を許可しないオプションを追加
https://dev.mikutter.hachune.net/issues/1388
2019-09-21T01:09:15Z
toshi_a 初音
toshi.alternative@gmail.com
<p>Worldでは作成はできるが編集をサポートしないので、これだけを無効にするオプションを追加する。</p>
mikutter - 機能 #1389 (新規): listview: 追加されることによってイベントを発生させる
https://dev.mikutter.hachune.net/issues/1389
2019-09-21T01:09:15Z
toshi_a 初音
toshi.alternative@gmail.com
<p>Worldや抽出タブで、CRUD操作が発生した時に、特定のイベントを発生させるなどのフック処理が必要になる。<br />また、あるイベントが発生したらデータソースに引数で渡されたオブジェクトを追加するといった制御も必要になる。</p>
mikutter - 機能 #1384 (新規): Extractの設定に、FormDSLのlistviewを使う
https://dev.mikutter.hachune.net/issues/1384
2019-09-21T00:13:54Z
toshi_a 初音
toshi.alternative@gmail.com
<p>設定画面の「抽出タブ」に抽出タブ一覧があるが、これを <a class="issue tracker-2 status-2 priority-4 priority-default" title="機能: Gtk::CRUDに依存しているコードを減らす (実装待ち)" href="https://dev.mikutter.hachune.net/issues/1380">#1380</a> で実装したlistviewメソッドを利用したものに置き換える。</p>
mikutter - 機能 #1385 (新規): Mastodonの設定に、FormDSLのlistviewを使う
https://dev.mikutter.hachune.net/issues/1385
2019-09-21T00:13:54Z
toshi_a 初音
toshi.alternative@gmail.com
<p>設定画面の「Mastodon」にlistenするサーバのリストがあるが、これを <a class="issue tracker-2 status-2 priority-4 priority-default" title="機能: Gtk::CRUDに依存しているコードを減らす (実装待ち)" href="https://dev.mikutter.hachune.net/issues/1380">#1380</a> で実装したlistviewメソッドを利用したものに置き換える。</p>
mikutter - 機能 #1248 (新規): Flatpakレポジトリで配布する
https://dev.mikutter.hachune.net/issues/1248
2018-05-17T16:28:07Z
Yuto Tokunaga
yuntan.sub1@gmail.com
<p>mikutterを<a href="https://flatpak.org/" class="external">Flatpak</a> 形式にビルドし,flatpakレポジトリで配布できるようにする.</p>
mikutter - 機能 #1203 (新規): Gdk::Cursorのインスタンスを得る方法を変更する
https://dev.mikutter.hachune.net/issues/1203
2018-04-08T17:30:41Z
toshi_a 初音
toshi.alternative@gmail.com
<p>マウスカーソルを変更するときに使う <code>Gdk::Cursor</code> を得る時、現在はGdk::Displayとカーソルの名前を使って参照するのが良いとされていると教えてもらった( <a class="issue tracker-2 status-5 priority-4 priority-default closed behind-schedule" title="機能: MiraclePainter上でマウスを動かしたときにカーソル形状を適切に変更して欲しい (終了)" href="https://dev.mikutter.hachune.net/issues/1197#note-2">#1197-2</a> )。<br />mikutterの標準プラグインで <code>Gdk::Cursor.new</code> を呼び出している部分を全てこの方法に変更し、 Gdk::Tooltip と同じように、mikutter内で種類ごとに単一のGdk::Cursorを使いまわすようにしたい。</p>
mikutter - 機能 #1179 (新規): form DSLの入力要素に幅の指定をしたい
https://dev.mikutter.hachune.net/issues/1179
2018-02-21T04:36:10Z
cob odo
cobodo@gmail.com
<p>狭くて書きづらいと思ったので。<br />理想的には、ラベルの横幅分を確保したら、右端までの残りの領域すべてを使うような状態になっていてほしいです。</p>
<p>使用した範囲ではinput、multitext、fileselectが狭いなと感じています。</p>
mikutter - 機能 #1172 (新規): mikutterが返すディレクトリパスは積極的にPathnameを利用する
https://dev.mikutter.hachune.net/issues/1172
2018-02-14T08:56:44Z
toshi_a 初音
toshi.alternative@gmail.com
<p><code>Environment::CONFROOT</code> などは "/homedir/.mikutter/" のようなStringクラスのインスタンスだが、これを <a href="https://docs.ruby-lang.org/ja/latest/class/Pathname.html" class="external">Pathname</a> でwrapする。<br />前から思っていたけど思い出したのでメモしておく。</p>
<a name="メリット"></a>
<h1 >メリット<a href="#メリット" class="wiki-anchor">¶</a></h1>
<a name="標準添付ライブラリでRuby-on-Railsなどでも利用されている"></a>
<h2 >標準添付ライブラリで、Ruby on Railsなどでも利用されている<a href="#標準添付ライブラリでRuby-on-Railsなどでも利用されている" class="wiki-anchor">¶</a></h2>
<p>pathnameは標準添付ライブラリなので依存関係を替えずに利用できる。<br />Railsで <code>Environment::CONFROOT</code> に相当する <code>Rails.root</code> はPathnameを返している。</p>
<a name="Filejoinなどのパスを扱うためのテクニックのより直感的な代替が提供されている"></a>
<h2 >File.joinなどのパスを扱うためのテクニックのより直感的な代替が提供されている<a href="#Filejoinなどのパスを扱うためのテクニックのより直感的な代替が提供されている" class="wiki-anchor">¶</a></h2>
<p>文字列でディレクトリパスを連結する場合、末尾にスラッシュがあるか否かがバグの原因になるため、mikutterではすべての箇所で File#join を使って連結しているが、 Pathname#/ を使えば同じことができる。</p>
<pre><code class="ruby syntaxhl"><span class="n">num</span> <span class="o">=</span> <span class="mi">1</span>
<span class="no">File</span><span class="p">.</span><span class="nf">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s2">"dir</span><span class="si">#{</span><span class="n">num</span><span class="si">}</span><span class="s2">"</span> <span class="p">)</span> <span class="c1">#=> "/path/to/dir1" </span>
<span class="n">path</span> <span class="o">/</span> <span class="s2">"dir</span><span class="si">#{</span><span class="n">num</span><span class="si">}</span><span class="s2">"</span> <span class="c1"># => Pathname(/path/to/dir1)</span>
</code></pre>
<a name="デメリット"></a>
<h1 >デメリット<a href="#デメリット" class="wiki-anchor">¶</a></h1>
<a name="互換性のないメソッド"></a>
<h2 >互換性のないメソッド<a href="#互換性のないメソッド" class="wiki-anchor">¶</a></h2>
<p>Pathname#+ は String#+ とは異なる動きをする。こんなことをやっている場所はないと思うが、もしやっていたらこの部分のコードは修正する必要がある。1箇所くらいならいいが、サードパーティプラグインも含めて多く使われていたらこのチケットは見送るべきかもしれない。</p>
<pre><code class="ruby syntaxhl"><span class="n">num</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">path</span> <span class="o">+</span> <span class="s2">"dir"</span> <span class="o">+</span> <span class="n">num</span> <span class="c1"># "/path/to/dir1" or Pathname(/path/to/dir/1)</span>
</code></pre>
mikutter - 機能 #1045 (新規): GUIのgemを依存関係から外せるようにしたい
https://dev.mikutter.hachune.net/issues/1045
2017-05-27T13:47:45Z
あひる 家鴨
<p>非GUIな環境でmikutterを使用する場合、GUI周り(Gtkなど)は必要ないですが、Gtkのインストールに失敗するため使わない依存関係によってインストールができないといったことが起きています。<br />依存関係を選択できる何かがあるといいです。</p>
mikutter - 機能 #975 (新規): metaKeyをキーボードショートカットに使いたい
https://dev.mikutter.hachune.net/issues/975
2017-01-22T05:15:00Z
surume スルメ
<p>キーボードショートカットで、metaKey(Windowsキー/Commandキー)をキーボードショートカットに使いたいので、できれば使えるようになって欲しい。</p>
mikutter - 機能 #909 (新規): IntentはURIを開く前に、短縮URLの展開を試みる
https://dev.mikutter.hachune.net/issues/909
2016-10-07T17:51:43Z
toshi_a 初音
toshi.alternative@gmail.com
<p>mikutter 3.4のopenimgは、画像を開く前に短縮URLの展開のために、次のようなコードが入っていた。</p>
<pre><code class="ruby syntaxhl"><span class="no">Plugin</span><span class="p">.</span><span class="nf">filtering</span><span class="p">(</span><span class="ss">:expand_url</span><span class="p">,</span> <span class="p">[</span><span class="n">shrinked_url</span><span class="p">])</span>
</code></pre>
<p>実際には、現状だとタイムラインに表示されたらURL展開が行われるため、URLが短縮されているせいで適切なIntentに到達できないということは早々ないので、intentプラグイン側で面倒を見たほうが良さそう。</p>
<p>または、例えばBitlyとかTCoという短縮URLのModelを定義しておいて、展開してopenイベントを発生するというIntentを定義した方がいいかも。この方法ならintentプラグインを触らず、URL展開系のプラグインの方で対応できる。</p>
mikutter - 機能 #876 (新規): Activityの詳細画面
https://dev.mikutter.hachune.net/issues/876
2016-09-02T23:40:45Z
toshi_a 初音
toshi.alternative@gmail.com
<p><a class="issue tracker-2 status-5 priority-4 priority-default closed" title="機能: URIを渡すと適切な方法で開く機能 (終了)" href="https://dev.mikutter.hachune.net/issues/866">#866</a> の方法でActivityが開かれた時のUIを作る。</p>
<a name="ヘッダ部分"></a>
<h1 >ヘッダ部分<a href="#ヘッダ部分" class="wiki-anchor">¶</a></h1>
<p>通知のタイトル</p>
<a name="実装するタブ"></a>
<h1 >実装するタブ<a href="#実装するタブ" class="wiki-anchor">¶</a></h1>
<p>「関係するModel」タブをデフォルトでアクティブにしておく。</p>
<a name="関係するModel"></a>
<h2 >関係するModel<a href="#関係するModel" class="wiki-anchor">¶</a></h2>
<p>通知に関係するModelを詰めたTimeline。タイムラインだからここからいろいろできて最高</p>
<a name="詳細"></a>
<h2 >詳細<a href="#詳細" class="wiki-anchor">¶</a></h2>
<p>descriptionを表示する部分。ツイート詳細の本文みたいなやつ。異様に長い文字列が入る可能性があるので注意する。</p>