libglom-1.18 1.18.3
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes

GlomBakery::Document Class Reference

The Document is like the 'Model' in the Model-View-Controller framework. More...

Inheritance diagram for GlomBakery::Document:
Inheritance graph
[legend]
Collaboration diagram for GlomBakery::Document:
Collaboration graph
[legend]

List of all members.

Public Types

enum  LoadFailureCodes {
  LOAD_FAILURE_CODE_NONE = 0,
  LOAD_FAILURE_CODE_NOT_FOUND = 1,
  LOAD_FAILURE_CODE_LAST = 20
}
typedef sigc::signal< void, bool > type_signal_modified
 For instance, void on_document_modified(bool modified);.
typedef sigc::signal< void > type_signal_forget

Public Member Functions

 Document ()
virtual ~Document ()
bool save ()
bool load (int& failure_code)
bool load_from_data (const guchar* data, std::size_t length, int& failure_code)
bool get_modified () const
virtual void set_modified (bool bVal=true)
bool get_is_new () const
 Whether this just a default document.
void set_is_new (bool bVal)
 Called by App_WithDoc::init_create_document().
Glib::ustring get_contents () const
void set_contents (const Glib::ustring& strVal)
Glib::ustring get_file_uri_with_extension (const Glib::ustring& uri)
Glib::ustring get_file_uri () const
virtual void set_file_uri (const Glib::ustring& file_uri, bool bEnforceFileExtension=false)
virtual Glib::ustring get_name () const
 Gets filename part of file_uri, or 'untitled'.
bool get_read_only () const
void set_read_only (bool bVal)
void set_view (ViewBase* pView)
 If you don't want to use a View, then don't use set_view().
ViewBaseget_view ()
void set_file_extension (const Glib::ustring& strVal)
Glib::ustring get_file_extension () const
type_signal_modifiedsignal_modified ()
 This signal is emitted when the document has been modified.
type_signal_forgetsignal_forget ()
 This signal is emitted when the view should forget the document.

Static Public Member Functions

static Glib::ustring util_file_uri_get_name (const Glib::ustring& file_uri, const Glib::ustring& file_extension)

Protected Member Functions

virtual bool load_after (int& failure_code)
 Allow app to update icons/title bar.
virtual bool save_before ()
 overrideable.
bool read_from_disk (int& failure_code)
bool write_to_disk ()

Protected Attributes

Glib::ustring m_strContents
Glib::ustring m_file_uri
Glib::ustring m_file_extension
ViewBasem_pView
type_signal_modified signal_modified_
type_signal_forget signal_forget_
bool m_bModified
bool m_bIsNew
bool m_bReadOnly

Detailed Description

The Document is like the 'Model' in the Model-View-Controller framework.

Each App should have a Document. Each View gets and sets data in its document.


Member Typedef Documentation

For instance, void on_document_modified(bool modified);.


Member Enumeration Documentation

Enumerator:
LOAD_FAILURE_CODE_NONE 
LOAD_FAILURE_CODE_NOT_FOUND 
LOAD_FAILURE_CODE_LAST 

Constructor & Destructor Documentation

GlomBakery::Document::Document ( )

Reimplemented in Glom::Document.

virtual GlomBakery::Document::~Document ( ) [virtual]

Reimplemented in Glom::Document.


Member Function Documentation

Glib::ustring GlomBakery::Document::get_contents ( ) const
Glib::ustring GlomBakery::Document::get_file_extension ( ) const
Glib::ustring GlomBakery::Document::get_file_uri ( ) const
Glib::ustring GlomBakery::Document::get_file_uri_with_extension ( const Glib::ustring uri)
bool GlomBakery::Document::get_is_new ( ) const

Whether this just a default document.

bool GlomBakery::Document::get_modified ( ) const
virtual Glib::ustring GlomBakery::Document::get_name ( ) const [virtual]

Gets filename part of file_uri, or 'untitled'.

Reimplemented in Glom::Document.

bool GlomBakery::Document::get_read_only ( ) const
ViewBase* GlomBakery::Document::get_view ( )
bool GlomBakery::Document::load ( int &  failure_code)

Reimplemented in Glom::Document.

virtual bool GlomBakery::Document::load_after ( int &  failure_code) [protected, virtual]

Allow app to update icons/title bar.

overrideable. Does anything which should be done after the data has been loaded from disk, but before updating the View.

Parameters:
failure_codeUsed to return a custom error code that is understood by your application. This must be greater than zero.

Reimplemented in GlomBakery::Document_XML.

bool GlomBakery::Document::load_from_data ( const guchar *  data,
std::size_t  length,
int &  failure_code 
)
bool GlomBakery::Document::read_from_disk ( int &  failure_code) [protected]
bool GlomBakery::Document::save ( )
virtual bool GlomBakery::Document::save_before ( ) [protected, virtual]

overrideable.

Does anything which should be done before the view has saved its data, before writing to disk..

Reimplemented in GlomBakery::Document_XML.

void GlomBakery::Document::set_contents ( const Glib::ustring strVal)
void GlomBakery::Document::set_file_extension ( const Glib::ustring strVal)
virtual void GlomBakery::Document::set_file_uri ( const Glib::ustring file_uri,
bool  bEnforceFileExtension = false 
) [virtual]

Reimplemented in Glom::Document.

void GlomBakery::Document::set_is_new ( bool  bVal)

Called by App_WithDoc::init_create_document().

virtual void GlomBakery::Document::set_modified ( bool  bVal = true) [virtual]

Reimplemented in Glom::Document.

void GlomBakery::Document::set_read_only ( bool  bVal)
void GlomBakery::Document::set_view ( ViewBase pView)

If you don't want to use a View, then don't use set_view().

type_signal_forget& GlomBakery::Document::signal_forget ( )

This signal is emitted when the view should forget the document.

This is used internally, and you should not need to use it yourself.

type_signal_modified& GlomBakery::Document::signal_modified ( )

This signal is emitted when the document has been modified.

It allows the view to update itself to show the new information.

static Glib::ustring GlomBakery::Document::util_file_uri_get_name ( const Glib::ustring file_uri,
const Glib::ustring file_extension 
) [static]
bool GlomBakery::Document::write_to_disk ( ) [protected]

Member Data Documentation


The documentation for this class was generated from the following file: