@@ -518,6 +518,27 @@ static void setupPenSize(){
518518 penSizeEvent ();
519519}
520520
521+ static void setPen (int type){
522+ sliderLock = true ;
523+ drawing->penType = type;
524+ penStyleEvent ();
525+ penSizeEvent ();
526+ switch (type){
527+ case ERASER:
528+ thicknessSlider->setRange (10 *scale,200 *scale);
529+ break ;
530+ case MARKER:
531+ thicknessSlider->setRange (1 ,50 *scale);
532+ break ;
533+ case PEN:
534+ thicknessSlider->setRange (1 ,50 *scale);
535+ break ;
536+
537+ }
538+ thicknessSlider->setValue (drawing->penSize [type]);
539+ sliderLock = false ;
540+ }
541+
521542static void setupPenType (){
522543
523544 ov = new OverView ();
@@ -529,14 +550,7 @@ static void setupPenType(){
529550 floatingSettings->setHide ();
530551 return ;
531552 }
532- sliderLock = true ;
533- drawing->penType = PEN;
534- drawing->penStyle = SPLINE;
535- thicknessSlider->setRange (1 ,50 *scale);
536- thicknessSlider->setValue (drawing->penSize [PEN]);
537- penStyleEvent ();
538- penSizeEvent ();
539- sliderLock = false ;
553+ setPen (PEN);
540554 });
541555 floatingWidget->setWidget (penButton);
542556
@@ -554,14 +568,7 @@ static void setupPenType(){
554568 floatingSettings->setHide ();
555569 return ;
556570 }
557- sliderLock = true ;
558- drawing->penType = MARKER;
559- drawing->penStyle = SPLINE;
560- thicknessSlider->setRange (1 ,50 *scale);
561- thicknessSlider->setValue (drawing->penSize [MARKER]);
562- penStyleEvent ();
563- penSizeEvent ();
564- sliderLock = false ;
571+ setPen (MARKER);
565572 });
566573 floatingWidget->setWidget (markerButton);
567574
@@ -572,13 +579,8 @@ static void setupPenType(){
572579 floatingSettings->setHide ();
573580 return ;
574581 }
575- sliderLock = true ;
576- drawing->penType = ERASER;
577- penStyleEvent ();
578- penSizeEvent ();
579- thicknessSlider->setRange (10 *scale,200 *scale);
580- thicknessSlider->setValue (drawing->penSize [ERASER]);
581- sliderLock = false ;
582+ setPen (ERASER);
583+
582584 });
583585 floatingWidget->setWidget (eraserButton);
584586
@@ -589,10 +591,8 @@ static void setupPenType(){
589591 floatingSettings->setPage (0 );
590592 floatingWidget->setFloatingOffset (4 );
591593 if (drawing->penType == ERASER){
592- drawing-> penType = PEN;
594+ setPen ( PEN) ;
593595 }
594- penStyleEvent ();
595- penSizeEvent ();
596596 });
597597 typeButton->setStyleSheet (QString (" background-color: none;" ));
598598 floatingSettings->addPage (typeDialog);
0 commit comments