summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docview/src/docview.rc8
-rw-r--r--src/VERSION_FILE.inc2
-rw-r--r--src/corelib/fpg_base.pas28
-rw-r--r--src/corelib/x11/fpg_x11.pas13
4 files changed, 39 insertions, 12 deletions
diff --git a/docview/src/docview.rc b/docview/src/docview.rc
index 34ed0c18..64d63286 100644
--- a/docview/src/docview.rc
+++ b/docview/src/docview.rc
@@ -1,8 +1,8 @@
MAINICON ICON "../images/docview-48x48.ico"
1 VERSIONINFO
-FILEVERSION 1, 0, 0, 0
-PRODUCTVERSION 1, 0, 0, 0
+FILEVERSION 1, 1, 0, 0
+PRODUCTVERSION 1, 1, 0, 0
FILEFLAGSMASK 0
FILEOS 0x40000
FILETYPE 1
@@ -13,12 +13,12 @@ FILETYPE 1
{
VALUE "CompanyName", "fpGUI Toolkit"
VALUE "FileDescription", "fpGUI's INF Documentation Viewer"
- VALUE "FileVersion", "1.0.0"
+ VALUE "FileVersion", "1.1.0"
VALUE "InternalName", "docview"
VALUE "LegalCopyright", "GNU Public License"
VALUE "OriginalFilename", "docview"
VALUE "ProductName", "fpGUI Toolkit"
- VALUE "ProductVersion", "1.0.0"
+ VALUE "ProductVersion", "1.1.0"
}
}
BLOCK "VarFileInfo"
diff --git a/src/VERSION_FILE.inc b/src/VERSION_FILE.inc
index 212d4aea..b47293e2 100644
--- a/src/VERSION_FILE.inc
+++ b/src/VERSION_FILE.inc
@@ -1 +1 @@
-FPGUI_VERSION = '1.0';
+FPGUI_VERSION = '1.1';
diff --git a/src/corelib/fpg_base.pas b/src/corelib/fpg_base.pas
index 07d44191..199273e2 100644
--- a/src/corelib/fpg_base.pas
+++ b/src/corelib/fpg_base.pas
@@ -602,6 +602,7 @@ type
TFileEntryType = (etFile, etDir);
TFileListSortOrder = (soNone, soFileName, soCSFileName, soFileExt, soSize, soTime);
TFileModeString = string[9];
+ TfpgSearchMode = (smAny, smFiles, smDirs);
// A simple data object
@@ -641,6 +642,7 @@ type
FEntries: TList;
FDirectoryName: TfpgString;
FFileMask: TfpgString;
+ FSearchMode: TfpgSearchMode;
FShowHidden: boolean;
FCurrentSpecialDir: integer;
procedure AddEntry(sr: TSearchRec);
@@ -663,6 +665,7 @@ type
property Entry[i: integer]: TFileEntry read GetEntry;
property FileMask: TfpgString read FFileMask write FFileMask;
property HasFileMode: boolean read FHasFileMode;
+ property SearchMode: TfpgSearchMode read FSearchMode write FSearchMode;
property ShowHidden: boolean read FShowHidden write FShowHidden;
property SpecialDirs: TStringList read FSpecialDirs;
end;
@@ -2613,7 +2616,11 @@ var
p: TProcess;
begin
Result := False;
- if not fpgFileExists(GetHelpViewer) then
+ if fpgExtractFilePath(GetHelpViewer) = '' then
+ begin
+ // do nothing - we are hoping docview is in the system PATH
+ end
+ else if not fpgFileExists(GetHelpViewer) then
raise EfpGUIUserFeedbackException.Create(rsfailedtofindhelpviewer);
p := TProcess.Create(nil);
try
@@ -2641,7 +2648,11 @@ var
p: TProcess;
begin
Result := False;
- if not fpgFileExists(GetHelpViewer) then
+ if fpgExtractFilePath(GetHelpViewer) = '' then
+ begin
+ // do nothing - we are hoping docview is in the system PATH
+ end
+ else if not fpgFileExists(GetHelpViewer) then
raise EfpGUIUserFeedbackException.Create(rsfailedtofindhelpviewer);
p := TProcess.Create(nil);
try
@@ -2854,6 +2865,7 @@ begin
FFileMask := '*';
FDirectoryName := '';
FSpecialDirs := TStringList.Create;
+ FSearchMode := smAny;
end;
destructor TfpgFileListBase.Destroy;
@@ -2900,11 +2912,13 @@ begin
// Reported to FPC as bug 9440 in Mantis.
if fpgFindFirst(FDirectoryName + AllFilesMask, faAnyFile or $00000080, SearchRec) = 0 then
begin
- AddEntry(SearchRec);
- while fpgFindNext(SearchRec) = 0 do
- begin
- AddEntry(SearchRec);
- end;
+ repeat
+ if (FSearchMode=smAny) or
+ ((FSearchMode=smFiles) and (not HasAttrib(SearchRec.Attr, faDirectory))) or
+ ((FSearchMode=smDirs) and HasAttrib(SearchRec.Attr, faDirectory))
+ then
+ AddEntry(SearchRec);
+ until fpgFindNext(SearchRec) <> 0;
end;
Result:=True;
finally
diff --git a/src/corelib/x11/fpg_x11.pas b/src/corelib/x11/fpg_x11.pas
index 20974dfe..37b2b469 100644
--- a/src/corelib/x11/fpg_x11.pas
+++ b/src/corelib/x11/fpg_x11.pas
@@ -322,6 +322,7 @@ type
function DoGetFontFaceList: TStringList; override;
procedure DoWaitWindowMessage(atimeoutms: integer); override;
function MessagesPending: boolean; override;
+ function GetHelpViewer: TfpgString; override;
public
constructor Create(const AParams: string); override;
destructor Destroy; override;
@@ -420,6 +421,7 @@ implementation
uses
baseunix,
+ unix,
{$IFDEF LINUX}
users, { For Linux user and group name support. FPC only supports this in Linux. }
{$ENDIF}
@@ -430,6 +432,7 @@ uses
fpg_utils,
fpg_form, // for modal event support
fpg_cmdlineparams,
+ fpg_constants,
cursorfont,
xatom, // used for XA_WM_NAME
keysym,
@@ -1433,6 +1436,16 @@ begin
fpgCheckTimers;
end;
+function TfpgX11Application.GetHelpViewer: TfpgString;
+begin
+ Result := inherited GetHelpViewer;
+ if not fpgFileExists(Result) then
+ begin
+ if fpsystem('which ' + FPG_HELPVIEWER) = 0 then
+ Result := FPG_HELPVIEWER;
+ end;
+end;
+
function GetParentWindow(wh: TfpgWinHandle; var pw, rw: TfpgWinHandle): boolean;
var
rootw: TfpgWinHandle;