[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/kleopatra/view
From: Marc Mutz <mutz () kde ! org>
Date: 2008-04-22 10:08:54
Message-ID: 1208858934.057851.3223.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 799775 by mutz:
Add option to add a temporary view to TabWidget, one which isn't saved on shutdown, \
and whose keyfilter can't be changed
M +28 -2 tabwidget.cpp
M +1 -0 tabwidget.h
--- trunk/KDE/kdepim/kleopatra/view/tabwidget.cpp #799774:799775
@@ -90,6 +90,9 @@
void setFlatModel( AbstractKeyListModel * model );
void setHierarchicalModel( AbstractKeyListModel * model );
+ void setTemporary( bool temporary );
+ bool isTemporary() const { return m_isTemporary; }
+
void setHierarchical( bool hierarchical );
bool isHierarchical() const { return m_isHierarchical; }
@@ -105,7 +108,7 @@
bool canBeClosed() const { return m_canBeClosed; }
bool canBeRenamed() const { return m_canBeRenamed; }
bool canChangeStringFilter() const { return m_canChangeStringFilter; }
- bool canChangeKeyFilter() const { return m_canChangeKeyFilter; }
+ bool canChangeKeyFilter() const { return m_canChangeKeyFilter && !m_isTemporary; \
}
bool canChangeHierarchical() const { return m_canChangeHierarchical; }
void saveTo( KConfigGroup & group ) const;
@@ -141,6 +144,7 @@
shared_ptr<KeyFilter> m_keyFilter;
QString m_title;
bool m_isHierarchical : 1;
+ bool m_isTemporary : 1;
bool m_canBeClosed : 1;
bool m_canBeRenamed : 1;
bool m_canChangeStringFilter : 1;
@@ -159,6 +163,7 @@
m_keyFilter( other.m_keyFilter ),
m_title( other.m_title ),
m_isHierarchical( other.m_isHierarchical ),
+ m_isTemporary( other.m_isTemporary ),
m_canBeClosed( other.m_canBeClosed ),
m_canBeRenamed( other.m_canBeRenamed ),
m_canChangeStringFilter( other.m_canChangeStringFilter ),
@@ -178,6 +183,7 @@
m_keyFilter( KeyFilterManager::instance()->keyFilterByID( id ) ),
m_title( title ),
m_isHierarchical( true ),
+ m_isTemporary( false ),
m_canBeClosed( true ),
m_canBeRenamed( true ),
m_canChangeStringFilter( true ),
@@ -203,6 +209,7 @@
m_keyFilter( KeyFilterManager::instance()->keyFilterByID( group.readEntry( \
KEY_FILTER_ENTRY ) ) ), m_title( group.readEntry( TITLE_ENTRY ) ),
m_isHierarchical( group.readEntry( HIERARCHICAL_VIEW_ENTRY, true ) ),
+ m_isTemporary( false ),
m_canBeClosed( !group.isImmutable() ),
m_canBeRenamed( !group.isEntryImmutable( TITLE_ENTRY ) ),
m_canChangeStringFilter( !group.isEntryImmutable( STRING_FILTER_ENTRY ) ),
@@ -350,6 +357,16 @@
emit hierarchicalChanged( on );
}
+void Page::setTemporary( bool on ) {
+ if ( on == m_isTemporary )
+ return;
+ m_isTemporary = on;
+ if ( on && m_keyFilter ) {
+ m_keyFilter.reset();
+ emit keyFilterChanged( shared_ptr<KeyFilter>() );
+ }
+}
+
//
//
// TabWidget
@@ -767,6 +784,12 @@
return d->addView( new Page( group ) );
}
+QAbstractItemView * TabWidget::addTemporaryView( const QString & title ) {
+ Page * const page = new Page( title, QString(), QString() );
+ page->setTemporary( true );
+ return d->addView( page );
+}
+
QTreeView * TabWidget::Private::addView( Page * page ) {
if ( !page )
return 0;
@@ -817,9 +840,12 @@
return;
Q_FOREACH( QString group, extractViewGroups( config ) )
config->deleteGroup( group );
+ unsigned int vg = 0;
for ( unsigned int i = 0, end = count() ; i != end ; ++i ) {
if ( const Page * const p = d->page( i ) ) {
- KConfigGroup group( config, QString().sprintf( "View #%u", i ) );
+ if ( p->isTemporary() )
+ continue;
+ KConfigGroup group( config, QString().sprintf( "View #%u", vg++ ) );
p->saveTo( group );
}
}
--- trunk/KDE/kdepim/kleopatra/view/tabwidget.h #799774:799775
@@ -63,6 +63,7 @@
QAbstractItemView * addView( const QString & title=QString(), const QString \
& keyFilterID=QString(), const QString & searchString=QString() ); QAbstractItemView \
* addView( const KConfigGroup & group ); + QAbstractItemView * \
addTemporaryView( const QString & title=QString() );
void loadViews( const KConfig * cfg );
void saveViews( KConfig * cfg ) const;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic