Permalink
Browse files

Merge pull request #54 from tedsmith/v3.0.4

V3.0.4 to master
  • Loading branch information...
tedsmith committed Jan 16, 2019
2 parents b70aa38 + 6cfc33b commit 80aaab237f51e61a71f2ac3e443095f8e4cad0ff
Showing with 2,557 additions and 2,551 deletions.
  1. +14 −7 CHANGELOG.md
  2. +1 −1 FindAllFilesEnhanced.pas
  3. +2 −2 dbases_sqlite.lfm
  4. +19 −1 dbases_sqlite.pas
  5. +48 −48 diskmodule.lfm
  6. +1 −1 diskmodule.pas
  7. +11 −9 frmaboutunit.lfm
  8. +33 −30 frmaboutunit.lrs
  9. +1 −1 frmaboutunit.pas
  10. +57 −62 quickhash.lpi
  11. +1 −1 quickhash.lpr
  12. +1 −1 uKnownHashLists.pas
  13. +1 −1 udisplaygrid.lfm
  14. +1 −1 udisplaygrid.pas
  15. +2,327 −2,326 unit2.lfm
  16. +16 −36 unit2.pas
  17. +22 −22 uprogress.lfm
  18. +1 −1 uprogress.pas
21 CHANGELOG.md 100644 → 100755
@@ -1,6 +1,14 @@
Version History
===============

v3.0.4 (Jan 2019)

The 'File' tab was not showing automatically when using drag and drop. Now it does.

On Linux and OSX, the program will now automatically use default system wide SQLite libraries. Thios should reduce the risk of the program failing to load due to an SQLite file not being where it is expected to be.

Reverted the "hash matches expected hash" or "hash does not match expected hash" back to how it was before v.3.0.3. Users complained that it was more confusing in v3.0.3 than previous versions. So now it is back to the normal OK dialog and it just tells you if it it matches or not.

v3.0.3 (Jan 2019)

The 'Load Hashlist' functionality in the 'FileS' tab would accept all values but then compare them against computer uppercase hashes strings, meaning any lowercase imported values were not matched.
@@ -15,8 +23,7 @@ The filehandles were not always being released properly, even if hashing complet
The 'FileS' tab was computing file hashes of zero bytes returning the default initialisation hash for the chosen algorithm. I thought I had corrected that a long time ago but I may only have done
so for the 'File' tab according to the release notes. That was fixed returning instead 'ZERO BYTE FILE'.

A feature request was made asking for a clearer message when computed hashes do not match expected hash values input
by the user. So a new message dialog is now shown that tries to make it very clear the hashes do, or do not, match for
clear the hashes do, or do not, match for
single file hashing in the 'File' tab or when using 'drag and drop' feature.

The exe version has been updated to the correct numbering for the version (forgot to update in the project file last time).
@@ -38,11 +45,11 @@ The "List JUST sub-directories" and "List JUST sub-directories and files" had be
The "Make UPPER" and "Make Lower" buttons in Text tab didnt work properly on OSX (as in the has was not auto-recomputed for the new cases text). That was fixed.
The "Switch case" tick box was made wider to avoid truncation.

