[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