X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=lib%2FcreaDevManagerLib%2FwxCDMPackageDescriptionPanel.cpp;h=99367d7eeb3487a1392295d71317439538e2d2d0;hb=609d8d48cae96384e664ec6b000e8ecfcbad6459;hp=d32ed866479aa66ec4c1c08557d9239ec89d1a82;hpb=fa7a450d70363d66912675f9de918e7c8bb012b6;p=crea.git diff --git a/lib/creaDevManagerLib/wxCDMPackageDescriptionPanel.cpp b/lib/creaDevManagerLib/wxCDMPackageDescriptionPanel.cpp index d32ed86..99367d7 100644 --- a/lib/creaDevManagerLib/wxCDMPackageDescriptionPanel.cpp +++ b/lib/creaDevManagerLib/wxCDMPackageDescriptionPanel.cpp @@ -39,8 +39,14 @@ #include "creaDevManagerIds.h" #include "images/PkIcon64.xpm" +#include +#include "CDMUtilities.h" + BEGIN_EVENT_TABLE(wxCDMPackageDescriptionPanel, wxPanel) EVT_BUTTON(ID_BUTTON_PREV, wxCDMPackageDescriptionPanel::OnBtnReturn) +EVT_BUTTON(ID_BUTTON_SET_AUTHOR, wxCDMPackageDescriptionPanel::OnBtnSetAuthor) +EVT_BUTTON(ID_BUTTON_SET_VERSION, wxCDMPackageDescriptionPanel::OnBtnSetVersion) +EVT_BUTTON(ID_BUTTON_SET_DESCRIPTION, wxCDMPackageDescriptionPanel::OnBtnSetDescription) EVT_HYPERLINK(ID_LINK_SELECT_BLACKBOX, wxCDMPackageDescriptionPanel::OnLnkBlackBoxSelect) EVT_BUTTON(ID_BUTTON_CREATE_BLACKBOX, wxCDMPackageDescriptionPanel::OnBtnCreateBlackBox) EVT_BUTTON(ID_BUTTON_EDIT_CMAKELISTSFILE, wxCDMPackageDescriptionPanel::OnBtnEditCMakeLists) @@ -110,26 +116,26 @@ void wxCDMPackageDescriptionPanel::CreateControls() // author wxBoxSizer* pAuthorsz = new wxBoxSizer(wxHORIZONTAL); - wxStaticText* pAuthortc = new wxStaticText(propertiesPanel, wxID_ANY, crea::std2wx(this->package->GetAuthors())); - wxButton* pAuthorbt = new wxButton(propertiesPanel, ID_BUTTON_SET_VERSION, wxT("Change")); + this->authortc = new wxStaticText(propertiesPanel, wxID_ANY, crea::std2wx(this->package->GetAuthors())); + wxButton* pAuthorbt = new wxButton(propertiesPanel, ID_BUTTON_SET_AUTHOR, wxT("Change")); pAuthorbt->SetToolTip(wxT("Update the author/s of the package.")); - pAuthorsz->Add(pAuthortc, 0, wxALIGN_CENTER_VERTICAL, 0); + pAuthorsz->Add(this->authortc, 1, wxALIGN_CENTER_VERTICAL); pAuthorsz->Add(pAuthorbt, 0, wxALIGN_CENTER | wxLEFT, 10); // version wxBoxSizer* pVersionsz = new wxBoxSizer(wxHORIZONTAL); - wxStaticText* pVersiontc = new wxStaticText(propertiesPanel, wxID_ANY, crea::std2wx(this->package->GetVersion())); + this->versiontc = new wxStaticText(propertiesPanel, wxID_ANY, crea::std2wx(this->package->GetVersion())); wxButton* pVersionbt = new wxButton(propertiesPanel, ID_BUTTON_SET_VERSION, wxT("Set")); pVersionbt->SetToolTip(wxT("Update the version of the package.")); - pVersionsz->Add(pVersiontc, 0, wxALIGN_CENTER_VERTICAL, 0); + pVersionsz->Add(this->versiontc, 1, wxALIGN_CENTER_VERTICAL); pVersionsz->Add(pVersionbt, 0, wxALIGN_CENTER | wxLEFT, 10); // description wxBoxSizer* pDescriptionsz = new wxBoxSizer(wxHORIZONTAL); - wxStaticText* pDescriptiontc = new wxStaticText(propertiesPanel, wxID_ANY, crea::std2wx(this->package->GetDescription())); - wxButton* pDescriptionbt = new wxButton(propertiesPanel, ID_BUTTON_SET_VERSION, wxT("Change")); + this->descriptiontc = new wxStaticText(propertiesPanel, wxID_ANY, crea::std2wx(this->package->GetDescription())); + wxButton* pDescriptionbt = new wxButton(propertiesPanel, ID_BUTTON_SET_DESCRIPTION, wxT("Change")); pDescriptionbt->SetToolTip(wxT("Update the description of the project.")); - pDescriptionsz->Add(pDescriptiontc, 0, wxALIGN_CENTER_VERTICAL, 0); + pDescriptionsz->Add(this->descriptiontc, 1, wxALIGN_CENTER_VERTICAL); pDescriptionsz->Add(pDescriptionbt, 0, wxALIGN_CENTER | wxLEFT, 10); propertiesGridSizer->Add(pAuthor, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL); @@ -139,10 +145,12 @@ void wxCDMPackageDescriptionPanel::CreateControls() propertiesGridSizer->Add(pDescription, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL); propertiesGridSizer->Add(pDescriptionsz, 1, wxEXPAND); + propertiesGridSizer->AddGrowableCol(1,1); + propertiesPanelSizer -> Add(propertiesGridSizer, 1, wxEXPAND); propertiesPanel->SetSizer(propertiesPanelSizer); propertiesPanelSizer->Fit(propertiesPanel); - propertiesBox->Add(propertiesPanel, 0, wxALL, 5); + propertiesBox->Add(propertiesPanel, 0, wxEXPAND | wxALL, 5); sizer->Add(propertiesBox, 0, wxEXPAND | wxALL, 10); @@ -204,6 +212,83 @@ void wxCDMPackageDescriptionPanel::OnBtnReturn(wxCommandEvent& event) wxPostEvent(this->GetParent(), *newEvent); } +void wxCDMPackageDescriptionPanel::OnBtnSetAuthor(wxCommandEvent& event) +{ + //get author from user + wxTextEntryDialog* authDlg = new wxTextEntryDialog( + this, + wxT("Enter the new authors name. Separate each author with a '/'."), + wxT("Change Package Author - creaDevManager"), + crea::std2wx(this->package->GetAuthors()), + wxTE_MULTILINE | wxOK | wxCANCEL + ); + + if (authDlg->ShowModal() == wxID_OK) + { + std::string authorsStr = crea::wx2std(authDlg->GetValue()); + //check name + if(authorsStr.size() > 0) + { + std::string* result; + if(!this->package->SetAuthors(authorsStr, result)) + wxMessageBox(crea::std2wx(*result),_T("Change Package Author - Error!"),wxOK | wxICON_ERROR); + } + this->authortc->SetLabel(crea::std2wx(this->package->GetAuthors())); + this->authortc->GetParent()->GetSizer()->RecalcSizes(); + } + +} + +void wxCDMPackageDescriptionPanel::OnBtnSetVersion(wxCommandEvent& event) +{ + //get version + wxString versionWx = wxGetTextFromUser( + wxT("Enter the new version name"), + wxT("Change Package Version - creaDevManager"), + crea::std2wx(this->package->GetVersion()) + ); + //check name + std::vector parts; + CDMUtilities::splitter::split(parts, crea::wx2std(versionWx), " .", CDMUtilities::splitter::no_empties); + if(parts.size() == 3) + { + std::string* result; + if(!this->package->SetVersion(crea::wx2std(versionWx), result)) + wxMessageBox(crea::std2wx(*result),_T("Change Package Version - Error!"),wxOK | wxICON_ERROR); + } + else + { + wxMessageBox(crea::std2wx("The version format is incorrect, please follow the following format:\nX.Y.Z\nX: Major Version\nY: Minor Version\nZ: Build Version"),_T("Set Project Version - Error!"),wxOK | wxICON_ERROR); + } + this->versiontc->SetLabel(crea::std2wx(this->package->GetVersion())); +} + +void wxCDMPackageDescriptionPanel::OnBtnSetDescription(wxCommandEvent& event) +{ + //get author from user + wxTextEntryDialog* descDlg = new wxTextEntryDialog( + this, + wxT("Edit the package description."), + wxT("Change Package Description - creaDevManager"), + crea::std2wx(this->package->GetDescription()), + wxTE_MULTILINE | wxOK | wxCANCEL + ); + + if (descDlg->ShowModal() == wxID_OK) + { + std::string descriptionStr = crea::wx2std(descDlg->GetValue()); + //check name + if(descriptionStr.size() > 0) + { + std::string* result; + if(!this->package->SetDescription(descriptionStr, result)) + wxMessageBox(crea::std2wx(*result),_T("Change Package Description - Error!"),wxOK | wxICON_ERROR); + } + this->descriptiontc->SetLabel(crea::std2wx(this->package->GetDescription())); + this->descriptiontc->GetParent()->GetSizer()->RecalcSizes(); + } +} + void wxCDMPackageDescriptionPanel::OnLnkBlackBoxSelect(wxHyperlinkEvent& event) { int bbId = 0; @@ -238,8 +323,9 @@ void wxCDMPackageDescriptionPanel::OnBtnCreateBlackBox(wxCommandEvent& event) void wxCDMPackageDescriptionPanel::OnBtnEditCMakeLists(wxCommandEvent& event) { - //TODO: implement method - std::cerr << "Event OnBtnEditCMakeLists not implemented" << std::endl; + std::string* result; + if(!this->package->OpenCMakeListsFile(result)) + wxMessageBox(crea::std2wx(*result),_T("Open CMakeLists File - Error!"),wxOK | wxICON_ERROR); wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LIST_ITEM_DESELECTED); @@ -256,9 +342,9 @@ void wxCDMPackageDescriptionPanel::OnBtnEditCMakeLists(wxCommandEvent& event) void wxCDMPackageDescriptionPanel::OnBtnOpenFolder(wxCommandEvent& event) { - //TODO: implement method - std::cerr << "Event OnBtnOpenFolder not implemented" << std::endl; - event.Skip(); + std::string* result; + if(!this->package->OpenInFileExplorer(result)) + wxMessageBox(crea::std2wx(*result),_T("Open Folder - Error!"),wxOK | wxICON_ERROR); } void wxCDMPackageDescriptionPanel::OnMouseEnter(wxMouseEvent& event)