TreeviewRead::TreeviewRead(QWidget *parent) { QStringList filters; QString homepath = QDir::homePath(); setupUi(this); connect( cmd_save, SIGNAL( clicked() ), this, SLOT(folder_einlesen_beenden())); connect( cmd_cancel, SIGNAL( clicked() ), this, SLOT(close())); connect( pushButton_treeview, SIGNAL( clicked() ), this, SLOT(folder_einlesen())); dirModel = new QFileSystemModel; selModel = new QItemSelectionModel(dirModel); treeView->setModel(dirModel); treeView->setSelectionModel(selModel); filters << "*.fsa"; dirModel->setFilter(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot); dirModel->setNameFilters(filters); QModelIndex cwdIndex = dirModel->index(homepath +"/.qt4-fs-client"); treeView->setRootIndex(cwdIndex); }
DialogClone::DialogClone(QWidget *parent) { setupUi(this); // this sets up GUI connect( bt_save, SIGNAL( clicked() ), this, SLOT( todo() ) ); connect( rdbt_clone, SIGNAL( clicked() ), this, SLOT(rdbutton_clone() ) ); connect( rdbt_image_save, SIGNAL( clicked() ), this, SLOT(rdbutton_image_save() ) ); connect( rdbt_image_restore, SIGNAL( clicked() ), this, SLOT(rdbutton_image_restore() ) ); connect( rdbt_partition_save, SIGNAL( clicked() ), this, SLOT(rdbutton_partition_image_save() ) ); connect( rdbt_partition_restore, SIGNAL( clicked() ), this, SLOT(rdbutton_partition_image_restore() ) ); connect( pushButton_break, SIGNAL( clicked() ), this, SLOT(esc_end())); connect( bt_end, SIGNAL( clicked() ), this, SLOT(close())); connect( pushButton_folder, SIGNAL( clicked() ), this, SLOT(folder_einlesen())); connect( pushButton_partition, SIGNAL( clicked() ), this, SLOT(listWidget_auslesen())); dirModel = new QFileSystemModel; selModel = new QItemSelectionModel(dirModel); treeView_clone->setModel(dirModel); treeView_clone->setSelectionModel(selModel); QModelIndex cwdIndex = dirModel->index(QDir::rootPath()); dirModel->setRootPath(QDir::rootPath()); treeView_clone->setRootIndex(cwdIndex); rdbt_clone->setChecked(Qt::Checked); treeView_clone->setEnabled(false); format_Disk(); bt_save->setText (tr("Clone Harddrive", "Festplatte klonen")); timer_clone = new QTimer(this); timer_read_write = new QTimer(this); // Erforderlich um Textdatei vor dem ersten Auslesen mit 3 Zeilen zu füllen QString befehl = "vmstat 1 2 1> " + homepath + "/.config/qt5-fsarchiver/disk.txt"; system (befehl.toAscii().data()); chk_zip->setEnabled(false); chk_zip->setChecked(Qt::Checked); //chk_zip->set| grepHidden(true); listWidget->setHidden(true); addWidget(); }
int DialogMBR::mbr() { QString befehl; int i; int success = 0; int pos=0; int pos2=0; QString partition; QString homepath = QDir::homePath(); QModelIndex index = treeView->currentIndex(); QModelIndexList indexes = selModel->selectedIndexes(); //Ubuntu Version einlesen, nur wenn Systempartition Ubuntuversion_auslesen(); i = cmb_disk->currentIndex(); partition = disk_name[i]; efiflag = is_gpt("/dev/" + partition); folder_ = (dirModel->filePath(index)); pos = folder_.indexOf("mbr_sd"); pos2 = folder_.indexOf("gpt_sd"); if (efiflag == 0 && (pos == -1) && (dialog_auswertung == 5)){ QMessageBox::about(this, tr("Note", "Hinweis"), tr("You must choose the MBR file\n","Sie müssen eine MBR Sicherungsdatei auswählen.\n")); return 1 ; } if (efiflag == 1 && (pos2 == -1) && (dialog_auswertung == 5)) { QMessageBox::about(this, tr("Note", "Hinweis"), tr("You must choose the GPT file\n","Sie müssen eine GPT Sicherungsdatei auswählen.\n")); return 1 ; } if (efiflag == 0){ success = sektor_auslesen(); if (success == 1) return 1; } if (efiflag == 1 && (dialog_auswertung == 5)) cmb_mbr->setEnabled(false); if (efiflag == 0 && (dialog_auswertung == 5)) cmb_mbr->setEnabled(true); if (dialog_auswertung == 4) { i = folder_einlesen(); if (i ==0) { QFile file(folder_); this->setCursor(Qt::WaitCursor); if (efiflag == 0) befehl = ("dd if=/dev/" + partition + " of='" + folder_ + "'/" + Ubuntuversion + "_mbr_" + partition + " bs=" + Sektor_byte + " " + "count=1"); this->setCursor(Qt::ArrowCursor); if (efiflag == 1) befehl = ("sgdisk -b '" + folder_ + "'/" + Ubuntuversion + "_gpt_" + partition + " /dev/" + partition); i = system (befehl.toLatin1().data()); this->setCursor(Qt::ArrowCursor); if (i == 0 && efiflag == 0) QMessageBox::about(this,tr("Note", "Hinweis"), tr("MBR was successfully backed up.\n", "MBR wurde erfolgreich gesichert.\n")); if (i != 0 && efiflag == 0) QMessageBox::about(this, tr("Note", "Hinweis"), tr("MBR has not been backeed.\n", "MBR wurde nicht gesichert.\n")); if (i == 0 && efiflag == 1) QMessageBox::about(this,tr("Note", "Hinweis"), tr("GPT was successfully backed up.\n", "GPT wurde erfolgreich gesichert.\n")); if (i != 0 && efiflag == 1) QMessageBox::about(this, tr("Note", "Hinweis"), tr("GPT has not been backeed.\n", "GPT wurde nicht gesichert.\n")); } } if (dialog_auswertung == 5 && efiflag == 1) { i = folder_einlesen(); if (i ==1) return 0; int auswertung = questionMessage(tr("Caution: If you really want to to write back the GUID partition table?\n", "Vorsicht: Wollen Sie wirklich die GUID Partitionstabelle zurückschreiben?\n")); if (auswertung == 2) return 1; if (i ==0) { this->setCursor(Qt::WaitCursor); if (cmb_mbr->currentIndex() == 0) { befehl = ("sgdisk -l '" + folder_ + "' /dev/" + partition); i = system (befehl.toLatin1().data()); this->setCursor(Qt::ArrowCursor); if (i == 0) QMessageBox::about(this, tr("Note", "Hinweis"), tr("The GUID partition table is successful return.\n", "Die GUID Partitionstabelle wurde erfolgreich wieder hergestellt.\n")); else QMessageBox::about(this, tr("Note", "Hinweis"), tr("The GUID partition table was not restored.\n", "Die GUID Partitionstabelle wurde nicht wieder hergestellt.\n")); } } } if (dialog_auswertung == 5 && cmb_mbr->currentIndex() != 3 && efiflag == 0) { i = folder_einlesen(); if (i ==1) return 0; if (efiflag == 0) { int auswertung = questionMessage(tr("Caution: If you really want to to write back the MBR completely or partially?\n", "Vorsicht: Wollen Sie wirklich den MBR komplett beziehungsweise teilweise zurückschreiben?\n")); if (auswertung == 2) return 1; if (i ==0) { this->setCursor(Qt::WaitCursor); if (cmb_mbr->currentIndex() == 0) { befehl = ("dd if='"+ folder_ + "' of=/dev/" + partition + " bs=1 count=446"); i = system (befehl.toLatin1().data()); this->setCursor(Qt::ArrowCursor); if (i == 0) QMessageBox::about(this, tr("Note", "Hinweis"), tr("The Boot Loader section is successful return.\n", "Der Bootloaderbereich wurde erfolgreich wieder hergestellt.\n")); else QMessageBox::about(this, tr("Note", "Hinweis"), tr("The boot loader area was not restored.\n", "Der Bootloaderbereich wurde nicht wieder hergestellt.\n")); } if (cmb_mbr->currentIndex() == 2) { //Partitionstabelle extrahieren befehl = ("dd if='"+ folder_ + "' of=" + homepath + "/.mbr.txt bs=1 skip=446 count=66"); i = system (befehl.toLatin1().data()); //Partitionstabelle wiederherstellen befehl = ("dd if=" + homepath + "/.mbr.txt of=/dev/" + partition + " bs=1 seek=446 count=66"); i = i + system (befehl.toLatin1().data()); //Datei löschen befehl = "rm " + homepath + "/.mbr.txt"; system (befehl.toLatin1().data()); this->setCursor(Qt::ArrowCursor); if (i == 0) QMessageBox::about(this, tr("Note", "Hinweis"), tr("The partition table is successful return.", "Die Partitionstabelle wurde erfolgreich wieder hergestellt.\n")); else QMessageBox::about(this, tr("Note", "Hinweis"), tr("The partition table was not restored.\n", "Die Partitionstabelle wurde nicht wieder hergestellt.\n")); } if (cmb_mbr->currentIndex() == 1) { // MBR und Pasrtitionstabelle wieder herstellen befehl = ("dd if='"+ folder_ + "' of=/dev/" + partition + " bs=1 count=512"); i = system (befehl.toLatin1().data()); this->setCursor(Qt::ArrowCursor); if (i == 0) QMessageBox::about(this, tr("Note","Hinweis"), tr("The MBR is successful return.\n", "Der MBR wurde erfolgreich wieder hergestellt.\n")); else QMessageBox::about(this, tr("Note", "Hinweis"), tr("The MBR is not restored.\n", "Der MBR wurde nicht wieder hergestellt.\n")); } } } } if (dialog_auswertung == 5 && cmb_mbr->currentIndex() == 3) { i = folder_einlesen(); if (i ==1) return 0; int auswertung = questionMessage(tr("Caution: If you really want to to write back the secret field?\n", "Vorsicht: Wollen Sie wirklich den verborgenen Bereich zurückschreiben? \n")); if (auswertung == 2) return 1; //i = folder_einlesen(); this->setCursor(Qt::WaitCursor); if (i ==0) { //verborgenen Bereich extrahieren befehl = ("dd if='"+ folder_ + "' of=" + homepath + "/.mbr.txt bs=1 skip=512 count=" + Sektor_byte_1); i = system (befehl.toLatin1().data()); //verborgenen Bereich wiederherstellen befehl = ("dd if=" + homepath + "/.mbr.txt of=/dev/" + partition + " bs=1 seek=512 count=" + Sektor_byte_1); i = i + system (befehl.toLatin1().data()); //Datei löschen befehl = "rm " + homepath + "/.mbr.txt"; i = system (befehl.toLatin1().data()); this->setCursor(Qt::ArrowCursor); if (i == 0) QMessageBox::about(this, tr("Note", "Hinweis"), tr("The hidden area is successful return.\n", "Der verborgene Bereich wurde erfolgreich wieder hergestellt.\n")); else QMessageBox::about(this, tr("Note", "Hinweis"), tr("The hidden area was not restored.\n", "Der verborgene Bereich wurde nicht wieder hergestellt.\n")); } } return 0; }