void MainWindow::init() { //Here we import the user's transfers. KGet::load( KStandardDirs::locateLocal("appdata", "transfers.kgt") ); if(Settings::enableSystemTray()) { m_dock = new Tray(this); } // enable dropping setAcceptDrops(true); // enable hide toolbar setStandardToolBarMenuEnabled(true); // session management stuff connect(kapp, SIGNAL(saveYourself()), SLOT(slotSaveMyself())); // set auto-resume in kioslaverc (is there a cleaner way?) KConfig cfg("kioslaverc", KConfig::NoGlobals); cfg.group(QString()).writeEntry("AutoResume", true); cfg.sync(); // DropTarget m_drop = new DropTarget(this); if (Settings::firstRun()) { if (KMessageBox::questionYesNoCancel(this ,i18n("This is the first time you have run KGet.\n" "Would you like to enable KGet as the download manager for Konqueror?"), i18n("Konqueror Integration"), KGuiItem(i18n("Enable")), KGuiItem(i18n("Do Not Enable"))) == KMessageBox::Yes) { Settings::setKonquerorIntegration(true); m_konquerorIntegration->setChecked(Settings::konquerorIntegration()); slotKonquerorIntegration(true); } m_drop->setDropTargetVisible(false); // reset the FirstRun config option Settings::setFirstRun(false); } if (Settings::showDropTarget() && !m_startWithoutAnimation) m_drop->setDropTargetVisible(true); //auto paste stuff lastClipboard = QApplication::clipboard()->text( QClipboard::Clipboard ).trimmed(); clipboardTimer = new QTimer(this); connect(clipboardTimer, SIGNAL(timeout()), SLOT(slotCheckClipboard())); if ( Settings::autoPaste() ) clipboardTimer->start(1000); if (Settings::webinterfaceEnabled()) m_webinterface = new HttpServer(this); if (Settings::speedLimit()) { KGet::setGlobalDownloadLimit(Settings::globalDownloadLimit()); KGet::setGlobalUploadLimit(Settings::globalUploadLimit()); } else { KGet::setGlobalDownloadLimit(0); KGet::setGlobalUploadLimit(0); } connect(KGet::model(), SIGNAL(transfersAddedEvent(QList<TransferHandler*>)), this, SLOT(slotUpdateTitlePercent())); connect(KGet::model(), SIGNAL(transfersRemovedEvent(QList<TransferHandler*>)), this, SLOT(slotUpdateTitlePercent())); connect(KGet::model(), SIGNAL(transfersChangedEvent(QMap<TransferHandler*,Transfer::ChangesFlags>)), SLOT(slotTransfersChanged(QMap<TransferHandler*,Transfer::ChangesFlags>))); connect(KGet::model(), SIGNAL(groupsChangedEvent(QMap<TransferGroupHandler*,TransferGroup::ChangesFlags>)), SLOT(slotGroupsChanged(QMap<TransferGroupHandler*,TransferGroup::ChangesFlags>))); #ifdef DO_KGET_TEST if (m_doTesting) { // Unit testing TestKGet unitTest; QTest::qExec(&unitTest); } #endif }
DropTarget::DropTarget(MainWindow * mw) : QWidget(0, Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint), parentWidget(mw), animTimer(0), showInformation(false) { KWindowSystem::setState(winId(), NET::SkipTaskbar); QRect screenGeo = qApp->desktop()->screenGeometry(Settings::dropPosition()); if ((screenGeo.x() + screenGeo.width() >= Settings::dropPosition().x() && screenGeo.y() + screenGeo.height() >= Settings::dropPosition().y()) && Settings::dropPosition().y() >= 0 && Settings::dropPosition().x() >= 0) position = QPoint(Settings::dropPosition()); else position = QPoint(screenGeo.x() + screenGeo.width() / 2, screenGeo.y() + screenGeo.height() / 2); setFixedSize(TARGET_SIZE, TARGET_SIZE); if(Settings::dropSticky()) KWindowSystem::setState(winId(), KWindowSystem::Sticky); cachedPixmap = DesktopIcon("kget", TARGET_SIZE); if (!cachedPixmap.mask().isNull()) { QBitmap mask(size()); mask.fill(Qt::color0); QBitmap pixMask = cachedPixmap.mask(); QPainter p(&mask); p.drawPixmap((mask.width() - pixMask.width())/2, (mask.height() - pixMask.height())/2, pixMask); setMask(mask); } else setMask(QBitmap()); // popup menu for right mouse button popupMenu = new KMenu(this); popupMenu->addTitle(mw->windowTitle()); QAction * downloadAction = mw->actionCollection()->action("start_all_download"); popupMenu->addAction( downloadAction ); connect( downloadAction, SIGNAL(toggled(bool)), this, SLOT(slotStartStopToggled(bool)) ); popupMenu->addSeparator(); pop_show = popupMenu->addAction( QString(), this, SLOT(toggleMinimizeRestore()) ); popupMenu->addAction(parentWidget->actionCollection()->action("show_drop_target")); pop_sticky = popupMenu->addAction(i18nc("fix position for droptarget", "Sticky"), this, SLOT(toggleSticky())); pop_sticky->setCheckable(true); pop_sticky->setChecked(Settings::dropSticky()); popupMenu->addSeparator(); popupMenu->addAction( mw->actionCollection()->action("preferences") ); QAction *quitAction = new QAction(this); quitAction->setText(i18n("Quit KGet")); quitAction->setIcon(KIcon("system-shutdown")); connect(quitAction, SIGNAL(triggered()), mw, SLOT(slotQuit())); popupMenu->addAction(quitAction); isdragging = false; // Enable dropping setAcceptDrops(true); if ( Settings::showDropTarget() && Settings::firstRun() ) { showInformation = true; } animTimer = new QTimer(this); popupTimer = new QTimer(this); setMouseTracking(true); connect(KGet::model(), SIGNAL(transfersChangedEvent(QMap<TransferHandler*,Transfer::ChangesFlags>)), this, SLOT(slotToolTipUpdate())); connect(popupTimer, SIGNAL(timeout()), this, SLOT(slotToolTipTimer())); }