2009-02-25 09:15:00 +01:00
/**************************************************************************
2008-12-02 12:01:29 +01:00
* *
* * This file is part of Qt Creator
* *
2010-03-05 11:25:49 +01:00
* * Copyright ( c ) 2010 Nokia Corporation and / or its subsidiary ( - ies ) .
2008-12-02 12:01:29 +01:00
* *
2009-06-17 00:01:27 +10:00
* * Contact : Nokia Corporation ( qt - info @ nokia . com )
2008-12-02 12:01:29 +01:00
* *
2009-02-25 09:15:00 +01:00
* * Commercial Usage
2008-12-02 14:17:16 +01:00
* *
2009-02-25 09:15:00 +01:00
* * Licensees holding valid Qt Commercial licenses may use this file in
* * accordance with the Qt Commercial License Agreement provided with the
* * Software or , alternatively , in accordance with the terms contained in
* * a written agreement between you and Nokia .
2008-12-02 14:17:16 +01:00
* *
2009-02-25 09:15:00 +01:00
* * GNU Lesser General Public License Usage
2008-12-02 14:17:16 +01:00
* *
2009-02-25 09:15:00 +01:00
* * Alternatively , this file may be used under the terms of the GNU Lesser
* * General Public License version 2.1 as published by the Free Software
* * Foundation and appearing in the file LICENSE . LGPL included in the
* * packaging of this file . Please review the following information to
* * ensure the GNU Lesser General Public License version 2.1 requirements
* * will be met : http : //www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
2008-12-02 14:17:16 +01:00
* *
2009-02-25 09:15:00 +01:00
* * If you are unsure which license is appropriate for your use , please
2009-08-14 09:30:56 +02:00
* * contact the sales department at http : //qt.nokia.com/contact.
2008-12-02 12:01:29 +01:00
* *
2009-02-25 09:15:00 +01:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-12-02 14:09:21 +01:00
2008-12-02 12:01:29 +01:00
# include "reloadpromptutils.h"
2008-12-02 14:09:21 +01:00
2009-05-13 14:39:55 +02:00
# include <QtCore/QCoreApplication>
2009-09-01 13:32:50 +02:00
# include <QtCore/QDir>
2010-03-19 10:28:05 +01:00
# include <QtGui/QMessageBox>
# include <QtGui/QPushButton>
# include <QtGui/QAbstractButton>
2008-12-02 12:01:29 +01:00
2009-10-05 11:06:05 +02:00
using namespace Utils ;
2008-12-02 12:01:29 +01:00
2009-10-05 11:06:05 +02:00
QTCREATOR_UTILS_EXPORT Utils : : ReloadPromptAnswer
Utils : : reloadPrompt ( const QString & fileName , bool modified , QWidget * parent )
2008-12-02 12:01:29 +01:00
{
2009-07-13 15:00:20 +02:00
2009-10-05 11:06:05 +02:00
const QString title = QCoreApplication : : translate ( " Utils::reloadPrompt " , " File Changed " ) ;
2009-07-13 15:00:20 +02:00
QString msg ;
if ( modified )
2009-10-05 11:06:05 +02:00
msg = QCoreApplication : : translate ( " Utils::reloadPrompt " ,
2010-06-30 15:29:48 +02:00
" The unsaved file <i>%1</i> has been changed outside Qt Creator. Do you want to reload it and discard your changes? " ) ;
2009-07-13 15:00:20 +02:00
else
2009-10-05 11:06:05 +02:00
msg = QCoreApplication : : translate ( " Utils::reloadPrompt " ,
2010-06-30 15:29:48 +02:00
" The file <i>%1</i> has changed outside Qt Creator. Do you want to reload it? " ) ;
msg = msg . arg ( QFileInfo ( fileName ) . fileName ( ) ) ;
return reloadPrompt ( title , msg , QDir : : toNativeSeparators ( fileName ) , parent ) ;
2008-12-02 12:01:29 +01:00
}
2009-10-05 11:06:05 +02:00
QTCREATOR_UTILS_EXPORT Utils : : ReloadPromptAnswer
2010-06-30 15:29:48 +02:00
Utils : : reloadPrompt ( const QString & title , const QString & prompt , const QString & details , QWidget * parent )
2008-12-02 12:01:29 +01:00
{
2010-06-30 15:29:48 +02:00
QMessageBox msg ( parent ) ;
msg . setStandardButtons ( QMessageBox : : Yes | QMessageBox : : YesToAll | QMessageBox : : No | QMessageBox : : NoToAll ) ;
msg . setDefaultButton ( QMessageBox : : YesToAll ) ;
msg . setWindowTitle ( title ) ;
msg . setText ( prompt ) ;
msg . setDetailedText ( details ) ;
switch ( msg . exec ( ) ) {
2008-12-02 12:01:29 +01:00
case QMessageBox : : Yes :
return ReloadCurrent ;
case QMessageBox : : YesToAll :
return ReloadAll ;
case QMessageBox : : No :
return ReloadSkipCurrent ;
default :
break ;
}
return ReloadNone ;
}
2010-03-19 10:28:05 +01:00
QTCREATOR_UTILS_EXPORT Utils : : FileDeletedPromptAnswer
Utils : : fileDeletedPrompt ( const QString & fileName , QWidget * parent )
{
const QString title = QCoreApplication : : translate ( " Utils::fileDeletedPrompt " , " File has been removed " ) ;
QString msg ;
msg = QCoreApplication : : translate ( " Utils::fileDeletedPrompt " ,
" The file %1 has been removed outside Qt Creator. Do you want to save it under a different name, or close the editor? " ) . arg ( QDir : : toNativeSeparators ( fileName ) ) ;
QMessageBox box ( QMessageBox : : Question , title , msg , QMessageBox : : NoButton , parent ) ;
QPushButton * close = box . addButton ( QCoreApplication : : translate ( " Utils::fileDeletedPrompt " , " Close " ) , QMessageBox : : RejectRole ) ;
QPushButton * saveas = box . addButton ( QCoreApplication : : translate ( " Utils::fileDeletedPrompt " , " Save as... " ) , QMessageBox : : ActionRole ) ;
QPushButton * save = box . addButton ( QCoreApplication : : translate ( " Utils::fileDeletedPrompt " , " Save " ) , QMessageBox : : AcceptRole ) ;
box . setDefaultButton ( saveas ) ;
box . exec ( ) ;
QAbstractButton * clickedbutton = box . clickedButton ( ) ;
if ( clickedbutton = = close ) {
return FileDeletedClose ;
} else if ( clickedbutton = = saveas ) {
return FileDeletedSaveAs ;
} else if ( clickedbutton = = save ) {
return FileDeletedSave ;
}
return FileDeletedClose ;
}