Пример #1
0
void reopen_recent(GtkRecentChooser *chooser, gpointer data) {
    gchar *filename = gtk_recent_chooser_get_current_uri  (chooser);
    if (!filename) return;
    gphpedit_debug_message(DEBUG_MAIN_WINDOW,"filename: %s", filename);
    document_manager_switch_to_file_or_open(main_window.docmg, filename, 0);
    g_free(filename);
}
Пример #2
0
void document_manager_session_reopen(DocumentManager *docmg)
{
  gphpedit_debug(DEBUG_DOC_MANAGER);
  if (!docmg) return ;
  DocumentManagerDetails *docmgdet = DOCUMENT_MANAGER_GET_PRIVATE(docmg);
  int focus_tab=-1;
  gboolean focus_this_one = FALSE;
  PreferencesManager *prefmg = preferences_manager_new();
  GSList *files = get_preferences_manager_session_files(prefmg);
  if (g_slist_length (files)==0) {
    //session file exists but is empty
    //add a new untitled
    document_manager_add_new_document(docmg, TAB_FILE, NULL, 0);
  } else {
    GSList *walk;
    gchar *filename;
    for(walk = files; walk!= NULL; walk = g_slist_next(walk)) {
        filename = (gchar *)walk->data;
        /* filename contains possibly:
          file:///blah\n
          *file:///blah\n
          phphelp:function\n
          *phphelp:function\n
          preview:function\n
          *preview:function\n

        */
	filename = g_strdelimit (filename, "\n", 0);
        if (filename[0]=='*') {
          filename++;
          focus_this_one = TRUE;
        }
        if (g_str_has_prefix(filename, "phphelp:")){
          filename += 8;
          document_manager_add_new_document(docmg, TAB_HELP, filename, 0);
        } else if (g_str_has_prefix(filename, "preview:")){
          filename += 8;
          document_manager_add_new_document(docmg, TAB_PREVIEW, filename, 0);
        } else {
          if (filename){
          document_manager_switch_to_file_or_open(docmg, filename, 0);
          }
        }
        if (focus_this_one && (docmgdet->current_document)) {
            GtkWidget *document_widget;
            g_object_get(docmgdet->current_document, "editor_widget", &document_widget, NULL);
            focus_tab = gtk_notebook_page_num(GTK_NOTEBOOK(main_window.notebook_editor), document_widget);
        }
        focus_this_one=FALSE;
    }
  }
  gtk_notebook_set_current_page(GTK_NOTEBOOK(main_window.notebook_editor), focus_tab);
  g_object_unref(prefmg);
}
Пример #3
0
void open_file_ok(GtkFileChooser *file_selection)
{
    GSList *filenames;
    GSList *walk;

    // Extract filename from the file selection dialog
    filenames = gtk_file_chooser_get_uris(file_selection);

    for(walk = filenames; walk!= NULL; walk = g_slist_next(walk)) {
        document_manager_switch_to_file_or_open(main_window.docmg, walk->data, 0);
    }
    g_slist_free(filenames);
}
Пример #4
0
DocumentManager *document_manager_new_full (char **argv, gint argc)
{
  gphpedit_debug(DEBUG_DOC_MANAGER);
  DocumentManager *docmg;
  docmg = g_object_new (DOCUMENT_MANAGER_TYPE, NULL);
  
  /* load command line files */
  guint i;
  if (argc>1) {
    i = 1;
    while (argv[i] != NULL) {
      document_manager_switch_to_file_or_open(docmg, argv[i],0);
      ++i;
    }
  } else {
    document_manager_session_reopen(docmg);
  }
  return docmg; /* return new object */
}
Пример #5
0
void document_manager_open_selected(DocumentManager *docmg)
{
  gphpedit_debug(DEBUG_DOC_MANAGER);
  if (!docmg) return ;
  DocumentManagerDetails *docmgdet = DOCUMENT_MANAGER_GET_PRIVATE(docmg);
  GSList *li;
  Document *document;
  gchar *ac_buffer;
  gchar *file;

  ac_buffer = documentable_get_current_selected_text(DOCUMENTABLE(docmgdet->current_document));
  if (!ac_buffer){
    for(li = docmgdet->editors; li!= NULL; li = g_slist_next(li)) {
      document = li->data;
      if (document) {
         gchar *filename = documentable_get_filename(DOCUMENTABLE(document));
         file = filename_parent_uri(filename);
         g_free(filename);
         gphpedit_debug_message(DEBUG_MAIN_WINDOW,"file: %s", filename);
         if (!strstr(ac_buffer, "://") && file) {
          gchar *filetemp= g_strdup_printf("%s/%s",file, ac_buffer);
          g_free(file);
          file=g_strdup(filetemp);
          g_free(filetemp);
        }
        else if (strstr(ac_buffer, "://")) {
            if (file) g_free(file);
            file = g_strdup(ac_buffer);
        }
        if(filename_file_exist(file)) document_manager_switch_to_file_or_open(docmg, file,0);
        if (file) g_free(file);
      }
    }
  }
  g_free(ac_buffer);
}
Пример #6
0
void filebrowser_backend_open_file (FilebrowserBackend *fbback, gchar *filename){
  gphpedit_debug(DEBUG_FILEBROWSER);
  DocumentManager *docmg = document_manager_new();
  document_manager_switch_to_file_or_open(docmg,filename, 0);
  g_object_unref(docmg);
}
Пример #7
0
static void document_open_request_cb (Document *doc, gchar *uri, gpointer user_data)
{
  DocumentManager *docmg = DOCUMENT_MANAGER(user_data);
  document_manager_switch_to_file_or_open(docmg, uri, 0);
}