Related to #181, also ignore removal of the main file when auto-reloading

epec-fast
Marius Kintel 2013-05-30 16:51:00 -04:00
parent 0041f3012d
commit 06237a067f
5 changed files with 11 additions and 12 deletions

View File

@ -1106,7 +1106,10 @@ bool MainWindow::fileChangedOnDisk()
if (!this->fileName.isEmpty()) {
struct stat st;
memset(&st, 0, sizeof(struct stat));
stat(this->fileName.toLocal8Bit(), &st);
bool valid = (stat(this->fileName.toLocal8Bit(), &st) == 0);
// If file isn't there, just return and use current editor text
if (!valid) return false;
std::string newid = str(boost::format("%x.%x") % st.st_mtime % st.st_size);
if (newid != this->autoReloadId) {

View File

@ -118,7 +118,9 @@ o ./cascade.sh
o Open cascadetest.scad
o Turn on Automatic Reload and Compile
o Verify that the 4 objects render correctly
o rm cascade-*.scad
o rm cascadetest.scad
o Verify that no rerendering was triggered (the 4 objects are still there)
o rm cascade*.scad
o Verify that no rerendering was triggered (the 4 objects are still there)
o ./cascade2.sh
o Verify that everything reloads at once without flickering

View File

@ -1,6 +1,7 @@
#!/bin/bash
rm cascade-*.scad
rm cascade*.scad
echo "include <cascade-A.scad> include <cascade-B.scad> use <cascade-C.scad> use <cascade-D.scad> A(); translate([11,0,0]) B(); translate([22,0,0]) C(); translate([33,0,0]) D();" > cascadetest.scad
sleep 0.05
echo "module A() { sphere(5); }" > cascade-A.scad
sleep 0.05

View File

@ -1,6 +1,7 @@
#!/bin/bash
rm cascade-*.scad
echo "include <cascade-A.scad> include <cascade-B.scad> use <cascade-C.scad> use <cascade-D.scad> A(); translate([11,0,0]) B(); translate([22,0,0]) C(); translate([33,0,0]) D();" > cascadetest.scad
sleep 0.1
echo "module A() { sphere(6); }" > cascade-A.scad
sleep 0.1

View File

@ -1,9 +1 @@
include <cascade-A.scad>
include <cascade-B.scad>
use <cascade-C.scad>
use <cascade-D.scad>
A();
translate([11,0,0]) B();
translate([22,0,0]) C();
translate([33,0,0]) D();
include <cascade-A.scad> include <cascade-B.scad> use <cascade-C.scad> use <cascade-D.scad> A(); translate([11,0,0]) B(); translate([22,0,0]) C(); translate([33,0,0]) D();