CentralWidget::CentralWidget(MainWindow *parent) : QWidget(parent) , lastTabPage(0) , tabWidget(0) , findWidget(0) , printer(0) , usesDefaultCollection(parent->usesDefaultCollection()) , m_searchWidget(0) { TRACE_OBJ globalActionList.clear(); staticCentralWidget = this; QVBoxLayout *vboxLayout = new QVBoxLayout(this); QString resourcePath = QLatin1String(":/trolltech/assistant/images/"); vboxLayout->setMargin(0); tabWidget = new QTabWidget(this); #ifndef Q_OS_MAC resourcePath.append(QLatin1String("win")); #else resourcePath.append(QLatin1String("mac")); tabWidget->setDocumentMode(true); #endif connect(tabWidget, SIGNAL(currentChanged(int)), this, SLOT(currentPageChanged(int))); QToolButton *newTabButton = new QToolButton(this); newTabButton->setAutoRaise(true); newTabButton->setToolTip(tr("Add new page")); newTabButton->setIcon(QIcon(resourcePath + QLatin1String("/addtab.png"))); tabWidget->setCornerWidget(newTabButton, Qt::TopLeftCorner); connect(newTabButton, SIGNAL(clicked()), this, SLOT(newTab())); QToolButton *closeTabButton = new QToolButton(this); closeTabButton->setEnabled(false); closeTabButton->setAutoRaise(true); closeTabButton->setToolTip(tr("Close current page")); closeTabButton->setIcon(QIcon(resourcePath + QLatin1String("/closetab.png"))); tabWidget->setCornerWidget(closeTabButton, Qt::TopRightCorner); connect(closeTabButton, SIGNAL(clicked()), this, SLOT(closeTab())); vboxLayout->addWidget(tabWidget); findWidget = new FindWidget(this); vboxLayout->addWidget(findWidget); findWidget->hide(); connect(findWidget, SIGNAL(findNext()), this, SLOT(findNext())); connect(findWidget, SIGNAL(findPrevious()), this, SLOT(findPrevious())); connect(findWidget, SIGNAL(find(QString, bool)), this, SLOT(find(QString, bool))); connect(findWidget, SIGNAL(escapePressed()), this, SLOT(activateTab())); QTabBar *tabBar = qFindChild<QTabBar*>(tabWidget); if (tabBar) { tabBar->installEventFilter(this); tabBar->setContextMenuPolicy(Qt::CustomContextMenu); connect(tabBar, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showTabBarContextMenu(QPoint))); } #if defined(QT_NO_WEBKIT) QPalette p = palette(); p.setColor(QPalette::Inactive, QPalette::Highlight, p.color(QPalette::Active, QPalette::Highlight)); p.setColor(QPalette::Inactive, QPalette::HighlightedText, p.color(QPalette::Active, QPalette::HighlightedText)); setPalette(p); #endif }
void MainWindow::setup() { if(setupCompleted) return; qApp->setOverrideCursor(QCursor(Qt::WaitCursor)); statusBar()->showMessage(tr("Initializing Qt Assistant...")); setupCompleted = true; helpDock->initialize(); connect(ui.actionGoPrevious, SIGNAL(triggered()), tabs, SLOT(backward())); connect(ui.actionGoNext, SIGNAL(triggered()), tabs, SLOT(forward())); connect(ui.actionEditCopy, SIGNAL(triggered()), tabs, SLOT(copy())); connect(ui.actionFileExit, SIGNAL(triggered()), qApp, SLOT(closeAllWindows())); connect(ui.actionAddBookmark, SIGNAL(triggered()), helpDock, SLOT(addBookmark())); connect(helpDock, SIGNAL(showLink(QString)), this, SLOT(showLink(QString))); connect(helpDock, SIGNAL(showSearchLink(QString,QStringList)), this, SLOT(showSearchLink(QString,QStringList))); connect(ui.bookmarkMenu, SIGNAL(triggered(QAction*)), this, SLOT(showBookmark(QAction*))); connect(ui.actionZoomIn, SIGNAL(triggered()), tabs, SLOT(zoomIn())); connect(ui.actionZoomOut, SIGNAL(triggered()), tabs, SLOT(zoomOut())); connect(ui.actionOpenPage, SIGNAL(triggered()), tabs, SLOT(newTab())); connect(ui.actionClosePage, SIGNAL(triggered()), tabs, SLOT(closeTab())); connect(ui.actionNextPage, SIGNAL(triggered()), tabs, SLOT(nextTab())); connect(ui.actionPrevPage, SIGNAL(triggered()), tabs, SLOT(previousTab())); #if defined(Q_OS_WIN32) || defined(Q_OS_WIN64) QShortcut *acc = new QShortcut(tr("SHIFT+CTRL+="), this); connect(acc, SIGNAL(activated()), ui.actionZoomIn, SIGNAL(triggered())); #endif connect(new QShortcut(tr("Ctrl+T"), this), SIGNAL(activated()), helpDock, SLOT(toggleContents())); connect(new QShortcut(tr("Ctrl+I"), this), SIGNAL(activated()), helpDock, SLOT(toggleIndex())); connect(new QShortcut(tr("Ctrl+B"), this), SIGNAL(activated()), helpDock, SLOT(toggleBookmarks())); connect(new QShortcut(tr("Ctrl+S"), this), SIGNAL(activated()), helpDock, SLOT(toggleSearch())); connect(new QShortcut(tr("Ctrl+]"), this), SIGNAL(activated()), tabs, SLOT(nextTab())); connect(new QShortcut(tr("Ctrl+["), this), SIGNAL(activated()), tabs, SLOT(previousTab())); Config *config = Config::configuration(); setupBookmarkMenu(); QAction *viewsAction = createPopupMenu()->menuAction(); viewsAction->setText(tr("Views")); ui.viewMenu->addAction(viewsAction); const int tabIndex = config->sideBarPage(); helpDock->tabWidget()->setCurrentIndex(tabIndex); // The tab index is 0 by default, so we need to force an upate // to poulate the contents in this case. if (tabIndex == 0) helpDock->currentTabChanged(tabIndex); ui.actionEditFind->setShortcut(QKeySequence::Find); ui.actionEditFindNext->setShortcut(QKeySequence::FindNext); ui.actionEditFindPrev->setShortcut(QKeySequence::FindPrevious); QObject::connect(ui.actionEditFind, SIGNAL(triggered()), tabs, SLOT(find())); QObject::connect(ui.actionEditFindNext, SIGNAL(triggered()), tabs, SLOT(findNext())); QObject::connect(ui.actionEditFindPrev, SIGNAL(triggered()), tabs, SLOT(findPrevious())); connect(ui.actionEditFont_Settings, SIGNAL(triggered()), this, SLOT(showFontSettingsDialog())); qApp->restoreOverrideCursor(); ui.actionGoPrevious->setEnabled(false); ui.actionGoNext->setEnabled(false); ui.actionEditCopy->setEnabled(false); connect(tabs->currentBrowser(), SIGNAL(copyAvailable(bool)), this, SLOT(copyAvailable(bool))); // set the current selected item in the treeview helpDialog()->locateContents(tabs->currentBrowser()->source().toString()); connect(tabs, SIGNAL(browserUrlChanged(QString)), helpDock, SLOT(locateContents(QString))); }
int main(int argc, char *argv[]) { uiInitOptions o; int i; const char *err; uiWindow *w; uiBox *page2, *page3, *page4, *page5; uiBox *page6, *page7, *page8, *page9, *page10; uiBox *page11, *page12, *page13; uiTab *page14; uiBox *page15; uiBox *page16; uiTab *outerTab; uiTab *innerTab; int nomenus = 0; int startspaced = 0; int steps = 0; newhbox = uiNewHorizontalBox; newvbox = uiNewVerticalBox; memset(&o, 0, sizeof (uiInitOptions)); for (i = 1; i < argc; i++) if (strcmp(argv[i], "nomenus") == 0) nomenus = 1; else if (strcmp(argv[i], "startspaced") == 0) startspaced = 1; else if (strcmp(argv[i], "swaphv") == 0) { newhbox = uiNewVerticalBox; newvbox = uiNewHorizontalBox; } else if (strcmp(argv[i], "steps") == 0) steps = 1; else { fprintf(stderr, "%s: unrecognized option %s\n", argv[0], argv[i]); return 1; } err = uiInit(&o); if (err != NULL) { fprintf(stderr, "error initializing ui: %s\n", err); uiFreeInitError(err); return 1; } if (!nomenus) initMenus(); w = newWindow("Main Window", 320, 240, 1); uiWindowOnClosing(w, onClosing, NULL); printf("main window %p\n", (void *) w); uiOnShouldQuit(onShouldQuit, w); mainBox = newHorizontalBox(); uiWindowSetChild(w, uiControl(mainBox)); outerTab = newTab(); uiBoxAppend(mainBox, uiControl(outerTab), 1); mainTab = newTab(); uiTabAppend(outerTab, "Pages 1-5", uiControl(mainTab)); // page 1 uses page 2's uiGroup page2 = makePage2(); makePage1(w); uiTabAppend(mainTab, "Page 1", uiControl(page1)); uiTabAppend(mainTab, "Page 2", uiControl(page2)); uiTabAppend(mainTab, "Empty Page", uiControl(uiNewHorizontalBox())); page3 = makePage3(); uiTabAppend(mainTab, "Page 3", uiControl(page3)); page4 = makePage4(); uiTabAppend(mainTab, "Page 4", uiControl(page4)); page5 = makePage5(w); uiTabAppend(mainTab, "Page 5", uiControl(page5)); innerTab = newTab(); uiTabAppend(outerTab, "Pages 6-10", uiControl(innerTab)); page6 = makePage6(); uiTabAppend(innerTab, "Page 6", uiControl(page6)); page7 = makePage7(); uiTabAppend(innerTab, "Page 7", uiControl(page7)); /* page8 = makePage8(); uiTabAppend(innerTab, "Page 8", uiControl(page8)); page9 = makePage9(); uiTabAppend(innerTab, "Page 9", uiControl(page9)); page10 = makePage10(); uiTabAppend(innerTab, "Page 10", uiControl(page10)); */ innerTab = newTab(); uiTabAppend(outerTab, "Pages 11-15", uiControl(innerTab)); // page11 = makePage11(); // uiTabAppend(innerTab, "Page 11", uiControl(page11)); page12 = makePage12(); uiTabAppend(innerTab, "Page 12", uiControl(page12)); page13 = makePage13(); uiTabAppend(innerTab, "Page 13", uiControl(page13)); page14 = makePage14(); uiTabAppend(innerTab, "Page 14", uiControl(page14)); page15 = makePage15(w); uiTabAppend(innerTab, "Page 15", uiControl(page15)); innerTab = newTab(); uiTabAppend(outerTab, "Pages 16-?", uiControl(innerTab)); page16 = makePage16(); uiTabAppend(innerTab, "Page 16", uiControl(page16)); if (startspaced) setSpaced(1); uiControlShow(uiControl(w)); if (!steps) uiMain(); else { uiMainSteps(); while (uiMainStep(1)) ; } printf("after uiMain()\n"); freePage16(); uiUninit(); printf("after uiUninit()\n"); return 0; }
TabActions::TabActions(QObject *parent, FileManagerWindow *mainWindow) : ActionsBase(parent, mainWindow) { actNewTab = action(i18n("New Tab"), "tab-new", QKeySequence::keyBindings(QKeySequence::AddTab), this, SLOT(newTab()), "new tab"); actDupTab = action(i18n("Duplicate Current Tab"), "tab-duplicate", Qt::ALT + Qt::CTRL + Qt::SHIFT + Qt::Key_N, SLOT(duplicateTab()), "duplicate tab"); actMoveTabToOtherSide = action(i18n("Move Current Tab to Other Side"), 0, Qt::CTRL + Qt::SHIFT + Qt::Key_O, SLOT(moveTabToOtherSide()), "move_tab_to_other_side"); actCloseTab = action(i18n("Close Current Tab"), "tab-close", KStandardShortcut::close(), this, SLOT(closeTab()), "close tab"); actNextTab = action(i18n("Next Tab"), QString(), KStandardShortcut::tabNext(), this, SLOT(nextTab()), "next tab"); actPreviousTab = action(i18n("Previous Tab"), QString(), KStandardShortcut::tabPrev(), this, SLOT(previousTab()), "previous tab"); actCloseInactiveTabs = action(i18n("Close Inactive Tabs"), 0, 0, SLOT(closeInactiveTabs()), "close inactive tabs"); actCloseDuplicatedTabs = action(i18n("Close Duplicated Tabs"), 0, 0, SLOT(closeDuplicatedTabs()), "close duplicated tabs"); actLockTab = action(i18n("Lock Tab"), 0, 0, SLOT(lockTab()), "lock tab"); }
TabWidget::TabWidget(QWidget *parent) : QTabWidget(parent) , m_recentlyClosedTabsAction(0) , m_newTabAction(0) , m_closeTabAction(0) , m_bookmarkTabsAction(0) , m_nextTabAction(0) , m_previousTabAction(0) , m_recentlyClosedTabsMenu(0) , m_lineEditCompleter(0) , m_locationBars(0) , m_tabBar(new TabBar(this)) , addTabButton(0) , closeTabButton(0) { setElideMode(Qt::ElideRight); new QShortcut(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_T), this, SLOT(openLastTab())); new QShortcut(QKeySequence::Undo, this, SLOT(openLastTab())); connect(m_tabBar, SIGNAL(loadUrl(const QUrl&, TabWidget::OpenUrlIn)), this, SLOT(loadUrl(const QUrl&, TabWidget::OpenUrlIn))); connect(m_tabBar, SIGNAL(newTab()), this, SLOT(newTab())); connect(m_tabBar, SIGNAL(closeTab(int)), this, SLOT(closeTab(int))); connect(m_tabBar, SIGNAL(cloneTab(int)), this, SLOT(cloneTab(int))); connect(m_tabBar, SIGNAL(closeOtherTabs(int)), this, SLOT(closeOtherTabs(int))); connect(m_tabBar, SIGNAL(reloadTab(int)), this, SLOT(reloadTab(int))); connect(m_tabBar, SIGNAL(reloadAllTabs()), this, SLOT(reloadAllTabs())); setTabBar(m_tabBar); setDocumentMode(true); connect(m_tabBar, SIGNAL(tabMoved(int, int)), this, SLOT(moveTab(int, int))); // Actions m_newTabAction = new QAction(this); m_newTabAction->setShortcuts(QKeySequence::AddTab); connect(m_newTabAction, SIGNAL(triggered()), this, SLOT(newTab())); m_closeTabAction = new QAction(this); m_closeTabAction->setShortcuts(QKeySequence::Close); m_closeTabAction->setIcon(QIcon(QLatin1String(":graphics/closetab.png"))); m_closeTabAction->setIconVisibleInMenu(true); connect(m_closeTabAction, SIGNAL(triggered()), this, SLOT(closeTab())); m_bookmarkTabsAction = new QAction(this); connect(m_bookmarkTabsAction, SIGNAL(triggered()), this, SLOT(bookmarkTabs())); m_newTabAction->setIcon(QIcon(QLatin1String(":graphics/addtab.png"))); m_newTabAction->setIconVisibleInMenu(true); m_nextTabAction = new QAction(this); connect(m_nextTabAction, SIGNAL(triggered()), this, SLOT(nextTab())); m_previousTabAction = new QAction(this); connect(m_previousTabAction, SIGNAL(triggered()), this, SLOT(previousTab())); #if QT_VERSION >= 0x040600 && defined(Q_WS_X11) m_previousTabAction->setIcon(QIcon::fromTheme(QLatin1String("go-previous"))); m_nextTabAction->setIcon(QIcon::fromTheme(QLatin1String("go-next"))); #endif m_recentlyClosedTabsMenu = new QMenu(this); connect(m_recentlyClosedTabsMenu, SIGNAL(aboutToShow()), this, SLOT(aboutToShowRecentTabsMenu())); connect(m_recentlyClosedTabsMenu, SIGNAL(triggered(QAction *)), this, SLOT(aboutToShowRecentTriggeredAction(QAction *))); m_recentlyClosedTabsAction = new QAction(this); m_recentlyClosedTabsAction->setMenu(m_recentlyClosedTabsMenu); m_recentlyClosedTabsAction->setEnabled(true); #ifndef Q_WS_MAC // can't seem to figure out the background color :( addTabButton = new QToolButton(this); addTabButton->setDefaultAction(m_newTabAction); addTabButton->setAutoRaise(true); addTabButton->setToolButtonStyle(Qt::ToolButtonIconOnly); #endif connect(m_tabBar, SIGNAL(tabCloseRequested(int)), this, SLOT(closeTab(int))); connect(this, SIGNAL(currentChanged(int)), this, SLOT(currentChanged(int))); m_locationBars = new QStackedWidget(this); connect(BrowserApplication::historyManager(), SIGNAL(historyCleared()), this, SLOT(historyCleared())); // Initialize Actions' labels retranslate(); loadSettings(); }
TabWidget::TabWidget(QWidget *parent) : QTabWidget(parent) , m_recentlyClosedTabsAction(0) , m_newTabAction(0) , m_closeTabAction(0) , m_nextTabAction(0) , m_previousTabAction(0) , m_recentlyClosedTabsMenu(0) , m_lineEditCompleter(0) , m_lineEdits(0) , m_tabBar(new TabBar(this)) { setElideMode(Qt::ElideRight); new QShortcut(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_T), this, SLOT(openLastTab())); connect(m_tabBar, SIGNAL(loadUrl(const QUrl&, TabWidget::Tab)), this, SLOT(loadUrl(const QUrl&, TabWidget::Tab))); connect(m_tabBar, SIGNAL(newTab()), this, SLOT(newTab())); connect(m_tabBar, SIGNAL(closeTab(int)), this, SLOT(closeTab(int))); connect(m_tabBar, SIGNAL(cloneTab(int)), this, SLOT(cloneTab(int))); connect(m_tabBar, SIGNAL(closeOtherTabs(int)), this, SLOT(closeOtherTabs(int))); connect(m_tabBar, SIGNAL(reloadTab(int)), this, SLOT(reloadTab(int))); connect(m_tabBar, SIGNAL(reloadAllTabs()), this, SLOT(reloadAllTabs())); #if QT_VERSION < 0x040500 connect(m_tabBar, SIGNAL(tabMoveRequested(int, int)), this, SLOT(moveTab(int, int))); #endif setTabBar(m_tabBar); #if QT_VERSION >= 0x040500 setDocumentMode(true); connect(m_tabBar, SIGNAL(tabMoved(int, int)), this, SLOT(moveTab(int, int))); #endif // Actions m_newTabAction = new QAction(tr("New &Tab"), this); m_newTabAction->setShortcuts(QKeySequence::AddTab); connect(m_newTabAction, SIGNAL(triggered()), this, SLOT(newTab())); m_closeTabAction = new QAction(tr("&Close Tab"), this); m_closeTabAction->setShortcuts(QKeySequence::Close); connect(m_closeTabAction, SIGNAL(triggered()), this, SLOT(closeTab())); #if QT_VERSION < 0x040500 m_newTabAction->setIcon(QIcon(QLatin1String(":addtab.png"))); m_newTabAction->setIconVisibleInMenu(false); m_closeTabAction->setIcon(QIcon(QLatin1String(":closetab.png"))); m_closeTabAction->setIconVisibleInMenu(false); #endif m_nextTabAction = new QAction(tr("Show Next Tab"), this); QList<QKeySequence> shortcuts; shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_BraceRight)); shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_PageDown)); shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_BracketRight)); shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_Less)); shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_Tab)); m_nextTabAction->setShortcuts(shortcuts); connect(m_nextTabAction, SIGNAL(triggered()), this, SLOT(nextTab())); m_previousTabAction = new QAction(tr("Show Previous Tab"), this); shortcuts.clear(); shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_BraceLeft)); shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_PageUp)); shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_BracketLeft)); shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_Greater)); shortcuts.append(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_Tab)); m_previousTabAction->setShortcuts(shortcuts); connect(m_previousTabAction, SIGNAL(triggered()), this, SLOT(previousTab())); m_recentlyClosedTabsMenu = new QMenu(this); connect(m_recentlyClosedTabsMenu, SIGNAL(aboutToShow()), this, SLOT(aboutToShowRecentTabsMenu())); connect(m_recentlyClosedTabsMenu, SIGNAL(triggered(QAction *)), this, SLOT(aboutToShowRecentTriggeredAction(QAction *))); m_recentlyClosedTabsAction = new QAction(tr("Recently Closed Tabs"), this); m_recentlyClosedTabsAction->setMenu(m_recentlyClosedTabsMenu); m_recentlyClosedTabsAction->setEnabled(false); #if QT_VERSION >= 0x040500 m_tabBar->setTabsClosable(true); connect(m_tabBar, SIGNAL(tabCloseRequested(int)), this, SLOT(closeTab(int))); m_tabBar->setSelectionBehaviorOnRemove(QTabBar::SelectPreviousTab); #else // corner buttons QToolButton *addTabButton = new QToolButton(this); addTabButton->setDefaultAction(m_newTabAction); addTabButton->setAutoRaise(true); addTabButton->setToolButtonStyle(Qt::ToolButtonIconOnly); setCornerWidget(addTabButton, Qt::TopLeftCorner); QToolButton *closeTabButton = new QToolButton(this); closeTabButton->setDefaultAction(m_closeTabAction); closeTabButton->setAutoRaise(true); closeTabButton->setToolButtonStyle(Qt::ToolButtonIconOnly); setCornerWidget(closeTabButton, Qt::TopRightCorner); #endif connect(this, SIGNAL(currentChanged(int)), this, SLOT(currentChanged(int))); m_lineEdits = new QStackedWidget(this); connect(BrowserApplication::historyManager(), SIGNAL(historyCleared()), this, SLOT(historyCleared())); }
void MainWindow::openClipboardTriggered() { const QClipboard* clipboard = QApplication::clipboard(); newTab(clipboard->text()); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { setWindowTitle(tr("Text Editor")); resize(700, 400); move(50, 50); tabs = new TabWidget(this); setCentralWidget(tabs); tabs->setTabsClosable(true); connect(tabs, SIGNAL(tabCloseRequested(int)), this, SLOT(closeTab(int))); connect(tabs, SIGNAL(currentChanged(int)), this, SLOT(tabChanged(int))); connect(tabs, SIGNAL(textDropped(QString)), this, SLOT(textDropped(QString))); QStatusBar *sBar = new QStatusBar(this); setStatusBar(sBar); set = new QSettings("settings.ini", QSettings::IniFormat); QList<RecentFilesItem> files = RecentFiles().allItems(); QFileIconProvider *pvd = new QFileIconProvider(); QMenuBar *bar = new QMenuBar(this); setMenuBar(bar); QMenu *mFile = bar->addMenu(tr("&File")); QMenu *mEdit = bar->addMenu(tr("&Edit")); QMenu *mView = bar->addMenu(tr("&View")); QMenu *mTool = bar->addMenu(tr("&Tool")); QMenu *mHelp = bar->addMenu(tr("&Help")); QAction *aNew = mFile->addAction(QIcon::fromTheme("document-new"), tr("New"), this, SLOT(newTab())); QAction *aOpen = mFile->addAction(QIcon::fromTheme("document-open"), tr("Open"), this, SLOT(open())); QMenu *mRecents = mFile->addMenu(QIcon::fromTheme(""), tr("Recently used")); foreach(RecentFilesItem file, files) { qDebug() << file.path(); if(file.mimeType().startsWith("text/")) mRecents->addAction(QIcon(), file.path(), this, SLOT(openRecent())); if(mRecents->actions().count() == 5) break; }
void MainMenu::init() { #define ADD_ACTION(name, menu, icon, trName, slot, shortcut) \ action = menu->addAction(icon, trName); \ action->setShortcut(QKeySequence(QSL(shortcut))); \ connect(action, SIGNAL(triggered()), this, slot); \ m_actions[QSL(name)] = action #define ADD_CHECKABLE_ACTION(name, menu, icon, trName, slot, shortcut) \ action = menu->addAction(icon, trName); \ action->setShortcut(QKeySequence(QSL(shortcut))); \ action->setCheckable(true); \ connect(action, SIGNAL(triggered(bool)), this, slot); \ m_actions[QSL(name)] = action // Standard actions - needed on Mac to be placed correctly in "application" menu QAction* action = new QAction(QIcon::fromTheme(QSL("help-about")), tr("&About QupZilla"), this); action->setMenuRole(QAction::AboutRole); connect(action, SIGNAL(triggered()), this, SLOT(showAboutDialog())); m_actions[QSL("Standard/About")] = action; action = new QAction(IconProvider::settingsIcon(), tr("Pr&eferences"), this); action->setMenuRole(QAction::PreferencesRole); action->setShortcut(QKeySequence(QKeySequence::Preferences)); connect(action, SIGNAL(triggered()), this, SLOT(showPreferences())); m_actions[QSL("Standard/Preferences")] = action; action = new QAction(QIcon::fromTheme(QSL("application-exit")), tr("Quit"), this); action->setMenuRole(QAction::QuitRole); // shortcut set from browserwindow connect(action, SIGNAL(triggered()), this, SLOT(quitApplication())); m_actions[QSL("Standard/Quit")] = action; // File menu m_menuFile = new QMenu(tr("&File")); connect(m_menuFile, SIGNAL(aboutToShow()), this, SLOT(aboutToShowFileMenu())); connect(m_menuFile, SIGNAL(aboutToHide()), this, SLOT(aboutToHideFileMenu())); ADD_ACTION("File/NewTab", m_menuFile, IconProvider::newTabIcon(), tr("New Tab"), SLOT(newTab()), "Ctrl+T"); ADD_ACTION("File/NewWindow", m_menuFile, IconProvider::newWindowIcon(), tr("&New Window"), SLOT(newWindow()), "Ctrl+N"); ADD_ACTION("File/NewPrivateWindow", m_menuFile, IconProvider::privateBrowsingIcon(), tr("New &Private Window"), SLOT(newPrivateWindow()), "Ctrl+Shift+P"); ADD_ACTION("File/OpenLocation", m_menuFile, QIcon::fromTheme(QSL("document-open-remote")), tr("Open Location"), SLOT(openLocation()), "Ctrl+L"); ADD_ACTION("File/OpenFile", m_menuFile, QIcon::fromTheme(QSL("document-open")), tr("Open &File..."), SLOT(openFile()), "Ctrl+O"); ADD_ACTION("File/CloseWindow", m_menuFile, QIcon::fromTheme(QSL("window-close")), tr("Close Window"), SLOT(closeWindow()), "Ctrl+Shift+W"); m_menuFile->addSeparator(); ADD_ACTION("File/SavePageAs", m_menuFile, QIcon::fromTheme(QSL("document-save")), tr("&Save Page As..."), SLOT(savePageAs()), "Ctrl+S"); ADD_ACTION("File/SavePageScreen", m_menuFile, QIcon::fromTheme(QSL("image-loading")), tr("Save Page Screen"), SLOT(savePageScreen()), "Ctrl+Shift+S"); ADD_ACTION("File/SendLink", m_menuFile, QIcon::fromTheme(QSL("mail-message-new")), tr("Send Link..."), SLOT(sendLink()), ""); ADD_ACTION("File/Print", m_menuFile, QIcon::fromTheme(QSL("document-print")), tr("&Print..."), SLOT(printPage()), "Ctrl+P"); m_menuFile->addSeparator(); ADD_CHECKABLE_ACTION("File/WorkOffline", m_menuFile, QIcon(), tr("Work &Offline"), SLOT(toggleOfflineMode()), ""); m_menuFile->addSeparator(); m_menuFile->addAction(m_actions[QSL("Standard/Quit")]); // Edit menu m_menuEdit = new QMenu(tr("&Edit")); connect(m_menuEdit, SIGNAL(aboutToShow()), this, SLOT(aboutToShowEditMenu())); connect(m_menuEdit, SIGNAL(aboutToHide()), this, SLOT(aboutToHideEditMenu())); ADD_ACTION("Edit/Undo", m_menuEdit, QIcon::fromTheme(QSL("edit-undo")), tr("&Undo"), SLOT(editUndo()), "Ctrl+Z"); ADD_ACTION("Edit/Redo", m_menuEdit, QIcon::fromTheme(QSL("edit-redo")), tr("&Redo"), SLOT(editRedo()), "Ctrl+Shift+Z"); m_menuEdit->addSeparator(); ADD_ACTION("Edit/Cut", m_menuEdit, QIcon::fromTheme(QSL("edit-cut")), tr("&Cut"), SLOT(editCut()), "Ctrl+X"); ADD_ACTION("Edit/Copy", m_menuEdit, QIcon::fromTheme(QSL("edit-copy")), tr("C&opy"), SLOT(editCopy()), "Ctrl+C"); ADD_ACTION("Edit/Paste", m_menuEdit, QIcon::fromTheme(QSL("edit-paste")), tr("&Paste"), SLOT(editPaste()), "Ctrl+V"); m_menuEdit->addSeparator(); ADD_ACTION("Edit/SelectAll", m_menuEdit, QIcon::fromTheme(QSL("edit-select-all")), tr("Select &All"), SLOT(editSelectAll()), "Ctrl+A"); ADD_ACTION("Edit/Find", m_menuEdit, QIcon::fromTheme(QSL("edit-find")), tr("&Find"), SLOT(editFind()), "Ctrl+F"); m_menuEdit->addSeparator(); // View menu m_menuView = new QMenu(tr("&View")); connect(m_menuView, SIGNAL(aboutToShow()), this, SLOT(aboutToShowViewMenu())); connect(m_menuView, SIGNAL(aboutToHide()), this, SLOT(aboutToHideViewMenu())); QMenu* toolbarsMenu = new QMenu(tr("Toolbars")); connect(toolbarsMenu, SIGNAL(aboutToShow()), this, SLOT(aboutToShowToolbarsMenu())); QMenu* sidebarMenu = new QMenu(tr("Sidebar")); connect(sidebarMenu, SIGNAL(aboutToShow()), this, SLOT(aboutToShowSidebarsMenu())); QMenu* encodingMenu = new QMenu(tr("Character &Encoding")); connect(encodingMenu, SIGNAL(aboutToShow()), this, SLOT(aboutToShowEncodingMenu())); // Create menus to make shortcuts available even before first showing the menu m_window->createToolbarsMenu(toolbarsMenu); m_window->createSidebarsMenu(sidebarMenu); m_menuView->addMenu(toolbarsMenu); m_menuView->addMenu(sidebarMenu); ADD_CHECKABLE_ACTION("View/ShowStatusBar", m_menuView, QIcon(), tr("Sta&tus Bar"), SLOT(showStatusBar()), ""); m_menuView->addSeparator(); ADD_ACTION("View/Stop", m_menuView, QIcon::fromTheme(QSL("process-stop")), tr("&Stop"), SLOT(stop()), "Esc"); ADD_ACTION("View/Reload", m_menuView, QIcon::fromTheme(QSL("view-refresh")), tr("&Reload"), SLOT(reload()), "F5"); m_menuView->addSeparator(); ADD_ACTION("View/ZoomIn", m_menuView, QIcon::fromTheme(QSL("zoom-in")), tr("Zoom &In"), SLOT(zoomIn()), "Ctrl++"); ADD_ACTION("View/ZoomOut", m_menuView, QIcon::fromTheme(QSL("zoom-out")), tr("Zoom &Out"), SLOT(zoomOut()), "Ctrl+-"); ADD_ACTION("View/ZoomReset", m_menuView, QIcon::fromTheme(QSL("zoom-original")), tr("Reset"), SLOT(zoomReset()), "Ctrl+0"); m_menuView->addSeparator(); ADD_CHECKABLE_ACTION("View/CaretBrowsing", m_menuView, QIcon(), tr("&Caret Browsing"), SLOT(toggleCaretBrowsing()), "F7"); m_menuView->addMenu(encodingMenu); m_menuView->addSeparator(); ADD_ACTION("View/PageSource", m_menuView, QIcon::fromTheme(QSL("text-html")), tr("&Page Source"), SLOT(showPageSource()), "Ctrl+U"); ADD_CHECKABLE_ACTION("View/FullScreen", m_menuView, QIcon(), tr("&FullScreen"), SLOT(showFullScreen()), "F11"); // Tools menu m_menuTools = new QMenu(tr("&Tools")); connect(m_menuTools, SIGNAL(aboutToShow()), this, SLOT(aboutToShowToolsMenu())); connect(m_menuTools, SIGNAL(aboutToHide()), this, SLOT(aboutToHideToolsMenu())); ADD_ACTION("Tools/WebSearch", m_menuTools, QIcon(), tr("&Web Search"), SLOT(webSearch()), "Ctrl+K"); ADD_ACTION("Tools/SiteInfo", m_menuTools, QIcon::fromTheme(QSL("dialog-information")), tr("Site &Info"), SLOT(showSiteInfo()), "Ctrl+I"); m_menuTools->addSeparator(); ADD_ACTION("Tools/DownloadManager", m_menuTools, QIcon(), tr("&Download Manager"), SLOT(showDownloadManager()), "Ctrl+Y"); ADD_ACTION("Tools/CookiesManager", m_menuTools, QIcon(), tr("&Cookies Manager"), SLOT(showCookieManager()), ""); ADD_ACTION("Tools/AdBlock", m_menuTools, QIcon(), tr("&AdBlock"), SLOT(showAdBlockDialog()), ""); ADD_ACTION("Tools/RssReader", m_menuTools, QIcon(), tr("RSS &Reader"), SLOT(showRssManager()), ""); ADD_ACTION("Tools/WebInspector", m_menuTools, QIcon(), tr("Web In&spector"), SLOT(showWebInspector()), "Ctrl+Shift+I"); ADD_ACTION("Tools/ClearRecentHistory", m_menuTools, QIcon::fromTheme(QSL("edit-clear")), tr("Clear Recent &History"), SLOT(showClearRecentHistoryDialog()), "Ctrl+Shift+Del"); m_menuTools->addSeparator(); // Help menu m_menuHelp = new QMenu(tr("&Help")); #ifndef Q_OS_MAC ADD_ACTION("Help/AboutQt", m_menuHelp, QIcon(QSL(":/icons/menu/qt.png")), tr("About &Qt"), SLOT(aboutQt()), ""); m_menuHelp->addAction(m_actions[QSL("Standard/About")]); m_menuHelp->addSeparator(); #endif ADD_ACTION("Help/InfoAboutApp", m_menuHelp, QIcon::fromTheme(QSL("help-contents")), tr("Information about application"), SLOT(showInfoAboutApp()), ""); ADD_ACTION("Help/ConfigInfo", m_menuHelp, QIcon(), tr("Configuration Information"), SLOT(showConfigInfo()), ""); ADD_ACTION("Help/ReportIssue", m_menuHelp, QIcon(), tr("Report &Issue"), SLOT(reportIssue()), ""); m_actions[QSL("Help/InfoAboutApp")]->setShortcut(QKeySequence(QKeySequence::HelpContents)); // History menu m_menuHistory = new HistoryMenu(); m_menuHistory->setMainWindow(m_window); // Bookmarks menu m_menuBookmarks = new BookmarksMenu(); m_menuBookmarks->setMainWindow(m_window); // Other actions action = new QAction(QIcon::fromTheme(QSL("user-trash")), tr("Restore &Closed Tab"), this); action->setShortcut(QKeySequence(QSL("Ctrl+Shift+T"))); connect(action, SIGNAL(triggered()), this, SLOT(restoreClosedTab())); m_actions[QSL("Other/RestoreClosedTab")] = action; #ifdef Q_OS_MAC m_actions[QSL("View/FullScreen")]->setShortcut(QKeySequence(QSL("F11"))); // Add standard actions to File Menu (as it won't be ever cleared) and Mac menubar should move them to "Application" menu m_menuFile->addAction(m_actions[QSL("Standard/About")]); m_menuFile->addAction(m_actions[QSL("Standard/Preferences")]); #endif #if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) m_menuEdit->addAction(m_actions[QSL("Standard/Preferences")]); #elif !defined(Q_OS_MAC) m_menuTools->addAction(m_actions[QSL("Standard/Preferences")]); #endif #ifndef QTWEBKIT_FROM_2_3 m_actions[QSL("View/CaretBrowsing")]->setVisible(false); #endif // Menus are hidden by default aboutToHideFileMenu(); aboutToHideViewMenu(); aboutToHideEditMenu(); aboutToHideToolsMenu(); addActionsToWindow(); }
// --- CONSTRUCTOR --- MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { setupUi(this); // menu connections connect(actionQuit, SIGNAL(triggered()), this, SLOT(quit())); connect(actionAbout_WildFox, SIGNAL(triggered()), this, SLOT(about())); connect(actionNewTab, SIGNAL(triggered()), this, SLOT(newTab())); connect(actionClose_Tab, SIGNAL(triggered()), this, SLOT(closeTab())); connect(actionOptions, SIGNAL(triggered()), this, SLOT(options())); connect(actionBookmarksSidebar, SIGNAL(triggered()), this, SLOT(sidebarBookmarks())); // other interface connections connect(backButton, SIGNAL(pressed()), this, SLOT(back())); connect(forwardButton, SIGNAL(pressed()), this, SLOT(forward())); connect(reloadButton, SIGNAL(pressed()), this, SLOT(loadInteraction())); tabWidget->addAction(actionReload); connect(actionReload, SIGNAL(triggered()), this, SLOT(reload())); connect(actionStop, SIGNAL(triggered()), this, SLOT(stop())); connect(addressBar, SIGNAL(returnPressed()), this, SLOT(gotoURL())); connect(addressBarGo, SIGNAL(pressed()), this, SLOT(gotoURL())); connect(tabWidget, SIGNAL(currentChanged(int)), this, SLOT(changeTab(int))); tabWidget->addAction(actionClose_Tab); connect(tabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(closeTab(int))); connect(bookmarksTree, SIGNAL(itemClicked(QTreeWidgetItem*,int)), this, SLOT(loadBookmark(QTreeWidgetItem*,int))); connect(actionBookmark_this_page, SIGNAL(triggered()), this, SLOT(bookmarkAdd())); addAction(actionGo_to_address_bar); connect(actionGo_to_address_bar, SIGNAL(triggered()), this, SLOT(gotoAddressBar())); // defaults QCoreApplication::setOrganizationName("Nyanko"); QCoreApplication::setOrganizationDomain("nyanko.ws"); QCoreApplication::setApplicationName("WildFox"); QList<QNetworkProxy> proxies = QNetworkProxyFactory::systemProxyForQuery(); QNetworkProxy::setApplicationProxy(proxies[0]); wv = 0; //icondb = "./"; cookiejar = new CookieJar(); bookmarks = new Bookmarks(this); nam = new QNetworkAccessManager(this); nam->setCookieJar(cookiejar); stopbutton = false; QApplication::setActiveWindow(this); //settings = new QSettings("Nyanko", "WildFox"); settings = new QSettings(); storagePath = QStandardPaths::writableLocation(QStandardPaths::DataLocation); QDir dir(storagePath); if (!dir.exists()) { dir.mkpath(storagePath); // create path if it doesn't exist yet } qDebug() << "Storage path: " << storagePath; QWebSettings* ws = QWebSettings::globalSettings(); ws->setAttribute(QWebSettings::PluginsEnabled, true); ws->setAttribute(QWebSettings::JavascriptCanOpenWindows, true); ws->setIconDatabasePath(storagePath); // load any extensions. For each found extension, read in the JSON manifest // and create a WebPage object for background scripts and load the extension // into it. Register URL filters. // TESTING: XMarks extension is at ./extensions/xmarks/manifest.json manifest.setFileName(QString("extensions/xmarks/manifest.json")); if (!manifest.exists() || !manifest.open(QIODevice::ReadOnly)) { qDebug() << "Failed to open the manifest file."; } else { QString manifestString = manifest.readAll(); bool ok; QMap<QString, QVariant> result; result = QtJson::Json::parse(manifestString, ok).toMap(); if (!ok) { qDebug() << "Parsing of manifest failed."; } if (result.contains("background_page")) { // load this extension into a webpage object. QWebPage* page = new QWebPage; page->mainFrame()->load(manifest.fileName()); extPages.append(page); } if (result.contains("content_scripts")) { // add the content scripts in this list to the specified filters. QMap<QString, QVariant> scripts = result["content_scripts"].toMap(); if (scripts.contains("matches")) { QList<QVariant> matches = scripts["matches"].toList(); QList<QVariant> js = scripts["js"].toList(); Filter filter; filter.extId = extPages.size() - 1; for (int i = 0; i < js.size(); ++i) { filter.scripts.append(QString("extensions/xmarks/") + js[i].toString()); } for (int i = 0; i < matches.size(); ++i) { QStringList urlbit = matches[i].toString().split("://"); if (urlbit.size() < 2) { continue; } filter.scheme = urlbit[0]; filter.segments = urlbit[1].split("."); if (filter.scripts.size() < 1 || filter.segments.size() < 1) { break; // empty/useless filter, skip } extFilters.append(filter); } } } } // pass extension filter data to the network access manager //nam->setFilters(extFilters); // open empty tab newTab(); }
void NBFolderView::doOpen( QModelIndex idx ) { /* This slot is triggered when the user double clicks or presses enter */ Q_UNUSED( idx ); QList<QModelIndex> selectedList = getSelection(); foreach( QModelIndex index, selectedList ) { QString fileToBeOpened = fsModel->nodePath( index ); if ( not isReadable( fileToBeOpened ) ) { QString title = tr( "Access Error" ); QString text = tr( "You do not have enough permissions to open <b>%1</b>. " ).arg( baseName( fileToBeOpened ) ); if ( isDir( fileToBeOpened ) ) text += tr( "Please change the permissions of the directory to enter it." ); else text += tr( "Please change the permissions of the file to edit/view it." ); NBMessageDialog::error( this, title, text ); return; } if ( isDir( fileToBeOpened ) ) { qDebug() << "Opening dir:" << fileToBeOpened.toLocal8Bit().data(); if ( index == idx ) { setCursor( QCursor( Qt::WaitCursor ) ); fsModel->setRootPath( fileToBeOpened ); setCursor( QCursor( Qt::ArrowCursor ) ); } else { emit newTab( fileToBeOpened ); } } else if ( isFile( fileToBeOpened ) ) { if ( isExec( fileToBeOpened ) and not isText( fileToBeOpened ) ) { /* * * We make sure that @v fileToBeOpened is really an executable file, * i.e it is one of shellscript, install file, or x-exec or x-sharedlib * or something of the sort and not a jpg file with exec perms * */ qDebug( "Executing %s... [%s]", fileToBeOpened.toLocal8Bit().data(), ( QProcess::startDetached( fileToBeOpened ) ? "DONE" : " FAILED" ) ); } else { NBAppFile app = NBAppEngine::instance()->xdgDefaultApp( mimeDb.mimeTypeForFile( fileToBeOpened ) ); if ( not app.isValid() ) doOpenWithCmd(); QStringList exec = app.execArgs(); // Prepare @v exec if ( app.takesArgs() ) { if ( app.multipleArgs() ) { int idx = exec.indexOf( "<#NEWBREEZE-ARG-FILES#>" ); exec.removeAt( idx ); exec.insert( idx, fileToBeOpened ); } else { int idx = exec.indexOf( "<#NEWBREEZE-ARG-FILE#>" ); exec.removeAt( idx ); exec.insert( idx, fileToBeOpened ); } } else { exec << fileToBeOpened; } qDebug( "Opening file: %s [%s]", fileToBeOpened.toLocal8Bit().data(), ( QProcess::startDetached( exec.takeFirst(), exec ) ? "DONE" : " FAILED" ) ); } } else { QString title = QString( "Error" ); QString text = QString( "I really do not have any idea how to open <b>%1</b>." ).arg( index.data().toString() ); NBMessageDialog::error( this, title, text ); qDebug() << "Cannot open file:" << fileToBeOpened.toLocal8Bit().data(); return; } }
TabWidget::TabWidget(QWidget *parent) : QTabWidget(parent) , m_recentlyClosedTabsAction(0) , m_newTabAction(0) , m_closeTabAction(0) , m_nextTabAction(0) , m_previousTabAction(0) , m_recentlyClosedTabsMenu(0) , m_swappedDelayedWidget(false) , m_lineEditCompleter(0) , m_lineEdits(0) , m_tabBar(new TabBar(this)) { setElideMode(Qt::ElideRight); new QShortcut(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_T), this, SLOT(openLastTab())); connect(m_tabBar, SIGNAL(loadUrl(const QUrl&, TabWidget::OpenUrlIn)), this, SLOT(loadUrl(const QUrl&, TabWidget::OpenUrlIn))); connect(m_tabBar, SIGNAL(newTab()), this, SLOT(newTab())); connect(m_tabBar, SIGNAL(closeTab(int)), this, SLOT(closeTab(int))); connect(m_tabBar, SIGNAL(cloneTab(int)), this, SLOT(cloneTab(int))); connect(m_tabBar, SIGNAL(closeOtherTabs(int)), this, SLOT(closeOtherTabs(int))); connect(m_tabBar, SIGNAL(reloadTab(int)), this, SLOT(reloadTab(int))); connect(m_tabBar, SIGNAL(reloadAllTabs()), this, SLOT(reloadAllTabs())); #if QT_VERSION < 0x040500 connect(m_tabBar, SIGNAL(tabMoveRequested(int, int)), this, SLOT(moveTab(int, int))); #endif setTabBar(m_tabBar); #if QT_VERSION >= 0x040500 setDocumentMode(true); connect(m_tabBar, SIGNAL(tabMoved(int, int)), this, SLOT(moveTab(int, int))); #endif // Actions m_newTabAction = new QAction(this); m_newTabAction->setShortcuts(QKeySequence::AddTab); connect(m_newTabAction, SIGNAL(triggered()), this, SLOT(newTab())); m_closeTabAction = new QAction(this); m_closeTabAction->setShortcuts(QKeySequence::Close); connect(m_closeTabAction, SIGNAL(triggered()), this, SLOT(closeTab())); m_newTabAction->setIcon(QIcon(QLatin1String(":addtab.png"))); m_newTabAction->setIconVisibleInMenu(false); #if QT_VERSION >= 0x040500 QSettings settings; settings.beginGroup(QLatin1String("tabs")); bool oneCloseButton = settings.value(QLatin1String("oneCloseButton"), false).toBool(); if (oneCloseButton) { #endif // With Qt < 4.5 do this always, with >=4.5 only if enabled. m_closeTabAction->setIcon(QIcon(QLatin1String(":closetab.png"))); m_closeTabAction->setIconVisibleInMenu(false); #if QT_VERSION >= 0x040500 } #endif m_nextTabAction = new QAction(this); connect(m_nextTabAction, SIGNAL(triggered()), this, SLOT(nextTab())); m_previousTabAction = new QAction(this); connect(m_previousTabAction, SIGNAL(triggered()), this, SLOT(previousTab())); m_recentlyClosedTabsMenu = new QMenu(this); connect(m_recentlyClosedTabsMenu, SIGNAL(aboutToShow()), this, SLOT(aboutToShowRecentTabsMenu())); connect(m_recentlyClosedTabsMenu, SIGNAL(triggered(QAction *)), this, SLOT(aboutToShowRecentTriggeredAction(QAction *))); m_recentlyClosedTabsAction = new QAction(this); m_recentlyClosedTabsAction->setMenu(m_recentlyClosedTabsMenu); m_recentlyClosedTabsAction->setEnabled(false); #if QT_VERSION < 0x040500 QToolButton *addTabButton = new QToolButton(this); addTabButton->setDefaultAction(m_newTabAction); addTabButton->setAutoRaise(true); addTabButton->setToolButtonStyle(Qt::ToolButtonIconOnly); setCornerWidget(addTabButton, Qt::TopLeftCorner); #endif #if QT_VERSION >= 0x040500 if (oneCloseButton) { #endif // corner buttons // With Qt < 4.5 do this always, with >=4.5 only if enabled. QToolButton *closeTabButton = new QToolButton(this); closeTabButton->setDefaultAction(m_closeTabAction); closeTabButton->setAutoRaise(true); closeTabButton->setToolButtonStyle(Qt::ToolButtonIconOnly); setCornerWidget(closeTabButton, Qt::TopRightCorner); #if QT_VERSION >= 0x040500 } else { m_tabBar->setTabsClosable(true); connect(m_tabBar, SIGNAL(tabCloseRequested(int)), this, SLOT(closeTab(int))); } #endif connect(this, SIGNAL(currentChanged(int)), this, SLOT(currentChanged(int))); m_lineEdits = new QStackedWidget(this); connect(BrowserApplication::historyManager(), SIGNAL(historyCleared()), this, SLOT(historyCleared())); // Initialize Actions' labels retranslate(); }
void fsirc::initConnections() { connect(actionCloseTab, SIGNAL(triggered()), this, SLOT(closeCurrentTab())); connect(actionNewTab, SIGNAL(triggered()), this, SLOT(newTab())); }
int main(int argc, char *argv[]) { uiInitOptions o; int i; const char *err; uiWindow *w; uiBox *page2, *page3, *page4, *page5; int nomenus = 0; int startspaced = 0; newhbox = uiNewHorizontalBox; newvbox = uiNewVerticalBox; memset(&o, 0, sizeof (uiInitOptions)); for (i = 1; i < argc; i++) if (strcmp(argv[i], "nomenus") == 0) nomenus = 1; else if (strcmp(argv[i], "startspaced") == 0) startspaced = 1; else if (strcmp(argv[i], "swaphv") == 0) { newhbox = uiNewVerticalBox; newvbox = uiNewHorizontalBox; } else { fprintf(stderr, "%s: unrecognized option %s\n", argv[0], argv[i]); return 1; } err = uiInit(&o); if (err != NULL) { fprintf(stderr, "error initializing ui: %s\n", err); uiFreeInitError(err); return 1; } if (!nomenus) initMenus(); w = newWindow("Main Window", 320, 240, 1); uiWindowOnClosing(w, onClosing, NULL); printf("main window %p\n", w); uiOnShouldQuit(onShouldQuit, w); mainBox = newHorizontalBox(); uiWindowSetChild(w, uiControl(mainBox)); mainTab = newTab(); uiBoxAppend(mainBox, uiControl(mainTab), 1); // page 1 uses page 2's uiGroup page2 = makePage2(); makePage1(w); uiTabAppend(mainTab, "Page 1", uiControl(page1)); uiTabAppend(mainTab, "Page 2", uiControl(page2)); uiTabAppend(mainTab, "Empty Page", uiControl(uiNewHorizontalBox())); page3 = makePage3(); uiTabAppend(mainTab, "Page 3", uiControl(page3)); page4 = makePage4(); uiTabAppend(mainTab, "Page 4", uiControl(page4)); page5 = makePage5(); uiTabAppend(mainTab, "Page 5", uiControl(page5)); if (startspaced) setSpaced(1); uiControlShow(uiControl(w)); uiMain(); printf("after uiMain()\n"); uiUninit(); printf("after uiUninit()\n"); return 0; }
void RulerT::mousePressEvent(QMouseEvent *m) { QRect fpo; mousePressed = true; qApp->setOverrideCursor(QCursor(Qt::ArrowCursor)); rulerCode = 0; if (haveInd) { fpo = QRect(static_cast<int>(firstLine+leftIndent-offset)-4, 0, 8, 12); if (fpo.contains(m->pos())) { rulerCode = 1; mouseX = m->x(); return; } fpo = QRect(static_cast<int>(leftIndent-offset)-4, 12, 8, 12); if (fpo.contains(m->pos())) { rulerCode = 2; mouseX = m->x(); return; } } if (tabValues.count() != 0) { for (int yg = 0; yg < static_cast<int>(tabValues.count()); yg++) { fpo = QRect(static_cast<int>(tabValues[yg].tabPosition-offset)-3, 15, 8, 8); if (fpo.contains(m->pos())) { rulerCode = 3; actTab = yg; mouseX = m->x(); emit tabSelected(); emit typeChanged(tabValues[actTab].tabType); emit tabMoved(tabValues[actTab].tabPosition); emit fillCharChanged(tabValues[actTab].tabFillChar); repaint(); return; } } } if ((rulerCode == 0) && (m->button() == Qt::LeftButton)) { ParagraphStyle::TabRecord tb; tb.tabPosition = static_cast<double>(m->x() + offset); tb.tabType = 0; tb.tabFillChar = QChar(); tabValues.prepend(tb); actTab = 0; rulerCode = 3; updateTabList(); repaint(); emit newTab(); emit typeChanged(tabValues[actTab].tabType); emit tabMoved(tabValues[actTab].tabPosition); emit fillCharChanged(tabValues[actTab].tabFillChar); qApp->changeOverrideCursor(QCursor(Qt::SizeHorCursor)); } mouseX = m->x(); }
void TabWidget::newTabBtn() { emit changeActiveWidget(this); emit newTab(); }
Tabruler::Tabruler( QWidget* parent, bool haveFirst, int dEin, QList<ParagraphStyle::TabRecord> Tabs, double wid ) : QWidget( parent ), firstLineLabel(0), leftIndentLabel(0), rightIndentLabel(0), firstLineData(0), leftIndentData(0), rightIndentData(0) { docUnitRatio=unitGetRatioFromIndex(dEin); double ww = (wid < 0) ? 4000 : wid; tabrulerLayout = new QVBoxLayout( this ); tabrulerLayout->setMargin(0); tabrulerLayout->setSpacing(5); layout2 = new QHBoxLayout; layout2->setMargin(0); layout2->setSpacing(5); rulerScrollL = new QToolButton(this); rulerScrollL->setArrowType(Qt::LeftArrow); rulerScrollL->setAutoRepeat( true ); layout2->addWidget( rulerScrollL ); ruler = new RulerT( this, dEin, Tabs, haveFirst, wid ); ruler->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum); layout2->addWidget( ruler ); rulerScrollR = new QToolButton(this); rulerScrollR->setArrowType(Qt::RightArrow); rulerScrollR->setAutoRepeat( true ); layout2->addWidget( rulerScrollR ); layout1 = new QHBoxLayout; layout1->setMargin(0); layout1->setSpacing(5); layout1->setAlignment( Qt::AlignTop ); typeCombo = new QComboBox(this); typeCombo->setEditable(false); typeCombo->clear(); typeCombo->addItem( tr( "Left" ) ); typeCombo->addItem( tr( "Right" ) ); typeCombo->addItem( tr( "Period" ) ); typeCombo->addItem( tr( "Comma" ) ); typeCombo->addItem( tr( "Center" ) ); layout1->addWidget( typeCombo ); tabData = new ScrSpinBox( 0, ww / docUnitRatio, this, dEin ); tabData->setValue(0); positionLabel = new QLabel( tr("&Position:"), this ); positionLabel->setBuddy(tabData); layout1->addWidget( positionLabel ); layout1->addWidget( tabData ); tabFillCombo = new QComboBox(this); tabFillCombo->setEditable(false); tabFillCombo->addItem( tr("None", "tab fill")); tabFillCombo->addItem( tr("Dot")); tabFillCombo->addItem( tr("Hyphen")); tabFillCombo->addItem( tr("Underscore")); tabFillCombo->addItem( tr("Custom")); tabFillComboT = new QLabel( tr( "Fill Char:" ), this ); tabFillComboT->setBuddy(tabFillCombo); layout1->addWidget( tabFillComboT ); layout1->addWidget( tabFillCombo ); layout4 = new QHBoxLayout; layout4->setMargin(0); layout4->setSpacing(5); indentLayout = new QHBoxLayout; indentLayout->setMargin(0); indentLayout->setSpacing(5); if (haveFirst) { firstLineData = new ScrSpinBox( -3000, ww / docUnitRatio, this, dEin); firstLineData->setValue(0); firstLineLabel = new QLabel(this); firstLineLabel->setText(""); firstLineLabel->setPixmap(IconManager::instance()->loadPixmap("firstline.png")); indentLayout->addWidget( firstLineLabel ); indentLayout->addWidget( firstLineData ); leftIndentData = new ScrSpinBox( 0, ww / docUnitRatio, this, dEin ); leftIndentData->setValue(0); leftIndentLabel = new QLabel(this); leftIndentLabel->setText(""); leftIndentLabel->setPixmap(IconManager::instance()->loadPixmap("leftindent.png")); layout4->addWidget( leftIndentLabel ); layout4->addWidget( leftIndentData ); layout4->addStretch(10); rightIndentLabel = new QLabel(this); rightIndentLabel->setText(""); rightIndentLabel->setPixmap(IconManager::instance()->loadPixmap("rightindent.png")); rightIndentData = new ScrSpinBox(0, ww / docUnitRatio, this, dEin); rightIndentData->setValue(0); indentLayout->addWidget(rightIndentLabel); indentLayout->addWidget(rightIndentData); } clearButton = new QPushButton( this ); clearButton->setText( tr( "Delete All" ) ); indentLayout->addSpacing(20); indentLayout->addWidget( clearButton); clearOneButton = new QPushButton( this ); clearOneButton->setText( tr( "Delete Selected" ) ); indentLayout->addWidget( clearOneButton); indentLayout->addStretch(10); if (!haveFirst) { QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); layout1->addItem( spacer ); } layout1->addStretch( 10 ); tabrulerLayout->addLayout( layout1 ); tabrulerLayout->addLayout( layout2 ); indentLayout->addStretch( 10 ); tabrulerLayout->addLayout( indentLayout ); tabrulerLayout->addLayout(layout4); tabData->setEnabled(false); tabFillCombo->setEnabled(false); typeCombo->setEnabled(false); if (Tabs.count() == 0) clearButton->setEnabled(false); clearOneButton->setEnabled(false); resize( minimumSizeHint() ); connect(rulerScrollL, SIGNAL(clicked()), ruler, SLOT(decreaseOffset())); connect(rulerScrollR, SIGNAL(clicked()), ruler, SLOT(increaseOffset())); connect(rulerScrollL, SIGNAL(released()), this, SLOT(resetOFfL())); connect(rulerScrollR, SIGNAL(released()), this, SLOT(resetOFfR())); connect(ruler, SIGNAL(typeChanged(int)) , this, SLOT(setTabType(int))); connect(ruler, SIGNAL(fillCharChanged(QChar)) , this, SLOT(setTabFillChar(QChar))); connect(typeCombo, SIGNAL(activated(int)), this, SLOT(setType())); connect(tabFillCombo, SIGNAL(activated(int)), this, SLOT(setFillChar())); connect(tabFillCombo, SIGNAL(editTextChanged(const QString &)), this, SLOT(setCustomFillChar(const QString &))); connect(ruler, SIGNAL(tabMoved(double)) , this, SLOT(setTabData(double))); connect(ruler, SIGNAL(tabSelected()), this, SLOT(tabAdded())); connect(ruler, SIGNAL(newTab()), this, SLOT(tabAdded())); connect(ruler, SIGNAL(noTabs()), this, SLOT(lastTabRemoved())); connect(tabData, SIGNAL(valueChanged(double)), this, SLOT(setTab())); connect(clearButton, SIGNAL(clicked()), this, SLOT(clearAll())); connect(clearOneButton, SIGNAL(clicked()), this, SLOT(clearOne())); tabFillCombo->setToolTip( tr( "Fill Character of Tab" ) ); typeCombo->setToolTip( tr( "Type/Orientation of Tab" ) ); tabData->setToolTip( tr( "Position of Tab" ) ); if (haveFirst) { connect(ruler, SIGNAL(firstLineMoved(double)) , this, SLOT(setFirstLineData(double))); connect(ruler, SIGNAL(leftIndentMoved(double)) , this, SLOT(setLeftIndentData(double))); connect(ruler, SIGNAL(mouseReleased()), this, SIGNAL(tabrulerChanged())); connect(ruler, SIGNAL(mouseReleased()), this, SLOT(slotMouseReleased())); connect(firstLineData, SIGNAL(valueChanged(double)), this, SLOT(setFirstLine())); connect(leftIndentData, SIGNAL(valueChanged(double)), this, SLOT(setLeftIndent())); connect(rightIndentData, SIGNAL(valueChanged(double)), this, SLOT(setRightIndent())); firstLineData->setToolTip( tr( "Indentation for first line of the paragraph" ) ); leftIndentData->setToolTip( tr( "Indentation from the left for the whole paragraph" ) ); rightIndentData->setToolTip( tr( "Indentation from the right for the whole paragraph" ) ); firstLineLabel->setToolTip(firstLineData->toolTip()); leftIndentLabel->setToolTip(leftIndentData->toolTip()); rightIndentLabel->setToolTip(rightIndentData->toolTip()); } clearButton->setToolTip( tr( "Delete all Tabulators" ) ); clearOneButton->setToolTip( tr("Delete selected Tabulator")); QString ein = unitGetSuffixFromIndex(dEin); if (dEin == 2) { if (haveFirst) { firstLineData->setDecimals(4); leftIndentData->setDecimals(4); rightIndentData->setDecimals(4); } tabData->setDecimals(4); } if (haveFirst) { firstLineData->setSuffix(ein); leftIndentData->setSuffix(ein); rightIndentData->setSuffix(ein); } tabData->setSuffix(ein); haveF = haveFirst; }
void PanelTabBar::duplicateTab() { int id = currentIndex(); emit newTab(((ListPanel*)tabData(id).toLongLong())->virtualPath()); }
TabWidget::TabWidget(QWidget *parent) : QTabWidget(parent) , m_recentlyClosedTabsAction(0) , m_newTabAction(0) , m_closeTabAction(0) , m_nextTabAction(0) , m_previousTabAction(0) , m_recentlyClosedTabsMenu(0) , m_lineEditCompleter(0) , m_lineEdits(0) , m_tabBar(new TabBar(this)) { setElideMode(Qt::ElideRight); connect(m_tabBar, SIGNAL(newTab()), this, SLOT(newTab())); connect(m_tabBar, SIGNAL(closeTab(int)), this, SLOT(closeTab(int))); connect(m_tabBar, SIGNAL(cloneTab(int)), this, SLOT(cloneTab(int))); connect(m_tabBar, SIGNAL(closeOtherTabs(int)), this, SLOT(closeOtherTabs(int))); connect(m_tabBar, SIGNAL(reloadTab(int)), this, SLOT(reloadTab(int))); connect(m_tabBar, SIGNAL(reloadAllTabs()), this, SLOT(reloadAllTabs())); connect(m_tabBar, SIGNAL(tabMoved(int, int)), this, SLOT(moveTab(int, int))); setTabBar(m_tabBar); setDocumentMode(true); // Actions m_newTabAction = new QAction(QIcon(QLatin1String(":addtab.png")), tr("New &Tab"), this); m_newTabAction->setShortcuts(QKeySequence::AddTab); m_newTabAction->setIconVisibleInMenu(false); connect(m_newTabAction, SIGNAL(triggered()), this, SLOT(newTab())); m_closeTabAction = new QAction(QIcon(QLatin1String(":closetab.png")), tr("&Close Tab"), this); m_closeTabAction->setShortcuts(QKeySequence::Close); m_closeTabAction->setIconVisibleInMenu(false); connect(m_closeTabAction, SIGNAL(triggered()), this, SLOT(closeTab())); m_nextTabAction = new QAction(tr("Show Next Tab"), this); QList<QKeySequence> shortcuts; shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_BraceRight)); shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_PageDown)); shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_BracketRight)); shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_Less)); m_nextTabAction->setShortcuts(shortcuts); connect(m_nextTabAction, SIGNAL(triggered()), this, SLOT(nextTab())); m_previousTabAction = new QAction(tr("Show Previous Tab"), this); shortcuts.clear(); shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_BraceLeft)); shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_PageUp)); shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_BracketLeft)); shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_Greater)); m_previousTabAction->setShortcuts(shortcuts); connect(m_previousTabAction, SIGNAL(triggered()), this, SLOT(previousTab())); m_recentlyClosedTabsMenu = new QMenu(this); connect(m_recentlyClosedTabsMenu, SIGNAL(aboutToShow()), this, SLOT(aboutToShowRecentTabsMenu())); connect(m_recentlyClosedTabsMenu, SIGNAL(triggered(QAction *)), this, SLOT(aboutToShowRecentTriggeredAction(QAction *))); m_recentlyClosedTabsAction = new QAction(tr("Recently Closed Tabs"), this); m_recentlyClosedTabsAction->setMenu(m_recentlyClosedTabsMenu); m_recentlyClosedTabsAction->setEnabled(false); connect(this, SIGNAL(currentChanged(int)), this, SLOT(currentChanged(int))); m_lineEdits = new QStackedWidget(this); }
void fsirc::initConnections() { connect(closeTabButton, SIGNAL(released()), this, SLOT(closeCurrentTab())); connect(newTabButton, SIGNAL(released()), this, SLOT(newTab())); connect(clearTabButton, SIGNAL(released()), this, SLOT(clearCurrentTab())); }
void MainWindow::init() { /* MenuBar */ setMenuBar(new MenuBar(addToolBar(tr("")), this)); connect(menuBar(), SIGNAL(newTabTriggered()), this, SLOT(newTab())); connect(menuBar(), SIGNAL(openTriggered()), this, SLOT(openTriggered())); connect(menuBar(), SIGNAL(openClipboardTriggered()), this, SLOT(openClipboardTriggered())); connect(menuBar(), SIGNAL(saveAsTriggered()), this, SLOT(saveAsTriggered())); connect(menuBar(), SIGNAL(saveHtmlTriggered()), this, SLOT(saveHtmlTriggered())); connect(menuBar(), SIGNAL(printTriggered()), this, SLOT(printTriggered())); connect(menuBar(), SIGNAL(closeTabTriggered()), this, SLOT(closeTabTriggered())); connect(menuBar(), SIGNAL(quitTriggered()), this, SLOT(close())); connect(menuBar(), SIGNAL(findNextTriggered()), this, SLOT(findNextTriggered())); connect(menuBar(), SIGNAL(findPreviousTriggered()), this, SLOT(findPreviousTriggered())); connect(menuBar(), SIGNAL(gotoLineTriggered()), this, SLOT(gotoLineTriggered())); connect(menuBar(), SIGNAL(reloadTriggered()), this, SLOT(reloadTriggered())); connect(menuBar(), SIGNAL(zoomInTriggered()), this, SLOT(zoomInTriggered())); connect(menuBar(), SIGNAL(zoomOutTriggered()), this, SLOT(zoomOutTriggered())); connect(menuBar(), SIGNAL(zoomNormalTriggered()), this, SLOT(zoomNormalTriggered())); connect(menuBar(), SIGNAL(lineWrapTriggered()), this, SLOT(lineWrapTriggered())); connect(menuBar(), SIGNAL(optionTriggered()), this, SLOT(optionTriggered())); connect(menuBar(), SIGNAL(updateTriggered()), this, SLOT(updateTriggered())); connect(menuBar(), SIGNAL(reportBugTriggered()), this, SLOT(reportBugTriggered())); connect(menuBar(), SIGNAL(requestFeatureTriggered()), this, SLOT(requestFeatureTriggered())); connect(menuBar(), SIGNAL(aboutTriggered()), this, SLOT(aboutTriggered())); connect(menuBar(), SIGNAL(openRecentFiles(QAction*)), this, SLOT(openRecentFiles(QAction*))); connect(menuBar(), SIGNAL(fileBrowserVisibleChanged(bool)), this, SLOT(fileBrowserVisibleChanged(bool))); connect(menuBar(), SIGNAL(resultViewVisibleChanged(bool)), this, SLOT(resultViewVisibleChanged(bool))); connect(menuBar(), SIGNAL(chartViewVisibleChanged(bool)), this, SLOT(chartViewVisibleChanged(bool))); connect(static_cast<MenuBar*>(menuBar())->searchLineEdit(), SIGNAL(returnPressed()), this, SLOT(findNextTriggered())); /* StatusBar */ setStatusBar(new StatusBar(this)); connect(static_cast<StatusBar*>(statusBar()), SIGNAL(textEncodingChanged(QString)), this, SLOT(textEncodingChanged(QString))); /* TabWidget */ m_tabWidget = new TabWidget(this); connect(m_tabWidget, SIGNAL(newTab()), this, SLOT(newTab())); connect(m_tabWidget, SIGNAL(closeAll()), this, SLOT(closeAll())); connect(m_tabWidget, SIGNAL(closeOthers(int)), this, SLOT(closeOthers(int))); connect(m_tabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(closeTab(int))); connect(m_tabWidget, SIGNAL(currentChanged(int)), this, SLOT(tabChanged(int))); newTab(); setCentralWidget(m_tabWidget); /* DockWidget */ createDockWidget(); /* Keyword Button Group */ connect(keywordButtonGroup(), SIGNAL(buttonReloaded()), LOGVIEWERMANAGER(), SLOT(keywordButtonGroupReloaded())); connect(keywordButtonGroup(), SIGNAL(buttonClicked(QWidget*,QButtonGroup*)), LOGVIEWERMANAGER(), SLOT(keywordButtonGroupClicked(QWidget*,QButtonGroup*))); connect(keywordButtonGroup(), SIGNAL(buttonAdded(QStringList&)), LOGVIEWERMANAGER(), SLOT(keywordButtonGroupAdded(QStringList&))); connect(keywordButtonGroup(), SIGNAL(buttonRemoved(QStringList&)), LOGVIEWERMANAGER(), SLOT(keywordButtonGroupRemoved(QStringList&))); /* File Load Manager */ connect(FILELOADMANAGER(), SIGNAL(loadStarted(QWidget*)), this, SLOT(fileLoadStarted(QWidget*))); connect(FILELOADMANAGER(), SIGNAL(loadProgress(QWidget*,QString*,int)), this, SLOT(fileLoadProgress(QWidget*,QString*,int))); connect(FILELOADMANAGER(), SIGNAL(loadFinished(QWidget*,QString*)), this, SLOT(fileLoadProgress(QWidget*,QString*))); connect(FILELOADMANAGER(), SIGNAL(codecDected(QString)), this, SLOT(codecDected(QString))); connect(FILELOADMANAGER(), SIGNAL(loadStarted(QWidget*)), m_tabWidget, SLOT(fileLoadStarted(QWidget*))); connect(FILELOADMANAGER(), SIGNAL(loadFinished(QWidget*,QString*)), m_tabWidget, SLOT(fileLoadFinished(QWidget*))); connect(FILELOADMANAGER(), SIGNAL(loadStarted(QWidget*)), LOGVIEWERMANAGER(), SLOT(fileLoadStarted(QWidget*))); connect(FILELOADMANAGER(), SIGNAL(loadFinished(QWidget*,QString*)), LOGVIEWERMANAGER(), SLOT(fileLoadFinished(QWidget*))); connect(FILELOADMANAGER(), SIGNAL(fileSizeNotify(QWidget*,long)), LOGVIEWERMANAGER(), SLOT(fileSizeNotified(QWidget*,long))); connect(FILELOADMANAGER(), SIGNAL(fileNameNotify(QWidget*,QString)), LOGVIEWERMANAGER(), SLOT(fileNameNotified(QWidget*,QString))); /* Log Viewer */ connect(LOGVIEWERMANAGER(), SIGNAL(selectionChanged(QWidget*)), this, SLOT(selectionChanged(QWidget*))); connect(LOGVIEWERMANAGER(), SIGNAL(cursorPositionChanged(QWidget*)), this, SLOT(cursorPositionChanged(QWidget*))); connect(LOGVIEWERMANAGER(), SIGNAL(fileDropped(QString)), this, SLOT(fileDropped(QString))); connect(LOGVIEWERMANAGER(), SIGNAL(modelCreated(QWidget*, QStandardItemModel*)), this, SLOT(modelCreated(QWidget*, QStandardItemModel*))); connect(LOGVIEWERMANAGER(), SIGNAL(chartLoaded(QWidget*, QPixmap*)), this, SLOT(chartLoaded(QWidget*, QPixmap*))); }
else { foreach( QString name, files) { createTab( name ); } } connect( ui->actionUndo , SIGNAL(triggered()) , this , SLOT(undo()) ); connect( ui->actionRedo , SIGNAL(triggered()) , this , SLOT(redo()) ); connect( ui->actionOpen , SIGNAL(triggered()) , this , SLOT(open()) ); connect( ui->actionSave , SIGNAL(triggered()) , this , SLOT(save()) ); connect( ui->actionSaveAs , SIGNAL(triggered()) , this , SLOT(saveAs()) ); connect( ui->tabWidget , SIGNAL(currentChanged(int)) , this , SLOT(configureGui(int)) ); connect( ui->tabWidget , SIGNAL(tabCloseRequested(int)) , this , SLOT(closeTab(int)) ); connect( ui->actionNew , SIGNAL(triggered()) , this , SLOT(newTab()) ); connect( ui->actionClose , SIGNAL(triggered()) , this , SLOT(closeTabFromMenu()) ); connect( ui->actionQuit , SIGNAL(triggered()) , this , SLOT(quitFromMenu()) ); //find connect( ui->actionFind , SIGNAL(triggered()) , this , SLOT(toggleFindWidget()) ); connect( ui->findClose , SIGNAL(clicked()) , this , SLOT(toggleFindWidget()) ); connect( ui->findEdit , SIGNAL(textChanged(QString)) , this , SLOT(findFirst(QString)) ); connect( ui->findNext , SIGNAL(clicked()) , this , SLOT(findNext()) ); connect( ui->findPrev , SIGNAL(clicked()) , this , SLOT(findPrev()) ); connect( ui->actionFind_Next , SIGNAL(triggered()) , this , SLOT(findNext()) ); connect( ui->actionFind_Previous , SIGNAL(triggered()) , this , SLOT(findPrev()) ); connect( ui->replaceNext , SIGNAL(clicked()) , this , SLOT(replaceNext()) ); connect( ui->replacePrev , SIGNAL(clicked()) , this , SLOT(replacePrevious()) ); connect( ui->replaceAll , SIGNAL(clicked()) , this , SLOT(replaceAll()) );