Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef RENAMEME_H
- #define RENAMEME_H
- #include <QMainWindow>
- #include <QWidget>
- #include <QVBoxLayout>
- #include <QHBoxLayout>
- #include <QGridLayout>
- #include <QPushButton>
- #include <QListWidget>
- #include <QLabel>
- #include <QMenuBar>
- #include <QLineEdit>
- #include <QFileDialog>
- #include <QList>
- #include <QListView>
- #include <QDir>
- #include <QStringList>
- #include <QStringListModel>
- class RenameMe : public QMainWindow
- {
- Q_OBJECT
- public:
- explicit RenameMe(QWidget *parent = 0);
- ~RenameMe();
- public slots:
- void oldFileClicked();
- void newFileClicked();
- void renameAllClicked();
- signals:
- private:
- void createMenu();
- void createHeading();
- void createAddBtns();
- void createListView();
- void createRenameBtn();
- void createLineEdits();
- void createModels();
- void renameFiles(QString toFind, QString toReplace);
- QWidget *mainWidget;
- QGridLayout *textEditGrid;
- QVBoxLayout *mainLayout;
- QGridLayout *layoutBtns;
- QHBoxLayout *layoutListWidgets;
- QPushButton *addOldBtn;
- QPushButton *addNewBtn;
- QPushButton *renameAllBtn;
- QLabel *headingLabel;
- QLabel *lblOldFileNames;
- QLabel *lblNewFileNames;
- QLabel *lblOldPath;
- QLabel *lblNewPath;
- QLabel *lblBlankSpacer;
- QMenuBar *mainMenu;
- QLineEdit *edtOldText;
- QLineEdit *edtNewText;
- QFileDialog *fdlgSelectDir;
- QStringListModel *oldFilesModel;
- QStringListModel *newFilesModel;
- QListView *oldFilesView;
- QListView *newFilesView;
- QDir *oldPathDir;
- QDir *newPathDir;
- QStringList *tempOldFiles;
- QStringList *tempNewFiles;
- QStringList *newFiles;
- };
- #endif // RENAMEME_H
- #include <QString>
- #include <QStringList>
- #include <QStringListModel>
- #include <QMessageBox>
- #include "renameme.h"
- RenameMe::RenameMe(QWidget *parent) :
- QMainWindow(parent)
- {
- createHeading();
- createAddBtns();
- createModels();
- createListView();
- createRenameBtn();
- createLineEdits();
- connect(addOldBtn, SIGNAL(clicked()), this, SLOT(oldFileClicked()));
- connect(addNewBtn, SIGNAL(clicked()), this, SLOT(newFileClicked()));
- connect(renameAllBtn, SIGNAL(clicked()), this, SLOT(renameAllClicked()));
- mainLayout = new QVBoxLayout;
- lblBlankSpacer = new QLabel;
- lblBlankSpacer->setText("");
- mainLayout->addWidget(headingLabel,0,Qt::AlignCenter);
- mainLayout->addLayout(layoutBtns);
- mainLayout->addWidget(lblBlankSpacer);
- mainLayout->addLayout(layoutListWidgets);
- mainLayout->addWidget(lblBlankSpacer);
- mainLayout->addLayout(textEditGrid);
- mainLayout->addWidget(lblBlankSpacer);
- mainLayout->addWidget(renameAllBtn,0,Qt::AlignCenter);
- mainWidget = new QWidget;
- mainWidget->setLayout(mainLayout);
- setCentralWidget(mainWidget);
- }
- RenameMe::~RenameMe()
- {
- }
- void RenameMe::createModels()
- {
- QStringList numbers;
- numbers << "Select Old Files";
- oldFilesModel = new QStringListModel(numbers);
- QStringList numbers2;
- numbers2 << "";
- newFilesModel = new QStringListModel(numbers2);
- }
- void RenameMe::createHeading()
- {
- headingLabel = new QLabel;
- headingLabel->setText("Add the files to bulk rename below.");
- }
- void RenameMe::createAddBtns()
- {
- addOldBtn = new QPushButton;
- addOldBtn->setText("Select Existing Files Directory...");
- addNewBtn = new QPushButton;
- addNewBtn->setText("Select New Files Directory...");
- lblOldPath = new QLabel;
- lblOldPath->setText("Select the path to the old files above.");
- lblNewPath = new QLabel;
- lblNewPath->setText("Select the path to the new files above");
- layoutBtns = new QGridLayout;
- layoutBtns->addWidget(addOldBtn,0,0,1,1,Qt::AlignLeft);
- layoutBtns->addWidget(addNewBtn,0,1,1,1,Qt::AlignLeft);
- layoutBtns->addWidget(lblOldPath,1,0,1,1,Qt::AlignLeft);
- layoutBtns->addWidget(lblNewPath,1,1,1,1,Qt::AlignLeft);
- }
- void RenameMe::createListView()
- {
- oldFilesView = new QListView;
- oldFilesView->setModel(oldFilesModel);
- oldFilesView->setEditTriggers(QAbstractItemView::NoEditTriggers);
- newFilesView = new QListView;
- newFilesView->setModel(newFilesModel);
- layoutListWidgets = new QHBoxLayout;
- layoutListWidgets->addWidget(oldFilesView);
- layoutListWidgets->addWidget(newFilesView);
- }
- void RenameMe::createRenameBtn()
- {
- renameAllBtn = new QPushButton;
- renameAllBtn->setText("Rename All");
- }
- void RenameMe::createLineEdits()
- {
- lblOldFileNames = new QLabel;
- lblOldFileNames->setText("Enter text to find in old file names:");
- lblNewFileNames = new QLabel;
- lblNewFileNames->setText("Enter replacement text for new file names:");
- edtOldText = new QLineEdit;
- edtNewText = new QLineEdit;
- textEditGrid = new QGridLayout;
- textEditGrid->addWidget(lblOldFileNames,0,0);
- textEditGrid->addWidget(lblNewFileNames,0,1);
- textEditGrid->addWidget(edtOldText,1,0);
- textEditGrid->addWidget(edtNewText,1,1);
- }
- void RenameMe::oldFileClicked()
- {
- QString oldPath;
- oldPath = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
- "/home",
- QFileDialog::ShowDirsOnly
- | QFileDialog::DontResolveSymlinks);
- lblOldPath->setText(oldPath);
- oldPathDir = new QDir(oldPath);
- tempOldFiles = new QStringList;
- tempOldFiles->clear();
- tempOldFiles->append(oldPathDir->entryList(QDir::Files | QDir::NoSymLinks));
- oldFilesModel->setStringList(*tempOldFiles);
- }
- void RenameMe::newFileClicked()
- {
- QString newPath;
- newPath = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
- "/home",
- QFileDialog::ShowDirsOnly
- | QFileDialog::DontResolveSymlinks);
- lblNewPath->setText(newPath);
- newPathDir = new QDir(newPath);
- }
- void RenameMe::renameAllClicked()
- {
- QString toFind, toReplace;
- toFind = edtOldText->text();
- toReplace = edtNewText->text();
- if (toFind=="") {
- QMessageBox msgBox;
- msgBox.setText("Please enter text to replace.");
- msgBox.exec();
- }
- else if (toReplace=="") {
- QMessageBox msgBox;
- msgBox.setText("Please enter replacement text.");
- msgBox.exec();
- }
- else renameFiles(toFind, toReplace);
- }
- void RenameMe::renameFiles(QString toFind, QString toReplace)
- {
- tempNewFiles = new QStringList;
- newFiles = new QStringList;
- *tempNewFiles = oldFilesModel->stringList();
- for (int i = 0; i < tempNewFiles->size(); ++i) {
- QString tempFile;
- tempFile = tempNewFiles->at(i);
- tempFile.replace(toFind, toReplace, Qt::CaseInsensitive);
- newFiles->append(tempFile);
- }
- newFilesModel->setStringList(*newFiles);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement