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.
Commit
e585c3e676a9f4157335d71edba82d4a09c419009ec7c985de29d4efc4759a86
Parent
6f87b4af085be3f…
1 file changed
+4
-1
+4
-1
| --- src/browse.c | ||
| +++ src/browse.c | ||
| @@ -121,10 +121,11 @@ | ||
| 121 | 121 | */ |
| 122 | 122 | void page_dir(void){ |
| 123 | 123 | char *zD = fossil_strdup(P("name")); |
| 124 | 124 | int nD = zD ? strlen(zD)+1 : 0; |
| 125 | 125 | int mxLen; |
| 126 | + int n; | |
| 126 | 127 | char *zPrefix; |
| 127 | 128 | Stmt q; |
| 128 | 129 | const char *zCI = P("ci"); |
| 129 | 130 | int rid = 0; |
| 130 | 131 | char *zUuid = 0; |
| @@ -267,13 +268,15 @@ | ||
| 267 | 268 | |
| 268 | 269 | /* Generate a multi-column table listing the contents of zD[] |
| 269 | 270 | ** directory. |
| 270 | 271 | */ |
| 271 | 272 | mxLen = db_int(12, "SELECT max(length(x)) FROM localfiles /*scan*/"); |
| 273 | + n = db_int(1,"SELECT count(*) FROM localfiles; /*scan*/"); | |
| 272 | 274 | if( mxLen<12 ) mxLen = 12; |
| 275 | + mxLen += (mxLen+9)/10; | |
| 273 | 276 | 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);"> | |
| 275 | 278 | @ <ul class="browser"> |
| 276 | 279 | while( db_step(&q)==SQLITE_ROW ){ |
| 277 | 280 | const char *zFN; |
| 278 | 281 | zFN = db_column_text(&q, 0); |
| 279 | 282 | if( zFN[0]=='/' ){ |
| 280 | 283 |
| --- 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 |