Changeset 261

Show
Ignore:
Timestamp:
12/05/07 11:44:25 (13 months ago)
Author:
fdb
Message:

libdir stuff, QMainWindow instead of QWidget.

Location:
nodebox/branches/try-qt/nodebox
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • nodebox/branches/try-qt/nodebox/graphics/qt.py

    r259 r261  
    284284 
    285285    def __getitem__(self, index): 
    286         cmd, el = self._nsBezierPath.elementAtIndex_associatedPoints_(index) 
    287         return PathElement(cmd, el) 
     286        el = self._qpath.elementAt(index) 
     287        return PathElement(el) 
    288288 
    289289    def __iter__(self): 
  • nodebox/branches/try-qt/nodebox/gui/qt/__init__.py

    r260 r261  
    77import random 
    88 
    9 from PyQt4.QtGui import QApplication, QWidget, QColor, QPainter, QMenuBar, QMenu, QKeySequence, QTextEdit, QSplitter, QGridLayout, QDialog, QScrollArea, QFont, QTextCharFormat, QFileDialog, QTextCursor, QPixmap, QPrinter, QImage 
     9from PyQt4.QtGui import QApplication, QWidget, QColor, QPainter, QMenuBar, QMenu, QKeySequence, QTextEdit, QSplitter, QGridLayout, QDialog, QScrollArea, QFont, QTextCharFormat, QFileDialog, QTextCursor, QPixmap, QPrinter, QImage, QMainWindow 
    1010from PyQt4.QtCore import Qt, SIGNAL, SLOT, pyqtSignature, QTimer, QRectF, QSize 
    1111from PyQt4.QtSvg import QSvgGenerator 
     
    9191    def __init__(self, parent=None): 
    9292        QTextEdit.__init__(self, parent) 
     93        self.setLineWrapMode(QTextEdit.NoWrap) 
    9394         
    9495    def mousePressEvent(self, event): 
     
    105106        #QTextCursor 
    106107 
    107 class NodeBoxDocument(QWidget): 
     108class NodeBoxDocument(QMainWindow): 
    108109    def __init__(self): 
    109         QWidget.__init__(self) 
     110        QMainWindow.__init__(self) 
    110111 
    111112        self.createGUI() 
     
    126127 
    127128    def createMenu(self): 
    128         self.menuBar = QMenuBar() 
     129        #self.menuBar = QMenuBar() 
    129130 
    130131        self.fileMenu = QMenu(self.tr("&File"), self) 
     
    144145        self.fileMenu.addAction(self.tr("&Print..."), self, SLOT("doPrint()"), QKeySequence("Ctrl+P")) 
    145146        self.exitAction = self.fileMenu.addAction(self.tr("E&xit"), self, SLOT("doExit()"), QKeySequence("Ctrl+Q")) 
    146         self.menuBar.addMenu(self.fileMenu) 
     147        self.menuBar().addMenu(self.fileMenu) 
    147148 
    148149        self.editMenu = QMenu(self.tr("&Edit"), self) 
     
    150151        self.editMenu.addAction(self.tr("&Redo"), self.codeView, SLOT("redo()"), QKeySequence("Ctrl+Shift+Z")) 
    151152        self.editMenu.addSeparator() 
    152         self.menuBar.addMenu(self.editMenu) 
     153        self.menuBar().addMenu(self.editMenu) 
    153154 
    154155        self.pythonMenu = QMenu(self.tr("&Python"), self) 
    155156        self.runAction = self.pythonMenu.addAction(self.tr("&Run"), self, SLOT("doRun()"), QKeySequence("Ctrl+R")) 
    156157        self.runAction = self.pythonMenu.addAction(self.tr("&Stop"), self, SLOT("doStop()"), QKeySequence("Ctrl+.")) 
    157         self.menuBar.addMenu(self.pythonMenu) 
     158        self.menuBar().addMenu(self.pythonMenu) 
    158159 
    159160        self.windowMenu = QMenu(self.tr("&Window"), self) 
     
    164165        self.windowMenu.addSeparator() 
    165166        # TODO: List of all windows 
    166         self.menuBar.addMenu(self.windowMenu) 
     167        self.menuBar().addMenu(self.windowMenu) 
    167168 
    168169    def createGUI(self): 
     
    203204        self.view_edit.addWidget(self.code_errors) 
    204205         
    205         mainLayout = QGridLayout() 
    206         mainLayout.addWidget(self.view_edit) 
    207         self.setLayout(mainLayout) 
     206        #mainLayout = QGridLayout() 
     207        #mainLayout.addWidget(self.view_edit) 
     208        self.setCentralWidget(self.view_edit) 
    208209 
    209210        self.setWindowTitle(self.tr("Untitled")) 
     
    226227    @pyqtSignature("") 
    227228    def doOpen(self): 
    228         fileName = QFileDialog.getOpenFileName(None, self.tr("Open File"), os.getenv('HOME'), "*.py") 
     229        global app 
     230        fileName = QFileDialog.getOpenFileName(None, self.tr("Open File"), app.home, "*.py") 
    229231        print "open", fileName 
    230232        if fileName is not None and len(fileName) > 0: 
     
    258260    @pyqtSignature("") 
    259261    def doSaveAs(self): 
    260         fileName = QFileDialog.getSaveFileName(self, self.tr("Save File"), os.getenv('HOME'), "*.py") 
     262        global app 
     263        fileName = QFileDialog.getSaveFileName(self, self.tr("Save File"), app.home, "*.py") 
    261264        print "save as", fileName 
    262265        if fileName is not None and len(fileName) > 0: 
     
    268271    @pyqtSignature("") 
    269272    def doExportAsImage(self): 
     273        global app 
    270274        if self.canvas is None: return 
    271         fileName = QFileDialog.getSaveFileName(self, self.tr("Save SVG File"), os.getenv('HOME'), "*.svg,*.pdf,*.png,*.tiff,*.jpg,*.jpeg,*.gif") 
     275        fileName = QFileDialog.getSaveFileName(self, self.tr("Save SVG File"), app.home, "*.svg,*.pdf,*.png,*.tiff,*.jpg,*.jpeg,*.gif") 
    272276        print "save image as ", fileName 
    273277        if fileName is not None and len(fileName) > 0: 
     
    458462             - The OutputFile 
    459463        """ 
     464        global app 
    460465        self.scriptName = self.fileName 
    461         libDir = os.path.join(os.getenv("HOME"), "Library", "Application Support", "NodeBox") 
     466        libDir = app.lib 
    462467        if not self.scriptName: 
    463             curDir = os.getenv("HOME") 
     468            curDir = app.home 
    464469            self.scriptName = "<untitled>" 
    465470        else: 
     
    563568        QApplication.__init__(self, args) 
    564569        self.documents = [] 
    565          
     570        if sys.platform == "win32": 
     571            self.home = 'C:/' # os.getenv('HOME') 
     572            self.lib = os.path.join(self.home, "NodeBox") # os.path.join(self.home, "Library", "Application Support", "NodeBox") 
     573        elif sys.platform == "mac": 
     574            self.home = os.getenv('HOME') 
     575            self.lib = os.path.join(self.home, "Library", "Application Support", "NodeBox") 
     576        else: 
     577            self.home = os.getenv('HOME') 
     578            self.lib = os.path.join(self.home, "nodebox") 
     579        try: 
     580            if not os.path.exists(self.lib): 
     581                os.mkdir(self.lib) 
     582                f = open(os.path.join(self.lib, "README"), "w") 
     583                f.write("In this directory, you can put Python libraries to make them available to your scripts.\n") 
     584                f.close() 
     585        except OSError: pass 
     586        except IOError: pass 
     587             
    566588    def newDocument(self): 
    567589        doc = NodeBoxDocument() 
     
    578600if __name__ == "__main__": 
    579601    qtmain() 
     602 
  • nodebox/branches/try-qt/nodebox/util/ottobot.py

    r179 r261  
    1 from AppKit import NSFontManager 
    2  
    31from nodebox.util import random, choice 
    42