2012-10-02 09:12:39 +02:00
/****************************************************************************
2008-12-02 12:01:29 +01:00
* *
2013-01-28 17:12:19 +01:00
* * Copyright ( C ) 2013 Digia Plc and / or its subsidiary ( - ies ) .
2012-10-02 09:12:39 +02:00
* * Contact : http : //www.qt-project.org/legal
2008-12-02 12:01:29 +01:00
* *
2012-10-02 09:12:39 +02:00
* * This file is part of Qt Creator .
2008-12-02 12:01:29 +01:00
* *
2012-10-02 09:12:39 +02:00
* * Commercial License Usage
* * Licensees holding valid commercial Qt licenses may use this file in
* * accordance with the commercial license agreement provided with the
* * Software or , alternatively , in accordance with the terms contained in
* * a written agreement between you and Digia . For licensing terms and
* * conditions see http : //qt.digia.com/licensing. For further information
* * use the contact form at http : //qt.digia.com/contact-us.
2008-12-02 14:17:16 +01:00
* *
2009-02-25 09:15:00 +01:00
* * GNU Lesser General Public License Usage
2012-10-02 09:12:39 +02: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.
* *
* * In addition , as a special exception , Digia gives you certain additional
* * rights . These rights are described in the Digia Qt LGPL Exception
2010-12-17 16:01:08 +01:00
* * version 1.1 , included in the file LGPL_EXCEPTION . txt in this package .
* *
2012-10-02 09:12:39 +02: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
2012-02-15 10:42:41 +01:00
# include <QCoreApplication>
# include <QDir>
# include <QMessageBox>
# include <QPushButton>
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 ) ;
2012-09-28 14:35:32 +02:00
msg . setStandardButtons ( QMessageBox : : Yes | QMessageBox : : YesToAll | QMessageBox : : Close | QMessageBox : : No | QMessageBox : : NoToAll ) ;
2010-06-30 15:29:48 +02:00
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 ;
2012-09-28 14:35:32 +02:00
case QMessageBox : : Close :
return CloseCurrent ;
2008-12-02 12:01:29 +01:00
default :
break ;
}
return ReloadNone ;
}
2010-03-19 10:28:05 +01:00
QTCREATOR_UTILS_EXPORT Utils : : FileDeletedPromptAnswer
2011-04-27 15:52:24 +02:00
Utils : : fileDeletedPrompt ( const QString & fileName , bool triggerExternally , QWidget * parent )
2010-03-19 10:28:05 +01:00
{
const QString title = QCoreApplication : : translate ( " Utils::fileDeletedPrompt " , " File has been removed " ) ;
QString msg ;
2011-04-27 15:52:24 +02:00
if ( triggerExternally )
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 ) ) ;
else
msg = QCoreApplication : : translate ( " Utils::fileDeletedPrompt " ,
" The file %1 was removed. Do you want to save it under a different name, or close the editor? " ) . arg ( QDir : : toNativeSeparators ( fileName ) ) ;
2010-03-19 10:28:05 +01:00
QMessageBox box ( QMessageBox : : Question , title , msg , QMessageBox : : NoButton , parent ) ;
2011-11-10 17:15:02 +01:00
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 ) ;
2010-03-19 10:28:05 +01:00
box . setDefaultButton ( saveas ) ;
box . exec ( ) ;
QAbstractButton * clickedbutton = box . clickedButton ( ) ;
Remove braces for single lines of conditions
#!/usr/bin/env ruby
Dir.glob('**/*.cpp') { |file|
# skip ast (excluding paste, astpath, and canv'ast'imer)
next if file =~ /ast[^eip]|keywords\.|qualifiers|preprocessor|names.cpp/i
s = File.read(file)
next if s.include?('qlalr')
orig = s.dup
s.gsub!(/\n *if [^\n]*{\n[^\n]*\n\s+}(\s+else if [^\n]* {\n[^\n]*\n\s+})*(\s+else {\n[^\n]*\n\s+})?\n/m) { |m|
res = $&
if res =~ /^\s*(\/\/|[A-Z_]{3,})/ # C++ comment or macro (Q_UNUSED, SDEBUG), do not touch braces
res
else
res.gsub!('} else', 'else')
res.gsub!(/\n +} *\n/m, "\n")
res.gsub(/ *{$/, '')
end
}
s.gsub!(/ *$/, '')
File.open(file, 'wb').write(s) if s != orig
}
Change-Id: I3b30ee60df0986f66c02132c65fc38a3fbb6bbdc
Reviewed-by: hjk <qthjk@ovi.com>
2013-01-08 03:32:53 +02:00
if ( clickedbutton = = close )
2010-03-19 10:28:05 +01:00
return FileDeletedClose ;
Remove braces for single lines of conditions
#!/usr/bin/env ruby
Dir.glob('**/*.cpp') { |file|
# skip ast (excluding paste, astpath, and canv'ast'imer)
next if file =~ /ast[^eip]|keywords\.|qualifiers|preprocessor|names.cpp/i
s = File.read(file)
next if s.include?('qlalr')
orig = s.dup
s.gsub!(/\n *if [^\n]*{\n[^\n]*\n\s+}(\s+else if [^\n]* {\n[^\n]*\n\s+})*(\s+else {\n[^\n]*\n\s+})?\n/m) { |m|
res = $&
if res =~ /^\s*(\/\/|[A-Z_]{3,})/ # C++ comment or macro (Q_UNUSED, SDEBUG), do not touch braces
res
else
res.gsub!('} else', 'else')
res.gsub!(/\n +} *\n/m, "\n")
res.gsub(/ *{$/, '')
end
}
s.gsub!(/ *$/, '')
File.open(file, 'wb').write(s) if s != orig
}
Change-Id: I3b30ee60df0986f66c02132c65fc38a3fbb6bbdc
Reviewed-by: hjk <qthjk@ovi.com>
2013-01-08 03:32:53 +02:00
else if ( clickedbutton = = saveas )
2010-03-19 10:28:05 +01:00
return FileDeletedSaveAs ;
Remove braces for single lines of conditions
#!/usr/bin/env ruby
Dir.glob('**/*.cpp') { |file|
# skip ast (excluding paste, astpath, and canv'ast'imer)
next if file =~ /ast[^eip]|keywords\.|qualifiers|preprocessor|names.cpp/i
s = File.read(file)
next if s.include?('qlalr')
orig = s.dup
s.gsub!(/\n *if [^\n]*{\n[^\n]*\n\s+}(\s+else if [^\n]* {\n[^\n]*\n\s+})*(\s+else {\n[^\n]*\n\s+})?\n/m) { |m|
res = $&
if res =~ /^\s*(\/\/|[A-Z_]{3,})/ # C++ comment or macro (Q_UNUSED, SDEBUG), do not touch braces
res
else
res.gsub!('} else', 'else')
res.gsub!(/\n +} *\n/m, "\n")
res.gsub(/ *{$/, '')
end
}
s.gsub!(/ *$/, '')
File.open(file, 'wb').write(s) if s != orig
}
Change-Id: I3b30ee60df0986f66c02132c65fc38a3fbb6bbdc
Reviewed-by: hjk <qthjk@ovi.com>
2013-01-08 03:32:53 +02:00
else if ( clickedbutton = = save )
2010-03-19 10:28:05 +01:00
return FileDeletedSave ;
return FileDeletedClose ;
}