[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kmail-devel
Subject:    Re: size of header columns
From:       Carsten Burghardt <cb () magic-shop ! de>
Date:       2002-06-13 16:45:31
[Download RAW message or body]

On Thursday 13 June 2002 11:45, Magnus von Koeller wrote:
> On Thursday 13 June 2002 09:09, Carsten Burghardt wrote:
> > at the moment the column-headers of each folder are resized
> > individually. I'd like to change that so that it behaves the same
> > way as in knode. Any arguments against?
>
> No, I think that makes much more sense. And it would close a wish,
> too.

OK, see the attached patch. It uses the KListView restore/saveLayout methods, 
so we also remember the order of the columns (so we could close two wishes 
;-) ).
Pehaps it would also be good to add a popup-menu to the column-header to 
switch the size-column (like in the foldertree).

-- 
Carsten Burghardt
email: cb@magic-shop.de
WWW: http://www.magic-shop.de
PGP: http://www.magic-shop.de/Carsten_Burghardt.asc

["patch_kmheaders.diff" (text/x-diff)]

Index: kdenetwork/kmail/kmheaders.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmheaders.cpp,v
retrieving revision 1.421
diff -u -3 -p -r1.421 kmheaders.cpp
--- kdenetwork/kmail/kmheaders.cpp	2002/06/06 19:46:41	1.421
+++ kdenetwork/kmail/kmheaders.cpp	2002/06/13 16:40:30
@@ -594,6 +594,7 @@ KMHeaders::~KMHeaders ()
     writeSortOrder();
     mFolder->close();
   }
+  writeConfig();
 }
 
 
@@ -717,6 +718,7 @@ void KMHeaders::readConfig (void)
       mActionWhenCtrlDnD = KMMsgDnDActionCOPY;
   }
 
+  restoreLayout(config, "Header-Geometry");
 }
 
 
@@ -761,24 +763,6 @@ void KMHeaders::readFolderConfig (void)
 
   KConfigGroupSaver saver(config, "Folder-" + mFolder->idString());
   mNestedOverride = config->readBoolEntry( "threadMessagesOverride", false );
-  setColumnWidth(mPaintInfo.subCol, config->readNumEntry("SubjectWidth", 310));
-  setColumnWidth(mPaintInfo.senderCol, config->readNumEntry("SenderWidth", 170));
-  setColumnWidth(mPaintInfo.dateCol, config->readNumEntry("DateWidth", 170));
-  if (mPaintInfo.showSize) {
-    int x = config->readNumEntry("SizeWidth", -1);
-    if ( x > 10 ) // prevent ridiculously small column width
-      setColumnWidth(mPaintInfo.sizeCol, x);
-    else
-      setColumnWidthMode(mPaintInfo.sizeCol, QListView::Maximum );
-  }
-
-#ifdef SCORING
-  if (mPaintInfo.showScore) {
-    int x = config->readNumEntry("ScoreWidth", 50);
-    setColumnWidth(mPaintInfo.scoreCol, x>0?x:10);
-  }
-#endif
-
   mSortCol = config->readNumEntry("SortColumn", (int)KMMsgList::sfDate);
   mSortDescending = (mSortCol < 0);
   mSortCol = abs(mSortCol) - 1;
@@ -808,17 +792,6 @@ void KMHeaders::writeFolderConfig (void)
   assert(mFolder!=NULL);
 
   KConfigGroupSaver saver(config, "Folder-" + mFolder->idString());
-  config->writeEntry("SenderWidth", columnWidth(mPaintInfo.senderCol));
-  config->writeEntry("SubjectWidth", columnWidth(mPaintInfo.subCol));
-  config->writeEntry("DateWidth", columnWidth(mPaintInfo.dateCol));
-  if (mPaintInfo.showSize)
-    config->writeEntry("SizeWidth", columnWidth(mPaintInfo.sizeCol));
-
-#ifdef SCORING
-  if (mPaintInfo.showScore)
-      config->writeEntry("ScoreWidth", columnWidth(mPaintInfo.scoreCol));
-#endif
-
   config->writeEntry("SortColumn", (mSortDescending ? -mSortColAdj : mSortColAdj));
   config->writeEntry("Top", topItemIndex());
   config->writeEntry("Current", currentItemIndex());
@@ -826,6 +799,11 @@ void KMHeaders::writeFolderConfig (void)
   config->writeEntry("Status", mPaintInfo.status);
 }
 
+//-----------------------------------------------------------------------------
+void KMHeaders::writeConfig (void)
+{
+  saveLayout(kapp->config(), "Header-Geometry");
+}
 
 //-----------------------------------------------------------------------------
 void KMHeaders::setFolder (KMFolder *aFolder, bool jumpToFirst)
@@ -955,20 +933,13 @@ void KMHeaders::setFolder (KMFolder *aFo
 
 
   if (mFolder) {
-    KConfig *config = kapp->config();
-    KConfigGroupSaver saver(config, "Folder-" + mFolder->idString());
-
     if (mPaintInfo.showSize) {
       colText = i18n( "Size" );
       if (showingSize) {
         setColumnText( mPaintInfo.sizeCol, colText);
       } else {
         // add in the size field
-        int x = config->readNumEntry("SizeWidth", -1);
-	if ( x > 10 ) // prevent ridiculously small header width
-	  addColumn(colText, x);
-	else
-	  addColumn(colText);
+        addColumn(colText);
 
 	setColumnAlignment( mPaintInfo.sizeCol, AlignRight );
 #ifdef SCORING
@@ -979,7 +950,6 @@ void KMHeaders::setFolder (KMFolder *aFo
     } else {
       if (showingSize) {
         // remove the size field
-        config->writeEntry("SizeWidth", columnWidth(mPaintInfo.sizeCol));
         removeColumn(mPaintInfo.sizeCol);
 #ifdef SCORING
         mPaintInfo.scoreCol--;
@@ -995,8 +965,7 @@ void KMHeaders::setFolder (KMFolder *aFo
       if (showingScore) {
         setColumnText( mPaintInfo.scoreCol, colText);
       } else {
-        int x = config->readNumEntry("ScoreWidth", 50);
-        mPaintInfo.scoreCol = addColumn(colText, x>0?x:10);
+        mPaintInfo.scoreCol = addColumn(colText);
         setColumnAlignment( mPaintInfo.scoreCol, AlignRight );
       }
       showingScore = true;
Index: kdenetwork/kmail/kmheaders.h
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmheaders.h,v
retrieving revision 1.105
diff -u -3 -p -r1.105 kmheaders.h
--- kdenetwork/kmail/kmheaders.h	2002/06/06 19:46:41	1.105
+++ kdenetwork/kmail/kmheaders.h	2002/06/13 16:40:31
@@ -281,6 +281,9 @@ protected:
   /** Write per-folder config options. */
   virtual void writeFolderConfig(void);
 
+  /** Write global config options. */
+  virtual void writeConfig(void);
+
   /** Handle shift and control selection */
   virtual void contentsMousePressEvent(QMouseEvent*);
   virtual void contentsMouseReleaseEvent(QMouseEvent* e);

_______________________________________________
KMail Developers mailing list
kmail@mail.kde.org
http://mail.kde.org/mailman/listinfo/kmail

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic