Procházet zdrojové kódy

Улучшил отображение процентов в статус баре

Book Pauk před 6 roky
rodič
revize
055aa5ff20

+ 2 - 2
client/components/Reader/TextPage/DrawHelper.js

@@ -8,9 +8,9 @@ export default class DrawHelper {
         const fh = h - 2*pad;
         const fh2 = fh/2;
 
-        const t1 = `${Math.floor(bookPos/1000)}k/${Math.floor(textLength/1000)}k`;
+        const t1 = `${Math.floor((bookPos + 1)/1000)}k/${Math.floor(textLength/1000)}k`;
         const w1 = context.measureText(t1).width + fh2;
-        const read = bookPos/textLength;
+        const read = (bookPos + 1)/textLength;
         const t2 = `${(read*100).toFixed(2)}%`;
         const w2 = context.measureText(t2).width;
         let w3 = w - w1 - w2;

+ 18 - 6
client/components/Reader/TextPage/TextPage.vue

@@ -274,10 +274,6 @@ class TextPage extends Vue {
         if (!this.book || !this.parsed.textLength)
             return;
 
-        if (this.showStatusBar)
-            this.drawHelper.drawStatusBar(context, this.statusBarTop, this.statusBarHeight, 
-                this.statusBarColor, bookPos, this.parsed.textLength, this.title);
-        
         context.font = this.font;
         context.fillStyle = this.textColor;
         const spaceWidth = context.measureText(' ').width;
@@ -354,6 +350,23 @@ class TextPage extends Vue {
                 }
             }
         }
+
+        this.drawStatusBar(context, lines);
+    }
+
+    drawStatusBar(context, lines) {
+        if (!lines)
+            lines = this.linesDown;
+
+        if (this.showStatusBar) {
+            let i = this.pageLineCount;
+            if (this.keepLastToFirst)
+                i--;
+            i = (i > lines.length - 1 ? lines.length - 1 : i);
+
+            this.drawHelper.drawStatusBar(context, this.statusBarTop, this.statusBarHeight, 
+                this.statusBarColor, lines[i].end, this.parsed.textLength, this.title);
+        }
     }
 
     async refreshTime() {
@@ -362,8 +375,7 @@ class TextPage extends Vue {
             await sleep(60*1000);
 
             if (this.book && this.parsed.textLength) {
-                this.drawHelper.drawStatusBar(this.context, this.statusBarTop, this.statusBarHeight, 
-                    this.statusBarColor, this.bookPos, this.parsed.textLength, this.title);
+                this.drawStatusBar(this.context);
             }
             this.timeRefreshing = false;
             this.refreshTime();