// ======================================================= int CInterfaceNewt::askLogin(char *szLogin, char *szPasswd, WORD size) { newtComponent editLoginText; newtComponent editPasswdText; newtComponent labelLoginText; newtComponent labelPasswdText; newtComponent form; newtComponent btnOk; newtComponent btnCancel; newtComponent temp; int nOk = 0; while (!nOk) { newtCenteredWindow(65, 20, i18n("Password required")); labelLoginText = newtTextbox(1, 5, 60, 1, 0); newtTextboxSetText(labelLoginText, i18n("Enter your login")); editLoginText = newtEntry(1, 6, "", 55, NULL, NEWT_ENTRY_SCROLL); labelPasswdText = newtTextbox(1, 9, 60, 1, 0); newtTextboxSetText(labelPasswdText, i18n("Enter your password")); editPasswdText = newtEntry(1, 10, "", 55, NULL, NEWT_FLAG_HIDDEN); btnOk = newtButton(15, 14, i18n("Ok")); btnCancel = newtButton(40, 14, i18n("Cancel")); form = newtForm(NULL, NULL, 0); newtFormAddComponents(form, labelLoginText, editLoginText, labelPasswdText, editPasswdText, btnOk, btnCancel, NULL); temp = newtRunForm(form); newtPopWindow(); if (temp == btnCancel) { newtFormDestroy(form); RETURN_int(-1); } strncpy(szLogin, newtEntryGetValue(editLoginText), size-1); *(szLogin+size-1) = '\0'; strncpy(szPasswd, newtEntryGetValue(editPasswdText), size-1); *(szPasswd+size-1) = '\0'; if (!(*szLogin) || !(*szPasswd)) msgBoxError(i18n("Text cannot be empty")); else nOk = 1; newtFormDestroy(form); } return 0; }
bool CEphList::showNoObjectSelected(int obj) { if (obj < 0) { msgBoxError(this, tr("No object selected!!!")); return false; } return true; }
// ======================================================= int CInterfaceNewt::askText(char *szMessage, char *szTitle, char *szDestText, WORD size) { newtComponent editText; newtComponent labelText; newtComponent form; newtComponent btnOk; newtComponent btnCancel; newtComponent temp; *szDestText = 0; while (!*szDestText) { newtCenteredWindow(65, 20, szTitle); labelText = newtTextbox(1, 1, 60, 7, 0/*NEWT_TEXTBOX_SCROLL*/); newtTextboxSetText(labelText, szMessage); editText = newtEntry(1, 9, "", 55, NULL, NEWT_ENTRY_SCROLL); btnOk = newtButton(15, 14, i18n("Ok")); btnCancel = newtButton(40, 14, i18n("Cancel")); form = newtForm(NULL, NULL, 0); newtFormAddComponents(form, labelText, editText, btnOk, btnCancel, NULL); temp = newtRunForm(form); newtPopWindow(); if (temp == btnCancel) { newtFormDestroy(form); RETURN_int(-1); } strncpy(szDestText, newtEntryGetValue(editText), size-1); *(szDestText+size-1) = '\0'; if (*szDestText == 0) msgBoxError(i18n("Text cannot be empty")); newtFormDestroy(form); } return 0; }
// ============================================================================ WORD CInterface::Error(CExceptions *excep, char *szFilename, char *szDevice/*=NULL*/) { signed int err; DWORD dwArg1 = excep -> get_dwArg1(); DWORD dwArg2 = excep -> get_dwArg2(); //QWORD qwArg1 = excep -> get_qwArg1(); //QWORD qwArg2 = excep -> get_qwArg2(); char * szArg1 = excep -> get_szArg1(); err = excep -> GetExcept(); excep -> setCaught(); if (err >= 0) { msgBoxError(i18n("Error: %s"), strerror(err)); return ERR_QUIT; } switch (err) { case ERR_CANCELED: msgBoxError(i18n("Action canceled as user required")); return ERR_QUIT; case ERR_ERRNO: msgBoxError(i18n("Error: %s"), strerror(dwArg1)); return ERR_QUIT; case ERR_EXIST: if (msgBoxYesNo(i18n("Overwrite image?"), i18n("The %s imagefile already exist. Do you want to overwrite it?"), szFilename) == MSGBOX_NO) return ERR_QUIT; else return ERR_RETRY; case ERR_ACCESS: msgBoxCancel(i18n("Access denied"), i18n("You don't have write access on %s"), szFilename); return ERR_QUIT; case ERR_COMP: msgBoxError(i18n("Invalid compression level for %s"), szFilename); return ERR_QUIT; case ERR_OPENED: msgBoxError(i18n("imagefile %s is already open"), szFilename); return ERR_QUIT; case ERR_EOF: case ERR_NOTFOUND: case ERR_PATH: // no code here return ERR_RETRY; case ERR_VOLUMEHEADER: msgBoxError(i18n("file %s is too short to be a partimage volume: " "can't read header"), szFilename); return ERR_QUIT; /*case ERR_PARTITIONVOLUME: msgBoxError(i18n("file %s is not an partimage volume: " "magic string does not match"), szFilename); return ERR_QUIT;*/ case ERR_WRONGMAGICINVALIMGFILE:// ERR_WRONGMAGIC: msgBoxError(i18n("file %s is not an partimage file: " "magic string does not match"), szFilename); return ERR_QUIT; case ERR_WRONGMAGIC: msgBoxError(i18n("magic string does not match: error in the image file [%s]"), szFilename); return ERR_QUIT; case ERR_VOLUMEID: msgBoxError(i18n("the current volume doesn't fit with current image: " "wrong identificator")); return ERR_QUIT; case ERR_NOMEM: msgBoxError(i18n("Out of memory.")); return ERR_QUIT; case ERR_PASSWD: msgBoxError(i18n("incorrect password or user not in partimagedusers file")); return ERR_QUIT; case ERR_TOOMANY: msgBoxError(i18n("Too many clients connected to partimaged. " "Please, retry later")); return ERR_QUIT; case ERR_BLOCKSIZE: msgBoxError(i18n("Only 4096 bytes per block %s volumes are supported. " "Current one is %lu bytes/block"), szArg1, dwArg1); return ERR_QUIT; case ERR_LOCKED: msgBoxError(i18n("The partition %s id already locked by another" "process. You can't work on it"), szArg1); return ERR_QUIT; case ERR_CHECK_CRC: ErrorCRC(excep->get_qwArg1(), excep->get_qwArg2()); return ERR_QUIT; case ERR_CHECK_NUM: msgBoxError(i18n("Error while checking the data: Invalid block number." "Maybe a volume or some data were skipped.")); return ERR_QUIT; case ERR_VOLUMENUMBER: msgBoxError(i18n("This volume (%ld) is not the expected one: %ld."), dwArg1, dwArg2); return ERR_QUIT; case ERR_HOST: msgBoxError(i18n("Hostname/IP Error!\n" "Perhaps the hostname could not be resolved. " "(Try again using IP address)")); return ERR_RETRY; /* case ERR_SSL_CONNECT: msgBoxError(i18n("Problem with SSL. Ensure partimaged uses SSL")); return ERR_QUIT; case ERR_SSL_CTX: msgBoxError(i18n("Problem with SSL. Contact partimage team for help")); return ERR_QUIT; case ERR_SSL_LOADCERT: msgBoxError( i18n("partimaged got trouble when loading SSL certificate %s"),CERTF); return ERR_QUIT; case ERR_SSL_LOADKEY: msgBoxError( i18n("partimaged got trouble when loading SSL keyfile %s"),CERTF); return ERR_QUIT; case ERR_SSL_PRIVKEY: msgBoxError("%s %s", i18n("SSL error: private key doesn't not match"), i18n("the certificate public key")); return ERR_QUIT; */ case ERR_READ_BITMAP: ErrorReadingBitmap(dwArg1, dwArg2); return ERR_QUIT; case ERR_READING: ErrorReading(dwArg1, dwArg2); return ERR_QUIT; case ERR_WRITING: ErrorWriting(dwArg1, dwArg2); return ERR_QUIT; case ERR_NOMBR: msgBoxError(i18n("No MBR was found in this imagefile. We can't " "continue")); return ERR_QUIT; case ERR_FSCHK: msgBoxError(i18n("Partition checks found error(s) on partitions")); return ERR_QUIT; case ERR_OPENING_DEVICE: ErrorOpeningPartition(szFilename, dwArg1); return ERR_QUIT; case ERR_ENCRYPT: ErrorEncryption(); return ERR_QUIT; case ERR_PART_TOOSMALL: //showDebug(1, "QW1=%llu and 2=%llu\n\n", qwArg1, qwArg2); ErrorTooSmall(excep->get_qwArg1(), excep->get_qwArg2()); return ERR_QUIT; case ERR_FAT_MISMATCH: return ERR_QUIT; case ERR_SAVE_MBR: msgBoxError(i18n("Impossible to read MBR from disk")); return ERR_QUIT; case ERR_WRONG_FS: msgBoxError(i18n("Invalid or damaged filesystem %s"), szDevice); return ERR_QUIT; case ERR_READ_SUPERBLOCK: ErrorReadingSuperblock(dwArg1); return ERR_QUIT; case ERR_ZEROING: msgBoxError(i18n("Impossible to zero the block on harddrive: %s"), strerror(dwArg1)); return ERR_QUIT; case ERR_REFUSED: msgBoxError(i18n("Connection refused by server:" " incompatibles networking options." "Try disabling login option for server with '-L'")); return ERR_QUIT; case ERR_VERSIONSMISMATCH: msgBoxError(i18n("Connection refused by server: versions mismatch")); return ERR_QUIT; case ERR_VERSION_NEWER: msgBoxError(i18n("The image file was created by a newer release (%s)" " of Partition Image. Please update this software and retry."), szArg1); return ERR_QUIT; case ERR_VERSION_OLDER: msgBoxError(i18n("The image file was created by an older release (%s)" " of Partition Image. You must use the old version to restore" "your image or you have to recreate it with current version"), szArg1); return ERR_QUIT; case ERR_NOTAPARTIMAGEFILE: msgBoxError(i18n("%s is not a valid Partition Image file or it's" " damaged. Sorry, can't continue"), szArg1); return ERR_QUIT; case ERR_NOTAREGULARFILE: msgBoxError(i18n("File %s is not a regular file. For security reasons," " we can't continue"), szArg1); return ERR_QUIT; case ERR_AUTOMOUNT: msgBoxError(i18n("Cannot mount %s"), szArg1 /*m_szMountDevice*/); return ERR_QUIT; case ERR_AUTOUMOUNT: msgBoxError(i18n("Cannot unmount %s"), szArg1 /*m_szMountDevice*/); return ERR_QUIT; case ERR_CREATESPACEFILE: msgBoxError(i18n("Cannot create temp file [%s]. Please, check there is space enough and you have access rights."), szArg1); return ERR_QUIT; case ERR_CREATESPACEFILENOSPC: msgBoxError(i18n("Cannot create temp file [%s]. No space left on device."), szArg1); return ERR_QUIT; case ERR_CREATESPACEFILEDENIED: #ifdef MUST_CHEUID msgBoxError(i18n("Cannot create temp file in [%s]. Write access is denied" " for user 'partimag'"), szArg1); #else msgBoxError(i18n("Cannot create temp file in [%s]. Write access is denied."), szArg1); #endif return ERR_QUIT; case ERR_FILETOOLARGE: msgBoxError(i18n("File too large. (larger than 2 GB). Can't continue. This problem can come from the kernel, the glibc, the file system which where the image is written")); return ERR_QUIT; default: msgBoxError(i18n("Unknown error %d -> %s"), err, szFilename); exit(-5); } }
// ======================================================= int CInterfaceNewt::guiInitMainWindow(char *szDevice, char *szImageFile, char *szNetworkIP, DWORD *dwServerPort, bool *bSsl) { newtComponent formMain, btnContinue, btnExit, btnAbout; newtComponent labelPartition, labelImage, editPartition, editImage, btnImage; newtComponent widgetTemp, labelAction, radioSave, radioRestore, radioMbr; newtComponent checkNetwork, labelNetwork, labelPort, editNetwork, editPort, checkSsl; newtExitStruct event; char szTemp[1024]; int nAction; int nRes; showDebug(8, "guiInitMainWindow\n"); SNPRINTF(szTemp, "Partition Image %s", PACKAGE_VERSION); newtCenteredWindow(67, 20, szTemp); labelPartition = newtLabel(1, 0, i18n("* Partition to save/restore")); editPartition = newtListbox(3, 1, 7, NEWT_FLAG_SCROLL); labelImage = newtLabel(1, 9, i18n("* Image file to create/use")); editImage = newtEntry(3, 10, szImageFile, 59, NULL, NEWT_FLAG_SCROLL); btnImage = newtCompactButton(62, 10, "*"); labelAction = newtLabel(1, 12, i18n("Action to be done:")); radioSave = newtRadiobutton(1, 13, i18n("Save partition into a new image file"), true, NULL); radioRestore = newtRadiobutton(1, 14, i18n("Restore partition from an image file"), false, radioSave); radioMbr = newtRadiobutton(1, 15, i18n("Restore an MBR from the image file"), false, radioRestore); checkNetwork = newtCheckbox(1, 17, i18n("Connect to server"), (!!(*szNetworkIP) ? 'X' : ' '), " X", NULL); #ifdef HAVE_SSL checkSsl = newtCheckbox(5, 19, i18n("Encrypt data on the network with SSL"), (*bSsl ? 'X' : ' '), " X", NULL); #else #ifdef MUST_LOGIN checkSsl = newtLabel(5, 19,i18n("SSL disabled at compile time")); #else checkSsl = newtLabel(5, 19,i18n("SSL&login disabled at compile time")); #endif #endif labelNetwork = newtLabel(5, 18, i18n("IP/name of the server:")); editNetwork = newtEntry(28, 18, szNetworkIP, 25, NULL, 0); labelPort = newtLabel(54, 18, i18n("Port:")); SNPRINTF(szTemp, "%u", *dwServerPort); editPort = newtEntry(60, 18, szTemp, 6, NULL, 0); btnContinue = newtCompactButton(50, 12, i18n("Next (F5)")); btnAbout = newtCompactButton(50, 14, i18n("About")); btnExit = newtCompactButton(50, 16, i18n("Exit (F6)")); nRes = fillPartitionList(editPartition); if (nRes == -1) RETURN_int(-1); formMain = newtForm(NULL, NULL, 0); newtFormAddComponents(formMain, labelPartition, labelImage, editPartition, editImage, btnImage, labelAction, radioSave, radioRestore, radioMbr, checkNetwork, labelNetwork, editNetwork, labelPort, editPort, checkSsl, btnContinue, btnAbout, btnExit, NULL); newtFormAddHotKey(formMain, KEY_EXIT); // Exit newtFormAddHotKey(formMain, KEY_OKAY); // Okay begin: /*widgetTemp = */newtFormRun(formMain, &event); widgetTemp = newtFormGetCurrent(formMain); if (((event.reason == event.NEWT_EXIT_HOTKEY) && (event.u.key == KEY_EXIT)) || ((event.reason == event.NEWT_EXIT_COMPONENT) && (widgetTemp == btnExit))) //if(widgetTemp == btnExit) return OPERATION_EXIT; if ((event.reason == event.NEWT_EXIT_COMPONENT) && (widgetTemp == btnAbout)) { showAboutDialog(); goto begin; } if ((event.reason == event.NEWT_EXIT_COMPONENT) && (widgetTemp == btnImage)) { char *fs_; fs_=filesel(newtEntryGetValue(editImage)); if(fs_) { newtEntrySet(editImage, fs_, 1); // free(fs_); } goto begin; } if (strcmp(newtEntryGetValue(editImage), "") == 0) // if "image" field empty { msgBoxError(i18n("The \"Image\" field is empty. Cannot continue")); goto begin; } if (newtCheckboxGetValue(checkNetwork) == 'X') { if (!(*newtEntryGetValue(editNetwork))) { msgBoxError(i18n("The \"Server IP/Name\" field is empty. Cannot continue")); goto begin; } if (!atoi((char*)newtEntryGetValue(editPort))) { msgBoxError(i18n("The \"Server Port\" field is not a valid integer. Cannot continue")); goto begin; } } // get device strcpy(szDevice, (char*)newtListboxGetCurrent(editPartition)); // image file strcpy(szImageFile, newtEntryGetValue(editImage)); // network if (newtCheckboxGetValue(checkNetwork) == 'X') // If network is activated { strcpy(szNetworkIP, (char*)newtEntryGetValue(editNetwork)); *dwServerPort = atoi((char*)newtEntryGetValue(editPort)); #ifdef HAVE_SSL *bSsl = (newtCheckboxGetValue(checkSsl) == 'X'); #endif } else // no network { *szNetworkIP = 0; *dwServerPort = OPTIONS_DEFAULT_SERVERPORT; } nAction = 0; if (newtRadioGetCurrent(radioRestore) == radioSave) { nAction = OPERATION_SAVE; } else if (newtRadioGetCurrent(radioRestore) == radioRestore) { nAction = OPERATION_RESTORE; } else if (newtRadioGetCurrent(radioRestore) == radioMbr) { nAction = OPERATION_RESTMBR; } newtFormDestroy(formMain); newtPopWindow(); return nAction; }
// ======================================================= void CInterfaceNewt::showErrorInternal(const char *szText) { msgBoxError(szText); }
void CEphList::on_pushButton_4_clicked() //////////////////////////////////////// { QList <int> columns; QStringList strCol; int obj; int type; bool isUT; double tz; double jdFrom; double jdTo; double step = 1; QString name; QListWidgetItem *com; QList <tableRow_t> rows; for (int i = 0; i < EL_COLUMN_COUNT; i++) { QListWidgetItem *item = ui->listWidget_2->item(i); if (item->checkState() == Qt::Checked && (item->flags() & Qt::ItemIsEnabled)) { columns.append(item->data(Qt::UserRole + 1).toInt()); } } if (columns.count() == 0) { msgBoxError(this, tr("There is no selected column!!!")); return; } switch (ui->tabWidget->currentIndex()) { case 0: type = MO_PLANET; obj = ui->listWidget->currentRow(); if (!showNoObjectSelected(obj)) return; break; case 1: type = MO_COMET; obj = ui->listWidget_3->currentRow(); if (!showNoObjectSelected(obj)) return; com = ui->listWidget_3->item(obj); obj = com->data(Qt::UserRole + 1).toInt(); break; case 2: type = MO_ASTER; obj = ui->listWidget_4->currentRow(); if (!showNoObjectSelected(obj)) return; com = ui->listWidget_4->item(obj); obj = com->data(Qt::UserRole + 1).toInt(); break; } isUT = ui->checkBox->isChecked(); if (isUT) tz = 0; else tz = m_view.geo.tz; QDateTime dt; dt = ui->dateTimeEdit->dateTime(); jdFrom = jdGetJDFrom_DateTime(&dt); dt = ui->dateTimeEdit_2->dateTime(); jdTo = jdGetJDFrom_DateTime(&dt); for (int i = 0; i < columns.count(); i++) { QString str = cELColumn[columns[i]]; strCol.append(str); } if (jdFrom >= jdTo) { msgBoxError(this, tr("Invalid date/time range!!!")); return; } double mul; switch (ui->comboBox->currentIndex()) { case 0: mul = JD1SEC * 60; break; case 1: mul = JD1SEC * 3600; break; case 2: mul = 1; break; } step = ui->spinBox->value() * mul; int count = (jdTo - jdFrom) / step; if (count > 1000) { if (QMessageBox::No == msgBoxQuest(this, tr("Calculation 1000+ positions. Do you want to continue?"))) return; } for (double jd = jdFrom; jd <= jdTo; jd += step) { bool isMoon = false; tableRow_t row; orbit_t o; m_view.jd = jd - tz; cAstro.setParam(&m_view); switch (type) { case MO_PLANET: cAstro.calcPlanet(obj, &o); name = cAstro.getName(obj); isMoon = (obj == PT_MOON); break; case MO_COMET: comSolve(&tComets[obj], m_view.jd); name = tComets[obj].name; o = tComets[obj].orbit; break; case MO_ASTER: astSolve(&tAsteroids[obj], m_view.jd); name = tAsteroids[obj].name; o = tAsteroids[obj].orbit; break; } for (int j = 0; j < columns.count(); j++) { QString str; double ra2000 = o.lRD.Ra; double dec2000 = o.lRD.Dec; precess(&ra2000, &dec2000, m_view.jd, JD2000); switch (columns[j]) { case 0: str = QString::number(m_view.jd, 'f', 6); break; case 1: str = getStrDate(m_view.jd, tz); break; case 2: str = getStrTime(m_view.jd, tz); break; case 3: str = getStrMag(o.mag); break; case 4: str = QString::number(o.phase, 'f', 3); break; case 5: str = QString::number(R2D(o.PA), 'f', 1) + "°"; break; case 6: str = QString::number(o.sx, 'f', 2) + "\""; break; case 7: str = QString::number(o.sy, 'f', 2) + "\""; break; case 8: str = getStrRA(o.lRD.Ra); break; case 9: str = getStrDeg(o.lRD.Dec); break; case 10: str = getStrRA(ra2000); break; case 11: str = getStrDeg(dec2000); break; case 12: str = getStrRA(o.gRD.Ra); break; case 13: str = getStrDeg(o.gRD.Dec); break; case 14: str = getStrDeg(o.lAzm); break; case 15: str = getStrDeg(o.lAlt); break; case 16: if (!isMoon) { str = QString::number(o.R, 'f', 6) + " AU"; } else { str = QString::number(o.r * EARTH_DIAM) + tr(" Km"); } break; case 17: if (!isMoon) { str = QString::number(o.r, 'f', 6) + " AU"; } else { str = tr("N/A"); } break; case 18: str = ((o.elongation >= 0) ? "+" : "") + QString::number(R2D(o.elongation), 'f', 2) + "°"; break; case 19: str = getStrDeg(o.hLon); break; case 20: str = getStrDeg(o.hLat); break; case 21: str = QString::number(o.hRect[0], 'f', 6) + " AU"; break; case 22: str = QString::number(o.hRect[1], 'f', 6) + " AU"; break; case 23: str = QString::number(o.hRect[2], 'f', 6) + " AU"; break; case 24: str = QString::number(o.light * 24. * 60., 'f', 2) + tr(" mins."); break; } row.row.append(str); } rows.append(row); } CEphTable dlg(this, name, strCol, rows); dlg.exec(); }