void FramestackWidget::parseRDBBacktraceList(char *str) { QRegExp frame_re("#(\\d+) ([^:]+):(\\d+)(:in `([^\\n]+)')?"); int pos = frame_re.search(str); while (pos != -1) { QString method(frame_re.cap(5)); if (method == "") { method = "toplevel"; } else { method.append("(...)"); } int frameNo = frame_re.cap(1).toInt(); QString frameName = QString("T%1#%2 %3").arg(viewedThread_->threadNo()).arg(frame_re.cap(1)).arg(method); new FrameStackItem(viewedThread_, frameNo, QString(frame_re.cap(0)), frameName); // Tell the Variable Tree that this frame is active emit frameActive(frameNo, viewedThread_->threadNo(), frameName); pos += frame_re.matchedLength(); pos = frame_re.search(str, pos); } if (viewedThread_ != 0) { viewedThread_->setOpen(true); } return; }
void NGLScene::keyPressEvent(QKeyEvent *_event) { // this method is called every time the main window recives a key event. // we then switch on the key value and set the camera in the NGLScene switch (_event->key()) { // escape key to quite case Qt::Key_Escape : QGuiApplication::exit(EXIT_SUCCESS); break; // turn on wirframe rendering case Qt::Key_W : glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); break; // turn off wire frame case Qt::Key_S : glPolygonMode(GL_FRONT_AND_BACK,GL_FILL); break; // show full screen case Qt::Key_F : frameActive(); break; // show windowed case Qt::Key_Space : toggleWindow(); break; default : break; } // finally update the NGLScene and re-draw //if (isExposed()) renderLater(); }