int main(int argc, char **argv) { NOTUSED(argc); NOTUSED(argv); initConfig(); parseOptions(argc,argv); initScreen(); initEditor(l81.fb,30,30,30,30); editorOpen(l81.filename); while(1) { resetProgram(); loadProgram(); if (!l81.luaerr) { SDL_setFramerate(&l81.fb->fps_mgr,l81.fps); l81.start_ms = mstime(); while(!processSdlEvents()); if (editorFileWasModified()) editorSave(l81.filename); } editorRun(); } return 0; }
bool ItemDelegate::eventFilter(QObject *object, QEvent *event) { if (object->objectName() == "editor") { QPlainTextEdit *editor = qobject_cast<QPlainTextEdit*>(object); if (editor == NULL) return false; QEvent::Type type = event->type(); if ( type == QEvent::KeyPress ) { QKeyEvent *keyevent = static_cast<QKeyEvent *>(event); switch ( keyevent->key() ) { case Qt::Key_Enter: case Qt::Key_Return: // Commit data on Ctrl+Return or Enter? if (m_saveOnReturnKey) { if (keyevent->modifiers() == Qt::ControlModifier) { editor->insertPlainText("\n"); return true; } else if (keyevent->modifiers() != Qt::NoModifier) { return false; } } else { if (keyevent->modifiers() != Qt::ControlModifier) return false; } emit commitData(editor); emit closeEditor(editor); return true; case Qt::Key_S: // Commit data on Ctrl+S. if (keyevent->modifiers() != Qt::ControlModifier) return false; emit commitData(editor); emit closeEditor(editor); return true; case Qt::Key_F2: // Commit data on F2. emit commitData(editor); emit closeEditor(editor); return true; case Qt::Key_Escape: // Close editor without committing data. emit closeEditor(editor, QAbstractItemDelegate::RevertModelCache); return true; default: return false; } } else if ( type == QEvent::ContextMenu ) { QAction *act; QMenu *menu = editor->createStandardContextMenu(); connect( menu, SIGNAL(aboutToHide()), menu, SLOT(deleteLater()) ); menu->setParent(editor); act = menu->addAction( tr("&Save Item") ); act->setShortcut( QKeySequence(tr("F2, Ctrl+Enter")) ); connect( act, SIGNAL(triggered()), this, SLOT(editorSave()) ); act = menu->addAction( tr("Cancel Editing") ); act->setShortcut( QKeySequence(tr("Escape")) ); connect( act, SIGNAL(triggered()), this, SLOT(editorCancel()) ); QContextMenuEvent *menuEvent = static_cast<QContextMenuEvent *>(event); menu->popup( menuEvent->globalPos() ); } } else { // resize event for items if (event->type() == QEvent::Resize) { QResizeEvent *resize = static_cast<QResizeEvent *>(event); ItemWidget *item = dynamic_cast<ItemWidget *>(object); if (item != NULL) { item->widget()->resize(resize->size()); onItemChanged(item); return true; } } } return false; }