diff --git a/doc/config b/doc/config index 351de903..716d9b84 100644 --- a/doc/config +++ b/doc/config @@ -321,8 +321,6 @@ # #default_space_mode = "add" (add/select) # -#default_tag_editor_left_col = "albums" (albums/dirs) -# #default_tag_editor_pattern = "%n - %t" # #header_visibility = "yes" diff --git a/doc/ncmpcpp.1 b/doc/ncmpcpp.1 index 371c4c68..6cf13772 100644 --- a/doc/ncmpcpp.1 +++ b/doc/ncmpcpp.1 @@ -243,9 +243,6 @@ If set to "wrapped", going from last found position to next will take you to the .B default_space_mode = select/add If set to "select", space will select items instead of adding them to playlist (although selecting by space is default and the only one action for space in Playlist). .TP -.B default_tag_editor_left_col = albums/dirs -If set to "albums", tag editor will display list of all albums from database, otherwise it'll allow you to browse the database. -.TP .B incremental_seeking = yes/no If enabled, seek time will increment by one each second of seeking. .TP diff --git a/src/actions.cpp b/src/actions.cpp index 630293ee..596474e3 100644 --- a/src/actions.cpp +++ b/src/actions.cpp @@ -398,7 +398,7 @@ void Action::ListsChangeFinisher() myPlaylistEditor->Content->clear(); } # ifdef HAVE_TAGLIB_H - else if (myScreen->ActiveWindow() == myTagEditor->LeftColumn) + else if (myScreen->ActiveWindow() == myTagEditor->Dirs) { myTagEditor->Tags->clear(); } @@ -1202,7 +1202,7 @@ void UpdateDatabase::Run() if (myScreen == myBrowser) Mpd.UpdateDirectory(locale_to_utf_cpy(myBrowser->CurrentDir())); # ifdef HAVE_TAGLIB_H - else if (myScreen == myTagEditor && !Config.albums_in_tag_editor) + else if (myScreen == myTagEditor) Mpd.UpdateDirectory(myTagEditor->CurrentDir()); # endif // HAVE_TAGLIB_H else diff --git a/src/settings.cpp b/src/settings.cpp index f35e7581..ee56b1b4 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -354,7 +354,6 @@ void Configuration::SetDefaults() wrapped_search = true; space_selects = false; ncmpc_like_songs_adding = false; - albums_in_tag_editor = false; incremental_seeking = true; now_playing_lyrics = false; fetch_lyrics_in_background = false; @@ -826,10 +825,6 @@ void Configuration::Read() { space_selects = v == "select"; } - else if (name == "default_tag_editor_left_col") - { - albums_in_tag_editor = v == "albums"; - } else if (name == "incremental_seeking") { incremental_seeking = v == "yes"; diff --git a/src/settings.h b/src/settings.h index 91c3c2f9..30302f75 100644 --- a/src/settings.h +++ b/src/settings.h @@ -171,7 +171,6 @@ struct Configuration bool wrapped_search; bool space_selects; bool ncmpc_like_songs_adding; - bool albums_in_tag_editor; bool incremental_seeking; bool now_playing_lyrics; bool fetch_lyrics_in_background; diff --git a/src/status.cpp b/src/status.cpp index ab5dcb4a..a88343e9 100644 --- a/src/status.cpp +++ b/src/status.cpp @@ -294,7 +294,6 @@ void NcmpcppStatusChanged(MPD::Connection *, MPD::StatusChanges changed, void *) # ifdef HAVE_TAGLIB_H if (myTagEditor->Main()) { - myTagEditor->Albums->clear(); myTagEditor->Dirs->clear(); } # endif // HAVE_TAGLIB_H diff --git a/src/tag_editor.cpp b/src/tag_editor.cpp index 887ff698..ee4cfd3c 100644 --- a/src/tag_editor.cpp +++ b/src/tag_editor.cpp @@ -90,7 +90,6 @@ std::string ParseFilename(MPD::MutableSong &s, std::string mask, bool preview); std::string SongToString(const MPD::MutableSong &s); bool DirEntryMatcher(const Regex &rx, const std::pair &dir, bool filter); -bool AlbumEntryMatcher(const Regex &rx, const std::pair &dir); bool SongEntryMatcher(const Regex &rx, const MPD::MutableSong &s); } @@ -100,20 +99,12 @@ void TagEditor::Init() PatternsFile = Config.ncmpcpp_directory + "patterns.list"; SetDimensions(0, COLS); - Albums = new NC::Menu< std::pair >(0, MainStartY, LeftColumnWidth, MainHeight, Config.titles_visibility ? "Albums" : "", Config.main_color, NC::brNone); - Albums->setHighlightColor(Config.active_column_color); - Albums->cyclicScrolling(Config.use_cyclic_scrolling); - Albums->centeredCursor(Config.centered_cursor); - Albums->setItemDisplayer(Display::Pair); - Dirs = new NC::Menu< std::pair >(0, MainStartY, LeftColumnWidth, MainHeight, Config.titles_visibility ? "Directories" : "", Config.main_color, NC::brNone); Dirs->setHighlightColor(Config.active_column_color); Dirs->cyclicScrolling(Config.use_cyclic_scrolling); Dirs->centeredCursor(Config.centered_cursor); Dirs->setItemDisplayer(Display::Pair); - LeftColumn = Config.albums_in_tag_editor ? Albums : Dirs; - TagTypes = new NC::Menu(MiddleColumnStartX, MainStartY, MiddleColumnWidth, MainHeight, Config.titles_visibility ? "Tag types" : "", Config.main_color, NC::brNone); TagTypes->setHighlightColor(Config.main_highlight_color); TagTypes->cyclicScrolling(Config.use_cyclic_scrolling); @@ -160,7 +151,7 @@ void TagEditor::Init() FParserPreview = new NC::Scrollpad((COLS-FParserWidth)/2+FParserWidthOne, (MainHeight-FParserHeight)/2+MainStartY, FParserWidthTwo, FParserHeight, "Preview", Config.main_color, Config.window_border); - w = LeftColumn; + w = Dirs; isInitialized = 1; } @@ -187,7 +178,6 @@ void TagEditor::Resize() GetWindowResizeParams(x_offset, width); SetDimensions(x_offset, width); - Albums->resize(LeftColumnWidth, MainHeight); Dirs->resize(LeftColumnWidth, MainHeight); TagTypes->resize(MiddleColumnWidth, MainHeight); Tags->resize(RightColumnWidth, MainHeight); @@ -196,7 +186,6 @@ void TagEditor::Resize() FParserLegend->resize(FParserWidthTwo, FParserHeight); FParserPreview->resize(FParserWidthTwo, FParserHeight); - Albums->moveTo(LeftColumnStartX, MainStartY); Dirs->moveTo(LeftColumnStartX, MainStartY); TagTypes->moveTo(MiddleColumnStartX, MainStartY); Tags->moveTo(RightColumnStartX, MainStartY); @@ -242,7 +231,6 @@ void TagEditor::SwitchTo() void TagEditor::Refresh() { - LeftColumn->display(); mvvline(MainStartY, MiddleColumnStartX-1, 0, MainHeight); TagTypes->display(); mvvline(MainStartY, RightColumnStartX-1, 0, MainHeight); @@ -261,77 +249,43 @@ void TagEditor::Refresh() void TagEditor::Update() { - if (LeftColumn->reallyEmpty()) + if (Dirs->reallyEmpty()) { - LeftColumn->Window::clear(); + Dirs->Window::clear(); Tags->clear(); - if (Config.albums_in_tag_editor) + + int highlightme = -1; + auto dirs = Mpd.GetDirectories(itsBrowsedDir); + std::sort(dirs.begin(), dirs.end(), CaseInsensitiveSorting()); + if (itsBrowsedDir != "/") { - *Albums << NC::XY(0, 0) << "Fetching albums..."; - Albums->Window::refresh(); - Mpd.BlockIdle(true); // for the same reason as in media library - auto albums = Mpd.GetList(MPD_TAG_ALBUM); - for (auto album = albums.begin(); album != albums.end(); ++album) - { - Mpd.StartSearch(1); - Mpd.AddSearch(MPD_TAG_ALBUM, *album); - auto songs = Mpd.CommitSearchSongs(); - if (!songs.empty()) - Albums->addItem(std::make_pair(songs[0].toString(Config.tag_editor_album_format), *album)); - } - Mpd.BlockIdle(false); - std::sort(Albums->beginV(), Albums->endV(), CaseInsensitiveSorting()); + size_t slash = itsBrowsedDir.rfind("/"); + std::string parent = slash != std::string::npos ? itsBrowsedDir.substr(0, slash) : "/"; + Dirs->addItem(make_pair("..", parent)); } else + Dirs->addItem(std::make_pair(".", "/")); + for (auto dir = dirs.begin(); dir != dirs.end(); ++dir) { - int highlightme = -1; - auto dirs = Mpd.GetDirectories(itsBrowsedDir); - std::sort(dirs.begin(), dirs.end(), CaseInsensitiveSorting()); - if (itsBrowsedDir != "/") - { - size_t slash = itsBrowsedDir.rfind("/"); - std::string parent = slash != std::string::npos ? itsBrowsedDir.substr(0, slash) : "/"; - Dirs->addItem(make_pair("..", parent)); - } - else - Dirs->addItem(std::make_pair(".", "/")); - for (auto dir = dirs.begin(); dir != dirs.end(); ++dir) - { - size_t slash = dir->rfind("/"); - std::string to_display = slash != std::string::npos ? dir->substr(slash+1) : *dir; - Dirs->addItem(make_pair(to_display, *dir)); - if (*dir == itsHighlightedDir) - highlightme = Dirs->size()-1; - } - if (highlightme != -1) - Dirs->highlight(highlightme); + size_t slash = dir->rfind("/"); + std::string to_display = slash != std::string::npos ? dir->substr(slash+1) : *dir; + Dirs->addItem(make_pair(to_display, *dir)); + if (*dir == itsHighlightedDir) + highlightme = Dirs->size()-1; } - LeftColumn->display(); - TagTypes->refresh(); + if (highlightme != -1) + Dirs->highlight(highlightme); + + Dirs->display(); } if (Tags->reallyEmpty()) { Tags->reset(); - if (Config.albums_in_tag_editor) - { - if (!Albums->empty()) - { - Mpd.StartSearch(1); - Mpd.AddSearch(MPD_TAG_ALBUM, Albums->current().value().second); - auto albums = Mpd.CommitSearchSongs(); - std::sort(albums.begin(), albums.end(), CaseInsensitiveSorting()); - for (auto album = albums.begin(); album != albums.end(); ++album) - Tags->addItem(*album); - } - } - else - { - auto songs = Mpd.GetSongs(Dirs->current().value().second); - std::sort(songs.begin(), songs.end(), CaseInsensitiveSorting()); - for (auto s = songs.begin(); s != songs.end(); ++s) - Tags->addItem(*s); - } + auto songs = Mpd.GetSongs(Dirs->current().value().second); + std::sort(songs.begin(), songs.end(), CaseInsensitiveSorting()); + for (auto s = songs.begin(); s != songs.end(); ++s) + Tags->addItem(*s); Tags->refresh(); } @@ -352,16 +306,16 @@ void TagEditor::EnterPressed() if (w == Dirs) { - auto dirs = Mpd.GetDirectories(LeftColumn->current().value().second); + auto dirs = Mpd.GetDirectories(Dirs->current().value().second); if (!dirs.empty()) { itsHighlightedDir = itsBrowsedDir; - itsBrowsedDir = LeftColumn->current().value().second; - LeftColumn->clear(); - LeftColumn->reset(); + itsBrowsedDir = Dirs->current().value().second; + Dirs->clear(); + Dirs->reset(); } else - ShowMessage("No subdirs found"); + ShowMessage("No subdirectories found"); } else if (w == FParserDialog) { @@ -652,8 +606,8 @@ void TagEditor::EnterPressed() TagTypes->setHighlightColor(Config.main_highlight_color); TagTypes->reset(); w->refresh(); - w = LeftColumn; - LeftColumn->setHighlightColor(Config.active_column_color); + w = Dirs; + Dirs->setHighlightColor(Config.active_column_color); Mpd.UpdateDirectory(getSharedDirectory(Tags->beginV(), Tags->endV())); } else @@ -668,16 +622,7 @@ void TagEditor::SpacePressed() { Tags->current().setSelected(!Tags->current().isSelected()); w->scroll(NC::wDown); - return; } - if (w != LeftColumn) - return; - - Config.albums_in_tag_editor = !Config.albums_in_tag_editor; - w = LeftColumn = Config.albums_in_tag_editor ? Albums : Dirs; - ShowMessage("Switched to %s view", Config.albums_in_tag_editor ? "albums" : "directories"); - LeftColumn->display(); - Tags->clear(); } void TagEditor::MouseButtonPressed(MEVENT me) @@ -718,16 +663,16 @@ void TagEditor::MouseButtonPressed(MEVENT me) ScrollpadMouseButtonPressed(FParserHelper, me); } } - else if (!LeftColumn->empty() && LeftColumn->hasCoords(me.x, me.y)) + else if (!Dirs->empty() && Dirs->hasCoords(me.x, me.y)) { - if (w != LeftColumn) + if (w != Dirs) { PrevColumn(); PrevColumn(); } - if (size_t(me.y) < LeftColumn->size() && (me.bstate & (BUTTON1_PRESSED | BUTTON3_PRESSED))) + if (size_t(me.y) < Dirs->size() && (me.bstate & (BUTTON1_PRESSED | BUTTON3_PRESSED))) { - LeftColumn->Goto(me.y); + Dirs->Goto(me.y); if (me.bstate & BUTTON1_PRESSED) EnterPressed(); else @@ -740,7 +685,7 @@ void TagEditor::MouseButtonPressed(MEVENT me) else if (!TagTypes->empty() && TagTypes->hasCoords(me.x, me.y)) { if (w != TagTypes) - w == LeftColumn ? NextColumn() : PrevColumn(); + w == Dirs ? NextColumn() : PrevColumn(); if (size_t(me.y) < TagTypes->size() && (me.bstate & (BUTTON1_PRESSED | BUTTON3_PRESSED))) { if (!TagTypes->Goto(me.y)) @@ -776,7 +721,7 @@ void TagEditor::MouseButtonPressed(MEVENT me) bool TagEditor::allowsFiltering() { - return w == LeftColumn || w == Tags; + return w == Dirs || w == Tags; } std::string TagEditor::currentFilter() @@ -784,8 +729,6 @@ std::string TagEditor::currentFilter() std::string filter; if (w == Dirs) filter = RegexFilter< std::pair >::currentFilter(*Dirs); - else if (w == Albums) - filter = RegexFilter< std::pair >::currentFilter(*Albums); else if (w == Tags) filter = RegexFilter::currentFilter(*Tags); return filter; @@ -800,12 +743,6 @@ void TagEditor::applyFilter(const std::string &filter) auto rx = RegexFilter< std::pair >(filter, Config.regex_type, fun); Dirs->filter(Dirs->begin(), Dirs->end(), rx); } - else if (w == Albums) - { - Albums->showAll(); - auto rx = RegexFilter< std::pair >(filter, Config.regex_type, AlbumEntryMatcher); - Albums->filter(Albums->begin(), Albums->end(), rx); - } else if (w == Tags) { Tags->showAll(); @@ -818,7 +755,7 @@ void TagEditor::applyFilter(const std::string &filter) bool TagEditor::allowsSearching() { - return w == LeftColumn || w == Tags; + return w == Dirs || w == Tags; } bool TagEditor::search(const std::string &constraint) @@ -830,11 +767,6 @@ bool TagEditor::search(const std::string &constraint) auto rx = RegexFilter< std::pair >(constraint, Config.regex_type, fun); result = Dirs->search(Dirs->begin(), Dirs->end(), rx); } - else if (w == Albums) - { - auto rx = RegexFilter< std::pair >(constraint, Config.regex_type, AlbumEntryMatcher); - result = Albums->search(Albums->begin(), Albums->end(), rx); - } else if (w == Tags) { auto rx = RegexFilter(constraint, Config.regex_type, SongEntryMatcher); @@ -847,8 +779,6 @@ void TagEditor::nextFound(bool wrap) { if (w == Dirs) Dirs->nextFound(wrap); - else if (w == Albums) - Albums->nextFound(wrap); else if (w == Tags) Tags->nextFound(wrap); } @@ -857,8 +787,6 @@ void TagEditor::prevFound(bool wrap) { if (w == Dirs) Dirs->prevFound(wrap); - else if (w == Albums) - Albums->prevFound(wrap); else if (w == Tags) Tags->prevFound(wrap); } @@ -905,7 +833,7 @@ MPD::SongList TagEditor::getSelectedSongs() bool TagEditor::isNextColumnAvailable() { - if (w == LeftColumn) + if (w == Dirs) { if (!TagTypes->reallyEmpty() && !Tags->reallyEmpty()) return true; @@ -924,9 +852,9 @@ bool TagEditor::isNextColumnAvailable() bool TagEditor::NextColumn() { - if (w == LeftColumn) + if (w == Dirs) { - LeftColumn->setHighlightColor(Config.main_highlight_color); + Dirs->setHighlightColor(Config.main_highlight_color); w->refresh(); w = TagTypes; TagTypes->setHighlightColor(Config.active_column_color); @@ -956,12 +884,12 @@ bool TagEditor::isPrevColumnAvailable() { if (w == Tags) { - if (!TagTypes->reallyEmpty() && !LeftColumn->reallyEmpty()) + if (!TagTypes->reallyEmpty() && !Dirs->reallyEmpty()) return true; } else if (w == TagTypes) { - if (!LeftColumn->reallyEmpty()) + if (!Dirs->reallyEmpty()) return true; } else if (w == FParserHelper) @@ -985,8 +913,8 @@ bool TagEditor::PrevColumn() { TagTypes->setHighlightColor(Config.main_highlight_color); w->refresh(); - w = LeftColumn; - LeftColumn->setHighlightColor(Config.active_column_color); + w = Dirs; + Dirs->setHighlightColor(Config.active_column_color); return true; } else if (w == FParserHelper) @@ -1009,14 +937,6 @@ void TagEditor::LocateSong(const MPD::Song &s) if (s.getDirectory().empty()) return; - if (LeftColumn == Albums) - { - Config.albums_in_tag_editor = false; - if (w == LeftColumn) - w = Dirs; - LeftColumn = Dirs; - } - if (Global::myScreen != this) SwitchTo(); @@ -1394,11 +1314,6 @@ bool DirEntryMatcher(const Regex &rx, const std::pair return rx.match(dir.first); } -bool AlbumEntryMatcher(const Regex &rx, const std::pair &dir) -{ - return rx.match(dir.first); -} - bool SongEntryMatcher(const Regex &rx, const MPD::MutableSong &s) { return rx.match(SongToString(s)); diff --git a/src/tag_editor.h b/src/tag_editor.h index 7449560f..f53c91a7 100644 --- a/src/tag_editor.h +++ b/src/tag_editor.h @@ -78,8 +78,6 @@ class TagEditor : public Screen, public Filterable, public HasSongs, void LocateSong(const MPD::Song &s); - NC::Menu< std::pair > *LeftColumn; - NC::Menu< std::pair > *Albums; NC::Menu< std::pair > *Dirs; NC::Menu *TagTypes; NC::Menu *Tags;