#include #include #include"MainWindow.h" #include"Encryption.h" #include"Decryption.h" #include"KeyRetrieval.h" #include"FileNameRetrieval.h" #include"FolderStructure.h" #include"Key.h" #include"Password.h" MainWindow::MainWindow() { MainWindow* mw = this; QWidget* w = 0; ph = unique_ptr{new PasswordManagementWindow}; kh = unique_ptr{new KeyManagementWindow{w, mw, ph.get()}}; sf = unique_ptr{new SaveFile}; setupMainWindow(); } void MainWindow::setupMainWindow() { windowHeight = 450; windowWidth = 450; textForCryption = unique_ptr{new QTextEdit{}}; actionButton = unique_ptr{new QPushButton(tr("encrypt"))}; selectionBox = unique_ptr{new QComboBox{}}; buttonLayout = unique_ptr{new QVBoxLayout}; buttonWidget = unique_ptr{new QWidget}; buttonDockWidget = unique_ptr{new QDockWidget}; buttonDockWidget.get()->setWindowTitle(tr("Cryption Controls")); buttonLayout.get()->addWidget(selectionBox.get()); buttonLayout.get()->addWidget(actionButton.get()); buttonWidget.get()->setLayout(buttonLayout.get()); buttonDockWidget.get()->setWidget(buttonWidget.get()); buttonDockWidget.get()->setFeatures(QDockWidget::NoDockWidgetFeatures); setCentralWidget(buttonDockWidget.get()); cryptionArea = unique_ptr{new QDockWidget(tr("Cryption"))}; cryptionArea.get()->setWidget(textForCryption.get()); cryptionArea.get()->setFeatures(QDockWidget::NoDockWidgetFeatures); addDockWidget(Qt::LeftDockWidgetArea, cryptionArea.get()); createMenus(); setupContentOfComboBox(); setWindowTitle("Encryption Decryption Messaging"); setFixedHeight(windowHeight); setFixedWidth(windowWidth); actionButton.get()->setEnabled(false); connections(); } void MainWindow::setupContentOfComboBox() { selectionBox.get()->clear(); FileNameRetrieval fnr; fnr.retrieveFileNames(); vector fn{fnr.fileNameContainer()}; for (auto fle: fn) { QString bl{QString::fromStdString(fle)}; selectionBox.get()->addItem(bl); } } void MainWindow::refreshComboBox() { setupContentOfComboBox(); } void MainWindow::createMenus() { fileMenu = unique_ptr{menuBar()->addMenu(tr("File"))}; editMenu = unique_ptr{menuBar()->addMenu(tr("Edit"))}; closeApplication = unique_ptr{new QAction(new QObject(nullptr))}; closeApplication.get()->setText("Exit Application"); keyEdit = unique_ptr{new QAction(new QObject(nullptr))}; keyEdit.get()->setText("Key Management"); passwordManage = unique_ptr{new QAction{new QObject{nullptr}}}; passwordManage.get()->setText("PasswordManagement"); fileMenu.get()->addAction(closeApplication.get()); editMenu.get()->addAction(keyEdit.get()); editMenu.get()->addAction(passwordManage.get()); } void MainWindow::connections() { QObject::connect(closeApplication.get(), SIGNAL(triggered()), this, SLOT(exitApplication())); QObject::connect(keyEdit.get(), SIGNAL(triggered()), this, SLOT(keyManagementWindow())); QObject::connect(passwordManage.get(), SIGNAL(triggered()), this, SLOT(passwordManageWindow())); QObject::connect(actionButton.get(), SIGNAL(clicked()), this, SLOT(encryptPassword())); QObject::connect(textForCryption.get(), SIGNAL(textChanged()), this, SLOT(activateButton())); } void MainWindow::switchControlEnabling() { if (controlsEnabled) { switchControls(!controlsEnabled); controlsEnabled = false; } else { switchControls(!controlsEnabled); controlsEnabled = true; } } void MainWindow::switchControls(const bool enabled) { textForCryption.get()->setEnabled(enabled); selectionBox.get()->setEnabled(enabled); actionButton.get()->setEnabled(enabled); passwordManage.get()->setEnabled(enabled); } void MainWindow::requestFilename() { std::cout<<"Start"<show(); SaveFile* sfo = new SaveFile{}; sfo->show(); //sfo->quit(); std::cout<<"End"<toPlainText()}, keyForEncryption{selectionBox.get()->currentText()}; auto passwordToEncryptString = passwordToEncrypt.toStdString(), keyForEncryptionString = FolderStructure::keyDirectory+keyForEncryption.toStdString(); std::cout<<"Generated filename that contains encrypted password: "< pass{}; Key<> k; pass.setupDecryptedMessage(passwordToEncryptString); k.setupFilename(strKeyFilename); Encryption ec2{pass, k}; std::cout<<"Encrypted"<populatePass(); */ } void MainWindow::keyManagementWindow() { kh.get()->show(); } void MainWindow::passwordManageWindow() { ph.get()->show(); } void MainWindow::exitApplication() { exit(0); } string MainWindow::grabCryptionText() { auto placeHolder = textForCryption.get()->toPlainText(); return placeHolder.toStdString(); } void MainWindow::activateButton() { QString content{textForCryption.get()->toPlainText()}; if (content.size()>0 && selectionBox.get()->count()>0) actionButton.get()->setEnabled(true); else actionButton.get()->setEnabled(false); }