Changeset 9237


Ignore:
Timestamp:
Oct 2, 2009, 10:53:19 PM (13 years ago)
Author:
charles
Message:

(trunk, gtk, qt) #2478: popup dialog for first-time users

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/gtk/conf.c

    r9231 r9237  
    166166#endif
    167167
    168     tr_bencDictAddBool( d, PREF_KEY_LEGAL_DIALOG_ON_STARTUP, TRUE );
     168    tr_bencDictAddBool( d, PREF_KEY_USER_HAS_GIVEN_INFORMED_CONSENT, FALSE );
    169169    tr_bencDictAddBool( d, PREF_KEY_INHIBIT_HIBERNATION, FALSE );
    170170    tr_bencDictAddBool( d, PREF_KEY_BLOCKLIST_UPDATES_ENABLED, TRUE );
  • trunk/gtk/main.c

    r9236 r9237  
    543543    }
    544544
    545     if( pref_flag_get( PREF_KEY_LEGAL_DIALOG_ON_STARTUP ) )
     545    if( !pref_flag_get( PREF_KEY_USER_HAS_GIVEN_INFORMED_CONSENT ) )
    546546    {
    547547        GtkWidget * w = gtk_message_dialog_new( GTK_WINDOW( wind ),
     
    557557            case GTK_RESPONSE_ACCEPT:
    558558                /* only show it once */
    559                 pref_flag_set( PREF_KEY_LEGAL_DIALOG_ON_STARTUP, FALSE );
     559                pref_flag_set( PREF_KEY_USER_HAS_GIVEN_INFORMED_CONSENT, TRUE );
    560560                gtk_widget_destroy( w );
    561561                break;
  • trunk/gtk/tr-prefs.h

    r9231 r9237  
    2222 * default in tr_prefs_init_defaults( void ) */
    2323
    24 #define PREF_KEY_LEGAL_DIALOG_ON_STARTUP    "show-legal-dialog-on-startup"
    25 #define PREF_KEY_OPTIONS_PROMPT             "show-options-window"
    26 #define PREF_KEY_OPEN_DIALOG_FOLDER         "open-dialog-dir"
    27 #define PREF_KEY_INHIBIT_HIBERNATION        "inhibit-desktop-hibernation"
    28 #define PREF_KEY_DIR_WATCH                  "watch-dir"
    29 #define PREF_KEY_DIR_WATCH_ENABLED          "watch-dir-enabled"
    30 #define PREF_KEY_SHOW_TRAY_ICON             "show-notification-area-icon"
    31 #define PREF_KEY_SHOW_DESKTOP_NOTIFICATION  "show-desktop-notification"
    32 #define PREF_KEY_SHOW_MORE_TRACKER_INFO     "show-tracker-scrapes"
    33 #define PREF_KEY_SHOW_BACKUP_TRACKERS       "show-backup-trackers"
    34 #define PREF_KEY_START                      "start-added-torrents"
    35 #define PREF_KEY_TRASH_ORIGINAL             "trash-original-torrent-files"
    36 #define PREF_KEY_ASKQUIT                    "prompt-before-exit"
    37 #define PREF_KEY_SORT_MODE                  "sort-mode"
    38 #define PREF_KEY_SORT_REVERSED              "sort-reversed"
    39 #define PREF_KEY_FILTER_MODE                "filter-mode"
    40 #define PREF_KEY_MINIMAL_VIEW               "minimal-view"
    41 #define PREF_KEY_FILTERBAR                  "show-filterbar"
    42 #define PREF_KEY_STATUSBAR                  "show-statusbar"
    43 #define PREF_KEY_STATUSBAR_STATS            "statusbar-stats"
    44 #define PREF_KEY_TOOLBAR                    "show-toolbar"
    45 #define PREF_KEY_BLOCKLIST_UPDATES_ENABLED  "blocklist-updates-enabled"
    46 #define PREF_KEY_MAIN_WINDOW_LAYOUT_ORDER   "main-window-layout-order"
    47 #define PREF_KEY_MAIN_WINDOW_HEIGHT         "main-window-height"
    48 #define PREF_KEY_MAIN_WINDOW_WIDTH          "main-window-width"
    49 #define PREF_KEY_MAIN_WINDOW_X              "main-window-x"
    50 #define PREF_KEY_MAIN_WINDOW_Y              "main-window-y"
    51 #define PREF_KEY_MAIN_WINDOW_IS_MAXIMIZED   "main-window-is-maximized"
     24#define PREF_KEY_USER_HAS_GIVEN_INFORMED_CONSENT   "user-has-given-informed-consent"
     25#define PREF_KEY_OPTIONS_PROMPT                    "show-options-window"
     26#define PREF_KEY_OPEN_DIALOG_FOLDER                "open-dialog-dir"
     27#define PREF_KEY_INHIBIT_HIBERNATION               "inhibit-desktop-hibernation"
     28#define PREF_KEY_DIR_WATCH                         "watch-dir"
     29#define PREF_KEY_DIR_WATCH_ENABLED                 "watch-dir-enabled"
     30#define PREF_KEY_SHOW_TRAY_ICON                    "show-notification-area-icon"
     31#define PREF_KEY_SHOW_DESKTOP_NOTIFICATION         "show-desktop-notification"
     32#define PREF_KEY_SHOW_MORE_TRACKER_INFO            "show-tracker-scrapes"
     33#define PREF_KEY_SHOW_BACKUP_TRACKERS              "show-backup-trackers"
     34#define PREF_KEY_START                             "start-added-torrents"
     35#define PREF_KEY_TRASH_ORIGINAL                    "trash-original-torrent-files"
     36#define PREF_KEY_ASKQUIT                           "prompt-before-exit"
     37#define PREF_KEY_SORT_MODE                         "sort-mode"
     38#define PREF_KEY_SORT_REVERSED                     "sort-reversed"
     39#define PREF_KEY_FILTER_MODE                       "filter-mode"
     40#define PREF_KEY_MINIMAL_VIEW                      "minimal-view"
     41#define PREF_KEY_FILTERBAR                         "show-filterbar"
     42#define PREF_KEY_STATUSBAR                         "show-statusbar"
     43#define PREF_KEY_STATUSBAR_STATS                   "statusbar-stats"
     44#define PREF_KEY_TOOLBAR                           "show-toolbar"
     45#define PREF_KEY_BLOCKLIST_UPDATES_ENABLED         "blocklist-updates-enabled"
     46#define PREF_KEY_MAIN_WINDOW_LAYOUT_ORDER          "main-window-layout-order"
     47#define PREF_KEY_MAIN_WINDOW_HEIGHT                "main-window-height"
     48#define PREF_KEY_MAIN_WINDOW_WIDTH                 "main-window-width"
     49#define PREF_KEY_MAIN_WINDOW_X                     "main-window-x"
     50#define PREF_KEY_MAIN_WINDOW_Y                     "main-window-y"
     51#define PREF_KEY_MAIN_WINDOW_IS_MAXIMIZED          "main-window-is-maximized"
    5252
    5353#endif
  • trunk/qt/app.cc

    r9175 r9237  
    1515#include <iostream>
    1616
     17#include <QDialogButtonBox>
    1718#include <QIcon>
    1819#include <QLibraryInfo>
     20#include <QLabel>
    1921#include <QRect>
    2022#include <QTranslator>
     
    169171    }
    170172
     173    if( !myPrefs->getBool( Prefs::USER_HAS_GIVEN_INFORMED_CONSENT ))
     174    {
     175        QDialog * dialog = new QDialog( myWindow );
     176        dialog->setModal( true );
     177        QVBoxLayout * v = new QVBoxLayout( dialog );
     178        QLabel * l = new QLabel( tr( "Transmission is a file sharing program.  When you run a torrent, its data will be made available to others by means of upload.  And of course, any content you share is your sole responsibility.\n\nYou probably knew this, so we won't tell you again." ) );
     179        l->setWordWrap( true );
     180        v->addWidget( l );
     181        QDialogButtonBox * box = new QDialogButtonBox;
     182        box->addButton( new QPushButton( tr( "&Cancel" ) ), QDialogButtonBox::RejectRole );
     183        QPushButton * agree = new QPushButton( tr( "I &Agree" ) );
     184        agree->setDefault( true );
     185        box->addButton( agree, QDialogButtonBox::AcceptRole );
     186        box->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed );
     187        box->setOrientation( Qt::Horizontal );
     188        v->addWidget( box );
     189        connect( box, SIGNAL(rejected()), this, SLOT(quit()) );
     190        connect( box, SIGNAL(accepted()), dialog, SLOT(deleteLater()) );
     191        connect( box, SIGNAL(accepted()), this, SLOT(consentGiven()) );
     192        dialog->show();
     193    }
     194
    171195    for( QStringList::const_iterator it=filenames.begin(), end=filenames.end(); it!=end; ++it )
    172196        mySession->addTorrent( *it );
     197}
     198
     199void
     200MyApp :: consentGiven( )
     201{
     202    myPrefs->set<bool>( Prefs::USER_HAS_GIVEN_INFORMED_CONSENT, true );
    173203}
    174204
  • trunk/qt/app.h

    r8570 r9237  
    4343
    4444    private slots:
     45        void consentGiven( );
    4546        void refreshPref( int key );
    4647        void refreshTorrents( );
  • trunk/qt/prefs.cc

    r8588 r9237  
    6363    { SESSION_REMOTE_USERNAME, "remote-session-username", QVariant::String },
    6464    { SESSION_REMOTE_PASSWORD, "remote-session-password", QVariant::String },
     65    { USER_HAS_GIVEN_INFORMED_CONSENT, "user-has-given-informed-consent", QVariant::Bool },
    6566
    6667    /* libtransmission settings */
     
    260261    tr_bencDictAddBool( d, keyStr(SESSION_IS_REMOTE), false );
    261262    tr_bencDictAddBool( d, keyStr(SESSION_REMOTE_AUTH), false );
     263    tr_bencDictAddBool( d, keyStr(USER_HAS_GIVEN_INFORMED_CONSENT), false );
    262264}
    263265
  • trunk/qt/prefs.h

    r8570 r9237  
    6666            SESSION_REMOTE_USERNAME,
    6767            SESSION_REMOTE_PASSWORD,
     68            USER_HAS_GIVEN_INFORMED_CONSENT,
    6869
    6970            /* core prefs */
Note: See TracChangeset for help on using the changeset viewer.