25 #include <QVBoxLayout>
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>
38 class ProxyFolderModel;
39 class CachedFolderModel;
48 bool filterAcceptsRow(
const Fm::ProxyFolderModel* model,
const std::shared_ptr<const Fm::FileInfo>& info)
const;
50 QString getFilterStr() {
53 void setFilterStr(QString str) {
68 void keyPressed(QKeyEvent* event);
71 virtual void focusOutEvent(QFocusEvent* event)
override {
73 QLineEdit::focusOutEvent(event);
75 virtual void keyPressEvent(QKeyEvent* event)
override;
88 filterEdit_->setFocus();
93 void keyPressed(QKeyEvent* event) {
94 filterEdit_->keyPressed(event);
98 void textChanged(
const QString &text);
111 enum StatusTextType {
113 StatusTextSelectedFiles,
119 explicit TabPage(QWidget* parent =
nullptr);
122 void chdir(Fm::FilePath newPath,
bool addHistory =
true);
124 Fm::FolderView::ViewMode viewMode() {
125 return folderSettings_.viewMode();
128 void setViewMode(Fm::FolderView::ViewMode mode);
130 void sort(
int col, Qt::SortOrder order = Qt::AscendingOrder);
133 return folderSettings_.sortColumn();
136 Qt::SortOrder sortOrder() {
137 return folderSettings_.sortOrder();
140 bool sortFolderFirst() {
141 return folderSettings_.sortFolderFirst();
143 void setSortFolderFirst(
bool value);
145 bool sortHiddenLast() {
146 return folderSettings_.sortHiddenLast();
148 void setSortHiddenLast(
bool value);
150 bool sortCaseSensitive() {
151 return folderSettings_.sortCaseSensitive();
154 void setSortCaseSensitive(
bool value);
157 return proxyModel_->showHidden();
160 void setShowHidden(
bool showHidden);
162 void setShowThumbnails(
bool showThumbnails);
164 void saveFolderSorting();
166 Fm::FilePath path() {
167 return folder_ ? folder_->path() : Fm::FilePath();
172 const std::shared_ptr<Fm::Folder>& folder() {
176 Fm::FolderModel* folderModel() {
177 return reinterpret_cast<Fm::FolderModel*
>(folderModel_);
184 Fm::BrowseHistory& browseHistory() {
188 Fm::FileInfoList selectedFiles() {
189 return folderView_->selectedFiles();
192 Fm::FilePathList selectedFilePaths() {
193 return folderView_->selectedFilePaths();
198 void invertSelection();
202 QString statusText(StatusTextType type = StatusTextNormal)
const {
203 return statusText_[type];
207 return history_.canBackward();
213 return history_.canForward();
218 void jumpToHistory(
int index);
224 void updateFromSettings(
Settings& settings);
226 void setFileLauncher(Fm::FileLauncher* launcher) {
227 folderView_->setFileLauncher(launcher);
230 Fm::FileLauncher* fileLauncher() {
231 return folderView_->fileLauncher();
234 QString getFilterStr() {
236 return proxyFilter_->getFilterStr();
241 void setFilterStr(QString str) {
243 proxyFilter_->setFilterStr(str);
249 bool hasCustomizedView() {
250 return folderSettings_.isCustomized();
253 void setCustomizedView(
bool value);
255 void transientFilterBar(
bool transient);
257 void showFilterBar();
258 bool isFilterBarVisible()
const {
259 return (filterBar_ && filterBar_->isVisible());
267 void backspacePressed();
270 void statusChanged(
int type, QString statusText);
271 void titleChanged(QString title);
272 void sortFilterChanged();
273 void forwardRequested();
274 void backwardRequested();
275 void folderUnmounted();
278 virtual bool eventFilter(QObject* watched, QEvent* event);
283 void onFileSizeChanged(
const QModelIndex& index);
284 void onFilesAdded(
const Fm::FileInfoList files);
285 void onFilterStringChanged(QString str);
286 void onLosingFilterBarFocus();
290 QString formatStatusText();
293 QString encloseWithBidiMarks(
const QString& text);
295 void onFolderStartLoading();
296 void onFolderFinishLoading();
299 void onFolderError(
const Fm::GErrorPtr& err, Fm::Job::ErrorSeverity severity, Fm::Job::ErrorAction& response);
301 void onFolderFsInfo();
302 void onFolderRemoved();
303 void onFolderUnmount();
304 void onFolderContentChanged();
308 Fm::CachedFolderModel* folderModel_;
309 Fm::ProxyFolderModel* proxyModel_;
311 QVBoxLayout* verticalLayout;
312 std::shared_ptr<Fm::Folder> folder_;
313 QString statusText_[StatusTextNum];
314 Fm::BrowseHistory history_;
315 Fm::FilePath lastFolderPath_;
316 bool overrideCursor_;
318 QTimer* selectionTimer_;
324 #endif // FM_TABPAGE_H