#include #include #include"MainWindow.h" #include"Encryption.h" #include"Decryption.h" #include"KeyRetrieval.h" #include"FileNameRetrieval.h" #include"FolderStructure.h" MainWindow::MainWindow() { kh = unique_ptr{new KeyManagementWindow}; ph = unique_ptr{new PasswordManagementWindow}; 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(); std::vector fn{fnr.fileNameContainer()}; for (auto fle: fn) { QString bl{QString::fromStdString(fle)}; selectionBox.get()->addItem(bl); } } 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::encryptPassword() { QString passwordToEncrypt{textForCryption.get()->toPlainText()}, keyForEncryption{selectionBox.get()->currentText()}; auto passwordToEncryptString = passwordToEncrypt.toStdString(), keyForEncryptionString = FolderStructure::keyDirectory+keyForEncryption.toStdString(); std::cout<<"Will encrypt \""<show(); } void MainWindow::passwordManageWindow() { ph.get()->show(); } void MainWindow::exitApplication() { exit(0); } std::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); }