diff --git a/src/BookmarkMgr.cpp b/src/BookmarkMgr.cpp index 927315b..d1aaa14 100644 --- a/src/BookmarkMgr.cpp +++ b/src/BookmarkMgr.cpp @@ -204,10 +204,6 @@ BookmarkEntry *BookmarkMgr::demodToBookmarkEntry(DemodulatorInstance *demod) { be->bandwidth = demod->getBandwidth(); be->type = demod->getDemodulatorType(); be->label = demod->getDemodulatorUserLabel(); - if (be->label == "") { - std::string wstr = demod->getLabel(); - be->label = std::wstring(wstr.begin(),wstr.end()); - } be->frequency = demod->getFrequency(); be->node = new DataNode; diff --git a/src/forms/Bookmark/BookmarkPanel.cpp b/src/forms/Bookmark/BookmarkPanel.cpp index 6901fee..5bace65 100644 --- a/src/forms/Bookmark/BookmarkPanel.cpp +++ b/src/forms/Bookmark/BookmarkPanel.cpp @@ -28,7 +28,7 @@ BookmarkPanel::BookmarkPanel( wxWindow* parent, wxWindowID id, const wxPoint& po m_labelLabel->Wrap( -1 ); fgPropSizer->Add( m_labelLabel, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); - m_labelText = new wxTextCtrl( m_propPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_labelText = new wxTextCtrl( m_propPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER ); fgPropSizer->Add( m_labelText, 0, wxALL|wxEXPAND, 5 ); m_frequencyLabel = new wxStaticText( m_propPanel, wxID_ANY, wxT("Freq"), wxDefaultPosition, wxDefaultSize, 0 ); @@ -91,7 +91,7 @@ BookmarkPanel::BookmarkPanel( wxWindow* parent, wxWindowID id, const wxPoint& po m_treeView->Connect( wxEVT_COMMAND_TREE_ITEM_MENU, wxTreeEventHandler( BookmarkPanel::onTreeItemMenu ), NULL, this ); m_treeView->Connect( wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler( BookmarkPanel::onTreeSelect ), NULL, this ); m_treeView->Connect( wxEVT_COMMAND_TREE_SEL_CHANGING, wxTreeEventHandler( BookmarkPanel::onTreeSelectChanging ), NULL, this ); - m_labelText->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( BookmarkPanel::onLabelText ), NULL, this ); + m_labelText->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( BookmarkPanel::onLabelText ), NULL, this ); m_frequencyVal->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( BookmarkPanel::onDoubleClickFreq ), NULL, this ); m_bandwidthVal->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( BookmarkPanel::onDoubleClickBandwidth ), NULL, this ); this->Connect( wxID_ANY, wxEVT_TIMER, wxTimerEventHandler( BookmarkPanel::onUpdateTimer ) ); @@ -114,7 +114,7 @@ BookmarkPanel::~BookmarkPanel() m_treeView->Disconnect( wxEVT_COMMAND_TREE_ITEM_MENU, wxTreeEventHandler( BookmarkPanel::onTreeItemMenu ), NULL, this ); m_treeView->Disconnect( wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler( BookmarkPanel::onTreeSelect ), NULL, this ); m_treeView->Disconnect( wxEVT_COMMAND_TREE_SEL_CHANGING, wxTreeEventHandler( BookmarkPanel::onTreeSelectChanging ), NULL, this ); - m_labelText->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( BookmarkPanel::onLabelText ), NULL, this ); + m_labelText->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( BookmarkPanel::onLabelText ), NULL, this ); m_frequencyVal->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( BookmarkPanel::onDoubleClickFreq ), NULL, this ); m_bandwidthVal->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( BookmarkPanel::onDoubleClickBandwidth ), NULL, this ); this->Disconnect( wxID_ANY, wxEVT_TIMER, wxTimerEventHandler( BookmarkPanel::onUpdateTimer ) ); diff --git a/src/forms/Bookmark/BookmarkPanel.fbp b/src/forms/Bookmark/BookmarkPanel.fbp index 93305d0..f3e9a21 100644 --- a/src/forms/Bookmark/BookmarkPanel.fbp +++ b/src/forms/Bookmark/BookmarkPanel.fbp @@ -189,7 +189,7 @@ 5 wxALL|wxBOTTOM|wxEXPAND|wxTOP 0 - + 1 1 1 @@ -263,7 +263,7 @@ - + 2 wxBOTH 1 @@ -408,7 +408,7 @@ Resizable 1 - + wxTE_PROCESS_ENTER 0 @@ -442,8 +442,8 @@ - onLabelText - + + onLabelText diff --git a/src/forms/Bookmark/BookmarkView.cpp b/src/forms/Bookmark/BookmarkView.cpp index 164bc4c..8ae81a9 100644 --- a/src/forms/Bookmark/BookmarkView.cpp +++ b/src/forms/Bookmark/BookmarkView.cpp @@ -150,6 +150,13 @@ wxTreeItemId BookmarkView::refreshBookmarks() { tvi->type = TreeViewItem::TREEVIEW_ITEM_TYPE_BOOKMARK; tvi->bookmarkEnt = bmEnt; tvi->groupName = gn_i; + + std::wstring labelVal; + if (bmEnt->label == "") { + std::string wstr = frequencyToStr(tvi->bookmarkEnt->frequency) + " " + tvi->bookmarkEnt->type; + bmEnt->label = std::wstring(wstr.begin(),wstr.end()); + } + wxTreeItemId itm = m_treeView->AppendItem(groupItem, bmEnt->label); m_treeView->SetItemData(itm, tvi); if (bookmarkSel == bmEnt && groupExpanded) { @@ -186,7 +193,8 @@ void BookmarkView::doUpdateActiveList() { wxString activeLabel = demod_i->getDemodulatorUserLabel(); if (activeLabel == "") { - activeLabel = demod_i->getLabel(); + std::string wstr = frequencyToStr(demod_i->getFrequency()) + " " + demod_i->getDemodulatorType(); + activeLabel = std::wstring(wstr.begin(),wstr.end()); } wxTreeItemId itm = m_treeView->AppendItem(activeBranch,activeLabel); @@ -214,7 +222,14 @@ void BookmarkView::doUpdateActiveList() { tvi->type = TreeViewItem::TREEVIEW_ITEM_TYPE_RECENT; tvi->bookmarkEnt = bmr_i; - wxTreeItemId itm = m_treeView->AppendItem(recentBranch, bmr_i->label); + std::wstring labelVal; + bmr_i->node->child("user_label")->element()->get(labelVal); + if (labelVal == "") { + std::string wstr = frequencyToStr(bmr_i->frequency) + " " + bmr_i->type; + labelVal = std::wstring(wstr.begin(),wstr.end()); + } + + wxTreeItemId itm = m_treeView->AppendItem(recentBranch, labelVal); m_treeView->SetItemData(itm, tvi); if (recentSel == bmr_i && recentExpandState) { selItem = itm; @@ -658,7 +673,20 @@ void BookmarkView::onTreeSelectChanging( wxTreeEvent& event ) { void BookmarkView::onLabelText( wxCommandEvent& event ) { - event.Skip(); + std::wstring newLabel = m_labelText->GetValue().ToStdWstring(); + + if (activeSel) { + activeSel->setDemodulatorUserLabel(newLabel); + wxGetApp().getBookmarkMgr().updateActiveList(); + } else if (bookmarkSel) { + bookmarkSel->label = m_labelText->GetValue().ToStdWstring(); + bookmarkSel->node->child("user_label")->element()->set(newLabel); + wxGetApp().getBookmarkMgr().updateBookmarks(); + } else if (recentSel) { + recentSel->label = m_labelText->GetValue().ToStdWstring(); + recentSel->node->child("user_label")->element()->set(newLabel); + wxGetApp().getBookmarkMgr().updateActiveList(); + } }