The user has now the ability to open multiple programs at the same time and to switch between them without saving and loading whenever he does so.
This is the central part of this update.
Add Clear Button to clear the content of the window after the program is stopped.
Thinner edges for window
ToolBar looks more like a tool bar now
Add Clear Button to clear the content of the window after the program is stopped, just like graph window
Thinner edges, better look
Copy Image Button from Graphics window -> copy real displayed image, not internal one (under working layer)
The PRINT button from graphics window prints the wrong picture before (not the displayed image, but internal one)
Keep pressing F5 and click STOP to quickly RUN/STOP/RUN/STOP... After several times it will crash)
Now is fixed.
loop: graphsize 600+rand*2-1,600+rand*2-1 goto loop
When user use the vertical or horizontal scoll bars, then the tool bal is scrolled too
Tool bar stay on place
Also, the older icon was in fact a wrong image. :)
Fix stealing focus by scrool bars for graphics window
Fix the impossibility to set focus to graphics window after loosing it
Run this program dock and undock graph window. Press a key. Even if user will click on graph window, the focus is lost.
loop: print rand gosub wait goto loop wait: if key=0 then pause 0.1:goto wait return
The procedure is safe for a QThread. Otherwise the GUI will cause interface to freeze and user will not be able to press STOP button.
QProcess provides a set of functions which allow it to be used without an event loop, by suspending the calling thread until certain signals are emitted:
waitForStarted() blocks until the process has started.
waitForFinished() blocks until the process has finished.
Calling these functions from the main thread (the thread that calls QApplication::exec()) may cause your user interface to freeze.
Prevent user to select another line in debug mode and by this to highlight another line to look just like the current debug line.
Highlight full line in debug mode, not only the first row of multiple row line
If program uses a CLG color, the grid become useless for user (is drawed in background)
My old laptop went "Barf" and I am setting up a new Windows 10 environment. Will give this code a good hard look in the next couple of days.
Also will figure out the compiling instructions for the RasberryPi 3 (Just bought one and IT IS COOL!!)
Once we debug this and document the new sound stuff (at doc.basic256.org), are we ready for 3.0 and a new binary release? What do you think?
Hi Jim,
It is a good idea to launch a new binary release.
About RasberryPi 3... It would be great if BASIC256 could run on it!
The price is so good... this can allow poor countries to use BASIC256 as
educational tool in schools.
I will buy such device soon. :))
Let me know what you can do in the meantime with RasberryPi 3.
Last edit: Florin Oprea 2017-06-13
I have it running on the PI 3 (with audio issues). See the COMPILING.txt
file with the libraries that need included.
Am having issued with the windows compile. When I open up preferences, I
get a SEG fault. Looking at the backtrace, I see the thread start and call
stack, but not where it originated or where the issue is. It is giving me
a fault in the QT5.9 opengl stuff. Downloading 5.8 to see if that makes a
difference. Will try to get a solution.
Jim
On Mon, Jun 12, 2017 at 1:24 PM, Florin Oprea junior-root@users.sf.net
wrote:
Florian,
Tried w QT5.8 and 5.9 on Windows 10 x64. When I start the program and open "Preferences" I get a SEG fault.
I have looked at this dump and for the life of me can't quite figure out what is happening. I did find a reference to a potentialy missing "app" loop, but the main() starts the app correctly. Have you experienced this?
Jim
Program received signal SIGSEGV, Segmentation fault.
0x091f9d05 in QOpenGLContext::surface (this=0x26085608) at kernel\qopenglcontext.cpp:1031
1031 kernel\qopenglcontext.cpp: No such file or directory.
(gdb) bt
0 0x091f9d05 in QOpenGLContext::surface (this=0x26085608) at kernel\qopenglcontext.cpp:1031
1 0x091cffbb in QWindow::event (this=0x28d63898, ev=0x1b4a184) at kernel\qwindow.cpp:2153
2 0x1913ebac in QWidgetWindow::event (this=0x28d63898, event=0x1b4a184) at kernel\qwidgetwindow.cpp:334
3 0x190ef9b2 in QApplicationPrivate::notify_helper (this=0x2227ab28, receiver=0x28d63898, e=0x1b4a184)
at kernel\qapplication.cpp:3745
4 0x190ecf9f in QApplication::notify (this=0x1b4fd70, receiver=0x28d63898, e=0x1b4a184)
at kernel\qapplication.cpp:3105
5 0x0203d719 in QCoreApplication::notifyInternal2 (receiver=0x28d63898, event=0x1b4a184)
at kernel\qcoreapplication.cpp:988
6 0x094c67b9 in QCoreApplication::sendEvent (receiver=0x28d63898, event=0x1b4a184)
at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
7 0x091cf791 in QWindow::destroy (this=0x28d63898) at kernel\qwindow.cpp:1703
8 0x19115e91 in QWidgetPrivate::deleteTLSysExtra (this=0x28d636c0) at kernel\qwidget.cpp:1908
9 0x1912e1c7 in QWidget::destroy (this=0x28d63630, destroyWindow=true, destroySubWindows=true)
at kernel\qwidget.cpp:12338
10 0x19115624 in QWidget::~QWidget (this=0x28d63630, in_chrg=<optimized out="">) at kernel\qwidget.cpp:1699
11 0x1945660b in QRollEffect::~QRollEffect (this=0x28d63630, in_chrg=<optimized out="">) at widgets\qeffects.cpp:340
12 0x194565a3 in QRollEffect::~QRollEffect (this=0x28d63630, in_chrg=<optimized out="">) at widgets\qeffects.cpp:340
13 0x02068134 in qDeleteInEventHandler (o=0x28d63630) at kernel\qobject.cpp:4552
14 0x02060c15 in QObject::event (this=0x28d63630, e=0x28d63378) at kernel\qobject.cpp:1254
15 0x1912868c in QWidget::event (this=0x28d63630, event=0x28d63378) at kernel\qwidget.cpp:9220
16 0x190ef9b2 in QApplicationPrivate::notify_helper (this=0x2227ab28, receiver=0x28d63630, e=0x28d63378)
17 0x190ef7f0 in QApplication::notify (this=0x1b4fd70, receiver=0x28d63630, e=0x28d63378)
18 0x0203d719 in QCoreApplication::notifyInternal2 (receiver=0x28d63630, event=0x28d63378)
19 0x02149163 in QCoreApplication::sendEvent (receiver=0x28d63630, event=0x28d63378)
---Type <return> to continue, or q <return> to quit---
20 0x0203e97d in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=52, data=0x2227ac30)
21 0x0203e43c in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=52) at kernel\qcoreapplication.cpp:1502
22 0x01efb8c8 in QThreadPrivate::finish (arg=0x28d2f410, lockAnyway=false) at thread\qthread_win.cpp:395
23 0x01efbe90 in QThread::wait (this=0x28d2f410, time=4294967295) at thread\qthread_win.cpp:624
24 0x01ef9d39 in QThreadPoolPrivate::reset (this=0x28d2f140) at thread\qthreadpool.cpp:274
25 0x01efa61a in QThreadPool::waitForDone (
26 0x67ef3494 in QHostInfoLookupManager::clear (this=
27 0x67ef3354 in QHostInfoLookupManager::~QHostInfoLookupManager (
28 0x67ef2673 in (anonymous namespace)::Q_QGS_theHostInfoLookupManager::Holder::~Holder (
29 0x67ef2690 in tcf_0 () at kernel\qhostinfo.cpp:62
30 0x67e811b4 in _CRT_INIT@12 () from C:\Qt\5.8\mingw53_32\bin\Qt5Networkd.dll
31 0x67e81325 in DllMainCRTStartup () from C:\Qt\5.8\mingw53_32\bin\Qt5Networkd.dll
32 0x67e81433 in DllMainCRTStartup@12 () from C:\Qt\5.8\mingw53_32\bin\Qt5Networkd.dll
33 0x776d1d26 in ntdll!RtlUshortByteSwap () from C:\WINDOWS\SYSTEM32\ntdll.dll
34 0x67e80000 in ?? ()
35 0x7769f28f in ntdll!RtlDeactivateActivationContextUnsafeFast () from C:\WINDOWS\SYSTEM32\ntdll.dll
36 0x77697df3 in ntdll!LdrShutdownProcess () from C:\WINDOWS\SYSTEM32\ntdll.dll
37 0x00000000 in ?? ()
(gdb)
I will try to reproduce this.
My current OS is Win7.
I come back with details.
Hi Jim,
I just install a fresh copy of Qt 5.9 on WIn10 x64.
I managed to complile without problems.
I even try to run with multiple monitors.
Question: do you have a copy of "espeak-data" folder in release/debug directories?
You are right. Once I copied the missing folder it started working. Will
get working on the sound and wav test suite.
Jim
On Thu, Jun 15, 2017 at 8:54 AM, Florin Oprea junior-root@users.sf.net
wrote: