File indexing completed on 2024-05-19 12:06:05
0001 /* SPDX-FileCopyrightText: 2003-2010 Jesper K. Pedersen <blackie@kde.org> 0002 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #include "CategoryPage.h" 0007 0008 #include "BrowserWidget.h" 0009 #include "FlatCategoryModel.h" 0010 #include "ImageViewPage.h" 0011 #include "OverviewPage.h" 0012 #include "TreeCategoryModel.h" 0013 #include "enums.h" 0014 0015 #include <DB/ImageDB.h> 0016 0017 #include <KLocalizedString> 0018 0019 Browser::CategoryPage::CategoryPage(const DB::CategoryPtr &category, const DB::ImageSearchInfo &info, BrowserWidget *browser) 0020 : BrowserPage(info, browser) 0021 , m_category(category) 0022 , m_model(nullptr) 0023 { 0024 } 0025 0026 void Browser::CategoryPage::activate() 0027 { 0028 delete m_model; 0029 if (m_category->viewType() == DB::Category::TreeView || m_category->viewType() == DB::Category::ThumbedTreeView) 0030 m_model = new TreeCategoryModel(m_category, searchInfo()); 0031 else 0032 m_model = new FlatCategoryModel(m_category, searchInfo()); 0033 0034 browser()->setModel(m_model); 0035 } 0036 0037 Browser::BrowserPage *Browser::CategoryPage::activateChild(const QModelIndex &index) 0038 { 0039 const QString name = m_model->data(index, ItemNameRole).value<QString>(); 0040 DB::ImageSearchInfo info = searchInfo(); 0041 0042 info.addAnd(m_category->name(), name); 0043 if (DB::ImageDB::instance()->search(info).size() <= Settings::SettingsData::instance()->autoShowThumbnailView()) { 0044 browser()->addAction(new Browser::OverviewPage(Breadcrumb(name), info, browser())); 0045 return new ImageViewPage(info, browser()); 0046 } else 0047 return new Browser::OverviewPage(Breadcrumb(name), info, browser()); 0048 } 0049 0050 DB::CategoryPtr Browser::CategoryPage::category() const 0051 { 0052 return m_category; 0053 } 0054 0055 DB::Category::ViewType Browser::CategoryPage::viewType() const 0056 { 0057 return m_category->viewType(); 0058 } 0059 0060 bool Browser::CategoryPage::isViewChangeable() const 0061 { 0062 return true; 0063 } 0064 0065 // vi:expandtab:tabstop=4 shiftwidth=4: