void GPSSearchView::doLoadState() { KConfigGroup group = getConfigGroup(); if (group.hasKey(entryName(d->configSplitterStateEntry))) { const QByteArray splitterState = QByteArray::fromBase64(group.readEntry(entryName(d->configSplitterStateEntry), QByteArray())); if (!splitterState.isEmpty()) { d->splitter->restoreState(splitterState); } } d->sortOrderOptionsHelper->setSortOptions(GPSImageInfoSorter::SortOptions(group.readEntry(entryName(QLatin1String("Sort Order")), int(d->sortOrderOptionsHelper->getSortOptions())))); const KConfigGroup groupMapWidget = KConfigGroup(&group, entryName(QLatin1String("GPSSearch Map Widget"))); d->mapSearchWidget->readSettingsFromGroup(&groupMapWidget); d->searchTreeView->loadState(); AlbumManager::instance()->setCurrentAlbums(QList<Album*>()); d->searchTreeView->clearSelection(); }
void AlbumLabelsTreeView::doLoadState() { d->isLoadingState = true; KConfigGroup configGroup = getConfigGroup(); const QList<int> expansion = configGroup.readEntry(entryName(d->configExpansionEntry), QList<int>()); const QList<int> selectedRatings = configGroup.readEntry(entryName(d->configRatingSelectionEntry), QList<int>()); const QList<int> selectedPicks = configGroup.readEntry(entryName(d->configPickSelectionEntry), QList<int>()); const QList<int> selectedColors = configGroup.readEntry(entryName(d->configColorSelectionEntry), QList<int>()); d->ratings->setExpanded(true); d->picks->setExpanded(true); d->colors->setExpanded(true); foreach (int parent, expansion) { switch (parent) { case 1: d->ratings->setExpanded(false); break; case 2: d->picks->setExpanded(false); break; case 3: d->colors->setExpanded(false); default: break; } } foreach (int rating, selectedRatings) { d->ratings->child(rating)->setSelected(true); }
void SearchTextBar::doLoadState() { KConfigGroup group = getConfigGroup(); completer()->setCompletionMode((QCompleter::CompletionMode)group.readEntry(entryName(d->optionAutoCompletionModeEntry), (int)QCompleter::PopupCompletion)); d->settings.caseSensitive = (Qt::CaseSensitivity)group.readEntry(entryName(d->optionCaseSensitiveEntry), (int)Qt::CaseInsensitive); setIgnoreCase(d->settings.caseSensitive == Qt::CaseInsensitive); }
void TagCheckView::doSaveState() { TagFolderView::doSaveState(); KConfigGroup group = getConfigGroup(); group.writeEntry(entryName(d->configToggleAutoTagsEntry), (int)(d->toggleAutoTags)); group.sync(); }
void TagCheckView::doLoadState() { TagFolderView::doLoadState(); KConfigGroup group = getConfigGroup(); d->toggleAutoTags = (ToggleAutoTags) (group.readEntry(entryName(d->configToggleAutoTagsEntry), (int)NoToggleAuto)); }
void MapWidgetView::doLoadState() { KConfigGroup group = getConfigGroup(); d->gpsItemInfoSorter->setSortOptions(GPSItemInfoSorter::SortOptions(group.readEntry(QLatin1String("Sort Order"), int(d->gpsItemInfoSorter->getSortOptions())))); const KConfigGroup groupCentralMap = KConfigGroup(&group, QLatin1String("Central Map Widget")); d->mapWidget->readSettingsFromGroup(&groupCentralMap); }
void MapWidgetView::doSaveState() { KConfigGroup group = getConfigGroup(); group.writeEntry(QLatin1String("Sort Order"), int(d->gpsImageInfoSorter->getSortOptions())); KConfigGroup groupCentralMap = KConfigGroup(&group, QLatin1String("Central Map Widget")); d->mapWidget->saveSettingsToGroup(&groupCentralMap); group.sync(); }
void TimelineSideBarWidget::doSaveState() { KConfigGroup group = getConfigGroup(); group.writeEntry(d->configHistogramTimeUnitEntry, d->timeUnitCB->currentIndex()); group.writeEntry(d->configHistogramScaleEntry, d->scaleBG->checkedId()); group.writeEntry(d->configCursorPositionEntry, d->timeLineWidget->cursorDateTime()); d->timeLineFolderView->saveState(); group.sync(); }
PeopleSideBarWidget::PeopleSideBarWidget(QWidget* parent, TagModel* model, SearchModificationHelper* searchModificationHelper) : SidebarWidget(parent), d(new PeopleSideBarWidgetPriv) { setObjectName("People Sidebar"); d->tagModel = model; d->searchModificationHelper = searchModificationHelper; QVBoxLayout* layout = new QVBoxLayout; QHBoxLayout* hlay = new QHBoxLayout; d->tagFolderView = new TagFolderView(this, model); d->tagFolderView->setConfigGroup(getConfigGroup()); d->tagFolderView->setExpandNewCurrentItem(true); d->tagFolderView->setAlbumManagerCurrentAlbum(true); d->tagFolderView->filteredModel()->listOnlyTagsWithProperty("person"); d->tagFolderView->filteredModel()->setFilterBehavior(AlbumFilterModel::StrictFiltering); d->tagSearchBar = new SearchTextBar(this, "DigikamViewPeopleSearchBar"); d->tagSearchBar->setHighlightOnResult(true); d->tagSearchBar->setModel(d->tagFolderView->filteredModel(), AbstractAlbumModel::AlbumIdRole, AbstractAlbumModel::AlbumTitleRole); d->tagSearchBar->setFilterModel(d->tagFolderView->albumFilterModel()); d->rescanButton = new QPushButton; d->rescanButton->setText("Scan collection for faces"); QString s("user-identity"); KIcon* icon = new KIcon(s); QPixmap personPix = icon->pixmap(QSize(48, 48)); d->personIcon = new QLabel; d->personIcon->setPixmap(personPix); d->textLabel = new QLabel("People Tags"); hlay->addWidget(d->personIcon); hlay->addWidget(d->textLabel); layout->addLayout(hlay); layout->addWidget(d->rescanButton); layout->addWidget(d->tagFolderView); layout->addWidget(d->tagSearchBar); setLayout(layout); connect(d->tagFolderView, SIGNAL(signalFindDuplicatesInAlbum(Album*)), this, SIGNAL(signalFindDuplicatesInAlbum(Album*))); connect(d->rescanButton, SIGNAL(pressed()), this, SIGNAL( signalDetectFaces() ) ); }
void GPSSearchView::doSaveState() { KConfigGroup group = getConfigGroup(); group.writeEntry(entryName(d->configSplitterStateEntry), d->splitter->saveState().toBase64()); group.writeEntry(entryName(QLatin1String("Sort Order")), int(d->sortOrderOptionsHelper->getSortOptions())); KConfigGroup groupMapWidget = KConfigGroup(&group, entryName(QLatin1String("GPSSearch Map Widget"))); d->mapSearchWidget->saveSettingsToGroup(&groupMapWidget); d->searchTreeView->saveState(); group.sync(); }
DateFolderViewSideBarWidget::DateFolderViewSideBarWidget(QWidget* parent, DateAlbumModel* model, ImageAlbumFilterModel* imageFilterModel) : SidebarWidget(parent), d(new DateFolderViewSideBarWidgetPriv) { setObjectName("DateFolderView Sidebar"); QVBoxLayout* layout = new QVBoxLayout(this); d->dateFolderView = new DateFolderView(this, model); d->dateFolderView->setConfigGroup(getConfigGroup()); d->dateFolderView->setImageModel(imageFilterModel); layout->addWidget(d->dateFolderView); }
void SearchTextBar::doSaveState() { KConfigGroup group = getConfigGroup(); if (completer()->completionMode() != QCompleter::PopupCompletion) { group.writeEntry(entryName(d->optionAutoCompletionModeEntry), (int)completer()->completionMode()); } else { group.deleteEntry(entryName(d->optionAutoCompletionModeEntry)); } group.writeEntry(entryName(d->optionCaseSensitiveEntry), (int)d->settings.caseSensitive); group.sync(); }
void ImagePropertiesSideBar::doSaveState() { Sidebar::doSaveState(); KConfigGroup group = getConfigGroup(); m_propertiesTab->writeSettings(group); #ifdef HAVE_MARBLE KConfigGroup groupGPSTab = KConfigGroup(&group, entryName(QLatin1String("GPS Properties Tab"))); m_gpsTab->writeSettings(groupGPSTab); #endif // HAVE_MARBLE KConfigGroup groupColorTab = KConfigGroup(&group, entryName(QLatin1String("Color Properties Tab"))); m_colorTab->writeSettings(groupColorTab); KConfigGroup groupMetadataTab = KConfigGroup(&group, entryName(QLatin1String("Metadata Properties Tab"))); m_metadataTab->writeSettings(groupMetadataTab); }
void ImagePropertiesSideBarCamGui::doLoadState() { /// @todo This code is taken from ImagePropertiesSideBar::doLoadState() /// Ideally ImagePropertiesSideBarCamGui should be a subclass of /// ImagePropertiesSideBar Sidebar::doLoadState(); KConfigGroup group = getConfigGroup(); KConfigGroup groupCameraItemTab = KConfigGroup(&group, entryName(QLatin1String("Camera Item Properties Tab"))); d->cameraItemTab->readSettings(groupCameraItemTab); #ifdef HAVE_MARBLE KConfigGroup groupGPSTab = KConfigGroup(&group, entryName(QLatin1String("GPS Properties Tab"))); d->gpsTab->readSettings(groupGPSTab); #endif // HAVE_MARBLE const KConfigGroup groupMetadataTab = KConfigGroup(&group, entryName(QLatin1String("Metadata Properties Tab"))); d->metadataTab->readSettings(groupMetadataTab); }
FuzzySearchSideBarWidget::FuzzySearchSideBarWidget(QWidget* parent, SearchModel* searchModel, SearchModificationHelper* searchModificationHelper) : SidebarWidget(parent), d(new FuzzySearchSideBarWidgetPriv) { setObjectName("Fuzzy Search Sidebar"); d->searchModel = searchModel; d->fuzzySearchView = new FuzzySearchView(searchModel, searchModificationHelper, this); d->fuzzySearchView->setConfigGroup(getConfigGroup()); QVBoxLayout* layout = new QVBoxLayout(this); layout->addWidget(d->fuzzySearchView); connect(d->fuzzySearchView, SIGNAL(signalUpdateFingerPrints()), this, SIGNAL(signalUpdateFingerPrints())); connect(d->fuzzySearchView, SIGNAL(signalGenerateFingerPrintsFirstTime()), this, SIGNAL(signalGenerateFingerPrintsFirstTime())); }
void ImagePropertiesSideBar::doLoadState() { Sidebar::doLoadState(); /// @todo m_propertiesTab should load its settings from our group m_propertiesTab->setObjectName(QLatin1String("Image Properties SideBar Expander")); KConfigGroup group = getConfigGroup(); m_propertiesTab->readSettings(group); #ifdef HAVE_MARBLE const KConfigGroup groupGPSTab = KConfigGroup(&group, entryName(QLatin1String("GPS Properties Tab"))); m_gpsTab->readSettings(groupGPSTab); #endif // HAVE_MARBLE const KConfigGroup groupColorTab = KConfigGroup(&group, entryName(QLatin1String("Color Properties Tab"))); m_colorTab->readSettings(groupColorTab); const KConfigGroup groupMetadataTab = KConfigGroup(&group, entryName(QLatin1String("Metadata Properties Tab"))); m_metadataTab->readSettings(groupMetadataTab); }
SearchSideBarWidget::SearchSideBarWidget(QWidget* parent, SearchModel* searchModel, SearchModificationHelper* searchModeificationHelper) : SidebarWidget(parent), d(new SearchSideBarWidgetPriv) { setObjectName("Search Sidebar"); d->searchModel = searchModel; QVBoxLayout* layout = new QVBoxLayout(this); d->searchTabHeader = new SearchTabHeader(this); d->searchTreeView = new NormalSearchTreeView(this, searchModel, searchModeificationHelper); d->searchTreeView->setConfigGroup(getConfigGroup()); d->searchTreeView->filteredModel()->listNormalSearches(); d->searchTreeView->filteredModel()->setListTemporarySearches(true); d->searchTreeView->setAlbumManagerCurrentAlbum(true); d->searchSearchBar = new SearchTextBar(this, "DigikamViewSearchSearchBar"); d->searchSearchBar->setModel(d->searchTreeView->filteredModel(), AbstractAlbumModel::AlbumIdRole, AbstractAlbumModel::AlbumTitleRole); d->searchSearchBar->setFilterModel(d->searchTreeView->albumFilterModel()); layout->addWidget(d->searchTabHeader); layout->addWidget(d->searchTreeView); layout->setStretchFactor(d->searchTreeView, 1); layout->addWidget(d->searchSearchBar); connect(d->searchTreeView, SIGNAL(newSearch()), d->searchTabHeader, SLOT(newAdvancedSearch())); connect(d->searchTreeView, SIGNAL(editSearch(SAlbum*)), d->searchTabHeader, SLOT(editSearch(SAlbum*))); connect(d->searchTreeView, SIGNAL(currentAlbumChanged(Album*)), d->searchTabHeader, SLOT(selectedSearchChanged(Album*))); connect(d->searchTabHeader, SIGNAL(searchShallBeSelected(SAlbum*)), d->searchTreeView, SLOT(setCurrentAlbum(SAlbum*))); }
GPSSearchSideBarWidget::GPSSearchSideBarWidget(QWidget* parent, SearchModel* searchModel, SearchModificationHelper* searchModificationHelper, ImageFilterModel* imageFilterModel, QItemSelectionModel* itemSelectionModel) : SidebarWidget(parent), d(new GPSSearchSideBarWidgetPriv) { setObjectName("GPS Search Sidebar"); d->searchModel = searchModel; d->gpsSearchView = new GPSSearchView(this, searchModel, searchModificationHelper, imageFilterModel, itemSelectionModel); d->gpsSearchView->setConfigGroup(getConfigGroup()); QScrollArea *scrollArea = new QScrollArea(this); QVBoxLayout* layout = new QVBoxLayout(this); layout->addWidget(scrollArea); scrollArea->setWidget(d->gpsSearchView); scrollArea->setWidgetResizable(true); connect(d->gpsSearchView, SIGNAL(signalMapSoloItems(const QList<qlonglong>&, const QString&)), this, SIGNAL(signalMapSoloItems(const QList<qlonglong>&, const QString&))); }
void TimelineSideBarWidget::doLoadState() { KConfigGroup group = getConfigGroup(); d->timeUnitCB->setCurrentIndex(group.readEntry(d->configHistogramTimeUnitEntry, (int)TimeLineWidget::Month)); slotTimeUnitChanged(d->timeUnitCB->currentIndex()); int id = group.readEntry(d->configHistogramScaleEntry, (int)TimeLineWidget::LinScale); if ( d->scaleBG->button( id ) ) { d->scaleBG->button( id )->setChecked(true); } slotScaleChanged(d->scaleBG->checkedId()); QDateTime now = QDateTime::currentDateTime(); d->timeLineWidget->setCursorDateTime(group.readEntry(d->configCursorPositionEntry, now)); d->timeLineWidget->setCurrentIndex(d->timeLineWidget->indexForCursorDateTime()); d->timeLineFolderView->loadState(); }
TagViewSideBarWidget::TagViewSideBarWidget(QWidget* parent, TagModel* model) : SidebarWidget(parent), d(new TagViewSideBarWidgetPriv) { setObjectName("TagView Sidebar"); d->tagModel = model; QVBoxLayout* layout = new QVBoxLayout(this); d->tagFolderView = new TagFolderView(this, model); d->tagFolderView->setConfigGroup(getConfigGroup()); d->tagFolderView->setExpandNewCurrentItem(true); d->tagFolderView->setAlbumManagerCurrentAlbum(true); d->tagSearchBar = new SearchTextBar(this, "DigikamViewTagSearchBar"); d->tagSearchBar->setHighlightOnResult(true); d->tagSearchBar->setModel(model, AbstractAlbumModel::AlbumIdRole, AbstractAlbumModel::AlbumTitleRole); d->tagSearchBar->setFilterModel(d->tagFolderView->albumFilterModel()); layout->addWidget(d->tagFolderView); layout->addWidget(d->tagSearchBar); connect(d->tagFolderView, SIGNAL(signalFindDuplicatesInAlbum(Album*)), this, SIGNAL(signalFindDuplicatesInAlbum(Album*))); }
TimelineSideBarWidget::TimelineSideBarWidget(QWidget* parent, SearchModel* searchModel, SearchModificationHelper* searchModificationHelper) : SidebarWidget(parent), d(new TimelineSideBarWidgetPriv) { setObjectName("TimeLine Sidebar"); d->searchModificationHelper = searchModificationHelper; d->timer = new QTimer(this); setAttribute(Qt::WA_DeleteOnClose); QVBoxLayout* vlay = new QVBoxLayout(this); QFrame* panel = new QFrame(this); panel->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken); panel->setLineWidth(1); QGridLayout* grid = new QGridLayout(panel); // --------------------------------------------------------------- QWidget* hbox1 = new QWidget(panel); QHBoxLayout* hlay = new QHBoxLayout(hbox1); QLabel* label1 = new QLabel(i18n("Time Unit:"), hbox1); d->timeUnitCB = new KComboBox(hbox1); d->timeUnitCB->addItem(i18n("Day"), TimeLineWidget::Day); d->timeUnitCB->addItem(i18n("Week"), TimeLineWidget::Week); d->timeUnitCB->addItem(i18n("Month"), TimeLineWidget::Month); d->timeUnitCB->addItem(i18n("Year"), TimeLineWidget::Year); d->timeUnitCB->setCurrentIndex((int)TimeLineWidget::Month); d->timeUnitCB->setFocusPolicy(Qt::NoFocus); d->timeUnitCB->setWhatsThis(i18n("<p>Select the histogram time unit.</p>" "<p>You can change the graph decade to zoom in or zoom out over time.</p>")); QWidget* scaleBox = new QWidget(hbox1); QHBoxLayout* hlay2 = new QHBoxLayout(scaleBox); d->scaleBG = new QButtonGroup(scaleBox); d->scaleBG->setExclusive(true); scaleBox->setWhatsThis( i18n("<p>Select the histogram scale.</p>" "<p>If the date's maximal counts are small, you can use the linear scale.</p>" "<p>Logarithmic scale can be used when the maximal counts are big; " "if it is used, all values (small and large) will be visible on the " "graph.</p>")); QToolButton* linHistoButton = new QToolButton(scaleBox); linHistoButton->setToolTip( i18n( "Linear" ) ); linHistoButton->setIcon(KIcon("view-object-histogram-linear")); linHistoButton->setCheckable(true); d->scaleBG->addButton(linHistoButton, TimeLineWidget::LinScale); QToolButton* logHistoButton = new QToolButton(scaleBox); logHistoButton->setToolTip( i18n( "Logarithmic" ) ); logHistoButton->setIcon(KIcon("view-object-histogram-logarithmic")); logHistoButton->setCheckable(true); d->scaleBG->addButton(logHistoButton, TimeLineWidget::LogScale); hlay2->setMargin(0); hlay2->setSpacing(0); hlay2->addWidget(linHistoButton); hlay2->addWidget(logHistoButton); hlay->setMargin(0); hlay->setSpacing(KDialog::spacingHint()); hlay->addWidget(label1); hlay->addWidget(d->timeUnitCB); hlay->addItem(new QSpacerItem(10, 10, QSizePolicy::Expanding, QSizePolicy::Minimum)); hlay->addWidget(scaleBox); // --------------------------------------------------------------- d->timeLineWidget = new TimeLineWidget(panel); d->scrollBar = new QScrollBar(panel); d->scrollBar->setOrientation(Qt::Horizontal); d->scrollBar->setMinimum(0); d->scrollBar->setSingleStep(1); d->cursorDateLabel = new KSqueezedTextLabel(0, panel); d->cursorCountLabel = new QLabel(panel); d->cursorCountLabel->setAlignment(Qt::AlignRight); // --------------------------------------------------------------- KHBox* hbox2 = new KHBox(panel); hbox2->setMargin(0); hbox2->setSpacing(KDialog::spacingHint()); d->resetButton = new QToolButton(hbox2); d->resetButton->setIcon(SmallIcon("document-revert")); d->resetButton->setToolTip(i18n("Clear current selection")); d->resetButton->setWhatsThis(i18n("If you press this button, the current date selection on the time-line will be cleared.")); d->nameEdit = new KLineEdit(hbox2); d->nameEdit->setClearButtonShown(true); d->nameEdit->setWhatsThis(i18n("Enter the name of the current dates search to save in the " "\"My Date Searches\" view")); d->saveButton = new QToolButton(hbox2); d->saveButton->setIcon(SmallIcon("document-save")); d->saveButton->setEnabled(false); d->saveButton->setToolTip(i18n("Save current selection to a new virtual Album")); d->saveButton->setWhatsThis(i18n("If you press this button, the dates selected on the time-line will be " "saved to a new search virtual Album using the name set on the left.")); // --------------------------------------------------------------- grid->addWidget(hbox1, 0, 0, 1, 4); grid->addWidget(d->cursorDateLabel, 1, 0, 1, 3); grid->addWidget(d->cursorCountLabel, 1, 3, 1, 1); grid->addWidget(d->timeLineWidget, 2, 0, 1, 4); grid->addWidget(d->scrollBar, 3, 0, 1, 4); grid->addWidget(hbox2, 4, 0, 1, 4); grid->setColumnStretch(2, 10); grid->setMargin(KDialog::spacingHint()); grid->setSpacing(KDialog::spacingHint()); // --------------------------------------------------------------- d->timeLineFolderView = new EditableSearchTreeView(this, searchModel, searchModificationHelper); d->timeLineFolderView->setConfigGroup(getConfigGroup()); d->timeLineFolderView->filteredModel()->listTimelineSearches(); d->timeLineFolderView->filteredModel()->setListTemporarySearches(false); d->timeLineFolderView->setAlbumManagerCurrentAlbum(true); d->searchDateBar = new SearchTextBar(this, "TimeLineViewSearchDateBar"); d->searchDateBar->setModel(d->timeLineFolderView->filteredModel(), AbstractAlbumModel::AlbumIdRole, AbstractAlbumModel::AlbumTitleRole); d->searchDateBar->setFilterModel(d->timeLineFolderView->albumFilterModel()); vlay->addWidget(panel); vlay->addWidget(d->timeLineFolderView); vlay->addItem(new QSpacerItem(KDialog::spacingHint(), KDialog::spacingHint(), QSizePolicy::Minimum, QSizePolicy::Minimum)); vlay->addWidget(d->searchDateBar); vlay->setMargin(0); vlay->setSpacing(0); // --------------------------------------------------------------- connect(AlbumManager::instance(), SIGNAL(signalDatesMapDirty(const QMap<QDateTime, int>&)), d->timeLineWidget, SLOT(slotDatesMap(const QMap<QDateTime, int>&))); connect(d->timeLineFolderView, SIGNAL(currentAlbumChanged(Album*)), this, SLOT(slotAlbumSelected(Album*))); connect(d->timeUnitCB, SIGNAL(activated(int)), this, SLOT(slotTimeUnitChanged(int))); connect(d->scaleBG, SIGNAL(buttonReleased(int)), this, SLOT(slotScaleChanged(int))); connect(d->timeLineWidget, SIGNAL(signalDateMapChanged()), this, SLOT(slotInit())); connect(d->timeLineWidget, SIGNAL(signalCursorPositionChanged()), this, SLOT(slotCursorPositionChanged())); connect(d->timeLineWidget, SIGNAL(signalSelectionChanged()), this, SLOT(slotSelectionChanged())); connect(d->timeLineWidget, SIGNAL(signalRefDateTimeChanged()), this, SLOT(slotRefDateTimeChanged())); connect(d->timer, SIGNAL(timeout()), this, SLOT(slotUpdateCurrentDateSearchAlbum())); connect(d->resetButton, SIGNAL(clicked()), this, SLOT(slotResetSelection())); connect(d->saveButton, SIGNAL(clicked()), this, SLOT(slotSaveSelection())); connect(d->scrollBar, SIGNAL(valueChanged(int)), this, SLOT(slotScrollBarValueChanged(int))); connect(d->nameEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotCheckAboutSelection())); connect(d->nameEdit, SIGNAL(returnPressed(const QString&)), d->saveButton, SLOT(animateClick())); }