POChecker: added ability to open PO file in system PO file editor from Graphical Statistics form (via context menu).

Regenerated translations and updated Russian translation.

git-svn-id: trunk@52387 -
This commit is contained in:
maxim 2016-05-24 22:52:53 +00:00
parent 9d12ad4ec9
commit 763e4881c7
15 changed files with 195 additions and 179 deletions

View File

@ -11,7 +11,7 @@ object GraphStatForm: TGraphStatForm
OnCreate = FormCreate
OnDestroy = FormDestroy
OnShow = FormShow
LCLVersion = '1.3'
LCLVersion = '1.7'
object LegendPanel: TPanel
Left = 0
Height = 80
@ -97,4 +97,22 @@ object GraphStatForm: TGraphStatForm
OnMouseMove = ListViewMouseMove
OnMouseUp = ListViewMouseUp
end
object ContextPopupMenu: TPopupMenu
left = 453
top = 66
object POEditorMenuItem: TMenuItem
Caption = 'Open file in system PO editor'
OnClick = POEditorMenuItemClick
end
object ExtEditorMenuItem: TMenuItem
Caption = 'Open file in external editor'
Visible = False
OnClick = ExtEditorMenuItemClick
end
object IDEEditorMenuItem: TMenuItem
Caption = 'Open file in IDE editor'
Visible = False
OnClick = IDEEditorMenuItemClick
end
end
end

View File

