diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 01:29:50 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 01:29:50 +0000 |
commit | 8362bf63dea22bbf6736609b0f49c152f975eb63 (patch) | |
tree | 0eea3928e39e50fae91d4e68b21b1e6cbae25604 /kexi/main/startup/KexiStartupFileDialog.h | |
download | koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.tar.gz koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.zip |
Added old abandoned KDE3 version of koffice
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1077364 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kexi/main/startup/KexiStartupFileDialog.h')
-rw-r--r-- | kexi/main/startup/KexiStartupFileDialog.h | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/kexi/main/startup/KexiStartupFileDialog.h b/kexi/main/startup/KexiStartupFileDialog.h new file mode 100644 index 00000000..87ebf7f4 --- /dev/null +++ b/kexi/main/startup/KexiStartupFileDialog.h @@ -0,0 +1,132 @@ +/* This file is part of the KDE project + Copyright (C) 2003-2005 Jaroslaw Staniek <[email protected]> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. +*/ + +#ifndef _KexiStartupFileDialog_h_ +#define _KexiStartupFileDialog_h_ + +#include <kfiledialog.h> + +#ifdef Q_WS_WIN +# include "KexiStartupFileDialogBase_win.h" +#else + typedef KFileDialog KexiStartupFileDialogBase; +#endif + + +//! @short Widget for opening/saving files supported by Kexi +class KEXIMAIN_EXPORT KexiStartupFileDialog : public KexiStartupFileDialogBase +{ + Q_OBJECT + +public: + /*! Dialog mode: + - Opening opens existing database (or shortcut) + - SavingFileBasedDB saves file-based database file + - SavingServerBasedDB saves server-based (shortcut) file + - CustomOpening can be used for opening other files, like CSV + */ + typedef enum Mode { + Opening = 1, + SavingFileBasedDB = 2, + SavingServerBasedDB = 4, + Custom = 256 + }; + + KexiStartupFileDialog( + const QString& startDirOrVariable, int mode, QWidget *parent=0, const char *name=0); + + virtual ~KexiStartupFileDialog(); + + /*! Helper. Displays "The file %1 already exists. Do you want to overwrite it?" yes/no message box. + \a parent is used as a parent of the KMessageBox. + \return true if \a filePath file does not exists or user has agreed on overwriting, + false in user do not want to overwrite. */ + static bool askForOverwriting(const QString& filePath, QWidget *parent = 0); + + void setMode(int mode); + + QStringList additionalFilters() const; + + //! Sets additional filters list, e.g. "text/x-csv" + void setAdditionalFilters(const QStringList &mimeTypes); + + QStringList excludedFilters() const; + + //! Excludes filters list + void setExcludedFilters(const QStringList &mimeTypes); + +// KURL currentURL(); + QString currentFileName(); + +//#ifndef Q_WS_WIN +// KURLComboBox *locationWidget() const; +//#endif + //! just sets locationWidget()->setCurrentText(fn) + //! (and something similar on win32) + void setLocationText(const QString& fn); + + //! Sets default extension which will be added after accepting + //! if user didn't provided one. This method is usable when there is + //! more than one filter so there is no rule what extension should be selected + //! (by default first one is selected). + void setDefaultExtension(const QString& ext) { m_defaultExtension = ext; } + + /*! \return true if the current URL meets requies constraints + (i.e. exists or doesn't exist); + shows appropriate message box if needed. */ + bool checkFileName(); +// bool checkURL(); + + /*! If true, user will be asked to accept overwriting existing file. + This is true by default. */ + void setConfirmOverwrites(bool set) { m_confirmOverwrites = set; } + + virtual bool eventFilter ( QObject * watched, QEvent * e ); + +public slots: + virtual void show(); + + virtual void setFocus(); + + // Typing a file that doesn't exist closes the file dialog, we have to + // handle this case better here. + virtual void accept(); + +signals: + //entered file name is accepted + void accepted(); + void rejected(); + +protected slots: + virtual void reject(); + +private: + void updateFilters(); + +// KURL m_lastUrl; + QString m_lastFileName; + int m_mode; + QStringList m_additionalMimeTypes, m_excludedMimeTypes; + QString m_defaultExtension; + bool m_confirmOverwrites : 1; + bool m_filtersUpdated : 1; +}; + +#endif + |