-
Notifications
You must be signed in to change notification settings - Fork 168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
「ファイルの場所をエクスプローラーで開く」追加 #549
「ファイルの場所をエクスプローラーで開く」追加 #549
Conversation
6dfe600
to
84d8ae0
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
help/sakura/sakura.hh が削除されてますが
操作ミス?
sakura_lang_en_US/sakura_lang_rc.rc
Outdated
@@ -2260,6 +2260,7 @@ BEGIN | |||
F_VIEWMODE "View Mode" | |||
F_PROPERTY_FILE "File Property" | |||
F_PROFILEMGR "Profile Maneger" | |||
F_OPEN_FOLDER_IN_EXPLORER "Open Folder in File Explorer" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in File Explorer
で File
は余計だと思います。
Explorer
で固有名詞だと思う。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Vs2017のソリューションビューでプロジェクトを右クリックした時に出るメニューに合わせました。
あんまりこだわりないですが、既存ソフトで使われている文言に合わせたいです。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Vs2017 でタブで右クリックすると Open Containing Folder
と表示されるみたいです。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Windows Explorer と Internet Explorer という使い分けがあると思いました。 けれどエクスプローラー(Explorer)がファイラを指すことに疑問の余地はないとも思います。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ぼくが言ったのこれね。エクスプローラービューでプロジェクトを右クリックしたメニューの下の方にでるやつ。
@m-tmatma さんが言ってるやつこれね。ファイルタブの右クリックで出るやつ。
Windows Explorer と Internet Explorer という使い分けがあると思いました。
そうなんですよね。日本人が「エクスプローラー」と呼んでるものの正式名称は Windows Explorer
なんです。MSの中の人が何故 File Explorer
という文言を使ったのかは謎です。
sakura_core/sakura.hh というファイルもありますね。 |
|
4c25594 のコメントに書いてますね。 この修正はこの PR に混ぜない方がいいです。 |
あとで開発環境保守系のコミット2件を別PRに分けときます。 右クリックメニューの話、初期設定を入れるのは簡単なので後でやっときます。どこに?のご希望があればどうぞ♪ だいぶごちゃごちゃしてるので人によっては設定で削ってそうですが 😭 |
タブメニューに追加した項目にアイコンが設定されていないのが気になりました。 |
std::wstring strFolder(GetDocument()->m_cDocFile.GetFilePath()); | ||
::PathRemoveFileSpec(&*strFolder.begin()); | ||
|
||
auto hInstance = ::ShellExecute(GetMainWindow(), L"explore", strFolder.c_str(), NULL, NULL, SW_SHOWNORMAL); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
explorer.exe /select,パス
かSHOpenFolderAndSelectItems
を使う方がファイル数が多い場合に便利かもしれません。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
処理を共通化してどこかに外出しする場合には有用だと思います。
ここは開いているファイルの親フォルダを開く処理なので、対象は0 or 1です。
対象が0のときはエラーにしてしまうので、実質は対象が1つの場合専用の処理になります。
ただ、SHOpenFolderAndSelectItems
を使った場合の「付加効果」は意外と魅力的で、やや悩みます。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
explorer.exe /select,"path"
というのも、フォルダを開いてファイルを選択するという意味です。「ファイルが多い」というのは、開いたフォルダにファイルが多くてエディタで開いているファイルがそこに埋もれることを指していると思います。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
「ファイルの場所を開く」のだから、開いた場所でファイルが選択されているのは、まったくもって自然なことです(力説)。
84d8ae0
to
7acf650
Compare
メニュー: 「ファイルの場所を開く」 挿入位置: 右クリックメニュー最下部、プロパティの上。
メニュー名を変更してリベースしました。 @KageShiron さんの提案への賛同が多い場合はこのPRに含めてしまおうかとも思います。 当初と意味が違ってしまうので分けたい感じなんですけどね。 |
修正量も少ないですし、該当ファイルを選択する仕様の方が良さそうなので後でコミット積んでおきます。 |
sakura_core/cmd/CViewCommander.cpp
Outdated
@@ -233,6 +233,7 @@ BOOL CViewCommander::HandleCommand( | |||
case F_BROWSE: Command_BROWSE();break; /* ブラウズ */ | |||
case F_VIEWMODE: Command_VIEWMODE();break; /* ビューモード */ | |||
case F_PROPERTY_FILE: Command_PROPERTY_FILE();break; /* ファイルのプロパティ */ | |||
case F_OPEN_FOLDER_IN_EXPLORER: Command_OPEN_FOLDER_IN_EXPLORER();break; /* ファイルの場所をエクスプローラーで開く */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
スタイルに関する話ですが、
:
~ Command_OPEN_FOLDER_IN_EXPLORER
の間はこの関数の他の場所に合わせて
タブの方がいいと思います。
メニュー名だけでなく、ソースコードのコメントも修正しておく。
ヘルプ内の項目名に変更を適用。 説明文は「ファイルの場所をエクスプローラーで開く」とした。
変更前) ファイルの場所を開く 変更後) ファイルの場所を開いてファイルを選択
LPCWSTR pszDocPath = GetDocument()->m_cDocFile.GetFilePath(); | ||
|
||
// Windows Explorerの引数をいれるバッファは固定サイズで用意しておく(かなり多め1.5倍) | ||
WCHAR parameters[MAX_PATH * 3 / 2]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
固定長バッファにしなくても、CNativeW
で CNativeW::AppendStringF
を
使えばいいと思います。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここもう少し洗練させたいと思ってます
いま必ず二重引用符付ける風ですが、二重引用符は必ずしも要らんので
@@ -1207,6 +1209,7 @@ bool IsFuncEnable( const CEditDoc* pcEditDoc, const DLLSHAREDATA* pShareData, EF | |||
case F_BROWSE: //ブラウズ | |||
//case F_VIEWMODE: //ビューモード // Sep. 10, 2002 genta 常に使えるように | |||
//case F_PROPERTY_FILE: //ファイルのプロパティ // 2009.04.11 ryoji コメントアウト | |||
case F_OPEN_FOLDER_IN_EXPLORER: //ファイルの場所を開く | |||
return pcEditDoc->m_cDocFile.GetFilePathClass().IsValidPath(); // 現在編集中のファイルのパス名をクリップボードにコピーできるか |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1213行目のコメントは F_COPYPATH
に対するものですか?
それで機能拡張が繰り返されて、1213行目が複数の nId
に対して呼ばれるようになっているのですか?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yesです。
誤解のないようにコメント削った方がいいかもです。
c++では複数のIDに対して同じ処理を行わせるためにbreak;を書かずにcaseラベルを並べることができます。既存コードが複数IDを処理するこうぞうになってたっぽいので乗っかりました。
switch文の書き方にも流派があるらしいです。
途中で宗旨替えしたパターンかな。
sakura_core/sakura_rc.rc
Outdated
@@ -2252,6 +2252,7 @@ BEGIN | |||
F_VIEWMODE "ビューモード" | |||
F_PROPERTY_FILE "ファイルのプロパティ" | |||
F_PROFILEMGR "プロファイルマネージャ" | |||
F_OPEN_FOLDER_IN_EXPLORER "ファイルの場所を開く" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
細かいですが、2252行~2254行目はインデントがスペースなので合わせた方がいいと思います。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
指摘ありがとうございます。
後で修正します。
別件ですがrcの書きっぷりが全体的に非標準なので見直しかけたいです。
重複文字列リソースとか、明らかに変なリソースとか、色々課題があるので。
sakura_lang_en_US/sakura_lang_rc.rc
Outdated
@@ -2257,6 +2257,7 @@ BEGIN | |||
F_VIEWMODE "View Mode" | |||
F_PROPERTY_FILE "File Property" | |||
F_PROFILEMGR "Profile Maneger" | |||
F_OPEN_FOLDER_IN_EXPLORER "Open Containing Folder" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
こちらも sakura_rc.rc と同様
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
うえにおなじ。
周囲の記述に合わせて空白に変更。
MAX_PATHを使ったバッファサイズ決め打ちをやめ、やりたいことが分かるように記述を組み替え。
この方法で修正しました。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ありがとうございます。
…der_in_explorer 「ファイルの場所をエクスプローラーで開く」追加
概要
タブメニューに「ファイルの場所をエクスプローラーで開く」のメニューを追加します。(issue #420)
利用方法
メニュー追加は初期設定に対して行っています。
この対応が導入済みのバイナリをクリーンインストールする場合に追加作業はありません。
既存のsakura.iniを使う場合には共通設定「カスタムメニュー」を変更して使える状態にします。
カスタムメニューの右上にある「選択」から「タブメニュー」を選んでください。
右側ペインにある一覧がカスタムメニューの設定内容になります。
左側ペインに機能カテゴリごとのコマンド一覧があるので、「ファイルの場所をエクスプローラーで開く」を選択して右側ペインにコピーします。
課題
その他
「無題」の状態で「ファイルの場所をエクスプローラーで開く」のメニューが非活性になるのは仕様です。「無題」はファイルパスが確定しておらず「ファイルの場所」がないためです。
ステータス
機能として問題なく利用できそうに思いますのでこのままマージ可能です。