scieditor2 hoge version 19
:追加された部分
:削除された部分
(差分が大きい場合、文字単位では表示しません)
scieditor2 hoge
- ファイルロードをサブクラスに押しつける
枠的な部分とエディタ部分を分けるとしたらロードセーブは微妙な位置だ
しかし、タブでのマルチウインドウ管理という点ではタブに固有の動作は枠では実装しない方が良いような気がしてきた
- ロード、アウトライン解析はサブクラスに移すか。セーブはもともとサブクラスで実装してるし
- ロードはお気に入り、DD、ブラウザ、新規?の四パタン
枠からクラスにファイル名を渡す、クラスではロードしてアウトラインのデータモデルを作って親に返すことにするか
新規の場合はどうする?
----
- save時の処理
・新規の場合:タブ名の変更
・ステータスバーに保存のメッセージ
・modefyフラグの消去
----------
- 新規文書を保存したらタグを変える
- 保存したらmodifyh表示を消すか、保存済みのメッセージを出す
- 保存ルーチンを見直し、try errors ristrict にして保存できない場合はその場所に飛ぶようにしたい ---> 保存はu8 に統一する方向
- アウトライン変更
まずウイジェットをビューにしてから、モデルをサブクラスで保持する仕様にする
これはバージョン管理だな
---
190823
- loadfile の研究
一旦バイナリで読み込んでからsettextに渡すときにdecodeするようにした
このときエンコードタイプをイテレータにしてループでtryする
全てのエンコードタイプで失敗したらエラーを表示する
- ファイルオープンでエラーを出すかデコードでエラーを出すかの違いなんだけど、何度もファイルオープンするのが何となくいやだった
バイナリで読めばエラー出ないからこの方がスマートかなと
- u8ならバイナリのままシンチラに渡したかったけど出来なかった
setTextが文字列しか受け取らない
バイナリのまま渡せると思うんだけど??
- **少しエンコードがわかってきたような気がしてきた**
---
190824
- filebrowser をサブクラス化してコンテキストメニューを実装、ファイルの削除を実装
---
190827
- ステータスバーの分割
addPeramanentWidget (self, QWidget widget, int stretch = *)
でlabelを三つ、211で配置してみた
- 分割はちょっとわかりにくい。ウイジェットを配置しなくてもテキストは直接表示出来るが、分割したければこんな感じでラベルを配置するんだと思う。
これ以降はこのラベルに対してsetTextしていくことになる
- テキストエディタは色んな状態の表示にステータスバーはあった方が良いと思うけど、純粋に書くだけなら邪魔なだけだから表示は切り替えれた方が良いかな
---
ctypes 文字列
https://www.haya-programming.com/entry/2018/11/05/023748
pthon3
str unicode
byte encoded u8,shiftjis ///
byte をデコードしたら unicode になる
---
- 保存
①utf8
シンチラからゲットしたバイナリをそのままバイナリで書き込めば良い
②utf8以外
シンチラからゲットしたバイナリをデコードしてから保存時にそのコーデックにエンコードする(今の保存ルーチンのまま)
- エラー処理
上記①ではエラーは発生し得ない
②の場合エンコードエラーとなる可能性があるがその時はstrictにして保存させないようにする
エラー文字をハイライトにして飛ぶようにしたいな
- cp932の問題
現在エンコードは三つ、cp932,u8,u16を想定している
この中でエラー発生の可能性があるのはcp932だけだ、多分
オープンしたファイルがcp932でも保存時はu8にしてしまえば保存はものすごく楽だ
バイナリで書き込めば良いから
仕様として、読込は多種のコーデックに対応するけど書き込みはu8のみ、って割り切るか!!!!!!!
---
----
---> [scieditor2](https://mimemo.io/m/zeXgworpjz4K0Ek)
- ファイルロードをサブクラスに押しつける
枠的な部分とエディタ部分を分けるとしたらロードセーブは微妙な位置だ
しかし、タブでのマルチウインドウ管理という点ではタブに固有の動作は枠では実装しない方が良いような気がしてきた - ロード、アウトライン解析はサブクラスに移すか。セーブはもともとサブクラスで実装してるし
- ロードはお気に入り、DD、ブラウザ、新規?の四パタン
枠からクラスにファイル名を渡す、クラスではロードしてアウトラインのデータモデルを作って親に返すことにするか
新規の場合はどうする?
- save時の処理
・新規の場合:タブ名の変更
・ステータスバーに保存のメッセージ
・modefyフラグの消去
-
新規文書を保存したらタグを変える
-
保存したらmodifyh表示を消すか、保存済みのメッセージを出す
-
保存ルーチンを見直し、try errors ristrict にして保存できない場合はその場所に飛ぶようにしたい ---> 保存はu8 に統一する方向
-
アウトライン変更
まずウイジェットをビューにしてから、モデルをサブクラスで保持する仕様にする
これはバージョン管理だな
190823
- loadfile の研究
一旦バイナリで読み込んでからsettextに渡すときにdecodeするようにした
このときエンコードタイプをイテレータにしてループでtryする
全てのエンコードタイプで失敗したらエラーを表示する - ファイルオープンでエラーを出すかデコードでエラーを出すかの違いなんだけど、何度もファイルオープンするのが何となくいやだった
バイナリで読めばエラー出ないからこの方がスマートかなと - u8ならバイナリのままシンチラに渡したかったけど出来なかった
setTextが文字列しか受け取らない
バイナリのまま渡せると思うんだけど?? - 少しエンコードがわかってきたような気がしてきた
190824
- filebrowser をサブクラス化してコンテキストメニューを実装、ファイルの削除を実装
190827
- ステータスバーの分割
addPeramanentWidget (self, QWidget widget, int stretch = *)
でlabelを三つ、211で配置してみた - 分割はちょっとわかりにくい。ウイジェットを配置しなくてもテキストは直接表示出来るが、分割したければこんな感じでラベルを配置するんだと思う。
これ以降はこのラベルに対してsetTextしていくことになる - テキストエディタは色んな状態の表示にステータスバーはあった方が良いと思うけど、純粋に書くだけなら邪魔なだけだから表示は切り替えれた方が良いかな
ctypes 文字列
https://www.haya-programming.com/entry/2018/11/05/023748
pthon3
str unicode
byte encoded u8,shiftjis ///
byte をデコードしたら unicode になる
- 保存
①utf8
シンチラからゲットしたバイナリをそのままバイナリで書き込めば良い
②utf8以外
シンチラからゲットしたバイナリをデコードしてから保存時にそのコーデックにエンコードする(今の保存ルーチンのまま) - エラー処理
上記①ではエラーは発生し得ない
②の場合エンコードエラーとなる可能性があるがその時はstrictにして保存させないようにする
エラー文字をハイライトにして飛ぶようにしたいな - cp932の問題
現在エンコードは三つ、cp932,u8,u16を想定している
この中でエラー発生の可能性があるのはcp932だけだ、多分
オープンしたファイルがcp932でも保存時はu8にしてしまえば保存はものすごく楽だ
バイナリで書き込めば良いから
仕様として、読込は多種のコーデックに対応するけど書き込みはu8のみ、って割り切るか!!!!!!!
---> scieditor2