@ -11,8 +11,8 @@ uses
{$else}
Process, Utf8Process,
{$endif}
ExtCtrls, PoFamilies, PoCheckerConsts, LCLProc, StdCtrls, ComCtrls,
PoCheckerSettings;
ExtCtrls, PoFamilies, PoCheckerConsts, LCLProc, StdCtrls, ComCtrls, Menus,
PoCheckerSettings, LCLIntf;
type
@ -20,6 +20,10 @@ type
{ TGraphStatForm }
TGraphStatForm = class(TForm)
POEditorMenuItem: TMenuItem;
ExtEditorMenuItem: TMenuItem;
IDEEditorMenuItem: TMenuItem;
ContextPopupMenu: TPopupMenu;
StatusLabel: TLabel;
ListView: TListView;
TranslatedLabel: TLabel;
@ -29,28 +33,32 @@ type
TranslatedShape: TShape;
UnTranslatedShape: TShape;
FuzzyShape: TShape;
procedure ExtEditorMenuItemClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var {%H-}CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure IDEEditorMenuItemClick(Sender: TObject);
procedure ListViewMouseMove(Sender: TObject; {%H-}Shift: TShiftState; X,
Y: Integer);
procedure ListViewMouseUp(Sender: TObject; {%H-}Button: TMouseButton;
{%H-}Shift: TShiftState; X, Y: Integer);
procedure POEditorMenuItemClick(Sender: TObject);
private
{ private declarations }
FPoFamilyStats: TPoFamilyStats;
FImgList: TImageList;
FOldHintHidePause: Integer;
FSettings: TPoCheckerSettings;
Fn: string;
procedure LoadConfig;
Procedure SaveConfig;
function CreateBitmap(AStat: TStat): TBitmap;
procedure AddToListView(AStat: TStat; ABmp: TBitmap);
procedure DrawGraphs(Cnt: PtrInt);
procedure MaybeOpenInLazIDE(const Fn: String);
procedure MaybeOpenInExternalEditor(const {%H-}Fn: String);
procedure MaybeOpenInLazIDE;
procedure MaybeOpenInExternalEditor;
public
{ public declarations }
property PoFamilyStats: TPoFamilyStats read FPoFamilyStats write FPoFamilyStats;
@ -97,9 +105,20 @@ begin
Application.HintHidePause := 5000;
LoadConfig;
WindowState := Settings.GraphFormWindowState;
{$ifdef pocheckerstandalone}
if Settings.ExternalEditorName <> '' then
ExtEditorMenuItem.Visible := true;
{$else}
IDEEditorMenuItem.Visible := true;
{$endif}
Application.QueueAsyncCall(@DrawGraphs, FPoFamilyStats.Count);
end;
procedure TGraphStatForm.IDEEditorMenuItemClick(Sender: TObject);
begin
MaybeOpenInLazIDE;
end;
procedure TGraphStatForm.ListViewMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
@ -130,24 +149,25 @@ var
anItem: TListItem;
anIndex: Integer;
AStat: TStat;
CurrScreenPoint: TPoint;
begin
anItem := Listview.GetItemAt(X, Y);
{$ifdef pocheckerstandalone}
if Assigned(anItem) and (Settings.ExternalEditorName <> '') then
{$else}
if Assigned(anItem) then
{$endif}
begin
anIndex := anItem.Index;
AStat := FPoFamilyStats.Items[anIndex];
{$ifdef pocheckerstandalone}
MaybeOpenInExternalEditor(AStat.PoName);
{$else}
MaybeOpenInLazIDE(AStat.PoName);
{$endif}
Fn := AStat.PoName;
CurrScreenPoint := ListView.ClientToScreen(Point(X, Y));
ContextPopupMenu.PopUp(CurrScreenPoint.X, CurrScreenPoint.Y);
end;
end;
procedure TGraphStatForm.POEditorMenuItemClick(Sender: TObject);
begin
if OpenDocument(Fn) = false then
ShowMessage(Format(SOpenFail,[Fn]));
end;
procedure TGraphStatForm.LoadConfig;
var
ARect: TRect;
@ -179,6 +199,9 @@ begin
TranslatedLabel.Caption := sTranslated;
UntranslatedLabel.Caption := sUnTranslated;
FuzzyLabel.Caption := sFuzzy;
POEditorMenuItem.Caption := sOpenFileInSystemPOEditor;
ExtEditorMenuItem.Caption := sOpenFileInExternalEditor;
IDEEditorMenuItem.Caption := sOpenFileInIDEEditor;
TranslatedShape.Brush.Color := clTranslated;
UnTranslatedShape.Brush.Color := clUntranslated;
FuzzyShape.Brush.Color := clFuzzy;
@ -198,6 +221,11 @@ begin
//DrawGraphs;
end;
procedure TGraphStatForm.ExtEditorMenuItemClick(Sender: TObject);
begin
MaybeOpenInExternalEditor;
end;
procedure TGraphStatForm.FormDestroy(Sender: TObject);
begin
if Assigned(FImgList) then FImgList.Free;
@ -322,40 +350,36 @@ begin
end;
end;
procedure TGraphStatForm.MaybeOpenInExternalEditor(const Fn: String);
procedure TGraphStatForm.MaybeOpenInExternalEditor;
{$ifdef POCHECKERSTANDALONE}
var
Proc: TProcessUtf8;
{$endif}
begin
{$ifdef POCHECKERSTANDALONE}
if MessageDlg('PoChecker',Format(sOpenFileExternal,[Fn,Settings.ExternalEditorName]),
mtConfirmation,mbOKCancel,0) = mrOk then
begin
Proc := TProcessUtf8.Create(nil);
Proc := TProcessUtf8.Create(nil);
try
Proc.Options := [];
Proc.Executable := Settings.ExternalEditorName;
Proc.Parameters.Add(Fn);
try
Proc.Options := [];
Proc.Executable := Settings.ExternalEditorName;
Proc.Parameters.Add(Fn);
try
Proc.Execute;
except
on E: EProcess do
begin
debugln('TGraphStatForm.ListViewMouseUp:');
debugln(' Exception occurred of type ',E.ClassName);
debugln(' Message: ',E.Message);
ShowMessage(Format(SOpenFailExternal,[Fn,Settings.ExternalEditorName]));
end;
Proc.Execute;
except
on E: EProcess do
begin
debugln('TGraphStatForm.ListViewMouseUp:');
debugln(' Exception occurred of type ',E.ClassName);
debugln(' Message: ',E.Message);
ShowMessage(Format(SOpenFailExternal,[Fn,Settings.ExternalEditorName]));
end;
finally
Proc.Free;
end;
finally
Proc.Free;
end;
{$endif}
end;
procedure TGraphStatForm.MaybeOpenInLazIDE(const Fn: String);
procedure TGraphStatForm.MaybeOpenInLazIDE;
{$ifndef POCHECKERSTANDALONE}
var
mr: TModalResult;
@ -367,14 +391,11 @@ begin
PageIndex:= -1;
WindowIndex:= -1;
OpenFlags:= [ofOnlyIfExists,ofAddToRecent,ofRegularFile,ofConvertMacros];
if MessageDlg('PoChecker',Format(sOpenFile,[Fn]), mtConfirmation,mbOKCancel,0) = mrOk then
begin
mr := LazarusIde.DoOpenEditorFile(Fn,PageIndex,WindowIndex,OpenFlags);
if mr = mrOk then
ModalResult:= mrOpenEditorFile //To let caller know what we want to do
else
ShowMessage(Format(SOpenFail,[Fn]));
end;
mr := LazarusIde.DoOpenEditorFile(Fn,PageIndex,WindowIndex,OpenFlags);
if mr = mrOk then
ModalResult:= mrOpenEditorFile //To let caller know what we want to do
else
ShowMessage(Format(SOpenFail,[Fn]));
{$endif}
end;

