Just pulled down your branch and I haven't seen any crashes after grabbing a screen zone.
Looks good!
-Jon

On Mar 6, 2010 11:35pm, "Dr. Robert Marmorstein" <rob...@narnia.homeunix.com> wrote:
Okay. I've merged the fix for KPassivePopup into my gitorious master branch.

Please test and let me know if it fixes your issues.



Robert



On Friday 05 March 2010 3:15:52 pm Dr. Robert Marmorstein wrote:

> Actually, I think the right approach is to use the static

> KPassivePopup::message function. One form of the function takes a

> QSystemTrayIcon* as a parent parameter (instead of a QWidget*), so I think

> that's what we should use. I'll try to commit it tonight.

>

> This would allow us to continue using the custom icon, etc.

>

> Thanks for your excellent work on this, Jon. I haven't had the time to

> really dig into this because of classes, so I especially appreciate your

> putting some effort into fixing this problem.

>

> Robert

>

> On Friday 05 March 2010 8:21:23 am Jon Mease wrote:

> > Hello again,

> >

> > So I've looked over this a little more this morning and I think I

> >

> > have a solution (not necessarily the solution, that's up for

> > discussion of course). I compared

> > BNPView::showPassiveDroppedDelayed() to basket v1.0.3 and it's

> > identical. The difference is that before when using KDE3 our

> > SystemTray inherited from KSystemTray which inherited from QLabel

> > which is a QWidget so there was no problem using our

> > Global::systemTray as the parent of the KPassivePopup. But as of KDE4

> > it seems that KSystemTray has gone away in favor of KSystemTrayIcon

> > which is no longer a QWidget. So as a proof of concept this patch

> > first checks whether we're going to use the system tray, and if so

> > calls systemTray->showMessage() rather than creating a KPassivePopup.

> > QSystemTray->ShowMessage is more limited than KPassivePopup (no custom

> > icons for example), but it looks like a very native system tray popup.

> >

> > Comments/Concerns? If we do want to do something like this there are

> > another three or four places in bnpview.cpp where we have the same

> > KPassivePopup constructor line that should also be modified.

> >

> > -Jon

> >

> >

> > =====PATCH=====

> > diff --git a/src/bnpview.cpp b/src/bnpview.cpp

> > index 5fbb3f0..6554eff 100644

> > --- a/src/bnpview.cpp

> > +++ b/src/bnpview.cpp

> > @@ -2308,19 +2308,25 @@ void BNPView::showPassiveDroppedDelayed()

> >

> > QString title = m_passiveDroppedTitle;

> >

> > - delete m_passivePopup; // Delete previous one (if exists): it

> > will then hide it (only one at a time)

> > - m_passivePopup = new KPassivePopup(Settings::useSystray() ?

> > (QWidget*)Global::systemTray : this);

> > - QImage contentsImage =

> > NoteDrag::feedbackPixmap(m_passiveDroppedSelection).toImage();

> > - QResource::registerResource(contentsImage.bits(),

> > ":/images/passivepopup_image");

> > - m_passivePopup->setView(

> > -

> >

> > title.arg(Tools::textToHTMLWithoutP(currentBasket()->basketName())), -

> >

> > (contentsImage.isNull() ? "" : "
> >

> > src=\":/images/passivepopup_image\">"),

> > - KIconLoader::global()->loadIcon(

> > - currentBasket()->icon(), KIconLoader::NoGroup, 16,

> > - KIconLoader::DefaultState, QStringList(), 0L, true

> > - )

> > - );

> > - m_passivePopup->show();

> > + if (!Settings::useSystray()) {

> > + delete m_passivePopup; // Delete previous one (if exists): it

> > will then hide it (only one at a time)

> > + m_passivePopup = new KPassivePopup(this);

> > + QImage contentsImage =

> > NoteDrag::feedbackPixmap(m_passiveDroppedSelection).toImage();

> > + QResource::registerResource(contentsImage.bits(),

> > ":/images/passivepopup_image");

> > + m_passivePopup->setView(

> > +

> >

> > title.arg(Tools::textToHTMLWithoutP(currentBasket()->basketName())), +

> >

> > (contentsImage.isNull() ? "" : "
> >

> > src=\":/images/passivepopup_image\">"),

> > + KIconLoader::global()->loadIcon(

> > + currentBasket()->icon(), KIconLoader::NoGroup, 16,

> > + KIconLoader::DefaultState, QStringList(), 0L, true

> > + )

> > + );

> > + m_passivePopup->show();

> > + } else {

> > + Global::systemTray->showMessage("Grabbed screen zone...",

> > + QString("to basket ")

> > + Tools::textToHTMLWithoutP(currentBasket()->basketName()),

> > +

> > QSystemTrayIcon::Information, 4000);

> > + }

> >

> > }

> >

> > void BNPView::showPassiveImpossible(const QString &message)

> >

> > -------------------------------------------------------------------------

> > -- --- Download IntelĀ® Parallel Studio Eval

> > Try the new software tools for yourself. Speed compiling, find bugs

> > proactively, and fine-tune applications for parallel performance.

> > See why Intel Parallel Studio got high marks during beta.

> > http://p.sf.net/sfu/intel-sw-dev

> > _______________________________________________

> > Basket-devel mailing list

> > Basket-devel@lists.sourceforge.net

> > https://lists.sourceforge.net/lists/listinfo/basket-devel

>

> ---------------------------------------------------------------------------

> --- Download IntelĀ® Parallel Studio Eval

> Try the new software tools for yourself. Speed compiling, find bugs

> proactively, and fine-tune applications for parallel performance.

> See why Intel Parallel Studio got high marks during beta.

> http://p.sf.net/sfu/intel-sw-dev

> _______________________________________________

> Basket-devel mailing list

> Basket-devel@lists.sourceforge.net

> https://lists.sourceforge.net/lists/listinfo/basket-devel

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Basket-devel mailing list
Basket-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basket-devel

Reply via email to