void App::keyPressEvent(QKeyEvent *ke) { qDebug("Key: %x", ke->key()); if (ke->key() == Qt::Key_F10 && !noFileOpened) { Notes::EViewType viewType = notes->getViewType(); if (viewType == Notes::HALF_VIEW) hideTree(); else if (viewType == Notes::HIDE_TREE) hideNote(); else if (viewType == Notes::HIDE_NOTE) halfView(); ke->accept(); return; } ke->ignore(); }
App::App(QWidget* parent, const char* name, WFlags fl) : QMainWindow(parent, name, fl) { showFullScreen = false; setCaption("IQNotes"); toolbar = new QPEToolBar(this); toolbar->setVerticalStretchable(false); toolbar->setHorizontalStretchable(false); setToolBarsMovable(false); multiTB = new QToolButton(toolbar); // File menu filePopupMenu = new QPopupMenu(this); menu = new QPEMenuBar(this); int fileID; fileID = menu->insertItem("File", filePopupMenu); #ifndef DEMO newID = filePopupMenu->insertItem("New", this, SLOT(newFile()), SHIFT+Key_N); openID = filePopupMenu->insertItem("Open", this, SLOT(openFile()), SHIFT+Key_O); saveID = filePopupMenu->insertItem("Save", this, SLOT(saveFile()), SHIFT+Key_S); // file->insertItem("Save as", this, SLOT(saveAsFile())); closeID = filePopupMenu->insertItem("Close", this, SLOT(closeFileMenu())); filePopupMenu->insertSeparator(); #endif filePopupMenu->insertItem("Quit", this, SLOT(goodBye())); // Tree menu treePopupMenu = new QPopupMenu(this); treeID = menu->insertItem("Tree", treePopupMenu); searchA = new QAction("Search", ToolBarIcon::prepare("iqnotes/find"), QString::null, Key_F, this, 0 ); connect(searchA, SIGNAL(activated()), this, SLOT(search())); // searchA->addTo(toolbar); searchA->addTo(treePopupMenu); multiTB->setIconSet(ToolBarIcon::prepare("iqnotes/find")); connect(multiTB, SIGNAL(clicked()), this, SLOT(search())); // toolbar->addSeparator(); // no room for this treePopupMenu->insertSeparator(); quickAddA = new QAction("Quick add", ToolBarIcon::prepare("iqnotes/quick_add"), QString::null, Key_Q, this, 0 ); connect(quickAddA, SIGNAL(activated()), this, SLOT(quickAdd())); quickAddA->addTo(toolbar); quickAddA->addTo(treePopupMenu); addBeforeA = new QAction("Add before", ToolBarIcon::prepare("iqnotes/add_before"), QString::null, 0, this, 0 ); connect(addBeforeA, SIGNAL(activated()), this, SLOT(addBefore())); addBeforeA->addTo(toolbar); addBeforeA->addTo(treePopupMenu); addAfterA = new QAction("Add after", ToolBarIcon::prepare("iqnotes/add_after"), QString::null, Key_A, this, 0 ); connect(addAfterA, SIGNAL(activated()), this, SLOT(addAfter())); addAfterA->addTo(toolbar); addAfterA->addTo(treePopupMenu); addChildA = new QAction("Add child", ToolBarIcon::prepare("iqnotes/add_child"), QString::null, Key_E, this, 0 ); connect(addChildA, SIGNAL(activated()), this, SLOT(addChild())); addChildA->addTo(toolbar); addChildA->addTo(treePopupMenu); treePopupMenu->insertSeparator(); sortID = treePopupMenu->insertItem("Sort", this, SLOT(sort())); treePopupMenu->insertSeparator(); expandTreeID = treePopupMenu->insertItem("Expand tree", this, SLOT(expandTree())); collapseTreeID = treePopupMenu->insertItem("Collapse tree", this, SLOT(collapseTree())); treePopupMenu->insertSeparator(); taskListPopupMenu = new QPopupMenu(this); taskListPopupMenu->insertItem("From whole tree", this, SLOT(taskListWholeTree())); taskListPopupMenu->insertItem("From current note down", this, SLOT(taskListCurrent())); eventListPopupMenu = new QPopupMenu(this); eventListPopupMenu->insertItem("From whole tree", this, SLOT(eventListWholeTree())); eventListPopupMenu->insertItem("From current note down", this, SLOT(eventListCurrent())); taskListID = treePopupMenu->insertItem("Task list", taskListPopupMenu); eventListID = treePopupMenu->insertItem("Event list", eventListPopupMenu); treePopupMenu->insertSeparator(); reminderID = treePopupMenu->insertItem("Reminder", this, SLOT(showReminder())); toolbar->addSeparator(); /* closeSearchTreeA = new QAction("Close search tree", Resource::loadPixmap("iqnotes/close_search_tree"), QString::null, 0, this, 0 ); connect(closeSearchTreeA, SIGNAL(activated()), this, SLOT(closeSearchTree())); closeSearchTreeA->addTo(tree);*/ // Note menu notePopupMenu = new QPopupMenu(this); noteID = menu->insertItem("Note", notePopupMenu); renameNoteID = notePopupMenu->insertItem("Rename", this, SLOT(renameNote()), Key_R); editA = new QAction("Edit", ToolBarIcon::prepare("iqnotes/edit"), QString::null, Key_Return, this, 0 ); editA->setToolTip("Edit note"); connect(editA, SIGNAL(activated()), this, SLOT(editNote())); editA->addTo(toolbar); editA->addTo(notePopupMenu); cutA = new QAction("Cut", ToolBarIcon::prepare("iqnotes/bin"), QString::null, Key_X, this, 0 ); cutA->setToolTip("Cut note"); connect(cutA, SIGNAL(activated()), this, SLOT(cutNote())); cutA->addTo(toolbar); cutA->addTo(notePopupMenu); copyNotePopupMenu = new QPopupMenu(this); copyNotePopupMenu->insertItem("Only current note", this, SLOT(copyNoteOnlyCurrent())); copyNotePopupMenu->insertItem("Current note and down", this, SLOT(copyNoteCurrentAndDown())); copyNoteID = notePopupMenu->insertItem("Copy", copyNotePopupMenu); pasteNotePopupMenu = new QPopupMenu(this); pasteNotePopupMenu->insertItem("Before", this, SLOT(pasteNoteBefore())); pasteNotePopupMenu->insertItem("After", this, SLOT(pasteNoteAfter()), SHIFT+Key_A); pasteNotePopupMenu->insertItem("As child", this, SLOT(pasteNoteChild()), SHIFT+Key_E); pasteNoteID = notePopupMenu->insertItem("Paste", pasteNotePopupMenu); notePopupMenu->insertSeparator(); setPictureA = new QAction("Set picture", ToolBarIcon::prepare("iqnotes/set_picture"), QString::null, CTRL+Key_P, this, 0); setPictureA->setToolTip("Set picture"); connect(setPictureA, SIGNAL(activated()), this, SLOT(setPicture())); //setPictureA->addTo(toolbar); setPictureA->addTo(notePopupMenu); notePopupMenu->insertSeparator(); setTaskA = new QAction("Set task", ToolBarIcon::prepare("iqnotes/set_task"), QString::null, CTRL+Key_T, this, 0); setTaskA->setToolTip("Set task"); connect(setTaskA, SIGNAL(activated()), this, SLOT(setTask())); //setTaskA->addTo(toolbar); setTaskA->addTo(notePopupMenu); setEventA = new QAction("Set event", ToolBarIcon::prepare("iqnotes/set_event"), QString::null, CTRL+Key_E, this, 0); setEventA->setToolTip("Set event"); connect(setEventA, SIGNAL(activated()), this, SLOT(setEvent())); //setEventA->addTo(toolbar); setEventA->addTo(notePopupMenu); unsetTaskEventID = notePopupMenu->insertItem("Unset", this, SLOT(unsetTaskEvent())); notePopupMenu->insertSeparator(); setReminderID = notePopupMenu->insertItem("Set reminder", this, SLOT(setReminder())); unsetReminderID = notePopupMenu->insertItem("Unset reminder", this, SLOT(unsetReminder())); // View menu viewPopupMenu = new QPopupMenu(this); viewID = menu->insertItem("View", viewPopupMenu); toolbar->addSeparator(); hideNoteA = new QAction("Hide note", ToolBarIcon::prepare("iqnotes/hide_note"), QString::null, Key_1, this, 0 ); hideNoteA->setToolTip("Hide note"); connect(hideNoteA, SIGNAL(activated()), this, SLOT(hideNote())); hideNoteA->addTo(toolbar); hideNoteA->addTo(viewPopupMenu); hideTreeA = new QAction("Hide tree", ToolBarIcon::prepare("iqnotes/hide_tree"), QString::null, Key_2, this, 0 ); hideTreeA->setToolTip("Hide tree"); connect(hideTreeA, SIGNAL(activated()), this, SLOT(hideTree())); hideTreeA->addTo(toolbar); hideTreeA->addTo(viewPopupMenu); halfViewA = new QAction("Half view", ToolBarIcon::prepare("iqnotes/half_view"), QString::null, Key_3, this, 0 ); halfViewA->setToolTip("Half view"); connect(halfViewA, SIGNAL(activated()), this, SLOT(halfView())); halfViewA->addTo(toolbar); halfViewA->addTo(viewPopupMenu); /* viewPopupMenu->insertSeparator(); toggleToolBarID = viewPopupMenu->insertItem("Toggle toolbar", this, SLOT(toggleToolBar())); toggleFullScreenID = viewPopupMenu->insertItem("Toggle fullscreen", this, SLOT(toggleFullScreen())); */ // Options menu optionsPopupMenu = new QPopupMenu(this); optionsID = menu->insertItem("Options", optionsPopupMenu); optionsPopupMenu->insertItem("Define new entry", this, SLOT(defineNewEntry())); optionsPopupMenu->insertItem("Change entry", this, SLOT(changeEntry())); optionsPopupMenu->insertItem("Delete entry", this, SLOT(deleteEntry())); optionsPopupMenu->insertSeparator(); optionsPopupMenu->insertItem("Preferences", this, SLOT(preferenc())); // Help menu helpPopupMenu = new QPopupMenu(this); menu->insertItem("Help", helpPopupMenu); helpPopupMenu->insertItem("About", this, SLOT(about())); addToolBar(toolbar); IQApp = this; // notes = new Notes(this, "bla"); setCentralWidget(notes); connect(notes, SIGNAL(emptyNoteTree()), this, SLOT(isEmptyNoteTree())); connect(notes, SIGNAL(noEmptyNoteTree()), this, SLOT(isNotEmptyNoteTree())); connect(notes, SIGNAL(searchTreeShown()), this, SLOT(searchTreeShown())); connect(notes, SIGNAL(searchTreeClosed()), this, SLOT(searchTreeClosed())); connect(notes, SIGNAL(taskListShown()), this, SLOT(taskListShown())); connect(notes, SIGNAL(taskListClosed()), this, SLOT(taskListClosed())); connect(notes, SIGNAL(eventListShown()), this, SLOT(eventListShown())); connect(notes, SIGNAL(eventListClosed()), this, SLOT(eventListClosed())); connect(notes, SIGNAL(reminderShown()), this, SLOT(reminderShown())); connect(notes, SIGNAL(reminderClosed()), this, SLOT(reminderClosed())); connect(notes, SIGNAL(noteModified(bool)), this, SLOT(setModified(bool))); readConfig(); changeFont(); noNoteTree(); }
void ResourceWindow::updateGUI() { SmartBody::SBScene* scene = SmartBody::SBScene::getScene(); SmartBody::SBAssetManager* assetManager = scene->getAssetManager(); resourceTree->sortorder(FL_TREE_SORT_ASCENDING); // update path tree updatePath(getTreeFromName("script path"), SmartBody::SBScene::getScene()->getAssetPaths("script")); updatePath(getTreeFromName("motion path"), SmartBody::SBScene::getScene()->getAssetPaths("motion")); updatePath(getTreeFromName("audio path"), SmartBody::SBScene::getScene()->getAssetPaths("audio")); updatePath(getTreeFromName("mesh path"), SmartBody::SBScene::getScene()->getAssetPaths("mesh")); // update sequence file list const std::vector<std::string> scriptPaths = SmartBody::SBScene::getScene()->getAssetPaths("script"); resourceTree->clear_children(getTreeFromName("scriptfiles")); for (size_t p = 0; p < scriptPaths.size(); p++) { updateScriptFiles(getTreeFromName("scriptfiles"), scriptPaths[p]); } // update runtime scripts resourceTree->clear_children(getTreeFromName("script")); std::vector<std::string> scriptName = scene->getScriptNames(); for (size_t i = 0; i < scriptName.size(); i++) { SmartBody::SBScript* script = scene->getScript(scriptName[i]); updateScript(getTreeFromName("script"), script); } // update skeleton resourceTree->clear_children(getTreeFromName("skeleton")); std::vector<std::string> skeletons = scene->getSkeletonNames(); for (size_t c = 0; c < skeletons.size(); c++) { SmartBody::SBSkeleton * skel = scene->getSkeleton(skeletons[c]); updateSkeleton(getTreeFromName("skeleton"), skel); } // update joint maps resourceTree->clear_children(getTreeFromName("jointmap")); SmartBody::SBJointMapManager* jointMapManager = scene->getJointMapManager(); std::vector<std::string> jointMapNames = jointMapManager->getJointMapNames(); for (std::vector<std::string>::iterator iter = jointMapNames.begin(); iter != jointMapNames.end(); iter++) { Fl_Tree_Item* boneMapItem = resourceTree->add(getTreeFromName("jointmap"), (*iter).c_str()); updateJointMap(boneMapItem, jointMapManager->getJointMap((*iter))); } // update gesture maps resourceTree->clear_children(getTreeFromName("gesturemap")); SmartBody::SBGestureMapManager* gestureMapManager = scene->getGestureMapManager(); std::vector<std::string> gestureMapNames = gestureMapManager->getGestureMapNames(); for (std::vector<std::string>::iterator iter = gestureMapNames.begin(); iter != gestureMapNames.end(); iter++) { Fl_Tree_Item* gestureMapItem = resourceTree->add(getTreeFromName("gesturemap"), (*iter).c_str()); updateGestureMap(gestureMapItem, gestureMapManager->getGestureMap((*iter))); } // update motion map resourceTree->clear_children(getTreeFromName("motion")); std::vector<std::string> motionNames = scene->getMotionNames(); for (size_t i = 0; i < motionNames.size(); i++) { //resourceTree->add(treeItemList[ITEM_MOTION],mi->first.c_str()); SmartBody::SBMotion * motion = scene->getMotion(motionNames[i]); updateMotion(getTreeFromName("motion"), motion); } SmartBody::SBAnimationBlendManager* blendManager = scene->getBlendManager(); // update animation blend map resourceTree->clear_children(getTreeFromName("blend")); std::vector<std::string> blendNames = blendManager->getBlendNames(); for (size_t i = 0; i < blendNames.size(); i++) { //resourceTree->add(treeItemList[ITEM_MOTION],mi->first.c_str()); SmartBody::SBAnimationBlend * blend = blendManager->getBlend(blendNames[i]); updateAnimationBlend(getTreeFromName("blend"), blend); } // update blend transition map resourceTree->clear_children(getTreeFromName("transition")); std::vector<std::string> transitionNames = blendManager->getTransitionNames(); for (size_t i = 0; i < transitionNames.size(); i++) { //resourceTree->add(treeItemList[ITEM_MOTION],mi->first.c_str()); SmartBody::SBAnimationTransition * transition = blendManager->getTransitionByName(transitionNames[i]); updateBlendTransition(getTreeFromName("transition"), transition); } // update mesh map resourceTree->clear_children(getTreeFromName("mesh")); std::vector<std::string> meshNames = assetManager->getDeformableMeshNames(); for (size_t i = 0; i < meshNames.size(); i++) { DeformableMesh* mesh = assetManager->getDeformableMesh(meshNames[i]); Fl_Tree_Item* meshItem = resourceTree->add(getTreeFromName("mesh"), mesh->getName().c_str()); updateMesh(meshItem, mesh); } // update face definition map resourceTree->clear_children(getTreeFromName("facedefinition")); std::vector<std::string> faceNames = scene->getFaceDefinitionNames(); for (size_t i = 0; i < faceNames.size(); i++) { //resourceTree->add(treeItemList[ITEM_MOTION],mi->first.c_str()); SmartBody::SBFaceDefinition * face = scene->getFaceDefinition(faceNames[i]); if (!face) continue; Fl_Tree_Item* faceTree = resourceTree->add(getTreeFromName("facedefinition"), face->getName().c_str()); updateFaceDefinition(faceTree, face); } // update event handler list SmartBody::SBEventManager* eventManager = SmartBody::SBScene::getScene()->getEventManager(); std::map<std::string, SmartBody::SBEventHandler*>& eventMap = eventManager->getEventHandlers(); std::map<std::string, SmartBody::SBEventHandler*>::iterator ei; resourceTree->clear_children(getTreeFromName("eventhandler")); for ( ei = eventMap.begin(); ei != eventMap.end(); ei++) { updateEventHandler(getTreeFromName("eventhandler"), ei->second); } // Below are instance objects : // update pawn objects resourceTree->clear_children(getTreeFromName("pawn")); const std::vector<std::string>& pawnNames = scene->getPawnNames(); for (size_t i = 0; i < pawnNames.size(); i++) { SmartBody::SBPawn* pawn = scene->getPawn(pawnNames[i]); updatePawn(getTreeFromName("pawn"), pawn); } // update characters resourceTree->clear_children(getTreeFromName("character")); const std::vector<std::string>& charNames = scene->getCharacterNames(); for (size_t i = 0; i < charNames.size(); i++) { SmartBody::SBCharacter* character = scene->getCharacter(charNames[i]); resourceTree->sortorder(FL_TREE_SORT_ASCENDING); updateCharacter(getTreeFromName("character"), character); } // for (SBPhysicsObjMap::iterator iter = phySim->getPhysicsObjMap().begin(); // iter != phySim->getPhysicsObjMap().end(); // iter++) // { // SBPhysicsObj* obj = (*iter).second; // if (dynamic_cast<SbmJointObj*>(obj) == NULL) // { // // } // } // update services SmartBody::SBServiceManager* serviceManager = scene->getServiceManager(); std::map<std::string, SmartBody::SBService*>& serviceMap = serviceManager->getServices(); resourceTree->clear_children(getTreeFromName("service")); for (std::map<std::string, SmartBody::SBService*>::iterator iter = serviceMap.begin(); iter != serviceMap.end(); iter++) { SmartBody::SBService* service = (*iter).second; resourceTree->sortorder(FL_TREE_SORT_ASCENDING); SmartBody::SBPhysicsManager* phyManager = dynamic_cast<SmartBody::SBPhysicsManager*>(service); if (phyManager) updatePhysicsManager(getTreeFromName("service"),phyManager); else updateService(getTreeFromName("service"), service); } // update behavior sets resourceTree->clear_children(getTreeFromName("behaviorset")); std::map<std::string, SmartBody::SBBehaviorSet*>& behaviorSets = scene->getBehaviorSetManager()->getBehaviorSets(); for (std::map<std::string, SmartBody::SBBehaviorSet*>::iterator iter = behaviorSets.begin(); iter != behaviorSets.end(); iter++) { SmartBody::SBBehaviorSet* behaviorSet = (*iter).second; updateBehaviorSet(getTreeFromName("behaviorset"), behaviorSet); } _dirty = false; if (_firstTime) { hideTree(); _firstTime = false; } }