View File

@ -303,16 +303,16 @@ msgid ""
"\"%s\"\n"
msgstr ""
#: pocheckerconsts.sopenfile
msgid "Open file %s in Ide Editor?"
#: pocheckerconsts.sopenfileinexternaleditor
msgid "Open file in external editor"
msgstr ""
#: pocheckerconsts.sopenfileexternal
msgid ""
"Open file:\n"
"\"%s\"\n"
"in external editor:\n"
"\"%s\"?\n"
#: pocheckerconsts.sopenfileinideeditor
msgid "Open file in IDE editor"
msgstr ""
#: pocheckerconsts.sopenfileinsystempoeditor
msgid "Open file in system PO editor"
msgstr ""
#: pocheckerconsts.soriginal

View File

@ -309,21 +309,17 @@ msgstr ""
"nicht in externem Editor\n"
"\"%s\" öffnen\n"
#: pocheckerconsts.sopenfile
msgid "Open file %s in Ide Editor?"
msgstr "Datei %s im IDE-Editor öffnen?"
#: pocheckerconsts.sopenfileexternal
msgid ""
"Open file:\n"
"\"%s\"\n"
"in external editor:\n"
"\"%s\"?\n"
#: pocheckerconsts.sopenfileinexternaleditor
msgid "Open file in external editor"
msgstr ""
#: pocheckerconsts.sopenfileinideeditor
msgid "Open file in IDE editor"
msgstr ""
#: pocheckerconsts.sopenfileinsystempoeditor
msgid "Open file in system PO editor"
msgstr ""
"Datei:\n"
"\"%s\"\n"
"in externem Editor:\n"
"\"%s\" öffnen?\n"
#: pocheckerconsts.soriginal
msgid "Original"
@ -444,3 +440,4 @@ msgstr "Alle Dateien abwählen"
#: pocheckerconsts.suntranslated
msgid "Untranslated"
msgstr "Nicht übersetzt"

View File

@ -307,21 +307,17 @@ msgstr ""
"en un editor externo\n"
"\"%s\"\n"
#: pocheckerconsts.sopenfile
msgid "Open file %s in Ide Editor?"
msgstr "¿Abrir fichero %s en el editor del IDE?"
#: pocheckerconsts.sopenfileexternal
msgid ""
"Open file:\n"
"\"%s\"\n"
"in external editor:\n"
"\"%s\"?\n"
#: pocheckerconsts.sopenfileinexternaleditor
msgid "Open file in external editor"
msgstr ""
#: pocheckerconsts.sopenfileinideeditor
msgid "Open file in IDE editor"
msgstr ""
#: pocheckerconsts.sopenfileinsystempoeditor
msgid "Open file in system PO editor"
msgstr ""
"¿Abrir fichero:\n"
"\"%s\"\n"
"en editor externo:\n"
"\"%s\"?\n"
#: pocheckerconsts.soriginal
msgid "Original"

View File

