Changeset - e969f6ecc779
[Not reviewed]
recording
0 2 0
Hasan Yavuz Ă–ZDERYA - 9 years ago 2017-02-12 03:08:59
hy@ozderya.net
separated overwrite confirmation to another function
2 files changed with 46 insertions and 23 deletions:
0 comments (0 inline, 0 general)
src/recordpanel.cpp
Show inline comments
 
@@ -122,7 +122,6 @@ bool RecordPanel::incrementFileName(void
 
        base += "_1";
 
    }
 

	
 
    // TODO: check if new name exists as well!
 
    QString suffix = fileInfo.suffix();;
 
    if (!suffix.isEmpty())
 
    {
 
@@ -134,31 +133,10 @@ bool RecordPanel::incrementFileName(void
 
    // check if auto generated file name exists, ask user another name
 
    if (QFile::exists(autoFileName))
 
    {
 
        QMessageBox mb(parentWidget());
 
        mb.setWindowTitle(tr("File Already Exists"));
 
        mb.setIcon(QMessageBox::Warning);
 
        mb.setText(tr("Auto generated file name (%1) already exists. How to continue?").arg(autoFileName));
 

	
 
        auto bCancel = mb.addButton(QMessageBox::Cancel);
 
        auto bOverwrite = mb.addButton(tr("Overwrite"), QMessageBox::DestructiveRole);
 
        auto bSelect = mb.addButton(tr("Select Another File"), QMessageBox::YesRole);
 

	
 
        mb.setEscapeButton(bCancel);
 

	
 
        mb.exec();
 

	
 
        if (mb.clickedButton() == bCancel)
 
        if (!confirmOverwrite(autoFileName))
 
        {
 
            return false;
 
        }
 
        else if (mb.clickedButton() == bOverwrite)
 
        {
 
            selectedFile = autoFileName;
 
        }
 
        else                    // bSelect
 
        {
 
            selectFile();       // TODO: return false if user cancels
 
        }
 
    }
 
    else
 
    {
 
@@ -168,3 +146,35 @@ bool RecordPanel::incrementFileName(void
 
    ui->lbFileName->setText(selectedFile);
 
    return true;
 
}
 

	
 
bool RecordPanel::confirmOverwrite(QString fileName)
 
{
 
    // prepare message box
 
    QMessageBox mb(parentWidget());
 
    mb.setWindowTitle(tr("File Already Exists"));
 
    mb.setIcon(QMessageBox::Warning);
 
    mb.setText(tr("Auto generated file name (%1) already exists. How to continue?").arg(fileName));
 

	
 
    auto bCancel    = mb.addButton(QMessageBox::Cancel);
 
    auto bOverwrite = mb.addButton(tr("Overwrite"), QMessageBox::DestructiveRole);
 
    auto bSelect    = mb.addButton(tr("Select Another File"), QMessageBox::YesRole);
 

	
 
    mb.setEscapeButton(bCancel);
 

	
 
    // show message box
 
    mb.exec();
 

	
 
    if (mb.clickedButton() == bCancel)
 
    {
 
        return false;
 
    }
 
    else if (mb.clickedButton() == bOverwrite)
 
    {
 
        selectedFile = fileName;
 
        return true;
 
    }
 
    else                    // bSelect
 
    {
 
        return selectFile();
 
    }
 
}
src/recordpanel.h
Show inline comments
 
@@ -56,6 +56,19 @@ private:
 
     */
 
    bool incrementFileName(void);
 

	
 
    /**
 
     * @brief Used to ask user confirmation if auto generated file
 
     * name exists.
 
     *
 
     * If user confirms overwrite, `selectedFile` is set to
 
     * `fileName`. User is also given option to select file and is
 
     * shown a file select dialog in this case.
 
     *
 
     * @param fileName auto generated file name.
 
     * @return false if user cancels
 
     */
 
    bool confirmOverwrite(QString fileName);
 

	
 
private slots:
 
    /**
 
     * @brief Opens up the file select dialog
0 comments (0 inline, 0 general)