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

List:       kde-commits
Subject:    playground/pim/qma/src
From:       Tom Albers <tomalbers () kde ! nl>
Date:       2006-10-23 18:20:23
Message-ID: 1161627623.006347.24731.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 598490 by toma:

- Save all the sizes of all the splitters and all the listviews out there

- Implement poor mans autoexpand folder with childeren on hover when dragging \
message, wonder if I missed something in the api.... Almost time to prep a tarball.


 M  +29 -9     composer.cpp  
 M  +1 -0      composer.h  
 M  +36 -1     qmamailbox.cpp  
 M  +14 -1     qmamailbox.h  
 M  +7 -2      qmawidget.cpp  


--- trunk/playground/pim/qma/src/composer.cpp #598489:598490
@@ -80,7 +80,7 @@
     QHBox* box = new QHBox(this);
 
     // ------------- Split it in two columns ---------------//
-    m_sidebar   = new Sidebar(box, "leftComposerBar", Sidebar::Left, true);
+    m_sidebar   = new Sidebar(box, "SideBarSettings", Sidebar::Left, true);
     m_hsplitter = new QSplitter(box);
 
     m_sidebar->setSplitter(m_hsplitter);
@@ -93,7 +93,7 @@
             SLOT(slotAddAddressFromAddressBook(QListViewItem*,const QPoint&,int)));
 
     m_filebrowser = new FileBrowser(0,"FileView");
-    m_filebrowser->readConfig(kapp->config(), "FileView");
+    m_filebrowser->readConfig(kapp->config(), "FileViewSettings");
     connect(m_filebrowser->dirOperator(),
             SIGNAL(fileSelected(const KFileItem*)),
             this,SLOT(slotAddFile(const KFileItem*)));
@@ -107,10 +107,10 @@
     m_vsplitter->setOrientation(Qt::Vertical);
     
     // and the top part is in two parts....
-    QSplitter* leftsplitter = new QSplitter(m_vsplitter);
-    leftsplitter->setOrientation(Qt::Horizontal);
+    m_vhsplitter = new QSplitter(m_vsplitter);
+    m_vhsplitter->setOrientation(Qt::Horizontal);
 
-    QWidget* widg = new QWidget(leftsplitter);
+    QWidget* widg = new QWidget(m_vhsplitter);
     QGridLayout* grid = new QGridLayout(widg,2,2,5,5);
 
     m_edit = new KLineEdit( widg, "AddressCompletion" );
@@ -144,17 +144,22 @@
     m_lv = new KListView(widg);
     m_lv->addColumn(i18n("Address"));
     m_lv->addColumn(i18n("to"));
+    m_lv->setColumnAlignment(1,Qt::AlignHCenter);
     m_lv->addColumn(i18n("cc"));
+    m_lv->setColumnAlignment(2,Qt::AlignHCenter);
     m_lv->addColumn(i18n("bcc"));
+    m_lv->setColumnAlignment(3,Qt::AlignHCenter);
     m_lv->addColumn(i18n("del"));
+    m_lv->setColumnAlignment(4,Qt::AlignHCenter);
     m_lv->setSorting(500, false); // no sort by default, but do when clicked..
     connect(m_lv, SIGNAL(clicked(QListViewItem*, const QPoint&, int)),
             SLOT(slotEditAddress(QListViewItem*, const QPoint&, int)));
 
-    m_attachlv = new KListView(leftsplitter);
+    m_attachlv = new KListView(m_vhsplitter);
     m_attachlv->hide();
     m_attachlv->addColumn(i18n("File"));
     m_attachlv->addColumn(i18n("del"));
+    m_lv->setColumnAlignment(1,Qt::AlignHCenter);
     m_attachlv->setSorting(500, false); // no sort by default, but do when clicked..
     connect(m_attachlv, SIGNAL(doubleClicked(QListViewItem*, const QPoint&, int)),
             SLOT(slotShowFile(QListViewItem*, const QPoint&, int)));
@@ -194,7 +199,7 @@
     setAutoSaveSettings("Composer", true);
 
     KConfig *config = kapp->config();
-    config->setGroup("Composer");
+    config->setGroup("ComposerSplitterSize");
 
     QValueList<int> defaultsize1 = config->readIntListEntry("hsplitter");
     if (!defaultsize1.count())
@@ -211,19 +216,34 @@
         defaultsize2.append(400);
     }
 
+    QValueList<int> defaultsize3 = config->readIntListEntry("vhsplitter");
+    if (!defaultsize3.count())
+    {
+        defaultsize3.append(275);
+        defaultsize3.append(1);
+        defaultsize3.append(125);
+    }
+
     m_hsplitter->setSizes(defaultsize1);
     m_vsplitter->setSizes(defaultsize2);
+    m_vhsplitter->setSizes(defaultsize3);
+
+    m_lv->restoreLayout(config,"ComposerAddressListSize");
+    m_attachlv->restoreLayout(config,"ComposerAttachmentListSize");
     m_edit->setFocus();
 }
 
 Composer::~Composer()
 {
-    m_filebrowser->writeConfig(kapp->config(), "FileView");
+    m_filebrowser->writeConfig(kapp->config(), "FileViewSettings");
 
     KConfig *config = kapp->config();
-    config->setGroup("Composer");
+    config->setGroup("ComposerSplitterSize");
     config->writeEntry("hsplitter", m_hsplitter->sizes());
     config->writeEntry("vsplitter", m_vsplitter->sizes());
+    config->writeEntry("vhsplitter", m_vhsplitter->sizes());
+    m_lv->saveLayout(config,"ComposerAddressListSize");
+    m_attachlv->saveLayout(config,"ComposerAttachmentListSize");
     config->sync();
 }
 
