From kde-commits Mon Oct 23 18:20:23 2006 From: Tom Albers Date: Mon, 23 Oct 2006 18:20:23 +0000 To: kde-commits Subject: playground/pim/qma/src Message-Id: <1161627623.006347.24731.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=116162764928081 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 defaultsize1 = config->readIntListEntry("hsplitter"); if (!defaultsize1.count()) @@ -211,19 +216,34 @@ defaultsize2.append(400); } + QValueList 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 - +#include #include +#include #include #include @@ -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 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;