mirror of
https://github.com/clangen/musikcube.git
synced 2025-01-04 08:42:07 +00:00
A couple small bug fixes in the directory browser.
This commit is contained in:
parent
80a10ffe5f
commit
e5d82dc868
@ -114,7 +114,7 @@ void DirectoryLayout::SetDirectory(const std::string& directory) {
|
||||
this->rootDirectory = directory;
|
||||
this->adapter->SetRootDirectory(directory);
|
||||
this->directoryList->SetSelectedIndex(0);
|
||||
this->Refresh();
|
||||
this->Refresh(true);
|
||||
}
|
||||
|
||||
void DirectoryLayout::OnVisibilityChanged(bool visible) {
|
||||
@ -126,25 +126,29 @@ void DirectoryLayout::OnVisibilityChanged(bool visible) {
|
||||
|
||||
void DirectoryLayout::RequeryTrackList(ListWindow *view) {
|
||||
size_t selected = this->directoryList->GetSelectedIndex();
|
||||
if (selected != ListWindow::NO_SELECTION) {
|
||||
if (selected == 0 && this->adapter->GetLeafAt(0) == "..") {
|
||||
return;
|
||||
}
|
||||
std::string fullPath = "";
|
||||
|
||||
std::string fullPath = this->adapter->GetFullPathAt(selected);
|
||||
if (selected == 0 && this->adapter->GetLeafAt(0) == "..") {
|
||||
return;
|
||||
}
|
||||
else if (selected == ListWindow::NO_SELECTION) {
|
||||
fullPath = this->rootDirectory; /* no sub directories */
|
||||
}
|
||||
else {
|
||||
fullPath = this->adapter->GetFullPathAt(selected);
|
||||
}
|
||||
|
||||
if (fullPath.size()) {
|
||||
fullPath = NormalizeDir(fullPath);
|
||||
if (fullPath.size()) {
|
||||
fullPath = NormalizeDir(fullPath);
|
||||
|
||||
auto query = std::shared_ptr<TrackListQueryBase>(
|
||||
new DirectoryTrackListQuery(this->library, fullPath));
|
||||
auto query = std::shared_ptr<TrackListQueryBase>(
|
||||
new DirectoryTrackListQuery(this->library, fullPath));
|
||||
|
||||
auto hash = query->GetQueryHash();
|
||||
auto hash = query->GetQueryHash();
|
||||
|
||||
if (hash != this->queryHash) {
|
||||
this->queryHash = hash;
|
||||
this->trackList->Requery(query);
|
||||
}
|
||||
if (hash != this->queryHash) {
|
||||
this->queryHash = hash;
|
||||
this->trackList->Requery(query);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -35,7 +35,7 @@
|
||||
#include "stdafx.h"
|
||||
|
||||
#include <core/support/Common.h>
|
||||
|
||||
#include <cursespp/Text.h>
|
||||
#include <cursespp/ScrollAdapterBase.h>
|
||||
#include <cursespp/SingleLineEntry.h>
|
||||
|
||||
@ -241,5 +241,6 @@ IScrollAdapter::EntryPtr DirectoryAdapter::GetEntry(cursespp::ScrollableWindow*
|
||||
--index;
|
||||
}
|
||||
|
||||
return IScrollAdapter::EntryPtr(new SingleLineEntry(this->subdirs[index]));
|
||||
auto text = text::Ellipsize(this->subdirs[index], this->GetWidth());
|
||||
return IScrollAdapter::EntryPtr(new SingleLineEntry(text));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user