v3.0.1 (Feb 2018)
The "Select File" in File tab generated an unnecessary error if the user cancelled the selection. Now it just cancels as expected
If QuickHash cannot get a handle to a file because it is open without share permissions by the OS, QuickHash should now silently proceed and simply report that the file could not be accessed in the hash column
The SQLite database is now located in the systems temporary directory and deleted afterwards rather than appearing in the root of the launch path.
In the FileS tab, if the user aborted a scan using Stop button and selected a new folder, nothing would happen because a boolean flag was not being reset properly. That was fixed. Date formatting also adjusted to YY/MM/DD (e.g. 18/01/31)
v3.0.1 (Feb 2018)
The "Select File" in File tab generated an unnecessary error if the user cancelled the selection. Now it just cancels as expected
If QuickHash cannot get a handle to a file because it is open without share permissions by the OS, QuickHash should now silently proceed and simply report that the file could not be accessed in the hash column
The SQLite database is now located in the systems temporary directory and deleted afterwards rather than appearing in the root of the launch path.
In the FileS tab, if the user aborted a scan using Stop button and selected a new folder, nothing would happen because a boolean flag was not being reset properly. That was fixed. Date formatting also adjusted to YY/MM/DD (e.g. 18/01/31)
In the Disks tab, if the user had removable drive bays, often they would get error : "Could not convert variant of type (Null) into type Int64". That should now be fixed.
In the disks tab, dates were being shown as dd/mm/yy. Changed to YY/MM/DD in line with the rest of QuickHash
In the disks tab, logical volumes were being shown with their API prefix (e.g. \\?\F:). It still will on initial selection but thereafter (once the hashing has started) it is converted to "F:"
@@ -7,7 +7,7 @@
Quick Hash GUI - A Linux, Windows and Apple Mac GUI for quickly selecting one or more files
and generating hash values for them.
Copyright (C) 2011-2018 Ted Smith www.quickhash-gui.org
Copyright (C) 2011-2019 Ted Smith www.quickhash-gui.org
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
4 dbases_sqlite.lfm 100644 → 100755
@@ -12,9 +12,9 @@ object frmSQLiteDBases: TfrmSQLiteDBases
LCLVersion = '1.8.4.0'
object lblConnectionStatus: TLabel
Left = 32
Height = 15
Height = 17
Top = 32
Width = 81
Width = 83
Caption = 'Not Connected'
ParentColor = False
end
20 dbases_sqlite.pas 100644 → 100755
@@ -27,6 +27,9 @@ interface
uses
{$ifdef Linux}
dl,
{$endif}
{$ifdef Darwin}
dl,
{$endif}
Classes, SysUtils, db, sqldb, sqldblib, fpcsvexport, sqlite3conn, FileUtil,
LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, DBGrids,
@@ -116,6 +119,11 @@ procedure TfrmSQLiteDBases.FormCreate(Sender: TObject);
Pdlinfo : Pdl_info;
PtrSQLiteLibraryPath : PChar;
{$endif}
{$ifdef Darwin}
LibHandle : Pointer;
Pdlinfo : Pdl_info;
PtrSQLiteLibraryPath : PChar;
{$endif}
begin
// SQLiteDefaultLibrary is from the sqlite3dyn unit, new with FPC3.0
// but didn't seem to work with Linux.
@@ -131,7 +139,17 @@ procedure TfrmSQLiteDBases.FormCreate(Sender: TObject);
{$endif}
{$ifdef darwin}
SQLDBLibraryLoaderOSX.ConnectionType := 'SQLite3';
SQLiteLibraryPath := '/usr/lib/libsqlite3.dylib';
SQLiteLibraryPath := '';
//LibHandle := dlopen('/usr/lib/libsqlite3.dylib', RTLD_LAZY);
LibHandle := dlopen('libsqlite3.dylib', RTLD_LAZY);
if LibHandle <> nil then
begin
Pdlinfo := LibHandle;
PtrSQLiteLibraryPath := Pdlinfo^.dli_fbase;
SQLiteLibraryPath := String(PtrSQLiteLibraryPath);
PtrSQLiteLibraryPath := nil;
dlclose(LibHandle);
end;
{$endif}
{$ifdef linux}
SQLDBLibraryLoaderLinux.ConnectionType := 'SQLite3';
@@ -1,9 +1,9 @@
object frmDiskHashingModule: TfrmDiskHashingModule
Left = 528
Left = 647
Height = 647
Top = 105
Top = 102
Width = 787
Caption = 'QuickHash v3.0.3 - Disk Hashing Module'
Caption = 'QuickHash - Disk Hashing Module'
ClientHeight = 647
ClientWidth = 787
DefaultMonitor = dmDesktop
@@ -14,25 +14,25 @@ object frmDiskHashingModule: TfrmDiskHashingModule
LCLVersion = '1.8.4.0'
object Label2: TLabel
Left = 16
Height = 13
Height = 17
Top = 88
Width = 38
Width = 43
Caption = 'Vendor:'
ParentColor = False
end
object Label3: TLabel
Left = 16
Height = 13
Height = 17
Top = 128
Width = 32
Width = 38
Caption = 'Model:'
ParentColor = False
end
object Label4: TLabel
Left = 16
Height = 13
Height = 17
Top = 168
Width = 46
Width = 54
Caption = 'Serial No:'
ParentColor = False
end
@@ -65,9 +65,9 @@ object frmDiskHashingModule: TfrmDiskHashingModule
end
object Label5: TLabel
Left = 16
Height = 13
Height = 17
Top = 208
Width = 28
Width = 30
Caption = 'Type:'
ParentColor = False
end
@@ -86,15 +86,15 @@ object frmDiskHashingModule: TfrmDiskHashingModule
Top = 14
Width = 759
Anchors = [akTop, akLeft, akRight]
ClientHeight = 576
ClientWidth = 755
ClientHeight = 592
ClientWidth = 757
TabOrder = 0
object TreeView1: TTreeView
Left = 8
Height = 136
Hint = 'Left click a physical disk or logical volume to select it'#10'Right click a selection for other options'
Top = 48
Width = 735
Width = 737
Anchors = [akTop, akLeft, akRight]
HotTrack = True
ParentShowHint = False
@@ -108,19 +108,19 @@ object frmDiskHashingModule: TfrmDiskHashingModule
end
object ledtSelectedItem: TLabeledEdit
Left = 144
Height = 21
Height = 29
Top = 208
Width = 591
Width = 593
Anchors = [akTop, akLeft, akRight]
Color = clGradientInactiveCaption
EditLabel.AnchorSideLeft.Control = ledtSelectedItem
EditLabel.AnchorSideRight.Control = ledtSelectedItem
EditLabel.AnchorSideRight.Side = asrBottom
EditLabel.AnchorSideBottom.Control = ledtSelectedItem
EditLabel.Left = 144
EditLabel.Height = 13
EditLabel.Top = 192
EditLabel.Width = 591
EditLabel.Height = 17
EditLabel.Top = 188
EditLabel.Width = 593
EditLabel.Caption = 'Selected Item:'
EditLabel.ParentColor = False
TabOrder = 5
@@ -129,10 +129,10 @@ object frmDiskHashingModule: TfrmDiskHashingModule
end
object comboHashChoice: TComboBox
Left = 144
Height = 21
Height = 29
Top = 248
Width = 112
ItemHeight = 13
ItemHeight = 0
ItemIndex = 1
Items.Strings = (
'MD5'
@@ -157,16 +157,16 @@ object frmDiskHashingModule: TfrmDiskHashingModule
end
object ledtComputedHashA: TLabeledEdit
Left = 8
Height = 21
Height = 29
Top = 328
Width = 464
EditLabel.AnchorSideLeft.Control = ledtComputedHashA
EditLabel.AnchorSideRight.Control = ledtComputedHashA
EditLabel.AnchorSideRight.Side = asrBottom
EditLabel.AnchorSideBottom.Control = ledtComputedHashA
EditLabel.Left = 8
EditLabel.Height = 13
EditLabel.Top = 312
EditLabel.Height = 17
EditLabel.Top = 308
EditLabel.Width = 464
EditLabel.Caption = 'Device Hash MD5'
EditLabel.ParentColor = False
@@ -176,16 +176,16 @@ object frmDiskHashingModule: TfrmDiskHashingModule
end
object ledtComputedHashB: TLabeledEdit
Left = 8
Height = 21
Height = 29
Top = 384
Width = 464
EditLabel.AnchorSideLeft.Control = ledtComputedHashB
EditLabel.AnchorSideRight.Control = ledtComputedHashB
EditLabel.AnchorSideRight.Side = asrBottom
EditLabel.AnchorSideBottom.Control = ledtComputedHashB
EditLabel.Left = 8
EditLabel.Height = 13
EditLabel.Top = 368
EditLabel.Height = 17
EditLabel.Top = 364
EditLabel.Width = 464
EditLabel.Caption = 'Device Hash SHA-1'
EditLabel.ParentColor = False
@@ -204,36 +204,36 @@ object frmDiskHashingModule: TfrmDiskHashingModule
end
object cbdisks: TComboBox
Left = 64
Height = 21
Height = 31
Top = 8
Width = 288
ItemHeight = 13
ItemHeight = 0
OnChange = cbdisksChange
Style = csDropDownList
TabOrder = 7
Visible = False
end
object Label1: TLabel
Left = 16
Height = 13
Height = 17
Top = 16
Width = 23
Width = 27
Caption = 'Disk:'
ParentColor = False
Visible = False
end
object ledtComputedHashC: TLabeledEdit
Left = 8
Height = 21
Height = 29
Top = 440
Width = 735
EditLabel.AnchorSideLeft.Control = ledtComputedHashC
EditLabel.AnchorSideRight.Control = ledtComputedHashC
EditLabel.AnchorSideRight.Side = asrBottom
EditLabel.AnchorSideBottom.Control = ledtComputedHashC
EditLabel.Left = 8
EditLabel.Height = 13
EditLabel.Top = 424
EditLabel.Height = 17
EditLabel.Top = 420
EditLabel.Width = 735
EditLabel.Caption = 'Device Hash SHA256'
EditLabel.ParentColor = False
@@ -243,16 +243,16 @@ object frmDiskHashingModule: TfrmDiskHashingModule
end
object ledtComputedHashD: TLabeledEdit
Left = 8
Height = 21
Height = 29
Top = 489
Width = 735
EditLabel.AnchorSideLeft.Control = ledtComputedHashD
EditLabel.AnchorSideRight.Control = ledtComputedHashD
EditLabel.AnchorSideRight.Side = asrBottom
EditLabel.AnchorSideBottom.Control = ledtComputedHashD
EditLabel.Left = 8
EditLabel.Height = 13
EditLabel.Top = 473
EditLabel.Height = 17
EditLabel.Top = 469
EditLabel.Width = 735
EditLabel.Caption = 'Device Hash SHA512'
EditLabel.ParentColor = False
@@ -262,10 +262,10 @@ object frmDiskHashingModule: TfrmDiskHashingModule
end
object cbLogFile: TCheckBox
Left = 528
Height = 17
Height = 23
Hint = 'Software title, Hashes, start times, '#13#10'end times, time taken, dates etc will '#13#10'be logged at the end of the process'
Top = 240
Width = 148
Width = 172
Caption = 'Create and save a log file?'
Checked = True
OnChange = cbLogFileChange
@@ -276,16 +276,16 @@ object frmDiskHashingModule: TfrmDiskHashingModule
end
object ledtComputedHashE: TLabeledEdit
Left = 8
Height = 21
Height = 29
Top = 544
Width = 735
EditLabel.AnchorSideLeft.Control = ledtComputedHashE
EditLabel.AnchorSideRight.Control = ledtComputedHashE
EditLabel.AnchorSideRight.Side = asrBottom
EditLabel.AnchorSideBottom.Control = ledtComputedHashE
EditLabel.Left = 8
EditLabel.Height = 13
EditLabel.Top = 528
EditLabel.Height = 17
EditLabel.Top = 524
EditLabel.Width = 735
EditLabel.Caption = 'Device Hash xxHash'
EditLabel.ParentColor = False
@@ -294,20 +294,20 @@ object frmDiskHashingModule: TfrmDiskHashingModule
end
object lblschedulertickboxDiskModule: TCheckBox
Left = 288
Height = 17
Height = 23
Hint = 'Tick to enable scheduler'
Top = 240
Width = 64
Width = 73
Caption = 'Start at: '
OnChange = lblschedulertickboxDiskModuleChange
TabOrder = 12
end
object ZVDateTimePickerDiskModule: TZVDateTimePicker
Left = 360
Height = 21
Height = 23
Hint = 'Selected date and time in '#13#10'future to start disk hashing'
Top = 240
Width = 121
Width = 132
CenturyFrom = 1941
MaxDate = 73050
MinDate = 42736
@@ -331,9 +331,9 @@ object frmDiskHashingModule: TfrmDiskHashingModule
end
object lblDiskHashSchedulerStatus: TLabel
Left = 288
Height = 13
Height = 17
Top = 272
Width = 12
Width = 9
Caption = '...'
ParentColor = False
end
Oops, something went wrong.

0 comments on commit 80aaab2

Please sign in to comment.