summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opieui/fileselector/ofiledialog.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/libopie2/opieui/fileselector/ofiledialog.cpp b/libopie2/opieui/fileselector/ofiledialog.cpp
index 65648ce..92d4271 100644
--- a/libopie2/opieui/fileselector/ofiledialog.cpp
+++ b/libopie2/opieui/fileselector/ofiledialog.cpp
@@ -133,117 +133,126 @@ QString OFileDialog::fileName()const
return file->selectedName();
}
/**
* return a DocLnk to the current file
*/
DocLnk OFileDialog::selectedDocument()const
{
return file->selectedDocument();
}
/**
* This opens up a filedialog in Open mode
*
* @param selector the Selector Mode
* @param startDir Where to start from
* @param file A proposed filename
* @param mimes A list of MimeTypes
* @param wid the parent
* @param caption of the dialog if QString::null tr("Open") will be used
* @return the fileName or QString::null
*/
QString OFileDialog::getOpenFileName(int selector,
const QString &_startDir,
const QString &file,
const MimeTypes &mimes,
QWidget *wid,
const QString &caption )
{
QString ret;
QString startDir = _startDir;
if (startDir.isEmpty() )
startDir = lastUsedDir( "FileDialog-OPEN" );
OFileDialog dlg( caption.isEmpty() ? tr("Open") : caption,
wid, OFileSelector::Open, selector, startDir, file, mimes);
if( QPEApplication::execDialog(&dlg ) )
{
ret = dlg.fileName();
saveLastDir( "FileDialog-OPEN", ret );
}
return ret;
}
/**
* This opens up a file dialog in save mode
* @see getOpenFileName
*/
QString OFileDialog::getSaveFileName(int selector,
const QString &_startDir,
const QString &file,
const MimeTypes &mimes,
QWidget *wid,
const QString &caption )
{
QString ret;
QString startDir = _startDir;
if (startDir.isEmpty() )
startDir = lastUsedDir( "FileDialog-SAVE" );
OFileDialog dlg( caption.isEmpty() ? tr("Save") : caption,
wid, OFileSelector::Save, selector, startDir, file, mimes);
+
+ /*
+ * For the save mode we do not want a file to be written
+ * if the user just clicked on it
+ * #1522
+ */
+ dlg.disconnect( dlg.file, SIGNAL(fileSelected(const QString&)) );
+ dlg.disconnect( dlg.file, SIGNAL(ok()) );
+
if( QPEApplication::execDialog(&dlg) )
{
ret = dlg.fileName();
saveLastDir( "FileDialog-SAVE", ret );
}
return ret;
}
/**
* This opens up a filedialog in select directory mode
*
* @param selector the Selector Mode
* @param startDir Where to start from
* @param wid the parent
* @param caption of the dialog if QString::null tr("Open") will be used
* @return the directoryName or QString::null
*/
QString OFileDialog::getDirectory(int selector,
const QString &_startDir,
QWidget *wid,
const QString &caption )
{
QString ret;
QString startDir = _startDir;
if ( startDir.isEmpty() )
startDir = lastUsedDir( "FileDialog-SELECTDIR" );
OFileDialog dlg( caption.isEmpty() ? tr( "Select Directory" ) : caption,
wid, OFileSelector::DirectorySelector, selector, startDir );
if ( QPEApplication::execDialog(&dlg) )
{
ret = dlg.fileName();
saveLastDir( "FileDialog-SELECTDIR", ret );
}
return ret;
}
void OFileDialog::slotFileSelected(const QString & )
{
accept();
}
void OFileDialog::slotSelectorOk( )
{
accept();
}
void OFileDialog::slotDirSelected(const QString &dir )
{
setCaption( dir );
}