求教!为什么会程序点击保存却执行另存为的操作,该如何处理

求教!为什么会程序点击保存却执行另存为的操作
C/C++ code

//保存
void PMap::r_save()
{
    QSettings settings("zju", "EnergyMap/PositionMap Application");
    QString recent_file = settings.value("recentfilePMapStateSave", QString()).toString();

    if(m_SavedFile.isEmpty()) {
        QString fileName = QFileDialog::getSaveFileName(this, QString(), recent_file, "Data file (*.set);;All (*.*)");
        if(fileName.isEmpty())
            return ;
        m_SavedFile = fileName;
    }
    settings.setValue("recentfilePMapStateSave", m_SavedFile);

    QStringList list1 = m_SavedFile.split("/", QString::SkipEmptyParts);
    if(!list1.back().contains(QChar('.')))
        m_SavedFile += tr(".set");

    QFile file(m_SavedFile);
    if(!file.open(QFile::WriteOnly)) {
        QMessageBox::warning(this, tr("File export"), tr("Can not open file :\n") + m_SavedFile,
            QMessageBox::Ok, QMessageBox::NoButton);
        return ;
    }
    QApplication::setOverrideCursor(Qt::WaitCursor);

    file.write((char*)&ctrlRow, sizeof(ctrlRow));
    file.write((char*)&ctrlColumn, sizeof(ctrlColumn));
    file.write((char*)m_ctrlPointX, ctrlRow * ctrlColumn * sizeof(m_ctrlPointX[0]));
    file.write((char*)m_ctrlPointY, ctrlRow * ctrlColumn * sizeof(m_ctrlPointY[0]));
    file.close();

    QApplication::restoreOverrideCursor();
}

//另存为
void PMap::r_saveAs()
{
    QSettings settings("zju", "EnergyMap/PositionMap Application");
    QString recent_file = settings.value("recentfilePMapStateSave", QString()).toString();

    QString fileName = QFileDialog::getSaveFileName(this, QString(), recent_file, "Data file (*.set);;All (*.*)");
    if(fileName.isEmpty())
        return ;
    settings.setValue("recentfilePMapStateSave", fileName);

    m_SavedFile = fileName;
    r_save();
}


上面代码有问题吗?

PS:实际上这个问题是在另外一台机器上运行时出现的,除了这个问题外还有几个问题。但这些问题在我这台电脑运行没有出现。不解

------解决方案--------------------
那你应该多测试看看。。或者写日志文件看看!!看看这台机器到底怎么回事