void KHelpMain::createToolbar() { QPixmap pixmap; QString pmpath; KToolBar *tb = new KToolBar( this ); pixmap = kapp->getIconLoader()->loadIcon( "back.xpm" ); tb->insertButton(pixmap, 0, SIGNAL( clicked() ), helpwin, SLOT( slotBack() ), FALSE, klocale->translate("Previous Document")); pixmap = kapp->getIconLoader()->loadIcon( "forward.xpm" ); tb->insertButton(pixmap, 1, SIGNAL( clicked() ), helpwin, SLOT( slotForward() ), FALSE, klocale->translate("Next Document")); tb->insertSeparator(); pixmap = kapp->getIconLoader()->loadIcon( "prev.xpm" ); tb->insertButton(pixmap, 2, SIGNAL( clicked() ), helpwin, SLOT( slotPrev() ), FALSE, klocale->translate("Previous Node")); pixmap = kapp->getIconLoader()->loadIcon( "next.xpm" ); tb->insertButton(pixmap, 3, SIGNAL( clicked() ), helpwin, SLOT( slotNext() ), FALSE, klocale->translate("Next Node")); pixmap = kapp->getIconLoader()->loadIcon( "up.xpm" ); tb->insertButton(pixmap, 4, SIGNAL( clicked() ), helpwin, SLOT( slotUp() ), FALSE,klocale->translate( "Up one Node")); pixmap = kapp->getIconLoader()->loadIcon( "top.xpm" ); tb->insertButton(pixmap, 5, SIGNAL( clicked() ), helpwin, SLOT( slotTop() ), FALSE, klocale->translate("Top Node")); tb->insertSeparator(); pixmap = kapp->getIconLoader()->loadIcon( "contents.xpm" ); tb->insertButton(pixmap, 6, SIGNAL( clicked() ), helpwin, SLOT( slotDir() ), FALSE, klocale->translate("Help Contents")); pixmap = kapp->getIconLoader()->loadIcon( "reload.xpm" ); tb->insertButton(pixmap, 7, SIGNAL( clicked() ), helpwin, SLOT( slotReload() ), TRUE, klocale->translate( "Reload current document" ) ); pixmap = kapp->getIconLoader()->loadIcon( "stop.xpm" ); tb->insertButton(pixmap, 8, SIGNAL( clicked() ), helpwin, SLOT( slotStopProcessing() ), FALSE, klocale->translate("Stop")); tb->setBarPos( KToolBar::Top ); toolbar = tb; }
void KMJobViewer::initActions() { // job actions KAction *hact = new KAction(i18n("&Hold"),"stop",0,this,SLOT(slotHold()),actionCollection(),"job_hold"); KAction *ract = new KAction(i18n("&Resume"),"run",0,this,SLOT(slotResume()),actionCollection(),"job_resume"); KAction *dact = new KAction(i18n("Remo&ve"),"edittrash",Qt::Key_Delete,this,SLOT(slotRemove()),actionCollection(),"job_remove"); KAction *sact = new KAction(i18n("Res&tart"),"redo",0,this,SLOT(slotRestart()),actionCollection(),"job_restart"); KActionMenu *mact = new KActionMenu(i18n("&Move to Printer"),"fileprint",actionCollection(),"job_move"); mact->setDelayed(false); connect(mact->popupMenu(),SIGNAL(activated(int)),SLOT(slotMove(int))); connect(mact->popupMenu(),SIGNAL(aboutToShow()),KMTimer::self(),SLOT(hold())); connect(mact->popupMenu(),SIGNAL(aboutToHide()),KMTimer::self(),SLOT(release())); connect(mact->popupMenu(),SIGNAL(aboutToShow()),SLOT(slotShowMoveMenu())); KToggleAction *tact = new KToggleAction(i18n("&Toggle Completed Jobs"),"history",0,actionCollection(),"view_completed"); tact->setEnabled(m_manager->actions() & KMJob::ShowCompleted); connect(tact,SIGNAL(toggled(bool)),SLOT(slotShowCompleted(bool))); KToggleAction *uact = new KToggleAction(i18n("Show Only User Jobs"), "personal", 0, actionCollection(), "view_user_jobs"); uact->setCheckedState(KGuiItem(i18n("Hide Only User Jobs"),"personal")); connect(uact, SIGNAL(toggled(bool)), SLOT(slotUserOnly(bool))); m_userfield = new QLineEdit(0); m_userfield->setText(getenv("USER")); connect(m_userfield, SIGNAL(returnPressed()), SLOT(slotUserChanged())); connect(uact, SIGNAL(toggled(bool)), m_userfield, SLOT(setEnabled(bool))); m_userfield->setEnabled(false); m_userfield->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); KWidgetAction *ufact = new KWidgetAction(m_userfield, i18n("User Name"), 0, 0, 0, actionCollection(), "view_username"); if (!m_pop) { m_pop = new QPopupMenu(this); connect(m_pop,SIGNAL(aboutToShow()),KMTimer::self(),SLOT(hold())); connect(m_pop,SIGNAL(aboutToHide()),KMTimer::self(),SLOT(release())); hact->plug(m_pop); ract->plug(m_pop); m_pop->insertSeparator(); dact->plug(m_pop); mact->plug(m_pop); m_pop->insertSeparator(); sact->plug(m_pop); } // Filter actions KActionMenu *fact = new KActionMenu(i18n("&Select Printer"), "kdeprint_printer", actionCollection(), "filter_modify"); fact->setDelayed(false); connect(fact->popupMenu(),SIGNAL(activated(int)),SLOT(slotPrinterSelected(int))); connect(fact->popupMenu(),SIGNAL(aboutToShow()),KMTimer::self(),SLOT(hold())); connect(fact->popupMenu(),SIGNAL(aboutToHide()),KMTimer::self(),SLOT(release())); connect(fact->popupMenu(),SIGNAL(aboutToShow()),SLOT(slotShowPrinterMenu())); if (!m_standalone) { KToolBar *toolbar = toolBar(); hact->plug(toolbar); ract->plug(toolbar); toolbar->insertSeparator(); dact->plug(toolbar); mact->plug(toolbar); toolbar->insertSeparator(); sact->plug(toolbar); toolbar->insertSeparator(); tact->plug(toolbar); uact->plug(toolbar); ufact->plug(toolbar); } else { // stand-alone application KStdAction::quit(kapp,SLOT(quit()),actionCollection()); KStdAction::close(this,SLOT(slotClose()),actionCollection()); KStdAction::preferences(this, SLOT(slotConfigure()), actionCollection()); // refresh action new KAction(i18n("Refresh"),"reload",0,this,SLOT(slotRefresh()),actionCollection(),"refresh"); // create status bar KStatusBar *statusbar = statusBar(); m_stickybox = new QCheckBox( i18n( "Keep window permanent" ), statusbar ); statusbar->addWidget( m_stickybox, 1, false ); statusbar->insertItem(" " + i18n("Max.: %1").arg(i18n("Unlimited"))+ " ", 0, 0, true); statusbar->setItemFixed(0); updateStatusBar(); createGUI(); } loadPluginActions(); slotSelectionChanged(); }
// TODO convert to use xmlui file void KuickShow::initGUI( const KURL& startDir ) { KURL startURL( startDir ); if ( !KProtocolInfo::supportsListing( startURL ) ) startURL = KURL(); fileWidget = new FileWidget( startURL, this, "MainWidget" ); setFocusProxy( fileWidget ); KActionCollection *coll = fileWidget->actionCollection(); redirectDeleteAndTrashActions(coll); connect( fileWidget, SIGNAL( fileSelected( const KFileItem * ) ), this, SLOT( slotSelected( const KFileItem * ) )); connect( fileWidget, SIGNAL( fileHighlighted( const KFileItem * )), this, SLOT( slotHighlighted( const KFileItem * ) )); connect( fileWidget, SIGNAL( urlEntered( const KURL& )), this, SLOT( dirSelected( const KURL& )) ); fileWidget->setAcceptDrops(true); connect( fileWidget, SIGNAL( dropped( const KFileItem *, QDropEvent *, const KURL::List & )), this, SLOT( slotDropped( const KFileItem *, QDropEvent *, const KURL::List &)) ); // setup actions KAction *open = KStdAction::open( this, SLOT( slotOpenURL() ), coll, "openURL" ); KAction *print = KStdAction::print( this, SLOT( slotPrint() ), coll, "kuick_print" ); print->setText( i18n("Print Image...") ); KAction *configure = new KAction( i18n("Configure %1...").arg( KGlobal::instance()->aboutData()->programName() ), "configure", KShortcut(), this, SLOT( configuration() ), coll, "kuick_configure" ); KAction *slide = new KAction( i18n("Start Slideshow" ), "ksslide", KShortcut( Key_F2 ), this, SLOT( startSlideShow() ), coll, "kuick_slideshow" ); KAction *about = new KAction( i18n( "About KuickShow" ), "about", KShortcut(), this, SLOT( about() ), coll, "about" ); oneWindowAction = new KToggleAction( i18n("Open Only One Image Window"), "window_new", KShortcut( CTRL+Key_N ), coll, "kuick_one window" ); m_toggleBrowserAction = new KToggleAction( i18n("Show File Browser"), KShortcut( Key_Space ), coll, "toggleBrowser" ); m_toggleBrowserAction->setCheckedState(i18n("Hide File Browser")); connect( m_toggleBrowserAction, SIGNAL( toggled( bool ) ), SLOT( toggleBrowser() )); KAction *showInOther = new KAction( i18n("Show Image"), KShortcut(), this, SLOT( slotShowInOtherWindow() ), coll, "kuick_showInOtherWindow" ); KAction *showInSame = new KAction( i18n("Show Image in Active Window"), KShortcut(), this, SLOT( slotShowInSameWindow() ), coll, "kuick_showInSameWindow" ); KAction *showFullscreen = new KAction( i18n("Show Image in Fullscreen Mode"), KShortcut(), this, SLOT( slotShowFullscreen() ), coll, "kuick_showFullscreen" ); KAction *quit = KStdAction::quit( this, SLOT(slotQuit()), coll, "quit"); // remove QString::null parameter -- ellis coll->readShortcutSettings( QString::null ); m_accel = coll->accel(); // menubar KMenuBar *mBar = menuBar(); QPopupMenu *fileMenu = new QPopupMenu( mBar, "file" ); open->plug( fileMenu ); showInOther->plug( fileMenu ); showInSame->plug( fileMenu ); showFullscreen->plug( fileMenu ); fileMenu->insertSeparator(); slide->plug( fileMenu ); print->plug( fileMenu ); fileMenu->insertSeparator(); quit->plug( fileMenu ); QPopupMenu *editMenu = new QPopupMenu( mBar, "edit" ); coll->action("mkdir")->plug( editMenu ); coll->action("delete")->plug( editMenu ); editMenu->insertSeparator(); coll->action("properties")->plug( editMenu ); // remove the Sorting submenu (and the separator below) // from the main contextmenu KActionMenu *sortingMenu = static_cast<KActionMenu*>( coll->action("sorting menu")); KActionMenu *mainActionMenu = static_cast<KActionMenu*>( coll->action("popupMenu")); QPopupMenu *mainPopup = mainActionMenu->popupMenu(); int sortingIndex = mainPopup->indexOf( sortingMenu->itemId( 0 ) ); int separatorId = mainPopup->idAt( sortingIndex + 1 ); QMenuItem *separatorItem = mainPopup->findItem( separatorId ); if ( separatorItem && separatorItem->isSeparator() ) mainPopup->removeItem( separatorId ); mainActionMenu->remove( sortingMenu ); // add the sorting menu and a separator into the View menu KActionMenu *viewActionMenu = static_cast<KActionMenu*>( coll->action("view menu")); viewActionMenu->popupMenu()->insertSeparator( 0 ); sortingMenu->plug( viewActionMenu->popupMenu(), 0 ); // on top of the menu QPopupMenu *settingsMenu = new QPopupMenu( mBar, "settings" ); configure->plug( settingsMenu ); mBar->insertItem( i18n("&File"), fileMenu ); mBar->insertItem( i18n("&Edit"), editMenu ); viewActionMenu->plug( mBar ); mBar->insertItem( i18n("&Settings"), settingsMenu ); // toolbar KToolBar *tBar = toolBar(); tBar->setText( i18n( "Main Toolbar" ) ); coll->action("up")->plug( tBar ); coll->action("back")->plug( tBar ); coll->action("forward")->plug( tBar ); coll->action("home")->plug( tBar ); coll->action("reload")->plug( tBar ); tBar->insertSeparator(); coll->action( "short view" )->plug( tBar ); coll->action( "detailed view" )->plug( tBar ); coll->action( "preview")->plug( tBar ); tBar->insertSeparator(); configure->plug( tBar ); slide->plug( tBar ); tBar->insertSeparator(); oneWindowAction->plug( tBar ); print->plug( tBar ); tBar->insertSeparator(); about->plug( tBar ); QPopupMenu *help = helpMenu( QString::null, false ); mBar->insertItem( KStdGuiItem::help().text() , help ); KStatusBar* sBar = statusBar(); sBar->insertItem( " ", URL_ITEM, 10 ); sBar->insertItem( " ", META_ITEM, 2 ); sBar->setItemAlignment(URL_ITEM, QLabel::AlignVCenter | QLabel::AlignLeft); fileWidget->setFocus(); KConfig *kc = KGlobal::config(); kc->setGroup("SessionSettings"); bool oneWindow = kc->readBoolEntry("OpenImagesInActiveWindow", true ); oneWindowAction->setChecked( oneWindow ); tBar->show(); // Address box in address tool bar KToolBar *addressToolBar = toolBar( "address_bar" ); const int ID_ADDRESSBAR = 1; cmbPath = new KURLComboBox( KURLComboBox::Directories, true, addressToolBar, "address_combo_box" ); KURLCompletion *cmpl = new KURLCompletion( KURLCompletion::DirCompletion ); cmbPath->setCompletionObject( cmpl ); cmbPath->setAutoDeleteCompletionObject( true ); addressToolBar->insertWidget( ID_ADDRESSBAR, 1, cmbPath); addressToolBar->setItemAutoSized( ID_ADDRESSBAR ); connect( cmbPath, SIGNAL( urlActivated( const KURL& )), this, SLOT( slotSetURL( const KURL& ))); connect( cmbPath, SIGNAL( returnPressed()), this, SLOT( slotURLComboReturnPressed())); fileWidget->initActions(); fileWidget->clearHistory(); dirSelected( fileWidget->url() ); setCentralWidget( fileWidget ); setupGUI( KMainWindow::Save ); coll->action( "reload" )->setShortcut( KStdAccel::reload() ); coll->action( "short view" )->setShortcut(Key_F6); coll->action( "detailed view" )->setShortcut(Key_F7); coll->action( "show hidden" )->setShortcut(Key_F8); coll->action( "mkdir" )->setShortcut(Key_F10); coll->action( "preview" )->setShortcut(Key_F11); coll->action( "separate dirs" )->setShortcut(Key_F12); }