Skip to content

Commit e8bd17c

Browse files
committed
Favourites are now stored db-independent
1 parent d4841f7 commit e8bd17c

File tree

9 files changed

+1282
-1090
lines changed

9 files changed

+1282
-1090
lines changed

DataDigger.i

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,7 @@ DEFINE TEMP-TABLE ttTable NO-UNDO RCODE-INFORMATION
7272
FIELD lCached AS LOGICAL LABEL "" /* for preCaching */
7373
FIELD iFileNumber AS INTEGER LABEL "_File-Number"
7474
FIELD cCategory AS CHARACTER LABEL "Category"
75-
FIELD lFavourite AS LOGICAL LABEL "" /* favourite table */
76-
FIELD cFavourites AS CHARACTER LABEL "" /* favourite groups */
75+
FIELD lFavourite AS LOGICAL LABEL "" /* for editing favourites */
7776
INDEX idxPrim IS PRIMARY cDatabase cTableName
7877
INDEX idxSec cTableName
7978
.
@@ -277,7 +276,8 @@ DEFINE TEMP-TABLE ttQuerySort NO-UNDO RCODE-INFORMATION
277276

278277
/* TT for favourite groups */
279278
DEFINE TEMP-TABLE ttFavGroup NO-UNDO RCODE-INFORMATION
280-
FIELD cGroup AS CHARACTER
279+
FIELD cGroup AS CHARACTER
280+
FIELD cTables AS CHARACTER
281281
INDEX iPrim IS PRIMARY cGroup
282282
.
283283

DataDigger.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ DataDigger version 25
5454
- Change: Save-as Excel file now uses .xlsx format instead of .xls
5555
- Change: Removed unused tracking of DD functions
5656
- Change: Minimum window size much smaller now
57+
- Change: Favourites are now stored db-independent
5758

5859
- New : Option to change window title via myDataDigger.p (Johan Geerts)
5960
- New : Generate dump/load: toggle for selected fields only (Dirk Vreken)

DataDiggerLib.p

Lines changed: 79 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -718,7 +718,7 @@ FUNCTION setRegistry RETURNS CHARACTER
718718
&ANALYZE-SUSPEND _CREATE-WINDOW
719719
/* DESIGN Window definition (used by the UIB)
720720
CREATE WINDOW Procedure ASSIGN
721-
HEIGHT = 24.91
721+
HEIGHT = 30.19
722722
WIDTH = 53.4.
723723
/* END WINDOW DEFINITION */
724724
*/
@@ -1658,6 +1658,43 @@ END PROCEDURE. /* getDumpFileName */
16581658

16591659
&ENDIF
16601660

1661+
&IF DEFINED(EXCLUDE-getFavourites) = 0 &THEN
1662+
1663+
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE getFavourites Procedure
1664+
PROCEDURE getFavourites :
1665+
/* Extract favourites from config table into own tt
1666+
*/
1667+
DEFINE OUTPUT PARAMETER TABLE FOR ttFavGroup.
1668+
1669+
DEFINE BUFFER bfConfig FOR ttConfig.
1670+
DEFINE BUFFER btFavGroup FOR ttFavGroup.
1671+
1672+
EMPTY TEMP-TABLE ttFavGroup.
1673+
1674+
FOR EACH bfConfig
1675+
WHERE bfConfig.cSection = 'DataDigger:Favourites'
1676+
AND bfConfig.cSetting > "":
1677+
1678+
CREATE btFavGroup.
1679+
ASSIGN
1680+
btFavGroup.cGroup = bfConfig.cSetting
1681+
btFavGroup.cTables = bfConfig.cValue.
1682+
END.
1683+
1684+
/* If no groups are found, create a default one */
1685+
IF NOT CAN-FIND(FIRST btFavGroup) THEN
1686+
DO:
1687+
CREATE btFavGroup.
1688+
ASSIGN btFavGroup.cGroup = 'MyFavourites'.
1689+
END.
1690+
1691+
END PROCEDURE. /* getFavourites */
1692+
1693+
/* _UIB-CODE-BLOCK-END */
1694+
&ANALYZE-RESUME
1695+
1696+
&ENDIF
1697+
16611698
&IF DEFINED(EXCLUDE-getFields) = 0 &THEN
16621699

16631700
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE getFields Procedure
@@ -2427,18 +2464,6 @@ PROCEDURE getTableStats :
24272464

24282465
END. /* lastUsed */
24292466

2430-
ELSE
2431-
IF cLine MATCHES "*:Favourites=*" THEN
2432-
DO:
2433-
FIND FIRST ttTable
2434-
WHERE ttTable.cDatabase = cDatabase
2435-
AND ttTable.cTableName = ENTRY(1,cLine,':') NO-ERROR.
2436-
2437-
IF AVAILABLE ttTable THEN
2438-
ttTable.cFavourites = ENTRY(2,cLine,'=') NO-ERROR.
2439-
2440-
END. /* favourite */
2441-
24422467
END. /* repeat */
24432468
INPUT CLOSE.
24442469

@@ -3072,6 +3097,47 @@ END PROCEDURE. /* setCaching */
30723097

30733098
&ENDIF
30743099

3100+
&IF DEFINED(EXCLUDE-setFavourite) = 0 &THEN
3101+
3102+
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE setFavourite Procedure
3103+
PROCEDURE setFavourite :
3104+
/* Set / unset / toggle a table as favourite
3105+
*/
3106+
DEFINE INPUT PARAMETER pcTable AS CHARACTER NO-UNDO.
3107+
DEFINE INPUT PARAMETER pcGroupName AS CHARACTER NO-UNDO.
3108+
DEFINE INPUT PARAMETER plFavourite AS LOGICAL NO-UNDO.
3109+
3110+
DEFINE VARIABLE i AS INTEGER NO-UNDO.
3111+
DEFINE VARIABLE cList AS CHARACTER NO-UNDO.
3112+
3113+
cList = getRegistry("DataDigger:Favourites", pcGroupName).
3114+
IF cList = ? THEN cList = ''.
3115+
i = LOOKUP(pcTable, cList).
3116+
3117+
/* Toggle setting? */
3118+
IF plFavourite = ? THEN plFavourite = (i = 0).
3119+
3120+
/* Add to favourites */
3121+
IF NOT plFavourite AND i > 0 THEN
3122+
DO:
3123+
ENTRY(i, cList) = ''.
3124+
cList = REPLACE(cList,',,',',').
3125+
cList = TRIM(cList,',').
3126+
END.
3127+
3128+
/* Remove from favourites */
3129+
IF plFavourite AND i = 0 THEN
3130+
cList = TRIM(SUBSTITUTE('&1,&2', cList, pcTable),',').
3131+
3132+
setRegistry("DataDigger:Favourites", pcGroupName, cList).
3133+
3134+
END PROCEDURE. /* setFavourite */
3135+
3136+
/* _UIB-CODE-BLOCK-END */
3137+
&ANALYZE-RESUME
3138+
3139+
&ENDIF
3140+
30753141
&IF DEFINED(EXCLUDE-setLabelPosition) = 0 &THEN
30763142

30773143
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE setLabelPosition Procedure
@@ -5068,4 +5134,3 @@ END FUNCTION. /* setRegistry */
50685134
&ANALYZE-RESUME
50695135

50705136
&ENDIF
5071-

build.i

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20191219
1+
20201109

0 commit comments

Comments
 (0)