Changeset 59 in tspsg-svn for trunk


Ignore:
Timestamp:
Aug 30, 2009, 11:02:07 PM (15 years ago)
Author:
laleppa
Message:
  • Restore normal application cursor before displaying error message when loading/saving task. Not restoring the cursor caused it overlapping the error message text.
Location:
trunk/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/mainwindow.cpp

    r57 r59  
    242242        if (files.empty())
    243243                return;
    244         QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
    245         if (!tspmodel->loadTask(files.first())) {
    246                 QApplication::restoreOverrideCursor();
    247                 return;
    248         }
     244        if (!tspmodel->loadTask(files.first()))
     245                return;
    249246        setFileName(files.first());
    250247        tabWidget->setCurrentIndex(0);
     
    252249        solutionText->clear();
    253250        enableSolutionActions(false);
    254         QApplication::restoreOverrideCursor();
    255251}
    256252
     
    259255        if ((fileName == trUtf8("Untitled") + ".tspt") || (!fileName.endsWith(".tspt",Qt::CaseInsensitive)))
    260256                saveTask();
    261         else {
    262                 QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
     257        else
    263258                if (tspmodel->saveTask(fileName))
    264259                        setWindowModified(false);
    265                 QApplication::restoreOverrideCursor();
    266         }
    267260}
    268261
     
    347340        if (files.empty())
    348341                return false;
    349         QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
    350342        if (tspmodel->saveTask(files.first())) {
    351343                setFileName(files.first());
    352344                setWindowModified(false);
    353                 QApplication::restoreOverrideCursor();
    354345                return true;
    355346        }
    356         QApplication::restoreOverrideCursor();
    357347        return false;
    358348}
  • trunk/src/tspmodel.cpp

    r50 r59  
    150150        else
    151151                err = trUtf8("Unknown error.");
     152        QApplication::restoreOverrideCursor();
    152153        QMessageBox(QMessageBox::Critical,trUtf8("Task Load"),trUtf8("Unable to load task:") + "\n" + err,QMessageBox::Ok).exec();
    153154        return true;
     
    156157bool CTSPModel::loadTask(QString fname)
    157158{
     159        QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
    158160QFile f(fname);
    159161        if (!f.open(QIODevice::ReadOnly)) {
     162                QApplication::restoreOverrideCursor();
    160163                QMessageBox(QMessageBox::Critical,trUtf8("Task Load"),QString(trUtf8("Unable to open task file.\nError: %1")).arg(f.errorString()),QMessageBox::Ok).exec();
    161164                return false;
     
    165168quint32 sig;
    166169        ds >> sig;
    167         if (loadError(ds.status()))
    168                 return false;
     170        if (loadError(ds.status())) {
     171                return false;
     172        }
    169173        ds.device()->reset();
    170174        if (sig == TSPT) {
     
    179183                }
    180184        } else {
     185                f.close();
     186                QApplication::restoreOverrideCursor();
    181187                QMessageBox(QMessageBox::Critical,trUtf8("Task Load"),trUtf8("Unable to load task:") + "\n" + trUtf8("Unknown file format or file is corrupted."),QMessageBox::Ok).exec();
    182                 f.close();
    183188                return false;
    184189        }
    185190        f.close();
     191        QApplication::restoreOverrideCursor();
    186192        return true;
    187193}
     
    199205                return false;
    200206        if (version > TSPT_VERSION) {
     207                QApplication::restoreOverrideCursor();
    201208                QMessageBox(QMessageBox::Critical,trUtf8("Task Load"),trUtf8("Unable to load task:") + "\n" + trUtf8("File version is newer than application supports.\nPlease, try to update application."),QMessageBox::Ok).exec();
    202209                return false;
     
    212219                return false;
    213220        if ((size < 3) || (size > MAX_NUM_CITIES)) {
     221                QApplication::restoreOverrideCursor();
    214222                QMessageBox(QMessageBox::Critical,trUtf8("Task Load"),trUtf8("Unable to load task:") + "\n" + trUtf8("Unexpected data read.\nFile is possibly corrupted."),QMessageBox::Ok).exec();
    215223                return false;
     
    230238                        }
    231239        emit dataChanged(index(0,0),index(nCities - 1,nCities - 1));
     240        QApplication::restoreOverrideCursor();
    232241        return true;
    233242}
     
    245254                return false;
    246255        if (version > ZKT_VERSION) {
     256                QApplication::restoreOverrideCursor();
    247257                QMessageBox(QMessageBox::Critical,trUtf8("Task Load"),trUtf8("Unable to load task:") + "\n" + trUtf8("File version is newer than application supports.\nPlease, try to update application."),QMessageBox::Ok).exec();
    248258                return false;
     
    254264                return false;
    255265        if ((size < 3) || (size > 5)) {
     266                QApplication::restoreOverrideCursor();
    256267                QMessageBox(QMessageBox::Critical,trUtf8("Task Load"),trUtf8("Unable to load task:") + "\n" + trUtf8("Unexpected data read.\nFile is possibly corrupted."),QMessageBox::Ok).exec();
    257268                return false;
     
    280291                        }
    281292        emit dataChanged(index(0,0),index(nCities - 1,nCities - 1));
     293        QApplication::restoreOverrideCursor();
    282294        return true;
    283295}
     
    285297bool CTSPModel::saveTask(QString fname)
    286298{
     299        QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
    287300QFile f(fname);
    288301        if (!f.open(QIODevice::WriteOnly)) {
     302                QApplication::restoreOverrideCursor();
    289303                QMessageBox(QMessageBox::Critical,trUtf8("Task Save"),QString(trUtf8("Unable to create task file.\nError: %1\nMaybe, file is read-only?")).arg(f.errorString()),QMessageBox::Ok).exec();
    290304                return false;
     
    293307        ds.setVersion(QDataStream::Qt_4_4);
    294308        if (f.error() != QFile::NoError) {
    295                 QMessageBox(QMessageBox::Critical,trUtf8("Task Save"),trUtf8("Unable to save task.\nError: %1").arg(f.errorString()),QMessageBox::Ok).exec();
    296                 f.close();
     309                f.close();
     310                QApplication::restoreOverrideCursor();
     311                QMessageBox(QMessageBox::Critical,trUtf8("Task Save"),trUtf8("Unable to save task.\nError: %1").arg(f.errorString()),QMessageBox::Ok).exec();
    297312                return false;
    298313        }
     
    300315        ds << TSPT;
    301316        if (f.error() != QFile::NoError) {
    302                 QMessageBox(QMessageBox::Critical,trUtf8("Task Save"),trUtf8("Unable to save task.\nError: %1").arg(f.errorString()),QMessageBox::Ok).exec();
    303                 f.close();
     317                f.close();
     318                QApplication::restoreOverrideCursor();
     319                QMessageBox(QMessageBox::Critical,trUtf8("Task Save"),trUtf8("Unable to save task.\nError: %1").arg(f.errorString()),QMessageBox::Ok).exec();
    304320                return false;
    305321        }
     
    307323        ds << TSPT_VERSION;
    308324        if (f.error() != QFile::NoError) {
    309                 QMessageBox(QMessageBox::Critical,trUtf8("Task Save"),trUtf8("Unable to save task.\nError: %1").arg(f.errorString()),QMessageBox::Ok).exec();
    310                 f.close();
     325                f.close();
     326                QApplication::restoreOverrideCursor();
     327                QMessageBox(QMessageBox::Critical,trUtf8("Task Save"),trUtf8("Unable to save task.\nError: %1").arg(f.errorString()),QMessageBox::Ok).exec();
    311328                return false;
    312329        }
     
    314331        ds << TSPT_META_VERSION;
    315332        if (f.error() != QFile::NoError) {
    316                 QMessageBox(QMessageBox::Critical,trUtf8("Task Save"),trUtf8("Unable to save task.\nError: %1").arg(f.errorString()),QMessageBox::Ok).exec();
    317                 f.close();
     333                f.close();
     334                QApplication::restoreOverrideCursor();
     335                QMessageBox(QMessageBox::Critical,trUtf8("Task Save"),trUtf8("Unable to save task.\nError: %1").arg(f.errorString()),QMessageBox::Ok).exec();
    318336                return false;
    319337        }
     
    321339        ds << OSID;
    322340        if (f.error() != QFile::NoError) {
    323                 QMessageBox(QMessageBox::Critical,trUtf8("Task Save"),trUtf8("Unable to save task.\nError: %1").arg(f.errorString()),QMessageBox::Ok).exec();
    324                 f.close();
     341                f.close();
     342                QApplication::restoreOverrideCursor();
     343                QMessageBox(QMessageBox::Critical,trUtf8("Task Save"),trUtf8("Unable to save task.\nError: %1").arg(f.errorString()),QMessageBox::Ok).exec();
    325344                return false;
    326345        }
     
    328347        ds << nCities;
    329348        if (f.error() != QFile::NoError) {
    330                 QMessageBox(QMessageBox::Critical,trUtf8("Task Save"),trUtf8("Unable to save task.\nError: %1").arg(f.errorString()),QMessageBox::Ok).exec();
    331                 f.close();
     349                f.close();
     350                QApplication::restoreOverrideCursor();
     351                QMessageBox(QMessageBox::Critical,trUtf8("Task Save"),trUtf8("Unable to save task.\nError: %1").arg(f.errorString()),QMessageBox::Ok).exec();
    332352                return false;
    333353        }
     
    338358                                ds << table[r][c];
    339359                                if (f.error() != QFile::NoError) {
     360                                        f.close();
     361                                        QApplication::restoreOverrideCursor();
    340362                                        QMessageBox(QMessageBox::Critical,trUtf8("Task Save"),trUtf8("Unable to save task.\nError: %1").arg(f.errorString()),QMessageBox::Ok).exec();
    341                                         f.close();
    342363                                        return false;
    343364                                }
    344365                        }
    345366        f.close();
     367        QApplication::restoreOverrideCursor();
    346368        return true;
    347369}
  • trunk/src/tspsolver.h

    r50 r59  
    3434        tMatrix matrix; // Steps's matrix
    3535        double price; // Price of travel to this step
    36         struct {unsigned int nRow; unsigned int nCol;} candidate; // Candiadate for branching in current matrix
     36        struct {int nRow; int nCol;} candidate; // Candiadate for branching in current matrix
    3737        bool alts; // This matrix has alternative candidates
    3838        sStep *plNode, *prNode; // Pointers to left and right branch steps
Note: See TracChangeset for help on using the changeset viewer.