Audacity 3.2.0
Public Member Functions | Public Attributes | List of all members
audacity::cloud::audiocom::ShareAudioDialog::InitialStatePanel Struct Referencefinal
Collaboration diagram for audacity::cloud::audiocom::ShareAudioDialog::InitialStatePanel:
[legend]

Public Member Functions

 InitialStatePanel (ShareAudioDialog &parent)
 
void PopulateInitialStatePanel (ShuttleGui &s)
 
void UpdateUserData (bool authorized)
 
wxString GetTrackTitle () const
 
bool HasValidTitle () const
 

Public Attributes

ShareAudioDialogparent
 
wxWindow * root { nullptr }
 
UserPaneluserPanel { nullptr }
 
wxPanel * anonInfoPanel { nullptr }
 
wxPanel * authorizedInfoPanel { nullptr }
 
wxTextCtrl * trackTitle { nullptr }
 
Observer::Subscription mUserDataChangedSubscription
 

Detailed Description

Definition at line 64 of file ShareAudioDialog.h.

Constructor & Destructor Documentation

◆ InitialStatePanel()

audacity::cloud::audiocom::ShareAudioDialog::InitialStatePanel::InitialStatePanel ( ShareAudioDialog parent)
explicit

Definition at line 587 of file ShareAudioDialog.cpp.

Member Function Documentation

◆ GetTrackTitle()

wxString audacity::cloud::audiocom::ShareAudioDialog::InitialStatePanel::GetTrackTitle ( ) const

Definition at line 674 of file ShareAudioDialog.cpp.

675{
676 wxString ret { trackTitle->GetValue() };
677 ret.Trim(true).Trim(false);
678 return ret;
679}

Referenced by audacity::cloud::audiocom::ShareAudioDialog::StartUploadProcess().

Here is the caller graph for this function:

◆ HasValidTitle()

bool audacity::cloud::audiocom::ShareAudioDialog::InitialStatePanel::HasValidTitle ( ) const

Definition at line 681 of file ShareAudioDialog.cpp.

682{
683 return !GetTrackTitle().empty();
684}

Referenced by audacity::cloud::audiocom::ShareAudioDialog::Populate().

Here is the caller graph for this function:

◆ PopulateInitialStatePanel()

void audacity::cloud::audiocom::ShareAudioDialog::InitialStatePanel::PopulateInitialStatePanel ( ShuttleGui s)

Definition at line 592 of file ShareAudioDialog.cpp.

594{
596 s.StartVerticalLay(wxEXPAND, 1);
597 {
598 s.SetBorder(16);
599
601 GetUserService(), true, s.GetParent() };
602
604 [this](auto message) { UpdateUserData(message.IsAuthorized); });
605
606 s.Prop(0).AddWindow(userPanel, wxEXPAND);
607
608 s.SetBorder(0);
609
610 s.AddWindow(safenew wxStaticLine { s.GetParent() }, wxEXPAND);
611
613 {
615 {
616 s.AddFixedText(XO("Track Title"));
617 s.AddSpace(8);
618 trackTitle = s.AddTextBox({}, {}, 60);
619 trackTitle->SetName(XO("Track Title").Translation());
620 trackTitle->SetFocus();
621 trackTitle->SetMaxLength(100);
622 s.AddSpace(16);
623
625 {
626 AccessibleLinksFormatter privacyPolicy(XO(
627 /*i18n-hint: %s substitutes for audio.com. %% creates a linebreak in this context. */
628 "Sharing audio requires a free %s account linked to Audacity. %%Press \"Link account\" above to proceed."));
629
630 privacyPolicy.FormatLink(
631 L"%s", XO("audio.com"), "https://audio.com");
632
633 privacyPolicy.FormatLink(
634 L"%%", TranslatableString {},
636
637 privacyPolicy.Populate(s);
638 }
640
642 s.StartHorizontalLay(wxEXPAND, 1);
643 {
644 s.AddFixedText(XO("Press \"Continue\" to upload to audio.com"));
645 }
648 }
650 }
652 }
653 s.EndVerticalLay();
655
657 GetOAuthService().HasRefreshToken() &&
658 !GetUserService().GetUserSlug().empty());
659}
XO("Cut/Copy/Paste")
#define safenew
Definition: MemoryX.h:10
Subscription Subscribe(Callback callback)
Connect a callback to the Publisher; later-connected are called earlier.
Definition: Observer.h:199
void SetBorder(int Border)
Definition: ShuttleGui.h:495
void EndVerticalLay()
void EndInvisiblePanel()
wxPanel * StartInvisiblePanel(int border=0)
wxWindow * GetParent()
Definition: ShuttleGui.h:502
wxTextCtrl * AddTextBox(const TranslatableString &Caption, const wxString &Value, const int nChars)
Definition: ShuttleGui.cpp:659
void StartVerticalLay(int iProp=1)
void EndHorizontalLay()
void StartHorizontalLay(int PositionFlags=wxALIGN_CENTRE, int iProp=1)
wxWindow * AddWindow(wxWindow *pWindow, int PositionFlags=wxALIGN_CENTRE)
Definition: ShuttleGui.cpp:301
void AddFixedText(const TranslatableString &Str, bool bCenter=false, int wrapWidth=0)
Definition: ShuttleGui.cpp:442
wxSizerItem * AddSpace(int width, int height, int prop=0)
ShuttleGui & Prop(int iProp)
Definition: ShuttleGui.h:733
Holds a msgid for the translation catalog; may also bind format arguments.
UserService & GetUserService()
OAuthService & GetOAuthService()
Returns the instance of the OAuthService.
const ServiceConfig & GetServiceConfig()
Returns the instance of the ServiceConfig.

