diff --git a/resources/etc/OpenBoard.css b/resources/etc/OpenBoard.css
index 891f767e..35245152 100644
--- a/resources/etc/OpenBoard.css
+++ b/resources/etc/OpenBoard.css
@@ -380,9 +380,3 @@ QLineEdit#ubWebBrowserLineEdit
padding: 2 2px;
background: white;
}
-
-QSplitter
-{
- background-color: #b3b3b3;
- width : 15px;
-
diff --git a/resources/forms/documents.ui b/resources/forms/documents.ui
index 0d62d5c2..af48a648 100644
--- a/resources/forms/documents.ui
+++ b/resources/forms/documents.ui
@@ -40,15 +40,8 @@
0
-
+
-
-
-
- Qt::Horizontal
-
-
- false
-
@@ -72,17 +65,11 @@
-
-
+
0
0
-
-
- 250
- 0
-
-
@@ -116,6 +103,8 @@
+
+ -
@@ -126,12 +115,6 @@
-
-
-
- 250
- 0
-
-
Qt::NoContextMenu
@@ -241,7 +224,6 @@
-
@@ -261,6 +243,8 @@
gui/UBDocumentTreeWidget.h
-
+
+
+
diff --git a/src/document/UBDocumentController.cpp b/src/document/UBDocumentController.cpp
index 94ec0188..795b42a4 100644
--- a/src/document/UBDocumentController.cpp
+++ b/src/document/UBDocumentController.cpp
@@ -103,9 +103,7 @@ void UBDocumentController::createNewDocument()
if (group)
{
- QString path = group->buildEntirePath();
-
- UBDocumentProxy *document = UBPersistenceManager::persistenceManager()->createDocument(path);
+ UBDocumentProxy *document = UBPersistenceManager::persistenceManager()->createDocument(group->groupName());
selectDocument(document);
}
@@ -189,38 +187,21 @@ void UBDocumentController::selectDocument(UBDocumentProxy* proxy, bool setAsCurr
}
}
-
-bool bullshitcode = true;
-
void UBDocumentController::createNewDocumentGroup()
{
- if(bullshitcode){
- mDocumentUI->documentTreeWidget->selectedItems().at(0)->setSelected(false);
- mDocumentUI->documentTreeWidget->topLevelItem(0)->setSelected(true);
- }
-
UBDocumentGroupTreeItem* docGroupItem = new UBDocumentGroupTreeItem(0); // deleted by the tree widget
int i = 1;
QString newFolderName = tr("New Folder");
while (allGroupNames().contains(newFolderName))
+ {
newFolderName = tr("New Folder") + " " + QVariant(i++).toString();
+ }
docGroupItem->setGroupName(newFolderName);
int trashIndex = mDocumentUI->documentTreeWidget->indexOfTopLevelItem(mTrashTi);
- UBDocumentGroupTreeItem* selected = selectedDocumentGroupTreeItem();
-
- QString parentGroupName("");
- if(selected->groupName().contains(mDefaultDocumentGroupName))
- mDocumentUI->documentTreeWidget->insertTopLevelItem(trashIndex, docGroupItem);
- else
- selected->addChild(docGroupItem);
- parentGroupName = docGroupItem->buildEntirePath();
-
- mMapOfPaths.insert(parentGroupName,docGroupItem);
-
-
+ mDocumentUI->documentTreeWidget->insertTopLevelItem(trashIndex, docGroupItem);
mDocumentUI->documentTreeWidget->setCurrentItem(docGroupItem);
mDocumentUI->documentTreeWidget->expandItem(docGroupItem);
}
@@ -312,7 +293,8 @@ void UBDocumentController::setupViews()
mDocumentUI->documentZoomSlider->setValue(thumbWidth);
mDocumentUI->thumbnailWidget->setThumbnailWidth(thumbWidth);
- connect(mDocumentUI->documentZoomSlider, SIGNAL(valueChanged(int)), this, SLOT(documentZoomSliderValueChanged(int)));
+ connect(mDocumentUI->documentZoomSlider, SIGNAL(valueChanged(int)), this,
+ SLOT(documentZoomSliderValueChanged(int)));
connect(mMainWindow->actionOpen, SIGNAL(triggered()), this, SLOT(openSelectedItem()));
connect(mMainWindow->actionNewFolder, SIGNAL(triggered()), this, SLOT(createNewDocumentGroup()));
@@ -630,38 +612,6 @@ void UBDocumentController::moveDocumentToTrash(UBDocumentGroupTreeItem* groupTi,
proxyTi->setFlags(proxyTi->flags() ^ Qt::ItemIsEditable);
}
-
-QList UBDocumentController::getProxies(QTreeWidgetItem* groupItem)
-{
- QList result;
-
- for(int i = 0; i < groupItem->childCount(); i += 1){
- UBDocumentProxyTreeItem* docProxy = dynamic_cast(groupItem->child(i));
- if(docProxy)
- result.append(docProxy);
- else
- result << getProxies(groupItem->child(i));
- }
-
- return result;
-}
-
-
-QList UBDocumentController::getGroupTreeItem(QTreeWidgetItem* groupItem)
-{
- QList result;
-
- for(int i = 0; i < groupItem->childCount(); i += 1){
- UBDocumentGroupTreeItem* group = dynamic_cast(groupItem->child(i));
- if(group)
- result.append(group);
- else
- result << getGroupTreeItem(groupItem->child(i));
- }
-
- return result;
-}
-
void UBDocumentController::moveFolderToTrash(UBDocumentGroupTreeItem* groupTi)
{
bool changeCurrentDocument = false;
@@ -675,9 +625,15 @@ void UBDocumentController::moveFolderToTrash(UBDocumentGroupTreeItem* groupTi)
}
}
+ QList toBeDeleted;
- QList toBeDeleted = getProxies(groupTi);
+ for (int i = 0; i < groupTi->childCount(); i++)
+ {
+ UBDocumentProxyTreeItem* proxyTi = dynamic_cast(groupTi->child(i));
+ if (proxyTi && proxyTi->proxy())
+ toBeDeleted << proxyTi;
+ }
for (int i = 0; i < toBeDeleted.count(); i++)
{
@@ -689,38 +645,21 @@ void UBDocumentController::moveFolderToTrash(UBDocumentGroupTreeItem* groupTi)
proxyTi->proxy()->setMetaData(UBSettings::documentGroupName, UBSettings::trashedDocumentGroupNamePrefix + oldGroupName);
UBPersistenceManager::persistenceManager()->persistDocumentMetadata(proxyTi->proxy());
- UBDocumentGroupTreeItem* parentDirectory = dynamic_cast(mMapOfPaths.value(oldGroupName));
- parentDirectory->removeChild(proxyTi);
+ groupTi->removeChild(proxyTi);
mTrashTi->addChild(proxyTi);
proxyTi->setFlags(proxyTi->flags() ^ Qt::ItemIsEditable);
showMessage(QString("%1 deleted").arg(groupTi->groupName()));
}
-
- QList dirToDelete = getGroupTreeItem(groupTi);
- for(int i = dirToDelete.count() - 1; i >= 0 ; i -= 1){
- UBDocumentGroupTreeItem* parent = dynamic_cast(dirToDelete.at(i)->parent());
- if(parent){
- mMapOfPaths.remove(dirToDelete.at(i)->buildEntirePath());
- parent->removeChild(dirToDelete.at(i));
- }
- }
-
-
// dont remove default group
if (!groupTi->isDefaultFolder())
{
int index = mDocumentUI->documentTreeWidget->indexOfTopLevelItem(groupTi);
if (index >= 0)
+ {
mDocumentUI->documentTreeWidget->takeTopLevelItem(index);
- else {
- UBDocumentGroupTreeItem* parent = dynamic_cast(groupTi->parent());
- if(parent){
- mMapOfPaths.remove(groupTi->buildEntirePath());
- parent->removeChild(groupTi);
- }
}
}
@@ -871,90 +810,109 @@ void UBDocumentController::documentZoomSliderValueChanged (int value)
}
-UBDocumentGroupTreeItem* UBDocumentController::getCommonGroupItem(QString &path)
-{
- QList paths = mMapOfPaths.keys();
-
- if(paths.count() == 0)
- return NULL;
-
- QString commonPath = path;
- do{
- if(paths.contains(commonPath))
- return mMapOfPaths.value(commonPath);
- else{
- int lastSeparatorIndex = commonPath.lastIndexOf("/");
- if(lastSeparatorIndex>0)
- commonPath = commonPath.left(lastSeparatorIndex);
- else
- commonPath = "";
- }
- }while(commonPath.length() > 0);
-
- return NULL;
-}
-
void UBDocumentController::loadDocumentProxies()
{
QList > proxies = UBPersistenceManager::persistenceManager()->documentProxies;
+ QStringList emptyGroupNames = UBSettings::settings()->value("Document/EmptyGroupNames", QStringList()).toStringList();
mDocumentUI->documentTreeWidget->clear();
- UBDocumentGroupTreeItem* emptyGroupNameTi = new UBDocumentGroupTreeItem(0, false);
- emptyGroupNameTi->setGroupName(mDefaultDocumentGroupName);
- emptyGroupNameTi->setIcon(0, QIcon(":/images/toolbar/documents.png"));
- mMapOfPaths.insert(mDefaultDocumentGroupName,emptyGroupNameTi);
+ QMap groupNamesMap;
+
+ UBDocumentGroupTreeItem* emptyGroupNameTi = 0;
mTrashTi = new UBDocumentGroupTreeItem(0, false); // deleted by the tree widget
mTrashTi->setGroupName(mDocumentTrashGroupName);
mTrashTi->setIcon(0, QIcon(":/images/trash.png"));
- mMapOfPaths.insert(mDocumentTrashGroupName,mTrashTi);
-
- mDocumentUI->documentTreeWidget->addTopLevelItem(emptyGroupNameTi);
- mDocumentUI->documentTreeWidget->addTopLevelItem(mTrashTi);
-
foreach (QPointer proxy, proxies)
{
if (proxy)
{
- addDocumentInTree(proxy);
+ QString docGroup = proxy->metaData(UBSettings::documentGroupName).toString();
+
+
+ bool isEmptyGroupName = false;
+ bool isInTrash = false;
+
+ if (docGroup.isEmpty()) // #see https://trac.assembla.com/uniboard/ticket/426
+ {
+ docGroup = mDefaultDocumentGroupName;
+ isEmptyGroupName = true;
}
+ else if (docGroup.startsWith(UBSettings::trashedDocumentGroupNamePrefix))
+ {
+ isInTrash = true;
}
+ QString docName = proxy->metaData(UBSettings::documentName).toString();
+
+ if (emptyGroupNames.contains(docGroup))
+ emptyGroupNames.removeAll(docGroup);
+
+ if (!groupNamesMap.contains(docGroup) && !isInTrash)
+ {
+ UBDocumentGroupTreeItem* docGroupItem = new UBDocumentGroupTreeItem(0, !isEmptyGroupName); // deleted by the tree widget
+ groupNamesMap.insert(docGroup, docGroupItem);
+ docGroupItem->setGroupName(docGroup);
+
+ if (isEmptyGroupName)
+ emptyGroupNameTi = docGroupItem;
}
+ UBDocumentGroupTreeItem* docGroupItem;
+ if (isInTrash)
+ docGroupItem = mTrashTi;
+ else
+ docGroupItem = groupNamesMap.value(docGroup);
+
+ QTreeWidgetItem* docItem = new UBDocumentProxyTreeItem(docGroupItem, proxy, !isInTrash);
+ docItem->setText(0, docName);
-void UBDocumentController::itemClicked(QTreeWidgetItem * item, int column )
+ if (mBoardController->selectedDocument() == proxy)
{
- Q_UNUSED(item);
- Q_UNUSED(column);
+ mDocumentUI->documentTreeWidget->expandItem(docGroupItem);
+ mDocumentUI->documentTreeWidget->setCurrentItem(docGroupItem);
+ }
+ }
+ }
- selectDocument(selectedDocumentProxy(), false);
- itemSelectionChanged();
+ foreach (const QString emptyGroupName, emptyGroupNames)
+ {
+ UBDocumentGroupTreeItem* docGroupItem = new UBDocumentGroupTreeItem(0); // deleted by the tree widget
+ groupNamesMap.insert(emptyGroupName, docGroupItem);
+ docGroupItem->setGroupName(emptyGroupName);
}
+ QList groupNamesList = groupNamesMap.keys();
+ qSort(groupNamesList);
-void UBDocumentController::treeGroupItemRenamed(QString& oldPath,QString& newPath)
+ foreach (const QString groupName, groupNamesList)
{
- if(oldPath.isEmpty() || newPath.isEmpty())
- return;
+ UBDocumentGroupTreeItem* ti = groupNamesMap.value(groupName);
- QList keys = mMapOfPaths.keys();
- for(int i = 0; i < keys.count(); i += 1){
- QString key = keys.at(i);
- if(key.startsWith(oldPath)){
- UBDocumentGroupTreeItem* value = mMapOfPaths.take(key);
- key = key.remove(0,oldPath.size());
- mMapOfPaths.insert(key.prepend(newPath),value);
+ if (ti != emptyGroupNameTi)
+ mDocumentUI->documentTreeWidget->addTopLevelItem(ti);
}
+ if (emptyGroupNameTi)
+ mDocumentUI->documentTreeWidget->addTopLevelItem(emptyGroupNameTi);
+
+ mDocumentUI->documentTreeWidget->addTopLevelItem(mTrashTi);
}
+void UBDocumentController::itemClicked(QTreeWidgetItem * item, int column )
+{
+ Q_UNUSED(item);
+ Q_UNUSED(column);
+
+ selectDocument(selectedDocumentProxy(), false);
+ itemSelectionChanged();
}
void UBDocumentController::itemChanged(QTreeWidgetItem * item, int column)
{
UBDocumentProxyTreeItem* proxyItem = dynamic_cast(item);
- disconnect(UBPersistenceManager::persistenceManager(), SIGNAL(documentMetadataChanged(UBDocumentProxy*)) , this, SLOT(updateDocumentInTree(UBDocumentProxy*)));
+ disconnect(UBPersistenceManager::persistenceManager(), SIGNAL(documentMetadataChanged(UBDocumentProxy*))
+ , this, SLOT(updateDocumentInTree(UBDocumentProxy*)));
if (proxyItem)
{
@@ -986,7 +944,8 @@ void UBDocumentController::itemChanged(QTreeWidgetItem * item, int column)
}
}
- connect(UBPersistenceManager::persistenceManager(), SIGNAL(documentMetadataChanged(UBDocumentProxy*)), this, SLOT(updateDocumentInTree(UBDocumentProxy*)));
+ connect(UBPersistenceManager::persistenceManager(), SIGNAL(documentMetadataChanged(UBDocumentProxy*)),
+ this, SLOT(updateDocumentInTree(UBDocumentProxy*)));
}
@@ -1375,48 +1334,42 @@ void UBDocumentController::addToDocument()
QApplication::restoreOverrideCursor();
}
-
-UBDocumentGroupTreeItem* UBDocumentController::getParentTreeItem(QString& documentGroup)
-{
- QString pathNotYetCreated = documentGroup;
- UBDocumentGroupTreeItem* result = getCommonGroupItem(documentGroup);
- if(result)
- pathNotYetCreated = pathNotYetCreated.remove(0,result->buildEntirePath().size());
-
- if(pathNotYetCreated.startsWith("/")) pathNotYetCreated = pathNotYetCreated.remove(0,1);
- QString completePath = result ? result->groupName() + "/" : "";
-
- QStringList folders = pathNotYetCreated.split("/");
- for(int i = 0; i < folders.count(); i += 1 ){
- if(!folders.at(i).isEmpty()){
- completePath = completePath + folders.at(i);
- UBDocumentGroupTreeItem* newTreeItem = new UBDocumentGroupTreeItem(result, true);
- newTreeItem->setGroupName(folders.at(i));
- if(completePath.indexOf("/") == -1)
- mDocumentUI->documentTreeWidget->insertTopLevelItem(0,newTreeItem);
- mMapOfPaths.insert(completePath,newTreeItem);
- result = newTreeItem;
- completePath += "/";
- }
- }
-
- return result;
-}
-
void UBDocumentController::addDocumentInTree(UBDocumentProxy* pDocument)
{
QString documentName = pDocument->name();
QString documentGroup = pDocument->groupName();
if (documentGroup.isEmpty())
+ {
documentGroup = mDefaultDocumentGroupName;
- UBDocumentGroupTreeItem* group = NULL;
+ }
+ UBDocumentGroupTreeItem* group = 0;
if (documentGroup.startsWith(UBSettings::trashedDocumentGroupNamePrefix))
+ {
group = mTrashTi;
+ }
else
- group = getParentTreeItem(documentGroup);
+ {
+ for (int i = 0; i < mDocumentUI->documentTreeWidget->topLevelItemCount(); i++)
+ {
+ QTreeWidgetItem* item = mDocumentUI->documentTreeWidget->topLevelItem(i);
+ UBDocumentGroupTreeItem* groupItem = dynamic_cast(item);
+ if (groupItem->groupName() == documentGroup)
+ {
+ group = groupItem;
+ break;
+ }
+ }
+ }
+
+ if (group == 0)
+ {
+ group = new UBDocumentGroupTreeItem(0); // deleted by the tree widget
+ group->setGroupName(documentGroup);
+ mDocumentUI->documentTreeWidget->addTopLevelItem(group);
+ }
UBDocumentProxyTreeItem *ti = new UBDocumentProxyTreeItem(group, pDocument, !group->isTrashFolder());
ti->setText(0, documentName);
@@ -1445,24 +1398,11 @@ QStringList UBDocumentController::allGroupNames()
{
QStringList result;
- UBDocumentGroupTreeItem* selectedGroup = selectedDocumentGroupTreeItem();
- if(selectedGroup->isDefaultFolder()){
-
- for (int i = 0; i < mDocumentUI->documentTreeWidget->topLevelItemCount(); i++)
- {
- QTreeWidgetItem* item = mDocumentUI->documentTreeWidget->topLevelItem(i);
- UBDocumentGroupTreeItem* groupItem = dynamic_cast(item);
- result << groupItem->groupName();
- }
- }
- else{
- for (int i = 0; i < selectedGroup->childCount(); i++)
- {
- QTreeWidgetItem* item = selectedGroup->child(i);
- UBDocumentGroupTreeItem* groupItem = dynamic_cast(item);
- if(groupItem)
- result << groupItem->groupName();
- }
+ for (int i = 0; i < mDocumentUI->documentTreeWidget->topLevelItemCount(); i++)
+ {
+ QTreeWidgetItem* item = mDocumentUI->documentTreeWidget->topLevelItem(i);
+ UBDocumentGroupTreeItem* groupItem = dynamic_cast(item);
+ result << groupItem->groupName();
}
return result;
diff --git a/src/document/UBDocumentController.h b/src/document/UBDocumentController.h
index 0b68ee5c..786d2829 100644
--- a/src/document/UBDocumentController.h
+++ b/src/document/UBDocumentController.h
@@ -66,8 +66,6 @@ class UBDocumentController : public UBDocumentContainer
QString documentTrashGroupName(){ return mDocumentTrashGroupName;}
QString defaultDocumentGroupName(){ return mDefaultDocumentGroupName;}
- void treeGroupItemRenamed(QString& oldPath,QString& newPath);
-
signals:
void exportDone();
@@ -130,14 +128,6 @@ class UBDocumentController : public UBDocumentContainer
QString mDocumentTrashGroupName;
QString mDefaultDocumentGroupName;
- UBDocumentGroupTreeItem *getCommonGroupItem(QString& path);
- QMap mMapOfPaths;
- UBDocumentGroupTreeItem* getParentTreeItem(QString& documentGroup);
- QList getProxies(QTreeWidgetItem *groupItem);
- QList getGroupTreeItem(QTreeWidgetItem* groupItem);
-
-
-
private slots:
void documentZoomSliderValueChanged (int value);
void loadDocumentProxies();
diff --git a/src/document/UBDocumentProxy.cpp b/src/document/UBDocumentProxy.cpp
index d7b9d969..d5d54d6d 100644
--- a/src/document/UBDocumentProxy.cpp
+++ b/src/document/UBDocumentProxy.cpp
@@ -56,7 +56,7 @@ void UBDocumentProxy::init()
setMetaData(UBSettings::documentGroupName, "");
QDateTime now = QDateTime::currentDateTime();
- setMetaData(UBSettings::documentName, now.toString(Qt::ISODate));
+ setMetaData(UBSettings::documentName, now.toString(Qt::SystemLocaleShortDate));
setUuid(QUuid::createUuid());
diff --git a/src/gui/UBDocumentTreeWidget.cpp b/src/gui/UBDocumentTreeWidget.cpp
index f2bde64d..42210db9 100644
--- a/src/gui/UBDocumentTreeWidget.cpp
+++ b/src/gui/UBDocumentTreeWidget.cpp
@@ -33,9 +33,6 @@
#include "core/UBMimeData.h"
#include "core/UBApplicationController.h"
#include "core/UBDocumentManager.h"
-
-#include "gui/UBMainWindow.h"
-
#include "document/UBDocumentController.h"
#include "adaptors/UBThumbnailAdaptor.h"
@@ -44,23 +41,22 @@
#include "core/memcheck.h"
-#include
-
UBDocumentTreeWidget::UBDocumentTreeWidget(QWidget * parent)
: QTreeWidget(parent)
, mSelectedProxyTi(0)
, mDropTargetProxyTi(0)
- , mLastItemCompletePath("")
{
setDragDropMode(QAbstractItemView::InternalMove);
setAutoScroll(true);
mScrollTimer = new QTimer(this);
- connect(UBDocumentManager::documentManager(), SIGNAL(documentUpdated(UBDocumentProxy*)), this, SLOT(documentUpdated(UBDocumentProxy*)));
+ connect(UBDocumentManager::documentManager(), SIGNAL(documentUpdated(UBDocumentProxy*))
+ , this, SLOT(documentUpdated(UBDocumentProxy*)));
- connect(this, SIGNAL(itemChanged(QTreeWidgetItem *, int)) , this, SLOT(itemChangedValidation(QTreeWidgetItem *, int)));
- connect(mScrollTimer, SIGNAL(timeout()) , this, SLOT(autoScroll()));
- connect(this,SIGNAL(itemPressed(QTreeWidgetItem*,int)),this,SLOT(onItemPressed(QTreeWidgetItem*,int)));
+ connect(this, SIGNAL(itemChanged(QTreeWidgetItem *, int))
+ , this, SLOT(itemChangedValidation(QTreeWidgetItem *, int)));
+ connect(mScrollTimer, SIGNAL(timeout())
+ , this, SLOT(autoScroll()));
}
@@ -69,91 +65,33 @@ UBDocumentTreeWidget::~UBDocumentTreeWidget()
// NOOP
}
-
-void UBDocumentTreeWidget::onItemPressed(QTreeWidgetItem* item, int column)
-{
- Q_UNUSED(column)
-
- UBDocumentGroupTreeItem* group = dynamic_cast(item);
- if(group){
- mLastItemCompletePath = group->buildEntirePath();
- mLastItemName = group->groupName();
- }
-}
-
void UBDocumentTreeWidget::itemChangedValidation(QTreeWidgetItem * item, int column)
{
- QString emptyNameWarningTitle = tr("Empty name");
- QString emptyNameWarningText = tr("The name should not be empty. Please enter a valid name.");
- QString alreadyExistsNameWarningTitle = tr("Name already used");
- QString alreadyExistsNameWarningText = tr("The actual name is in conflict with and existing. Please choose another one.");
-
-
- UBDocumentProxyTreeItem* treeItem = dynamic_cast< UBDocumentProxyTreeItem *>(item);
- if (treeItem)
+ if (column == 0)
{
- QString name = treeItem->text(column);
- if(name.isEmpty()){
- mFailedValidationForTreeItem = item;
- mFailedValidationItemColumn = column;
- UBApplication::mainWindow->warning(emptyNameWarningTitle,emptyNameWarningText);
- QTimer::singleShot(100,this,SLOT(validationFailed()));
- return;
- }
- }
+
UBDocumentGroupTreeItem* group = dynamic_cast(item);
if(group)
{
- QString name = group->text(column);
- if(name.isEmpty()){
- mFailedValidationForTreeItem = item;
- mFailedValidationItemColumn = column;
- UBApplication::mainWindow->warning(emptyNameWarningTitle,emptyNameWarningText);
- QTimer::singleShot(100,this,SLOT(validationFailed()));
- return;
- }
+ QString name = group->text(0);
- if(group->parent()){
- for(int i = 0; i < group->parent()->childCount(); i++)
+ for(int i = 0; i < topLevelItemCount (); i++)
{
- QTreeWidgetItem* childAtPosition = group->parent()->child(i);
-
- if (childAtPosition != item && childAtPosition->text(column) == name){
- UBApplication::mainWindow->warning(alreadyExistsNameWarningTitle,alreadyExistsNameWarningText);
- mFailedValidationForTreeItem = item;
- mFailedValidationItemColumn = column;
- QTimer::singleShot(100,this,SLOT(validationFailed()));
- return;
- }
- }
- }
- else{
- // We are looking at the top level items;
- for(int i = 0; i < topLevelItemCount(); i += 1){
- if(topLevelItem(i) != item && dynamic_cast(topLevelItem(i))->groupName() == group->groupName()){
- UBApplication::mainWindow->warning(tr("Name already in use"),tr("Please choose another name for the directory. The chosed name is already used."));
- mFailedValidationForTreeItem = item;
- mFailedValidationItemColumn = column;
- QTimer::singleShot(100,this,SLOT(validationFailed()));
- return;
- }
+ QTreeWidgetItem *someTopLevelItem = topLevelItem(i);
+ if (someTopLevelItem != group &&
+ someTopLevelItem->text(0) == name)
+ {
+ group->setText(0, tr("%1 (copy)").arg(name));
+ }
}
}
- QString newPath = group->buildEntirePath();
- group->updateChildrenPath(column, mLastItemCompletePath, newPath);
- UBApplication::documentController->treeGroupItemRenamed(mLastItemCompletePath, newPath);
}
}
-void UBDocumentTreeWidget::validationFailed()
-{
- editItem(mFailedValidationForTreeItem,mFailedValidationItemColumn);
-}
-
Qt::DropActions UBDocumentTreeWidget::supportedDropActions() const
{
return Qt::MoveAction | Qt::CopyAction;
@@ -509,36 +447,6 @@ QString UBDocumentGroupTreeItem::groupName() const
return text(0);
}
-QString UBDocumentGroupTreeItem::buildEntirePath()
-{
- QString result(groupName());
- UBDocumentGroupTreeItem* item = this;
- while(item->parent()){
- item = dynamic_cast(item->parent());
- result = item->groupName() + "/" + result;
- }
-
- return result;
-}
-
-void UBDocumentGroupTreeItem::updateChildrenPath(int column, QString& previousText, const QString& text)
-{
- for(int i = 0; i < childCount(); i += 1){
- UBDocumentGroupTreeItem* groupTreeItem = dynamic_cast(child(i));
- if(groupTreeItem)
- groupTreeItem->updateChildrenPath(column, previousText,text);
- else{
- UBDocumentProxyTreeItem* docProxyItem = dynamic_cast(child(i));
- QString groupName = docProxyItem->proxy()->metaData(UBSettings::documentGroupName).toString();
- groupName = groupName.remove(0,previousText.length());
- groupName = text + groupName;
- docProxyItem->proxy()->setMetaData(UBSettings::documentGroupName, groupName);
- UBPersistenceManager::persistenceManager()->persistDocumentMetadata(docProxyItem->proxy());
- }
- }
-}
-
-
bool UBDocumentGroupTreeItem::isTrashFolder() const
{
return (0 == (flags() & Qt::ItemIsEditable)) && UBApplication::app()->documentController && (groupName() == UBApplication::app()->documentController->documentTrashGroupName());
diff --git a/src/gui/UBDocumentTreeWidget.h b/src/gui/UBDocumentTreeWidget.h
index a31c9f71..2f336307 100644
--- a/src/gui/UBDocumentTreeWidget.h
+++ b/src/gui/UBDocumentTreeWidget.h
@@ -54,9 +54,7 @@ class UBDocumentTreeWidget : public QTreeWidget
void documentUpdated(UBDocumentProxy *pDocument);
void itemChangedValidation(QTreeWidgetItem * item, int column);
- void onItemPressed(QTreeWidgetItem* item, int column);
void autoScroll();
- void validationFailed();
private:
UBDocumentProxyTreeItem *mSelectedProxyTi;
@@ -64,10 +62,6 @@ class UBDocumentTreeWidget : public QTreeWidget
QBrush mBackground;
QTimer* mScrollTimer;
int mScrollMagnitude;
- QTreeWidgetItem* mFailedValidationForTreeItem;
- int mFailedValidationItemColumn;
- QString mLastItemCompletePath;
- QString mLastItemName;
};
@@ -98,11 +92,6 @@ class UBDocumentGroupTreeItem : public QTreeWidgetItem
bool isTrashFolder() const;
bool isDefaultFolder() const;
-
- QString buildEntirePath();
-
-
- void updateChildrenPath(int column, QString& previousText, const QString &text);
};
#endif /* UBDOCUMENTTREEWIDGET_H_ */