@ -309,21 +309,17 @@ msgstr ""
"dans l'éditeur externe\n"
"\"%s\"\n"
#: pocheckerconsts.sopenfile
msgid "Open file %s in Ide Editor?"
msgstr "Voulez-vous ouvrir le fichier %s dans l'éditeur de l'EDI ?"
#: pocheckerconsts.sopenfileexternal
msgid ""
"Open file:\n"
"\"%s\"\n"
"in external editor:\n"
"\"%s\"?\n"
#: pocheckerconsts.sopenfileinexternaleditor
msgid "Open file in external editor"
msgstr ""
#: pocheckerconsts.sopenfileinideeditor
msgid "Open file in IDE editor"
msgstr ""
#: pocheckerconsts.sopenfileinsystempoeditor
msgid "Open file in system PO editor"
msgstr ""
"Voulez-vous ouvrir le fichier :\n"
"\"%s\"\n"
"dans l'éditeur externe :\n"
"\"%s\" ?\n"
#: pocheckerconsts.soriginal
msgid "Original"
@ -444,3 +440,4 @@ msgstr "Désélectionner tous les fichiers"
#: pocheckerconsts.suntranslated
msgid "Untranslated"
msgstr "Non traduit"

View File

@ -309,21 +309,17 @@ msgstr ""
"Külső szerkesztő:\n"
"\"%s\"\n"
#: pocheckerconsts.sopenfile
msgid "Open file %s in Ide Editor?"
msgstr "A(z) %s fájl megnyitása az IDE szerkesztőjében?"
#: pocheckerconsts.sopenfileexternal
msgid ""
"Open file:\n"
"\"%s\"\n"
"in external editor:\n"
"\"%s\"?\n"
#: pocheckerconsts.sopenfileinexternaleditor
msgid "Open file in external editor"
msgstr ""
#: pocheckerconsts.sopenfileinideeditor
msgid "Open file in IDE editor"
msgstr ""
#: pocheckerconsts.sopenfileinsystempoeditor
msgid "Open file in system PO editor"
msgstr ""
"A fájl megnyitása külső szerkesztőben:\n"
"\"%s\"\n"
"Külső szerkesztő:\n"
"\"%s\"?\n"
#: pocheckerconsts.soriginal
msgid "Original"

View File

@ -311,21 +311,17 @@ msgstr ""
"nell'editor esterno\n"
"\"%s\"\n"
#: pocheckerconsts.sopenfile
msgid "Open file %s in Ide Editor?"
msgstr "Aprire il file %s nell'Editor?"
#: pocheckerconsts.sopenfileexternal
msgid ""
"Open file:\n"
"\"%s\"\n"
"in external editor:\n"
"\"%s\"?\n"
#: pocheckerconsts.sopenfileinexternaleditor
msgid "Open file in external editor"
msgstr ""
#: pocheckerconsts.sopenfileinideeditor
msgid "Open file in IDE editor"
msgstr ""
#: pocheckerconsts.sopenfileinsystempoeditor
msgid "Open file in system PO editor"
msgstr ""
"Aprire il file:\n"
"\"%s\"\n"
"nell'editor esterno:\n"
"\"%s\"?\n"
#: pocheckerconsts.soriginal
msgid "Original"

View File

@ -301,16 +301,16 @@ msgid ""
"\"%s\"\n"
msgstr ""
#: pocheckerconsts.sopenfile
msgid "Open file %s in Ide Editor?"
#: pocheckerconsts.sopenfileinexternaleditor
msgid "Open file in external editor"
msgstr ""
#: pocheckerconsts.sopenfileexternal
msgid ""
"Open file:\n"
"\"%s\"\n"
"in external editor:\n"
"\"%s\"?\n"
#: pocheckerconsts.sopenfileinideeditor
msgid "Open file in IDE editor"
msgstr ""
#: pocheckerconsts.sopenfileinsystempoeditor
msgid "Open file in system PO editor"
msgstr ""
#: pocheckerconsts.soriginal

View File

@ -303,16 +303,16 @@ msgid ""
"\"%s\"\n"
msgstr ""
#: pocheckerconsts.sopenfile
msgid "Open file %s in Ide Editor?"
#: pocheckerconsts.sopenfileinexternaleditor
msgid "Open file in external editor"
msgstr ""
#: pocheckerconsts.sopenfileexternal
msgid ""
"Open file:\n"
"\"%s\"\n"
"in external editor:\n"
"\"%s\"?\n"
#: pocheckerconsts.sopenfileinideeditor
msgid "Open file in IDE editor"
msgstr ""
#: pocheckerconsts.sopenfileinsystempoeditor
msgid "Open file in system PO editor"
msgstr ""
#: pocheckerconsts.soriginal

View File

