/usr/share/SuperCollider/SCClassLibrary/QtCollider/QPenPrinter.sc is in supercollider-common 1:3.6.3~repack-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | QPenPrinter : QObject {
var printFunc, cancelFunc, okFunc;
*qtClass { ^'QcPenPrinter' }
*new {
^super.new.init;
}
*print { |printFunc, cancelFunc|
this.new.showDialog( { |p| p.print(printFunc) }, cancelFunc);
}
init {
heap.remove(this);
this.connectFunction('printFunc()', synchronous:true) {
printFunc.value(this);
printFunc = nil;
heap.remove(this);
};
this.connectFunction('dialogDone(int)', synchronous:false) { |me, ok|
if( ok == 1 ) {
okFunc.value(this);
} {
cancelFunc.value(this);
};
okFunc = nil;
cancelFunc = nil;
heap.remove(this);
};
}
showDialog { |aOkFunc, aCancelFunc|
if(okFunc.notNil or: cancelFunc.notNil) {
"QPenPrinter: dialog already open".warn;
^this;
};
okFunc = aOkFunc;
cancelFunc = aCancelFunc;
heap = heap.add(this);
this.invokeMethod(\show, synchronous:false);
}
print { |aPrintFunc|
if(printFunc.notNil) {
"QPenPrinter: printing already in progress".warn;
^this;
};
printFunc = aPrintFunc;
heap = heap.add(this);
this.invokeMethod(\print, synchronous:false);
}
newPage {
this.invokeMethod(\newPage, synchronous:true);
}
pageRect { ^this.getProperty(\pageRect) }
paperRect { ^this.getProperty(\paperRect) }
fromPage { ^this.getProperty(\fromPage) }
toPage { ^this.getProperty(\toPage) }
pageSize { ^this.pageRect.size }
}
|