fixed a bunch of issues related to new document mode

preferencesAboutTextFull
Clément Fauconnier 6 years ago
parent 1432af6970
commit b94ec80753
  1. 4
      src/board/UBBoardController.cpp
  2. 1
      src/board/UBBoardController.h
  3. 60
      src/document/UBDocumentController.cpp
  4. 2
      src/document/UBDocumentController.h
  5. 4
      src/frameworks/UBStringUtils.cpp

@ -1840,6 +1840,10 @@ int UBBoardController::activeSceneIndex() const
return mActiveSceneIndex; return mActiveSceneIndex;
} }
void UBBoardController::setActiveSceneIndex(int i)
{
mActiveSceneIndex = i;
}
void UBBoardController::documentSceneChanged(UBDocumentProxy* pDocumentProxy, int pIndex) void UBBoardController::documentSceneChanged(UBDocumentProxy* pDocumentProxy, int pIndex)
{ {

@ -79,6 +79,7 @@ class UBBoardController : public UBDocumentContainer
UBGraphicsScene* activeScene() const; UBGraphicsScene* activeScene() const;
int activeSceneIndex() const; int activeSceneIndex() const;
void setActiveSceneIndex(int i);
QSize displayViewport(); QSize displayViewport();
QSize controlViewport(); QSize controlViewport();
QRectF controlGeometry(); QRectF controlGeometry();

@ -456,9 +456,9 @@ QVariant UBDocumentTreeModel::data(const QModelIndex &index, int role) const
QDateTime d; QDateTime d;
if(index.column() == 1){ if(index.column() == 1){
d = proxy->metaData(UBSettings::documentDate).toDateTime(); d = proxy->documentDate();
}else if(index.column() == 2){ }else if(index.column() == 2){
d = proxy->metaData(UBSettings::documentUpdatedAt).toDateTime(); d = proxy->lastUpdate();
} }
displayText = d.toString("dd/MM/yyyy hh:mm"); displayText = d.toString("dd/MM/yyyy hh:mm");
@ -1571,15 +1571,13 @@ void UBDocumentTreeItemDelegate::processChangedText(const QString &str) const
bool UBDocumentTreeItemDelegate::validateString(const QString &str) const bool UBDocumentTreeItemDelegate::validateString(const QString &str) const
{ {
return QRegExp("[^\\/\\:\\?\\*\\|\\<\\>\\\"]{1,}").exactMatch(str) return !mExistingFileNames.contains(str);
&& !mExistingFileNames.contains(str);
} }
QWidget *UBDocumentTreeItemDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const QWidget *UBDocumentTreeItemDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
{ {
Q_UNUSED(option); Q_UNUSED(option);
//N/C - NNE - 20140407 : Add the test for the index column. //N/C - NNE - 20140407 : Add the test for the index column.
if(index.column() == 0){ if(index.column() == 0){
mExistingFileNames.clear(); mExistingFileNames.clear();
@ -2055,9 +2053,13 @@ void UBDocumentController::sortDocuments(int kind, int order)
if(kind == UBDocumentController::CreationDate){ if(kind == UBDocumentController::CreationDate){
mSortFilterProxyModel->setSortRole(UBDocumentTreeModel::CreationDate); mSortFilterProxyModel->setSortRole(UBDocumentTreeModel::CreationDate);
mSortFilterProxyModel->sort(1, sortOrder); mSortFilterProxyModel->sort(1, sortOrder);
mDocumentUI->documentTreeView->showColumn(1);
mDocumentUI->documentTreeView->hideColumn(2);
}else if(kind == UBDocumentController::UpdateDate){ }else if(kind == UBDocumentController::UpdateDate){
mSortFilterProxyModel->setSortRole(UBDocumentTreeModel::UpdateDate); mSortFilterProxyModel->setSortRole(UBDocumentTreeModel::UpdateDate);
mSortFilterProxyModel->sort(2, sortOrder); mSortFilterProxyModel->sort(2, sortOrder);
mDocumentUI->documentTreeView->hideColumn(1);
mDocumentUI->documentTreeView->showColumn(2);
}else{ }else{
mSortFilterProxyModel->setSortRole(Qt::DisplayRole); mSortFilterProxyModel->setSortRole(Qt::DisplayRole);
mSortFilterProxyModel->sort(0, sortOrder); mSortFilterProxyModel->sort(0, sortOrder);
@ -2550,9 +2552,16 @@ void UBDocumentController::importFile()
QApplication::processEvents(); QApplication::processEvents();
QFile selectedFile(filePath); QFile selectedFile(filePath);
QString groupName = UBPersistenceManager::myDocumentsName; UBDocumentTreeModel *docModel = UBPersistenceManager::persistenceManager()->mDocumentTreeStructureModel;
groupName = ""; QModelIndex selectedIndex = firstSelectedTreeIndex();
QString groupName = "";
if (selectedIndex.isValid())
{
groupName = docModel->isCatalog(selectedIndex)
? docModel->virtualPathForIndex(selectedIndex)
: docModel->virtualDirForIndex(selectedIndex);
}
showMessage(tr("Importing file %1...").arg(fileInfo.baseName()), true); showMessage(tr("Importing file %1...").arg(fileInfo.baseName()), true);
@ -2800,9 +2809,8 @@ void UBDocumentController::addToDocument()
void UBDocumentController::renameSelectedItem() void UBDocumentController::renameSelectedItem()
{ {
QModelIndex selectedIndex = firstSelectedTreeIndex(); if (mDocumentUI->documentTreeView->currentIndex().isValid()) {
if (selectedIndex.isValid()) { mDocumentUI->documentTreeView->edit(mDocumentUI->documentTreeView->currentIndex());
mDocumentUI->documentTreeView->edit(selectedIndex);
} }
} }
@ -3159,6 +3167,11 @@ void UBDocumentController::deletePages(QList<QGraphicsItem *> itemsToDelete)
foreach (int i, sceneIndexes) foreach (int i, sceneIndexes)
minIndex = qMin(i, minIndex); minIndex = qMin(i, minIndex);
if (mBoardController->activeSceneIndex() > minIndex)
{
mBoardController->setActiveSceneIndex(minIndex);
}
mDocumentUI->thumbnailWidget->selectItemAt(minIndex); mDocumentUI->thumbnailWidget->selectItemAt(minIndex);
mBoardController->setActiveDocumentScene(minIndex); mBoardController->setActiveDocumentScene(minIndex);
@ -3214,8 +3227,9 @@ UBDocumentController::deletionTypeForSelection(LastSelectedElementType pTypeSele
, const QModelIndex &selectedIndex , const QModelIndex &selectedIndex
, UBDocumentTreeModel *docModel) const , UBDocumentTreeModel *docModel) const
{ {
if (pTypeSelection == Page) { if (pTypeSelection == Page) {
if (!firstSceneSelected()) { if (!firstAndOnlySceneSelected()) {
return DeletePage; return DeletePage;
} }
} else if (docModel->isConstant(selectedIndex)) { } else if (docModel->isConstant(selectedIndex)) {
@ -3234,17 +3248,31 @@ UBDocumentController::deletionTypeForSelection(LastSelectedElementType pTypeSele
return NoDeletion; return NoDeletion;
} }
bool UBDocumentController::firstSceneSelected() const bool UBDocumentController::firstAndOnlySceneSelected() const
{ {
bool firstSceneSelected = false; bool firstSceneSelected = false;
QList<QGraphicsItem*> selection = mDocumentUI->thumbnailWidget->selectedItems(); QList<QGraphicsItem*> selection = mDocumentUI->thumbnailWidget->selectedItems();
for(int i = 0; i < selection.count() && !firstSceneSelected; i += 1){ for(int i = 0; i < selection.count() && !firstSceneSelected; i += 1)
if(dynamic_cast<UBSceneThumbnailPixmap*>(selection.at(i))->sceneIndex() == 0){ {
firstSceneSelected = true; UBSceneThumbnailPixmap* p = dynamic_cast<UBSceneThumbnailPixmap*>(selection.at(i));
if (p)
{
int pageCount = p->proxy()->pageCount();
if (pageCount > 1) //not the only scene
{
return false;
}
else
{
if (p->sceneIndex() == 0)
{
return true; //the first and only scene
}
}
} }
} }
return firstSceneSelected; return false;
} }
void UBDocumentController::refreshDocumentThumbnailsView(UBDocumentContainer*) void UBDocumentController::refreshDocumentThumbnailsView(UBDocumentContainer*)

@ -386,7 +386,7 @@ class UBDocumentController : public UBDocumentContainer
inline DeletionType deletionTypeForSelection(LastSelectedElementType pTypeSelection inline DeletionType deletionTypeForSelection(LastSelectedElementType pTypeSelection
, const QModelIndex &selectedIndex , const QModelIndex &selectedIndex
, UBDocumentTreeModel *docModel) const; , UBDocumentTreeModel *docModel) const;
bool firstSceneSelected() const; bool firstAndOnlySceneSelected() const;
QWidget *mainWidget() const {return mDocumentWidget;} QWidget *mainWidget() const {return mDocumentWidget;}
//issue 1629 - NNE - 20131212 //issue 1629 - NNE - 20131212

@ -122,7 +122,9 @@ QString UBStringUtils::toUtcIsoDateTime(const QDateTime& dateTime)
QDateTime UBStringUtils::fromUtcIsoDate(const QString& dateString) QDateTime UBStringUtils::fromUtcIsoDate(const QString& dateString)
{ {
return QDateTime::fromString(dateString,Qt::ISODate).toLocalTime(); QDateTime date = QDateTime::fromString(dateString, Qt::ISODate);
date.setTimeSpec(Qt::UTC);
return date.toLocalTime();
} }

Loading…
Cancel
Save