void MoveCollectionTask::onExamineDone(KJob *job) { // We deliberately ignore any error here, because the SelectJob will always fail // when examining a non-existent mailbox KIMAP::SelectJob *examine = static_cast<KIMAP::SelectJob *>(job); doRename(examine->session()); }
void BaseTreeView::slotRenameItem(QListViewItem* item, const QString & newText, int col) { if (!item) return; // reset the inline rename option for file/folder name if (col == 0) { setRenameable(0, false); KFileTreeViewItem * kvtvi = dynamic_cast<KFileTreeViewItem *>(item); if (kvtvi) doRename(kvtvi, newText); } }
PdRenamePic::PdRenamePic(QWidget *parent, const QString &inFile, const QString &inDir) : QDialog(parent), ui(new Ui::PdRenamePic) { ui->setupUi(this); ui->txtName->setPlainText(inFile); oldFullName = inDir + QDir::separator() + inFile; curDir = inDir; newName = ""; connect (ui->txtName, SIGNAL(EnterPressed()), this, SLOT(doRename())); qCur = ui->txtName->textCursor(); qCur.setPosition(setCursorPos(inFile)); ui->txtName->setTextCursor(qCur); }
void MoveCollectionTask::doStart(KIMAP::Session *session) { if (collection().remoteId().isEmpty()) { emitError(i18n("Cannot move IMAP folder '%1', it does not exist on the server.", collection().name())); changeProcessed(); return; } if (sourceCollection().remoteId().isEmpty()) { emitError(i18n("Cannot move IMAP folder '%1' out of '%2', '%2' does not exist on the server.", collection().name(), sourceCollection().name())); changeProcessed(); return; } if (targetCollection().remoteId().isEmpty()) { emitError(i18n("Cannot move IMAP folder '%1' to '%2', '%2' does not exist on the server.", collection().name(), sourceCollection().name())); changeProcessed(); return; } if (session->selectedMailBox() != mailBoxForCollection(collection())) { doRename(session); return; } // Some IMAP servers don't allow moving an opened mailbox, so make sure // it's not opened (https://bugs.kde.org/show_bug.cgi?id=324932) by examining // a non-existent mailbox. We don't use CLOSE in order not to trigger EXPUNGE KIMAP::SelectJob *examine = new KIMAP::SelectJob(session); examine->setOpenReadOnly(true); // use EXAMINE instead of SELECT examine->setMailBox(QStringLiteral("IMAP Resource non existing folder %1").arg(QUuid::createUuid().toString())); connect(examine, &KIMAP::SelectJob::result, this, &MoveCollectionTask::onExamineDone); examine->start(); }
void NBFolderView::createAndSetupActions() { connect( IconView, SIGNAL( peek( QModelIndex ) ), this, SLOT( doPeek( QModelIndex ) ) ); connect( IconView, SIGNAL( open( QModelIndex ) ), this, SLOT( doOpen( QModelIndex ) ) ); connect( IconView, SIGNAL( open( QString ) ), this, SLOT( doOpen( QString ) ) ); connect( IconView, SIGNAL( contextMenuRequested( QPoint ) ), this, SLOT( showContextMenu( QPoint ) ) ); connect( IconView, SIGNAL( actionsMenuRequested( QPoint ) ), this, SLOT( showActionsMenu( QPoint ) ) ); connect( IconView->selectionModel(), SIGNAL( selectionChanged( const QItemSelection&, const QItemSelection& ) ), this, SIGNAL( selectionChanged( const QItemSelection&, const QItemSelection& ) ) ); connect( IconView->selectionModel(), SIGNAL( selectionChanged( const QItemSelection&, const QItemSelection& ) ), this, SLOT( updateActions() ) ); connect( IconView, SIGNAL( link( QStringList, QString ) ), this, SLOT( link( QStringList, QString ) ) ); // DragDrop copy connect( IconView, SIGNAL( copy( QStringList, QString ) ), this, SLOT( copy( QStringList, QString ) ) ); // DragDrop move connect( IconView, SIGNAL( move( QStringList, QString ) ), this, SLOT( move( QStringList, QString ) ) ); // Update actions once the directory is loaded connect( fsModel, SIGNAL( directoryLoaded( QString ) ), this, SLOT( updateActions() ) ); // Peek peekAct = new QAction( QIcon( ":/icons/peek.png" ), "Pee&k", this ); peekAct->setShortcuts( Settings->shortcuts( "Peek" ) ); connect( peekAct, SIGNAL( triggered() ), this, SLOT( doPeek() ) ); addAction( peekAct ); // Home Dir actHomeDir = new QAction( QIcon( ":/icons/home.png" ), "&Home", this ); actHomeDir->setShortcuts( Settings->shortcuts( "GoHome" ) ); connect( actHomeDir, SIGNAL( triggered() ), this, SLOT( loadHomeDir() ) ); addAction( actHomeDir ); // Home actGoHome = new QAction( QIcon( ":/icons/home.png" ), "&Home", this ); actGoHome->setShortcut( tr( "Alt+Shift+Home" ) ); connect( actGoHome, SIGNAL( triggered() ), this, SLOT( doOpenHome() ) ); addAction( actGoHome ); // Up actParDir = new QAction( QIcon( ":/icons/up.png" ), "&Up", this ); actParDir->setShortcuts( Settings->shortcuts( "GoUp" ) ); connect( actParDir, SIGNAL( triggered() ), fsModel, SLOT( goUp() ) ); addAction( actParDir ); // Back actPrevDir = new QAction( QIcon( ":/icons/prev.png" ), "&Back", this ); actPrevDir->setShortcuts( Settings->shortcuts( "GoLeft" ) ); connect( actPrevDir, SIGNAL( triggered() ), fsModel, SLOT( goBack() ) ); addAction( actPrevDir ); // Forward actNextDir = new QAction( QIcon( ":/icons/next.png" ), "&Forward", this ); actNextDir->setShortcuts( Settings->shortcuts( "GoRight" ) ); connect( actNextDir, SIGNAL( triggered() ), fsModel, SLOT( goForward() ) ); addAction( actNextDir ); // New Folder actNewDir = new QAction( QIcon::fromTheme( "folder-new" ), "New folder", this ); actNewDir->setShortcuts( Settings->shortcuts( "NewFolder" ) ); connect( actNewDir, SIGNAL( triggered() ), this, SLOT( newFolder() ) ); addAction( actNewDir ); // New file actNewFile = new QAction( QIcon::fromTheme( "document-new" ), "New File", this ); actNewFile->setShortcuts( Settings->shortcuts( "NewFile" ) ); connect( actNewFile, SIGNAL( triggered() ), this, SLOT( newFile() ) ); addAction( actNewFile ); // New file actNewEncFS = new QAction( QIcon::fromTheme( "document-new" ), "New Encrypted Directory", this ); actNewEncFS->setShortcuts( Settings->shortcuts( "NewEncFS" ) ); connect( actNewEncFS, SIGNAL( triggered() ), this, SLOT( createEncFS() ) ); addAction( actNewEncFS ); // Copy copyAct = new QAction( QIcon( ":/icons/copy.png" ), "&Copy", this ); copyAct->setShortcuts( Settings->shortcuts( "Copy" ) ); connect( copyAct, SIGNAL( triggered() ), this, SLOT( prepareCopy() ) ); addAction( copyAct ); // Move moveAct = new QAction( QIcon( ":/icons/cut.png" ), "Cu&t", this ); moveAct->setShortcuts( Settings->shortcuts( "Cut" ) ); connect( moveAct, SIGNAL( triggered() ), this, SLOT( prepareMove() ) ); addAction( moveAct ); // Paste pasteAct = new QAction( QIcon( ":/icons/paste.png" ), "&Paste", this ); pasteAct->setShortcuts( Settings->shortcuts( "Paste" ) ); connect( pasteAct, SIGNAL( triggered() ), this, SLOT( prepareIO() ) ); addAction( pasteAct ); // Rename renameAct = new QAction( QIcon( ":/icons/rename.png" ), "&Rename", this ); renameAct->setShortcuts( Settings->shortcuts( "Rename" ) ); connect( renameAct, SIGNAL( triggered() ), this, SLOT( doRename() ) ); addAction( renameAct ); // Reload reloadAct = new QAction( QIcon( ":/icons/reload.png" ), "Re&fresh", this ); reloadAct->setShortcuts( Settings->shortcuts( "Reload" ) ); connect( reloadAct, SIGNAL( triggered() ), this, SLOT( doReload() ) ); addAction( reloadAct ); // showDotFiles showHideDotFiles = new QAction( QIcon( ":/icons/showDotFiles.png" ), "Show &Hidden", this ); showHideDotFiles->setShortcuts( Settings->shortcuts( "ToggleHidden" ) ); connect( showHideDotFiles, SIGNAL( triggered() ), this, SLOT( doToggleHidden() ) ); addAction( showHideDotFiles ); // Trash trashAct = new QAction( QIcon( ":/icons/trash.png" ), "Move to trash", this ); trashAct->setShortcuts( Settings->shortcuts( "Trash" ) ); connect( trashAct, SIGNAL( triggered() ), this, SLOT( doSendToTrash() ) ); addAction( trashAct ); // Delete delAct = new QAction( QIcon( ":/icons/delete.png" ), "Delete", this ); delAct->setShortcuts( Settings->shortcuts( "Delete" ) ); connect( delAct, SIGNAL( triggered() ), this, SLOT( doDelete() ) ); addAction( delAct ); // Properties propertiesAct = new QAction( QIcon( ":/icons/props.png" ), "&Properties", this ); propertiesAct->setShortcuts( Settings->shortcuts( "Properties" ) ); connect( propertiesAct, SIGNAL( triggered() ), this, SIGNAL( showProperties() ) ); addAction( propertiesAct ); // Permissions permissionsAct = new QAction( QIcon::fromTheme( "system-users" ), "P&ermissions", this ); permissionsAct->setShortcuts( Settings->shortcuts( "Permissions" ) ); connect( permissionsAct, SIGNAL( triggered() ), this, SIGNAL( showPermissions() ) ); addAction( permissionsAct ); // Open a virtual terminal emulator openVTE = new QAction( QIcon::fromTheme( "utilities-terminal" ), "Open &VTE", this ); openVTE->setShortcuts( Settings->shortcuts( "Terminal" ) ); connect( openVTE, SIGNAL( triggered() ), this, SLOT( openTerminal() ) ); addAction( openVTE ); // Open a virtual terminal emulator openVTEin = new QAction( QIcon::fromTheme( "utilities-terminal" ), "Open &VTE Here", this ); // openVTEin->setShortcuts( Settings->shortcuts( "Terminal" ) ); connect( openVTEin, SIGNAL( triggered() ), this, SLOT( openTerminalIn() ) ); // Select All QAction *selectAllAct = new QAction( "&Select All", this ); selectAllAct->setShortcuts( Settings->shortcuts( "SelectAll" ) ); connect( selectAllAct, SIGNAL( triggered() ), this, SLOT( selectAll() ) ); addAction( selectAllAct ); // Sorting sortByNameAct = new QAction( QIcon::fromTheme( "format-text-underline" ), "&Name", this ); sortByNameAct->setCheckable( true ); connect( sortByNameAct, SIGNAL( triggered() ), this, SLOT( sortByName() ) ); sortByTypeAct = new QAction( QIcon::fromTheme( "preferences-other" ), "&Type", this ); sortByTypeAct->setCheckable( true ); connect( sortByTypeAct, SIGNAL( triggered() ), this, SLOT( sortByType() ) ); sortBySizeAct = new QAction( QIcon( ":/icons/size.png" ), "&Size", this ); sortBySizeAct->setCheckable( true ); connect( sortBySizeAct, SIGNAL( triggered() ), this, SLOT( sortBySize() ) ); sortByDateAct = new QAction( QIcon::fromTheme( "office-calendar" ), "&Date", this ); sortByDateAct->setCheckable( true ); connect( sortByDateAct, SIGNAL( triggered() ), this, SLOT( sortByDate() ) ); QActionGroup *sortGroup = new QActionGroup( this ); sortGroup->addAction( sortByNameAct ); sortGroup->addAction( sortByTypeAct ); sortGroup->addAction( sortBySizeAct ); sortGroup->addAction( sortByDateAct ); switch( ( int )Settings->value( "SortColumn" ) ) { case 0: { sortByNameAct->setChecked( true ); break; } case 1: { sortBySizeAct->setChecked( true ); break; } case 2: { sortByTypeAct->setChecked( true ); break; } case 4: { sortByDateAct->setChecked( true ); break; } } groupsAct = new QAction( QIcon::fromTheme( "view-group", QIcon( ":/icons/groups.png" ) ), "Show in &Groups", this ); groupsAct->setCheckable( true ); groupsAct->setChecked( Settings->value( "Grouping" ) ); connect( groupsAct, SIGNAL( triggered() ), this, SIGNAL( toggleGroups() ) ); // Add bookmark addBookMarkAct = new QAction( QIcon( ":/icons/bookmark.png" ), "Add &Bookmark", this ); addBookMarkAct->setShortcuts( Settings->shortcuts( "AddBookmark" ) ); connect( addBookMarkAct, SIGNAL( triggered() ), this, SLOT( addBookMark() ) ); addAction( addBookMarkAct ); /* Add to SuperStart */ addToSuperStartAct = new QAction( QIcon( ":/icons/superstart.png" ), "Add to S&uperStart", this ); addToSuperStartAct->setShortcut( tr( "Ctrl+U" ) ); connect( addToSuperStartAct, SIGNAL( triggered() ), this, SLOT( addToSuperStart() ) ); addAction( addToSuperStartAct ); updateActions(); };
FileHandling::FileHandling(QWidget *parent, bool v, QString cf) : MyWidget(parent) { this->setVisibleArea(QSize(600,400)); // Some variables currentfile = cf; verbose = v; QString fileTreeCSS = "QTreeView {"; fileTreeCSS += "color:white;"; fileTreeCSS += "background: rgba(0,0,0,0);"; fileTreeCSS += "show-decoration-selected: 1;"; fileTreeCSS += "}"; fileTreeCSS += "QTreeView::item:hover{"; fileTreeCSS += "background: rgba(255,255,255,128);"; fileTreeCSS += "color: black"; fileTreeCSS += "}"; fileTreeCSS += "QTreeView::item:selected{"; fileTreeCSS += "background: white;"; fileTreeCSS += "color: black;"; fileTreeCSS += "}"; fileTreeCSS += "QTreeView::item:selected:active{"; fileTreeCSS += "background: white;"; fileTreeCSS += "color: black"; fileTreeCSS += "}"; fileTreeCSS += "QTreeView::item:selected:!active{"; fileTreeCSS += "background: white;"; fileTreeCSS += "color: black"; fileTreeCSS += "}"; /********************************** /////////// RENAME //////////////// **********************************/ renameWidget = new QWidget(this); renameLay = new QVBoxLayout; renameTitle = new CustomLabel("<center>" + tr("Rename File") + "</center>"); renameTitle->setFontSize(25); renameTitle->setBold(true); renameOldName = new CustomLabel; renameOldName->setFontSize(15); renameOldName->setItalic(true); renameOldName->setFontColor("grey","grey"); renameOldName->setPadding(10); QHBoxLayout *renameNewLay = new QHBoxLayout; renameNewName = new CustomLineEdit; renameNewName->setFixedWidth(300); renameNewName->setFontSize(15); renameOldEnding = new CustomLabel; renameOldEnding->setFontSize(15); renameNewLay->addStretch(); renameNewLay->addWidget(renameNewName); renameNewLay->addWidget(renameOldEnding); renameNewLay->addStretch(); renameNewNameExists = new CustomLabel(" "); renameNewNameExists->setFontColor("red","red"); renameNewNameExists->setBold(true); renameSave = new CustomPushButton(tr("Save")); renameSave->setPadding(10); renameSave->setFontSize("13pt"); renameSave->setBold(true); renameCancel = new CustomPushButton(tr("Cancel")); renameCancel->setPadding(10); renameCancel->setFontSize("13pt"); renameCancel->setBold(true); renameLay->addStretch(); renameLay->addWidget(renameTitle); renameLay->addWidget(renameOldName); renameLay->addSpacing(5); renameLay->addLayout(renameNewLay); renameLay->addWidget(renameNewNameExists); QHBoxLayout *renameButLay = new QHBoxLayout; renameButLay->addStretch(); renameButLay->addWidget(renameSave); renameButLay->addWidget(renameCancel); renameButLay->addStretch(); renameLay->addLayout(renameButLay); renameLay->addStretch(); connect(renameNewName, SIGNAL(textEdited(QString)), this, SLOT(validateRenameFilename())); connect(renameSave, SIGNAL(clicked()), this, SLOT(doRename())); connect(renameCancel, SIGNAL(clicked()), this, SLOT(animate())); renameWidget->setLayout(renameLay); /********************************** /////////// DELETE //////////////// **********************************/ // On Linux (X11) a "move to trash" is the default (according to freedesktop.org standard). On all other systems, this option is not (yet) available. deleteWidget = new QWidget(this); deleteLay = new QVBoxLayout; deleteTitle = new CustomLabel("<center>" + tr("Delete File") + "</center>"); deleteTitle->setFontSize(15); deleteTitle->setBold(true); deleteFilename = new CustomLabel(" "); deleteFilename->setFontSize(15); deleteFilename->setItalic(true); deleteFilename->setFontColor("grey","grey"); deleteFilename->setPadding(10); deleteQuestion = new CustomLabel("<center>" + tr("Do you really want to delete this file?") +"</center>"); deleteQuestion->setFontSize(15); deleteQuestion->setPadding(10); deleteYesHard = new CustomPushButton(tr("Delete permanently")); deleteYesHard->setPadding(6); #ifdef Q_OS_LINUX deleteYesHard->setFontSize("10pt"); #else deleteYesHard->setFontSize("13pt"); deleteYesHard->setBold(true); #endif #ifdef Q_OS_LINUX deleteYes = new CustomPushButton(tr("Move to Trash")); deleteYes->setPadding(6); deleteYes->setFontSize("13pt"); deleteYes->setBold(true); #else deleteYes = new CustomPushButton; deleteYes->hide(); #endif deleteNo = new CustomPushButton(tr("Cancel")); deleteNo->setPadding(6); deleteNo->setFontSize("13pt"); deleteNo->setBold(true); QHBoxLayout *deleteButLay = new QHBoxLayout; deleteButLay->addStretch(); #ifdef Q_OS_LINUX deleteButLay->addWidget(deleteYes); #else deleteButLay->addWidget(deleteYesHard); #endif deleteButLay->addWidget(deleteNo); deleteButLay->addStretch(); #ifdef Q_OS_LINUX QHBoxLayout *deleteHardButLay = new QHBoxLayout; deleteHardButLay->addStretch(); deleteHardButLay->addWidget(deleteYesHard); deleteHardButLay->addStretch(); #endif deleteLay->addStretch(); deleteLay->addWidget(deleteTitle); deleteLay->addWidget(deleteFilename); deleteLay->addWidget(deleteQuestion); deleteLay->addLayout(deleteButLay); #ifdef Q_OS_LINUX deleteLay->addLayout(deleteHardButLay); #endif deleteLay->addStretch(); connect(deleteYes, SIGNAL(clicked()), this, SLOT(doDelete())); connect(deleteNo, SIGNAL(clicked()), this, SLOT(animate())); QSignalMapper *mapper = new QSignalMapper; mapper->setMapping(deleteYesHard,1); connect(deleteYesHard, SIGNAL(clicked()), mapper, SLOT(map())); connect(mapper, SIGNAL(mapped(int)), this, SLOT(doDelete(int))); deleteWidget->setLayout(deleteLay); /******************************** /////////// MOVE //////////////// ********************************/ moveWidget = new QWidget(this); moveLay = new QVBoxLayout; moveTitle = new CustomLabel("<center>" + tr("Moving File") + "</center>"); moveTitle->setFontSize(25); moveTitle->setBold(true); moveTree = new QTreeView; moveTree->setStyleSheet(fileTreeCSS); moveTree->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); moveTree->setHeaderHidden(true); moveScrollbar = new CustomScrollbar; moveScrollbar->keepAlwaysVisible(true); moveTree->setVerticalScrollBar(moveScrollbar); moveTreeModel = new QFileSystemModel; moveTreeModel->setRootPath(QDir::rootPath()); moveTreeModel->setFilter(QDir::Dirs | QDir::NoDotAndDotDot); moveTree->setCurrentIndex(moveTreeModel->index(QDir::homePath())); moveTree->setModel(moveTreeModel); for(int i = 1; i < moveTreeModel->columnCount(); ++i) moveTree->setColumnHidden(i,true); moveNewNameExists = new CustomLabel(" "); moveNewNameExists->setFontColor("red","red"); moveNewNameExists->setBold(true); moveNewNameLabel = new CustomLabel(tr("Filename") + ":"); moveNewNameLabel->setFontSize(12); moveNewNameLabel->setBold(true); moveNewName = new CustomLineEdit; moveNewName->setFixedWidth(300); moveNewName->setFontSize(12); moveNewNameEnding = new CustomLabel(".xyz"); moveNewNameEnding->setFontSize(12); moveNewNameEnding->setBold(true); QHBoxLayout *moveNewNameLay = new QHBoxLayout; moveNewNameLay->addStretch(); moveNewNameLay->addWidget(moveNewNameLabel); moveNewNameLay->addWidget(moveNewName); moveNewNameLay->addWidget(moveNewNameEnding); moveNewNameLay->addStretch(); moveSave = new CustomPushButton(tr("Move")); moveSave->setPadding(10); moveSave->setFontSize("11pt"); moveSave->setBold(true); moveCancel = new CustomPushButton(tr("Cancel")); moveCancel->setPadding(10); moveCancel->setFontSize("11pt"); moveCancel->setBold(true); QHBoxLayout *moveButLay = new QHBoxLayout; moveButLay->addStretch(); moveButLay->addWidget(moveSave); moveButLay->addWidget(moveCancel); moveButLay->addStretch(); moveLay->addSpacing(20); moveLay->addWidget(moveTitle); moveLay->addWidget(moveTree); moveLay->addWidget(moveNewNameExists); moveLay->addLayout(moveNewNameLay); moveLay->addLayout(moveButLay); moveLay->addSpacing(20); connect(moveCancel, SIGNAL(clicked()), this, SLOT(animate())); connect(moveSave, SIGNAL(clicked()), this, SLOT(doMove())); connect(moveNewName, SIGNAL(textEdited(QString)), this, SLOT(validateMoveAndCopyFilename())); connect(moveTree, SIGNAL(clicked(QModelIndex)), this, SLOT(validateMoveAndCopyFilename())); moveWidget->setLayout(moveLay); /******************************** /////////// COPY //////////////// ********************************/ copyWidget = new QWidget(this); copyLay = new QVBoxLayout; copyTitle = new CustomLabel("<center>" + tr("Copying File") + "</center>"); copyTitle->setFontSize(25); copyTitle->setBold(true); copyTree = new QTreeView; copyTree->setStyleSheet(fileTreeCSS); copyTree->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); copyTree->setHeaderHidden(true); copyScrollbar = new CustomScrollbar; copyScrollbar->keepAlwaysVisible(true); copyTree->setVerticalScrollBar(copyScrollbar); copyTreeModel = new QFileSystemModel; copyTreeModel->setRootPath(QDir::rootPath()); copyTreeModel->setFilter(QDir::Dirs | QDir::NoDotAndDotDot); copyTree->setCurrentIndex(copyTreeModel->index(QDir::homePath())); copyTree->setModel(copyTreeModel); for(int i = 1; i < copyTreeModel->columnCount(); ++i) copyTree->setColumnHidden(i,true); copyNewNameExists = new CustomLabel(" "); copyNewNameExists->setFontColor("red", "red"); copyNewNameExists->setBold(true); copyNewNameLabel = new CustomLabel(tr("Filename") + ":"); copyNewNameLabel->setFontSize(12); copyNewNameLabel->setBold(true); copyNewName = new CustomLineEdit; copyNewName->setFixedWidth(300); copyNewName->setFontSize(12); copyNewNameEnding = new CustomLabel(".xyz"); copyNewNameEnding->setFontSize(12); copyNewNameEnding->setBold(true); QHBoxLayout *copyNewNameLay = new QHBoxLayout; copyNewNameLay->addStretch(); copyNewNameLay->addWidget(copyNewNameLabel); copyNewNameLay->addWidget(copyNewName); copyNewNameLay->addWidget(copyNewNameEnding); copyNewNameLay->addStretch(); copySave = new CustomPushButton(tr("Copy")); copySave->setFontSize("11pt"); copySave->setPadding(10); copySave->setBold(true); copyCancel = new CustomPushButton(tr("Cancel")); copyCancel->setFontSize("11pt"); copyCancel->setPadding(10); copyCancel->setBold(true); QHBoxLayout *copyButLay = new QHBoxLayout; copyButLay->addStretch(); copyButLay->addWidget(copySave); copyButLay->addWidget(copyCancel); copyButLay->addStretch(); copyLay->addSpacing(20); copyLay->addWidget(copyTitle); copyLay->addWidget(copyTree); copyLay->addWidget(copyNewNameExists); copyLay->addLayout(copyNewNameLay); copyLay->addLayout(copyButLay); copyLay->addSpacing(20); connect(copyCancel, SIGNAL(clicked()), this, SLOT(animate())); connect(copySave, SIGNAL(clicked()), this, SLOT(doCopy())); connect(copyNewName, SIGNAL(textEdited(QString)), this, SLOT(validateMoveAndCopyFilename())); connect(copyTree, SIGNAL(clicked(QModelIndex)), this, SLOT(validateMoveAndCopyFilename())); copyWidget->setLayout(copyLay); // Widget layout - only one at a time will be visible allWidgets = new QHBoxLayout; allWidgets->addWidget(renameWidget); allWidgets->addWidget(copyWidget); allWidgets->addWidget(deleteWidget); allWidgets->addWidget(moveWidget); this->setWidgetLayout(allWidgets); // catch finished animation event: connect(this, SIGNAL(notifyOfAniFinished()), this, SLOT(aniFinished())); }