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® 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