4silvertooth / qwiktape Goto Github PK
View Code? Open in Web Editor NEWDo calculations, annotate like you would on a paper "qwikly".
License: MIT License
Do calculations, annotate like you would on a paper "qwikly".
License: MIT License
On Windows it saves "qwiktapes.db" in the user's documents folder, to make it portable (flash drive, cloud drive) an option to pass on the (relative) path to qwiktapes.db would be useful.
qwiktape.exe f:\path-to\qwiktapes.db
Hi,
I can start it - seeing the Icon in the Taskbar but it does not render any UI.
If I run it from cli I also do not get any error:
./qwiktape
/home/user/Apps/qwiktapes.db /home/user/Documents
tape [object Object]
tape [object Object]
System:
OS: TUXEDO OS 2 x86_64 (KDE Neon base)
Kernel: 6.5.0-10008-tuxedo
Resolution: 2880x1800, 3440x1440
DE: Plasma 5.27.9 (Wayland)
WM: kwin_wayland_wr
KWin version: 5.27.9
Qt Version: 5.15.11
Qt compile version: 5.15.11
XCB compile version: 1.14
Operation Mode: Xwayland
X-Server
Vendor: The X.Org Foundation
Vendor Release: 12201001
Protocol Version/Revision: 11/0
SHAPE: yes; Version: 0x11
RANDR: yes; Version: 0x14
DAMAGE: yes; Version: 0x11
Composite: yes; Version: 0x4
RENDER: yes; Version: 0xb
XFIXES: yes; Version: 0x50
SYNC: yes; Version: 0x31
GLX: yes; Version: 0x0
Options
=======
focusPolicy: 0
xwaylandCrashPolicy:
xwaylandMaxCrashCount: 3
nextFocusPrefersMouse: false
clickRaise: true
autoRaise: false
autoRaiseInterval: 0
delayFocusInterval: 0
shadeHover: false
shadeHoverInterval: 250
separateScreenFocus: false
activeMouseScreen: false
placement:
activationDesktopPolicy: 0
focusPolicyIsReasonable: true
borderSnapZone: 10
windowSnapZone: 10
centerSnapZone: 0
snapOnlyWhenOverlapping: false
rollOverDesktops: false
focusStealingPreventionLevel: 2
operationTitlebarDblClick: 5000
operationMaxButtonLeftClick: 5000
operationMaxButtonMiddleClick: 5015
operationMaxButtonRightClick: 5014
commandActiveTitlebar1: 0
commandActiveTitlebar2: 28
commandActiveTitlebar3: 2
commandInactiveTitlebar1: 4
commandInactiveTitlebar2: 28
commandInactiveTitlebar3: 2
commandWindow1: 7
commandWindow2: 8
commandWindow3: 8
commandWindowWheel: 28
commandAll1: 10
commandAll2: 3
commandAll3: 14
keyCmdAllModKey: 16777250
condensedTitle: false
electricBorderMaximize: true
electricBorderTiling: true
electricBorderCornerRatio: 0.25
borderlessMaximizedWindows: false
killPingTimeout: 5000
hideUtilityWindowsForInactive: true
compositingMode: 1
useCompositing: true
hiddenPreviews: 1
glSmoothScale: 2
glStrictBinding: false
glStrictBindingFollowsDriver: true
glPreferBufferSwap: 101
glPlatformInterface: 2
windowsBlockCompositing: true
latencyPolicy:
renderTimeEstimator:
allowTearing: true
Screen 0:
---------
Name: eDP-1
Enabled: 1
Geometry: 3440,120,1920x1200
Scale: 1.5
Refresh Rate: 90000
Adaptive Sync: incapable
Screen 1:
---------
Name: DP-4
Enabled: 1
Geometry: 0,0,3440x1440
Scale: 1
Refresh Rate: 100000
Adaptive Sync: incapable
If there is anything I can provide please let me know.
no pdf is generated, and no error reported.
if in debug mode, it says that PDF is null
function toPdf(val, fileName){
console.log('PDF type = object ? ', typeof PDF === 'object');
console.log('PDF == null ? ', PDF === null);
...
PDF.newDoc();
...}
PDF type = object ? true
PDF == null ? true
TypeError: cannot read property 'newDoc' of null
at toPdf pdf.js
using qwiktape-v0.6-windows-portable.zip on win10 19044
Hey, I've been using CalcTape on my phone for a while and was looking for something similar to use on my desktop, and stumbled upon QwikTape. Seeing that CalcTape was one of the inspirations, it's exactly what I was looking for! The variable assigning in results is quite handy. So here's a brief story of my first experience:
Today I went grocery shopping with my mom and sister and I was paying, but we're splitting the bill, so I used a couple variables to see the total of stuff for each of us and also check it against my bank balance to see if I'll still make ends meet. In this process, I was using descriptive variable names like sister_total
, mom_total
, house_total
, and also doing compound calculations (e.g. foo / bar = baz / qux = foobar
), until suddently QwikTape froze on me.
Here is a small snippet that triggers it (but doesn't freeze completely):
fee_fo_fum_fam_foo_bar_baz_qux_leeroy_jenkins = 100
Do any operation with the variable below to trigger a freeze:
fee_fo_fum_fam_foo_bar_baz_qux_leeroy_jenkins
This is an exaggeration of course, the variables I was using weren't that long, but using them together had the same effect as using a single long one, and the more calculations you have the longer it freezes. It seems that long variables break the document evaluation to such a degree that changing the variable value doesn't even update the calculation anymore. This happens in the latest release and also in the latest commit. A workround is just to use small/single character variables, but that makes things less readable.
Here's the stack trace (from the latest commit):
InternalError: stack overflow
at tg (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at cg (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at pT (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at Mb (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at dM (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at s (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at apply (native)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at ALT (file:///home/manokara/Downloads/QwikTape/src/parser/tape-embedded.js)
at call (native)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/parser/tape-embedded.js:742)
at apply (native)
at s (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at apply (native)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at ALT (file:///home/manokara/Downloads/QwikTape/src/parser/tape-embedded.js)
at call (native)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/parser/tape-embedded.js:655)
at apply (native)
at s (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at apply (native)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/parser/tape-embedded.js:639)
at apply (native)
at s (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at apply (native)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/parser/tape-embedded.js:614)
at apply (native)
at s (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at apply (native)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/parser/tape-embedded.js:601)
at apply (native)
at s (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at apply (native)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/parser/tape-embedded.js:594)
at apply (native)
at s (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at apply (native)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/parser/tape-embedded.js:576)
at apply (native)
at s (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at apply (native)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at ALT (file:///home/manokara/Downloads/QwikTape/src/parser/tape-embedded.js)
at call (native)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/parser/tape-embedded.js:247)
at apply (native)
at s (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at apply (native)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/parser/tape-embedded.js:232)
at call (native)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at <anonymous> (file:///home/manokara/Downloads/QwikTape/src/parser/tape-embedded.js:234)
at apply (native)
at s (file:///home/manokara/Downloads/QwikTape/src/chevrotain/chevrotain.min.js)
at parseTape (file:///home/manokara/Downloads/QwikTape/src/components/editor.js:153)
at evalTokens (file:///home/manokara/Downloads/QwikTape/src/components/editor.js:186)
// The line above repeats around 380 times!
at on ^change at :root (file:///home/manokara/Downloads/QwikTape/src/components/editor.js:454)
Looking at the stack trace and with my limited understarding of the source code, it's almost as if it's considering each character in the editor as a token, causing a stack overflow.
Cloned the repository and chmod +x run-linux.sh, then ran it....
(scapp:3787030): Gdk-CRITICAL **: 14:47:43.381: gdk_wayland_window_set_dbus_properties_libgtk_only: assertion 'GDK_IS_WAYLAND_WINDOW (window)' failed
root [object Object]
tape [object Object]
tape [object Object]
(scapp:3787030): Gdk-WARNING **: 14:47:44.781: ../../../../../gdk/x11/gdkwindow-x11.c:5653 drawable is not a native X11 window
Segmentation fault (core dumped)
Running on Ubuntu 22.04 Gnome on Wayland
Hello!
Would be nice to have the focus on the current tape when opening the app, so one can start typing calculations immediately upon opening. As it stand now (v.0.4), I have to hit TAB key 5 times or focus the tape with a mouse click.
Thank you for the portable version and for implementing the ability to use the ESC key!
I prefer darkmode and it looks like the background is implemented, outside of:
<Color (editor-paper)>Paper</Color>
being included in settings.js around line 54. I wasn't sure if this was unintentional, but it appears to work well on Windows. Great tool by the way!
This is so brilliant!! Thank you! I've been using CalcTape for years but could not get the changes I'd like to have implemented.
Could we get an explicit comment character for the remainder of a line.
120.00 IE: 12-31-1900 or 12/31/1900
+ 400.00
══════════════
520.00
120.00 # Interest as of 12/31/2023
+ 400.00 # Income from 1-15-2024 to 2/01/2024
══════════════
520.00
Thank you for your work on this project!
Hello!
I started using QwikTape since it became portable (also added it to the TPFC database https://www.portablefreeware.com/?id=3090 ) and wish I could use ESC key to clear the tape (delete all contents, calculus and annotations) and double ESC key to close the app. This would greatly increase my workflow speed.
Thank you!
This line assumes that there is going to be a document
path set.
It fails in Arch Linux.
Good Day!
Could you please add "Word Wrap" option in QwikTape?
Can't tell for other users, but in the version I have tested (version 0.6 portable, Windows 10) a chunk of copied text just can't fit into the window. Usually the problem like this is tackled via "Word Wrap" implementation. Please see the screenshot with the issue.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.