@ -282,16 +282,16 @@ msgid ""
"\"%s\"\n"
msgstr ""
#: pocheckerconsts.sopenfile
msgid "Open file %s in Ide Editor?"
#: pocheckerconsts.sopenfileinexternaleditor
msgid "Open file in external editor"
msgstr ""
#: pocheckerconsts.sopenfileexternal
msgid ""
"Open file:\n"
"\"%s\"\n"
"in external editor:\n"
"\"%s\"?\n"
#: pocheckerconsts.sopenfileinideeditor
msgid "Open file in IDE editor"
msgstr ""
#: pocheckerconsts.sopenfileinsystempoeditor
msgid "Open file in system PO editor"
msgstr ""
#: pocheckerconsts.soriginal

View File

@ -300,16 +300,16 @@ msgid ""
"\"%s\"\n"
msgstr ""
#: pocheckerconsts.sopenfile
msgid "Open file %s in Ide Editor?"
#: pocheckerconsts.sopenfileinexternaleditor
msgid "Open file in external editor"
msgstr ""
#: pocheckerconsts.sopenfileexternal
msgid ""
"Open file:\n"
"\"%s\"\n"
"in external editor:\n"
"\"%s\"?\n"
#: pocheckerconsts.sopenfileinideeditor
msgid "Open file in IDE editor"
msgstr ""
#: pocheckerconsts.sopenfileinsystempoeditor
msgid "Open file in system PO editor"
msgstr ""
#: pocheckerconsts.soriginal

View File

@ -309,21 +309,17 @@ msgstr ""
"во внешнем редакторе\n"
"\"%s\"\n"
#: pocheckerconsts.sopenfile
msgid "Open file %s in Ide Editor?"
msgstr "Открыть файл %s в редакторе IDE?"
#: pocheckerconsts.sopenfileinexternaleditor
msgid "Open file in external editor"
msgstr "Открыть файл во внешнем редакторе"
#: pocheckerconsts.sopenfileexternal
msgid ""
"Open file:\n"
"\"%s\"\n"
"in external editor:\n"
"\"%s\"?\n"
msgstr ""
"Открыть файл:\n"
"\"%s\"\n"
"во внешнем редакторе:\n"
"\"%s\"?\n"
#: pocheckerconsts.sopenfileinideeditor
msgid "Open file in IDE editor"
msgstr "Открыть файл в редакторе IDE"
#: pocheckerconsts.sopenfileinsystempoeditor
msgid "Open file in system PO editor"
msgstr "Открыть файл в системном редакторе файлов PO"
#: pocheckerconsts.soriginal
msgid "Original"

View File

@ -300,16 +300,16 @@ msgid ""
"\"%s\"\n"
msgstr ""
#: pocheckerconsts.sopenfile
msgid "Open file %s in Ide Editor?"
#: pocheckerconsts.sopenfileinexternaleditor
msgid "Open file in external editor"
msgstr ""
#: pocheckerconsts.sopenfileexternal
msgid ""
"Open file:\n"
"\"%s\"\n"
"in external editor:\n"
"\"%s\"?\n"
#: pocheckerconsts.sopenfileinideeditor
msgid "Open file in IDE editor"
msgstr ""
#: pocheckerconsts.sopenfileinsystempoeditor
msgid "Open file in system PO editor"
msgstr ""
#: pocheckerconsts.soriginal

View File

@ -51,14 +51,13 @@ resourcestring
'%3d UnTranslated (%3.1f%%)' + LineEnding +
'%3d Fuzzy (%3.1f%%)' + LineEnding +
'%d Error(s) in Selected Tests';
sOpenFile = 'Open file %s in Ide Editor?';
sOpenFileExternal = 'Open file:' + LineEnding + '"%s"' +
LineEnding + 'in external editor:' +
LineEnding + '"%s"?';
SOpenFail = 'Unable to open file:' + LineEnding + '"%s"';
SOpenFailExternal = 'Unable to open file' + LineEnding +
'"%s"' + LineEnding + 'in external editor' + LineEnding + '"%s"';
sCreatingIconXofY = 'Creating icon nr. %d of %d';
sOpenFileInSystemPOEditor = 'Open file in system PO editor';
sOpenFileInExternalEditor = 'Open file in external editor';
sOpenFileInIDEEditor = 'Open file in IDE editor';
//PoFamiles
sOriginal = 'Original';