mirror of
https://github.com/YACReader/yacreader
synced 2025-07-14 02:54:46 -04:00
Headless server: simplify system config logger
This commit is contained in:
108
YACReaderLibrary/yacreader_history_controller.cpp
Normal file
108
YACReaderLibrary/yacreader_history_controller.cpp
Normal file
@ -0,0 +1,108 @@
|
||||
#include "yacreader_history_controller.h"
|
||||
|
||||
YACReaderHistoryController::YACReaderHistoryController(QObject *parent) :
|
||||
QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void YACReaderHistoryController::clear()
|
||||
{
|
||||
currentFolderNavigation = 0;
|
||||
history.clear();
|
||||
history.append(YACReaderLibrarySourceContainer(QModelIndex(),YACReaderLibrarySourceContainer::Folder)); //root folder is always the first item
|
||||
|
||||
emit(enabledBackward(false));
|
||||
emit(enabledForward(false));
|
||||
}
|
||||
|
||||
void YACReaderHistoryController::backward()
|
||||
{
|
||||
if(currentFolderNavigation>0)
|
||||
{
|
||||
currentFolderNavigation--;
|
||||
emit(modelIndexSelected(history.at(currentFolderNavigation)));
|
||||
emit(enabledForward(true));
|
||||
}
|
||||
|
||||
if(currentFolderNavigation==0)
|
||||
emit(enabledBackward(false));
|
||||
}
|
||||
|
||||
void YACReaderHistoryController::forward()
|
||||
{
|
||||
if(currentFolderNavigation<history.count()-1)
|
||||
{
|
||||
currentFolderNavigation++;
|
||||
emit(modelIndexSelected(history.at(currentFolderNavigation)));
|
||||
emit(enabledBackward(true));
|
||||
}
|
||||
|
||||
if(currentFolderNavigation==history.count()-1)
|
||||
emit(enabledForward(false));
|
||||
}
|
||||
|
||||
void YACReaderHistoryController::updateHistory(const YACReaderLibrarySourceContainer &source)
|
||||
{
|
||||
//remove history from current index
|
||||
if(!source.sourceModelIndex.isValid() && history.count() == 1)
|
||||
return;
|
||||
|
||||
int numElementsToRemove = history.count() - (currentFolderNavigation+1);
|
||||
while(numElementsToRemove>0)
|
||||
{
|
||||
numElementsToRemove--;
|
||||
history.removeLast();
|
||||
}
|
||||
|
||||
if(source!=history.at(currentFolderNavigation))
|
||||
{
|
||||
history.append(source);
|
||||
|
||||
emit(enabledBackward(true));
|
||||
currentFolderNavigation++;
|
||||
}
|
||||
|
||||
emit(enabledForward(false));
|
||||
}
|
||||
|
||||
YACReaderLibrarySourceContainer YACReaderHistoryController::lastSourceContainer()
|
||||
{
|
||||
return history.last();
|
||||
}
|
||||
|
||||
YACReaderLibrarySourceContainer YACReaderHistoryController::currentSourceContainer()
|
||||
{
|
||||
return history.at(currentFolderNavigation);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
YACReaderLibrarySourceContainer::YACReaderLibrarySourceContainer()
|
||||
:sourceModelIndex(QModelIndex()),type(None)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
YACReaderLibrarySourceContainer::YACReaderLibrarySourceContainer(const QModelIndex &sourceModelIndex, YACReaderLibrarySourceContainer::SourceType type)
|
||||
:sourceModelIndex(sourceModelIndex),type(type)
|
||||
{}
|
||||
|
||||
QModelIndex YACReaderLibrarySourceContainer::getSourceModelIndex() const
|
||||
{
|
||||
return sourceModelIndex;
|
||||
}
|
||||
|
||||
YACReaderLibrarySourceContainer::SourceType YACReaderLibrarySourceContainer::getType() const
|
||||
{
|
||||
return type;
|
||||
}
|
||||
|
||||
bool YACReaderLibrarySourceContainer::operator==(const YACReaderLibrarySourceContainer &other) const
|
||||
{
|
||||
return sourceModelIndex == other.sourceModelIndex && type == other.type;
|
||||
}
|
||||
|
||||
bool YACReaderLibrarySourceContainer::operator!=(const YACReaderLibrarySourceContainer &other) const
|
||||
{
|
||||
return !(*this == other);
|
||||
}
|
Reference in New Issue
Block a user