--- trunk/playground/pim/qma/src/composer.h #598489:598490
@@ -131,6 +131,7 @@
         Sidebar*                        m_sidebar;
         QSplitter*                      m_hsplitter;
         QSplitter*                      m_vsplitter;
+        QSplitter*                      m_vhsplitter;
         KLineEdit*                      m_subject;
         QTextEdit*                      m_text;
         Socket*                         m_smtp;
--- trunk/playground/pim/qma/src/qmamailbox.cpp #598489:598490
@@ -17,8 +17,9 @@
 */
 
 #include <qpainter.h>
-
+#include <qcursor.h>
 #include <qdragobject.h>
+#include <qtimer.h>
 #include <klistview.h>
 #include <kdebug.h>
 
@@ -31,6 +32,8 @@
     setAcceptDrops(true);
     setDropVisualizer(false);
     setDropHighlighter(true);
+    m_drop = new QTimer(this);
+    connect(m_drop, SIGNAL(timeout()), this, SLOT(slotOpen()));
 }
 
 bool QMAMailBoxList::acceptDrag(QDropEvent *event) const
@@ -38,6 +41,36 @@
     return QTextDrag::canDecode( event );
 }
 
+void QMAMailBoxList::contentsDragEnterEvent(QDragEnterEvent *e)
+{
+    m_drop->start(1400);
+    KListView::contentsDragEnterEvent(e);
+}
+
+void QMAMailBoxList::contentsDragLeaveEvent(QDragLeaveEvent *e)
+{
+    m_drop->stop();
+    KListView::contentsDragLeaveEvent(e);
+}
+
+void QMAMailBoxList::contentsDropEvent(QDropEvent *e)
+{
+    m_drop->stop();
+    KListView::contentsDropEvent(e);
+}
+
+void QMAMailBoxList::slotOpen()
+{
+    QPoint pos = viewport()->mapFromGlobal( QCursor::pos() );
+
+    QListViewItem* lv = itemAt(pos);
+    if (lv)
+    {
+         kdDebug() << "AutoOpen: " << lv->text(0) << endl;
+         lv->setOpen(true);
+    }
+}
+
 //------------------------------------------------------------------
 QMAMailBox::QMAMailBox( QMAMailBox* parent, const QString& visualName,
                         const QString& fullName, const bool mailCheck)
@@ -107,3 +140,5 @@
                 .compare( i->key( col, ascending).lower() );
 
 }
+
+#include "qmamailbox.moc"
--- trunk/playground/pim/qma/src/qmamailbox.h #598489:598490
@@ -25,10 +25,23 @@
 class QMAMessage;
 
 class QMAMailBoxList : public KListView
-{
+{ 
+    Q_OBJECT
+
     public:
         QMAMailBoxList( QWidget* );
         bool acceptDrag(QDropEvent *event) const;
+
+    protected:
+        void contentsDragEnterEvent(QDragEnterEvent *e);
+        void contentsDragLeaveEvent(QDragLeaveEvent *e);
+        void contentsDropEvent(QDropEvent *e);
+
+    private:
+        QTimer*    m_drop;
+    
+    private slots:
+        void slotOpen();
 };
 
 class QMAMailBox : public KListViewItem
--- trunk/playground/pim/qma/src/qmawidget.cpp #598489:598490
@@ -193,7 +193,7 @@
             this, SLOT(slotUrlSelected(const KURL&, const KParts::URLArgs&)));
 
 
-    kapp->config()->setGroup("MainWindow");
+    kapp->config()->setGroup("MainWindowSplitterSize");
     QValueList<int> defaultsize1 = config->readIntListEntry("hsplitter");
     if (!defaultsize1.count())
     {
@@ -211,6 +211,9 @@
     d->first->setSizes(defaultsize1);
     d->second->setSizes(defaultsize2);
 
+    d->headerList->restoreLayout(config,"MainWindowHeaderListSize");
+    d->mailboxList->restoreLayout(config,"MainWindowMailboxListSize");
+
     KStdAction::quit(this, SLOT(slotQuit()), actionCollection(),  "app_exit");
     KStdAction::preferences(this, SLOT(slotSetup()), actionCollection());
     new KAction(i18n("Get mailbox list"), 0, this, SLOT(slotGetMailBoxList()),
@@ -298,9 +301,11 @@
 
 QMAWidget::~QMAWidget()
 {
-    kapp->config()->setGroup("MainWindow");
+    kapp->config()->setGroup("MainWindowSplitterSize");
     kapp->config()->writeEntry("vsplitter", d->first->sizes());
     kapp->config()->writeEntry("hsplitter", d->second->sizes());
+    d->headerList->saveLayout(kapp->config(),"MainWindowHeaderListSize");
+    d->mailboxList->saveLayout(kapp->config(),"MainWindowMailboxListSize");
     kapp->config()->sync();
 
     delete d->db;


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

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