summaryrefslogtreecommitdiffstats
path: root/kdevdesigner/designer/formfile.h
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit114a878c64ce6f8223cfd22d76a20eb16d177e5e (patch)
treeacaf47eb0fa12142d3896416a69e74cbf5a72242 /kdevdesigner/designer/formfile.h
downloadtdevelop-114a878c64ce6f8223cfd22d76a20eb16d177e5e.tar.gz
tdevelop-114a878c64ce6f8223cfd22d76a20eb16d177e5e.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdevelop@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kdevdesigner/designer/formfile.h')
-rw-r--r--kdevdesigner/designer/formfile.h145
1 files changed, 145 insertions, 0 deletions
diff --git a/kdevdesigner/designer/formfile.h b/kdevdesigner/designer/formfile.h
new file mode 100644
index 00000000..65d0f389
--- /dev/null
+++ b/kdevdesigner/designer/formfile.h
@@ -0,0 +1,145 @@
+/**********************************************************************
+** Copyright (C) 2000 Trolltech AS. All rights reserved.
+**
+** This file is part of Qt Designer.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
+** licenses may use this file in accordance with the Qt Commercial License
+** Agreement provided with the Software.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
+** information about Qt Commercial License Agreements.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
+
+#ifndef FORMFILE_H
+#define FORMFILE_H
+
+#include <qobject.h>
+#include "timestamp.h"
+#include "metadatabase.h"
+
+class Project;
+class FormWindow;
+class SourceEditor;
+
+class FormFile : public QObject
+{
+ Q_OBJECT
+ friend class SourceEditor;
+
+public:
+ enum Who {
+ WFormWindow = 1,
+ WFormCode = 2,
+ WAnyOrAll = WFormWindow | WFormCode
+ };
+
+ enum UihState { None, Ok, Deleted };
+
+ FormFile( const QString &fn, bool temp, Project *p, const char *name = 0 );
+ ~FormFile();
+
+ void setFormWindow( FormWindow *f );
+ void setEditor( SourceEditor *e );
+ void setFileName( const QString &fn );
+ void setCode( const QString &c );
+ void setModified( bool m, int who = WAnyOrAll );
+ void setCodeEdited( bool b );
+
+ FormWindow *formWindow() const;
+ SourceEditor *editor() const;
+ QString fileName() const;
+ QString absFileName() const;
+
+ bool supportsCodeFile() const { return !codeExtension().isEmpty(); }
+ QString codeComment() const;
+ QString codeFile() const;
+ QString code();
+ bool isCodeEdited() const;
+
+ bool loadCode();
+ void load();
+ bool save( bool withMsgBox = TRUE, bool ignoreModified = FALSE );
+ bool saveAs( bool ignoreModified = FALSE );
+ bool close();
+ bool closeEvent();
+ bool isModified( int who = WAnyOrAll );
+ bool hasFormCode() const;
+ void createFormCode();
+ void syncCode();
+ void checkTimeStamp();
+ bool isUihFileUpToDate();
+ void addFunctionCode( MetaDataBase::Function function );
+ void removeFunctionCode( MetaDataBase::Function function );
+ void functionNameChanged( const QString &oldName, const QString &newName );
+ void functionRetTypeChanged( const QString &fuName, const QString &oldType, const QString &newType );
+
+ void showFormWindow();
+ SourceEditor *showEditor( bool askForUih = TRUE );
+
+ static QString createUnnamedFileName();
+ QString formName() const;
+
+ bool isFake() const { return fake; }
+
+ void parseCode( const QString &txt, bool allowModify );
+
+ void addConnection( const QString &sender, const QString &signal,
+ const QString &receiver, const QString &slot );
+ void removeConnection( const QString &sender, const QString &signal,
+ const QString &receiver, const QString &slot );
+
+ bool hasTempFileName() const { return fileNameTemp; }
+ void setCodeFileState( UihState );
+ int codeFileState() const;
+ bool setupUihFile( bool askForUih = TRUE );
+
+ Project *project() const { return pro; }
+
+signals:
+ void somethingChanged( FormFile* );
+
+private slots:
+ void formWindowChangedSomehow();
+ void notifyFormWindowChange();
+ void emitNewStatus(FormFile* file);
+
+private:
+ bool isFormWindowModified() const;
+ bool isCodeModified() const;
+ void setFormWindowModified( bool m );
+ void setCodeModified( bool m );
+ QString codeExtension() const;
+ bool checkFileName( bool allowBreak );
+
+private:
+ QString filename;
+ bool fileNameTemp;
+ Project *pro;
+ FormWindow *fw;
+ SourceEditor *ed;
+ QString cod;
+ TimeStamp timeStamp;
+ bool codeEdited;
+ QString cachedFormName;
+ bool fake;
+ bool pkg;
+ bool cm;
+ UihState codeFileStat;
+
+};
+
+#endif