27#include <libfm-qt/browsehistory.h>
31#include <libfm-qt/core/fileinfo.h>
32#include <libfm-qt/core/filepath.h>
33#include <libfm-qt/core/folder.h>
38class ProxyFolderModel;
39class CachedFolderModel;
49 bool filterAcceptsRow(
const Fm::ProxyFolderModel* model,
const std::shared_ptr<const Fm::FileInfo>& info)
const;
51 QString getFilterStr() {
54 void setFilterStr(QString str) {
57 void filterFullName(
bool fullName) {
73 void keyPressed(QKeyEvent* event);
76 virtual void focusOutEvent(QFocusEvent* event)
override {
78 QLineEdit::focusOutEvent(event);
80 virtual void keyPressEvent(QKeyEvent* event)
override;
93 filterEdit_->setFocus();
98 void keyPressed(QKeyEvent* event) {
99 filterEdit_->keyPressed(event);
103 void textChanged(
const QString &text);
116 enum StatusTextType {
118 StatusTextSelectedFiles,
124 explicit TabPage(QWidget* parent =
nullptr);
127 void chdir(Fm::FilePath newPath,
bool addHistory =
true);
129 Fm::FolderView::ViewMode viewMode() {
130 return folderSettings_.viewMode();
133 void setViewMode(Fm::FolderView::ViewMode mode);
135 void sort(
int col, Qt::SortOrder order = Qt::AscendingOrder);
138 return folderSettings_.sortColumn();
141 Qt::SortOrder sortOrder() {
142 return folderSettings_.sortOrder();
145 bool sortFolderFirst() {
146 return folderSettings_.sortFolderFirst();
148 void setSortFolderFirst(
bool value);
150 bool sortHiddenLast() {
151 return folderSettings_.sortHiddenLast();
153 void setSortHiddenLast(
bool value);
155 bool sortCaseSensitive() {
156 return folderSettings_.sortCaseSensitive();
159 void setSortCaseSensitive(
bool value);
162 return proxyModel_->showHidden();
165 void setShowHidden(
bool showHidden);
167 void setShowThumbnails(
bool showThumbnails);
169 void saveFolderSorting();
171 Fm::FilePath path() {
172 return folder_ ? folder_->path() : Fm::FilePath();
177 const std::shared_ptr<Fm::Folder>& folder() {
181 Fm::FolderModel* folderModel() {
182 return reinterpret_cast<Fm::FolderModel*
>(folderModel_);
189 Fm::BrowseHistory& browseHistory() {
193 Fm::FileInfoList selectedFiles() {
194 return folderView_->selectedFiles();
197 Fm::FilePathList selectedFilePaths() {
198 return folderView_->selectedFilePaths();
203 void invertSelection();
207 QString title()
const {
211 QString statusText(StatusTextType type = StatusTextNormal)
const {
212 return statusText_[type];
216 return history_.canBackward();
222 return history_.canForward();
227 void jumpToHistory(
int index);
233 void updateFromSettings(
Settings& settings);
235 void setFileLauncher(Fm::FileLauncher* launcher) {
236 folderView_->setFileLauncher(launcher);
239 Fm::FileLauncher* fileLauncher() {
240 return folderView_->fileLauncher();
243 QString getFilterStr() {
245 return proxyFilter_->getFilterStr();
250 void setFilterStr(QString str) {
252 proxyFilter_->setFilterStr(str);
258 bool hasCustomizedView()
const {
259 return folderSettings_.isCustomized();
261 bool hasRecursiveCustomizedView()
const {
262 return folderSettings_.isCustomized() && folderSettings_.recursive();
264 bool hasInheritedCustomizedView()
const {
265 return !folderSettings_.isCustomized() && folderSettings_.inheritedPath().isValid();
268 void setCustomizedView(
bool value,
bool recursive =
false);
270 void goToCustomizedViewSource();
272 void transientFilterBar(
bool transient);
274 void showFilterBar();
275 bool isFilterBarVisible()
const {
276 return (filterBar_ && filterBar_->isVisible());
284 void backspacePressed();
286 void ceateShortcut();
288 void setFilesToSelect(
const Fm::FilePathList& files) {
289 filesToSelect_ = files;
293 void statusChanged(
int type, QString statusText);
295 void sortFilterChanged();
296 void forwardRequested();
297 void backwardRequested();
298 void folderUnmounted();
301 virtual bool eventFilter(QObject* watched, QEvent* event);
306 void onFileSizeChanged(
const QModelIndex& index);
307 void onFilesAdded(
const Fm::FileInfoList files);
308 void onFilterStringChanged(QString str);
309 void onLosingFilterBarFocus();
313 QString formatStatusText();
315 void onFolderStartLoading();
316 void onFolderFinishLoading();
319 void onFolderError(
const Fm::GErrorPtr& err, Fm::Job::ErrorSeverity severity, Fm::Job::ErrorAction& response);
321 void onFolderFsInfo();
322 void onFolderRemoved();
323 void onFolderUnmount();
324 void onFolderContentChanged();
330 Fm::CachedFolderModel* folderModel_;
331 Fm::ProxyFolderModel* proxyModel_;
333 QVBoxLayout* verticalLayout;
334 std::shared_ptr<Fm::Folder> folder_;
336 QString statusText_[StatusTextNum];
337 Fm::BrowseHistory history_;
338 Fm::FilePath lastFolderPath_;
339 bool overrideCursor_;
341 QTimer* selectionTimer_;
343 QStringList filesToTrust_;
344 Fm::FilePathList filesToSelect_;
Definition: settings.h:42
Definition: settings.h:154
Definition: tabpage.h:112