Changeset 285:10935f0d6ff7

Show
Ignore:
Timestamp:
06/22/2008 11:47:45 AM (4 years ago)
Author:
Dmitry Nezhevenko <dion@…>
Branch:
default
Message:

Avoid autoleave for some conferences. No interface yet

Files:
6 modified

Legend:

Unmodified
Added
Removed
  • sql/mysql.sql

    r280 r285  
    9595  `online` tinyint(1) NOT NULL default '0', 
    9696  `joined` datetime default NULL, 
     97  `autoleave` tinyint(1) NOT NULL default '1', 
     98  `owner` varchar(200) NULL, 
    9799  PRIMARY KEY  (`name`), 
    98100  UNIQUE KEY `id` (`id`) 
  • sql/pgsql.sql

    r280 r285  
    5353  online boolean NOT NULL default false, 
    5454  joined timestamp default NULL, 
     55  autoleave boolean NOT NULL default true, 
     56  owner varchar(200) NULL, 
    5557  PRIMARY KEY (name), 
    5658  UNIQUE (id) 
  • src/plugins/muc/conference.cpp

    r274 r285  
    9090        if (!myLazyLeave) 
    9191        { 
    92                 QSqlQuery query=DataStorage::instance() 
    93                         ->prepareQuery("UPDATE conferences SET online = false WHERE id = ?"); 
    94                 query.addBindValue(myId); 
    95                 query.exec(); 
     92                markOffline(); 
    9693        } 
    9794        else 
     
    105102        delete myCommand; 
    106103        delete configurator_; 
     104} 
     105 
     106void Conference::markOffline() 
     107{ 
     108        QSqlQuery query=DataStorage::instance() 
     109                                ->prepareQuery("UPDATE conferences SET online = false WHERE id = ?"); 
     110        query.addBindValue(myId); 
     111        query.exec();    
    107112} 
    108113 
     
    262267                                " where conference_nicks.conference_id=conferences.id and" 
    263268                                " lastaction > ?) as cnt" 
    264                                 " from conferences where autojoin=true and online=true order by cnt"); 
     269                                " from conferences where autojoin=true and online=true and autoleave=true order by cnt"); 
    265270        QDateTime currentDate=QDateTime::currentDateTime(); 
    266271        currentDate=currentDate.addSecs(-deltaTime); 
  • src/plugins/muc/conference.h

    r274 r285  
    4141        void loadOnlineNicks(); 
    4242        void cleanNonValidNicks(); 
     43        void markOffline(); 
    4344 
    4445        MucConfigurator* configurator() const { return configurator_; } 
  • src/plugins/muc/mucplugin.cpp

    r284 r285  
    374374                        } 
    375375                        reply(s, "Ok"); 
     376                        //!!!!!!!!!!!!!!!!!!!! 
    376377                        join(arg); 
    377378                        return true; 
     
    825826} 
    826827 
    827 void MucPlugin::join(const QString& name) 
     828void MucPlugin::join(const QString& name, const QString& joinerBareJid) 
    828829{ 
    829830        qDebug() << "MucPlugin::join: " << name; 
     
    850851 
    851852        confInProgress.append(confName); 
     853        if (!joinerBareJid.isEmpty()) 
     854        { 
     855                 
     856        } 
    852857 
    853858        // Don't create "Conference" object, because it's possible that we can't join it 
     
    886891        Conference*conf=conferences.byName(cname); 
    887892        if (conf) 
     893        { 
    888894                conf->setAutoJoin(FALSE); 
     895                conf->markOffline(); 
     896        } 
     897         
    889898 
    890899        /*      Conference *conf=new Conference(cname,cnick); 
  • src/plugins/muc/mucplugin.h

    r284 r285  
    4141        QStringList confInProgress; 
    4242        QString getItem(gloox::Stanza*, const QString& name); 
    43         void join(const QString& name); 
     43        void join(const QString& name, const QString& joinerBareJid=QString::null); 
    4444        void leave(const QString& name); 
    4545        Conference* getConf(gloox::Stanza* s);