Fossil SCM

Add a new viewing mode called "Classic". The new "Classic" is the same as "Verbose" in the previous release. The "Verbose View" is now the same as "Compact" except that the check-in details are always expanded.

drh 2018-03-17 15:55 trunk
Commit b900583c9609dffc28ecdb18fc2297f210e5509e79c5ae071c81b9dac568ccb1
1 file changed +32 -26
+32 -26
--- src/timeline.c
+++ src/timeline.c
@@ -91,29 +91,30 @@
9191
9292
/*
9393
** Allowed flags for the tmFlags argument to www_print_timeline
9494
*/
9595
#if INTERFACE
96
-#define TIMELINE_ARTID 0x00001 /* Show artifact IDs on non-check-in lines */
97
-#define TIMELINE_LEAFONLY 0x00002 /* Show "Leaf" but not "Merge", "Fork" etc */
98
-#define TIMELINE_BRIEF 0x00004 /* Combine adjacent elements of same obj */
99
-#define TIMELINE_GRAPH 0x00008 /* Compute a graph */
100
-#define TIMELINE_DISJOINT 0x00010 /* Elements are not contiguous */
101
-#define TIMELINE_FCHANGES 0x00020 /* Detail file changes */
102
-#define TIMELINE_BRCOLOR 0x00040 /* Background color by branch name */
103
-#define TIMELINE_UCOLOR 0x00080 /* Background color by user */
104
-#define TIMELINE_FRENAMES 0x00100 /* Detail only file name changes */
105
-#define TIMELINE_UNHIDE 0x00200 /* Unhide check-ins with "hidden" tag */
106
-#define TIMELINE_SHOWRID 0x00400 /* Show RID values in addition to UUIDs */
107
-#define TIMELINE_BISECT 0x00800 /* Show supplimental bisect information */
108
-#define TIMELINE_COMPACT 0x01000 /* Use the "compact" view style */
109
-#define TIMELINE_VERBOSE 0x02000 /* Use the "detailed" view style */
110
-#define TIMELINE_MODERN 0x04000 /* Use the "modern" view style */
111
-#define TIMELINE_COLUMNAR 0x08000 /* Use the "columns view style */
112
-#define TIMELINE_VIEWS 0x0f000 /* Mask for all of the view styles */
113
-#define TIMELINE_NOSCROLL 0x10000 /* Don't scroll to the selection */
114
-#define TIMELINE_FILEDIFF 0x20000 /* Show File differences, not ckin diffs */
96
+#define TIMELINE_ARTID 0x000001 /* Show artifact IDs on non-check-in lines */
97
+#define TIMELINE_LEAFONLY 0x000002 /* Show "Leaf" but not "Merge", "Fork" etc */
98
+#define TIMELINE_BRIEF 0x000004 /* Combine adjacent elements of same obj */
99
+#define TIMELINE_GRAPH 0x000008 /* Compute a graph */
100
+#define TIMELINE_DISJOINT 0x000010 /* Elements are not contiguous */
101
+#define TIMELINE_FCHANGES 0x000020 /* Detail file changes */
102
+#define TIMELINE_BRCOLOR 0x000040 /* Background color by branch name */
103
+#define TIMELINE_UCOLOR 0x000080 /* Background color by user */
104
+#define TIMELINE_FRENAMES 0x000100 /* Detail only file name changes */
105
+#define TIMELINE_UNHIDE 0x000200 /* Unhide check-ins with "hidden" tag */
106
+#define TIMELINE_SHOWRID 0x000400 /* Show RID values in addition to UUIDs */
107
+#define TIMELINE_BISECT 0x000800 /* Show supplimental bisect information */
108
+#define TIMELINE_COMPACT 0x001000 /* Use the "compact" view style */
109
+#define TIMELINE_VERBOSE 0x002000 /* Use the "detailed" view style */
110
+#define TIMELINE_MODERN 0x004000 /* Use the "modern" view style */
111
+#define TIMELINE_COLUMNAR 0x008000 /* Use the "columns" view style */
112
+#define TIMELINE_CLASSIC 0x010000 /* Use the "classic" view style */
113
+#define TIMELINE_VIEWS 0x01f000 /* Mask for all of the view styles */
114
+#define TIMELINE_NOSCROLL 0x100000 /* Don't scroll to the selection */
115
+#define TIMELINE_FILEDIFF 0x200000 /* Show File differences, not ckin diffs */
115116
#endif
116117
117118
/*
118119
** Hash a string and use the hash to determine a background color.
119120
*/
@@ -275,10 +276,12 @@
275276
zStyle = "Columnar";
276277
}else if( tmFlags & TIMELINE_COMPACT ){
277278
zStyle = "Compact";
278279
}else if( tmFlags & TIMELINE_VERBOSE ){
279280
zStyle = "Verbose";
281
+ }else if( tmFlags & TIMELINE_CLASSIC ){
282
+ zStyle = "Classic";
280283
}else{
281284
zStyle = "Modern";
282285
}
283286
zDateFmt = P("datefmt");
284287
if( zDateFmt ) dateFormat = atoi(zDateFmt);
@@ -465,18 +468,18 @@
465468
@ <b>%s(db_column_text(&bisectQuery,1))</b>
466469
@ (%d(db_column_int(&bisectQuery,0)))
467470
}
468471
db_reset(&bisectQuery);
469472
}
470
- drawDetailEllipsis = (tmFlags & TIMELINE_COMPACT)!=0;
473
+ drawDetailEllipsis = (tmFlags & (TIMELINE_COMPACT))!=0;
471474
db_column_blob(pQuery, commentColumn, &comment);
472475
if( tmFlags & TIMELINE_COMPACT ){
473476
@ <span class='timelineCompactComment' data-id='%d(rid)'>
474477
}else{
475478
@ <span class='timeline%s(zStyle)Comment'>
476479
}
477
- if( (tmFlags & TIMELINE_VERBOSE)!=0 ){
480
+ if( (tmFlags & TIMELINE_CLASSIC)!=0 ){
478481
if( zType[0]=='c' ){
479482
hyperlink_to_uuid(zUuid);
480483
if( isLeaf ){
481484
if( db_exists("SELECT 1 FROM tagxref"
482485
" WHERE rid=%d AND tagid=%d AND tagtype>0",
@@ -549,15 +552,15 @@
549552
}
550553
if( tmFlags & TIMELINE_COMPACT ){
551554
cgi_printf("<span class='clutter' id='detail-%d'>",rid);
552555
}
553556
cgi_printf("<span class='timeline%sDetail'>", zStyle);
554
- if( (tmFlags & (TIMELINE_VERBOSE|TIMELINE_COMPACT))!=0 ){
557
+ if( (tmFlags & (TIMELINE_CLASSIC|TIMELINE_VERBOSE|TIMELINE_COMPACT))!=0 ){
555558
cgi_printf("(");
556559
}
557560
558
- if( (tmFlags & TIMELINE_VERBOSE)==0 ){
561
+ if( (tmFlags & TIMELINE_CLASSIC)==0 ){
559562
if( zType[0]=='c' ){
560563
if( isLeaf ){
561564
if( db_exists("SELECT 1 FROM tagxref"
562565
" WHERE rid=%d AND tagid=%d AND tagtype>0",
563566
rid, TAG_CLOSED) ){
@@ -625,11 +628,11 @@
625628
tag_private_status(rid);
626629
if( xExtra ){
627630
xExtra(rid);
628631
}
629632
/* End timelineDetail */
630
- if( (tmFlags & (TIMELINE_VERBOSE|TIMELINE_COMPACT))!=0 ){
633
+ if( (tmFlags & (TIMELINE_CLASSIC|TIMELINE_VERBOSE|TIMELINE_COMPACT))!=0 ){
631634
cgi_printf(")");
632635
}
633636
if( tmFlags & TIMELINE_COMPACT ){
634637
@ </span></span>
635638
}else{
@@ -1064,10 +1067,11 @@
10641067
int tmFlags;
10651068
switch( cookie_value("ss","m")[0] ){
10661069
case 'c': tmFlags = TIMELINE_COMPACT; break;
10671070
case 'v': tmFlags = TIMELINE_VERBOSE; break;
10681071
case 'j': tmFlags = TIMELINE_COLUMNAR; break;
1072
+ case 'x': tmFlags = TIMELINE_CLASSIC; break;
10691073
default: tmFlags = TIMELINE_MODERN; break;
10701074
}
10711075
return tmFlags;
10721076
}
10731077
@@ -1078,16 +1082,18 @@
10781082
** Return the TIMELINE_* value appropriate for the view-style.
10791083
*/
10801084
int timeline_ss_submenu(void){
10811085
static const char *azViewStyles[] = {
10821086
"m", "Modern View",
1087
+ "j", "Columnar View",
10831088
"c", "Compact View",
10841089
"v", "Verbose View",
1085
- "j", "Columnar View",
1090
+ "x", "Classic View",
10861091
};
10871092
cookie_link_parameter("ss","ss","m");
1088
- style_submenu_multichoice("ss", 4, azViewStyles, 0);
1093
+ style_submenu_multichoice("ss", sizeof(azViewStyles)/(2*sizeof(azViewStyles[0])),
1094
+ azViewStyles, 0);
10891095
return timeline_ss_cookie();
10901096
}
10911097
10921098
/*
10931099
** If the zChng string is not NULL, then it should be a comma-separated
10941100
--- src/timeline.c
+++ src/timeline.c
@@ -91,29 +91,30 @@
91
92 /*
93 ** Allowed flags for the tmFlags argument to www_print_timeline
94 */
95 #if INTERFACE
96 #define TIMELINE_ARTID 0x00001 /* Show artifact IDs on non-check-in lines */
97 #define TIMELINE_LEAFONLY 0x00002 /* Show "Leaf" but not "Merge", "Fork" etc */
98 #define TIMELINE_BRIEF 0x00004 /* Combine adjacent elements of same obj */
99 #define TIMELINE_GRAPH 0x00008 /* Compute a graph */
100 #define TIMELINE_DISJOINT 0x00010 /* Elements are not contiguous */
101 #define TIMELINE_FCHANGES 0x00020 /* Detail file changes */
102 #define TIMELINE_BRCOLOR 0x00040 /* Background color by branch name */
103 #define TIMELINE_UCOLOR 0x00080 /* Background color by user */
104 #define TIMELINE_FRENAMES 0x00100 /* Detail only file name changes */
105 #define TIMELINE_UNHIDE 0x00200 /* Unhide check-ins with "hidden" tag */
106 #define TIMELINE_SHOWRID 0x00400 /* Show RID values in addition to UUIDs */
107 #define TIMELINE_BISECT 0x00800 /* Show supplimental bisect information */
108 #define TIMELINE_COMPACT 0x01000 /* Use the "compact" view style */
109 #define TIMELINE_VERBOSE 0x02000 /* Use the "detailed" view style */
110 #define TIMELINE_MODERN 0x04000 /* Use the "modern" view style */
111 #define TIMELINE_COLUMNAR 0x08000 /* Use the "columns view style */
112 #define TIMELINE_VIEWS 0x0f000 /* Mask for all of the view styles */
113 #define TIMELINE_NOSCROLL 0x10000 /* Don't scroll to the selection */
114 #define TIMELINE_FILEDIFF 0x20000 /* Show File differences, not ckin diffs */
 
115 #endif
116
117 /*
118 ** Hash a string and use the hash to determine a background color.
119 */
@@ -275,10 +276,12 @@
275 zStyle = "Columnar";
276 }else if( tmFlags & TIMELINE_COMPACT ){
277 zStyle = "Compact";
278 }else if( tmFlags & TIMELINE_VERBOSE ){
279 zStyle = "Verbose";
 
 
280 }else{
281 zStyle = "Modern";
282 }
283 zDateFmt = P("datefmt");
284 if( zDateFmt ) dateFormat = atoi(zDateFmt);
@@ -465,18 +468,18 @@
465 @ <b>%s(db_column_text(&bisectQuery,1))</b>
466 @ (%d(db_column_int(&bisectQuery,0)))
467 }
468 db_reset(&bisectQuery);
469 }
470 drawDetailEllipsis = (tmFlags & TIMELINE_COMPACT)!=0;
471 db_column_blob(pQuery, commentColumn, &comment);
472 if( tmFlags & TIMELINE_COMPACT ){
473 @ <span class='timelineCompactComment' data-id='%d(rid)'>
474 }else{
475 @ <span class='timeline%s(zStyle)Comment'>
476 }
477 if( (tmFlags & TIMELINE_VERBOSE)!=0 ){
478 if( zType[0]=='c' ){
479 hyperlink_to_uuid(zUuid);
480 if( isLeaf ){
481 if( db_exists("SELECT 1 FROM tagxref"
482 " WHERE rid=%d AND tagid=%d AND tagtype>0",
@@ -549,15 +552,15 @@
549 }
550 if( tmFlags & TIMELINE_COMPACT ){
551 cgi_printf("<span class='clutter' id='detail-%d'>",rid);
552 }
553 cgi_printf("<span class='timeline%sDetail'>", zStyle);
554 if( (tmFlags & (TIMELINE_VERBOSE|TIMELINE_COMPACT))!=0 ){
555 cgi_printf("(");
556 }
557
558 if( (tmFlags & TIMELINE_VERBOSE)==0 ){
559 if( zType[0]=='c' ){
560 if( isLeaf ){
561 if( db_exists("SELECT 1 FROM tagxref"
562 " WHERE rid=%d AND tagid=%d AND tagtype>0",
563 rid, TAG_CLOSED) ){
@@ -625,11 +628,11 @@
625 tag_private_status(rid);
626 if( xExtra ){
627 xExtra(rid);
628 }
629 /* End timelineDetail */
630 if( (tmFlags & (TIMELINE_VERBOSE|TIMELINE_COMPACT))!=0 ){
631 cgi_printf(")");
632 }
633 if( tmFlags & TIMELINE_COMPACT ){
634 @ </span></span>
635 }else{
@@ -1064,10 +1067,11 @@
1064 int tmFlags;
1065 switch( cookie_value("ss","m")[0] ){
1066 case 'c': tmFlags = TIMELINE_COMPACT; break;
1067 case 'v': tmFlags = TIMELINE_VERBOSE; break;
1068 case 'j': tmFlags = TIMELINE_COLUMNAR; break;
 
1069 default: tmFlags = TIMELINE_MODERN; break;
1070 }
1071 return tmFlags;
1072 }
1073
@@ -1078,16 +1082,18 @@
1078 ** Return the TIMELINE_* value appropriate for the view-style.
1079 */
1080 int timeline_ss_submenu(void){
1081 static const char *azViewStyles[] = {
1082 "m", "Modern View",
 
1083 "c", "Compact View",
1084 "v", "Verbose View",
1085 "j", "Columnar View",
1086 };
1087 cookie_link_parameter("ss","ss","m");
1088 style_submenu_multichoice("ss", 4, azViewStyles, 0);
 
1089 return timeline_ss_cookie();
1090 }
1091
1092 /*
1093 ** If the zChng string is not NULL, then it should be a comma-separated
1094
--- src/timeline.c
+++ src/timeline.c
@@ -91,29 +91,30 @@
91
92 /*
93 ** Allowed flags for the tmFlags argument to www_print_timeline
94 */
95 #if INTERFACE
96 #define TIMELINE_ARTID 0x000001 /* Show artifact IDs on non-check-in lines */
97 #define TIMELINE_LEAFONLY 0x000002 /* Show "Leaf" but not "Merge", "Fork" etc */
98 #define TIMELINE_BRIEF 0x000004 /* Combine adjacent elements of same obj */
99 #define TIMELINE_GRAPH 0x000008 /* Compute a graph */
100 #define TIMELINE_DISJOINT 0x000010 /* Elements are not contiguous */
101 #define TIMELINE_FCHANGES 0x000020 /* Detail file changes */
102 #define TIMELINE_BRCOLOR 0x000040 /* Background color by branch name */
103 #define TIMELINE_UCOLOR 0x000080 /* Background color by user */
104 #define TIMELINE_FRENAMES 0x000100 /* Detail only file name changes */
105 #define TIMELINE_UNHIDE 0x000200 /* Unhide check-ins with "hidden" tag */
106 #define TIMELINE_SHOWRID 0x000400 /* Show RID values in addition to UUIDs */
107 #define TIMELINE_BISECT 0x000800 /* Show supplimental bisect information */
108 #define TIMELINE_COMPACT 0x001000 /* Use the "compact" view style */
109 #define TIMELINE_VERBOSE 0x002000 /* Use the "detailed" view style */
110 #define TIMELINE_MODERN 0x004000 /* Use the "modern" view style */
111 #define TIMELINE_COLUMNAR 0x008000 /* Use the "columns" view style */
112 #define TIMELINE_CLASSIC 0x010000 /* Use the "classic" view style */
113 #define TIMELINE_VIEWS 0x01f000 /* Mask for all of the view styles */
114 #define TIMELINE_NOSCROLL 0x100000 /* Don't scroll to the selection */
115 #define TIMELINE_FILEDIFF 0x200000 /* Show File differences, not ckin diffs */
116 #endif
117
118 /*
119 ** Hash a string and use the hash to determine a background color.
120 */
@@ -275,10 +276,12 @@
276 zStyle = "Columnar";
277 }else if( tmFlags & TIMELINE_COMPACT ){
278 zStyle = "Compact";
279 }else if( tmFlags & TIMELINE_VERBOSE ){
280 zStyle = "Verbose";
281 }else if( tmFlags & TIMELINE_CLASSIC ){
282 zStyle = "Classic";
283 }else{
284 zStyle = "Modern";
285 }
286 zDateFmt = P("datefmt");
287 if( zDateFmt ) dateFormat = atoi(zDateFmt);
@@ -465,18 +468,18 @@
468 @ <b>%s(db_column_text(&bisectQuery,1))</b>
469 @ (%d(db_column_int(&bisectQuery,0)))
470 }
471 db_reset(&bisectQuery);
472 }
473 drawDetailEllipsis = (tmFlags & (TIMELINE_COMPACT))!=0;
474 db_column_blob(pQuery, commentColumn, &comment);
475 if( tmFlags & TIMELINE_COMPACT ){
476 @ <span class='timelineCompactComment' data-id='%d(rid)'>
477 }else{
478 @ <span class='timeline%s(zStyle)Comment'>
479 }
480 if( (tmFlags & TIMELINE_CLASSIC)!=0 ){
481 if( zType[0]=='c' ){
482 hyperlink_to_uuid(zUuid);
483 if( isLeaf ){
484 if( db_exists("SELECT 1 FROM tagxref"
485 " WHERE rid=%d AND tagid=%d AND tagtype>0",
@@ -549,15 +552,15 @@
552 }
553 if( tmFlags & TIMELINE_COMPACT ){
554 cgi_printf("<span class='clutter' id='detail-%d'>",rid);
555 }
556 cgi_printf("<span class='timeline%sDetail'>", zStyle);
557 if( (tmFlags & (TIMELINE_CLASSIC|TIMELINE_VERBOSE|TIMELINE_COMPACT))!=0 ){
558 cgi_printf("(");
559 }
560
561 if( (tmFlags & TIMELINE_CLASSIC)==0 ){
562 if( zType[0]=='c' ){
563 if( isLeaf ){
564 if( db_exists("SELECT 1 FROM tagxref"
565 " WHERE rid=%d AND tagid=%d AND tagtype>0",
566 rid, TAG_CLOSED) ){
@@ -625,11 +628,11 @@
628 tag_private_status(rid);
629 if( xExtra ){
630 xExtra(rid);
631 }
632 /* End timelineDetail */
633 if( (tmFlags & (TIMELINE_CLASSIC|TIMELINE_VERBOSE|TIMELINE_COMPACT))!=0 ){
634 cgi_printf(")");
635 }
636 if( tmFlags & TIMELINE_COMPACT ){
637 @ </span></span>
638 }else{
@@ -1064,10 +1067,11 @@
1067 int tmFlags;
1068 switch( cookie_value("ss","m")[0] ){
1069 case 'c': tmFlags = TIMELINE_COMPACT; break;
1070 case 'v': tmFlags = TIMELINE_VERBOSE; break;
1071 case 'j': tmFlags = TIMELINE_COLUMNAR; break;
1072 case 'x': tmFlags = TIMELINE_CLASSIC; break;
1073 default: tmFlags = TIMELINE_MODERN; break;
1074 }
1075 return tmFlags;
1076 }
1077
@@ -1078,16 +1082,18 @@
1082 ** Return the TIMELINE_* value appropriate for the view-style.
1083 */
1084 int timeline_ss_submenu(void){
1085 static const char *azViewStyles[] = {
1086 "m", "Modern View",
1087 "j", "Columnar View",
1088 "c", "Compact View",
1089 "v", "Verbose View",
1090 "x", "Classic View",
1091 };
1092 cookie_link_parameter("ss","ss","m");
1093 style_submenu_multichoice("ss", sizeof(azViewStyles)/(2*sizeof(azViewStyles[0])),
1094 azViewStyles, 0);
1095 return timeline_ss_cookie();
1096 }
1097
1098 /*
1099 ** If the zChng string is not NULL, then it should be a comma-separated
1100

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button