Merged revision(s) 48063 #5dc968befc, 48072 #d8dd2b9b78, 48090 #6399902356 from trunk:

TShellTreeView: better fix not displaying files in connected ShellListView. Issue #0027571.
........
TShellTreeView: when a TShellListView is attached, handle selecting items that do not exist anymore on disk.
........
LCL: regenerated translations and updated Russian translation
........

git-svn-id: branches/fixes_1_4@48091 -
This commit is contained in:
maxim 2015-03-01 21:07:29 +00:00
parent 6d838f118c
commit 0cd40f99e8
24 changed files with 147 additions and 3 deletions

View File

@ -1572,6 +1572,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1534,6 +1534,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1535,6 +1535,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1570,6 +1570,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1528,6 +1528,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1532,6 +1532,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1584,6 +1584,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1530,6 +1530,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1571,6 +1571,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1534,6 +1534,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1561,6 +1561,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1561,6 +1561,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1564,6 +1564,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1576,6 +1576,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1542,6 +1542,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1523,6 +1523,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1558,6 +1558,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -5,7 +5,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2015-02-17 02:36+0300\n"
"PO-Revision-Date: 2015-03-01 23:38+0300\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@ -1536,6 +1536,14 @@ msgstr "%s МБ"
msgid "Name"
msgstr "Имя"
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
"Выбранный элемент отсутствует на диске:\n"
"\"%s\"\n"
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr "Размер"

View File

@ -1571,6 +1571,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1571,6 +1571,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1561,6 +1561,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -1577,6 +1577,12 @@ msgstr ""
msgid "Name"
msgstr ""
#: lclstrconsts.sshellctrlsselecteditemdoesnotexists
msgid ""
"The selected item does not exist on disk:\n"
"\"%s\"\n"
msgstr ""
#: lclstrconsts.sshellctrlssize
msgid "Size"
msgstr ""

View File

@ -307,6 +307,7 @@ resourceString
sShellCtrlsKB = '%s kB';
sShellCtrlsBytes = '%s bytes';
sShellCtrlsInvalidRoot = 'Invalid pathname:'#13'"%s"';
sShellCtrlsSelectedItemDoesNotExists = 'The selected item does not exist on disk:'#13'"%s"';
sShellCtrlsInvalidPath = 'Invalid pathname:'#13'"%s"';
sShellCtrlsInvalidPathRelative = 'Invalid relative pathname:'#13'"%s"'#13
+'in relation to rootpath:'#13'"%s"';

View File

@ -848,13 +848,19 @@ end;
procedure TCustomShellTreeView.DoSelectionChanged;
var
ANode: TTreeNode;
IsDirectory: Boolean;
IsDirectory, MustBeDirectory: Boolean;
CurrentNodePath: String;
begin
inherited DoSelectionChanged;
ANode := Selected;
if Assigned(FShellListView) and Assigned(ANode) then
begin
IsDirectory := (not (otNonFolders in FObjectTypes)) or ANode.HasChildren;
//You cannot rely on HasChildren here, because it can become FALSE when user
//clicks the expand sign and folder is empty
//Issue 0027571
MustBeDirectory := not (otNonFolders in FObjectTypes);
CurrentNodePath := ChompPathDelim(GetPathFromNode(ANode));
IsDirectory := MustBeDirectory or DirectoryExistsUtf8(CurrentNodePath);
if IsDirectory then
begin
//Note: the folder may have been deleted in the mean time
@ -863,6 +869,9 @@ begin
end
else
begin
//At this point we cannot tell if item used to be a folder or a file
if not FileExistsUtf8(CurrentNodePath) then
Raise Exception.CreateFmt(sShellCtrlsSelectedItemDoesNotExists,[CurrentNodePath]);
if Assigned(Anode.Parent) then
FShellListView.Root := GetPathFromNode(ANode.Parent)
else