diff --git a/src/board/UBBoardPaletteManager.cpp b/src/board/UBBoardPaletteManager.cpp index dd70945a..1468e753 100644 --- a/src/board/UBBoardPaletteManager.cpp +++ b/src/board/UBBoardPaletteManager.cpp @@ -677,8 +677,10 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is { case eUBDockPaletteWidget_BOARD: { - mLeftPalette->assignParent(UBApplication::boardController->controlContainer()); - mRightPalette->assignParent(UBApplication::boardController->controlContainer()); + mLeftPalette->assignParent(mContainer); + mRightPalette->assignParent(mContainer); + mRightPalette->stackUnder(mStylusPalette); + mLeftPalette->stackUnder(mStylusPalette); if (UBPlatformUtils::hasVirtualKeyboard() && mKeyboardPalette != NULL) { @@ -710,6 +712,8 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is { mLeftPalette->assignParent((QWidget*)UBApplication::applicationController->uninotesController()->drawingView()); mRightPalette->assignParent((QWidget*)UBApplication::applicationController->uninotesController()->drawingView()); + mRightPalette->lower(); + mLeftPalette->lower(); if (UBPlatformUtils::hasVirtualKeyboard() && mKeyboardPalette != NULL) { diff --git a/src/board/UBFeaturesController.cpp b/src/board/UBFeaturesController.cpp index 8e1d0f51..e63b04f7 100644 --- a/src/board/UBFeaturesController.cpp +++ b/src/board/UBFeaturesController.cpp @@ -21,8 +21,6 @@ const QString UBFeaturesController::virtualRootName = "root"; - - void UBFeaturesComputingThread::scanFS(const QUrl & currentPath, const QString & currVirtualPath) { @@ -624,6 +622,7 @@ void UBFeaturesController::importImage(const QImage &image, const QString &fileN importImage(image, currentElement, fileName); } + void UBFeaturesController::importImage( const QImage &image, const UBFeature &destination, const QString &fileName ) { QString mFileName = fileName; @@ -650,6 +649,27 @@ void UBFeaturesController::importImage( const QImage &image, const UBFeature &de } +QStringList UBFeaturesController::getFileNamesInFolders() +{ + QStringList strList; + + Q_ASSERT(curListModel); + + for (int i = 0; i < curListModel->rowCount(QModelIndex()); i++) { + QModelIndex ind = curListModel->index(i, 0); + if (!ind.isValid()) { + qDebug() << "incorrect model index catched"; + continue; + } + UBFeature curFeature = curListModel->data(ind, Qt::UserRole + 1).value(); + if (curFeature.getType() == FEATURE_FOLDER) { + strList << QFileInfo(curFeature.getFullPath().toLocalFile()).fileName(); + } + } + + return strList; +} + void UBFeaturesController::addNewFolder(QString name) { QString path = currentElement.getFullPath().toLocalFile() + "/" + name; diff --git a/src/board/UBFeaturesController.h b/src/board/UBFeaturesController.h index 13f0142d..64bbd5cc 100644 --- a/src/board/UBFeaturesController.h +++ b/src/board/UBFeaturesController.h @@ -157,6 +157,7 @@ public: void removeFromFavorite(const QUrl &path, bool deleteManualy = false); void importImage(const QImage &image, const QString &fileName = QString()); void importImage( const QImage &image, const UBFeature &destination, const QString &fileName = QString() ); + QStringList getFileNamesInFolders(); void fileSystemScan(const QUrl &currPath, const QString & currVirtualPath); int featuresCount(const QUrl &currPath); diff --git a/src/domain/UBGraphicsItemDelegate.cpp b/src/domain/UBGraphicsItemDelegate.cpp index 2195d477..7ed89524 100644 --- a/src/domain/UBGraphicsItemDelegate.cpp +++ b/src/domain/UBGraphicsItemDelegate.cpp @@ -418,6 +418,10 @@ bool UBGraphicsItemDelegate::isLocked() void UBGraphicsItemDelegate::duplicate() { + // TODO UB 4.x .. rewrite .. .this is absurde ... we know what we are duplicating + + UBApplication::boardController->copy(); + UBApplication::boardController->paste(); UBApplication::boardController->duplicateItem(dynamic_cast(delegated())); } @@ -736,7 +740,11 @@ void UBGraphicsToolBarItem::paint(QPainter *painter, const QStyleOptionGraphicsI } MediaTimer::MediaTimer(QGraphicsItem * parent): QGraphicsRectItem(parent) -{} +{ + val = 0; + smallPoint = false; + setNumDigits(4); +} MediaTimer::~MediaTimer() {} @@ -819,9 +827,7 @@ void MediaTimer::drawDigit(const QPoint &pos, QPainter &p, int segLen, } } -char* MediaTimer::getSegments(char ch) // gets list of segments for ch -{ - char segments[30][8] = +char MediaTimer::segments [][8] = { { 0, 1, 2, 4, 5, 6,99, 0}, // 0 0 { 2, 5,99, 0, 0, 0, 0, 0}, // 1 1 @@ -836,16 +842,17 @@ char* MediaTimer::getSegments(char ch) // gets list of segments fo { 8, 9,99, 0, 0, 0, 0, 0}, // 10 : {99, 0, 0, 0, 0, 0, 0, 0} // 11 empty }; - - int n; + +const char* MediaTimer::getSegments(char ch) // gets list of segments for ch +{ if (ch >= '0' && ch <= '9') return segments[ch - '0']; if (ch == ':') - n = 10; + return segments[10]; if (ch == ' ') - n = 11; + return segments[11]; - return segments[n]; + return NULL; } void MediaTimer::drawSegment(const QPoint &pos, char segmentNo, QPainter &p, @@ -1067,13 +1074,6 @@ void MediaTimer::internalSetString(const QString& s) update(); } -void MediaTimer::init() -{ - val = 0; - smallPoint = false; - setNumDigits(4); -} - void MediaTimer::display(const QString &s) { val = 0; @@ -1141,7 +1141,6 @@ DelegateMediaControl::DelegateMediaControl(UBGraphicsMediaItem* pDelegated, QGra setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Control)); lcdTimer = new MediaTimer(this); - lcdTimer->init(); update(); } @@ -1194,6 +1193,8 @@ void DelegateMediaControl::positionHandles() mLCDTimerArea.setHeight(parentItem()->boundingRect().height()); lcdTimer->setRect(mLCDTimerArea); lcdTimer->setPos(mSeecArea.width()-mLCDTimerArea.width(),0); + //lcdTimer->setRect(mLCDTimerArea); + //lcdTimer->setPos(mSeecArea.width()-mLCDTimerArea.width(),0); mSeecArea.setWidth(rect().width()-mLCDTimerArea.width()); @@ -1202,6 +1203,7 @@ void DelegateMediaControl::positionHandles() setRect(selfRect); lcdTimer->setPos(rect().width() - mLCDTimerArea.width(), 0); + //lcdTimer->setPos(rect().width() - mLCDTimerArea.width(), 0); } @@ -1210,6 +1212,7 @@ void DelegateMediaControl::update() QTime t; t = t.addMSecs(mCurrentTimeInMs < 0 ? 0 : mCurrentTimeInMs); lcdTimer->display(t.toString("m:ss")); + //lcdTimer->display(t.toString("m:ss")); QGraphicsRectItem::update(); } @@ -1262,6 +1265,7 @@ void DelegateMediaControl::seekToMousePos(QPointF mousePos) minX = frameWidth; length = mSeecArea.width() - lcdTimer->rect().width(); + length = mSeecArea.width() /*- lcdTimer->rect().width()*/; qreal mouseX = mousePos.x(); if (mouseX >= (mSeecArea.width() - mSeecArea.height()/2)) diff --git a/src/domain/UBGraphicsItemDelegate.h b/src/domain/UBGraphicsItemDelegate.h index 68c9e35e..f135f66b 100644 --- a/src/domain/UBGraphicsItemDelegate.h +++ b/src/domain/UBGraphicsItemDelegate.h @@ -71,33 +71,40 @@ class DelegateButton: public QGraphicsSvgItem }; +/* + Code of this class is copied from QT QLCDNumber class sources + See src\gui\widgets\qlcdnumber.cpp for original code +*/ class MediaTimer: public QGraphicsRectItem { public: MediaTimer(QGraphicsItem * parent = 0); ~MediaTimer(); - char* getSegments(char); - void addPoint(QPolygon&, const QPoint&); - void init(); - void internalSetString(const QString& s); - void drawString(const QString& s, QPainter &, QBitArray * = 0, bool = true); - void drawDigit(const QPoint &, QPainter &, int, char, char = ' '); - void drawSegment(const QPoint &, char, QPainter &, int, bool = false); void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); + void display(const QString &str); - void setNumDigits(int nDigits); private: + + static const char* getSegments(char); + void drawString(const QString& s, QPainter &, QBitArray * = 0, bool = true); + void drawDigit(const QPoint &, QPainter &, int, char, char = ' '); + void drawSegment(const QPoint &, char, QPainter &, int, bool = false); + void addPoint(QPolygon&, const QPoint&); + void internalSetString(const QString& s); + void setNumDigits(int nDigits); + + static char segments [][8]; + int ndigits; QString digitStr; QBitArray points; double val; -uint shadow : 1; -uint smallPoint : 1; - + uint shadow : 1; + uint smallPoint : 1; }; class DelegateMediaControl: public QObject, public QGraphicsRectItem diff --git a/src/gui/UBFeaturesActionBar.cpp b/src/gui/UBFeaturesActionBar.cpp index 80341927..65ee920f 100644 --- a/src/gui/UBFeaturesActionBar.cpp +++ b/src/gui/UBFeaturesActionBar.cpp @@ -209,6 +209,16 @@ void UBFeaturesActionBar::onActionRescanModel() emit rescanModel(); } +void UBFeaturesActionBar::lockIt() +{ + setEnabled(false); +} + +void UBFeaturesActionBar::unlockIt() +{ + setEnabled(true); +} + void UBFeaturesActionBar::dragEnterEvent( QDragEnterEvent *event ) { const UBFeaturesMimeData *fMimeData = qobject_cast(event->mimeData()); diff --git a/src/gui/UBFeaturesActionBar.h b/src/gui/UBFeaturesActionBar.h index 71b6fdc0..b3a406e6 100644 --- a/src/gui/UBFeaturesActionBar.h +++ b/src/gui/UBFeaturesActionBar.h @@ -45,6 +45,8 @@ private slots: void onActionRemoveFavorite(); void onActionTrash(); void onActionRescanModel(); + void lockIt(); + void unlockIt(); protected: void dragEnterEvent( QDragEnterEvent *event ); diff --git a/src/gui/UBFeaturesWidget.cpp b/src/gui/UBFeaturesWidget.cpp index a6c9dfa7..7476c8bc 100644 --- a/src/gui/UBFeaturesWidget.cpp +++ b/src/gui/UBFeaturesWidget.cpp @@ -1,5 +1,4 @@ #include - #include "UBFeaturesWidget.h" #include "gui/UBThumbnailWidget.h" #include "frameworks/UBFileSystemUtils.h" @@ -60,6 +59,7 @@ UBFeaturesWidget::UBFeaturesWidget(QWidget *parent, const char *name) layout->addWidget(mActionBar); connect(centralWidget->listView(), SIGNAL(clicked(const QModelIndex &)), this, SLOT(currentSelected(const QModelIndex &))); + connect(this, SIGNAL(sendFileNameList(QStringList)), centralWidget, SIGNAL(sendFileNameList(QStringList))); connect(mActionBar, SIGNAL(searchElement(const QString &)), this, SLOT( searchStarted(const QString &))); connect(mActionBar, SIGNAL(newFolderToCreate()), this, SLOT(createNewFolder())); connect(mActionBar, SIGNAL(deleteElements(const UBFeaturesMimeData *)), this, SLOT(deleteElements(const UBFeaturesMimeData *))); @@ -78,6 +78,8 @@ UBFeaturesWidget::UBFeaturesWidget(QWidget *parent, const char *name) connect(centralWidget, SIGNAL(createNewFolderSignal(QString)), controller, SLOT(addNewFolder(QString))); connect(controller, SIGNAL(scanStarted()), centralWidget, SLOT(scanStarted())); connect(controller, SIGNAL(scanFinished()), centralWidget, SLOT(scanFinished())); + connect(controller, SIGNAL(scanStarted()), mActionBar, SLOT(lockIt())); + connect(controller, SIGNAL(scanFinished()), mActionBar, SLOT(unlockIt())); connect(controller, SIGNAL(maxFilesCountEvaluated(int)), centralWidget, SIGNAL(maxFilesCountEvaluated(int))); connect(controller, SIGNAL(featureAddedFromThread()), centralWidget, SLOT(increaseStatusBarValue())); } @@ -144,6 +146,7 @@ void UBFeaturesWidget::currentSelected(const QModelIndex ¤t) void UBFeaturesWidget::createNewFolder() { centralWidget->showAdditionalData(UBFeaturesCentralWidget::NewFolderDialog, UBFeaturesCentralWidget::Modal); + emit sendFileNameList(controller->getFileNamesInFolders()); } void UBFeaturesWidget::addFolder() @@ -491,6 +494,7 @@ UBFeaturesCentralWidget::UBFeaturesCentralWidget(QWidget *parent) : QWidget(pare connect(dlg, SIGNAL(createNewFolder(QString)), this, SLOT(createNewFolderSlot(QString))); connect(dlg, SIGNAL(closeDialog()), this, SLOT(hideAdditionalData())); + connect(this, SIGNAL(sendFileNameList(QStringList)), dlg, SLOT(setFileNameList(QStringList))); //Progress bar to show scanning progress QProgressBar *progressBar = new QProgressBar(); @@ -603,8 +607,6 @@ void UBFeaturesCentralWidget::increaseStatusBarValue() UBFeaturesNewFolderDialog::UBFeaturesNewFolderDialog(QWidget *parent) : QWidget(parent) { -// SET_STYLE_SHEET() - this->setStyleSheet("background:white;"); QVBoxLayout *mainLayout = new QVBoxLayout(); @@ -615,14 +617,14 @@ UBFeaturesNewFolderDialog::UBFeaturesNewFolderDialog(QWidget *parent) : QWidget( QLabel *mLabel = new QLabel(labelText, this); mLineEdit = new QLineEdit(this); - mValidator = new QRegExpValidator(QRegExp("[\^\/\:\?\*\|\<\>\"]{2,}"), this); + mValidator = new QRegExpValidator(QRegExp("[^\\/\\:\\?\\*\\|\\<\\>\\\"]{2,}"), this); mLineEdit->setValidator(mValidator); labelLayout->addWidget(mLabel); labelLayout->addWidget(mLineEdit); QHBoxLayout *buttonLayout = new QHBoxLayout(this); - QPushButton *acceptButton = new QPushButton(acceptText, this); + acceptButton = new QPushButton(acceptText, this); QPushButton *cancelButton = new QPushButton(cancelText, this); buttonLayout->addWidget(acceptButton); buttonLayout->addWidget(cancelButton); @@ -630,14 +632,23 @@ UBFeaturesNewFolderDialog::UBFeaturesNewFolderDialog(QWidget *parent) : QWidget( mainLayout->addLayout(labelLayout); mainLayout->addLayout(buttonLayout); + acceptButton->setEnabled(false); + connect(acceptButton, SIGNAL(clicked()), this, SLOT(accept())); connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject())); + connect(mLineEdit, SIGNAL(textEdited(QString)), this, SLOT(reactOnTextChanged(QString))); + + reactOnTextChanged(QString()); } void UBFeaturesNewFolderDialog::setRegexp(const QRegExp pRegExp) { mValidator->setRegExp(pRegExp); } +bool UBFeaturesNewFolderDialog::validString(const QString &pStr) +{ + return mLineEdit->hasAcceptableInput() && !mFileNameList.contains(pStr, Qt::CaseSensitive); +} void UBFeaturesNewFolderDialog::accept() { @@ -650,6 +661,20 @@ void UBFeaturesNewFolderDialog::reject() mLineEdit->clear(); emit closeDialog(); } +void UBFeaturesNewFolderDialog::setFileNameList(const QStringList &pLst) +{ + mFileNameList = pLst; +} +void UBFeaturesNewFolderDialog::reactOnTextChanged(const QString &pStr) +{ + if (validString(pStr)) { + acceptButton->setEnabled(true); + mLineEdit->setStyleSheet("background:white;"); + } else { + acceptButton->setEnabled(false); + mLineEdit->setStyleSheet("background:#FFB3C8;"); + } +} UBFeaturesWebView::UBFeaturesWebView(QWidget* parent, const char* name):QWidget(parent) , mpView(NULL) diff --git a/src/gui/UBFeaturesWidget.h b/src/gui/UBFeaturesWidget.h index 0f3f21c2..788de51b 100644 --- a/src/gui/UBFeaturesWidget.h +++ b/src/gui/UBFeaturesWidget.h @@ -72,6 +72,9 @@ public: int scrollbarHorisontalPadding() const { return 10;} int scrollbarVerticalIndent() const { return 0;} +signals: + void sendFileNameList(const QStringList lst); + private slots: void onPreviewLoaded(int id, bool pSuccess, QUrl sourceUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground); void currentSelected( const QModelIndex & ); @@ -190,7 +193,6 @@ public: void setLockedExcludingAdditional(bool pLock); - QStackedWidget *mStackedWidget; UBFeaturesNavigatorWidget *mNavigator; UBFeatureProperties *mFeatureProperties; @@ -201,6 +203,7 @@ public: signals: void lockMainWidget(bool pLock); void createNewFolderSignal(QString pStr); + void sendFileNameList(const QStringList lst); // progressbar widget related signals void maxFilesCountEvaluated(int pValue); @@ -228,6 +231,7 @@ public: UBFeaturesNewFolderDialog(QWidget *parent = 0); void setRegexp(const QRegExp pRegExp); + bool validString(const QString &pStr); signals: void createNewFolder(QString str); @@ -236,10 +240,15 @@ signals: private slots: void accept(); void reject(); + void setFileNameList(const QStringList &pLst); + void reactOnTextChanged(const QString &pStr); + private: QLineEdit *mLineEdit; QRegExpValidator *mValidator; + QStringList mFileNameList; + QPushButton *acceptButton; };