| Summary: | Taskbar icon behaves funny | ||
|---|---|---|---|
| Product: | [Applications] ktimetracker | Reporter: | Thomas Jarosch <thomas.jarosch> |
| Component: | general | Assignee: | Thorsten Staerk <dev> |
| Status: | VERIFIED FIXED | ||
| Severity: | normal | CC: | aspotashev, porton |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: | start tray icon clock if task is running at program startup | ||
|
Description
Thomas Jarosch
2008-08-22 16:01:09 UTC
Created attachment 26996 [details]
start tray icon clock if task is running at program startup
ok, 2 bug reports in one... Thanks for the quick fix! I'll try to trace the disappearing traybar icon next week and will then open a second bug report if that is okay with you. If the taskbar icon has disappeared, is ktimetracker still running (ps -A | grep ktimetracker)? Obviously yes, because you strace it, but could you confirm? When I strace it, the icon stays in the taskbar, so the process still exists. I also haven't figured out yet if it makes a difference if a task is running or not. Today I won't strace it, but dump the process list every minute into a file. So we'll atleast know if the process still exists or how long it takes until the issue occurs. Yipee, I figured out how to reproduce this one :-) 1. Set the "idle detection" to 1 minute 2. Start a task 3. Close the window. ktimetracker stays in the taskbar and get a coffe or tea 4. You'll be asked if you want to continue or revert the tracked time. Select "continue" and then ktimetracker just exits. I see this message on the gdb console: "Object::connect: No such signal QWidget::changed(bool) Program exited normally." ktimetracker does not exit if the application window stays open. Great, you deserve a beer for making this reproducible! However, I just ran into a bug so that I cannot use the idle time detection. As soon as I can, I will continue here. For me, it does not exit if I click "Continue". If the problem persists, please compile kdepim from 4.1 branch as outlined on http://techbase.kde.org/Getting_Started then start ktimetracker from console and attach the konsole output here. Good that you used gdb, but at the moment I prefer the konsole output... Ok, I just checked out the KDE 4.1 kdepim branched and compile ktimetracker.
Before running it, it set the LD_LIBRARY_PATH to "build_dir/kdepim/lib:$LD_LIBRARY_PATH" to make sure it picks up the new base libraries (verified via ldd)
The window still disappears. I've had a quick look around the code,
to me the "Object::connect: No such signal QWidget::changed(bool)" error messages gets issued in IdleTimeDetector::informOverrun(), so I've added debug output before and after the connect() call.
Here's the konsole ouput:
ktimetracker(13218) Task::changeTimes: Entering function
ktimetracker(13218) Task::changeTimes: Task's sessionStartTiMe is KDateTime()
ktimetracker(13218) Task::changeTotalTimes: Task::changeTotalTimes( 1 , 1 ) for "Debug"
ktimetracker(13218) Task::update: Entering function
ktimetracker(13218) formatTime: Entering function(minutes= 1 ,decimal= false );
ktimetracker(13218) formatTime: Entering function(minutes= 1 ,decimal= false );
ktimetracker(13218) formatTime: Entering function(minutes= 1 ,decimal= false );
ktimetracker(13218) formatTime: Entering function(minutes= 1 ,decimal= false );
ktimetracker(13218) Task::update: Leaving function
ktimetracker(13218) MainWindow::updateTime: Entering function(sessionDiff= 1 totalDiff= 1 )
ktimetracker(13218) MainWindow::updateStatusBar: Entering MainWindow::updateStatusBar( )
ktimetracker(13218) formatTime: Entering function(minutes= 45 ,decimal= false );
ktimetracker(13218) formatTime: Entering function(minutes= 9491 ,decimal= false );
ktimetracker(13218) MainWindow::updateStatusBar: Exiting MainWindow::updateStatusBar( )
ktimetracker(13218) MainWindow::updateTime: Exiting MainWindow::updateTime
ktimetracker(13218) Task::changeTotalTimes: Leaving function
ktimetracker(13218) Task::changeTimes: Leaving function
ktimetracker(13218) Task::changeTimes: Entering function
ktimetracker(13218) Task::changeTimes: Task's sessionStartTiMe is KDateTime()
ktimetracker(13218) Task::changeTotalTimes: Task::changeTotalTimes( 1 , 1 ) for "Debug"
ktimetracker(13218) Task::update: Entering function
ktimetracker(13218) formatTime: Entering function(minutes= 2 ,decimal= false );
ktimetracker(13218) formatTime: Entering function(minutes= 2 ,decimal= false );
ktimetracker(13218) formatTime: Entering function(minutes= 2 ,decimal= false );
ktimetracker(13218) formatTime: Entering function(minutes= 2 ,decimal= false );
ktimetracker(13218) Task::update: Leaving function
ktimetracker(13218) MainWindow::updateTime: Entering function(sessionDiff= 1 totalDiff= 1 )
ktimetracker(13218) MainWindow::updateStatusBar: Entering MainWindow::updateStatusBar( )
ktimetracker(13218) formatTime: Entering function(minutes= 46 ,decimal= false );
ktimetracker(13218) formatTime: Entering function(minutes= 9492 ,decimal= false );
ktimetracker(13218) MainWindow::updateStatusBar: Exiting MainWindow::updateStatusBar( )
ktimetracker(13218) MainWindow::updateTime: Exiting MainWindow::updateTime
ktimetracker(13218) Task::changeTotalTimes: Leaving function
ktimetracker(13218) Task::changeTimes: Leaving function
ktimetracker(13218) IdleTimeDetector::informOverrun: TOMJ: Before connect(SIGNAL(changed(bool))).
Object::connect: No such signal QWidget::changed(bool)
ktimetracker(13218) IdleTimeDetector::informOverrun: TOMJ: after connect(SIGNAL(changed(bool))).
ktimetracker(13218) MainWindow::~MainWindow: MainWindow::~MainWindows: Quitting ktimetracker.
If I do the same procedure with the "Revert" button, the application also closes:
ktimetracker(13751) Task::changeTimes: Entering function
ktimetracker(13751) Task::changeTimes: Task's sessionStartTiMe is KDateTime()
ktimetracker(13751) Task::changeTotalTimes: Task::changeTotalTimes( 1 , 1 ) for "Debug"
ktimetracker(13751) Task::update: Entering function
ktimetracker(13751) formatTime: Entering function(minutes= 1 ,decimal= false );
ktimetracker(13751) formatTime: Entering function(minutes= 1 ,decimal= false );
ktimetracker(13751) formatTime: Entering function(minutes= 1 ,decimal= false );
ktimetracker(13751) formatTime: Entering function(minutes= 1 ,decimal= false );
ktimetracker(13751) Task::update: Leaving function
ktimetracker(13751) MainWindow::updateTime: Entering function(sessionDiff= 1 totalDiff= 1 )
ktimetracker(13751) MainWindow::updateStatusBar: Entering MainWindow::updateStatusBar( )
ktimetracker(13751) formatTime: Entering function(minutes= 45 ,decimal= false );
ktimetracker(13751) formatTime: Entering function(minutes= 9491 ,decimal= false );
ktimetracker(13751) MainWindow::updateStatusBar: Exiting MainWindow::updateStatusBar( )
ktimetracker(13751) MainWindow::updateTime: Exiting MainWindow::updateTime
ktimetracker(13751) Task::changeTotalTimes: Leaving function
ktimetracker(13751) Task::changeTimes: Leaving function
ktimetracker(13751) Task::changeTimes: Entering function
ktimetracker(13751) Task::changeTimes: Task's sessionStartTiMe is KDateTime()
ktimetracker(13751) Task::changeTotalTimes: Task::changeTotalTimes( 1 , 1 ) for "Debug"
ktimetracker(13751) Task::update: Entering function
ktimetracker(13751) formatTime: Entering function(minutes= 2 ,decimal= false );
ktimetracker(13751) formatTime: Entering function(minutes= 2 ,decimal= false );
ktimetracker(13751) formatTime: Entering function(minutes= 2 ,decimal= false );
ktimetracker(13751) formatTime: Entering function(minutes= 2 ,decimal= false );
ktimetracker(13751) Task::update: Leaving function
ktimetracker(13751) MainWindow::updateTime: Entering function(sessionDiff= 1 totalDiff= 1 )
ktimetracker(13751) MainWindow::updateStatusBar: Entering MainWindow::updateStatusBar( )
ktimetracker(13751) formatTime: Entering function(minutes= 46 ,decimal= false );
ktimetracker(13751) formatTime: Entering function(minutes= 9492 ,decimal= false );
ktimetracker(13751) MainWindow::updateStatusBar: Exiting MainWindow::updateStatusBar( )
ktimetracker(13751) MainWindow::updateTime: Exiting MainWindow::updateTime
ktimetracker(13751) Task::changeTotalTimes: Leaving function
ktimetracker(13751) Task::changeTimes: Leaving function
ktimetracker(13751) IdleTimeDetector::informOverrun: TOMJ: Before connect(SIGNAL(changed(bool))). wid:
Object::connect: No such signal QWidget::changed(bool)
ktimetracker(13751) IdleTimeDetector::informOverrun: TOMJ: after connect(SIGNAL(changed(bool))).
ktimetracker(13751) IdleTimeDetector::revert: Entering function
ktimetracker(13751) Task::changeTimes: Entering function
ktimetracker(13751) Task::changeTimes: Task's sessionStartTiMe is KDateTime()
ktimetracker(13751) Task::changeTotalTimes: Task::changeTotalTimes( -1 , -1 ) for "Debug"
ktimetracker(13751) Task::update: Entering function
ktimetracker(13751) formatTime: Entering function(minutes= 1 ,decimal= false );
ktimetracker(13751) formatTime: Entering function(minutes= 1 ,decimal= false );
ktimetracker(13751) formatTime: Entering function(minutes= 1 ,decimal= false );
ktimetracker(13751) formatTime: Entering function(minutes= 1 ,decimal= false );
ktimetracker(13751) Task::update: Leaving function
ktimetracker(13751) MainWindow::updateTime: Entering function(sessionDiff= -1 totalDiff= -1 )
ktimetracker(13751) MainWindow::updateStatusBar: Entering MainWindow::updateStatusBar( )
ktimetracker(13751) formatTime: Entering function(minutes= 45 ,decimal= false );
ktimetracker(13751) formatTime: Entering function(minutes= 9491 ,decimal= false );
ktimetracker(13751) MainWindow::updateStatusBar: Exiting MainWindow::updateStatusBar( )
ktimetracker(13751) MainWindow::updateTime: Exiting MainWindow::updateTime
ktimetracker(13751) Task::changeTotalTimes: Leaving function
ktimetracker(13751) Task::changeTimes: Leaving function
ktimetracker(13751) TaskView::stopAllTimers: Entering function
ktimetracker(13751) Task::setRunning: Entering function
ktimetracker(13751) KarmStorage::stopTimer: Entering function; when= QDateTime("Fri Aug 29 14:38:41 2008")
ktimetracker(13751) KarmStorage::stopTimer: found an event for task, event= "libkcal-1002365824.91"
ktimetracker(13751) KarmStorage::stopTimer: this event has an enddate
ktimetracker(13751) KarmStorage::stopTimer: end date is KDateTime(2008-08-29T14:37:40,151Z)
ktimetracker(13751) KarmStorage::stopTimer: found an event for task, event= "libkcal-1025204879.738"
ktimetracker(13751) KarmStorage::stopTimer: this event has an enddate
ktimetracker(13751) KarmStorage::stopTimer: end date is KDateTime(2008-08-29T14:16:29Z)
ktimetracker(13751) KarmStorage::stopTimer: found an event for task, event= "libkcal-40368163.383"
ktimetracker(13751) KarmStorage::stopTimer: this event has no enddate
ktimetracker(13751) KarmStorage::stopTimer: kwhen == KDateTime(2008-08-29T14:38:41,290Z)
ktimetracker(13751) KarmStorage::saveCalendar: Entering function
ktimetracker(13751) TimetrackerWidget::slotUpdateButtons: Entering function
ktimetracker(13751) TaskView::currentItem: Entering function
ktimetracker(13751) TaskView::itemAt: Leaving TaskView::itemAt returning false
ktimetracker(13751) TaskView::itemAt: Leaving TaskView::itemAt returning false
ktimetracker(13751) TaskView::itemAt: Leaving TaskView::itemAt returning false
ktimetracker(13751) TaskView::itemAt: Leaving TaskView::itemAt returning false
ktimetracker(13751) TaskView::itemAt: Leaving TaskView::itemAt returning false
ktimetracker(13751) TaskView::itemAt: Leaving TaskView::itemAt returning false
ktimetracker(13751) TaskView::itemAt: Leaving TaskView::itemAt returning false
ktimetracker(13751) TaskView::itemAt: Leaving TaskView::itemAt returning false
ktimetracker(13751) TaskView::itemAt: Leaving TaskView::itemAt returning false
ktimetracker(13751) TaskView::itemAt: Leaving TaskView::itemAt returning false
ktimetracker(13751) TaskView::itemAt: Leaving TaskView::itemAt returning false
ktimetracker(13751) TaskView::itemAt: Leaving TaskView::itemAt returning false
ktimetracker(13751) TaskView::itemAt: Leaving TaskView::itemAt returning false
ktimetracker(13751) TaskView::itemAt: Leaving TaskView::itemAt returning false
ktimetracker(13751) TaskView::itemAt: Leaving TaskView::itemAt returning true
ktimetracker(13751) TimetrackerWidget::slotUpdateButtons: Leaving function
ktimetracker(13751) TrayIcon::stopClock: Entering function
ktimetracker(13751) TrayIcon::stopClock: Leaving function
ktimetracker(13751) TimetrackerWidget::updateTabs: Entering function
ktimetracker(13751) TimetrackerWidget::updateTabs: Leaving function
ktimetracker(13751) MainWindow::~MainWindow: MainWindow::~MainWindows: Quitting ktimetracker.
The problem is gone with KDE 4.1.1, I'm closing the bug :-) Great! Feedback (especially this) is much appreciated. *** Bug 173319 has been marked as a duplicate of this bug. *** Hello! Sorry to be the bearer of bad news, but this project has been unmaintained for many years so I will be closing this bug. |