Fossil SCM

In the file browser, limit the maximum number of columns to be the number of files, so that a single file is never split across two columns.

drh 2018-09-02 10:07 trunk
Commit e585c3e676a9f4157335d71edba82d4a09c419009ec7c985de29d4efc4759a86
1 file changed +4 -1
+4 -1
--- src/browse.c
+++ src/browse.c
@@ -121,10 +121,11 @@
121121
*/
122122
void page_dir(void){
123123
char *zD = fossil_strdup(P("name"));
124124
int nD = zD ? strlen(zD)+1 : 0;
125125
int mxLen;
126
+ int n;
126127
char *zPrefix;
127128
Stmt q;
128129
const char *zCI = P("ci");
129130
int rid = 0;
130131
char *zUuid = 0;
@@ -267,13 +268,15 @@
267268
268269
/* Generate a multi-column table listing the contents of zD[]
269270
** directory.
270271
*/
271272
mxLen = db_int(12, "SELECT max(length(x)) FROM localfiles /*scan*/");
273
+ n = db_int(1,"SELECT count(*) FROM localfiles; /*scan*/");
272274
if( mxLen<12 ) mxLen = 12;
275
+ mxLen += (mxLen+9)/10;
273276
db_prepare(&q, "SELECT x, u FROM localfiles ORDER BY x /*scan*/");
274
- @ <div class="columns" style="column-width: %d(mxLen+(mxLen+9)/10)ex;">
277
+ @ <div class="columns" style="columns: %d(mxLen)ex %d(n);">
275278
@ <ul class="browser">
276279
while( db_step(&q)==SQLITE_ROW ){
277280
const char *zFN;
278281
zFN = db_column_text(&q, 0);
279282
if( zFN[0]=='/' ){
280283
--- src/browse.c
+++ src/browse.c
@@ -121,10 +121,11 @@
121 */
122 void page_dir(void){
123 char *zD = fossil_strdup(P("name"));
124 int nD = zD ? strlen(zD)+1 : 0;
125 int mxLen;
 
126 char *zPrefix;
127 Stmt q;
128 const char *zCI = P("ci");
129 int rid = 0;
130 char *zUuid = 0;
@@ -267,13 +268,15 @@
267
268 /* Generate a multi-column table listing the contents of zD[]
269 ** directory.
270 */
271 mxLen = db_int(12, "SELECT max(length(x)) FROM localfiles /*scan*/");
 
272 if( mxLen<12 ) mxLen = 12;
 
273 db_prepare(&q, "SELECT x, u FROM localfiles ORDER BY x /*scan*/");
274 @ <div class="columns" style="column-width: %d(mxLen+(mxLen+9)/10)ex;">
275 @ <ul class="browser">
276 while( db_step(&q)==SQLITE_ROW ){
277 const char *zFN;
278 zFN = db_column_text(&q, 0);
279 if( zFN[0]=='/' ){
280
--- src/browse.c
+++ src/browse.c
@@ -121,10 +121,11 @@
121 */
122 void page_dir(void){
123 char *zD = fossil_strdup(P("name"));
124 int nD = zD ? strlen(zD)+1 : 0;
125 int mxLen;
126 int n;
127 char *zPrefix;
128 Stmt q;
129 const char *zCI = P("ci");
130 int rid = 0;
131 char *zUuid = 0;
@@ -267,13 +268,15 @@
268
269 /* Generate a multi-column table listing the contents of zD[]
270 ** directory.
271 */
272 mxLen = db_int(12, "SELECT max(length(x)) FROM localfiles /*scan*/");
273 n = db_int(1,"SELECT count(*) FROM localfiles; /*scan*/");
274 if( mxLen<12 ) mxLen = 12;
275 mxLen += (mxLen+9)/10;
276 db_prepare(&q, "SELECT x, u FROM localfiles ORDER BY x /*scan*/");
277 @ <div class="columns" style="columns: %d(mxLen)ex %d(n);">
278 @ <ul class="browser">
279 while( db_step(&q)==SQLITE_ROW ){
280 const char *zFN;
281 zFN = db_column_text(&q, 0);
282 if( zFN[0]=='/' ){
283

Keyboard Shortcuts

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