mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-20 10:59:07 +02:00
Merged revision(s) 50733 #777d59b1c9, 50754 #5bdc000349, 50762 #780ce482b8, 50781 #a04860897f from trunk:
packagetabs: add "View project source" menu item ........ packagetabs: implement i18n, HU translation. Issue #29173. Patch by Peter Gabor ........ packagetabs: add "Copy File Path To Clipboard" menu command ........ PackageTabs: added Russian translation ........ git-svn-id: branches/fixes_1_6@50782 -
This commit is contained in:
parent
d1751e002f
commit
7cbd1f6050
4
.gitattributes
vendored
4
.gitattributes
vendored
@ -3203,9 +3203,13 @@ components/opengl/openglcontext.pas svneol=native#text/plain
|
|||||||
components/opengl/openglcontext.res -text
|
components/opengl/openglcontext.res -text
|
||||||
components/opengl/topenglcontrol.xpm svneol=native#text/plain
|
components/opengl/topenglcontrol.xpm svneol=native#text/plain
|
||||||
components/packagetabs/README.txt svneol=native#text/plain
|
components/packagetabs/README.txt svneol=native#text/plain
|
||||||
|
components/packagetabs/languages/packagetabsstr.hu.po svneol=native#text/plain
|
||||||
|
components/packagetabs/languages/packagetabsstr.po svneol=native#text/plain
|
||||||
|
components/packagetabs/languages/packagetabsstr.ru.po svneol=native#text/plain
|
||||||
components/packagetabs/packagetabs.lpk svneol=native#text/plain
|
components/packagetabs/packagetabs.lpk svneol=native#text/plain
|
||||||
components/packagetabs/packagetabs.pas svneol=native#text/pascal
|
components/packagetabs/packagetabs.pas svneol=native#text/pascal
|
||||||
components/packagetabs/packagetabs_impl.pas svneol=native#text/pascal
|
components/packagetabs/packagetabs_impl.pas svneol=native#text/pascal
|
||||||
|
components/packagetabs/packagetabsstr.pas svneol=native#text/pascal
|
||||||
components/paradox/README.txt svneol=native#text/plain
|
components/paradox/README.txt svneol=native#text/plain
|
||||||
components/paradox/demo/frmmain.lfm svneol=native#text/plain
|
components/paradox/demo/frmmain.lfm svneol=native#text/plain
|
||||||
components/paradox/demo/frmmain.pp svneol=native#text/plain
|
components/paradox/demo/frmmain.pp svneol=native#text/plain
|
||||||
|
55
components/packagetabs/languages/packagetabsstr.hu.po
Normal file
55
components/packagetabs/languages/packagetabsstr.hu.po
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: \n"
|
||||||
|
"POT-Creation-Date: \n"
|
||||||
|
"PO-Revision-Date: \n"
|
||||||
|
"Last-Translator: Péter Gábor <ptrg@freemail.hu>\n"
|
||||||
|
"Language-Team: Magyar (Hungarian)\n"
|
||||||
|
"Language: hu\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Poedit 1.5.4\n"
|
||||||
|
|
||||||
|
#: packagetabsstr.saddtoproject
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Add To Project"
|
||||||
|
msgid "Add To Project"
|
||||||
|
msgstr "Hozzáadás a projekthez"
|
||||||
|
|
||||||
|
#: packagetabsstr.scloneto
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Clone To"
|
||||||
|
msgid "Clone To"
|
||||||
|
msgstr "Klónozás"
|
||||||
|
|
||||||
|
#: packagetabsstr.scopyfilepathtoclipboard
|
||||||
|
msgid "Copy File Path To Clipboard"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: packagetabsstr.sfindinotherwindow
|
||||||
|
msgid "Find In Other Window"
|
||||||
|
msgstr "Keresés másik ablakban"
|
||||||
|
|
||||||
|
#: packagetabsstr.smoveto
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Move To"
|
||||||
|
msgid "Move To"
|
||||||
|
msgstr "Áthelyezés"
|
||||||
|
|
||||||
|
#: packagetabsstr.snewwindow
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "New Window"
|
||||||
|
msgid "New Window"
|
||||||
|
msgstr "Új ablak"
|
||||||
|
|
||||||
|
#: packagetabsstr.sopenpackage
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Open package"
|
||||||
|
msgid "Open package"
|
||||||
|
msgstr "Csomag megnyitása"
|
||||||
|
|
||||||
|
#: packagetabsstr.sother
|
||||||
|
msgid "Other"
|
||||||
|
msgstr "Egyéb"
|
||||||
|
|
35
components/packagetabs/languages/packagetabsstr.po
Normal file
35
components/packagetabs/languages/packagetabsstr.po
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||||
|
|
||||||
|
#: packagetabsstr.saddtoproject
|
||||||
|
msgid "Add To Project"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: packagetabsstr.scloneto
|
||||||
|
msgid "Clone To"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: packagetabsstr.scopyfilepathtoclipboard
|
||||||
|
msgid "Copy File Path To Clipboard"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: packagetabsstr.sfindinotherwindow
|
||||||
|
msgid "Find In Other Window"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: packagetabsstr.smoveto
|
||||||
|
msgid "Move To"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: packagetabsstr.snewwindow
|
||||||
|
msgid "New Window"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: packagetabsstr.sopenpackage
|
||||||
|
msgid "Open package"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: packagetabsstr.sother
|
||||||
|
msgid "Other"
|
||||||
|
msgstr ""
|
||||||
|
|
45
components/packagetabs/languages/packagetabsstr.ru.po
Normal file
45
components/packagetabs/languages/packagetabsstr.ru.po
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Project-Id-Version: \n"
|
||||||
|
"POT-Creation-Date: \n"
|
||||||
|
"PO-Revision-Date: \n"
|
||||||
|
"Last-Translator: Maxim Ganetsky <maxkill@mail.ru>\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: ru\n"
|
||||||
|
"X-Generator: Poedit 1.7.7\n"
|
||||||
|
|
||||||
|
#: packagetabsstr.saddtoproject
|
||||||
|
msgid "Add To Project"
|
||||||
|
msgstr "Добавить к проекту"
|
||||||
|
|
||||||
|
#: packagetabsstr.scloneto
|
||||||
|
msgid "Clone To"
|
||||||
|
msgstr "Клонировать в"
|
||||||
|
|
||||||
|
#: packagetabsstr.scopyfilepathtoclipboard
|
||||||
|
msgid "Copy File Path To Clipboard"
|
||||||
|
msgstr "Копировать путь к файлу в буфер обмена"
|
||||||
|
|
||||||
|
#: packagetabsstr.sfindinotherwindow
|
||||||
|
msgid "Find In Other Window"
|
||||||
|
msgstr "Найти в другом окне"
|
||||||
|
|
||||||
|
#: packagetabsstr.smoveto
|
||||||
|
msgid "Move To"
|
||||||
|
msgstr "Переместить в"
|
||||||
|
|
||||||
|
#: packagetabsstr.snewwindow
|
||||||
|
msgid "New Window"
|
||||||
|
msgstr "Новое окно"
|
||||||
|
|
||||||
|
#: packagetabsstr.sopenpackage
|
||||||
|
msgid "Open package"
|
||||||
|
msgstr "Открыть пакет"
|
||||||
|
|
||||||
|
#: packagetabsstr.sother
|
||||||
|
msgid "Other"
|
||||||
|
msgstr "Прочие"
|
||||||
|
|
@ -30,13 +30,22 @@
|
|||||||
<Description Value="Replacement of source editor tabs/pages with buttons sorted by package and name."/>
|
<Description Value="Replacement of source editor tabs/pages with buttons sorted by package and name."/>
|
||||||
<License Value="GPL-2"/>
|
<License Value="GPL-2"/>
|
||||||
<Version Minor="1" Release="1"/>
|
<Version Minor="1" Release="1"/>
|
||||||
<Files Count="1">
|
<Files Count="2">
|
||||||
<Item1>
|
<Item1>
|
||||||
<Filename Value="packagetabs_impl.pas"/>
|
<Filename Value="packagetabs_impl.pas"/>
|
||||||
<HasRegisterProc Value="True"/>
|
<HasRegisterProc Value="True"/>
|
||||||
<UnitName Value="packagetabs_impl"/>
|
<UnitName Value="packagetabs_impl"/>
|
||||||
</Item1>
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Filename Value="packagetabsstr.pas"/>
|
||||||
|
<UnitName Value="packagetabsstr"/>
|
||||||
|
</Item2>
|
||||||
</Files>
|
</Files>
|
||||||
|
<i18n>
|
||||||
|
<EnableI18N Value="True"/>
|
||||||
|
<OutDir Value="languages"/>
|
||||||
|
<EnableI18NForLFM Value="True"/>
|
||||||
|
</i18n>
|
||||||
<RequiredPkgs Count="2">
|
<RequiredPkgs Count="2">
|
||||||
<Item1>
|
<Item1>
|
||||||
<PackageName Value="IDEIntf"/>
|
<PackageName Value="IDEIntf"/>
|
||||||
|
@ -7,7 +7,7 @@ unit packagetabs;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
packagetabs_impl, LazarusPackageIntf;
|
packagetabs_impl, packagetabsstr, LazarusPackageIntf;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ uses
|
|||||||
Classes, SysUtils, Types, Contnrs, Controls, SrcEditorIntf, StdCtrls, Buttons,
|
Classes, SysUtils, Types, Contnrs, Controls, SrcEditorIntf, StdCtrls, Buttons,
|
||||||
ComCtrls, Forms, LazFileUtils, PackageIntf, Graphics, Menus, LazIDEIntf,
|
ComCtrls, Forms, LazFileUtils, PackageIntf, Graphics, Menus, LazIDEIntf,
|
||||||
ExtCtrls, IDEImagesIntf, LMessages, Math, Laz2_XMLCfg, IDECommands, LCLIntf,
|
ExtCtrls, IDEImagesIntf, LMessages, Math, Laz2_XMLCfg, IDECommands, LCLIntf,
|
||||||
IDEOptionsIntf;
|
IDEOptionsIntf, packagetabsstr, Clipbrd;
|
||||||
|
|
||||||
type
|
type
|
||||||
TPackageTabButton = class(TSpeedButton)
|
TPackageTabButton = class(TSpeedButton)
|
||||||
@ -47,11 +47,9 @@ type
|
|||||||
constructor Create(aOwner: TComponent); override;
|
constructor Create(aOwner: TComponent); override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TPackageTabLabel = class(TLabel)
|
TGroupTabLabel = class(TLabel)
|
||||||
private
|
private
|
||||||
FLeftClickPopupBlock: QWord;
|
FLeftClickPopupBlock: QWord;
|
||||||
public
|
|
||||||
Package: TIDEPackage;
|
|
||||||
protected
|
protected
|
||||||
procedure CalculatePreferredSize(var PreferredWidth,
|
procedure CalculatePreferredSize(var PreferredWidth,
|
||||||
PreferredHeight: integer; WithThemeSpace: Boolean); override;
|
PreferredHeight: integer; WithThemeSpace: Boolean); override;
|
||||||
@ -61,6 +59,15 @@ type
|
|||||||
public
|
public
|
||||||
constructor Create(aOwner: TComponent); override;
|
constructor Create(aOwner: TComponent); override;
|
||||||
end;
|
end;
|
||||||
|
TGroupTabLabelClass = class of TGroupTabLabel;
|
||||||
|
|
||||||
|
TPackageTabLabel = class(TGroupTabLabel)
|
||||||
|
public
|
||||||
|
Package: TIDEPackage;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TProjectTabLabel = class(TGroupTabLabel);
|
||||||
|
TOtherTabLabel = class(TGroupTabLabel);
|
||||||
|
|
||||||
TPackageTabScrollBox = class(TScrollBox)
|
TPackageTabScrollBox = class(TScrollBox)
|
||||||
protected
|
protected
|
||||||
@ -78,6 +85,7 @@ type
|
|||||||
TPackageItem = class
|
TPackageItem = class
|
||||||
public
|
public
|
||||||
Package: TIDEPackage;
|
Package: TIDEPackage;
|
||||||
|
GroupTabLabel: TGroupTabLabelClass;
|
||||||
Files: TStringList;
|
Files: TStringList;
|
||||||
|
|
||||||
constructor Create(APackage: TIDEPackage);
|
constructor Create(APackage: TIDEPackage);
|
||||||
@ -124,11 +132,14 @@ type
|
|||||||
FAppIdleLocked: Boolean;
|
FAppIdleLocked: Boolean;
|
||||||
FTabLabelMenu: TPopupMenu;
|
FTabLabelMenu: TPopupMenu;
|
||||||
FTabLabelMenuCloseAllGroup: TMenuItem;
|
FTabLabelMenuCloseAllGroup: TMenuItem;
|
||||||
|
FTabLabelCopyToClipboard: TMenuItem;
|
||||||
FTabLabelMenuPkgSep: TMenuItem;
|
FTabLabelMenuPkgSep: TMenuItem;
|
||||||
FTabLabelMenuOpenPackage: TMenuItem;
|
FTabLabelMenuOpenPackage: TMenuItem;
|
||||||
|
FTabLabelMenuViewProjectSource: TMenuItem;
|
||||||
FTabButtonMenu: TPopupMenu;
|
FTabButtonMenu: TPopupMenu;
|
||||||
FTabButtonMenuClose: TMenuItem;
|
FTabButtonMenuClose: TMenuItem;
|
||||||
FTabButtonMenuLock: TMenuItemCommand;
|
FTabButtonMenuLock: TMenuItemCommand;
|
||||||
|
FTabButtonCopyToClipboard: TMenuItem;
|
||||||
FTabButtonMenuProjSep: TMenuItem;
|
FTabButtonMenuProjSep: TMenuItem;
|
||||||
FTabButtonMenuAddToProject: TMenuItem;
|
FTabButtonMenuAddToProject: TMenuItem;
|
||||||
FTabButtonMenuMoveCloneSep: TMenuItem;
|
FTabButtonMenuMoveCloneSep: TMenuItem;
|
||||||
@ -158,12 +169,15 @@ type
|
|||||||
procedure TabButtonMenuCloseClick(Sender: TObject);
|
procedure TabButtonMenuCloseClick(Sender: TObject);
|
||||||
procedure TabButtonMenuMoveToClick(Sender: TObject);
|
procedure TabButtonMenuMoveToClick(Sender: TObject);
|
||||||
procedure TabButtonMenuFindInClick(Sender: TObject);
|
procedure TabButtonMenuFindInClick(Sender: TObject);
|
||||||
|
procedure TabButtonCopyToClipboardClick(Sender: TObject);
|
||||||
procedure TabButtonMenuPopup(Sender: TObject);
|
procedure TabButtonMenuPopup(Sender: TObject);
|
||||||
procedure TabButtonMouseDown(Sender: TObject; Button: TMouseButton;
|
procedure TabButtonMouseDown(Sender: TObject; Button: TMouseButton;
|
||||||
Shift: TShiftState; {%H-}X, {%H-}Y: Integer);
|
{%H-}Shift: TShiftState; {%H-}X, {%H-}Y: Integer);
|
||||||
procedure TabLabelCloseAllGroupClick(Sender: TObject);
|
procedure TabLabelCloseAllGroupClick(Sender: TObject);
|
||||||
|
procedure TabLabelCopyToClipboardClick(Sender: TObject);
|
||||||
procedure TabLabelMenuOpenPackageClick(Sender: TObject);
|
procedure TabLabelMenuOpenPackageClick(Sender: TObject);
|
||||||
procedure TabLabelMenuPopup(Sender: TObject);
|
procedure TabLabelMenuPopup(Sender: TObject);
|
||||||
|
procedure TabLabelMenuViewProjectSourceClick(Sender: TObject);
|
||||||
public
|
public
|
||||||
constructor Create(AParentWindow: TSourceEditorWindowInterface); reintroduce;
|
constructor Create(AParentWindow: TSourceEditorWindowInterface); reintroduce;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
@ -423,9 +437,9 @@ begin
|
|||||||
PreferredWidth := PreferredWidth + 6;
|
PreferredWidth := PreferredWidth + 6;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TPackageTabLabel }
|
{ TGroupTabLabel }
|
||||||
|
|
||||||
constructor TPackageTabLabel.Create(aOwner: TComponent);
|
constructor TGroupTabLabel.Create(aOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited Create(aOwner);
|
inherited Create(aOwner);
|
||||||
|
|
||||||
@ -436,7 +450,7 @@ begin
|
|||||||
Cursor := crHandPoint;
|
Cursor := crHandPoint;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPackageTabLabel.CalculatePreferredSize(var PreferredWidth,
|
procedure TGroupTabLabel.CalculatePreferredSize(var PreferredWidth,
|
||||||
PreferredHeight: integer; WithThemeSpace: Boolean);
|
PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||||
begin
|
begin
|
||||||
inherited CalculatePreferredSize(PreferredWidth, PreferredHeight,
|
inherited CalculatePreferredSize(PreferredWidth, PreferredHeight,
|
||||||
@ -446,7 +460,7 @@ begin
|
|||||||
PreferredWidth := PreferredWidth + 8;
|
PreferredWidth := PreferredWidth + 8;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPackageTabLabel.MouseDown(Button: TMouseButton; Shift: TShiftState;
|
procedure TGroupTabLabel.MouseDown(Button: TMouseButton; Shift: TShiftState;
|
||||||
X, Y: Integer);
|
X, Y: Integer);
|
||||||
var
|
var
|
||||||
xPt: Types.TPoint;
|
xPt: Types.TPoint;
|
||||||
@ -462,14 +476,14 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPackageTabLabel.MouseEnter;
|
procedure TGroupTabLabel.MouseEnter;
|
||||||
begin
|
begin
|
||||||
inherited MouseEnter;
|
inherited MouseEnter;
|
||||||
|
|
||||||
Font.Style := Font.Style + [fsUnderline];
|
Font.Style := Font.Style + [fsUnderline];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPackageTabLabel.MouseLeave;
|
procedure TGroupTabLabel.MouseLeave;
|
||||||
begin
|
begin
|
||||||
inherited MouseLeave;
|
inherited MouseLeave;
|
||||||
|
|
||||||
@ -513,7 +527,7 @@ begin
|
|||||||
FTabLabelMenu.Images := IDEImages.Images_16;
|
FTabLabelMenu.Images := IDEImages.Images_16;
|
||||||
FTabLabelMenu.OnPopup := @TabLabelMenuPopup;
|
FTabLabelMenu.OnPopup := @TabLabelMenuPopup;
|
||||||
FTabLabelMenuCloseAllGroup := TMenuItem.Create(Self);
|
FTabLabelMenuCloseAllGroup := TMenuItem.Create(Self);
|
||||||
FTabLabelMenuCloseAllGroup.Caption := 'Close all'; // ToDo: localize
|
FTabLabelMenuCloseAllGroup.Caption := IDECommandList.FindIDECommand(ecCloseAll).LocalizedName;
|
||||||
FTabLabelMenuCloseAllGroup.OnClick := @TabLabelCloseAllGroupClick;
|
FTabLabelMenuCloseAllGroup.OnClick := @TabLabelCloseAllGroupClick;
|
||||||
FTabLabelMenuCloseAllGroup.ImageIndex := IDEImages.LoadImage(16, 'menu_close_all');
|
FTabLabelMenuCloseAllGroup.ImageIndex := IDEImages.LoadImage(16, 'menu_close_all');
|
||||||
FTabLabelMenu.Items.Add(FTabLabelMenuCloseAllGroup);
|
FTabLabelMenu.Items.Add(FTabLabelMenuCloseAllGroup);
|
||||||
@ -521,30 +535,43 @@ begin
|
|||||||
FTabLabelMenuPkgSep.Caption := '-';
|
FTabLabelMenuPkgSep.Caption := '-';
|
||||||
FTabLabelMenu.Items.Add(FTabLabelMenuPkgSep);
|
FTabLabelMenu.Items.Add(FTabLabelMenuPkgSep);
|
||||||
FTabLabelMenuOpenPackage := TMenuItem.Create(Self);
|
FTabLabelMenuOpenPackage := TMenuItem.Create(Self);
|
||||||
FTabLabelMenuOpenPackage.Caption := 'Open package'; // ToDo: localize
|
FTabLabelMenuOpenPackage.Caption := sOpenPackage;
|
||||||
FTabLabelMenuOpenPackage.OnClick := @TabLabelMenuOpenPackageClick;
|
FTabLabelMenuOpenPackage.OnClick := @TabLabelMenuOpenPackageClick;
|
||||||
FTabLabelMenuOpenPackage.ImageIndex := IDEImages.LoadImage(16, 'pkg_open');
|
FTabLabelMenuOpenPackage.ImageIndex := IDEImages.LoadImage(16, 'pkg_open');
|
||||||
FTabLabelMenu.Items.Add(FTabLabelMenuOpenPackage);
|
FTabLabelMenu.Items.Add(FTabLabelMenuOpenPackage);
|
||||||
|
FTabLabelMenuViewProjectSource := TMenuItem.Create(Self);
|
||||||
|
FTabLabelMenuViewProjectSource.Caption := IDECommandList.FindIDECommand(ecViewProjectSource).LocalizedName;
|
||||||
|
FTabLabelMenuViewProjectSource.OnClick := @TabLabelMenuViewProjectSourceClick;
|
||||||
|
FTabLabelMenuViewProjectSource.ImageIndex := IDEImages.LoadImage(16, 'menu_project_viewsource');
|
||||||
|
FTabLabelMenu.Items.Add(FTabLabelMenuViewProjectSource);
|
||||||
|
FTabLabelCopyToClipboard := TMenuItem.Create(Self);
|
||||||
|
FTabLabelCopyToClipboard.Caption := sCopyFilePathToClipboard;
|
||||||
|
FTabLabelCopyToClipboard.OnClick := @TabLabelCopyToClipboardClick;
|
||||||
|
FTabLabelMenu.Items.Add(FTabLabelCopyToClipboard);
|
||||||
|
|
||||||
FTabButtonMenu := TPopupMenu.Create(Self);
|
FTabButtonMenu := TPopupMenu.Create(Self);
|
||||||
FTabButtonMenu.Images := IDEImages.Images_16;
|
FTabButtonMenu.Images := IDEImages.Images_16;
|
||||||
FTabButtonMenu.OnPopup := @TabButtonMenuPopup;
|
FTabButtonMenu.OnPopup := @TabButtonMenuPopup;
|
||||||
FTabButtonMenuClose := TMenuItem.Create(Self);
|
FTabButtonMenuClose := TMenuItem.Create(Self);
|
||||||
FTabButtonMenuClose.Caption := 'Close'; // ToDo: localize
|
FTabButtonMenuClose.Caption := IDECommandList.FindIDECommand(ecClose).LocalizedName;
|
||||||
FTabButtonMenuClose.OnClick := @TabButtonMenuCloseClick;
|
FTabButtonMenuClose.OnClick := @TabButtonMenuCloseClick;
|
||||||
FTabButtonMenuClose.ImageIndex := IDEImages.LoadImage(16, 'menu_close');
|
FTabButtonMenuClose.ImageIndex := IDEImages.LoadImage(16, 'menu_close');
|
||||||
FTabButtonMenu.Items.Add(FTabButtonMenuClose);
|
FTabButtonMenu.Items.Add(FTabButtonMenuClose);
|
||||||
FTabButtonMenuLock := TMenuItemCommand.Create(Self);
|
FTabButtonMenuLock := TMenuItemCommand.Create(Self);
|
||||||
FTabButtonMenuLock.Caption := 'Lock Editor'; // ToDo: localize
|
FTabButtonMenuLock.Caption := IDECommandList.FindIDECommand(ecLockEditor).LocalizedName;
|
||||||
FTabButtonMenuLock.IDECommand := ecLockEditor;
|
FTabButtonMenuLock.IDECommand := ecLockEditor;
|
||||||
FTabButtonMenuLock.OnClick := @MenuItemCommandClick;
|
FTabButtonMenuLock.OnClick := @MenuItemCommandClick;
|
||||||
FTabButtonMenu.Items.Add(FTabButtonMenuLock);
|
FTabButtonMenu.Items.Add(FTabButtonMenuLock);
|
||||||
|
FTabButtonCopyToClipboard := TMenuItem.Create(Self);
|
||||||
|
FTabButtonCopyToClipboard.Caption := sCopyFilePathToClipboard;
|
||||||
|
FTabButtonCopyToClipboard.OnClick := @TabButtonCopyToClipboardClick;
|
||||||
|
FTabButtonMenu.Items.Add(FTabButtonCopyToClipboard);
|
||||||
|
|
||||||
FTabButtonMenuProjSep := TMenuItem.Create(Self);
|
FTabButtonMenuProjSep := TMenuItem.Create(Self);
|
||||||
FTabButtonMenuProjSep.Caption := '-';
|
FTabButtonMenuProjSep.Caption := '-';
|
||||||
FTabButtonMenu.Items.Add(FTabButtonMenuProjSep);
|
FTabButtonMenu.Items.Add(FTabButtonMenuProjSep);
|
||||||
FTabButtonMenuAddToProject := TMenuItem.Create(Self);
|
FTabButtonMenuAddToProject := TMenuItem.Create(Self);
|
||||||
FTabButtonMenuAddToProject.Caption := 'Add to project'; // ToDo: localize
|
FTabButtonMenuAddToProject.Caption := sAddToProject;
|
||||||
FTabButtonMenuAddToProject.OnClick := @TabButtonMenuAddToProjectClick;
|
FTabButtonMenuAddToProject.OnClick := @TabButtonMenuAddToProjectClick;
|
||||||
FTabButtonMenuAddToProject.ImageIndex := IDEImages.LoadImage(16, 'menu_project_add');
|
FTabButtonMenuAddToProject.ImageIndex := IDEImages.LoadImage(16, 'menu_project_add');
|
||||||
FTabButtonMenu.Items.Add(FTabButtonMenuAddToProject);
|
FTabButtonMenu.Items.Add(FTabButtonMenuAddToProject);
|
||||||
@ -553,25 +580,25 @@ begin
|
|||||||
FTabButtonMenuMoveCloneSep.Caption := '-';
|
FTabButtonMenuMoveCloneSep.Caption := '-';
|
||||||
FTabButtonMenu.Items.Add(FTabButtonMenuMoveCloneSep);
|
FTabButtonMenu.Items.Add(FTabButtonMenuMoveCloneSep);
|
||||||
FTabButtonMenuMoveTo := TMenuItem.Create(Self);
|
FTabButtonMenuMoveTo := TMenuItem.Create(Self);
|
||||||
FTabButtonMenuMoveTo.Caption := 'Move To'; // ToDo: localize
|
FTabButtonMenuMoveTo.Caption := sMoveTo;
|
||||||
FTabButtonMenu.Items.Add(FTabButtonMenuMoveTo);
|
FTabButtonMenu.Items.Add(FTabButtonMenuMoveTo);
|
||||||
FTabButtonMenuMoveToNew := TMenuItemCommand.Create(Self);
|
FTabButtonMenuMoveToNew := TMenuItemCommand.Create(Self);
|
||||||
FTabButtonMenuMoveToNew.Caption := 'New Window'; // ToDo: localize
|
FTabButtonMenuMoveToNew.Caption := sNewWindow;
|
||||||
FTabButtonMenuMoveToNew.IDECommand := ecMoveEditorNewWindow;
|
FTabButtonMenuMoveToNew.IDECommand := ecMoveEditorNewWindow;
|
||||||
FTabButtonMenuMoveToNew.NeedsActiveEditor := True;
|
FTabButtonMenuMoveToNew.NeedsActiveEditor := True;
|
||||||
FTabButtonMenuMoveToNew.OnClick := @MenuItemCommandClick;
|
FTabButtonMenuMoveToNew.OnClick := @MenuItemCommandClick;
|
||||||
FTabButtonMenuMoveTo.Add(FTabButtonMenuMoveToNew);
|
FTabButtonMenuMoveTo.Add(FTabButtonMenuMoveToNew);
|
||||||
FTabButtonMenuCloneTo := TMenuItem.Create(Self);
|
FTabButtonMenuCloneTo := TMenuItem.Create(Self);
|
||||||
FTabButtonMenuCloneTo.Caption := 'Clone To'; // ToDo: localize
|
FTabButtonMenuCloneTo.Caption := sCloneTo;
|
||||||
FTabButtonMenu.Items.Add(FTabButtonMenuCloneTo);
|
FTabButtonMenu.Items.Add(FTabButtonMenuCloneTo);
|
||||||
FTabButtonMenuCloneToNew := TMenuItemCommand.Create(Self);
|
FTabButtonMenuCloneToNew := TMenuItemCommand.Create(Self);
|
||||||
FTabButtonMenuCloneToNew.Caption := 'New Window'; // ToDo: localize
|
FTabButtonMenuCloneToNew.Caption := sNewWindow;
|
||||||
FTabButtonMenuCloneToNew.IDECommand := ecCopyEditorNewWindow;
|
FTabButtonMenuCloneToNew.IDECommand := ecCopyEditorNewWindow;
|
||||||
FTabButtonMenuCloneToNew.NeedsActiveEditor := True;
|
FTabButtonMenuCloneToNew.NeedsActiveEditor := True;
|
||||||
FTabButtonMenuCloneToNew.OnClick := @MenuItemCommandClick;
|
FTabButtonMenuCloneToNew.OnClick := @MenuItemCommandClick;
|
||||||
FTabButtonMenuCloneTo.Add(FTabButtonMenuCloneToNew);
|
FTabButtonMenuCloneTo.Add(FTabButtonMenuCloneToNew);
|
||||||
FTabButtonMenuFindIn := TMenuItem.Create(Self);
|
FTabButtonMenuFindIn := TMenuItem.Create(Self);
|
||||||
FTabButtonMenuFindIn.Caption := 'Find In Other Window'; // ToDo: localize
|
FTabButtonMenuFindIn.Caption := sFindInOtherWindow;
|
||||||
FTabButtonMenu.Items.Add(FTabButtonMenuFindIn);
|
FTabButtonMenu.Items.Add(FTabButtonMenuFindIn);
|
||||||
|
|
||||||
Application.AddOnIdleHandler(@AppOnIdle, False);
|
Application.AddOnIdleHandler(@AppOnIdle, False);
|
||||||
@ -692,7 +719,7 @@ var
|
|||||||
xPackages: TStringList;
|
xPackages: TStringList;
|
||||||
xPackage: TIDEPackage;
|
xPackage: TIDEPackage;
|
||||||
xEditor, xOldActive: TSourceEditorInterface;
|
xEditor, xOldActive: TSourceEditorInterface;
|
||||||
xLbl: TPackageTabLabel;
|
xLbl: TGroupTabLabel;
|
||||||
xPkgItem: TPackageItem;
|
xPkgItem: TPackageItem;
|
||||||
xPackageName: string;
|
xPackageName: string;
|
||||||
begin
|
begin
|
||||||
@ -723,7 +750,7 @@ begin
|
|||||||
if (xPackage<>nil) and (xPackage.Name<>'') then
|
if (xPackage<>nil) and (xPackage.Name<>'') then
|
||||||
xPackageName := xPackage.Name
|
xPackageName := xPackage.Name
|
||||||
else
|
else
|
||||||
xPackageName := High(Char)+'Other'; // ToDo: localize, better sorting...
|
xPackageName := High(Char) + sOther; // ToDo: better sorting...
|
||||||
end;
|
end;
|
||||||
xPkgIndex := xPackages.IndexOf(xPackageName);
|
xPkgIndex := xPackages.IndexOf(xPackageName);
|
||||||
if xPkgIndex < 0 then
|
if xPkgIndex < 0 then
|
||||||
@ -737,13 +764,31 @@ begin
|
|||||||
xPkgItem := TPackageItem(xPackages.Objects[I]);
|
xPkgItem := TPackageItem(xPackages.Objects[I]);
|
||||||
|
|
||||||
xPackageName := xPackages[I];
|
xPackageName := xPackages[I];
|
||||||
if xPackageName[1] in [Low(Char), High(Char)] then
|
case xPackageName[1] of
|
||||||
Delete(xPackageName, 1, 1);
|
Low(Char):
|
||||||
xLbl := TPackageTabLabel.Create(Self);
|
begin
|
||||||
|
Delete(xPackageName, 1, 1);
|
||||||
|
xLbl := TProjectTabLabel.Create(Self);
|
||||||
|
if LazarusIDE.ActiveProject <> nil then
|
||||||
|
begin
|
||||||
|
xLbl.Hint := LazarusIDE.ActiveProject.MainFile.Filename;
|
||||||
|
xLbl.ShowHint := True;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
High(Char):
|
||||||
|
begin
|
||||||
|
Delete(xPackageName, 1, 1);
|
||||||
|
xLbl := TOtherTabLabel.Create(Self);
|
||||||
|
end;
|
||||||
|
else
|
||||||
|
xLbl := TPackageTabLabel.Create(Self);
|
||||||
|
TPackageTabLabel(xLbl).Package := xPkgItem.Package;
|
||||||
|
xLbl.Hint := xPkgItem.Package.Filename;
|
||||||
|
xLbl.ShowHint := True;
|
||||||
|
end;
|
||||||
xLbl.Caption := xPackageName;
|
xLbl.Caption := xPackageName;
|
||||||
xLbl.Parent := FPanel;
|
xLbl.Parent := FPanel;
|
||||||
xLbl.PopupMenu := FTabLabelMenu;
|
xLbl.PopupMenu := FTabLabelMenu;
|
||||||
xLbl.Package := xPkgItem.Package;
|
|
||||||
xLbl.Height := TPackageTabButton.GetControlClassDefaultSize.cy;
|
xLbl.Height := TPackageTabButton.GetControlClassDefaultSize.cy;
|
||||||
if FPanel is TPackageTabScrollBox then
|
if FPanel is TPackageTabScrollBox then
|
||||||
begin
|
begin
|
||||||
@ -841,6 +886,14 @@ begin
|
|||||||
FSetActiveEditor := False;
|
FSetActiveEditor := False;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TPackageTabPanel.TabButtonCopyToClipboardClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
xBtn: TPackageTabButton;
|
||||||
|
begin
|
||||||
|
xBtn := (FTabButtonMenu.PopupComponent as TPackageTabButton);
|
||||||
|
Clipboard.AsText := xBtn.Editor.FileName;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TPackageTabPanel.TabButtonMenuAddToProjectClick(Sender: TObject);
|
procedure TPackageTabPanel.TabButtonMenuAddToProjectClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
xBtn: TPackageTabButton;
|
xBtn: TPackageTabButton;
|
||||||
@ -1011,6 +1064,22 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TPackageTabPanel.TabLabelCopyToClipboardClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
xFileName: string;
|
||||||
|
begin
|
||||||
|
if (FTabLabelMenu.PopupComponent is TPackageTabLabel) then
|
||||||
|
xFileName := (FTabLabelMenu.PopupComponent as TPackageTabLabel).Package.Filename
|
||||||
|
else
|
||||||
|
if (FTabLabelMenu.PopupComponent is TProjectTabLabel) then
|
||||||
|
xFileName := LazarusIDE.ActiveProject.MainFile.Filename
|
||||||
|
else
|
||||||
|
xFileName := '';
|
||||||
|
|
||||||
|
if xFileName<>'' then
|
||||||
|
Clipboard.AsText := xFileName;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TPackageTabPanel.TabLabelMenuOpenPackageClick(Sender: TObject);
|
procedure TPackageTabPanel.TabLabelMenuOpenPackageClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
xLbl: TPackageTabLabel;
|
xLbl: TPackageTabLabel;
|
||||||
@ -1021,11 +1090,23 @@ end;
|
|||||||
|
|
||||||
procedure TPackageTabPanel.TabLabelMenuPopup(Sender: TObject);
|
procedure TPackageTabPanel.TabLabelMenuPopup(Sender: TObject);
|
||||||
var
|
var
|
||||||
xLbl: TPackageTabLabel;
|
xLbl: TGroupTabLabel;
|
||||||
begin
|
begin
|
||||||
xLbl := (FTabLabelMenu.PopupComponent as TPackageTabLabel);
|
xLbl := (FTabLabelMenu.PopupComponent as TGroupTabLabel);
|
||||||
FTabLabelMenuPkgSep.Visible := xLbl.Package<>nil;
|
FTabLabelMenuOpenPackage.Visible := (xLbl is TPackageTabLabel);
|
||||||
FTabLabelMenuOpenPackage.Visible := xLbl.Package<>nil;
|
FTabLabelMenuViewProjectSource.Visible := (xLbl is TProjectTabLabel);
|
||||||
|
FTabLabelMenuPkgSep.Visible :=
|
||||||
|
FTabLabelMenuOpenPackage.Visible or FTabLabelMenuViewProjectSource.Visible;
|
||||||
|
FTabLabelCopyToClipboard.Visible := not(xLbl is TOtherTabLabel);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TPackageTabPanel.TabLabelMenuViewProjectSourceClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
xCmd: TIDECommand;
|
||||||
|
begin
|
||||||
|
xCmd := IDECommandList.FindIDECommand(ecViewProjectSource);
|
||||||
|
Assert(xCmd<>nil);
|
||||||
|
xCmd.Execute(Sender);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TPackageTabPanels }
|
{ TPackageTabPanels }
|
||||||
|
20
components/packagetabs/packagetabsstr.pas
Normal file
20
components/packagetabs/packagetabsstr.pas
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
unit packagetabsstr;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
resourcestring
|
||||||
|
sOpenPackage = 'Open package';
|
||||||
|
sMoveTo = 'Move To';
|
||||||
|
sNewWindow = 'New Window';
|
||||||
|
sCloneTo = 'Clone To';
|
||||||
|
sFindInOtherWindow = 'Find In Other Window';
|
||||||
|
sOther = 'Other';
|
||||||
|
sAddToProject = 'Add To Project';
|
||||||
|
sCopyFilePathToClipboard = 'Copy File Path To Clipboard';
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user