void XMLPreferences::load() { // load the default preferences loadPreferences(m_defaultsFilename, m_defaultsSections); // load the user preferences loadPreferences(m_filename, m_userSections); }
void XMLPreferences::revert() { // clear out all default preferecnes m_defaultsSections.clear(); // clear out all user preferences m_userSections.clear(); // load the default preferences loadPreferences(m_defaultsFilename, m_defaultsSections); // load the user preferences back in from the file loadPreferences(m_filename, m_userSections); }
PreferencesDialog::PreferencesDialog(QWidget* parent) : QDialog(parent) { setAttribute(Qt::WA_DeleteOnClose); ui.setupUi(this); loadPreferences(); ui.outputBufferSizeSpinner->setMinimum(MIN_AUDIO_OUTPUT_BUFFER_SIZE_FRAMES); ui.outputBufferSizeSpinner->setMaximum(MAX_AUDIO_OUTPUT_BUFFER_SIZE_FRAMES); connect(ui.buttonBrowseLocation, &QPushButton::clicked, this, &PreferencesDialog::openSnapshotLocationBrowser); connect(ui.buttonBrowseScriptsLocation, &QPushButton::clicked, this, &PreferencesDialog::openScriptsLocationBrowser); connect(ui.buttonReloadDefaultScripts, &QPushButton::clicked, Application::getInstance(), &Application::loadDefaultScripts); DialogsManager* dialogsManager = DependencyManager::get<DialogsManager>().data(); connect(ui.buttonChangeApperance, &QPushButton::clicked, dialogsManager, &DialogsManager::changeAvatarAppearance); connect(Application::getInstance(), &Application::headURLChanged, this, &PreferencesDialog::headURLChanged); connect(Application::getInstance(), &Application::bodyURLChanged, this, &PreferencesDialog::bodyURLChanged); connect(Application::getInstance(), &Application::fullAvatarURLChanged, this, &PreferencesDialog::fullAvatarURLChanged); // move dialog to left side move(parentWidget()->geometry().topLeft()); setFixedHeight(parentWidget()->size().height() - PREFERENCES_HEIGHT_PADDING); ui.apperanceDescription->setText(DependencyManager::get<AvatarManager>()->getMyAvatar()->getModelDescription()); UIUtil::scaleWidgetFontSizes(this); }
PreferencesDialog::PreferencesDialog(QWidget* parent) : QDialog(parent) { setAttribute(Qt::WA_DeleteOnClose); ui.setupUi(this); loadPreferences(); ui.outputBufferSizeSpinner->setMinimum(MIN_AUDIO_OUTPUT_BUFFER_SIZE_FRAMES); ui.outputBufferSizeSpinner->setMaximum(MAX_AUDIO_OUTPUT_BUFFER_SIZE_FRAMES); connect(ui.buttonBrowseLocation, &QPushButton::clicked, this, &PreferencesDialog::openSnapshotLocationBrowser); connect(ui.buttonBrowseScriptsLocation, &QPushButton::clicked, this, &PreferencesDialog::openScriptsLocationBrowser); connect(ui.buttonReloadDefaultScripts, &QPushButton::clicked, qApp, &Application::loadDefaultScripts); connect(ui.buttonChangeAppearance, &QPushButton::clicked, this, &PreferencesDialog::openFullAvatarModelBrowser); connect(ui.appearanceDescription, &QLineEdit::textChanged, this, [this](const QString& url) { DependencyManager::get<AvatarManager>()->getMyAvatar()->useFullAvatarURL(url, ""); this->fullAvatarURLChanged(url, ""); }); connect(qApp, &Application::fullAvatarURLChanged, this, &PreferencesDialog::fullAvatarURLChanged); // move dialog to left side move(parentWidget()->geometry().topLeft()); setFixedHeight(parentWidget()->size().height() - PREFERENCES_HEIGHT_PADDING); UIUtil::scaleWidgetFontSizes(this); }
Window::Window() : m_icon(":/images/justlock.png"), m_logFiles(), m_logStreams(), m_fileWatcher(0), m_maxRows(5), m_rowCount(0), m_warningIcon(":/images/trianglewarning.png") { loadPreferences(true); createLogWidgets(); createActions(); createTrayIcon(); createMenus(); QWidget *widget = new QWidget(); widget->setLayout(m_topLayout); setCentralWidget(widget); createRegexps(); // setup the tray icon trayIcon->setToolTip(tr("Shows the status of DNSSEC Requests on the system")); trayIcon->setIcon(m_icon); setWindowIcon(m_icon); connect(trayIcon, SIGNAL(messageClicked()), this, SLOT(messageClicked())); connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason))); trayIcon->show(); setWindowTitle(tr("DNSSEC Log Messages")); }
ossimPreferences::ossimPreferences() { /*! * If $(env_var_name) is found in the preferences file, * expand it in place. */ theKWL.setExpandEnvVarsFlag( true ); loadPreferences(); }
CAMProfileSettingsList::CAMProfileSettingsList(QWidget *parent) : QDialog(parent), ui(new Ui::CAMProfileSettingsList) { ui->setupUi(this); camProfileDataModel=new CAMProfileDataModel(); ui->tableView->setModel(camProfileDataModel); loadPreferences(); ui->tableView->resizeColumnsToContents(); }
PreferencesDialog::PreferencesDialog(QWidget* parent) : QDialog(parent) { setAttribute(Qt::WA_DeleteOnClose); ui.setupUi(this); loadPreferences(); ui.outputBufferSizeSpinner->setMinimum(MIN_AUDIO_OUTPUT_BUFFER_SIZE_FRAMES); ui.outputBufferSizeSpinner->setMaximum(MAX_AUDIO_OUTPUT_BUFFER_SIZE_FRAMES); connect(ui.buttonBrowseHead, &QPushButton::clicked, this, &PreferencesDialog::openHeadModelBrowser); connect(ui.buttonBrowseBody, &QPushButton::clicked, this, &PreferencesDialog::openBodyModelBrowser); connect(ui.buttonBrowseLocation, &QPushButton::clicked, this, &PreferencesDialog::openSnapshotLocationBrowser); connect(ui.buttonBrowseScriptsLocation, &QPushButton::clicked, this, &PreferencesDialog::openScriptsLocationBrowser); connect(ui.buttonReloadDefaultScripts, &QPushButton::clicked, Application::getInstance(), &Application::loadDefaultScripts); // move dialog to left side move(parentWidget()->geometry().topLeft()); setFixedHeight(parentWidget()->size().height() - PREFERENCES_HEIGHT_PADDING); }
EditorView::EditorView(QWidget *parent) : QPlainTextEdit(parent) { highlighter = 0; setExtension("spin"); canUndo = false; canRedo = false; canCopy = false; tabOn = false; currentTheme = &Singleton<ColorScheme>::Instance(); loadPreferences(); lineNumberArea = new LineNumberArea(this); connect(this, SIGNAL(blockCountChanged(int)), this, SLOT(updateLineNumberAreaWidth())); connect(this, SIGNAL(updateRequest(QRect,int)), this, SLOT(updateLineNumberArea(QRect,int))); updateLineNumberAreaWidth(); setMouseTracking(true); setCenterOnScroll(true); setWordWrapMode(QTextOption::NoWrap); updateColors(); updateFonts(); saveContent(); connect(this, SIGNAL(undoAvailable(bool)), this, SLOT(setUndo(bool))); connect(this, SIGNAL(redoAvailable(bool)), this, SLOT(setRedo(bool))); connect(this, SIGNAL(copyAvailable(bool)), this, SLOT(setCopy(bool))); // this must be a pointer otherwise we can't control the position. cbAuto = new QComboBox(this); cbAuto->setMaxVisibleItems(10); cbAuto->hide(); }
Preferences::Preferences() : demoPath( QString( DataPath::get_data_path() ) + "/demo_songs/" ) , m_sLastNews( "" ) { DEBUGLOG( "INIT" ); //Default jack track-outputs are post fader m_nJackTrackOutputMode = POST_FADER; m_bJackTrackOuts = false; //server list std::list<QString> sServerList; m_midi_map = new MidiMap(); // //musicCategories // std::list<QString> m_musicCategories; char * ladpath = getenv( "LADSPA_PATH" ); // read the Environment variable LADSPA_PATH if ( ladpath ) { DEBUGLOG( "Found LADSPA_PATH environment variable" ); QString sLadspaPath = QString::fromLocal8Bit(ladpath); int pos; while ( ( pos = sLadspaPath.indexOf( ":" ) ) != -1 ) { QString sPath = sLadspaPath.left( pos ); m_ladspaPathVect.push_back( sPath ); sLadspaPath = sLadspaPath.mid( pos + 1, sLadspaPath.length() ); } m_ladspaPathVect.push_back( sLadspaPath ); } else { #ifdef Q_OS_MACX /* m_ladspaPathVect.push_back( qApp->applicationDirPath() + "/../Resources/plugins" ); */ m_ladspaPathVect.push_back( "/Library/Audio/Plug-Ins/LADSPA/" ); m_ladspaPathVect.push_back( QDir::homePath().append( "/Library/Audio/Plug-Ins/LADSPA" )); #else m_ladspaPathVect.push_back( "/usr/lib/ladspa" ); m_ladspaPathVect.push_back( "/usr/local/lib/ladspa" ); #endif } m_pDefaultUIStyle = new UIStyle(); #ifdef Q_OS_MACX m_sPreferencesFilename = QDir::homePath().append( "/Library/Application Support/Composite/composite.conf" ); m_sPreferencesDirectory = QDir::homePath().append( "/Library/Application Support/Composite/" ); m_sDataDirectory = QDir::homePath().append( "/Library/Application Support/Composite/data/" ); #else m_sPreferencesFilename = QDir::homePath().append( "/.composite/composite.conf" ); m_sPreferencesDirectory = QDir::homePath().append( "/.composite/" ); m_sDataDirectory = QDir::homePath().append( "/.composite/data/" ); #endif __lastspatternDirectory = QDir::homePath(); __lastsampleDirectory = QDir::homePath(); //audio file browser __playsamplesonclicking = false; // audio file browser __expandSongItem = true; //SoundLibraryPanel __expandPatternItem = true; //SoundLibraryPanel ///////////////////////////////////////////////////////////////////////// /////////////////// DEFAULT SETTINGS //////////////////////////////////// ///////////////////////////////////////////////////////////////////////// m_bFollowPlayhead = true; m_bbc = false; m_mmcsetplay = false; m_countOffset = 0; // beatcounter m_startOffset = 0; // beatcounter sServerList.push_back( QString("http://www.hydrogen-music.org/feeds/drumkit_list.php") ); m_patternCategories.push_back( QString("not_categorized") ); //___ audio engine properties ___ m_sAudioDriver = QString("Auto"); m_bUseMetronome = false; m_fMetronomeVolume = 0.5; m_nMaxNotes = 256; m_nBufferSize = 1024; m_nSampleRate = 44100; //___ MIDI Driver properties m_sMidiDriver = QString("JackMidi"); m_sMidiPortName = QString("None"); m_nMidiChannelFilter = -1; m_bMidiNoteOffIgnore = false; m_bMidiDiscardNoteAfterAction = false; //___ alsa audio driver properties ___ m_sAlsaAudioDevice = QString("hw:0"); //___ jack driver properties ___ m_sJackPortName1 = QString("alsa_pcm:playback_1"); m_sJackPortName2 = QString("alsa_pcm:playback_2"); m_bJackTransportMode = true; m_bJackConnectDefaults = true; m_bJackTrackOuts = false; m_nJackTrackOutputMode = 0; m_bJackMasterMode = false ; // None: m_sDefaultEditor; // SEE ABOVE: m_sDataDirectory // SEE ABOVE: demoPath //___ General properties ___ m_bPatternModePlaysSelected = true; restoreLastSong = true; m_bShowDevelWarning = false; // NONE: lastSongFilename; hearNewNotes = true; // NONE: m_recentFiles; // NONE: m_recentFX; // NONE: m_ladspaPathVect; quantizeEvents = true; recordEvents = false; m_sLastNews = QString("-"); //___ GUI properties ___ m_sQTStyle = "Plastique"; applicationFontFamily = "Lucida Grande"; applicationFontPointSize = 10; mixerFontFamily = "Lucida Grande"; mixerFontPointSize = 11; mixerFalloffSpeed = 1.1; m_nPatternEditorGridResolution = 8; m_bPatternEditorUsingTriplets = false; m_bShowInstrumentPeaks = true; m_bIsFXTabVisible = true; m_nPatternEditorGridHeight = 21; m_nPatternEditorGridWidth = 3; mainFormProperties.set(0, 0, 1000, 700, true); mixerProperties.set(10, 350, 829, 276, true); patternEditorProperties.set(280, 100, 706, 439, true); songEditorProperties.set(10, 10, 600, 250, true); drumkitManagerProperties.set(500, 20, 526, 437, true); audioEngineInfoProperties.set(720, 120, 0, 0, false); m_ladspaProperties[0].set(2, 20, 0, 0, false); m_ladspaProperties[1].set(2, 20, 0, 0, false); m_ladspaProperties[2].set(2, 20, 0, 0, false); m_ladspaProperties[3].set(2, 20, 0, 0, false); UIStyle* uis = m_pDefaultUIStyle; uis->m_songEditor_backgroundColor = H2RGBColor(95, 101, 117); uis->m_songEditor_alternateRowColor = H2RGBColor(128, 134, 152); uis->m_songEditor_selectedRowColor = H2RGBColor(128, 134, 152); uis->m_songEditor_lineColor = H2RGBColor(72, 76, 88); uis->m_songEditor_textColor = H2RGBColor(196, 201, 214); uis->m_songEditor_pattern1Color = H2RGBColor(97, 167, 251); uis->m_patternEditor_backgroundColor = H2RGBColor(167, 168, 163); uis->m_patternEditor_alternateRowColor = H2RGBColor(167, 168, 163); uis->m_patternEditor_selectedRowColor = H2RGBColor(207, 208, 200); uis->m_patternEditor_textColor = H2RGBColor(40, 40, 40); uis->m_patternEditor_noteColor = H2RGBColor(40, 40, 40); uis->m_patternEditor_lineColor = H2RGBColor(65, 65, 65); uis->m_patternEditor_line1Color = H2RGBColor(75, 75, 75); uis->m_patternEditor_line2Color = H2RGBColor(95, 95, 95); uis->m_patternEditor_line3Color = H2RGBColor(115, 115, 115); uis->m_patternEditor_line4Color = H2RGBColor(125, 125, 125); uis->m_patternEditor_line5Color = H2RGBColor(135, 135, 135); ///////////////////////////////////////////////////////////////////////// //////////////// END OF DEFAULT SETTINGS //////////////////////////////// ///////////////////////////////////////////////////////////////////////// loadPreferences( true ); // Global settings loadPreferences( false ); // User settings }
Document::Document(const QString& filename, int& current_wordcount, int& current_time, const QString& theme, QWidget* parent) : QWidget(parent), m_index(0), m_always_center(false), m_rich_text(false), m_cached_block_count(-1), m_cached_current_block(-1), m_page_type(0), m_page_amount(0), m_accurate_wordcount(true), m_current_wordcount(current_wordcount), m_current_time(current_time) { setMouseTracking(true); m_stats = &m_document_stats; m_hide_timer = new QTimer(this); m_hide_timer->setInterval(5000); m_hide_timer->setSingleShot(true); connect(m_hide_timer, SIGNAL(timeout()), this, SLOT(hideMouse())); // Set up text area m_text = new Editor(this); m_text->installEventFilter(this); m_text->setMouseTracking(true); m_text->setFrameStyle(QFrame::NoFrame); m_text->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_text->viewport()->setMouseTracking(true); m_text->viewport()->installEventFilter(this); QTextDocument* document = new QTextDocument(m_text); document->setUndoRedoEnabled(false); // Read file bool unknown_rich_text = false; if (!filename.isEmpty()) { m_rich_text = isRichTextFile(filename.toLower()); m_filename = QFileInfo(filename).canonicalFilePath(); updateState(); if (!m_rich_text) { QFile file(filename); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream stream(&file); stream.setCodec(QTextCodec::codecForName("UTF-8")); stream.setAutoDetectUnicode(true); QTextCursor cursor(document); while (!stream.atEnd()) { cursor.insertText(stream.read(8192)); QApplication::processEvents(); } file.close(); } } else { PROSEUP::Reader reader; reader.read(filename, document); if (reader.hasError()) { QMessageBox::warning(this, tr("Sorry"), reader.errorString()); } } } // Set text area contents document->setUndoRedoEnabled(true); document->setModified(false); m_text->setDocument(document); m_text->setTabStopWidth(50); document->setIndentWidth(50); m_dictionary = new Dictionary(this); m_highlighter = new Highlighter(m_text, m_dictionary); connect(m_dictionary, SIGNAL(changed()), this, SLOT(dictionaryChanged())); if (m_filename.isEmpty()) { findIndex(); unknown_rich_text = true; } else { m_text->setReadOnly(!QFileInfo(m_filename).isWritable()); } // Set up scroll bar m_text->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_scrollbar = m_text->verticalScrollBar(); m_scrollbar->setPalette(QApplication::palette()); m_scrollbar->setAutoFillBackground(true); m_scrollbar->setVisible(false); connect(m_scrollbar, SIGNAL(actionTriggered(int)), this, SLOT(scrollBarActionTriggered(int))); connect(m_scrollbar, SIGNAL(rangeChanged(int,int)), this, SLOT(scrollBarRangeChanged(int,int))); scrollBarRangeChanged(m_scrollbar->minimum(), m_scrollbar->maximum()); // Lay out window m_layout = new QGridLayout(this); m_layout->setSpacing(0); m_layout->setMargin(0); m_layout->addWidget(m_text, 0, 1); m_layout->addWidget(m_scrollbar, 0, 2, Qt::AlignRight); // Load settings Preferences preferences; if (unknown_rich_text) { m_rich_text = preferences.richText(); } m_text->setAcceptRichText(m_rich_text); loadPreferences(preferences); loadTheme(theme); if(m_rich_text) { m_text->setUndoRedoEnabled(false); cleanUpDocument(); m_text->setUndoRedoEnabled(true); m_text->document()->setModified(false); } calculateWordCount(); connect(m_text->document(), SIGNAL(undoCommandAdded()), this, SLOT(undoCommandAdded())); connect(m_text->document(), SIGNAL(contentsChange(int,int,int)), this, SLOT(updateWordCount(int,int,int))); connect(m_text, SIGNAL(cursorPositionChanged()), this, SLOT(cursorPositionChanged())); connect(m_text, SIGNAL(selectionChanged()), this, SLOT(selectionChanged())); }
static int handlePreferencesCommands (int command, void *data) { switch (command & BRL_MSK_CMD) { { static const char modeString_preferences[] = "prf"; static Preferences savedPreferences; case BRL_CMD_PREFMENU: { int ok = 0; if (isSpecialScreen(SCR_MENU)) { if (prefs.saveOnExit) { if (savePreferences()) { alert(ALERT_COMMAND_DONE); } } deactivateSpecialScreen(SCR_MENU); ok = 1; } else if (activateSpecialScreen(SCR_MENU)) { updateSessionAttributes(); savedPreferences = prefs; ok = 1; } if (ok) { infoMode = 0; } else { alert(ALERT_COMMAND_REJECTED); } break; } case BRL_CMD_PREFSAVE: if (isSpecialScreen(SCR_MENU)) { if (savePreferences()) alert(ALERT_COMMAND_DONE); deactivateSpecialScreen(SCR_MENU); } else if (savePreferences()) { alert(ALERT_COMMAND_DONE); } else { alert(ALERT_COMMAND_REJECTED); } break; case BRL_CMD_PREFLOAD: if (isSpecialScreen(SCR_MENU)) { setPreferences(&savedPreferences); message(modeString_preferences, gettext("changes discarded"), 0); } else if (loadPreferences()) { alert(ALERT_COMMAND_DONE); } else { alert(ALERT_COMMAND_REJECTED); } break; } default: { int arg = command & BRL_MSK_ARG; switch (command & BRL_MSK_BLK) { { MenuItem *item; case BRL_CMD_BLK(SET_TEXT_TABLE): item = getPreferencesMenuItem_textTable(); goto doSetMenuItem; case BRL_CMD_BLK(SET_ATTRIBUTES_TABLE): item = getPreferencesMenuItem_attributesTable(); goto doSetMenuItem; case BRL_CMD_BLK(SET_CONTRACTION_TABLE): item = getPreferencesMenuItem_contractionTable(); goto doSetMenuItem; case BRL_CMD_BLK(SET_KEYBOARD_TABLE): item = getPreferencesMenuItem_keyboardTable(); goto doSetMenuItem; case BRL_CMD_BLK(SET_LANGUAGE_PROFILE): item = getPreferencesMenuItem_languageProfile(); goto doSetMenuItem; doSetMenuItem: if (item) { unsigned int count = brl.textColumns; if (count <= arg) count = arg + 1; changeMenuItem(item); if (changeMenuSettingScaled(getMenuItemMenu(item), arg, count)) { break; } } alert(ALERT_COMMAND_REJECTED); break; } default: return 0; } break; } } return 1; }
// Constructor MainWindow::MainWindow(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), m_posInitialized(false), force_exit(false), icon_TrayConn(res::trayConnected()), icon_TrayDisconn(res::trayDisconnected()), icon_CurTray(icon_TrayDisconn) { setupUi(this); stackedWidget->addWidget(new transfers_widget(this)); stackedWidget->addWidget(new search_widget(this)); stackedWidget->addWidget(new preferences_widget(this)); stackedWidget->setCurrentIndex(0); setWindowTitle(tr("qDonkey %1").arg(misc::versionString())); QCoreApplication::instance()->installEventFilter(this); //QApplication::setOverrideCursor(Qt::WaitCursor); m_last_file_error = QDateTime::currentDateTime().addSecs(-1); // imagine last file error event was 1 seconds in past #ifdef Q_WS_WIN m_nTaskbarButtonCreated = RegisterWindowMessage(L"TaskbarButtonCreated"); #else m_nTaskbarButtonCreated = 0; #endif Preferences pref; // Clean exit on log out connect(static_cast<SessionApplication*>(qApp), SIGNAL(sessionIsShuttingDown()), this, SLOT(deleteSession())); this->setWindowIcon(QIcon(res::favicon())); #ifdef Q_WS_MAC connect(static_cast<QMacApplication*>(qApp), SIGNAL(newFileOpenMacEvent(QString)), this, SLOT(processParams(QString))); #endif statusBar = new status_bar(this, QMainWindow::statusBar()); m_pwr = new PowerManagement(this); // Configure session according to options loadPreferences(false); // Start connection checking timer guiUpdater = new QTimer(this); connect(guiUpdater, SIGNAL(timeout()), this, SLOT(updateGUI())); guiUpdater->start(2000); // Accept drag 'n drops //setAcceptDrops(true); createKeyboardShortcuts(); #ifdef Q_WS_MAC setUnifiedTitleAndToolBarOnMac(true); #endif // View settings // Auto shutdown actions /* QActionGroup * autoShutdownGroup = new QActionGroup(this); autoShutdownGroup->setExclusive(true); autoShutdownGroup->addAction(actionAutoShutdown_Disabled); autoShutdownGroup->addAction(actionAutoExit_mule); autoShutdownGroup->addAction(actionAutoShutdown_system); autoShutdownGroup->addAction(actionAutoSuspend_system); #if !defined(Q_WS_X11) || defined(QT_DBUS_LIB) actionAutoShutdown_system->setChecked(pref.shutdownWhenDownloadsComplete()); actionAutoSuspend_system->setChecked(pref.suspendWhenDownloadsComplete()); #else actionAutoShutdown_system->setDisabled(true); actionAutoSuspend_system->setDisabled(true); #endif actionAutoExit_mule->setChecked(pref.shutdownqBTWhenDownloadsComplete()); if (!autoShutdownGroup->checkedAction()) actionAutoShutdown_Disabled->setChecked(true); */ readSettings(); show(); activateWindow(); raise(); // Start watching the executable for updates executable_watcher = new QFileSystemWatcher(); connect(executable_watcher, SIGNAL(fileChanged(QString)), this, SLOT(notifyOfUpdate(QString))); executable_watcher->addPath(qApp->applicationFilePath()); // Add torrent given on command line processParams(torrentCmdLine); #ifdef Q_WS_MAC //qt_mac_set_dock_menu(icon_CurTray); #endif // Make sure the Window is visible if we don't have a tray icon if (!systrayIcon && isHidden()) { show(); activateWindow(); raise(); } connect(Session::instance(), SIGNAL(serverNameResolved(QString)), this, SLOT(handleServerNameResolved(QString))); connect(Session::instance(), SIGNAL(serverConnectionInitialized(quint32,quint32,quint32)), this, SLOT(handleServerConnectionInitialized(quint32,quint32,quint32))); connect(Session::instance(), SIGNAL(serverConnectionClosed(QString)), this, SLOT(handleServerConnectionClosed(QString))); connect(Session::instance(), SIGNAL(serverStatus(int,int)), this, SLOT(handleServerStatus(int,int))); connect(Session::instance(), SIGNAL(serverMessage(QString)), this, SLOT(handleServerMessage(QString))); connect(Session::instance(), SIGNAL(serverIdentity(QString,QString)), this, SLOT(handleServerIdentity(QString,QString))); connect(Session::instance(), SIGNAL(transferAdded(QED2KHandle)), SLOT(addedTransfer(QED2KHandle))); connect(Session::instance(), SIGNAL(transferFinished(QED2KHandle)), SLOT(finishedTransfer(QED2KHandle))); //Tray actions. //connect(actionToggleVisibility, SIGNAL(triggered()), this, SLOT(toggleVisibility())); //connect(actionStart_All, SIGNAL(triggered()), Session::instance(), SLOT(resumeAllTransfers())); //connect(actionPause_All, SIGNAL(triggered()), Session::instance(), SLOT(pauseAllTransfers())); actionConnect->trigger(); Session::instance()->loadDirectory(pref.inputDir()); }
Document::Document(const QString& filename, DailyProgress* daily_progress, QWidget* parent) : QWidget(parent), m_cache_outdated(false), m_index(0), m_always_center(false), m_mouse_button_down(false), m_rich_text(false), m_spacings_loaded(false), m_focus_mode(0), m_scene_list(0), m_dictionary(DictionaryManager::instance().requestDictionary()), m_cached_block_count(-1), m_cached_current_block(-1), m_saved_wordcount(0), m_page_type(0), m_page_amount(0), m_wordcount_type(0), m_daily_progress(daily_progress) { setMouseTracking(true); m_stats = &m_document_stats; m_hide_timer = new QTimer(this); m_hide_timer->setInterval(5000); m_hide_timer->setSingleShot(true); connect(m_hide_timer, SIGNAL(timeout()), this, SLOT(hideMouse())); // Set up text area m_text = new TextEdit(this); m_text->installEventFilter(this); m_text->setMouseTracking(true); m_text->setFrameStyle(QFrame::NoFrame); m_text->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_text->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_text->setTabStopWidth(48); m_text->document()->setIndentWidth(48); m_text->horizontalScrollBar()->setAttribute(Qt::WA_NoMousePropagation); m_text->viewport()->setMouseTracking(true); m_text->viewport()->installEventFilter(this); connect(m_text, SIGNAL(cursorPositionChanged()), this, SLOT(cursorPositionChanged())); connect(m_text, SIGNAL(selectionChanged()), this, SLOT(selectionChanged())); connect(m_text->document(), SIGNAL(modificationChanged(bool)), this, SIGNAL(modificationChanged(bool))); QShortcut* shortcut_down = new QShortcut(m_text); QShortcut* shortcut_up = new QShortcut(m_text); #ifndef Q_OS_MAC shortcut_down->setKey(Qt::CTRL + Qt::Key_Down); shortcut_up->setKey(Qt::CTRL + Qt::Key_Up); #else shortcut_down->setKey(Qt::ALT + Qt::Key_Down); shortcut_up->setKey(Qt::ALT + Qt::Key_Up); #endif connect(shortcut_down, SIGNAL(activated()), this, SLOT(moveToBlockEnd())); connect(shortcut_up, SIGNAL(activated()), this, SLOT(moveToBlockStart())); m_scene_model = new SceneModel(m_text, this); m_highlighter = new Highlighter(m_text, m_dictionary); connect(&DictionaryManager::instance(), SIGNAL(changed()), this, SLOT(dictionaryChanged())); // Set filename if (!filename.isEmpty()) { m_rich_text = FormatManager::isRichText(filename); m_filename = QFileInfo(filename).absoluteFilePath(); updateState(); } if (m_filename.isEmpty()) { findIndex(); } // Set up scroll bar m_scrollbar = m_text->verticalScrollBar(); m_scrollbar->setAttribute(Qt::WA_NoMousePropagation); m_scrollbar->setPalette(QApplication::palette()); m_scrollbar->setAutoFillBackground(true); m_scrollbar->setMouseTracking(true); m_scrollbar->installEventFilter(this); setScrollBarVisible(Preferences::instance().alwaysShowScrollBar()); connect(m_scrollbar, SIGNAL(actionTriggered(int)), this, SLOT(scrollBarActionTriggered(int))); connect(m_scrollbar, SIGNAL(rangeChanged(int,int)), this, SLOT(scrollBarRangeChanged(int,int))); // Lay out window m_layout = new QGridLayout(this); m_layout->setSpacing(0); m_layout->setMargin(0); m_layout->addWidget(m_text, 1, 1); m_layout->addWidget(m_scrollbar, 1, 2, Qt::AlignRight); // Load settings loadPreferences(); // Make it read-only until content is loaded m_text->setReadOnly(true); DocumentWatcher::instance()->addWatch(this); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), m_scene(new QGraphicsScene), m_turtleGraphics(new TurtleCanvasGraphicsItem), m_cmds(m_turtleGraphics), m_prefsDialog(new PreferencesDialog(this)), m_aboutDialog(new AboutDialog(this)), m_canvasSaveOptionsDialog(new CanvasSaveOptionsDialog(this)), m_settings("settings.ini") { ui->setupUi(this); m_scene->addItem(m_turtleGraphics); ui->graphicsView->setScene(m_scene); ui->graphicsView->centerOn(0.0, 0.0); // Add the graphics view actions QAction* centerAction = new QAction("&Center View", NULL); QAction* clearAction = new QAction("C&lear Canvas", NULL); ui->graphicsView->addAction(centerAction); ui->graphicsView->addAction(clearAction); connect(centerAction, SIGNAL(triggered()), this, SLOT(centerGraphicsScene())); connect(clearAction, SIGNAL(triggered()), this, SLOT(clearCanvas())); ui->graphicsView->setContextMenuPolicy(Qt::ActionsContextMenu); ui->errorMessagesTextEdit->setTextColor(Qt::red); // These buttons are only enabled while a script is running. ui->haltButton->setEnabled(false); ui->pauseButton->setEnabled(false); ui->resumeButton->setEnabled(false); // Messages dock is hidden by default. ui->messagesDockWidget->hide(); connect(m_turtleGraphics, SIGNAL(canvasResized()), this, SLOT(resizeGraphicsScene())); connect(ui->runButton, SIGNAL(clicked()), this, SLOT(runScript())); connect(ui->haltButton, SIGNAL(clicked()), this, SLOT(haltScript())); connect(ui->pauseButton, SIGNAL(clicked()), this, SLOT(pauseScript())); connect(ui->resumeButton, SIGNAL(clicked()), this, SLOT(resumeScript())); connect(ui->action_Open_Script, SIGNAL(triggered()), this, SLOT(loadScript())); connect(ui->action_Save_Script, SIGNAL(triggered()), this, SLOT(saveScript())); connect(ui->action_Save_Canvas, SIGNAL(triggered()), this, SLOT(saveCanvas())); connect(ui->action_Preferences, SIGNAL(triggered()), m_prefsDialog, SLOT(show())); connect(ui->action_About, SIGNAL(triggered()), m_aboutDialog, SLOT(show())); connect(ui->action_Errors, SIGNAL(triggered(bool)), this, SLOT(showErrors())); connect(ui->action_Script_Output, SIGNAL(triggered(bool)), this, SLOT(showScriptOutputs())); connect(m_prefsDialog, SIGNAL(rejected()), this, SLOT(loadPreferences())); connect(m_prefsDialog, SIGNAL(accepted()), this, SLOT(applyPreferences())); connect(m_prefsDialog, SIGNAL(accepted()), this, SLOT(savePreferences())); connect(&m_cmds, SIGNAL(scriptError(QString)), this, SLOT(showScriptError(QString)), Qt::QueuedConnection); connect(&m_cmds, SIGNAL(scriptMessageReceived()), this, SLOT(showScriptOutput()), Qt::QueuedConnection); loadPreferences(); applyPreferences(); m_cmds.start(); m_cmds.setRequirePaths(""); for (const QString& path : m_settings.requirePaths()) { m_cmds.addRequirePath(path); } for (const QString& filename : m_settings.startupScripts()) { m_cmds.runScriptFile(filename); } // Don't connect this until all the startup scripts have run // to prevent the error messages box from being cleared by successful scripts. connect(&m_cmds, SIGNAL(scriptFinished(bool)), this, SLOT(scriptFinished(bool)), Qt::QueuedConnection); }
void Window::showPreferences() { DnssecSystemTrayPrefs prefs; connect(&prefs, SIGNAL(accepted()), this, SLOT(loadPreferences())); prefs.exec(); }
MainWindow::MainWindow( QWidget *parent ) : QMainWindow( parent ) { // QObject::connect( this, SIGNAL( finishedBuildFilelist( bool ) ), this, SLOT( doIt( bool ) ) ); // ********************************************************************************************** setWaitCursor(); // ********************************************************************************************** // init gi_ActionNumber = 1; //!< Die ActionNumber wird bei jedem angewandenten Tool um 1 erhoeht. gs_Version = "unknown"; //!< Aktuelle Version des Programms. gsl_FilenameList.clear(); // ********************************************************************************************** #if defined(Q_OS_LINUX) gb_showProgressBar = true; #endif #if defined(Q_OS_MAC) gb_showProgressBar = false; #endif #if defined(Q_OS_WIN) gb_showProgressBar = true; #endif // ********************************************************************************************** Model = new QStringListModel( this ); ListView = new QListView; ListView->setModel( Model ); ListView->setEditTriggers( QAbstractItemView::NoEditTriggers ); setCentralWidget( ListView ); setAcceptDrops( true ); // ********************************************************************************************** loadPreferences(); if ( gi_NumOfProgramStarts++ < 1 ) savePreferences(); gs_Version = getVersion(); // ********************************************************************************************** createActions(); createMenus(); createStatusBar( gb_showProgressBar ); // ********************************************************************************************** this->resize( sizeWindow ); this->move( posWindow ); this->show(); // ********************************************************************************************** gsl_FilenameList = expandCommandline(); // ********************************************************************************************** setWTitle( gi_ActionNumber, gs_FilenameFormat, gi_Extension, gsl_FilenameList ); setStatusBar( tr( "Ready" ), 2 ); setNormalCursor(); }
int main(int argc, char **argv) { int i = 0, numframes; char *filename = NULL; gchar *notefile = NULL; FILE *fp = NULL; struct stat statbuf; char *databuf = NULL; GError *err = NULL; gtk_init(&argc, &argv); /* Load preferences first. Command line options will override those * preferences. */ loadPreferences(); /* Read defaults from preferences. */ filename = NULL; numframes = 2 * prefs.slide_context + 1; runpref.do_wrapping = prefs.do_wrapping; runpref.do_notectrl = prefs.do_notectrl; runpref.fit_mode = prefs.initial_fit_mode; /* get options via getopt */ while ((i = getopt(argc, argv, "s:wnN:CTv")) != -1) { switch (i) { case 's': numframes = 2 * atoi(optarg) + 1; if (numframes <= 1) { fprintf(stderr, "Invalid slide count specified.\n"); usage(argv[0]); exit(EXIT_FAILURE); } break; case 'w': runpref.do_wrapping = TRUE; break; case 'n': runpref.do_notectrl = TRUE; break; case 'N': notefile = g_strdup(optarg); break; case 'C': /* Force the timer to be a clock. */ prefs.timer_is_clock = TRUE; break; case 'T': /* Force the timer to be a timer (not a clock). */ prefs.timer_is_clock = FALSE; break; case 'v': printf("pdfpres version: %s\n", PDFPRES_VERSION); exit(EXIT_SUCCESS); break; case '?': exit(EXIT_FAILURE); break; } } /* retrieve file name via first non-option argument */ if (optind < argc) { filename = argv[optind]; } if (filename == NULL) { fprintf(stderr, "Invalid file path specified.\n"); usage(argv[0]); exit(EXIT_FAILURE); } /* try to load the file */ if (stat(filename, &statbuf) == -1) { perror("Could not stat file"); exit(EXIT_FAILURE); } /* note: this buffer must not be freed, it'll be used by poppler * later on. */ databuf = (char *)malloc(statbuf.st_size); g_assert(databuf); fp = fopen(filename, "rb"); if (!fp) { perror("Could not open file"); exit(EXIT_FAILURE); } /* Read 1 element of size "statbuf.st_size". fread() returns the * number of items successfully read. Thus, a return value of "1" * means "success" and anything else is an error. */ if (fread(databuf, statbuf.st_size, 1, fp) != 1) { fprintf(stderr, "Unexpected end of file.\n"); exit(EXIT_FAILURE); } fclose(fp); /* get document from data */ doc = poppler_document_new_from_data(databuf, statbuf.st_size, NULL, &err); if (!doc) { fprintf(stderr, "%s\n", err->message); g_error_free(err); exit(EXIT_FAILURE); } doc_n_pages = poppler_document_get_n_pages(doc); if (doc_n_pages <= 0) { fprintf(stderr, "Huh, no pages in that document.\n"); exit(EXIT_FAILURE); } PopplerPage *page = poppler_document_get_page(doc, doc_n_pages-1); doc_last_page = atoi(poppler_page_get_label(page)); g_object_unref(G_OBJECT(page)); initGUI(numframes, notefile); gtk_main(); exit(EXIT_SUCCESS); }
/* Do the actual applet initialization */ static void init_wtapplet (PanelApplet *applet) { WTApplet *wtapplet = g_new0 (WTApplet, 1); wtapplet->applet = applet; wtapplet->prefs = loadPreferences(wtapplet); wtapplet->activescreen = wnck_screen_get_default(); wnck_screen_force_update(wtapplet->activescreen); wtapplet->activeworkspace = wnck_screen_get_active_workspace(wtapplet->activescreen); wtapplet->activewindow = wnck_screen_get_active_window(wtapplet->activescreen); wtapplet->umaxedwindow = getUpperMaximized(wtapplet); wtapplet->rootwindow = getRootWindow(wtapplet->activescreen); wtapplet->prefbuilder = gtk_builder_new(); wtapplet->box = GTK_BOX(gtk_hbox_new(FALSE, 0)); wtapplet->icon = GTK_IMAGE(gtk_image_new()); wtapplet->title = GTK_LABEL(gtk_label_new(NULL)); wtapplet->eb_icon = GTK_EVENT_BOX(gtk_event_box_new()); wtapplet->eb_title = GTK_EVENT_BOX(gtk_event_box_new()); wtapplet->orient = panel_applet_get_orient(wtapplet->applet); wtapplet->size_hints = g_new(gint,2); // Widgets to eventboxes, eventboxes to box gtk_widget_set_can_focus(GTK_WIDGET(wtapplet->icon), TRUE); gtk_widget_set_can_focus(GTK_WIDGET(wtapplet->title), TRUE); gtk_container_add (GTK_CONTAINER (wtapplet->eb_icon), GTK_WIDGET(wtapplet->icon)); gtk_container_add (GTK_CONTAINER (wtapplet->eb_title), GTK_WIDGET(wtapplet->title)); gtk_event_box_set_visible_window (wtapplet->eb_icon, FALSE); gtk_event_box_set_visible_window (wtapplet->eb_title, FALSE); // Rotate & place elements setAlignment(wtapplet, (gfloat)wtapplet->prefs->alignment); placeWidgets(wtapplet); // Add box to applet gtk_container_add (GTK_CONTAINER(wtapplet->applet), GTK_WIDGET(wtapplet->box)); // Set event handling (icon & title clicks) g_signal_connect(G_OBJECT (wtapplet->eb_icon), "button-press-event", G_CALLBACK (icon_clicked), wtapplet); g_signal_connect(G_OBJECT (wtapplet->eb_title), "button-press-event", G_CALLBACK (title_clicked), wtapplet); // Global window tracking g_signal_connect(wtapplet->activescreen, "active-window-changed", G_CALLBACK (active_window_changed), wtapplet); // <-- this thing is crashing with compiz !!! g_signal_connect(wtapplet->activescreen, "viewports-changed", G_CALLBACK (viewports_changed), wtapplet); g_signal_connect(wtapplet->activescreen, "active-workspace-changed", G_CALLBACK (active_workspace_changed), wtapplet); g_signal_connect(wtapplet->activescreen, "window-closed", G_CALLBACK (window_closed), wtapplet); g_signal_connect(wtapplet->activescreen, "window-opened", G_CALLBACK (window_opened), wtapplet); // g_signal_connect(G_OBJECT (wtapplet->title), "size-request", G_CALLBACK (applet_title_size_request), wtapplet); g_signal_connect(G_OBJECT (wtapplet->applet), "size-allocate", G_CALLBACK (applet_size_allocate), wtapplet); g_signal_connect(G_OBJECT (wtapplet->applet), "change-background", G_CALLBACK (applet_change_background), wtapplet); g_signal_connect(G_OBJECT (wtapplet->applet), "change-orient", G_CALLBACK (applet_change_orient), wtapplet); g_signal_connect(G_OBJECT (wtapplet->applet), "change-size", G_CALLBACK (applet_change_pixel_size), wtapplet); // Track active window changes wtapplet->active_handler_state = g_signal_connect(G_OBJECT (wtapplet->activewindow), "state-changed", G_CALLBACK (active_window_state_changed), wtapplet); wtapplet->active_handler_name = g_signal_connect(G_OBJECT (wtapplet->activewindow), "name-changed", G_CALLBACK (active_window_nameicon_changed), wtapplet); wtapplet->active_handler_icon = g_signal_connect(G_OBJECT (wtapplet->activewindow), "icon-changed", G_CALLBACK (active_window_nameicon_changed), wtapplet); // Setup applet right-click menu GtkActionGroup *action_group = gtk_action_group_new ("WindowButtons Applet Actions"); gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions (action_group, windowtitle_menu_actions, G_N_ELEMENTS (windowtitle_menu_actions), wtapplet); panel_applet_setup_menu (applet, windowtitle_menu_items, action_group); panel_applet_set_background_widget (wtapplet->applet, GTK_WIDGET (wtapplet->applet)); // Automatic background update toggleExpand (wtapplet); toggleHidden (wtapplet); // Properly hide or show stuff updateTitle (wtapplet); }
Window::Window() : m_toolbar(0), m_fullscreen(true), m_typewriter_sounds(true), m_auto_save(true), m_save_positions(true), m_goal_type(0), m_time_goal(0), m_wordcount_goal(0), m_current_time(0), m_current_wordcount(0) { setAcceptDrops(true); setAttribute(Qt::WA_DeleteOnClose); setContextMenuPolicy(Qt::NoContextMenu); setWindowIcon(QIcon(":/focuswriter.png")); // Set up icons if (QIcon::themeName().isEmpty()) { QIcon::setThemeName("hicolor"); setIconSize(QSize(22,22)); } // Create window contents first so they stack behind documents menuBar(); m_toolbar = new QToolBar(this); m_toolbar->setFloatable(false); m_toolbar->setMovable(false); addToolBar(m_toolbar); QWidget* contents = new QWidget(this); setCentralWidget(contents); // Create documents m_documents = new Stack(this); m_sessions = new SessionManager(this); m_timers = new TimerManager(m_documents, this); m_load_screen = new LoadScreen(this); connect(m_documents, SIGNAL(footerVisible(bool)), m_timers->display(), SLOT(setVisible(bool))); connect(m_documents, SIGNAL(formattingEnabled(bool)), this, SLOT(setFormattingEnabled(bool))); connect(m_documents, SIGNAL(updateFormatActions()), this, SLOT(updateFormatActions())); connect(m_documents, SIGNAL(updateFormatAlignmentActions()), this, SLOT(updateFormatAlignmentActions())); connect(m_documents, SIGNAL(updateFormatHeadingActions()), this, SLOT(updateFormatHeadingActions())); connect(m_sessions, SIGNAL(themeChanged(Theme)), m_documents, SLOT(themeSelected(Theme))); // Set up menubar and toolbar initMenus(); // Set up details m_footer = new QWidget(contents); QWidget* details = new QWidget(m_footer); m_wordcount_label = new QLabel(tr("Words: 0"), details); m_page_label = new QLabel(tr("Pages: 0"), details); m_paragraph_label = new QLabel(tr("Paragraphs: 0"), details); m_character_label = new QLabel(tr("Characters: 0"), details); m_progress_label = new QLabel(tr("0% of daily goal"), details); m_clock_label = new QLabel(details); updateClock(); // Set up clock m_clock_timer = new QTimer(this); m_clock_timer->setInterval(60000); connect(m_clock_timer, SIGNAL(timeout()), this, SLOT(updateClock())); connect(m_clock_timer, SIGNAL(timeout()), m_timers, SLOT(saveTimers())); int delay = (60 - QTime::currentTime().second()) * 1000; QTimer::singleShot(delay, m_clock_timer, SLOT(start())); QTimer::singleShot(delay, this, SLOT(updateClock())); // Set up tabs m_tabs = new QTabBar(m_footer); m_tabs->setShape(QTabBar::RoundedSouth); m_tabs->setDocumentMode(true); m_tabs->setExpanding(false); m_tabs->setMovable(true); m_tabs->setTabsClosable(true); m_tabs->setUsesScrollButtons(true); connect(m_tabs, SIGNAL(currentChanged(int)), this, SLOT(tabClicked(int))); connect(m_tabs, SIGNAL(tabCloseRequested(int)), this, SLOT(tabClosed(int))); connect(m_tabs, SIGNAL(tabMoved(int, int)), this, SLOT(tabMoved(int, int))); new QShortcut(QKeySequence::NextChild, this, SLOT(nextDocument())); new QShortcut(QKeySequence::PreviousChild, this, SLOT(previousDocument())); // Lay out details QHBoxLayout* clock_layout = new QHBoxLayout; clock_layout->setMargin(0); clock_layout->setSpacing(6); clock_layout->addWidget(m_timers->display(), 0, Qt::AlignCenter); clock_layout->addWidget(m_clock_label); QHBoxLayout* details_layout = new QHBoxLayout(details); details_layout->setSpacing(25); details_layout->setMargin(6); details_layout->addWidget(m_wordcount_label); details_layout->addWidget(m_page_label); details_layout->addWidget(m_paragraph_label); details_layout->addWidget(m_character_label); details_layout->addStretch(); details_layout->addWidget(m_progress_label); details_layout->addStretch(); details_layout->addLayout(clock_layout); // Lay out footer QVBoxLayout* footer_layout = new QVBoxLayout(m_footer); footer_layout->setSpacing(0); footer_layout->setMargin(0); footer_layout->addWidget(details); footer_layout->addWidget(m_tabs); // Lay out window QVBoxLayout* layout = new QVBoxLayout(contents); layout->setSpacing(0); layout->setMargin(0); layout->addStretch(); layout->addWidget(m_footer); // Load current daily progress QSettings settings; if (settings.value("Progress/Date").toDate() != QDate::currentDate()) { settings.remove("Progress"); } settings.setValue("Progress/Date", QDate::currentDate().toString(Qt::ISODate)); m_current_wordcount = settings.value("Progress/Words", 0).toInt(); m_current_time = settings.value("Progress/Time", 0).toInt(); updateProgress(); // Load settings Preferences preferences; loadPreferences(preferences); m_documents->themeSelected(settings.value("ThemeManager/Theme").toString()); // Restore window geometry setMinimumSize(640, 480); resize(800, 600); restoreGeometry(settings.value("Window/Geometry").toByteArray()); m_fullscreen = !settings.value("Window/Fullscreen", true).toBool(); toggleFullscreen(); m_actions["Fullscreen"]->setChecked(m_fullscreen); show(); // Update themes m_load_screen->setText(tr("Loading themes")); Theme::copyBackgrounds(); // Load sounds m_load_screen->setText(tr("Loading sounds")); m_key_sound = new Sound("keyany.wav", this); m_enter_key_sound = new Sound("keyenter.wav", this); // Update margin m_tabs->blockSignals(true); m_tabs->addTab(tr("Untitled")); updateMargin(); m_tabs->removeTab(0); m_tabs->blockSignals(false); // Open previous documents QString session = settings.value("SessionManager/Session").toString(); QStringList files = QApplication::arguments().mid(1); if (!files.isEmpty()) { session.clear(); settings.setValue("Save/Current", files); settings.setValue("Save/Positions", QStringList()); settings.setValue("Save/Active", 0); } m_sessions->setCurrent(session); }
int main(int argc, char **argv) { int i; bool no_filenames = true; QLoggingCategory::setFilterRules(QStringLiteral("qt.bluetooth* = true")); QApplication *application = new QApplication(argc, argv); (void)application; QStringList files; QStringList importedFiles; QStringList arguments = QCoreApplication::arguments(); bool dedicated_console = arguments.length() > 1 && (arguments.at(1) == QString("--win32console")); subsurface_console_init(dedicated_console); for (i = 1; i < arguments.length(); i++) { QString a = arguments.at(i); if (a.at(0) == '-') { parse_argument(a.toLocal8Bit().data()); continue; } if (imported) { importedFiles.push_back(a); } else { no_filenames = false; files.push_back(a); } } #if !LIBGIT2_VER_MAJOR && LIBGIT2_VER_MINOR < 22 git_threads_init(); #else git_libgit2_init(); #endif setup_system_prefs(); if (uiLanguage(0).contains("-US")) default_prefs.units = IMPERIAL_units; prefs = default_prefs; fill_profile_color(); parse_xml_init(); taglist_init_global(); init_ui(); loadPreferences(); // some hard coded settings prefs.animation_speed = 0; // we render the profile to pixmap, no animations // always show the divecomputer reported ceiling in red prefs.dcceiling = 1; prefs.redceiling = 1; init_proxy(); if (no_filenames) { if (prefs.default_file_behavior == LOCAL_DEFAULT_FILE) { QString defaultFile(prefs.default_filename); if (!defaultFile.isEmpty()) files.push_back(QString(prefs.default_filename)); } else if (prefs.default_file_behavior == CLOUD_DEFAULT_FILE) { QString cloudURL; if (getCloudURL(cloudURL) == 0) files.push_back(cloudURL); } } if (!quit) run_ui(); exit_ui(); taglist_free(g_tag_list); parse_xml_exit(); subsurface_console_exit(); free_prefs(); return 0; }
int main(int argc, char **argv) { int i = 0, numframes; char *filename = NULL; gchar *notefile = NULL; FILE *fp = NULL; struct stat statbuf; char *databuf = NULL; GError *err = NULL; gtk_init(&argc, &argv); /* Load preferences first. Command line options will override those * preferences. */ loadPreferences(); /* Read defaults from preferences. */ filename = NULL; numframes = 2 * prefs.slide_context + 1; runpref.do_wrapping = prefs.do_wrapping; runpref.do_notectrl = prefs.do_notectrl; runpref.cache_max = prefs.cache_max; runpref.fit_mode = prefs.initial_fit_mode; /* get options via getopt */ while ((i = getopt(argc, argv, "s:wnc:N:CTv")) != -1) { switch (i) { case 's': numframes = 2 * atoi(optarg) + 1; if (numframes <= 1) { fprintf(stderr, "Invalid slide count specified.\n"); usage(argv[0]); exit(EXIT_FAILURE); } break; case 'w': runpref.do_wrapping = TRUE; break; case 'n': runpref.do_notectrl = TRUE; break; case 'c': /* don't care if that number is invalid. it'll get * re-adjusted anyway if it's too small. */ runpref.cache_max = atoi(optarg); break; case 'N': notefile = g_strdup(optarg); break; case 'C': /* Force the timer to be a clock. */ prefs.timer_is_clock = TRUE; break; case 'T': /* Force the timer to be a timer (not a clock). */ prefs.timer_is_clock = FALSE; break; case 'v': printf("pdfpres version: %s\n", PDFPRES_VERSION); exit(EXIT_SUCCESS); break; case '?': exit(EXIT_FAILURE); break; } } /* retrieve file name via first non-option argument */ if (optind < argc) { filename = argv[optind]; } if (filename == NULL) { fprintf(stderr, "Invalid file path specified.\n"); usage(argv[0]); exit(EXIT_FAILURE); } /* for the cache to be useful, we'll need at least "some" items. * that is 2 items (prev and next) per preview viewport and 2 * items for the beamer port. * * this means that switching to the previous and next slide will * always be fast. * * note: numframes is not negative (see above), so that cast is okay. */ if (runpref.cache_max < (guint)((numframes + 1) * 2)) runpref.cache_max = (guint)((numframes + 1) * 2); /* try to load the file */ if (stat(filename, &statbuf) == -1) { perror("Could not stat file"); exit(EXIT_FAILURE); } /* note: this buffer must not be freed, it'll be used by poppler * later on. */ databuf = (char *)malloc(statbuf.st_size); g_assert(databuf); fp = fopen(filename, "rb"); if (!fp) { perror("Could not open file"); exit(EXIT_FAILURE); } /* Read 1 element of size "statbuf.st_size". fread() returns the * number of items successfully read. Thus, a return value of "1" * means "success" and anything else is an error. */ if (fread(databuf, statbuf.st_size, 1, fp) != 1) { fprintf(stderr, "Unexpected end of file.\n"); exit(EXIT_FAILURE); } fclose(fp); /* get document from data */ doc = poppler_document_new_from_data(databuf, statbuf.st_size, NULL, &err); if (!doc) { fprintf(stderr, "%s\n", err->message); g_error_free(err); exit(EXIT_FAILURE); } doc_n_pages = poppler_document_get_n_pages(doc); if (doc_n_pages <= 0) { fprintf(stderr, "Huh, no pages in that document.\n"); exit(EXIT_FAILURE); } initGUI(numframes, notefile); /* queue initial prerendering. */ preQueued = TRUE; g_idle_add(idleFillCaches, NULL); gtk_main(); exit(EXIT_SUCCESS); }
Document::Document(const QString& filename, int& current_wordcount, int& current_time, QWidget* parent) : QWidget(parent), m_cache_filename(randomCacheFilename()), m_index(0), m_always_center(false), m_rich_text(false), m_cached_block_count(-1), m_cached_current_block(-1), m_page_type(0), m_page_amount(0), m_accurate_wordcount(true), m_current_wordcount(current_wordcount), m_current_time(current_time) { setMouseTracking(true); m_stats = &m_document_stats; m_hide_timer = new QTimer(this); m_hide_timer->setInterval(5000); m_hide_timer->setSingleShot(true); connect(m_hide_timer, SIGNAL(timeout()), this, SLOT(hideMouse())); // Set up text area m_text = new QTextEdit(this); m_text->installEventFilter(this); m_text->setMouseTracking(true); m_text->setFrameStyle(QFrame::NoFrame); m_text->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_text->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_text->setTabStopWidth(50); m_text->document()->setIndentWidth(50); m_text->horizontalScrollBar()->setAttribute(Qt::WA_NoMousePropagation); m_text->viewport()->setMouseTracking(true); m_text->viewport()->installEventFilter(this); connect(m_text, SIGNAL(cursorPositionChanged()), this, SLOT(cursorPositionChanged())); connect(m_text, SIGNAL(selectionChanged()), this, SLOT(selectionChanged())); connect(m_text->document(), SIGNAL(undoCommandAdded()), this, SLOT(undoCommandAdded())); connect(m_text->document(), SIGNAL(contentsChange(int,int,int)), this, SLOT(updateWordCount(int,int,int))); m_dictionary = new Dictionary(this); m_highlighter = new Highlighter(m_text, m_dictionary); m_focusmode = new FocusMode(m_text); connect(m_dictionary, SIGNAL(changed()), this, SLOT(dictionaryChanged())); // Set filename bool unknown_rich_text = false; if (!filename.isEmpty()) { m_rich_text = isRichTextFile(filename.toLower()); m_filename = QFileInfo(filename).canonicalFilePath(); updateState(); } if (m_filename.isEmpty()) { findIndex(); unknown_rich_text = true; } else { m_text->setReadOnly(!QFileInfo(m_filename).isWritable()); } // Set up scroll bar m_scrollbar = m_text->verticalScrollBar(); m_scrollbar->setAttribute(Qt::WA_NoMousePropagation); m_scrollbar->setPalette(QApplication::palette()); m_scrollbar->setAutoFillBackground(true); m_scrollbar->setMouseTracking(true); m_scrollbar->installEventFilter(this); setScrollBarVisible(false); connect(m_scrollbar, SIGNAL(actionTriggered(int)), this, SLOT(scrollBarActionTriggered(int))); connect(m_scrollbar, SIGNAL(rangeChanged(int,int)), this, SLOT(scrollBarRangeChanged(int,int))); // Lay out window m_layout = new QGridLayout(this); m_layout->setSpacing(0); m_layout->setMargin(0); m_layout->addWidget(m_text, 0, 1); m_layout->addWidget(m_scrollbar, 0, 2, Qt::AlignRight); // Load settings Preferences preferences; if (unknown_rich_text) { m_rich_text = preferences.richText(); } m_text->setAcceptRichText(m_rich_text); loadPreferences(preferences); }