References ShuttleGuiBase::AddFixedText(), ShuttleGui::AddSpace(), ShuttleGuiBase::AddTextBox(), ShuttleGuiBase::AddWindow(), ShuttleGuiBase::EndHorizontalLay(), ShuttleGuiBase::EndInvisiblePanel(), ShuttleGuiBase::EndVerticalLay(), AccessibleLinksFormatter::FormatLink(), audacity::cloud::audiocom::GetOAuthService(), ShuttleGuiBase::GetParent(), audacity::cloud::audiocom::GetServiceConfig(), audacity::cloud::audiocom::GetUserService(), AccessibleLinksFormatter::Populate(), ShuttleGui::Prop(), safenew, ShuttleGuiBase::SetBorder(), ShuttleGuiBase::StartHorizontalLay(), ShuttleGuiBase::StartInvisiblePanel(), ShuttleGuiBase::StartVerticalLay(), and XO().

Referenced by audacity::cloud::audiocom::ShareAudioDialog::Populate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UpdateUserData()

void audacity::cloud::audiocom::ShareAudioDialog::InitialStatePanel::UpdateUserData ( bool  authorized)

Definition at line 661 of file ShareAudioDialog.cpp.

662{
663 parent.mIsAuthorised = authorized;
664
665 anonInfoPanel->Show(!authorized);
666 authorizedInfoPanel->Show(authorized);
667
668 if (parent.mContinueButton != nullptr)
669 parent.mContinueButton->Enable(authorized && !GetTrackTitle().empty());
670
671 root->GetParent()->Layout();
672}

Member Data Documentation

◆ anonInfoPanel

wxPanel* audacity::cloud::audiocom::ShareAudioDialog::InitialStatePanel::anonInfoPanel { nullptr }

Definition at line 73 of file ShareAudioDialog.h.

◆ authorizedInfoPanel

wxPanel* audacity::cloud::audiocom::ShareAudioDialog::InitialStatePanel::authorizedInfoPanel { nullptr }

Definition at line 74 of file ShareAudioDialog.h.

◆ mUserDataChangedSubscription

Observer::Subscription audacity::cloud::audiocom::ShareAudioDialog::InitialStatePanel::mUserDataChangedSubscription

Definition at line 77 of file ShareAudioDialog.h.

◆ parent

ShareAudioDialog& audacity::cloud::audiocom::ShareAudioDialog::InitialStatePanel::parent

Definition at line 68 of file ShareAudioDialog.h.

◆ root

wxWindow* audacity::cloud::audiocom::ShareAudioDialog::InitialStatePanel::root { nullptr }

◆ trackTitle

wxTextCtrl* audacity::cloud::audiocom::ShareAudioDialog::InitialStatePanel::trackTitle { nullptr }

◆ userPanel

UserPanel* audacity::cloud::audiocom::ShareAudioDialog::InitialStatePanel::userPanel { nullptr }

Definition at line 72 of file ShareAudioDialog.h.


The documentation for this struct was generated from the following files: