void QG_CadToolBar::showPreviousToolBar(bool cleanup) { // cleanup mouse hint when showing previous tool bar, bug#3480121 RS_DIALOGFACTORY->updateMouseWidget("","",false); if(cleanup){ if(actionHandler != NULL) { RS_ActionInterface* currentAction =actionHandler->getCurrentAction(); if(currentAction != NULL) { currentAction->finish(false); //finish the action, but do not update toolBar } } if(toolbars.size()>1){ if(toolbars.last() != NULL) toolbars.last() ->setVisible(false); toolbars.pop_back(); toolbarIDs.pop_back(); } // std::cout<<"QG_CadToolBar::showPreviousToolBar(true): toolbars.size()="<<toolbars.size()<<std::endl; showToolBar(toolbarIDs.last()); }else{ hideSubToolBars(); // std::cout<<"QG_CadToolBar::showPreviousToolBar(false): toolbars.size()="<<toolbars.size()<<std::endl; if(toolbars.size()>1){ // std::cout<<"QG_CadToolBar::showPreviousToolBar(false): hide:"<<toolbarIDs[toolbars.size()-1]<<std::endl; if(toolbars.last()== NULL) toolbars.last()->setVisible(false); toolbars.pop_back(); toolbarIDs.pop_back(); } // std::cout<<"QG_CadToolBar::showPreviousToolBar(false): toolbars.size()="<<toolbars.size()<<std::endl; showSubToolBar(); } }
void QG_CadToolBar::showToolBarSelect(RS_ActionInterface* selectAction, int nextAction) { tbSelect->setNextAction(nextAction); tbSelect->setSelectAction(selectAction); showToolBar(RS2::ToolBarSelect); }
void QG_CadToolBar::showPreviousToolBar(bool cleanup) { // cleanup mouse hint when showing previous tool bar, bug#3480121 RS_DIALOGFACTORY->updateMouseWidget(); // for(auto p: activeToolbars){ // qDebug()<<"QG_CadToolBar::showPreviousToolBar():begin "<<p->rtti(); // } if(cleanup){ if(actionHandler) { RS_ActionInterface* currentAction =actionHandler->getCurrentAction(); if(currentAction && currentAction->rtti() != RS2::ActionDefault) { currentAction->finish(false); //finish the action, but do not update toolBar } } if(activeToolbars.size()>1){ if(activeToolbars.back()) activeToolbars.back() ->setVisible(false); activeToolbars.pop_back(); } // std::cout<<"QG_CadToolBar::showPreviousToolBar(true): toolbars.size()="<<toolbars.size()<<std::endl; showToolBar(activeToolbars.back()->rtti()); }else{ hideSubToolBars(); // std::cout<<"QG_CadToolBar::showPreviousToolBar(false): toolbars.size()="<<toolbars.size()<<std::endl; if(activeToolbars.size()>1){ // std::cout<<"QG_CadToolBar::showPreviousToolBar(false): hide:"<<toolbarIDs[toolbars.size()-1]<<std::endl; if (!activeToolbars.back()) activeToolbars.back()->setVisible(false); activeToolbars.pop_back(); } // std::cout<<"QG_CadToolBar::showPreviousToolBar(false): toolbars.size()="<<toolbars.size()<<std::endl; showSubToolBar(); } // for(auto p: activeToolbars){ // qDebug()<<"QG_CadToolBar::showPreviousToolBar():end "<<p->rtti(); // } }
void HelpKeywordView::loadAllContent() { showToolBar(false); mBuilder.load(QRC_DOCML_KEYWORD, DOCML_LAYOUT_SEARCH); ResetSearchPanel(); }
void QG_CadToolBar::showToolBarSelect(RS_ActionInterface* selectAction, int nextAction) { auto p=m_toolbars[RS2::ToolBarSelect]; p->setNextAction(nextAction); p->setSelectAction(selectAction); showToolBar(RS2::ToolBarSelect); showSubToolBar(); }
void QG_CadToolBar::showCadToolBar(RS2::ActionType actionType, bool cleanup){ switch(actionType){ //no op case RS2::ActionFileNew: case RS2::ActionFileNewTemplate: case RS2::ActionFileOpen: case RS2::ActionFileSave: case RS2::ActionFileSaveAs: case RS2::ActionFileExport: case RS2::ActionFileClose: case RS2::ActionFilePrint: case RS2::ActionFilePrintPreview: case RS2::ActionFileQuit: case RS2::ActionPrintPreview: case RS2::ActionEditUndo: case RS2::ActionEditRedo: case RS2::ActionEditCut: case RS2::ActionEditCutNoSelect: case RS2::ActionEditCopy: case RS2::ActionEditCopyNoSelect: case RS2::ActionEditPaste: case RS2::ActionViewStatusBar: case RS2::ActionViewLayerList: case RS2::ActionViewBlockList: case RS2::ActionViewCommandLine: case RS2::ActionViewLibrary: case RS2::ActionViewPenToolbar: case RS2::ActionViewOptionToolbar: case RS2::ActionViewCadToolbar: case RS2::ActionViewFileToolbar: case RS2::ActionViewEditToolbar: case RS2::ActionViewSnapToolbar: case RS2::ActionViewGrid: case RS2::ActionViewDraft: case RS2::ActionZoomIn: case RS2::ActionZoomOut: case RS2::ActionZoomAuto: case RS2::ActionZoomWindow: case RS2::ActionZoomPan: case RS2::ActionZoomRedraw: case RS2::ActionZoomPrevious: case RS2::ActionSelect: case RS2::ActionSelectSingle: case RS2::ActionSelectContour: case RS2::ActionSelectWindow: case RS2::ActionDeselectWindow: case RS2::ActionSelectAll: case RS2::ActionDeselectAll: case RS2::ActionSelectIntersected: case RS2::ActionDeselectIntersected: case RS2::ActionSelectInvert: case RS2::ActionSelectLayer: case RS2::ActionSelectDouble: case RS2::ActionDrawHatch: case RS2::ActionDrawHatchNoSelect: case RS2::ActionEditKillAllActions: case RS2::ActionSnapFree: case RS2::ActionSnapGrid: case RS2::ActionSnapEndpoint: case RS2::ActionSnapOnEntity: case RS2::ActionSnapCenter: case RS2::ActionSnapMiddle: case RS2::ActionSnapDist: case RS2::ActionSnapIntersection: case RS2::ActionSnapIntersectionManual: case RS2::ActionRestrictNothing: case RS2::ActionRestrictOrthogonal: case RS2::ActionRestrictHorizontal: case RS2::ActionRestrictVertical: case RS2::ActionSetRelativeZero: case RS2::ActionLockRelativeZero: case RS2::ActionUnlockRelativeZero: case RS2::ActionLayersDefreezeAll: case RS2::ActionLayersFreezeAll: case RS2::ActionLayersAdd: case RS2::ActionLayersRemove: case RS2::ActionLayersEdit: case RS2::ActionLayersToggleView: case RS2::ActionLayersToggleLock: case RS2::ActionLayersTogglePrint: case RS2::ActionBlocksDefreezeAll: case RS2::ActionBlocksFreezeAll: case RS2::ActionBlocksAdd: case RS2::ActionBlocksRemove: case RS2::ActionBlocksAttributes: case RS2::ActionBlocksEdit: case RS2::ActionBlocksInsert: case RS2::ActionBlocksToggleView: case RS2::ActionBlocksCreate: case RS2::ActionBlocksCreateNoSelect: case RS2::ActionBlocksExplode: case RS2::ActionBlocksExplodeNoSelect: case RS2::ActionModifyExplodeText: default: return; //default action resets toolbar, issue#295 case RS2::ActionDefault: resetToolBar(); break; case RS2::ActionDrawImage: case RS2::ActionDrawPoint: case RS2::ActionDrawSpline: case RS2::ActionDrawMText: showToolBar(RS2::ToolBarMain, false); if(tbMain != NULL){ tbMain->showCadToolBar(actionType); } break; case RS2::ActionDrawArc: case RS2::ActionDrawArc3P: case RS2::ActionDrawArcParallel: case RS2::ActionDrawArcTangential: showToolBar(RS2::ToolBarArcs, false); if(tbArcs != NULL){ tbArcs->showCadToolBar(actionType); } break; case RS2::ActionDrawCircle: case RS2::ActionDrawCircle2P: case RS2::ActionDrawCircle3P: case RS2::ActionDrawCircleCR: case RS2::ActionDrawCircleParallel: case RS2::ActionDrawCircleInscribe: case RS2::ActionDrawCircleTan2: case RS2::ActionDrawCircleTan2_1P: case RS2::ActionDrawCircleTan1_2P: showToolBar(RS2::ToolBarCircles, false); if(tbCircles != NULL){ tbCircles->showCadToolBar(actionType); } break; case RS2::ActionDrawEllipseArcAxis: case RS2::ActionDrawEllipseAxis: case RS2::ActionDrawEllipseFociPoint: case RS2::ActionDrawEllipse4Points: case RS2::ActionDrawEllipseCenter3Points: case RS2::ActionDrawEllipseInscribe: showToolBar(RS2::ToolBarEllipses, false); if(tbEllipses != NULL){ tbEllipses->showCadToolBar(actionType); } break; case RS2::ActionDrawLine: case RS2::ActionDrawLineAngle: case RS2::ActionDrawLineBisector: case RS2::ActionDrawLineFree: case RS2::ActionDrawLineHorVert: case RS2::ActionDrawLineHorizontal: case RS2::ActionDrawLineOrthogonal: case RS2::ActionDrawLineOrthTan: case RS2::ActionDrawLineParallel: case RS2::ActionDrawLineParallelThrough: case RS2::ActionDrawLinePolygonCenCor: case RS2::ActionDrawLinePolygonCorCor: case RS2::ActionDrawLineRectangle: case RS2::ActionDrawLineRelAngle: case RS2::ActionDrawLineTangent1: case RS2::ActionDrawLineTangent2: case RS2::ActionDrawLineVertical: showToolBar(RS2::ToolBarLines, false); if(tbLines != NULL){ tbLines->showCadToolBar(actionType); } break; case RS2::ActionDrawPolyline: case RS2::ActionPolylineAdd: case RS2::ActionPolylineAppend: case RS2::ActionPolylineDel: case RS2::ActionPolylineDelBetween: case RS2::ActionPolylineTrim: case RS2::ActionPolylineEquidistant: case RS2::ActionPolylineSegment: showToolBar(RS2::ToolBarPolylines, false); if(tbPolylines != NULL){ tbPolylines->showCadToolBar(actionType); } break; case RS2::ActionDimAligned: case RS2::ActionDimLinear: case RS2::ActionDimLinearVer: case RS2::ActionDimLinearHor: case RS2::ActionDimRadial: case RS2::ActionDimDiametric: case RS2::ActionDimAngular: case RS2::ActionDimLeader: showToolBar(RS2::ToolBarDim, false); if(tbDim != NULL){ tbDim->showCadToolBar(actionType); } break; case RS2::ActionModifyAttributes: case RS2::ActionModifyAttributesNoSelect: case RS2::ActionModifyDelete: case RS2::ActionModifyDeleteNoSelect: case RS2::ActionModifyDeleteQuick: case RS2::ActionModifyDeleteFree: case RS2::ActionModifyMove: case RS2::ActionModifyMoveNoSelect: case RS2::ActionModifyRotate: case RS2::ActionModifyRotateNoSelect: case RS2::ActionModifyScale: case RS2::ActionModifyScaleNoSelect: case RS2::ActionModifyMirror: case RS2::ActionModifyMirrorNoSelect: case RS2::ActionModifyMoveRotate: case RS2::ActionModifyMoveRotateNoSelect: case RS2::ActionModifyRotate2: case RS2::ActionModifyRotate2NoSelect: case RS2::ActionModifyEntity: case RS2::ActionModifyTrim: case RS2::ActionModifyTrim2: case RS2::ActionModifyTrimAmount: case RS2::ActionModifyCut: case RS2::ActionModifyStretch: case RS2::ActionModifyBevel: case RS2::ActionModifyRound: case RS2::ActionModifyOffset: case RS2::ActionModifyOffsetNoSelect: case RS2::ActionModifyRevertDirection: case RS2::ActionModifyRevertDirectionNoSelect: showToolBar(RS2::ToolBarModify, false); if(tbModify != NULL){ tbModify->showCadToolBar(actionType); } break; case RS2::ActionInfoInside: case RS2::ActionInfoDist: case RS2::ActionInfoDist2: case RS2::ActionInfoAngle: case RS2::ActionInfoTotalLength: case RS2::ActionInfoTotalLengthNoSelect: case RS2::ActionInfoArea: showToolBar(RS2::ToolBarInfo, false); if(tbInfo != NULL){ tbInfo->showCadToolBar(actionType); } break; } if(cleanup){ if(actionHandler != NULL) { RS_ActionInterface* currentAction =actionHandler->getCurrentAction(); if(currentAction != NULL) { currentAction->finish(false); //finish the action, but do not update toolBar } } } }
void QG_CadToolBar::showToolBarDim() { showToolBar(RS2::ToolBarDim); }
void QG_CadToolBar::showToolBarModify() { showToolBar(RS2::ToolBarModify); }
void QG_CadToolBar::showToolBarInfo() { showToolBar(RS2::ToolBarInfo); }
void QG_CadToolBar::showToolBarCircles() { showToolBar(RS2::ToolBarCircles); }
void QG_CadToolBar::showToolBarPolylines() { showToolBar(RS2::ToolBarPolylines); }
void QG_CadToolBar::showToolBarEllipses() { showToolBar(RS2::ToolBarEllipses); }
void QG_CadToolBar::showToolBarArcs() { showToolBar(RS2::ToolBarArcs); }
void QG_CadToolBar::showToolBarMain() { showToolBar(RS2::ToolBarMain); }
void QDBase::layout(bool allow_redraw) { DEBUG_MSG("QDBase::layout() called\n"); DEBUG_MAKE_INDENT(3); if (in_layout) { DEBUG_MSG("but we seem to be already here => must be called because of resize\n"); return; } IncFlag inc(&in_layout); // Obtain document size int doc_w=0; int doc_h=0; if (dimg) { doc_w=dimg->get_width(); doc_h=dimg->get_height(); if (doc_w>0 && doc_h>0) image_size_known = 1; } if (!doc_w || !doc_h) { DEBUG_MSG("document rectangle is empty...just hide scroll bars\n"); hscroll->hide(); vscroll->hide(); pane->resize(main_widget->width(), main_widget->height()); return; } bool do_redraw = false; bool update_tbar = false; bool hscroll_visible = false; bool vscroll_visible = false; int toolbar_height = toolbar->computeHeight(main_widget->width()); toolbar_enabled = (override_flags.toolbar && prefs.toolBarOn); if (toolbar_height + 2 * hscroll->height() > main_widget->height() ) toolbar_enabled = 0; if (!isToolBarEnabled()) toolbar_height = 0; else if (!isToolBarStuck()) toolbar_height = toolbar_edge; bool fullscreen = false; emit sigQueryFullScreen(fullscreen); rectVisible = GRect(0, 0, main_widget->width(), main_widget->height()-toolbar_height); if (cmd_zoom==IDC_ZOOM_STRETCH) { do_redraw |= allow_redraw; rectDocument = rectVisible; } else { // The scaling code can reduce the image *fast* 1, 2, 3, 4, 6 or 12 times // When "Favor fast magnifications for fast resolutions" is set, // we're forcing plugin to use these "fast" reductions. // Note, that the actual zoom factor (in %%) will depend on the // screen and image dpi. const int fast_red[]={ 1, 2, 3, 4, 6, 12 }; const int fast_reds=sizeof(fast_red)/sizeof(fast_red[0]); int red_ind=0; float red=1/100000.0; while(true) // Loop until we're sure about scrollbars and toolbar height { int image_dpi=300; if (dimg) image_dpi=dimg->get_rounded_dpi(); if (image_dpi<=0 || image_dpi>=2400) image_dpi=300; DEBUG_MSG("displ_dpi=" << displ_dpi << ", image_dpi=" << image_dpi << "\n"); // Compute reduction from cmd_zoom if (cmd_zoom>=IDC_ZOOM_MIN && cmd_zoom<=IDC_ZOOM_MAX) { // Fixed resolution int zoom=cmd_zoom-IDC_ZOOM_MIN; DEBUG_MSG("zoom=" << zoom << "%\n"); red=(float) image_dpi/zoom; } else if (cmd_zoom==IDC_ZOOM_ONE2ONE) { red=1; } else if (cmd_zoom==IDC_ZOOM_PAGE) { // IDC_ZOOM_PAGE case if (prefs.fastZoom) { // We may continue to loop from the previous scroll bar iteration for(;red_ind<fast_reds;red_ind++) { red=fast_red[red_ind]; if (doc_w<=rectVisible.width()*red && doc_h<=rectVisible.height()*red) break; } } if (doc_w>rectVisible.width()*red || doc_h>rectVisible.height()*red) { // Either we're not in the "fast" mode, or the // capabilities of the "fast" mode are not sufficient // to reduce the document so much float red_w=(float) doc_w/rectVisible.width(); float red_h=(float) doc_h/rectVisible.height(); float red_new=red_w<red_h ? red_h : red_w; // The following is necessary to avoid infinite loop with // appearing and disappearing scroll bars. if (red_new>red) red=red_new; } } else { // Make it IDC_ZOOM_WIDTH even if it's not if (prefs.fastZoom) { // We may continue to loop from the previous scroll bar iteration for(;red_ind<fast_reds;red_ind++) { red=fast_red[red_ind]; if (doc_w<=rectVisible.width()*red) break; } } if (doc_w>rectVisible.width()*red) { // Either we're not in the "fast" mode, or the // capabilities of the "fast" mode are not sufficient // to reduce the document so much float red_new=(float) doc_w/rectVisible.width(); // The following is necessary to avoid infinite loop with // appearing and disappearing scroll bars. if (red_new>red) red=red_new; } } DEBUG_MSG("reduction=" << red << ", scale factor=" << (1/red) << "\n"); // determine scrollbar visibility and modify rectVisible rectVisible=GRect(0, 0, main_widget->width(), main_widget->height()-toolbar_height); DEBUG_MSG("before engaging scrolls rectVisible=(" << rectVisible.xmin << ", " << rectVisible.ymin << ", " << rectVisible.width() << ", " << rectVisible.height() << ")\n"); int sh = hscroll->height(); int sw = vscroll->width(); bool hs_vis=false, vs_vis=false; if (override_flags.scrollbars && !fullscreen && rectVisible.height()>2*sh && rectVisible.width()>2*sw) { while(1) { if (!hs_vis && doc_w>round(rectVisible.width()*red)) { rectVisible.ymax=main_widget->height()-toolbar_height-sh; hs_vis=true; } else if (!vs_vis && doc_h>round(rectVisible.height()*red)) { rectVisible.xmax=main_widget->width()-sw; vs_vis=true; } else { break; } } } DEBUG_MSG("after engaging scrolls rectVisible=(" << rectVisible.xmin << ", " << rectVisible.ymin << ", " << rectVisible.width() << ", " << rectVisible.height() << ")\n"); if (hs_vis==hscroll_visible && vs_vis==vscroll_visible) break; DEBUG_MSG("Looks like we need another pass thru resolutions:\n"); DEBUG_MSG("hscroll_visible: was=" << hscroll_visible << ", now=" << hs_vis << "\n"); DEBUG_MSG("vscroll_visible: was=" << vscroll_visible << ", now=" << vs_vis << "\n"); hscroll_visible=hs_vis; vscroll_visible=vs_vis; } DEBUG_MSG("hscroll_visible=" << hscroll_visible << ", vscroll_visible=" << vscroll_visible << "\n"); GRect prevRectDocument=rectDocument; // Modify rectDocument maintaining document position if (round(rectDocument.width()*red)!=doc_w || round(rectDocument.height()*red)!=doc_h) { if (!rectDocument.isempty()) { GRect rect; rect.intersect(rectVisible, rectDocument); int cx=(rect.xmin+rect.xmax)/2-rectDocument.xmin; int cy=(rect.ymin+rect.ymax)/2-rectDocument.ymin; rectDocument.xmin=rectDocument.xmax =(int) (rectVisible.width()/2-cx*doc_w/ (red*rectDocument.width())); rectDocument.ymin=rectDocument.ymax =(int) (rectVisible.height()/2-cy*doc_h/ (red*rectDocument.height())); } } // Determine scaled document rectangle (adjusting xmin and ymin) rectDocument.xmax=rectDocument.xmin+round(doc_w/red); rectDocument.ymax=rectDocument.ymin+round(doc_h/red); if (isToolBarEnabled() && (prevRectDocument.width()!=rectDocument.width() || prevRectDocument.height()!=rectDocument.height())) update_tbar=true; // Since getZoom() may now return different value if (prevRectDocument.width()!=rectDocument.width() || prevRectDocument.height()!=rectDocument.height() || prevRectDocument.xmin!=rectDocument.xmin || prevRectDocument.ymin!=rectDocument.ymin) do_redraw|=allow_redraw; DEBUG_MSG("before aligning rectDocument=(" << rectDocument.xmin << ", " << rectDocument.ymin << ", " << rectDocument.width() << ", " << rectDocument.height() << ")\n"); // adjust document location. Please note: there is a copy of this code in // Scroll(). If you make any changes, make sure to do it twice :) int xoff=0; int yoff=0; int hor_align=DjVuANT::ALIGN_CENTER; int ver_align=DjVuANT::ALIGN_CENTER; if (anno && anno->ant) { hor_align=anno->ant->hor_align; ver_align=anno->ant->ver_align; } if (override_flags.hor_align!=DjVuANT::ALIGN_UNSPEC) hor_align=override_flags.hor_align; if (override_flags.ver_align!=DjVuANT::ALIGN_UNSPEC) ver_align=override_flags.ver_align; if (rectDocument.width()<=rectVisible.width()) { switch(hor_align) { case DjVuANT::ALIGN_LEFT: xoff=rectVisible.xmin-rectDocument.xmin; break; case DjVuANT::ALIGN_CENTER: case DjVuANT::ALIGN_UNSPEC: xoff=rectVisible.xmin-rectDocument.xmin+ (rectVisible.width()-rectDocument.width())/2; break; case DjVuANT::ALIGN_RIGHT: xoff=rectVisible.xmax-rectDocument.xmax; break; } } else if (rectDocument.xmin>rectVisible.xmin) xoff=rectVisible.xmin-rectDocument.xmin; else if (rectDocument.xmax<rectVisible.xmax) xoff=rectVisible.xmax-rectDocument.xmax; if (rectDocument.height()<=rectVisible.height()) { switch(ver_align) { case DjVuANT::ALIGN_TOP: yoff=rectVisible.ymin-rectDocument.ymin; break; case DjVuANT::ALIGN_CENTER: case DjVuANT::ALIGN_UNSPEC: yoff=rectVisible.ymin-rectDocument.ymin+ (rectVisible.height()-rectDocument.height())/2; break; case DjVuANT::ALIGN_BOTTOM: yoff=rectVisible.ymax-rectDocument.ymax; break; } } else if (rectDocument.ymin>rectVisible.ymin) yoff=rectVisible.ymin-rectDocument.ymin; else if (rectDocument.ymax<rectVisible.ymax) yoff=rectVisible.ymax-rectDocument.ymax; if (rectDocument.width()>0 && rectDocument.height()>0) rectDocument.translate(xoff, yoff); DEBUG_MSG("translated rectDocument=(" << rectDocument.xmin << ", " << rectDocument.ymin << ", " << rectDocument.width() << ", " << rectDocument.height() << ")\n"); } // Make the pane be on top so that any transient movements (of the // toolbar and scrollbars) will not cause any extra Expose events // TODO: RAISE: pane->raise(); // Resize the pane and scroll bars if (hscroll_visible) { hscroll->move(0, rectVisible.height()+toolbar_height); hscroll->show(); } else hscroll->hide(); if (vscroll_visible) { vscroll->move(rectVisible.width(), 0); vscroll->show(); } else vscroll->hide(); // Since QDPane is created with WResizeNoErase flag, we need to // redraw ourselves if the pane's size changed. if (pane->width()!=rectVisible.width() || pane->height()!=rectVisible.height()) do_redraw |= allow_redraw; pane->resize(rectVisible.width(), rectVisible.height()); hscroll->resize(rectVisible.width(), hscroll->height()); vscroll->resize(vscroll->width(), rectVisible.height()+toolbar_height); if (isToolBarEnabled()) { toolbar->resize(rectVisible.width(), toolbar->height()); toolbar->move(0, rectVisible.height()); if (!isToolBarStuck() && isToolBarShown()) { toolbar_shown=false; showToolBar(false); } } else if (toolbar) toolbar->move(0, main_widget->height()); // Now, when everything is in place set the stacking order properly if (toolbar) toolbar->raise(); hscroll->raise(); vscroll->raise(); // Adjust scroll bars parameters if (vscroll->isVisible()) { int value, sliderSize; value=rectVisible.ymin-rectDocument.ymin; if (value<0) value=0; sliderSize=rectVisible.height()<rectDocument.height() ? rectVisible.height() : rectDocument.height(); vscroll->setRange(0, rectDocument.height()-sliderSize); vscroll->setValue(value); vscroll->setSteps(rectDocument.height()/25, sliderSize); } if (hscroll->isVisible()) { int value, sliderSize; value=rectVisible.xmin-rectDocument.xmin; if (value<0) value=0; sliderSize=rectVisible.width()<rectDocument.width() ? rectVisible.width() : rectDocument.width(); hscroll->setRange(0, rectDocument.width()-sliderSize); hscroll->setValue(value); hscroll->setSteps(rectDocument.width()/25, sliderSize); } // Set rectangle mapper setMappers(); for(GPosition pos=map_areas;pos;++pos) map_areas[pos]->layout(GRect(0, 0, dimg->get_width(), dimg->get_height())); // Resizing margin caches: bm_cache.resize(rectDocument.width(), rectDocument.height(), rectVisible.width(), rectVisible.height()); pm_cache.resize(rectDocument.width(), rectDocument.height(), rectVisible.width(), rectVisible.height()); if (do_redraw) redraw(); if (update_tbar) updateToolBar(); DEBUG_MSG("QDBase::layout(): DONE\n"); }
void QG_CadToolBar::showCadToolBar(RS2::ActionType actionType, bool cleanup){ RS2::ToolBarId id=RS2::ToolBarNone; switch(actionType){ //no op default: return; //default action resets toolbar, issue#295 case RS2::ActionDefault: break; case RS2::ActionDrawImage: case RS2::ActionDrawPoint: case RS2::ActionDrawMText: id=RS2::ToolBarMain; break; case RS2::ActionDrawArc: case RS2::ActionDrawArc3P: case RS2::ActionDrawArcParallel: case RS2::ActionDrawArcTangential: id=RS2::ToolBarArcs; break; case RS2::ActionDrawCircle: case RS2::ActionDrawCircle2P: case RS2::ActionDrawCircle3P: case RS2::ActionDrawCircleCR: case RS2::ActionDrawCircleParallel: case RS2::ActionDrawCircleInscribe: case RS2::ActionDrawCircleTan2: case RS2::ActionDrawCircleTan2_1P: case RS2::ActionDrawCircleTan1_2P: id=RS2::ToolBarCircles; break; case RS2::ActionDrawEllipseArcAxis: case RS2::ActionDrawEllipseAxis: case RS2::ActionDrawEllipseFociPoint: case RS2::ActionDrawEllipse4Points: case RS2::ActionDrawEllipseCenter3Points: case RS2::ActionDrawEllipseInscribe: id=RS2::ToolBarEllipses; break; case RS2::ActionDrawSpline: case RS2::ActionDrawSplinePoints: id=RS2::ToolBarSplines; break; case RS2::ActionDrawLine: case RS2::ActionDrawLineAngle: case RS2::ActionDrawLineBisector: case RS2::ActionDrawLineFree: case RS2::ActionDrawLineHorVert: case RS2::ActionDrawLineHorizontal: case RS2::ActionDrawLineOrthogonal: case RS2::ActionDrawLineOrthTan: case RS2::ActionDrawLineParallel: case RS2::ActionDrawLineParallelThrough: case RS2::ActionDrawLinePolygonCenCor: case RS2::ActionDrawLinePolygonCorCor: case RS2::ActionDrawLineRectangle: case RS2::ActionDrawLineRelAngle: case RS2::ActionDrawLineTangent1: case RS2::ActionDrawLineTangent2: case RS2::ActionDrawLineVertical: id=RS2::ToolBarLines; break; case RS2::ActionDrawPolyline: case RS2::ActionPolylineAdd: case RS2::ActionPolylineAppend: case RS2::ActionPolylineDel: case RS2::ActionPolylineDelBetween: case RS2::ActionPolylineTrim: case RS2::ActionPolylineEquidistant: case RS2::ActionPolylineSegment: id=RS2::ToolBarPolylines; break; case RS2::ActionDimAligned: case RS2::ActionDimLinear: case RS2::ActionDimLinearVer: case RS2::ActionDimLinearHor: case RS2::ActionDimRadial: case RS2::ActionDimDiametric: case RS2::ActionDimAngular: case RS2::ActionDimLeader: id=RS2::ToolBarDim; break; case RS2::ActionModifyAttributes: case RS2::ActionModifyAttributesNoSelect: case RS2::ActionModifyDelete: case RS2::ActionModifyDeleteNoSelect: case RS2::ActionModifyDeleteQuick: case RS2::ActionModifyDeleteFree: case RS2::ActionModifyMove: case RS2::ActionModifyMoveNoSelect: case RS2::ActionModifyRotate: case RS2::ActionModifyRotateNoSelect: case RS2::ActionModifyScale: case RS2::ActionModifyScaleNoSelect: case RS2::ActionModifyMirror: case RS2::ActionModifyMirrorNoSelect: case RS2::ActionModifyMoveRotate: case RS2::ActionModifyMoveRotateNoSelect: case RS2::ActionModifyRotate2: case RS2::ActionModifyRotate2NoSelect: case RS2::ActionModifyEntity: case RS2::ActionModifyTrim: case RS2::ActionModifyTrim2: case RS2::ActionModifyTrimAmount: case RS2::ActionModifyCut: case RS2::ActionModifyStretch: case RS2::ActionModifyBevel: case RS2::ActionModifyRound: case RS2::ActionModifyOffset: case RS2::ActionModifyOffsetNoSelect: case RS2::ActionModifyRevertDirection: case RS2::ActionModifyRevertDirectionNoSelect: id=RS2::ToolBarModify; break; case RS2::ActionInfoInside: case RS2::ActionInfoDist: case RS2::ActionInfoDist2: case RS2::ActionInfoAngle: case RS2::ActionInfoTotalLength: case RS2::ActionInfoTotalLengthNoSelect: case RS2::ActionInfoArea: id=RS2::ToolBarInfo; break; } if(id != RS2::ToolBarNone){ m_toolbars[id]->showCadToolBar(actionType); showToolBar(id, false); } if(cleanup){ if(actionHandler ) { RS_ActionInterface* currentAction =actionHandler->getCurrentAction(); if(currentAction ) { currentAction->finish(false); //finish the action, but do not update toolBar } } } }