@@ -433,29 +433,38 @@ EditingArea::EditingArea(wxWindow *parent, PoeditListCtrl *associatedList, Mode
433433 m_labelPlural->SetFont (m_labelPlural->GetFont ().Bold ());
434434 m_textOrigPlural = new SourceTextCtrl (this , wxID_ANY);
435435
436- auto *sizer = new wxBoxSizer (wxVERTICAL);
437- SetSizer (sizer );
436+ auto *rootSizer = new wxBoxSizer (wxVERTICAL);
437+ SetSizer (rootSizer );
438438
439439#if defined(__WXMSW__)
440- sizer ->AddSpacer (PX (4 ) - 4 ); // account for fixed 4px sash above
440+ rootSizer ->AddSpacer (PX (4 ) - 4 ); // account for fixed 4px sash above
441441#elif defined(__WXOSX__)
442- sizer ->AddSpacer (PX (2 ));
442+ rootSizer ->AddSpacer (PX (2 ));
443443#endif
444- sizer->Add (sourceLineSizer, wxSizerFlags ().Expand ().Border (wxLEFT, PX (5 )));
445- sizer->AddSpacer (PX (6 ));
444+
445+ m_controlsSizer = new wxBoxSizer (wxVERTICAL);
446+
447+ m_controlsSizer->Add (sourceLineSizer, wxSizerFlags ().Expand ().Border (wxLEFT, PX (5 )));
448+ m_controlsSizer->AddSpacer (PX (6 ));
446449
447450 auto origTextSizer = new wxBoxSizer (wxVERTICAL);
448451 origTextSizer->AddSpacer (PX (4 ));
449452 origTextSizer->Add (m_labelSingular, wxSizerFlags ().Border (wxLEFT, PX (5 )));
450453 origTextSizer->Add (m_textOrig, wxSizerFlags (1 ).Expand ());
451454 origTextSizer->Add (m_labelPlural, wxSizerFlags ().Border (wxLEFT, PX (5 )));
452455 origTextSizer->Add (m_textOrigPlural, wxSizerFlags (1 ).Expand ());
453- sizer ->Add (origTextSizer, wxSizerFlags (1 ).Expand ());
456+ m_controlsSizer ->Add (origTextSizer, wxSizerFlags (1 ).Expand ());
454457
455458 if (mode == POT)
456- CreateTemplateControls (sizer );
459+ CreateTemplateControls (m_controlsSizer );
457460 else
458- CreateEditControls (sizer);
461+ CreateEditControls (m_controlsSizer);
462+
463+ m_placeholderSizer = CreatePlaceholderControls ();
464+
465+ rootSizer->Add (m_controlsSizer, wxSizerFlags (1 ).Expand ());
466+ rootSizer->Add (m_placeholderSizer, wxSizerFlags (1 ).Expand ());
467+ rootSizer->Hide (m_placeholderSizer);
459468
460469 SetupTextCtrlSizes ();
461470
@@ -468,6 +477,7 @@ EditingArea::EditingArea(wxWindow *parent, PoeditListCtrl *associatedList, Mode
468477 #endif
469478 m_labelSingular->SetForegroundColour (ColorScheme::Get (Color::SecondaryLabel));
470479 m_labelPlural->SetForegroundColour (ColorScheme::Get (Color::SecondaryLabel));
480+ m_labelPlaceholder->SetForegroundColour (ColorScheme::Get (Color::SecondaryLabel));
471481 });
472482}
473483
@@ -596,6 +606,25 @@ void EditingArea::CreateTemplateControls(wxBoxSizer *panelSizer)
596606}
597607
598608
609+ wxBoxSizer* EditingArea::CreatePlaceholderControls ()
610+ {
611+ auto sizer = new wxBoxSizer (wxVERTICAL);
612+
613+ sizer->AddStretchSpacer ();
614+ sizer->Add (new wxStaticBitmap (this , wxID_ANY, wxArtProvider::GetBitmap (" EmptyMultiSelectionTemplate" )),
615+ wxSizerFlags ().Center ().Border (wxBOTTOM, PX (10 )));
616+ m_labelPlaceholder = new wxStaticText (this , wxID_ANY, _ (" Use the Edit menu to perform bulk actions on selected strings." ));
617+ sizer->Add (m_labelPlaceholder, wxSizerFlags ().Expand ());
618+ sizer->AddStretchSpacer ();
619+
620+ auto outerSizer = new wxBoxSizer (wxHORIZONTAL);
621+ outerSizer->AddStretchSpacer (1 );
622+ outerSizer->Add (sizer, wxSizerFlags (1 ).Expand ().Border (wxALL, PX (10 )));
623+ outerSizer->AddStretchSpacer (1 );
624+ return outerSizer;
625+ }
626+
627+
599628void EditingArea::SetupTextCtrlSizes ()
600629{
601630 int minh = m_textOrig->GetCharHeight ();
@@ -623,6 +652,10 @@ void EditingArea::OnPaint(wxPaintEvent&)
623652 width += 1 ; // correct for half-pixel undrawn part on the right side
624653#endif
625654
655+ // In case of multiple selection, we don't want to draw the source/trans sections backgrounds
656+ if (!m_isSingleSelection)
657+ return ;
658+
626659 const int paddingTop = MACOS_OR_OTHER (dc.GetContentScaleFactor () > 1.0 ? PX (5 ) : PX (6 ), PX (6 ));
627660 const int paddingBottom = PX (5 );
628661
@@ -857,11 +890,10 @@ void EditingArea::SetSingleSelectionMode()
857890 return ;
858891 m_isSingleSelection = true ;
859892
860- if (m_fuzzy)
861- m_fuzzy->Show (m_fuzzyToggleNeeded);
862- m_charCounter->Show ();
863-
864- Enable ();
893+ GetSizer ()->Show (m_placeholderSizer, false );
894+ GetSizer ()->Show (m_controlsSizer, true );
895+ Layout ();
896+ Refresh ();
865897}
866898
867899
@@ -871,21 +903,14 @@ void EditingArea::SetMultipleSelectionMode()
871903 return ;
872904 m_isSingleSelection = false ;
873905
874- // TODO: Show better UI
875-
876- if (m_fuzzy)
877- m_fuzzy->Hide ();
878- m_charCounter->Hide ();
879- ShowPluralFormUI (false );
880- ShowPart (m_tagIdOrContext, false );
881- ShowPart (m_tagFormat, false );
882- ShowPart (m_tagPretranslated, false );
883- ShowPart (m_issueLine, false );
884-
885906 m_textOrig->Clear ();
886907 if (m_textTrans)
887908 m_textTrans->Clear ();
888- Disable ();
909+
910+ GetSizer ()->Show (m_controlsSizer, false );
911+ GetSizer ()->Show (m_placeholderSizer, true );
912+ Layout ();
913+ Refresh ();
889914}
890915
891916
0 commit comments